Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions docs/adapters/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,10 @@ package through the `pi` manifest in `package.json`.
| Host | Positioning | Shell | Configured Assets | Session Evidence | Default Output | Rules / Prompts | Smoke |
| --- | --- | --- | --- | --- | --- | --- | --- |
| Claude Code | Analysis-capable source-local host | `.claude-plugin/` | `scripts/agent-customize/providers/claude.mjs` | `scripts/session-analysis/platforms/claude.mjs` | self-contained HTML + Markdown | `.claude` + `CLAUDE.md` + Plugin assets | `claude plugin validate --strict .` -> isolated install/discovery -> configured-asset baseline -> validated `html` render |
| Codex | Analysis-capable source-local host | `.codex-plugin/` | `scripts/agent-customize/providers/codex.mjs` | `scripts/session-analysis/platforms/codex.mjs` | self-contained HTML + Markdown | `.codex` + `.agents` + `AGENTS.md` | `harness prepare --platform codex` -> finalize with `html-report` validation |
| Codex | Analysis-capable source-local host | `.codex-plugin/` | `scripts/agent-customize/providers/codex.mjs` | `scripts/session-analysis/platforms/codex.mjs` | self-contained HTML + Markdown | `.codex` + `.agents` + `AGENTS.md` | `harness analyze --platform codex` -> `harness render --mode html --validate` |
| Qoder | First-class product host | `.qoder-plugin/` | `scripts/agent-customize/providers/qoder.mjs` | `scripts/session-analysis/platforms/qoder.mjs` | `better-harness` | `.qoder/rules` + `AGENTS.md` + output templates | `better-harness harness render --mode qoder-canvas --validate` |
| Cursor | Analysis-capable source-local host | `.cursor-plugin/` | `scripts/agent-customize/providers/cursor.mjs` | `scripts/session-analysis/platforms/cursor.mjs` | self-contained HTML + Markdown | `.cursor` + `.codex` compatibility + `AGENTS.md` | `agent --plugin-dir . --mode ask --print` -> Cursor evidence bundle -> validated `html` render |
| Qwen Code | Analysis-capable source-local host | `qwen-extension.json` | `scripts/agent-customize/providers/qwen.mjs` | `scripts/session-analysis/platforms/qwen.mjs` | self-contained HTML + Markdown | `.qwen` + `QWEN.md` + `AGENTS.md` | `harness prepare --platform qwen` -> finalize with `html-report` validation |
| Cursor | Analysis-capable source-local host | `.cursor-plugin/` | `scripts/agent-customize/providers/cursor.mjs` | `scripts/session-analysis/platforms/cursor.mjs` | no supported durable-report pipeline yet (roadmap HA-03) | `.cursor` + `.codex` compatibility + `AGENTS.md` | packaged `cursor-agent --plugin-dir` runtime smoke is not yet available (roadmap HA-04) |
| Qwen Code | Analysis-capable source-local host | `qwen-extension.json` | `scripts/agent-customize/providers/qwen.mjs` | `scripts/session-analysis/platforms/qwen.mjs` | self-contained HTML + Markdown | `.qwen` + `QWEN.md` + `AGENTS.md` | `harness analyze --platform qwen` -> `harness render --mode html --validate` |
| GitHub Copilot | Analysis-capable source-local host | `.github/plugin/` | `scripts/agent-customize/providers/copilot.mjs` | `scripts/session-analysis/platforms/copilot.mjs` | self-contained HTML + Markdown | `.github` + `AGENTS.md` + `~/.copilot` | `copilot plugin marketplace add .` -> `copilot plugin install better-harness@better-harness` -> configured-asset baseline -> validated `html` render |
| Pi | Analysis-capable source-local host | `pi` manifest in `package.json` | `scripts/agent-customize/providers/pi.mjs` | `scripts/session-analysis/platforms/pi.mjs` | self-contained HTML + Markdown | `.pi` + `.agents` + `AGENTS.md` | `pi install <source>` or `pi -e <source>` -> `/better-harness` prompt template -> validated `html` render |
| WorkBuddy | Analysis-capable source-local host | none (skills install into `~/.workbuddy/skills`) | `scripts/agent-customize/providers/workbuddy.mjs` | `scripts/session-analysis/platforms/workbuddy.mjs` | self-contained HTML + Markdown | `~/.workbuddy` `AGENTS.md` + identity files + `.agents` + `AGENTS.md` | `session-analysis --platform workbuddy sources` -> validated `html` render |
Expand Down
108 changes: 108 additions & 0 deletions docs/specs/2026-07-28-a05-adapter-docs-stale-commands.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
# Adapter Matrix Stale Commands Cleanup

