* enhance(#4139): Phase 8 — the toggle becomes discoverable, and the ledger closes ADR-4139's final phase. workflow.compact_content already defaulted to false (Phase 1's buildNewProjectConfig hardcoded default), but nothing surfaced it: /gsd-new-project never asked, and /gsd-settings/config had no toggle path for an already-initialized project — config-set/config-get were the only route. new-project.md gains a fourth question in the existing Round 2 AskUserQuestion array (grouped with the other general-workflow-behavior toggles, not the per-agent capability questions above it) and threads compact_content into the config-new-project CLI JSON literal. settings.md mirrors the exact pattern every other non-capability workflow.* key already follows: read_current bullet, question block, update_config write, the safe-merge non-capability-keys list, save_as_defaults, and the confirm summary table — seven edits, zero new src/*.cts code, since Phase 1's merge logic is a generic passthrough. Its success_criteria question-count ("24 settings") is bumped to 25 to match the now-25-entry main AskUserQuestion batch. settings-advanced.md deliberately does NOT get a duplicate question: no other boolean toggle in this repo is asked in both settings.md and settings-advanced.md, and there's no reason to start with this one. docs/CONFIGURATION.md, docs/USER-GUIDE.md, and a new docs/features/4139-compact- content.md fragment (regenerated into docs/FEATURES.md) document the toggle. ADR-4139 itself: Status flips Proposed -> Accepted, the acceptance-criteria section becomes a guard ledger — a 13-row table covering all 12 of #4139's original checkboxes plus the shipped-content guard criterion, each with real evidence (the merged PR that satisfied it, fetched via `gh issue view --json closedByPullRequestsReferences` rather than asserted from phase numbers) — and both "Open questions for the implementation phases" are resolved rather than left dangling: discuss-phase was never converted to spine+detail shape (verified: no detail/ subdir exists) — a genuine gap, not a reasoned decline; the disjointness check is confirmed line-based by reading compact-content-split.cjs's normalizeNonTrivialLines directly. Orthogonal review (isolated Standards/Spec code-review + security-review sub-agents) found and this fixes two real defects: the changeset fragment's body didn't match CONTRIBUTING.md's single em-dash-sentence format (was multi-sentence prose naming implementation file paths); and settings.md's own success_criteria still said "24 settings" after the new question pushed the main batch to 25. Also fixed, found by the Spec pass while confirming commands/gsd/settings.md correctly needed no sync edit: that file and its skills/gsd-settings/SKILL.md twin both still described "Interactive 5-question prompt (model, research, plan_check, verifier, branching)", stale since long before this phase (the batch has had far more than 5 questions for a while) — replaced with a description that names the current set without hardcoding a count that will drift again. gsd-test (real run, sha 1da78fe2) caught a third real regression the local sweep missed: new-project.md is a registered spine+detail split for Phase 4's token-reduction benchmark (scripts/benchmark-compact-content.cjs), and the new question's +167 tokens drifted the committed baseline (tests/fixtures/compact-content-benchmark-baseline.json). The benchmark itself is designed never to fail CI on drift, but the test asserting the COMMITTED baseline is currently non-drifted correctly caught it. Regenerated via `node scripts/benchmark-compact-content.cjs --write`; re-verified --check now reports "up to date" and the test file passes 27/27. Closes #4408. Closes #4139. Emitted-Drift-Ack-Growth: new-project.md — new 4th Round-2 AskUserQuestion entry (Compact Content, #4139) plus the config-new-project CLI JSON field and explanatory sentence; a new opt-in toggle needs new prose. Emitted-Drift-Ack-Growth: settings.md — new workflow.compact_content read_current bullet, question block, update_config write, safe-merge key, save_as_defaults field, and confirm summary row (the same seven-edit pattern every other non-capability workflow.* toggle already follows), plus the 24->25 success_criteria count fix found in review. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * chore(#4408): backfill changeset PR number pr:0 -> pr:4587 now that gh pr create has returned the real number. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> --------- Co-authored-by: sim <sim@local> Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -567,6 +567,35 @@ Intel commands (`intel status`, `intel query`, `intel diff`, `intel snapshot`, `
|
||||
|
||||
For intel, conditions 1 and 2 are always satisfied (intel has no skill files). The effective gate is `intel.enabled` in config — the same behaviour as before, but now enforced through the shared `isCapabilityActive('intel', cwd)` resolver rather than a direct config read. This means intel honours the full capability-state pipeline, including any future install-profile or surface restrictions. If intel commands return `{ disabled: true }`, ensure `intel.enabled: true` is set in `.planning/config.json` and verify `gsd-tools capability state` shows intel as active.
|
||||
|
||||
### Compact content mode (`workflow.compact_content`, v4139+)
|
||||
|
||||
GSD's own workflow instructions, planning-artifact templates, and (for non-Claude runtimes)
|
||||
agent personas are prose — and a large eagerly-loaded instruction body is context the model
|
||||
spends on GSD's own orchestration rather than on your code. `workflow.compact_content` (default
|
||||
`false`) opts a project into token-minimized variants of that content wherever one has been
|
||||
authored, without changing what GSD actually does.
|
||||
|
||||
**Why turn it on: finite attention, not price.** The point of this key is not a cheaper
|
||||
invocation — with prompt caching, the per-request cost of re-sending a large instruction file
|
||||
is already small. The point is what a large always-loaded instruction body costs in *attention*:
|
||||
every byte of GSD's own prose sitting in context is a byte not spent reasoning about your
|
||||
codebase. That cost is paid whether or not the tokens were cheap to transport. Turn it on when
|
||||
you're running long sessions, working in a large codebase that already competes for context, or
|
||||
on a runtime with a small context window; leave it off (the default) if you'd rather have every
|
||||
elaboration and worked example available up front, or you're evaluating GSD for the first time
|
||||
and want full detail while you learn how it thinks.
|
||||
|
||||
**What actually changes.** Nothing is compressed at runtime. Every compact variant is a
|
||||
hand-authored, reviewed file sitting beside its canonical sibling — the key only chooses which
|
||||
one GSD reads. Guardrails, output-format contracts, few-shot examples, and security language are
|
||||
never shortened or dropped in a compact variant; only rarely-needed elaboration and restatement
|
||||
are. With the key off, behavior is unchanged from before this feature existed.
|
||||
|
||||
**How to turn it on:** answer "Yes" to the Compact Content question during `/gsd-new-project`,
|
||||
or run `/gsd-settings` (or `/gsd-config` with no flag) on an existing project and toggle
|
||||
Compact Content. See [`docs/CONFIGURATION.md`](CONFIGURATION.md#workflow-toggles) for the
|
||||
mechanics and [ADR-4139](adr/4139-compact-content-seam.md) for the full design rationale.
|
||||
|
||||
---
|
||||
|
||||
## Usage Examples
|
||||
|
||||
Reference in New Issue
Block a user