DocsWorkflow

Workflow

The daily pattern for using Delimit once it is installed. Reference pages tell you what each command does; this page tells you when to reach for them.

The core loop

Wrap, record, merge, replay

Delimit sits between your AI assistant and your merge. You wrap the assistant, it runs your gates, it emits a signed receipt, the receipt accumulates. That is the whole product.

1. Wrap
delimit wrap
Any AI-assisted CLI. Snapshots git before and after.
2. Gate
repo → security → tests
Each gate is advisory by default, enforcing when you flip it.
3. Sign
att_…
HMAC-SHA256 signed delimit.attestation.v1 bundle.
4. Replay
delimit.ai/att/…
A shareable evidence chain that grows with every wrapped merge.

Session start

Pick up where you left off

First command of every session. Prints the ledger context, last attestation, open gates, and any drift since the last session. No arguments needed.

delimit status

If the CLI is fresh on this machine, run delimit doctor first — it runs 14 prescriptive checks and tells you exactly what to fix.

Wrapping your AI assistant

Claude Code, Codex, Cursor, Gemini CLI, aider — anything you run on the command line

The default pattern is simple: put delimit wrap -- in front of whatever you would have typed.

# Claude Code
delimit wrap -- claude -p "add retries to the payment webhook handler"

# Codex
delimit wrap -- codex exec "refactor UserService to split the send/store paths"

# Gemini CLI
delimit wrap -- gemini -p "write tests for the new rate limiter"

# Any producer you can invoke from a shell
delimit wrap -- aider --yes --message "fix the flake in tests/api.spec.ts"

Every wrap produces a delimit.attestation.v1 bundle under ~/.delimit/attestations/ and prints a replay URL. The bundle captures the git head before and after, the list of changed files, every gate that ran, the exit code of the wrapped command, and an HMAC-SHA256 signature over the canonical JSON.

See the attestation schema for the full bundle shape.

Kill switch and handoff

When the model goes sideways

Add --max-time 60 to SIGKILL the wrapped command after 60 seconds of wall-clock. Delimit emits a liability_incident attestation (still signed, still replayable) and prints a cross-model handoff suggestion — a runnable delimit wrap command targeting a different producer.

delimit wrap --max-time 60 -- claude -p "rewrite the scheduler"

# ...60s passes...
# ⏱  killed after 60s (wall-clock limit)
# ⚠  liability_incident recorded: att_…
# 💡 handoff:  delimit wrap -- codex exec "rewrite the scheduler"

Pre-commit

Local gate before you push

A git pre-push hook enforces the same test_smoke gate that CI will run. Install it once per repo:

delimit setup hooks

The hook auto-detects Python or Node, runs pytest or npm test, and blocks the push on failure. Emergency override: git push --no-verify.

Pull request

Gate every PR via the GitHub Action

Drop this into .github/workflows/api-governance.yml:

- uses: delimit-ai/delimit-action@v1
  with:
    spec: api/openapi.yaml
    mode: advisory   # flip to 'enforcing' when ready

Posts a single comment per PR with the diff summary, breaking-change classification, and a link to the signed attestation for that run. Advisory mode reports; enforcing mode fails the check on policy violation. See the Action reference for the full input list.

Advisory to enforcing

Turn the gate on when you trust it

Every gate ships in advisory mode. The gate runs, the result is recorded in the attestation, but nothing is blocked. Run this way for a week. Read the attestations. When the gate has caught three real issues and zero false positives, flip to enforcing.

# .delimit/policies.yml
gates:
  test_smoke:      enforcing
  security_audit:  enforcing
  breaking_change: advisory     # still ramping confidence

Enforcing gates cause delimit wrap to exit non-zero on violation, and fail the GitHub Action check run on the PR. The attestation is still signed and replayable either way.

Replay and audit

The attestation chain is the evidence

Every attestation is a URL you can share: https://delimit.ai/att/att_…. The replay UI shows the command, the diff, the gates that ran, the signature verification, and a hash chain back through your recent history. Point auditors at a URL, not a Jira ticket.

Render the accumulated chain as a public trust page you can pin to your site:

delimit trust-page -o ./trust
# → static HTML + JSON Feed 1.1, no framework, offline-renderable

delimit ai-sbom -o ./ai-sbom.json
# → CycloneDX 1.6 bill of materials with AI-specific fields

Multi-model deliberation

For the ambiguous calls

Some decisions are not gate-shaped. delimit think dispatches a strategic question to Claude, Codex, Gemini, and (optionally) Grok in parallel and returns a consensus document with agreement analysis, dissenting views, and a confidence score.

delimit think "Should we rename the public 'user_id' field to 'uid'?"

Free tier gives you three deliberations to try it. After that, bring your own keys or subscribe. See Cross-Model Continuity for how the same context carries between assistants.

What lives where

Quick reference when you need to poke under the hood

~/.delimit/attestations/ signed bundles, one JSON per wrap
~/.delimit/ledger/ dated JSONL items (tasks, decisions, incidents)
~/.delimit/evidence/ collected evidence bundles
~/.delimit/memories.jsonl cross-session memory
.delimit/policies.yml per-repo gate + policy config
.delimit/baselines/ known-good spec/schema snapshots

Everything is plain JSON or JSONL. Grep-able, diff-able, back-up-able. No database. No daemon unless you opted into one.

Next steps