Fix stale smoke commands in the Host Adapter Matrix so every referenced CLI
step exists in the current implementation and the Cursor row does not claim a
runtime smoke that the roadmap tracks as missing. This is roadmap P0 item A-05.

## Traceability

- Spec ID: 2026-07-28-a05-adapter-docs-stale-commands
- Story: roadmap.md TODO A-05
- Status: Implemented

## Roadmap Rebase Note (2026-07-30)

After this spec was implemented, `roadmap.md` was rewritten as the Loop
Control Plane roadmap and the old `A-*` / `C-*` / `U-*` / `L-*` / `X-*` table
was removed. Consequences for this spec:

- The `A-05` roadmap row no longer exists; this spec's Status line is the
completion record, and A-05 is listed in the roadmap's completed
adapter-enablement work note.
- Open items `U-03` and `U-04` were superseded by the Host Adapter Enablement
track: the Cursor durable-report gap now falls under `HA-03` and the
packaged runtime smoke under `HA-04`. The Cursor matrix cells and the
guarding `test/better-harness-skill.test.mjs` assertion now point to
`HA-03` / `HA-04`; the `U-03` / `U-04` references below are kept as the
original acceptance record.
- Plan step 4 (checking A-05 off in `roadmap.md`) is obsolete for the same
reason.

## Intent

The `docs/adapters/README.md` matrix drifted from the shipped CLI:

1. The Codex Smoke cell references `harness prepare --platform codex` and a
standalone `html-report` validation step. The registry has no `prepare`
subcommand, and `html-report` is not a CLI step: it is the HTML validator
check id inside the renderer
(`scripts/harness-analysis/renderers/html.mjs`). Rendering/validation runs
through `harness analyze` plus `harness render --mode html --validate`
(`scripts/better-harness-cli/registry.mjs`,
`scripts/harness-analysis/render-report.mjs`).
2. The Cursor Smoke cell presents `agent --plugin-dir . --mode ask --print ->
Cursor evidence bundle -> validated html render` as an existing smoke
chain, while `roadmap.md` records Cursor Harness analysis as No and tracks
the packaged runtime smoke as open item U-04. The missing contract is a
real Better Harness Cursor host smoke, not the binary name: `agent` is the
current primary Cursor CLI and `cursor-agent` is a legacy alias for the
same executable, and both accept `--plugin-dir`.
3. The Cursor Default Output cell claims a `self-contained HTML + Markdown`
pipeline, but `roadmap.md` records Cursor Durable report as "No supported
pipeline" and tracks the static-only report route as open item U-03. A
documentation string is not host or runtime proof, so the column must not
assert a working output pipeline.

The Claude Code and Codex Default Output columns and `html-visual.md` routing
already match the durable-HTML product decision from
`docs/specs/2026-07-27-claude-durable-html-default.md` and stay unchanged.

## Acceptance Scenarios

