abcd

module
v0.13.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 8, 2026 License: MIT

README

abcd logo

Agent-Based Configuration for Development

For people who know what they want to build and need help shipping it.

Release Last commit
Go 1.26 Built with Claude Code
macOS

What it is for

AI agents are very good at coding but not always at remembering human intentions for why the code was written. abcd is a host-agnostic configuration layer for intent-driven development, there to help you actually ship what you set out to build, including what was decided, what was rejected, and on what evidence.

In AI-assisted development, this (human) reasoning typically lives in transcripts that are hard to decipher after the fact. abcd keeps it as structured records the product thinker, the facilitator, and their agents do read: The intent that says what shipping looks like, the decision that says what was chosen and what was refused, the specification that says how to build it, and the issue ledger that says what must be revisited. In abcd, these structured records are plain files that live inside the repository, and they are checked by gates, most of which refuse rather than warn, so a record that drifts from the repository is caught rather than noted. Whether what a record claims about the product holds is a second judgement: An audit reads a shipped intent's acceptance criteria against the code that shipped and states a verdict on each one. That verdict is recorded, not enforced.

Built in the open

abcd is an experiment. First, it is an experiment of building itself, which is why its documented development record is public and complete: Every decision, intent, specification, and issue, from the first commit onward, with the reasoning attached. That record is the demonstration. Not a claim that the approach works, but the trail of a real product being built this way, including the parts that were wrong: Reversed decisions, abandoned designs, and defects found by the gates and recorded before they were fixed.

abcd is also an experiment for the team building it. As self-declared enthusiastic dilettantes, we learn best by doing stuff, and abcd demonstrates not only what it does, but also how we're learning AI-assisted development while building it.

If you want to know more about abcd, you can interrogate its entire development record at abcdev.app/record/, alongside more details on who abcd is for, the different roles, artefacts, and process. If you want to get involved, watch the repository or open a discussion.

Key principles

abcd is founded on several principles, some of which guide its design while others guide how development artefacts are recorded.

Design principles

What abcd is (and, by extension, what it refuses to become):

  • abcd builds abcd: The framework develops under its own record and gates, so every convention it imposes is one the team lives with (for better or worse!).
  • Prefer the experiment to the inference: A claim that can be settled by running the system is settled by running it; reading the files yields a working assumption, never a finding.
  • Verifier selects, gates decide: A model's verdict ranks, flags, and proposes; admission to the record is decided by deterministic gates.
  • And: Less, but better (Dieter Rams): Reach for the subtraction first, which, in abcd translates into fewer verbs, records, and rules.

Record principles

How intents, decisions, specifications, and issues are made and kept true:

  • Work starts from an intent: A shipping change opens as a press release for the user it serves; the work exists to make that page true.
  • The record lands with the act: A record is written by the same commit that makes it true.
  • Enforcement claims are facts: A gate is described only where it demonstrably runs; a planned check is an intent.
  • And: The record is part of the product: Intents, decisions, specifications, and issues are plain files in the repository, versioned and reviewed like the code they explain.

Install

