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.
delimit.attestation.v1 bundle.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 readyPosts 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
Everything is plain JSON or JSONL. Grep-able, diff-able, back-up-able. No database. No daemon unless you opted into one.