- AC-1: The matrix's Codex Smoke cell uses only commands that exist today and
states validation explicitly: `harness analyze --platform codex` followed by
`harness render --mode html --validate`; the strings `harness prepare` and
`html-report` no longer appear in `docs/adapters/README.md`. `harness render`
defaults `--validate` to false, so the flag must be written out.
- AC-2: The Cursor Smoke cell no longer claims an existing evidence-bundle ->
validated render smoke chain; it states that the packaged runtime smoke is
not yet available and points to roadmap item U-04.
- AC-3: The Cursor Default Output cell no longer claims a
`self-contained HTML + Markdown` pipeline; it marks the durable-report
output as not yet supported and points to roadmap item U-03, matching the
roadmap's "No supported pipeline" record.
- AC-4: `test/agent-customize-architecture.test.mjs` still passes unchanged.
`test/better-harness-skill.test.mjs` is updated so its Cursor row assertion
matches the pending-U-03 output marker instead of the removed
`self-contained HTML + Markdown` claim; the Claude Code row assertion stays
unchanged.
- AC-5: `node --test test/doc-link-graph.test.mjs` passes; no markdown links
change.

## Non-Goals

- No change to the Session Evidence columns, or to the Claude Code and Codex
Default Output columns; their durable-HTML defaults are an accepted product
contract guarded by `test/better-harness-skill.test.mjs`.
- No new Cursor report route or runtime smoke; U-03 and U-04 stay open. This
change only stops the docs from overstating unshipped Cursor output.
- No support-declaration consistency tests (tracked separately as A-06).
- No CLI, renderer, or provider code changes.

## Plan

1. Rewrite the Codex Smoke cell to the current
`harness analyze --platform codex` -> `harness render --mode html --validate`
chain, writing the `--validate` flag out explicitly.
2. Mark the Cursor Smoke cell runtime smoke as pending roadmap U-04 instead of
claiming a working chain, without a binary-name change (`agent` and
`cursor-agent` are the same executable).
3. Mark the Cursor Default Output cell as pending roadmap U-03 and update the
guarding `test/better-harness-skill.test.mjs` Cursor assertion to match.
4. Check A-05 off in `roadmap.md`.

## Test Evidence

- `node --test test/agent-customize-architecture.test.mjs`
- `node --test test/better-harness-skill.test.mjs`
- `node --test test/doc-link-graph.test.mjs`
3 changes: 2 additions & 1 deletion roadmap.md
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,8 @@ not duplicate that matrix.
| Runtime | Loop Spec, automation-readiness, primitive, state-ledger, and intervention concepts are documented | There is no canonical `loop plan / run / resume / stop / verify` protocol or side-effect journal |

Completed adapter-enablement work includes the help-only `agent-customize` path
(`A-04`), support-declaration consistency tests (`A-06`), deterministic Cursor
(`A-04`), stale adapter documentation and smoke-command cleanup (`A-05`),
support-declaration consistency tests (`A-06`), deterministic Cursor
plugin-ID matching removal (`U-01`), and the new-host contribution checklist
(`X-02`). These are prerequisites, not proof that a closed improvement loop is
available.
Expand Down
2 changes: 1 addition & 1 deletion test/better-harness-skill.test.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ test("non-Qoder providers default to validated durable HTML with an explicit inl
assert.match(routing, /Portable HTML report \| Active host is Claude Code, Codex, Cursor, Qwen Code, GitHub Copilot, or Pi/);
assert.match(routing, /Inline only \| Inline or no-files output is explicitly requested \| none; inline analysis writes nothing/);
assert.match(adapters, /Claude Code[^\n]+scripts\/session-analysis\/platforms\/claude\.mjs[^\n]+self-contained HTML \+ Markdown/);
assert.match(adapters, /Cursor[^\n]+scripts\/session-analysis\/platforms\/cursor\.mjs[^\n]+self-contained HTML \+ Markdown/);
assert.match(adapters, /Cursor[^\n]+scripts\/session-analysis\/platforms\/cursor\.mjs[^\n]+no supported durable-report pipeline yet \(roadmap HA-03\)/);
assert.match(adapters, /Pi[^\n]+scripts\/session-analysis\/platforms\/pi\.mjs[^\n]+self-contained HTML \+ Markdown/);
assert.doesNotMatch(adapters, /Inline repository review only|No Claude\s+session-evidence adapter/);
assert.match(readme, /Claude Code defaults to a self-contained `report\.html`/);
Expand Down