sage: rows 64 and 66 brief refreshed to 7319bd867 after row 65 (harness module files owned, plugins suite in the gates), row 64 candidate names Sage as author and gate owner (mos-0855)

This commit is contained in:
jason.woltje committed 2026-10-19 13:40:44 -05:00
1 parent b0721a0b0d
commit e0bf9960dd
1 file changed
+39 -10
+39 -10
View File
@@ -23,6 +23,12 @@ tests. Row 29 (console model switching) stays parked. It is a WebUI
feature. When Jason reopens it, it reads the instance vars that row 65
makes the one source (amended 2026-10-19).
Refreshed 2026-10-19 for rows 64 and 66: their line numbers are at
origin/refactor 7319bd867, after row 65 (c216f47db) moved each harness's
adapter variables and bundle files into `packages/plugins/harness/pi`
and `packages/plugins/harness/claude-code`. Both rows now own those
module files. What ships is unchanged.
Constraints that hold for all three rows:
- Fail closed. A launch that can't give a session what its role
@@ -40,14 +46,18 @@ Constraints that hold for all three rows:
### Problem
ROADMAP M17 says role contracts declare skill names and the runner passes
them explicitly. Only the older path does it: `scripts/agent.sh:173-184`
them explicitly. Only the older path does it: `scripts/agent.sh:173-186`
reads a seat's `skills`, checks each is in `<dataRoot>/skills-enabled`
and refuses if not. Managed sessions get none.
`packages/harness/src/bundle.mjs:147` writes `skills: []`,
`packages/harness/src/runner.mjs` sets no `MOSAIC_SKILLS`, so
`adapters/pi/adapter.sh:52` runs Pi with `--no-skills`, and
`adapters/claude/adapter.sh` passes `--disable-slash-commands`. Role
files have no place for a skill list (`packages/business/src/role.mjs:19`).
`packages/harness/src/bundle.mjs:212` writes `skills: []`. The runner's
`adapterEnv` (`packages/harness/src/runner.mjs:263-278`) passes each
harness module's `env` answer through, and neither module
(`packages/plugins/harness/pi/index.mjs:53-61`,
`packages/plugins/harness/claude-code/index.mjs`) sets `MOSAIC_SKILLS`.
So `adapters/pi/adapter.sh:52` runs Pi with `--no-skills`, and
`adapters/claude/adapter.sh:91` passes `--disable-slash-commands`. Role
files have no place for a skill list (`packages/business/src/role.mjs:20`,
`V2_KEYS`).
Today `skills-enabled` holds only `ms-communications`; `ms-tools` is
installed but not enabled.
@@ -64,6 +74,12 @@ installed but not enabled.
`roles/reviewer.json` (the `skills` key only)
- `packages/harness/src/bundle.mjs`, `packages/harness/src/runner.mjs`,
`packages/harness/tests/`, `packages/harness/README.md`
- `packages/plugins/harness/pi/index.mjs`,
`packages/plugins/harness/claude-code/index.mjs` (their `bundle` and
`env`), `packages/plugins/tests/harness.test.mjs`, and the harness
lines of `packages/plugins/README.md`. The harness kind keeps
interface 1 and its export list (`packages/plugins/src/kinds.mjs:52-56`).
If the skills need a new export, the row stops and the packet says why.
- `packages/cli/src/launcher.mjs` and its tests (the refusal only)
- `adapters/pi/adapter.sh`, `adapters/claude/adapter.sh`,
`adapters/README.md`
@@ -107,6 +123,7 @@ installed but not enabled.
with `--no-skills` and gives Claude Code none.
- Gate suites: `node --test 'packages/business/tests/*.test.mjs'`,
`node --test 'packages/harness/tests/*.test.mjs'`,
`node --test 'packages/plugins/tests/*.test.mjs'`,
`node --test 'packages/cli/tests/*.test.mjs'`, and every
`scripts/test-*.sh`.
@@ -124,6 +141,11 @@ Sage installs and activates the skills the four lists name, then starts
one managed coder session on each harness and attaches the manifest
showing the four skills and their digests.
Sage is both the author and the gate owner of this row, so the candidate
says so in its first line for the reviewers (mos-0855). The landing steps
change the live data root and start live sessions, so they wait for
Mos's go.
## Model routing table: sessions resolve harness, model and thinking from one table
Amended 2026-10-19 by Sage before the build started (lead decision 151).
@@ -389,10 +411,11 @@ the view that meets mos-0840.
`tools/unslop-hook` checks assistant replies against `lists.json`, but
only as a Pi extension loaded by hand (`tools/unslop-hook/README.md`).
Managed sessions don't load it: the runner passes Pi only the bundle's
own extension (`packages/harness/src/runner.mjs:223`), and the Claude
Code bundle has one hook, the PreToolUse gate
(`packages/harness/src/bundle.mjs:125-127`). A managed session can
Managed sessions don't load it: the pi module passes Pi only the
harness's own extension (`MOSAIC_EXTENSIONS`,
`packages/plugins/harness/pi/index.mjs:56`), and the Claude Code bundle
has one hook, the PreToolUse gate
(`packages/plugins/harness/claude-code/index.mjs:94-96`). A managed session can
drift into the tells the ms-unslop skill bans and nothing notices.
### Owner and reviewer
@@ -405,6 +428,11 @@ drift into the tells the ms-unslop skill bans and nothing notices.
- `tools/unslop-hook/` (a Claude Code hook script beside the extension;
the checker and `lists.json` change only if a test needs it)
- `packages/harness/src/bundle.mjs`, `runner.mjs`, tests, README
- `packages/plugins/harness/pi/index.mjs`,
`packages/plugins/harness/claude-code/index.mjs` (their `bundle` and
`env`), `packages/plugins/tests/harness.test.mjs`, and the harness
lines of `packages/plugins/README.md`. The harness kind keeps
interface 1 and its export list; a new export stops the row.
- `adapters/README.md`
- `agents/sage/work/queue-<row>/`
@@ -438,6 +466,7 @@ drift into the tells the ms-unslop skill bans and nothing notices.
once, session alive); the counts are readable after the session ends.
- Gate suites: `node tools/unslop-hook/test-unslop-check.js`,
`node --test 'packages/harness/tests/*.test.mjs'`,
`node --test 'packages/plugins/tests/*.test.mjs'`,
`node --test 'packages/cli/tests/*.test.mjs'`, and every
`scripts/test-*.sh`.