If you wish to experiment with abcd, we recommend installing it as a plugin (but do remember that it's experimental!).

Requirements

  • Git: Always. abcd shells out to the git binary and anchors every record it keeps to a repository.
  • A released platform: macOS or Linux, on amd64 or arm64. (Windows runs the Linux route inside WSL).
  • An agent harness: The plugin route and the verbs that hand their work to a model, and nothing else.

At this stage, abcd supports a single harness. The command-line app runs in any repository without one.

As a plugin

The easiest route to get started is to install abcd as a Claude Code plugin.

Run these two from a session within it. The first registers this repository as a plugin marketplace; the second installs abcd from it.

/plugin marketplace add intentdriven/abcd

Wait for the confirmation that the marketplace was added, then:

/plugin install abcd@abcd-marketplace

Restart the session afterwards so the hooks load, then check what you got:

/abcd:version

Later, /plugin update abcd takes the latest cut release: the marketplace names that release's plugin archive by its SHA-256, and the harness refuses any other bytes. The plugin route needs Claude Code v2.1.224 or later.

As a CLI

Outside a plugin session, abcd runs from a terminal in any repository, with no harness involved. A checksum-verified one-liner provisions it, no administrator rights required:

sh -c 'set -eu; unset HTTPS_PROXY https_proxy HTTP_PROXY http_proxy ALL_PROXY all_proxy CURL_HOME CURL_CA_BUNDLE SSL_CERT_FILE SSL_CERT_DIR; [ ! -L "$HOME/.abcd.noindex" ] || { echo "abcd install: ~/.abcd.noindex is a symlink, which abcd refuses rather than follows; replace it with a real directory and re-run" >&2; exit 1; }; cd "$(mktemp -d)"; os=$(uname -s | tr "[:upper:]" "[:lower:]"); arch=$(uname -m); case "$arch" in x86_64) arch=amd64;; aarch64) arch=arm64;; esac; b="abcd-$os-$arch"; curl -q --proto =https --proto-redir =https -fsSLO "https://github.com/intentdriven/abcd/releases/latest/download/$b"; curl -q --proto =https --proto-redir =https -fsSLO "https://github.com/intentdriven/abcd/releases/latest/download/checksums.txt"; l=$(grep " $b$" checksums.txt); printf "%s\n" "$l" | if command -v sha256sum >/dev/null; then sha256sum -c -; else shasum -a 256 -c -; fi; mkdir -p "$HOME/.local/bin"; install -m 0755 "$b" "$HOME/.local/bin/abcd"; mkdir -p "$HOME/.abcd.noindex"; printf "path=%s\nbinary_sha256=%s\n" "$HOME/.local/bin/abcd" "${l%% *}" > "$HOME/.abcd.noindex/path-entry"; "$HOME/.local/bin/abcd" --version'

The install guide covers building from source and what to do when abcd isn't found afterwards.

First run

Setup

In a plugin session, inside a repository you own, /abcd:prepare-this-repo audits the tree and adopts the working conventions: The three-tier .abcd/ layout, an AGENTS.md router, and the commit gates. Bare /abcd (or abcd from a terminal) then shows where you are; the status board is read-only, so it is safe on any tree:

$ abcd
view for the product thinker
● building: nothing right now
○ next: nothing is ready
• no more ready, nothing parked

abcd --view facilitator shows the full board: the repository, the record, the work tiers, the presence line and every intent with its spec.

Recording your first issue

Issues are everything you wish to revisit: An idea, a user-facing intent, a bug, a thought. /abcd:capture "..." --remedy "..." files an observation, with the fix you would propose, to the issue ledger so it survives the session. Revisit it with /abcd iss-N to report what that record is, where it lives, and its next move, such as graduating it into an intent, or close it with a note.

(The verb reference lists the rest.)

Citation

If you use abcd in your work, please cite it. The form below is rendered from CITATION.cff, which is the record GitHub's own Cite this repository button reads:

@software{reppel_abcd,
  author  = {Reppel, Alex},
  title   = {{abcd}: {Agent-Based} {Configuration} for {Development}},
  url     = {https://github.com/intentdriven/abcd},
  license = {MIT}
}

Resources

Directories

Path Synopsis
cmd
abcd command
Command abcd is the CLI front door to the abcd engine.
Command abcd is the CLI front door to the abcd engine.
abcd-gen-cli-ref command
Command abcd-gen-cli-ref writes the generated CLI reference page from the abcd command tree.
Command abcd-gen-cli-ref writes the generated CLI reference page from the abcd command tree.
abcd-gen-surface command
Command abcd-gen-surface writes the three artefacts derived from one walk of the abcd command tree: the committed compatibility snapshot, the description of every plugin command page (each verb's sentence, itd-2609212113220149), and the generated appendix at the end of every brief surface chapter (itd-147).
Command abcd-gen-surface writes the three artefacts derived from one walk of the abcd command tree: the committed compatibility snapshot, the description of every plugin command page (each verb's sentence, itd-2609212113220149), and the generated appendix at the end of every brief surface chapter (itd-147).
asking-sync command
Command asking-sync writes the asking rules into the two pages that state them: the block of commands/intent.md between the asking-rules markers is rendered from question.AskingRules(question.Default) and the knowledge-floor pointer, and the block of agents/question-drafter.md between the question-drafter markers is rendered from the same rules and the row count the check makes, every figure read from question.Default.
Command asking-sync writes the asking rules into the two pages that state them: the block of commands/intent.md between the asking-rules markers is rendered from question.AskingRules(question.Default) and the knowledge-floor pointer, and the block of agents/question-drafter.md between the question-drafter markers is rendered from the same rules and the row count the check makes, every figure read from question.Default.
record-lint command
Command record-lint is the deterministic drift gate for the abcd design record.
Command record-lint is the deterministic drift gate for the abcd design record.
scaffold-render command
Command scaffold-render writes every profile of the scaffolded release workflows (scaffold.AuditProfiles) into a directory, one <profile>/.github/workflows/ tree each, for CI's zizmor job to audit (iss-2609251939472371).
Command scaffold-render writes every profile of the scaffolded release workflows (scaffold.AuditProfiles) into a directory, one <profile>/.github/workflows/ tree each, for CI's zizmor job to audit (iss-2609251939472371).
scaffold-sync command
Command scaffold-sync propagates the pinned action refs in the committed release workflows back into the scaffold templates they were rendered from, keeping TestSelfScaffoldParity satisfied after a dependency bump.
Command scaffold-sync propagates the pinned action refs in the committed release workflows back into the scaffold templates they were rendered from, keeping TestSelfScaffoldParity satisfied after a dependency bump.
internal
abcdhome
Package abcdhome is the one place in abcd's Go code that spells the name of the user-level home: the folder abcd keeps under the person's home directory for its machine-scoped records (the trusted-roots and rules.json declarations, the path-entry record, the credential and routing files, the transcript, worktree, lab and sources stores, the run logs).
Package abcdhome is the one place in abcd's Go code that spells the name of the user-level home: the folder abcd keeps under the person's home directory for its machine-scoped records (the trusted-roots and rules.json declarations, the path-entry record, the credential and routing files, the transcript, worktree, lab and sources stores, the run logs).
abcdrepo
Package abcdrepo names abcd's own repository: the one identity every verb that behaves differently in abcd's own checkout, or in a copy of it, reads.
Package abcdrepo names abcd's own repository: the one identity every verb that behaves differently in abcd's own checkout, or in a copy of it, reads.
actionsexpr
Package actionsexpr evaluates GitHub Actions workflow expressions for tests that must ask what GitHub would DO with a committed workflow, not merely whether a string is present in it.
Package actionsexpr evaluates GitHub Actions workflow expressions for tests that must ask what GitHub would DO with a committed workflow, not merely whether a string is present in it.
adapter/gitleaks
Package gitleaks is an OPT-IN external-scanner adapter (iss-96), wired into every scanner the core builds as a scanner.Augmenter (augmenter.go, iss-2608291814575788).
Package gitleaks is an OPT-IN external-scanner adapter (iss-96), wired into every scanner the core builds as a scanner.Augmenter (augmenter.go, iss-2608291814575788).
adapter/hosting
Package hosting is the provider seam `abcd site setup` routes a rendered site through (itd-2609061543533170, spc-2609212141407459 scope 2).
Package hosting is the provider seam `abcd site setup` routes a rendered site through (itd-2609061543533170, spc-2609212141407459 scope 2).
adapter/hosting/cloudflare
Package cloudflare is the one hosting provider abcd ships (itd-2609061543533170): an assets-only Cloudflare Worker, the host abcd's own site is served from.
Package cloudflare is the one hosting provider abcd ships (itd-2609061543533170): an assets-only Cloudflare Worker, the host abcd's own site is served from.
adapter/hosting/cloudflare/cloudflaretest
Package cloudflaretest is an in-process fake of the slice of the Cloudflare v4 API the cloudflare hosting adapter calls, for tests only.
Package cloudflaretest is an in-process fake of the slice of the Cloudflare v4 API the cloudflare hosting adapter calls, for tests only.
adapter/openaiapi
Package openaiapi is abcd's OpenAI-compatible API adapter (itd-2609081951381895): one client over the chat-completions protocol, which OpenRouter and a local OpenAI-compatible server both speak, so a provider is configuration of this adapter and never code (the intent's Decision 2).
Package openaiapi is abcd's OpenAI-compatible API adapter (itd-2609081951381895): one client over the chat-completions protocol, which OpenRouter and a local OpenAI-compatible server both speak, so a provider is configuration of this adapter and never code (the intent's Decision 2).
adapter/scanner
Package scanner is abcd's native secret + PII detector.
Package scanner is abcd's native secret + PII detector.
adapter/scanner/augmenttest
Package augmenttest is the test double for the scanner's Augmenter seam (iss-2608291814575788): a fake augmenter that flags one fixed value the native pattern set does not see, a not-found augmenter, and Install, which registers either as the default every scanner.New picks up.
Package augmenttest is the test double for the scanner's Augmenter seam (iss-2608291814575788): a fake augmenter that flags one fixed value the native pattern set does not see, a not-found augmenter, and Install, which registers either as the default every scanner.New picks up.
adapter/tailscale
Package tailscale is the `tailscale` command as an adapter: this computer's own tailnet addresses and name, the lookup of a connecting device by its address, and the ports Tailscale's own Serve or Funnel configuration names (spc-2610040741034208, decision D3).
Package tailscale is the `tailscale` command as an adapter: this computer's own tailnet addresses and name, the lookup of a connecting device by its address, and the ports Tailscale's own Serve or Funnel configuration names (spc-2610040741034208, decision D3).
cienv
Package cienv holds the one canonical answer to "is this a CI runner?".
Package cienv holds the one canonical answer to "is this a CI runner?".
core
Package core is abcd's transport-agnostic engine.
Package core is abcd's transport-agnostic engine.
core/ahoy
Package ahoy is abcd's install/update engine for `abcd ahoy`.
Package ahoy is abcd's install/update engine for `abcd ahoy`.
core/assistedby
Package assistedby holds the third form of the `Assisted-by:` trailer, the label abcd declares on a commit it composes from record facts (ruling PC1, the technical facilitator, 2026-10-02): `Assisted-by: abcd:<version>`, beside a model's `<Vendor>:<model-version>` and `None`.
Package assistedby holds the third form of the `Assisted-by:` trailer, the label abcd declares on a commit it composes from record facts (ruling PC1, the technical facilitator, 2026-10-02): `Assisted-by: abcd:<version>`, beside a model's `<Vendor>:<model-version>` and `None`.
core/banlist
Package banlist is abcd's two-layer banned-names store (itd-74, spc-20).
Package banlist is abcd's two-layer banned-names store (itd-74, spc-20).
core/board
Package board is the status board's one renderer (spc-2610031844142274): two views, the product thinker's and the facilitator's, each in two forms, text for a Terminal or a pipe and a markdown list a host session pastes unchanged.
Package board is the status board's one renderer (spc-2610031844142274): two views, the product thinker's and the facilitator's, each in two forms, text for a Terminal or a pipe and a markdown list a host session pastes unchanged.
core/capture
Package capture is abcd's transport-agnostic issue-ledger engine: the write side of a per-repo issue ledger that replaces the free-form .work/issues.md.
Package capture is abcd's transport-agnostic issue-ledger engine: the write side of a per-repo issue ledger that replaces the free-form .work/issues.md.
core/changelog
Package changelog is abcd's transport-agnostic release-derivation domain: the version and the changelog are facts derived from the records that shipped, not numbers and lines a human types (itd-73, spc-10).
Package changelog is abcd's transport-agnostic release-derivation domain: the version and the changelog are facts derived from the records that shipped, not numbers and lines a human types (itd-73, spc-10).
core/cite
Package cite is the live half of the citation gate: the on-demand refresh that fetches every cited URL and writes the committed baseline the zero-network docs lint then enforces offline.
Package cite is the live half of the citation gate: the on-demand refresh that fetches every cited URL and writes the committed baseline the zero-network docs lint then enforces offline.
core/condition
Package condition is the scope-condition disposition vocabulary as DATA: the four values a condition is dispositioned with, the identity marker a condition carries, the two block grammars a disposition is written under, and the one reader that folds those blocks into a condition's standing disposition.
Package condition is the scope-condition disposition vocabulary as DATA: the four values a condition is dispositioned with, the identity marker a condition carries, the two block grammars a disposition is written under, and the one reader that folds those blocks into a condition's standing disposition.
core/credential
Package credential is the credential store (itd-2609221017023290, adr-2609221017021499): the one reader every adapter resolves an external credential through, by NAME (Store, store.go), the one write (Set), and the walkthrough that chooses a credential's home (Walk, walk.go).
Package credential is the credential store (itd-2609221017023290, adr-2609221017021499): the one reader every adapter resolves an external credential through, by NAME (Store, store.go), the one write (Set), and the walkthrough that chooses a credential's home (Walk, walk.go).
core/decide
Package decide is the WRITE side of the decision record: `abcd decide "<title>"` mints an ADR id and lays the skeleton the store's existing files carry, under `.abcd/development/decisions/adrs/`.
Package decide is the WRITE side of the decision record: `abcd decide "<title>"` mints an ADR id and lays the skeleton the store's existing files carry, under `.abcd/development/decisions/adrs/`.
core/docfidelity
Package docfidelity is the doc-fidelity gate over the brief (itd-60, spc-2609020903498198): the brief describes every surface that ships, or the intent does not reach shipped.
Package docfidelity is the doc-fidelity gate over the brief (itd-60, spc-2609020903498198): the brief describes every surface that ships, or the intent does not reach shipped.
core/drainrule
Package drainrule reads the drained repository's own record of which open issues an unattended drain may take alone (itd-82 decision 4; the product thinker's rulings BX2 and H11 of 2026-09-29).
Package drainrule reads the drained repository's own record of which open issues an unattended drain may take alone (itd-82 decision 4; the product thinker's rulings BX2 and H11 of 2026-09-29).
core/frontmatter
Package frontmatter is abcd's shared markdown-frontmatter line scanner.
Package frontmatter is abcd's shared markdown-frontmatter line scanner.
core/glossary
Package glossary derives the brief glossary's own index from the term files.
Package glossary derives the brief glossary's own index from the term files.
core/grounds
Package grounds is the recorded-grounds vocabulary as DATA: the closed set of three values, the `<token>: <text>` grammar, the parser, the renderer, and the substance floor that refuses a degenerate text.
Package grounds is the recorded-grounds vocabulary as DATA: the closed set of three values, the `<token>: <text>` grammar, the parser, the renderer, and the substance floor that refuses a degenerate text.
core/guard
Package guard is abcd's transport-agnostic shell-hazard registry (itd-103, spc-16).
Package guard is abcd's transport-agnostic shell-hazard registry (itd-103, spc-16).
core/history
Package history is abcd's native session-transcript store: the write/read/ redact engine that populates ~/.abcd.noindex/transcripts/<root-sha>/records/ and retires the specstory shim (adr-29).
Package history is abcd's native session-transcript store: the write/read/ redact engine that populates ~/.abcd.noindex/transcripts/<root-sha>/records/ and retires the specstory shim (adr-29).
core/ideate
Package ideate is the deterministic frame around abcd's idea-admission protocol (itd-104, spc-18): the three-leg gauntlet an idea may be put through before it is allowed to become a record entry.
Package ideate is the deterministic frame around abcd's idea-admission protocol (itd-104, spc-18): the three-leg gauntlet an idea may be put through before it is allowed to become a record entry.
core/identity
Package identity checks that the git author and committer identities a commit would use in a managed repo match the identity pinned in .abcd/config/identity.json, and recognises a machine identity in either role.
Package identity checks that the git author and committer identities a commit would use in a managed repo match the identity pinned in .abcd/config/identity.json, and recognises a machine identity in either role.
core/implement
Package implement is the run machinery an autonomous implementation run calls: the run's shared state in the machine-scoped store, the sessions that join it, the claim that makes a record the unit of exclusion between them, the bounds that keep a second session from becoming a hazard, and the run log the comparison of division modes is derived from (itd-2609221656373558, spc-2609221657588816).
Package implement is the run machinery an autonomous implementation run calls: the run's shared state in the machine-scoped store, the sessions that join it, the claim that makes a record the unit of exclusion between them, the bounds that keep a second session from becoming a hazard, and the run log the comparison of division modes is derived from (itd-2609221656373558, spc-2609221657588816).
core/implement/loop
Package loop is the implement loop's engine (itd-2609201916151817, spc-2609202134338445): the state file a run lives in, the checks that decide whether a run may start, and the step interface a driving host calls.
Package loop is the implement loop's engine (itd-2609201916151817, spc-2609202134338445): the state file a run lives in, the checks that decide whether a run may start, and the step interface a driving host calls.
core/intent
Package intent is abcd's transport-agnostic native intent store (intent lifecycle, itd-80).
Package intent is abcd's transport-agnostic native intent store (intent lifecycle, itd-80).
core/intentbundle
Package intentbundle is the bundle's record vocabulary as DATA: the words a bundle's survivor records its bundle of one in (itd-34, decision 3).
Package intentbundle is the bundle's record vocabulary as DATA: the words a bundle's survivor records its bundle of one in (itd-34, decision 3).
core/interview
Package interview holds what every abcd interview writes and reads (spc-2610030911534855, "The answers record and the answered in field"): the answers record, written through one writer whichever front door asked, and the answers file a run off a terminal is answered from.
Package interview holds what every abcd interview writes and reads (spc-2610030911534855, "The answers record and the answered in field"): the answers record, written through one writer whichever front door asked, and the answers file a run off a terminal is answered from.
core/issuerecord
Package issuerecord is the issue ledger's record reader: the one judgement of whether a file in a status directory is a record the ledger takes, and if not, which reader stage refused it and why.
Package issuerecord is the issue ledger's record reader: the one judgement of whether a file in a status directory is a record the ledger takes, and if not, which reader stage refused it and why.
core/issueschema
Package issueschema is the issue record's frontmatter schema as DATA: the property allow-list, the required set, and the closed enum value sets that issue.schema.json declares, held where every gate that asks the question can read them.
Package issueschema is the issue record's frontmatter schema as DATA: the property allow-list, the required set, and the closed enum value sets that issue.schema.json declares, held where every gate that asks the question can read them.
core/jsonstrict
Package jsonstrict holds the strict-JSON checks encoding/json does not make: the one place a repeated object key is refused rather than read last-wins, shared by every reader whose input is a trust boundary (the rules overlay, the release-gate receipts, the layered configuration files, the reading presets).
Package jsonstrict holds the strict-JSON checks encoding/json does not make: the one place a repeated object key is refused rather than read last-wins, shared by every reader whose input is a trust boundary (the rules overlay, the release-gate receipts, the layered configuration files, the reading presets).
core/lab
Package lab mechanises the lab conventions three hand-run experiments proved (itd-2609212137128014): a lab is a throwaway world pinned at one commit of a repository, run to answer one question, whose evidence lives at the operator level and whose knowledge enters the record only through capture.
Package lab mechanises the lab conventions three hand-run experiments proved (itd-2609212137128014): a lab is a throwaway world pinned at one commit of a repository, run to answer one question, whose evidence lives at the operator level and whose knowledge enters the record only through capture.
core/launch
Package launch is abcd's transport-agnostic launch engine: it assembles the release bundle under a default-deny taxonomy, runs the native secret+PII scan, checks manifest lockstep, and previews newest-per-line retention — all as a dry-run that renders decisions without writing an artefact or touching the network.
Package launch is abcd's transport-agnostic launch engine: it assembles the release bundle under a default-deny taxonomy, runs the native secret+PII scan, checks manifest lockstep, and previews newest-per-line retention — all as a dry-run that renders decisions without writing an artefact or touching the network.
core/launch/scaffold
Package scaffold renders and writes the changelog-driven release machinery — release.yml, auto-release.yml, and the adr-37 runbook — into a managed repo that lacks it (itd-93, spc-14).
Package scaffold renders and writes the changelog-driven release machinery — release.yml, auto-release.yml, and the adr-37 runbook — into a managed repo that lacks it (itd-93, spc-14).
core/layered
Package layered is the one layered configuration resolver: a value is taken from the invocation's flag, else the repository's committed file, else the machine's file under ~/.abcd.noindex/, else the bundled default the caller supplies, and it comes back with the layer and the origin that supplied it.
Package layered is the one layered configuration resolver: a value is taken from the invocation's flag, else the repository's committed file, else the machine's file under ~/.abcd.noindex/, else the bundled default the caller supplies, and it comes back with the layer and the origin that supplied it.
core/lifeboat
Package lifeboat holds the brief-to-lifeboat contract and, later, the source adapters that fill it.
Package lifeboat holds the brief-to-lifeboat contract and, later, the source adapters that fill it.
core/lint
Package lint is abcd's record-drift gate: it reads a JSON config and lints the markdown design record, returning findings.
Package lint is abcd's record-drift gate: it reads a JSON config and lints the markdown design record, returning findings.
core/machineload
Package machineload reads the machine's load and process table and decides, from one snapshot, whether programs outside the running work are keeping the machine busy (itd-2609231434459890, spc-2609231542463113).
Package machineload reads the machine's load and process table and decides, from one snapshot, whether programs outside the running work are keeping the machine busy (itd-2609231434459890, spc-2609231542463113).
core/mdrecord
Package mdrecord is the Markdown machinery a RECORD BODY is read and written through: which lines are live markdown and which are not, where a section starts and stops, what a top-level bullet is, and where a trailing run of link-reference definitions ends.
Package mdrecord is the Markdown machinery a RECORD BODY is read and written through: which lines are live markdown and which are not, where a section starts and stops, what a top-level bullet is, and where a trailing run of link-reference definitions ends.
core/mdrender
Package mdrender is the Markdown subset renderer the site publishes the repository's prose through, and the one answer to what that subset refuses.
Package mdrender is the Markdown subset renderer the site publishes the repository's prose through, and the one answer to what that subset refuses.
core/memory
Package memory is abcd's transport-agnostic curated-knowledge substrate at .abcd/memory/ (itd-36 / adr-13).
Package memory is abcd's transport-agnostic curated-knowledge substrate at .abcd/memory/ (itd-36 / adr-13).
core/mode
Package mode is abcd's waiting-on state: which of three states the agent loop is parked in.
Package mode is abcd's waiting-on state: which of three states the agent loop is parked in.
core/oracle
Package oracle is the model-tier routing of itd-2609170822093401: which tier of model each host-delegated agent deserves, how many agents a step may run at once, and, at run time, whether a configured provider takes the step or the harness does.
Package oracle is the model-tier routing of itd-2609170822093401: which tier of model each host-delegated agent deserves, how many agents a step may run at once, and, at run time, whether a configured provider takes the step or the harness does.
core/peers
Package peers is the read-only peer reader (itd-2609091416295622, spc-2609202056480020): given one checkout, which records do the other checkouts and branches sharing its git common dir hold that this tree does not, or hold in a different state?
Package peers is the read-only peer reader (itd-2609091416295622, spc-2609202056480020): given one checkout, which records do the other checkouts and branches sharing its git common dir hold that this tree does not, or hold in a different state?
core/positioning
Package positioning holds a repository's canonical self-description — its title, tagline, and elevator pitch — and the deterministic check that every rendered surface still says it.
Package positioning holds a repository's canonical self-description — its title, tagline, and elevator pitch — and the deterministic check that every rendered surface still says it.
core/provenance
Package provenance is the record's disclosure vocabulary as DATA: where an item came from (`origin`) and how its text was produced (`production_mode`), plus the one parser that reads and renders them.
Package provenance is the record's disclosure vocabulary as DATA: where an item came from (`origin`) and how its text was produced (`production_mode`), plus the one parser that reads and renders them.
core/question
Package question holds what a question abcd puts to a person may contain: the field limits, written once (Limits, Default), the field view every front door finally shows (Fields), and the limits check (CheckLimits) that refuses a badly built question naming the part, the value, and the limit (spc-2610030944505997; itd-2610030810350727, itd-201).
Package question holds what a question abcd puts to a person may contain: the field limits, written once (Limits, Default), the field view every front door finally shows (Fields), and the limits check (CheckLimits) that refuses a badly built question naming the part, the value, and the limit (spc-2610030944505997; itd-2610030810350727, itd-201).
core/reading
Package reading assembles the input a cold reading is handed.
Package reading assembles the input a cold reading is handed.
core/readingitem
Package readingitem locates the reading ledger's records by id and resolves an occasion — the record a later write names as what occasioned it.
Package readingitem locates the reading ledger's records by id and resolves an occasion — the record a later write names as what occasioned it.
core/record
Package record is the read side of `abcd <id>`: dispatch on a record id — iss-N, itd-N, spc-N, adr-N, and the ledger's adm-N, srp-N and rfm-N — and report what the record is, its links, and the concrete next move for its lifecycle state (spc-26).
Package record is the read side of `abcd <id>`: dispatch on a record id — iss-N, itd-N, spc-N, adr-N, and the ledger's adm-N, srp-N and rfm-N — and report what the record is, its links, and the concrete next move for its lifecycle state (spc-26).
core/record/match
Package match is the canonical term-overlap primitive: it scores how much of a new text another record already holds, by the words the two share, and classifies a likely double as `duplicates` (near-identical) or `refines` (narrower).
Package match is the canonical term-overlap primitive: it scores how much of a new text another record already holds, by the words the two share, and classifies a likely double as `duplicates` (near-identical) or `refines` (narrower).
core/recordid
Package recordid is abcd's canonical home for the record-id space: the native timestamp-numeric mint (mint.go), the read-side resolver (resolve.go), and the one record-filename grammar both sides parse (this file).
Package recordid is abcd's canonical home for the record-id space: the native timestamp-numeric mint (mint.go), the read-side resolver (resolve.go), and the one record-filename grammar both sides parse (this file).
core/reflect
Package reflect is the core of the release retrospective (itd-24, spc-2609211751376504): the seed a retrospective interview opens from, the thin-answer floor the interview holds its answers to, the writer that turns the answers into `.abcd/development/retrospectives/<release-tag>/README.md`, the lessons reader and ranking a later voyage's embark shows, and the one-line nudge a release cut prints.
Package reflect is the core of the release retrospective (itd-24, spc-2609211751376504): the seed a retrospective interview opens from, the thin-answer floor the interview holds its answers to, the writer that turns the answers into `.abcd/development/retrospectives/<release-tag>/README.md`, the lessons reader and ranking a later voyage's embark shows, and the one-line nudge a release cut prints.
core/release
Package release is the transport-agnostic composition of a release cut: the deterministic half of `abcd launch ship` and the whole of `abcd changelog`.
Package release is the transport-agnostic composition of a release cut: the deterministic half of `abcd launch ship` and the whole of `abcd changelog`.
core/relink
Package relink is the one link-repoint primitive: after a verb MOVES a record between status folders, it rewrites every relative markdown link in the working tree that named the record's old path so that it names the new one, and reports each rewrite.
Package relink is the one link-repoint primitive: after a verb MOVES a record between status folders, it rewrites every relative markdown link in the working tree that named the record's old path so that it names the new one, and reports each rewrite.
core/repolint
Package audit is abcd's read-only repo-conformance engine: it evaluates a set of declarative rules against a repository and returns findings.
Package audit is abcd's read-only repo-conformance engine: it evaluates a set of declarative rules against a repository and returns findings.
core/report
Package report is the written account a repository abcd manages files back to abcd itself, and the inbox it waits in (itd-2609221656361680, spc-2609221657168936).
Package report is the written account a repository abcd manages files back to abcd itself, and the inbox it waits in (itd-2609221656361680, spc-2609221657168936).
core/reviews
Package reviews reads the committed review folders under .abcd/work/reviews/ and says how stale each has become (itd-28, spc-2609211854150455).
Package reviews reads the committed review folders under .abcd/work/reviews/ and says how stale each has become (itd-28, spc-2609211854150455).
core/rules
Package rules is abcd's transport-agnostic modular rules loader (itd-3).
Package rules is abcd's transport-agnostic modular rules loader (itd-3).
core/runner
Package runner runs a delegated role through a command-line harness the operator named, with the same brief, inputs and output contract the host's own sub-agent gets (itd-2609201916056194, spc-2609221533057881).
Package runner runs a delegated role through a command-line harness the operator named, with the same brief, inputs and output contract the host's own sub-agent gets (itd-2609201916056194, spc-2609221533057881).
core/scribe
Package scribe builds the ledger scribe's context and ingests what the scribe returns (itd-2609020625402599, spc-2609020626045177).
Package scribe builds the ledger scribe's context and ingests what the scribe returns (itd-2609020625402599, spc-2609020626045177).
core/sessionkind
Package sessionkind is the per-run context stamp: the one token a reading bundle and a scribe context each carry, naming the kind of session the context is for, the run it belongs to and a digest of what it holds (adr-2609021016275803, spc-2609020626045177).
Package sessionkind is the per-run context stamp: the one token a reading bundle and a scribe context each carry, naming the kind of session the context is for, the run it belongs to and a digest of what it holds (adr-2609021016275803, spc-2609020626045177).
core/site
Package site is the home of the abcd site verb family (adr-47).
Package site is the home of the abcd site verb family (adr-47).
core/source
Package source is the personal sources corpus and its provenance ledger (itd-76, spc-31): a local-only store of documents the agent may consult, a CSL-JSON bibliography describing them, and one append-only influence ledger per consuming repository.
Package source is the personal sources corpus and its provenance ledger (itd-76, spc-31): a local-only store of documents the agent may consult, a CSL-JSON bibliography describing them, and one append-only influence ledger per consuming repository.
core/spec
Package spec is abcd's transport-agnostic native spec store (intent lifecycle, itd-64).
Package spec is abcd's transport-agnostic native spec store (intent lifecycle, itd-64).
core/statusblock
Package statusblock computes the Now / Next / Later block the bare `abcd` board and the site's Status page render (itd-2609212103568351, spc-2609212138241908).
Package statusblock computes the Now / Next / Later block the bare `abcd` board and the site's Status page render (itd-2609212103568351, spc-2609212138241908).
core/surface
Package surface models abcd's public compatibility surface — the commands, flags, and manifest entries a consumer can bind to — as a transport-agnostic value that is snapshotted, committed, and diffed between releases (itd-73, spc-10).
Package surface models abcd's public compatibility surface — the commands, flags, and manifest entries a consumer can bind to — as a transport-agnostic value that is snapshotted, committed, and diffed between releases (itd-73, spc-10).
core/tools
Package tools is abcd's explain-then-install mode (itd-63): the curated registry of the external tools abcd knows, the plain-language explanation a verb gives when it finds one missing, and the one place a confirmed install step is run.
Package tools is abcd's explain-then-install mode (itd-63): the curated registry of the external tools abcd knows, the plain-language explanation a verb gives when it finds one missing, and the one place a confirmed install step is run.
core/update
Package update implements the core of `abcd update` (itd-130 / spc-32): a user-invoked fetch/verify/swap for the PATH-installed binary.
Package update implements the core of `abcd update` (itd-130 / spc-32): a user-invoked fetch/verify/swap for the PATH-installed binary.
core/vintage
Package vintage is abcd's staleness comparator: it establishes whether the running binary is the one that should be running, by comparing the binary's own build vintage against a reference supplied by a provider.
Package vintage is abcd's staleness comparator: it establishes whether the running binary is the one that should be running, by comparing the binary's own build vintage against a reference supplied by a provider.
fsutil
Package fsutil holds the durable-write and path-safety primitives shared by the ~/.abcd.noindex and repo .abcd store writers.
Package fsutil holds the durable-write and path-safety primitives shared by the ~/.abcd.noindex and repo .abcd store writers.
gittest
Package gittest is the shared hermetic-git environment for tests that spawn git as a subprocess (iss-28).
Package gittest is the shared hermetic-git environment for tests that spawn git as a subprocess (iss-28).
gitutil
Package gitutil holds the shared, isolated git queries.
Package gitutil holds the shared, isolated git queries.
livery
Package livery holds the canonical pixel-grid definitions of abcd's visual identity — the duckling mascot, the signal-flag logo, and the lifeboat mark — and the palette they share (itd-133/spc-36).
Package livery holds the canonical pixel-grid definitions of abcd's visual identity — the duckling mascot, the signal-flag logo, and the lifeboat mark — and the palette they share (itd-133/spc-36).
livery/gen command
Command gen writes the committed SVG identity assets from the canonical livery grids.
Command gen writes the committed SVG identity assets from the canonical livery grids.
reachaudit
Package reachaudit is the exported-reach caller audit iss-33 asked for, as one matcher every audit shares.
Package reachaudit is the exported-reach caller audit iss-33 asked for, as one matcher every audit shares.
shellquote
Package shellquote is the one POSIX-shell quoting primitive: the form a command abcd prints, or writes into a script, takes so a value reaches the shell as one literal word whatever it holds.
Package shellquote is the one POSIX-shell quoting primitive: the form a command abcd prints, or writes into a script, takes so a value reaches the shell as one literal word whatever it holds.
surface/cli
Package cli is abcd's default front door: a Cobra command tree that marshals internal/core results to the terminal (human text or, with --json, machine output).
Package cli is abcd's default front door: a Cobra command tree that marshals internal/core results to the terminal (human text or, with --json, machine output).
surface/cli/ask
Package ask draws a question of the shared type (internal/core/question) in a plain Terminal (spc-2610030911534855, itd-2610030810370060): the layout from a question to lines at a width and a colour rung, and the sanitising every part passes before it is measured or drawn.
Package ask draws a question of the shared type (internal/core/question) in a plain Terminal (spc-2610030911534855, itd-2610030810370060): the layout from a question to lines at a width and a colour rung, and the sanitising every part passes before it is measured or drawn.
surface/cli/identitygen command
Command identitygen bakes the canonical identity block's title and tagline into a generated Go file (itd-112/spc-41).
Command identitygen bakes the canonical identity block's title and tagline into a generated Go file (itd-112/spc-41).
surface/dashboard
Package dashboard is the one package in abcd that opens a network listener (adr-2610032150581128; spc-2610040741034208): the product thinker's dashboard, reachable only on this computer's own Tailscale addresses, only while someone has started it on purpose, and only by a device Tailscale's own lookup names.
Package dashboard is the one package in abcd that opens a network listener (adr-2610032150581128; spc-2610040741034208): the product thinker's dashboard, reachable only on this computer's own Tailscale addresses, only while someone has started it on purpose, and only by a device Tailscale's own lookup names.
term
Package term holds the canonical terminal-capability primitives: the colour-mode ladder, the TTY check (adr-49, brief invariant 13), and the window size a question is drawn at (Size, through golang.org/x/term).
Package term holds the canonical terminal-capability primitives: the colour-mode ladder, the TTY check (adr-49, brief invariant 13), and the window size a question is drawn at (Size, through golang.org/x/term).
term/ptytest
Package ptytest opens a pseudo-terminal for tests, with the standard library alone: /dev/ptmx and the platform's grant and unlock requests, no module (spc-2610030911534855, B6).
Package ptytest opens a pseudo-terminal for tests, with the standard library alone: /dev/ptmx and the platform's grant and unlock requests, no module (spc-2610030911534855, B6).
termsafe
Package termsafe holds the one canonical sanitiser for a string built from untrusted content (commit subjects, refs, file paths, repo prose, error text echoing a malformed file) before it is written to a terminal or a human report.
Package termsafe holds the one canonical sanitiser for a string built from untrusted content (commit subjects, refs, file paths, repo prose, error text echoing a malformed file) before it is written to a terminal or a human report.
testsecret
Package testsecret builds synthetic, secret-shaped strings at RUNTIME for tests that must exercise the secret scanner and its adapters.
Package testsecret builds synthetic, secret-shaped strings at RUNTIME for tests that must exercise the secret scanner and its adapters.
textwidth
Package textwidth is the one display-width measure and word wrap: how many terminal columns plain text occupies, and how words are laid into lines of at most a given width.
Package textwidth is the one display-width measure and word wrap: how many terminal columns plain text occupies, and how words are laid into lines of at most a given width.
urlguard
Package urlguard is the canonical SSRF guard for every outbound fetch abcd makes.
Package urlguard is the canonical SSRF guard for every outbound fetch abcd makes.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL