Skip to content

Re-vendor bedside to v0.2.0 (11 tenets, rubric renumbered R1-R11, meta.toml key renamed) #89

Description

@tig

Status

Upstream is merged: tig/bedside#11, merge commit c4c0381. Released as v0.2.0. This is ready to work on.

third_party/bedside here is pinned at 868e3b8, which predates all of it.

Full migration notes upstream: CHANGELOG.md.

Read this first: renaming the key alone is wrong

The meta.toml focus key changed from principles to tenets, and the rubric ids moved in the same release. A mechanical rename re-points every fixture at a different tenet, silently. Remap first:

principles = ["R4"]   ->   tenets = ["R5"]      # explicit human acts
principles = ["R5"]   ->   tenets = ["R6"]      # first-run owned
principles = ["R6"]   ->   tenets = ["R7"]      # scary surfaces
principles = ["R7"]   ->   tenets = ["R8"]      # confirm in their words
principles = ["R8"]   ->   tenets = ["R9"]      # no cliff
principles = ["R9"]   ->   tenets = ["R10"]     # leave-behind

R1-R3 unchanged. R4 (no silent work) and R11 (compound, but ask first) are new. The invariant Rn scores tenet n holds throughout.

Good news for silico specifically: there are currently no meta.toml files outside third_party/bedside, so there is nothing to hand-migrate. The nine vendored fixtures are replaced wholesale by the re-vendor. The remapping table matters only if domain fixtures get added before this lands.

Blocker to decide before re-vendoring

third_party/bedside/src/bedside/commands/ask_cmd.py is not a clean copy of upstream. It carries a local behavior change from #84: any valid choice exits 0, where upstream has code = OK if matched else HUMAN_NEEDED. bedside.toml records this as pin = "silico-local-ask-explicit-yes-0".

A straight re-vendor silently reverts it. The symptom would surface later as an agent treating a deliberate non-recommended choice as a decline.

Decide first:

  • Re-apply the patch after re-vendoring and keep carrying it, or
  • File it upstream on tig/bedside so the exit-code semantics are settled in one place (preferred: the exit-code table is part of bedside's agent-facing contract, so two definitions of exit 10 is the actual bug, and upstream tenet 11 now asks for exactly this).

Stale references in silico's own prose

Line numbers as of 7dd1b5a:

  • AGENTS.md:70 — "Normative portable manners (nine principles)" → eleven tenets.
  • AGENTS.md:80 — "Nine principles, anti-patterns, portable persona".
  • AGENTS.md:178 — "They do not soften or replace the nine principles."
  • AGENTS.md:325 — "Choice walls are contract violations (Bedside principle 2 / 4)". This one becomes actively wrong, not merely dated: tenet 4 is now "no silent work", and the human-acts tenet is now 5.
  • AGENTS.md:511, BEDSIDE.md:3, BEDSIDE.md:19, BEDSIDE.md:90 — "principles" → "tenets".

What is new upstream that silico may care about

Tenet 4, "No silent work" — long or delegated work shows progress, an estimate, or per-worker status; subagents and background jobs report what each is doing. Directly relevant to long flashes, deploys, and multi-device work. The five-second threshold for a progress indicator is in surface/.

Tenet 11, "Compound what you learn" — notice friction, and with the operator's go-ahead file it upstream. This formalizes the customer-0 doctrine already in third_party/bedside/VENDOR.md, including the consent gate.

Also: "Day 2" is retired (now "tomorrow" / "leave-behind"), and the optional scorecard is now the first-run scorecard with an added status-visibility item.

Other breaking changes

  1. bedside eval --json emits tenets instead of principles. Anything parsing that output needs updating.
  2. Python API renamed with no aliases: TENET_IDS, ScoreReport.tenet_pass, FixtureMeta.tenets, overall_from_tenets.
  3. Unknown tenet ids in meta.toml are now rejected rather than silently unscored.

Suggested order

  1. Decide the ask_cmd.py question above, so the re-vendor is not the thing that loses the patch.
  2. Re-vendor third_party/bedside from c4c0381 (or the v0.2.0 tag once cut).
  3. Update VENDOR.md and the bedside.toml pin.
  4. Fix the stale references listed above.
  5. Run bedside doctor and bedside eval; both should be green.

Activity

  1. changed the title [-]Update vendored bedside: 11 tenets, renumbered rubric IDs, meta.toml key rename[/-] [+]Re-vendor bedside to v0.2.0 (11 tenets, rubric renumbered R1-R11, meta.toml key renamed)[/+] on Jul 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions