# scafld ## Documentation - [Introduction](https://auscaster.com/scafld/docs/introduction.md): A deterministic protocol for multi-phase agent work - [Quickstart](https://auscaster.com/scafld/docs/quickstart.md): From zero to first reviewed task - [Installation](https://auscaster.com/scafld/docs/installation.md): Install and configure scafld - [Lifecycle](https://auscaster.com/scafld/docs/lifecycle.md): Spec states, transitions, and evidence flow - [Planning](https://auscaster.com/scafld/docs/planning.md): Writing effective specs - [Execution](https://auscaster.com/scafld/docs/execution.md): Acceptance execution and session evidence - [Review](https://auscaster.com/scafld/docs/review.md): Adversarial review finalize behavior - [CLI Reference](https://auscaster.com/scafld/docs/cli-reference.md): Current scafld command surface - [Spec Schema](https://auscaster.com/scafld/docs/spec-schema.md): Living spec reference - [Configuration](https://auscaster.com/scafld/docs/configuration.md): Workspace config, prompts, and managed core files - [Artifacts](https://auscaster.com/scafld/docs/artifacts.md): Concrete scafld artifact examples - [Validation](https://auscaster.com/scafld/docs/validation.md): Spec validation and acceptance matchers - [Scope Discipline](https://auscaster.com/scafld/docs/scope-auditing.md): Keeping implementation inside the approved contract - [Invariants](https://auscaster.com/scafld/docs/invariants.md): Non-negotiable architectural rules - [Workspaces](https://auscaster.com/scafld/docs/workspaces.md): Multi-repo and monorepo support ## Go API - [cmd/scafld](https://auscaster.com/scafld/docs/go-api/pkg-cmd-scafld.md): Package main wires the scafld command-line entrypoint to the CLI adapter. - [internal/adapters/cli](https://auscaster.com/scafld/docs/go-api/pkg-internal-adapters-cli.md): Package cli is the scafld command line. - [internal/adapters/cli/adapter](https://auscaster.com/scafld/docs/go-api/pkg-internal-adapters-cli-adapter.md): Package adapter renders deterministic provider-facing trigger packets. - [internal/adapters/cli/agentcontract](https://auscaster.com/scafld/docs/go-api/pkg-internal-adapters-cli-agentcontract.md): Package agentcontract resolves source-backed role contracts for CLI commands. - [internal/adapters/cli/config](https://auscaster.com/scafld/docs/go-api/pkg-internal-adapters-cli-config.md): Package config scans project files for CLI-driven config proposals. - [internal/adapters/cli/fallback](https://auscaster.com/scafld/docs/go-api/pkg-internal-adapters-cli-fallback.md): Package fallback contains small error fallback helpers for CLI adapters. - [internal/adapters/cli/finalize](https://auscaster.com/scafld/docs/go-api/pkg-internal-adapters-cli-finalize.md): Package finalize composes the scafld finalize CLI boundary. - [internal/adapters/cli/finalizestdio](https://auscaster.com/scafld/docs/go-api/pkg-internal-adapters-cli-finalizestdio.md): Package finalizestdio serves finalize as an MCP tool over stdio, so an agent host can run the deterministic final gate through the scafld binary. - [internal/adapters/cli/harden](https://auscaster.com/scafld/docs/go-api/pkg-internal-adapters-cli-harden.md): Package harden builds the CLI-facing prompt context for hardening rounds. - [internal/adapters/cli/hardensubmit](https://auscaster.com/scafld/docs/go-api/pkg-internal-adapters-cli-hardensubmit.md): Package hardensubmit wires the hidden harden-submit-stdio command. - [internal/adapters/cli/help](https://auscaster.com/scafld/docs/go-api/pkg-internal-adapters-cli-help.md): Package help formats command help for the CLI adapter. - [internal/adapters/cli/initcmd](https://auscaster.com/scafld/docs/go-api/pkg-internal-adapters-cli-initcmd.md): Package initcmd installs the CLI-facing workspace bootstrap assets. - [internal/adapters/cli/output](https://auscaster.com/scafld/docs/go-api/pkg-internal-adapters-cli-output.md): Package output formats human-readable command output for the CLI adapter. - [internal/adapters/cli/providerinfo](https://auscaster.com/scafld/docs/go-api/pkg-internal-adapters-cli-providerinfo.md): Package providerinfo renders provider selection facts for CLI progress output shared by the review and harden subcommands. - [internal/adapters/cli/review](https://auscaster.com/scafld/docs/go-api/pkg-internal-adapters-cli-review.md): Package review selects review providers and pass agendas for the CLI adapter. - [internal/adapters/cli/reviewsubmit](https://auscaster.com/scafld/docs/go-api/pkg-internal-adapters-cli-reviewsubmit.md): Package reviewsubmit adapts the hidden review-submit-stdio command. - [internal/adapters/cli/sessionstore](https://auscaster.com/scafld/docs/go-api/pkg-internal-adapters-cli-sessionstore.md): Package sessionstore composes CLI session persistence with receipt trust checks from the committed workspace config. - [internal/adapters/cli/verify](https://auscaster.com/scafld/docs/go-api/pkg-internal-adapters-cli-verify.md): Package verify is the scafld verify command. - [internal/adapters/clock](https://auscaster.com/scafld/docs/go-api/pkg-internal-adapters-clock.md): Package clock provides runtime clock adapters for application use cases. - [internal/adapters/config](https://auscaster.com/scafld/docs/go-api/pkg-internal-adapters-config.md): Package config loads and merges scafld workspace configuration files. - [internal/adapters/corebundle](https://auscaster.com/scafld/docs/go-api/pkg-internal-adapters-corebundle.md): Package corebundle installs embedded managed scafld core assets into workspaces. - [internal/adapters/filesystem](https://auscaster.com/scafld/docs/go-api/pkg-internal-adapters-filesystem.md): Package filesystem owns workspace discovery and filesystem-backed bootstrap operations. - [internal/adapters/git](https://auscaster.com/scafld/docs/go-api/pkg-internal-adapters-git.md): Package git inspects workspace state through Git-backed adapters. - [internal/adapters/jsonstore](https://auscaster.com/scafld/docs/go-api/pkg-internal-adapters-jsonstore.md): Package jsonstore persists session ledgers as atomic JSON files. - [internal/adapters/markdown](https://auscaster.com/scafld/docs/go-api/pkg-internal-adapters-markdown.md): Package markdown parses, renders, and stores living Markdown task specs. - [internal/adapters/mcp/finalize](https://auscaster.com/scafld/docs/go-api/pkg-internal-adapters-mcp-finalize.md): Package finalize exposes the host-facing finalize MCP transport. - [internal/adapters/mcp/hardensubmit](https://auscaster.com/scafld/docs/go-api/pkg-internal-adapters-mcp-hardensubmit.md): Package hardensubmit exposes the hidden MCP submit_harden transport. - [internal/adapters/mcp/reviewsubmit](https://auscaster.com/scafld/docs/go-api/pkg-internal-adapters-mcp-reviewsubmit.md): Package reviewsubmit exposes the scafld review submission tool over MCP stdio. - [internal/adapters/process](https://auscaster.com/scafld/docs/go-api/pkg-internal-adapters-process.md): Package process runs external commands with streaming capture, watchdogs, and diagnostics. - [internal/adapters/providers](https://auscaster.com/scafld/docs/go-api/pkg-internal-adapters-providers.md): Package providers adapts external model providers to scafld review dossiers. - [internal/adapters/sign](https://auscaster.com/scafld/docs/go-api/pkg-internal-adapters-sign.md): Package sign signs receipts with an Ed25519 private key kept on the host, and refuses a key file that its group or other users can read. - [internal/adapters/terminal](https://auscaster.com/scafld/docs/go-api/pkg-internal-adapters-terminal.md): Package terminal contains small terminal output helpers. - [internal/adapters/trustcheck](https://auscaster.com/scafld/docs/go-api/pkg-internal-adapters-trustcheck.md): Package trustcheck adapts trusted-key files to the session replay trust port. - [internal/app/acceptance](https://auscaster.com/scafld/docs/go-api/pkg-internal-app-acceptance.md): Package acceptance runs and evaluates a task's acceptance criteria, from commands and recorded manual evidence, without changing lifecycle or session state. - [internal/app/approve](https://auscaster.com/scafld/docs/go-api/pkg-internal-app-approve.md): Package approve implements the approval lifecycle use case. - [internal/app/audit](https://auscaster.com/scafld/docs/go-api/pkg-internal-app-audit.md): Package audit contains workspace scope-auditing application logic. - [internal/app/bootstrap](https://auscaster.com/scafld/docs/go-api/pkg-internal-app-bootstrap.md): Package bootstrap creates the project-owned scafld workspace layout. - [internal/app/build](https://auscaster.com/scafld/docs/go-api/pkg-internal-app-build.md): Package build advances phase-bounded execution and projects evidence back into specs. - [internal/app/cancel](https://auscaster.com/scafld/docs/go-api/pkg-internal-app-cancel.md): Package cancel records cancellation lifecycle state. - [internal/app/complete](https://auscaster.com/scafld/docs/go-api/pkg-internal-app-complete.md): Package complete closes reviewed work after the review gate has passed. - [internal/app/config](https://auscaster.com/scafld/docs/go-api/pkg-internal-app-config.md): Package config prepares evidence-backed workspace configuration proposals. - [internal/app/envelope](https://auscaster.com/scafld/docs/go-api/pkg-internal-app-envelope.md): Package envelope defines stable JSON response envelopes for CLI automation. - [internal/app/fail](https://auscaster.com/scafld/docs/go-api/pkg-internal-app-fail.md): Package fail records failed lifecycle state and its reason. - [internal/app/finalize](https://auscaster.com/scafld/docs/go-api/pkg-internal-app-finalize.md): Package finalize owns the host-facing accountability finalization use case. - [internal/app/handoff](https://auscaster.com/scafld/docs/go-api/pkg-internal-app-handoff.md): Package handoff renders model-facing handoff material from task specs. - [internal/app/harden](https://auscaster.com/scafld/docs/go-api/pkg-internal-app-harden.md): Package harden opens and completes spec hardening rounds. - [internal/app/list](https://auscaster.com/scafld/docs/go-api/pkg-internal-app-list.md): Package list returns workspace task spec summaries. - [internal/app/packetrepair](https://auscaster.com/scafld/docs/go-api/pkg-internal-app-packetrepair.md): Package packetrepair writes operator-facing provider packet repair artifacts. - [internal/app/plan](https://auscaster.com/scafld/docs/go-api/pkg-internal-app-plan.md): Package plan creates draft specs from operator input. - [internal/app/reconcile](https://auscaster.com/scafld/docs/go-api/pkg-internal-app-reconcile.md): Package reconcile rebuilds living spec projections from session evidence. - [internal/app/report](https://auscaster.com/scafld/docs/go-api/pkg-internal-app-report.md): Package report aggregates workspace-level task metrics. - [internal/app/review](https://auscaster.com/scafld/docs/go-api/pkg-internal-app-review.md): Package review runs adversarial provider review and records review evidence. - [internal/app/specsource](https://auscaster.com/scafld/docs/go-api/pkg-internal-app-specsource.md): Package specsource loads exact Markdown source for agent-facing commands. - [internal/app/status](https://auscaster.com/scafld/docs/go-api/pkg-internal-app-status.md): Package status reads the current task state and suggested next action. - [internal/app/taskstate](https://auscaster.com/scafld/docs/go-api/pkg-internal-app-taskstate.md): Package taskstate contains the small workspace projections shared by taskless lifecycle entry points. - [internal/app/update](https://auscaster.com/scafld/docs/go-api/pkg-internal-app-update.md): Package update refreshes managed scafld core assets. - [internal/app/validate](https://auscaster.com/scafld/docs/go-api/pkg-internal-app-validate.md): Package validate checks specs without mutating workspace state. - [internal/app/verify](https://auscaster.com/scafld/docs/go-api/pkg-internal-app-verify.md): Package verify owns the CI-side receipt verification use case. - [internal/core/acceptance](https://auscaster.com/scafld/docs/go-api/pkg-internal-core-acceptance.md): Package acceptance evaluates criterion evidence against expected result kinds. - [internal/core/agentcontract](https://auscaster.com/scafld/docs/go-api/pkg-internal-core-agentcontract.md): Package agentcontract models role contracts delivered to agents. - [internal/core/completion](https://auscaster.com/scafld/docs/go-api/pkg-internal-core-completion.md): Package completion evaluates the review authority that allows a task to close. - [internal/core/diagnostics](https://auscaster.com/scafld/docs/go-api/pkg-internal-core-diagnostics.md): Package diagnostics turns a provider failure into a compact one-line reason for status and ledgers, and names the artifact that keeps the full transcript. - [internal/core/execution](https://auscaster.com/scafld/docs/go-api/pkg-internal-core-execution.md): Package execution defines command execution requests and results. - [internal/core/gate](https://auscaster.com/scafld/docs/go-api/pkg-internal-core-gate.md): Package gate defines deterministic failure payloads for lifecycle gates. - [internal/core/harden](https://auscaster.com/scafld/docs/go-api/pkg-internal-core-harden.md): Package harden models provider-backed pre-approval hardening. - [internal/core/hardengate](https://auscaster.com/scafld/docs/go-api/pkg-internal-core-hardengate.md): Package hardengate projects draft hardening evidence into the single state used by harden, approve, status, and handoff surfaces. - [internal/core/lifecycle](https://auscaster.com/scafld/docs/go-api/pkg-internal-core-lifecycle.md): Package lifecycle defines allowed task state transitions. - [internal/core/providerpacket](https://auscaster.com/scafld/docs/go-api/pkg-internal-core-providerpacket.md): Package providerpacket shares rejected provider packet material across layers. - [internal/core/receipt](https://auscaster.com/scafld/docs/go-api/pkg-internal-core-receipt.md): Package receipt owns the signed classification shared by finalization and verification. - [internal/core/reconcile](https://auscaster.com/scafld/docs/go-api/pkg-internal-core-reconcile.md): Package reconcile projects session evidence onto living task specs. - [internal/core/review](https://auscaster.com/scafld/docs/go-api/pkg-internal-core-review.md): Package review defines review dossiers, verdicts, and provider-output parsing. - [internal/core/reviewcontext](https://auscaster.com/scafld/docs/go-api/pkg-internal-core-reviewcontext.md): Package reviewcontext models the exact context packet given to review providers. - [internal/core/reviewevidence](https://auscaster.com/scafld/docs/go-api/pkg-internal-core-reviewevidence.md): Package reviewevidence defines the canonical file evidence contract used by the receipt-grade review path. - [internal/core/reviewgate](https://auscaster.com/scafld/docs/go-api/pkg-internal-core-reviewgate.md): Package reviewgate projects review-attempt and review evidence into the single gate state used by review, status, handoff, and completion commands. - [internal/core/reviewmaterial](https://auscaster.com/scafld/docs/go-api/pkg-internal-core-reviewmaterial.md): Package reviewmaterial projects the task-owned material surface shared by status, handoff, and API-style adapters. - [internal/core/reviewscope](https://auscaster.com/scafld/docs/go-api/pkg-internal-core-reviewscope.md): Package reviewscope derives the task-owned workspace surface used by review, status, handoff, and completion freshness checks. - [internal/core/runartifact](https://auscaster.com/scafld/docs/go-api/pkg-internal-core-runartifact.md): Package runartifact names where a task's runtime files live under .scafld/runs: its run directory, session ledger and lock, command diagnostics and provider packets. - [internal/core/session](https://auscaster.com/scafld/docs/go-api/pkg-internal-core-session.md): Package session defines the append-only evidence ledger and replay model. - [internal/core/spec](https://auscaster.com/scafld/docs/go-api/pkg-internal-core-spec.md): Package spec defines the normalized model for living Markdown task specs. - [internal/core/trust](https://auscaster.com/scafld/docs/go-api/pkg-internal-core-trust.md): Package trust reads, validates and writes .scafld/trusted-keys.json, the allowlist of Ed25519 public keys that receipt signatures are checked against, revoked keys included. - [internal/core/workspace](https://auscaster.com/scafld/docs/go-api/pkg-internal-core-workspace.md): Package workspace defines workspace bootstrap and dirty-state snapshot models. - [internal/platform/atomicfile](https://auscaster.com/scafld/docs/go-api/pkg-internal-platform-atomicfile.md): Package atomicfile provides atomic file replacement primitives. - [internal/platform/filelock](https://auscaster.com/scafld/docs/go-api/pkg-internal-platform-filelock.md): Package filelock provides advisory cross-process file locking for stores that read-modify-write shared state. - [internal/platform/mcpsubmit](https://auscaster.com/scafld/docs/go-api/pkg-internal-platform-mcpsubmit.md): Package mcpsubmit serves a minimal MCP stdio server for one structured payload. - [internal/platform/processguard](https://auscaster.com/scafld/docs/go-api/pkg-internal-platform-processguard.md): Package processguard hardens the scafld process while it handles secrets. - [internal/platform/signal](https://auscaster.com/scafld/docs/go-api/pkg-internal-platform-signal.md): Package signal coordinates process-wide interrupt cancellation and escalation. - [Go API](https://auscaster.com/scafld/docs/go-api.md): github.com/nilstate/scafld/v2 - [Internal](https://auscaster.com/scafld/docs/go-api/_sections/internal-528c12e7.md): Internal