Every command, when called with no arguments, shows help and a status summary — a universal abcd convention so users never have to remember sub-verbs. Bare invocation never mutates state; every state-changing operation requires an explicit sub-verb.
One table per command, alphabetical. Every table uses the same four 25%-width columns (Sub-verb, Flags, Description, Intent), so columns line up consistently across the section. The Intent column links to the source intent document.
Single entry point that surfaces what's happening across the project — active intents, in-flight epics, agents, and pending decisions — and points to the right next command.
| Top-level dispatcher: shows status across active intents, epics, and agents; suggests next actions. | itd-20 |
Bring abcd aboard — install, update, or remove the plugin in this repo. The boarding-greeting verb that announces abcd's arrival on the project.
| (bare) | Status + help: shows whether `abcd` is installed, current plugin version, and suggested next actions (install / uninstall / destroy). | ||
install | Install or update the `abcd` plugin in this repo (idempotent; covers first-install and upgrade). | ||
uninstall | Reversible marker-only removal: removes the `abcd` marker block from CLAUDE.md/AGENTS.md and the symlink. Re-running install re-installs cleanly. Does NOT remove .abcd/. | ||
dry-run | Show what install would write without writing — proposed marker block, gitignore changes, dependency probe results. | ||
destroy | Nuclear uninstall: removes `abcd`-managed files, lifeboat artefacts, and coordination state. Distinct from the reversible uninstall; the verb sounds dangerous because it is. | itd-10 |
Compliance-grade audit umbrella. The whole verb covers tamper-evidence; specific applications (chain over conversations/edits, lifeboat integrity, future audit kinds) register as sub-verbs that share the same JCS + UUIDv7 + Merkle substrate.
| (bare) | Status + help: shows last audit timestamp, current chain head, and the registered sub-verbs (chain / lifeboat / …) with suggested next actions. | itd-16 | |
chain | Hash-chain / Merkle audit of the project's conversation and edit history (default application; verifies the chain end-to-end and writes a verification report). | itd-16 | |
lifeboat <path> | Verify a lifeboat artefact's integrity outside the embark flow (compliance spot-check). Reuses the chain substrate; writes to .abcd/logbook/audit/lifeboat-<ts>/. | itd-35 |
A lightweight ledger for issues, nitpicks, and observations discovered mid-flight — log them without breaking flow, triage later, optionally promote to intents.
| (bare) | Status + help: shows open issue count and recent captures. | ||
"<text>" | Log a new issue; writes to .abcd/development/activity/issues/open/iss-N-<slug>.md with frontmatter populated. | ||
resolve <iss-N> "<note>" | Mark issue resolved; moves the file to issues/resolved/ and appends the resolution note. | ||
wontfix <iss-N> "<reason>" | Mark issue wont-fix; moves the file to issues/wontfix/ with the reason recorded. | ||
promote <iss-N> | Hand the issue to /abcd:intent new as a seed; sets bidirectional related_issues/related_intents linkage. | ||
list | --open--resolved--wontfix--all | List issues filtered by state. |
Pack a lifeboat — distil the project's full state (brief, intents, decisions, code seeds) into a portable rebuild seed that can be carried anywhere.
| (bare) | Status + help: shows when the project last disembarked, where the lifeboat lives, and suggested next actions. | ||
to <path> | --no-agents | Pack a lifeboat: distil the project's state into a portable rebuild seed at <path>. Path is required; use home as shorthand for the current repo's .abcd/lifeboat/. --no-agents writes the verbatim/deterministic parts and skips LLM synthesis. | |
probe | Adapter probes only: list sources that would be packed, write nothing. Ultra-light read-only inspection (no LLM). | ||
dry-run | Full plan: what files would be written, which agents would be dispatched, estimated tokens — write nothing. | ||
to-spec-kit <path> | Export shipped intents to GitHub Spec Kit format alongside the lifeboat — for handing work to non-`abcd` collaborators. | itd-23 |
Cross-corpus synthesist — read across multiple local projects and surface clusters of related issues, learnings, and opportunities you wouldn't spot in any one project alone.
| (bare) | Status + help: shows last synthesis timestamp, last cluster count, and suggested next actions (per the universal bare-command-as-help convention). | itd-25 | |
synth | --repo <path>--since <date> | Cross-corpus synthesist: read multiple local projects and surface clusters of related issues/learnings. | itd-25 |
list | List previously-synthesised clusters with their member issue counts and provenance. | itd-25 | |
promote <cluster-id> | Promote a synthesised cluster to a new intent via /abcd:intent new. | itd-25 |
Unpack a lifeboat into an empty repo on a fresh account or machine — disembark's mirror image. Continues the journey on a new vessel.
| (bare) | Status + help: shows whether a lifeboat is detectable in the current location, and suggested next actions. | ||
from <path> | --force--archive--refresh-audit | Unpack a lifeboat into an empty repo on a fresh account/machine. Path is required; use home as shorthand for the current repo's .abcd/lifeboat/. --force overrides emptiness-rule refusal; --archive copies the input lifeboat verbatim before unpacking; --refresh-audit re-runs the lifeboat-oracle audit instead of trusting cached. | |
scan | Look for lifeboats in sibling directories without unpacking; ranks candidates by mtime and shows their detected source repo. | ||
probe <path> | Inspect a lifeboat at <path> without unpacking: show what would land where, run schema/audit checks, write nothing. | ||
from-spec-kit <path> | Ingest a GitHub Spec Kit project directory as starter draft intents — for receiving work from non-`abcd` collaborators. | itd-23 |
Greenfield project scaffolding — creates the actual project shape (Python, Go, Swift, TypeScript, Rust, Docker, plain) and installs abcd on top, in a single step. The third onboarding path: use this when the directory is empty; use /abcd:ahoy when the project already exists; use /abcd:embark when you're rebuilding from a lifeboat.
| (bare) | Status + help: detects whether the current directory is empty / a fresh repo / already `abcd`-shaped, and suggests next actions. | itd-21 | |
scaffold | Empty-repo scaffolding: create an `abcd`-shaped project from scratch (no lifeboat needed). | itd-21 |
Press-release intent capture: the heart of why before how. Drafts forward-looking user-facing capabilities, gates them with acceptance criteria, links them to engineering plans, and reviews delivered reality against the original promise.
Three intent kinds: intents have one of three structural kinds, set at plan time. standalone is the default — one user moment, one epic. bundle-member is for intents that must ship together as one shared epic (use the multi-arg form plan <itd-A> <itd-B> ...). discipline is for cross-cutting rules with no user moment of their own (the rule applies to every other epic; the file lives in disciplines/ and never gets its own epic). The kind is project-agnostic — application projects produce their own disciplines too (privacy-impact review, accessibility passes).
| (bare) | Status + help: lists intents grouped by directory (drafts / planned / shipped / disciplines / superseded), surfaces shape suggestions from intent-fidelity-reviewer, suggests next actions. | ||
new "<text>" | Interview-driven press-release capture; assigns itd-N; LLM classifier writes advisory suggested_kind; writes to drafts/. | ||
refine <itd-N> | Interactive refinement of an existing intent — sharpen press release, fill open questions, edit acceptance criteria. (Gentle, user-driven — pair with grill.) | ||
refine <itd-N> | --switch-format=fiction | Switch an existing intent's capture format between press release and design fiction — preserves ID, scope, acceptance, and audit notes; rewrites the body via the new format's interview. | itd-30 |
grill <itd-N> | --brief-section <id> | Socratic-questioning sub-verb that stress-tests an intent (or brief section, via flag) with sharp questions, surfacing unstated assumptions before planning. Adversarial / AI-driven sibling of refine. Auto-detects lite mode (no glossary) vs glossary-aware mode. Writes glossary terms inline to terminology/; report pair to .abcd/logbook/grill/. | itd-27 |
plan <itd-N> | Lint acceptance criteria → propose kind (standalone | bundle-member | discipline) → user confirms or overrides → route to the kind-specific lifecycle path. | itd-34 | |
plan <itd-A> <itd-B> ... | Multi-arg form for kind: bundle-member: calls /flow-next:plan once with all intents as joint input; creates one shared epic with intent: [itd-A, itd-B]; each member declares bundle: <id> in frontmatter. | itd-34 | |
ship <itd-N> | Kick off implementation via /flow-next:work (standalone + bundle-member only — disciplines have no ship step). If still in drafts/, runs the full plan pipeline first. Eventually moves to shipped/ on epic completion. | ||
review <itd-N> | Role 1 — single-doc fidelity. Compares the shipped intent's press release + acceptance criteria against delivered reality (code, configs, docs, tests). Per-criterion verdicts (MET / MET_WITH_CONCERNS / NOT_MET / INCONCLUSIVE) appended to the intent's Audit Notes. Aligns with flow-next's plan-review / impl-review / epic-review vocabulary. Auto-fires on planned→shipped transition; this verb is the manual rerun. | ||
consistency [<itd-N>] | Role 2 — cross-doc fidelity. Surfaces terminology drift, premise contradictions, scope leakage, sequencing impossibilities, naming conflicts across briefs + intents. Bare = scan whole corpus; with <itd-N> = scan one intent vs the rest. | itd-31 | |
shape [<itd-N>] | Role 3 — kind classification. Examines whether intents' declared kind still fits the corpus; surfaces suggested reclassifications. Bare = scan corpus; with <itd-N> = check one intent. Pairs with reclassify (action verb that commits a finding). Runs continuously in pre-commit; this verb is the on-demand surface. | itd-34 | |
reclassify <itd-N> | --kind <new-kind> --reason <text> | Late kind change (e.g., a standalone realised to be a bundle-member; a draft realised to be a discipline; a shipped intent superseded). Records reclassification_history entry; moves the file between directories. | itd-34 |
reclassify <itd-N> | --kind superseded --by <itd-M> | Supersession path: file moves to superseded/; frontmatter records superseded_by: itd-M; preserved as historical record. | itd-34 |
link <itd-N> <fn-N> | Retroactive bidirectional link for pre-existing epics or recovery from a missed auto-link. | ||
list | Plain list of all intents with state, kind, bundle (if any), and linked epic. |
Promote a private dev repo to public — runs the launch-gatekeeper pre-flight (PII scan, secret scan, payload manifest) before anything leaves the harbour.
| (bare) | Status + help: shows current launch readiness (pre-flight gate state, last launch attempt) and suggested next actions. | ||
ship | --mode <m>--version <v>--allow-dirty--allow-doc-warnings | Promote a private dev repo to its public sibling with the launch-gatekeeper pre-flight (PII scan, secret scan, payload manifest). --mode is one of overlay/clean/branch; --version overrides the default patch bump; the two --allow-* flags relax specific gates. | |
dry-run | Run the full launch-gatekeeper pre-flight (PII/secret scans, payload manifest, doc audit) without writing the public payload — dump the would-be ship report. |
OSS vendoring with provenance — pull files from another repo into this one with the source recorded for licence compliance and attribution.
| (bare) | Status + help: shows recently vendored sources and suggested next actions. | itd-26 | |
<git-url> | --files <paths>--kind <docs|code|both> | OSS-vendor with provenance: pull files from another repo into this one with the source recorded for licence/attribution. | itd-26 |
list | List previously vendored OSS sources with their provenance. | itd-26 | |
search <query> | --license <permissive|copyleft|any>--max <N> | Search GitHub for repos matching the query; rank by stars × recency × licence-permissiveness; offer to loot the top result interactively. | itd-26 |
update <source> | Refresh a looted source to a newer commit; re-runs the licence check against the current policy and appends a refresh line to the provenance card. | itd-26 | |
remove <source> | Delete vendor/<source>/ and archive the provenance card; preserves the historical record. | itd-26 | |
verify | --source <source> | Re-fetch licence text from each recorded source URL at the recorded SHA; report any retroactive licence changes upstream. | itd-26 |
policy add <SPDX-id> | --rationale <text> | Extend the project's loot.acceptable_licences list with an explicit licence (e.g., policy add GPL-3.0 --rationale "needed for embedded copyleft component"). Records the amendment in .abcd/development/activity/loot/_policy-amendments.md. | itd-26 |
policy list | Show the current loot.acceptable_licences list and amendment history. | itd-26 |
Major-milestone retrospective — structured reflection appended to a milestone or intent, capturing what went well, what didn't, and what to carry forward.
| (bare) | Status + help: lists upcoming milestones / intents eligible for reflection and suggested next actions. | itd-24 | |
<milestone-id> (e.g. a release tag, itd-N) | Major-milestone retrospective: structured reflection appended to the milestone or intent. | itd-24 |