Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
4902cb7
feat: show the release cut in the launch preview and retire changelog
REPPL Oct 11, 2026
952bb89
Merge branch 'feat/verb-split-2-version-on-board' into feat/verb-spli…
REPPL Oct 11, 2026
f5268bb
docs: stop the manifest comment naming the retired changelog verb
REPPL Oct 11, 2026
2f90a03
fix: point the loop and the docs lint at ahoy install, not prepare-th…
REPPL Oct 11, 2026
aeb442d
feat: fold prepare-this-repo into ahoy install and retire its page
REPPL Oct 11, 2026
076b764
docs: correct the ahoy chapter's status alias and its user-scope tree
REPPL Oct 11, 2026
c56be93
fix: bump the changelog composer's prompt version for the preview rename
REPPL Oct 11, 2026
864ed6d
Merge branch 'feat/verb-split-3-launch-preview' into feat/verb-split-…
REPPL Oct 11, 2026
df4c1e3
fix: start the ahoy install page from the detection pass, not the mar…
REPPL Oct 11, 2026
a1ba39e
feat: merge memory and source into one library verb
REPPL Oct 11, 2026
b485ce7
feat: report and rewrite a guard hook that runs the old refresh verb
REPPL Oct 11, 2026
fe63ea2
chore: capture the two meanings ingest has under library
REPPL Oct 11, 2026
2f9e622
docs: keep the library chapter's prose free of sub-verb and flag spel…
REPPL Oct 11, 2026
a623879
Merge branch 'feat/verb-split-4-ahoy-install-conventions' into feat/v…
REPPL Oct 11, 2026
46ace4b
fix: keep the guard refusing the retired source ledger flip
REPPL Oct 11, 2026
c76813c
feat: ask whether a library item is private when the person did not say
REPPL Oct 11, 2026
245a961
feat: fold the consult and ingest pages into the library page
REPPL Oct 11, 2026
6895f63
Merge branch 'feat/verb-split-5-library' into feat/verb-split-6-libra…
REPPL Oct 11, 2026
f4b6a41
feat: ban the slash spellings of the five retired plugin pages
REPPL Oct 11, 2026
81f1c8f
docs: add the v0.14.0 upgrade guide for the retired commands
REPPL Oct 11, 2026
3215d76
docs: bring the brief's naming, scope and surfaces pages up to the ve…
REPPL Oct 11, 2026
204d929
fix: restore the trigger phrases the folded plugin pages lost
REPPL Oct 11, 2026
e7b2990
docs: say the hook's refresh exits 0 with no corpus in the upgrade guide
REPPL Oct 11, 2026
ae34018
chore: capture the agents pages the register sweep never checks
REPPL Oct 11, 2026
23509fe
Merge branch 'feat/verb-split-2-version-on-board' into feat/verb-spli…
REPPL Oct 11, 2026
ecbeb04
Merge remote-tracking branch 'origin/main' into feat/verb-split-3-lau…
REPPL Oct 11, 2026
c11f4d7
Merge branch 'feat/verb-split-3-launch-preview' into feat/verb-split-…
REPPL Oct 11, 2026
84642c7
Merge branch 'feat/verb-split-4-ahoy-install-conventions' into feat/v…
REPPL Oct 11, 2026
8991e33
Merge branch 'feat/verb-split-5-library' into feat/verb-split-6-libra…
REPPL Oct 11, 2026
5408e93
Merge branch 'feat/verb-split-6-library-asks' into feat/verb-split-7-…
REPPL Oct 11, 2026
c36ecb3
Merge remote-tracking branch 'origin/main' into feat/verb-split-4-aho…
REPPL Oct 11, 2026
9794461
Merge branch 'feat/verb-split-4-ahoy-install-conventions' into feat/v…
REPPL Oct 11, 2026
815eaf4
Merge branch 'feat/verb-split-5-library' into feat/verb-split-6-libra…
REPPL Oct 11, 2026
e944a19
Merge remote-tracking branch 'origin/main' into feat/verb-split-6-lib…
REPPL Oct 11, 2026
758126f
Merge branch 'feat/verb-split-6-library-asks' into feat/verb-split-7-…
REPPL Oct 11, 2026
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
10 changes: 10 additions & 0 deletions .abcd/development/agents/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,16 @@ over the brief's earlier `1.0.0`-at-close expectation). The four M6 synthesis
agents below entered at `0.1.0`, wired to their `abcd disembark` verbs and
unmeasured; `lifeboat-oracle` has since become `lifeboat-reviewer` at `0.1.1`.

## 2026-10-11 (itd-2610090831227812 — the changelog verb retires into the launch preview)

### release-changelog-composer 0.4.3

PATCH: the read-only preview the definition names as a source of the cut is
now the `cut` member of `abcd launch --dry-run --json`, since `abcd changelog`
retired into the launch preview (spc-2610100613109045, step 3). The cut's
shape and every rule for composing from it are unchanged. Unmeasured, in the
`0.x` band.

## 2026-10-10 (iss-2610091942156774 — sub-agents are taught the rm the guard refuses)

### cold-reading-comparative 0.1.4
Expand Down
2 changes: 1 addition & 1 deletion .abcd/development/brief/01-product/01-press-release.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

## Press Release

> **abcd helps a product thinker realise an intent as a high-fidelity prototype or demonstrator — carrying the why from idea to shipped reality.** State what should exist, why, for whom, and what good looks like, as a press-release intent (`/abcd:intent "<text>"`); abcd holds that why through planning (`/abcd:intent plan`), the readiness gate (`/abcd:intent ready`) and delivery, and when the work lands it is audited against the intent's own acceptance criteria (`/abcd:intent audit`), with the verdict recorded on the intent, so what was promised and what was delivered are read side by side. The lifeboat is a key capability of the same product: point `/abcd:disembark pack <source-repo> <dest>` at any repository — one that has grown unwieldy, or one that died years ago and that abcd never managed — and abcd reads it without writing a single byte back, packing its hard-won knowledge — decisions, principles, pitfalls, the graveyard of what failed, the spine of what was built and why — into a portable lifeboat artefact at `<dest>`, alongside a coverage report that names what it could *not* ground and the questions a human must answer. `/abcd:disembark probe <source-repo>` renders that coverage verdict on its own, and `/abcd:embark from <path>` unpacks a lifeboat into a clean foundation with the same wisdom but none of the cruft. A small command surface rounds out the workflow: install (`/abcd:ahoy install`) and public release (`/abcd:launch ship`); `/abcd:capture` keeps discovered issues structured as the project evolves; and `/abcd:memory` curates a queryable knowledge substrate from those same sources. Bare invocation of any command shows status + suggested next actions; state-mutating actions require an explicit sub-verb (the universal abcd convention).
> **abcd helps a product thinker realise an intent as a high-fidelity prototype or demonstrator — carrying the why from idea to shipped reality.** State what should exist, why, for whom, and what good looks like, as a press-release intent (`/abcd:intent "<text>"`); abcd holds that why through planning (`/abcd:intent plan`), the readiness gate (`/abcd:intent ready`) and delivery, and when the work lands it is audited against the intent's own acceptance criteria (`/abcd:intent audit`), with the verdict recorded on the intent, so what was promised and what was delivered are read side by side. The lifeboat is a key capability of the same product: point `/abcd:disembark pack <source-repo> <dest>` at any repository — one that has grown unwieldy, or one that died years ago and that abcd never managed — and abcd reads it without writing a single byte back, packing its hard-won knowledge — decisions, principles, pitfalls, the graveyard of what failed, the spine of what was built and why — into a portable lifeboat artefact at `<dest>`, alongside a coverage report that names what it could *not* ground and the questions a human must answer. `/abcd:disembark probe <source-repo>` renders that coverage verdict on its own, and `/abcd:embark from <path>` unpacks a lifeboat into a clean foundation with the same wisdom but none of the cruft. A small command surface rounds out the workflow: install (`/abcd:ahoy install`) and public release (`/abcd:launch ship`); `/abcd:capture` keeps discovered issues structured as the project evolves; and `/abcd:library` keeps the documents you consult and curates a queryable knowledge substrate from those same sources. Bare invocation of any command shows status + suggested next actions; state-mutating actions require an explicit sub-verb (the universal abcd convention).
>
> "I know what I want built and I can tell in a minute whether a prototype got it right. What I could never do was hold that line through the engineering. abcd takes the why as I wrote it, builds against it, and shows me what was promised next to what was delivered," said Iris, a product thinker.
>
Expand Down
2 changes: 1 addition & 1 deletion .abcd/development/brief/01-product/02-context.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ The commands this context turns on are these; the generated [CLI reference](../.
- **`/abcd:launch ship`** — cut a curated release from the single repo (the packaging filter denies `.abcd/**`, so the released binaries do not carry it), scrub for PII/secrets, stamp the version, update the marketplace entry. Bare `/abcd:launch` refuses and asks for `--dry-run`; the `--dry-run` flag previews the bundle, its secret scan and the release gates, and writes only its pre-flight report, to the local tier.
- **`/abcd:intent`** — bare quoted `/abcd:intent "<text>"` is the canonical create (spc-30/itd-46), plus the sub-verbs that plan, gate, audit, hold, target and reclassify an intent (`consistency` per itd-48, which superseded itd-31; the CLI reference lists them all), with `refine` / `grill` / `ship` / `shape` remaining design targets. `new` is not a sub-verb: `abcd intent new` is refused and names the quoted create. There is no plain `list` sub-verb — it is folded into the bare render per SD001. Manages **intents** (press-release-format intent docs at `.abcd/development/intents/{drafts,planned,shipped,disciplines,superseded}/`). `plan` promotes an intent to `planned/` and plans the work as a spec on the native spec store ([adr-26](../../decisions/adrs/0026-native-spec-layer-ccpm-backend.md); the companion harness `ccpm` as the deeper backend); `ship` drives that spec to completion (or the full pipeline if from drafts/); a spec-close hook reconciles standalone/bundle intents planned → shipped automatically on a successful close (spc-28 `intent_lifecycle.reconcile`); disciplines move from drafts/ to disciplines/ on plan and stay there. Bare `/abcd:intent` shows status+help.
- **`/abcd:capture`** — capture / list / promote / resolve / wontfix issues (the structured `.abcd/work/issues/` ledger). Issues live at `.abcd/work/issues/{open,resolved,wontfix}/iss-N-<slug>.md`. See itd-4. The cross-corpus synthesist (`/abcd:dredge`) is a draft intent, itd-25.
- **`/abcd:memory`** — curate a queryable knowledge substrate (`ingest` external sources / `ask` queries / `lint` health-checks) from specs, ADRs, reviews, and memory. See itd-36 and [`05-internals/07-memory.md`](../05-internals/07-memory.md).
- **`/abcd:library`** — keep the sources corpus (`init` / `add` / `declassify` / `ledger` / `sync-banlist` / `cite-check`, per itd-76) and curate a queryable memory store (`ingest` external sources / `ask` queries / `lint` health-checks) from specs, ADRs, reviews, and memory, two stores under one command (itd-2610090831227812). See itd-36, [`04-surfaces/07-library.md`](../04-surfaces/07-library.md) and [`05-internals/07-memory.md`](../05-internals/07-memory.md).

**Designed, not built: the `intent grill` sub-verb** (beside `refine`, also a design target; `abcd intent` registers neither, and [`04-surfaces/README.md`](../04-surfaces/README.md) holds the design target):

Expand Down
2 changes: 1 addition & 1 deletion .abcd/development/brief/01-product/03-mental-model.md
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ abcd already covers Mapping (press release + acceptance criteria) and Justificat

## The project is a growing system

abcd is itself a growing system that shows the symptoms of all growing systems: surface count grows (the user-facing command design target — `/abcd:ahoy`, `/abcd:disembark`, `/abcd:embark`, `/abcd:launch`, `/abcd:intent`, `/abcd:capture`, `/abcd:memory` — plus many sub-verbs); agent count grows (the catalog already lists more than a dozen agents, several with multiple roles each — see [`05-internals/01-agents.md`](../05-internals/01-agents.md)); cross-cutting concerns proliferate (the active roster in [`intents/disciplines/`](../../intents/disciplines/) keeps growing); internal vocabulary grows (`lifeboat`, `voyage`, `logbook`, `discipline`, `kind`, `surface_history`, `page class`, `source class`, `quotation budget`, …). Every term adds expressive power AND opacity for newcomers.
abcd is itself a growing system that shows the symptoms of all growing systems: surface count grows (the user-facing command design target — `/abcd:ahoy`, `/abcd:disembark`, `/abcd:embark`, `/abcd:launch`, `/abcd:intent`, `/abcd:capture`, `/abcd:library` — plus many sub-verbs); agent count grows (the catalog already lists more than a dozen agents, several with multiple roles each — see [`05-internals/01-agents.md`](../05-internals/01-agents.md)); cross-cutting concerns proliferate (the active roster in [`intents/disciplines/`](../../intents/disciplines/) keeps growing); internal vocabulary grows (`lifeboat`, `voyage`, `logbook`, `discipline`, `kind`, `surface_history`, `page class`, `source class`, `quotation budget`, …). Every term adds expressive power AND opacity for newcomers.

Three failure modes the brief actively guards against:

Expand Down
6 changes: 3 additions & 3 deletions .abcd/development/brief/01-product/04-scope.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,11 @@ The scope this brief covers is the intents on the lifecycle shelves: what has sh
- `/abcd:launch` — public promotion — see [`04-surfaces/04-launch.md`](../04-surfaces/04-launch.md)
- `/abcd:intent` — press-release intent capture — see [`04-surfaces/05-intent.md`](../04-surfaces/05-intent.md)
- `/abcd:capture` — issue ledger — see [`04-surfaces/06-capture.md`](../04-surfaces/06-capture.md)
- `/abcd:memory` — multi-upstream curated knowledge substrate (per itd-36) — see [`05-internals/07-memory.md`](../05-internals/07-memory.md)
- `/abcd:library` — the sources corpus (per itd-76) and the multi-upstream curated memory store (per itd-36), two stores under one command (itd-2610090831227812) — see [`04-surfaces/07-library.md`](../04-surfaces/07-library.md) and [`05-internals/07-memory.md`](../05-internals/07-memory.md)
- `/abcd` — top-level where-am-i status board (per itd-20) — see [`04-surfaces/08-abcd.md`](../04-surfaces/08-abcd.md)
- `/abcd:reflect` — release retrospective, a design target (itd-24, planned) — see [`04-surfaces/09-reflect.md`](../04-surfaces/09-reflect.md)
- `/abcd:reflect` — release retrospective (itd-24, shipped), an agent's command since itd-2610090831227812 — see [`04-surfaces/09-reflect.md`](../04-surfaces/09-reflect.md)

**Operator-internal commands** (wiring rather than user-facing surface): `/abcd:run` — the itd-29 autonomous-run operator surface (`status`/`pause`/`resume`/`preflight`; read-mostly over the pluggable autonomous-run seam ([adr-27](../../decisions/adrs/0027-autonomous-run-pluggable-seam.md)), v1 never starts or kills the loop) — is not built: itd-29 is superseded (by itd-2609201916151817, planned), and no `run` verb or `commands/run.md` is on any shipped surface. The operator-internal verbs the binary does register are `changelog`, `completion`, `hook`, `rules`, `spec` and `statusline`, and the class is defined by the absence of a `commands/` file rather than by the presence of one. See [`04-surfaces/README.md`](../04-surfaces/README.md) for the user-facing-vs-operator-internal boundary and the record that delivered each.
**Operator-internal commands** (wiring rather than user-facing surface): `/abcd:run` — the itd-29 autonomous-run operator surface (`status`/`pause`/`resume`/`preflight`; read-mostly over the pluggable autonomous-run seam ([adr-27](../../decisions/adrs/0027-autonomous-run-pluggable-seam.md)), v1 never starts or kills the loop) — is not built: itd-29 is superseded (by itd-2609201916151817, planned), and no `run` verb or `commands/run.md` is on any shipped surface. The operator-internal verbs the binary does register are `completion`, `hook`, `rules`, `spec` and `statusline`, and the class is defined by the absence of a `commands/` file rather than by the presence of one. See [`04-surfaces/README.md`](../04-surfaces/README.md) for the user-facing-vs-operator-internal boundary and the record that delivered each.

**Intents: derived, never hand-counted here.** The shelves are the single source
of what is shipped, committed and benched, and this page keeps no static copy of
Expand Down
2 changes: 1 addition & 1 deletion .abcd/development/brief/02-constraints/02-dependencies.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ environment every abcd subprocess gets, its own output discarded.
Armed with no gitleaks binary installed is one state with one consequence per
consumer. A release (`launch`) and a lifeboat (`disembark pack`) refuse on it,
the privacy lint reports it as an error, and the write paths — transcript
capture, issue capture, memory ingest — write with the native scanner and name
capture, issue capture, the memory store's ingest — write with the native scanner and name
the gap in their receipt. A gitleaks run that fails, a report the scanner cannot
place, or a configured path the adapter refuses degrades the scanner instead:
every consumer treats that as it treats a broken `pii.json`.
Expand Down
22 changes: 12 additions & 10 deletions .abcd/development/brief/02-constraints/04-naming.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ record, so an exemption is a decision rather than an omission.

| Path / command | Meaning |
|---|---|
| `/abcd:ahoy` | hail a project → install abcd into it, or report what is installed. The bare form and the read-only sub-verbs report; `install`, `uninstall` and `remote apply` are the write paths. See [`../04-surfaces/01-ahoy.md`](../04-surfaces/01-ahoy.md) |
| `/abcd:ahoy` | hail a project → install abcd into it, or report what is installed. The bare form and the read-only sub-verbs report; `install`, `uninstall`, `connect`, `remote apply` and `credential` (with `--home`) are the write paths. See [`../04-surfaces/01-ahoy.md`](../04-surfaces/01-ahoy.md) |
| `/abcd:disembark` | leave the ship → pack a lifeboat for the journey |
| `/abcd:embark` | board a new ship → unpack the lifeboat |
| `/abcd:launch` | put the (cleaned) ship to sea publicly |
Expand Down Expand Up @@ -52,10 +52,11 @@ The exemptions carrying a rationale of their own:
board.

The remaining surfaces are exempt for the plain reason that no maritime cognate
adds meaning: `banlist`, `changelog`, `consult`, `decide`, `docs`, `guard`,
`history`, `ideate`, `identity`, `ingest`, `lint`, `memory`,
`prepare-this-repo`, `reading`, `rules`, `site`, `spec`, and `update`. They
are registered here so the exemption is on the record.
adds meaning: `banlist`, `build`, `dashboard`, `decide`, `docs`, `drain`,
`guard`, `history`, `hook`, `ideate`, `identity`, `implement`, `inbox`, `lab`,
`library`, `lint`, `mode`, `peers`, `reading`, `report`, `rules`, `scribe`,
`site`, `spec`, `statusline`, and `update`. They are registered here so the
exemption is on the record.

**Reserved meta-development commands** (later phases; named now to prevent
collisions):
Expand Down Expand Up @@ -97,10 +98,11 @@ are **forbidden** at design time rather than argued about in review. Lint code
held by review.

**Conformance is partial, and the gap is the shipped surface's rather than the
discipline's.** Several parents print usage with no state, two verbs refuse
instead of rendering, and `history` breaks the rule from both ends at once: bare
`abcd history` renders nothing while `history list` and `history show` exist,
which is exactly the shape the rule forbids. The one enumeration of where the
discipline's.** Several parents print usage with no state, three verbs
(`launch`, `decide` and `build`) refuse instead of rendering, and `history`
breaks the rule from both ends at once: bare `abcd history` renders nothing
while `history list` and `history show` exist, which is exactly the shape the
rule forbids. The one enumeration of where the
convention holds and where it does not lives in
[`../04-surfaces/README.md`](../04-surfaces/README.md#bare-invocation); the
per-verb inventory of registered sub-verbs is the machine-checked `## Sub-verbs`
Expand Down Expand Up @@ -179,7 +181,7 @@ Two things to read the table with:
| Lifecycle classes ∈ `{regenerable, append-only, compounding-curated}` | Artefact lifecycle taxonomy | `05-internals/04-universal-patterns.md § 8` |
| Review verdicts ∈ `{SHIP, NEEDS_WORK, MAJOR_RETHINK}` | Carmack-style review verdicts | `05-internals/01-agents.md § Verdict-tag protocol` |
| Criterion verdicts ∈ `{MET, MET_WITH_CONCERNS, NOT_MET, INCONCLUSIVE}` | Per-criterion intent acceptance | itd-1 |
| `task_classes` (capability_scope tokens) ∈ `{oracle_review, intent_audit, spec_planning, code_rescue, principle_distillation, lifeboat_packing, audit, lint, surface_render, cross_document_audit, cold_reading}` | Closed enum, agent frontmatter, PR-to-extend. `cold_reading` names the four blind reading positions (itd-184): reusing `cross_document_audit` would name them as audits, and an audit judges against a standard, which is precisely the licence a widening reading does not hold. `oracle_review` names review work that reaches a model through the adr-25 **oracle seam** — the seam keeps its name even where the verb that consumes it does not (`disembark review`, spc-30), so the token survived that rename unchanged. This table is the source of truth today: the binary carries no `task_classes` schema and no cross-check test reads the field (iss-265). | itd-5 extension (idea-4) — lean ~10 tokens drawn from current abcd surfaces |
| `task_classes` (capability_scope tokens) ∈ `{oracle_review, intent_audit, spec_planning, code_rescue, principle_distillation, lifeboat_packing, audit, lint, surface_render, cross_document_audit, cold_reading, intent_consistency}` | Closed enum, agent frontmatter, PR-to-extend. `intent_consistency` names the intent auditor's cross-document role, which reads the brief and the intents together for contradictions (`agents/intent-auditor.md`). `cold_reading` names the four blind reading positions (itd-184): reusing `cross_document_audit` would name them as audits, and an audit judges against a standard, which is precisely the licence a widening reading does not hold. `oracle_review` names review work that reaches a model through the adr-25 **oracle seam** — the seam keeps its name even where the verb that consumes it does not (`disembark review`, spc-30), so the token survived that rename unchanged. This table is the source of truth for the values: the binary carries no `task_classes` schema, and record-lint's agent contract (`internal/core/lint/agentcontract.go`) checks only that an agent reading untrusted input declares the field, never which values it holds (iss-265). | itd-5 extension (idea-4) — lean ~10 tokens drawn from current abcd surfaces |
| `frozen_content_hash` | **(predecessor vocabulary; superseded by the native spec store, [`../../specs/README.md`](../../specs/README.md))** SHA-256 hex string written to PRD frontmatter by `/abcd:intent plan` at freeze time. Non-self-referential: provenance fields included, operational fields excluded. Recipe documented in `prd.schema.json`. | spc-3 (predecessor store), task .5 |
| `intent_source_hash` | **(predecessor vocabulary; superseded by the native spec store, [`../../specs/README.md`](../../specs/README.md))** SHA-256 hex string computed over the parent intent's body + stable frontmatter. Written by grill skill as `grilled_intent_hash`; copied to PRD as `source_intent_hash`. Recipe documented in `prd.schema.json`. | spc-3 (predecessor store), task .5 |
| `planning_attempt_id` | **(predecessor vocabulary; superseded by the native spec store, [`../../specs/README.md`](../../specs/README.md))** UUIDv4 written to PRD frontmatter and the durable attempt journal by `/abcd:intent plan`. Used by GR004 to detect stale planning attempts. | spc-3 (predecessor store), task .5 |
Expand Down
Loading
Loading