Skip to content

fix(cli/docs): close CLI↔doc friction surfaced by a playbook dogfood#446

Merged
eris-ths merged 1 commit into
mainfrom
fix/cli-doc-friction
Jun 23, 2026
Merged

fix(cli/docs): close CLI↔doc friction surfaced by a playbook dogfood#446
eris-ths merged 1 commit into
mainfrom
fix/cli-doc-friction

Conversation

@eris-ths

Copy link
Copy Markdown
Owner

What

A walkthrough of guild → gate → agora → ctx → devil (and "what if the entry point is guild, not gate?") surfaced gaps between the docs and the running CLI. Each fix was decided on the substrate (gate request + agora play + principle-grounded review), not by desk reasoning.

Changes (with the principle each is grounded in)

  • gate issues promote gains --format json|text — it was a write verb with no --format, so an agent couldn't receive the created request id as JSON. That's a schema-as-contract gap (principle 10): every other write verb returns the unified ok/id/state/message/suggested_next envelope. promote now shares it via emitWriteResponse; the resolved-issue id rides in message so both ids stay greppable (records-outlive-writers, principle 04). Text output unchanged; no --format → text (back-compatible). Decided in agora play promote-format-impl with devil (shape integrity) + noir (principle 04).
  • guild --help discloses the four passages — guild was member-management-only, leaving a guild-entry agent with no in-CLI path to the passages where work happens (orientation-disclosure, principle 09). Now names gate/agora/devil/ctx with <passage> --help pointers and a newcomer path to gate --help + AGENT.md.
  • playbook: gate review --comment--note (--comment is a deprecated alias).
  • playbook / AGENT.md: "solo profile" → "standard" — valid profiles are standard | swarm; "solo" is the situation, not a config value.
  • playbook X2: ctx chain only walks links between ctx facts; a breadcrumb naming an agora/gate id is found by its tag, not by chain (was overclaimed in the prior chain PR — corrected per principle 03 legibility-costs: don't pad the docs).

Not a bug (dropped after schema-first check)

The walkthrough first suspected "gate issues promote requires --reason". Verified on the real CLI: --reason is optional (the handler defaults it). The original error was a misread unknown flag: --format. Dropped — the playbook's [--reason] was already correct.

Filed as follow-up issues (different layer)

ctx chain cross-passage walk (#5b), play-id game collision needing --game (#9), gate voices vs agora-move channel boundary docs (#10).

Verification

  • Full suite 1865/1865 green (node tests/run.mjs, exit 0).
  • New tests: issuePromoteFormat (envelope keys + back-compat), guildHelpPassages (passage disclosure + member-mgmt retained).
  • Dogfooded through the real binary; merge-readiness reviewed by noir + devil (both ok).

🤖 Generated with Claude Code

A walkthrough of guild→gate→agora→ctx→devil (and 'what if guild is the
entry point?') surfaced gaps between the docs and the running CLI. Fixed:

- gate issues promote gains --format json|text (was a write verb with no
  --format — a schema-as-contract gap, principle 10). Shares the unified
  write envelope via emitWriteResponse; resolved-issue id rides in message
  (records-outlive-writers). Decided in agora play promote-format-impl with
  devil (shape integrity) + noir (principle 04) review.
- guild --help now discloses the four passages with --help pointers and a
  newcomer path to gate (orientation-disclosure, principle 09). guild was
  member-mgmt-only, leaving guild-entry agents with no path to the passages.
- playbook: gate review --comment → --note (--comment is a deprecated alias).
- playbook/AGENT.md: 'solo profile' → 'standard' (valid profiles are
  standard|swarm; 'solo' is the situation, not a config value).
- playbook X2: ctx chain only walks links between ctx facts; a breadcrumb
  naming an agora/gate id is found by its tag, not by chain (was overclaimed).

Tests: issuePromoteFormat (envelope + back-compat), guildHelpPassages.
Full suite 1865/1865 green. Note: the originally-suspected 'promote
--reason required' was a misread (it's optional) — dropped, not a bug.
@eris-ths eris-ths merged commit 78583f4 into main Jun 23, 2026
5 checks passed
@eris-ths eris-ths deleted the fix/cli-doc-friction branch June 23, 2026 10:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant