Local pack gates. Humans review. Not conformity assessment.
One contract for Cursor, Copilot, Claude, Codex, Windsurf, Cline, Aider, Continue, and CI-only paths. Assistants run curbpack, then read ContextPack / IR — they never invent gate results or certification claims. There is no chat knowledge base over regulation text (by design).
Pin stays @v0.5.2. No pack unlock. Optional tutor product: Coreward pointer — not part of activation.
install → doctor → init → check → share [--bundle] → (human) attest → proof verify
doc/dep edits → curbpack check (exit code authoritative)
├─ red → check --heal → ask … --propose → re-check
└─ green → optional export --context-pack / --buyer-questions
→ share / prepare-release → human attest (never auto-attest)
optional → curbpack drift (multi-signal checklist; exit 0 always)
Warm-start: curbpack pathway status — optional interview that suggests checklists (see pathway). Agents may status / suggest / note / check / share only. Human confirms and attest: --i-am-human or CURBPACK_ALLOW_CONFIRM=1 (TTY alone is not enough) — never invent pack ids. Dual-draft when writing prose: Option A + Option B + Recommended: A|B → human pick → research --cite-check (refuses ungrounded Claims) → human confirm-prose (also refuses stub-only). Prefer ContextPack pathway section over spelunking seed JSON. Illegal confirm order → usage exit 2. Seed is not a gate input. Research packet is informational only (never check pass/fail). Three ways in (Write / Bring / CI) all end in the same local check.
| Primitive | Path | Use |
|---|---|---|
| GateFailure IR | .github/curbpack/cache/latest_failure.json |
Authoritative findings; statechart_context.active_parent_state_path = pathway phase when seed exists |
| instrument.json | same cache dir | Δ deps / secret-hits whisper |
| remediations.json | same | Reuse gate_id hints |
| ContextPack | .github/curbpack/cache/context-pack.json (+ .md) |
One washed assistant artifact (+ pathway next) |
| pathway-seed.json | same cache dir | Warm-start enums + HITL ticks + session_notes/corrections/last_draft_pick (CLI-only writer; not a gate input) |
| research-packet.json | same cache dir | Allowlisted citation trail + requirements (not a gate input) |
| research-brief.md | same cache dir | One-screen human brief |
| RKG | .github/curbpack/graph/policy-graph.json |
Pack→rule navigation (exported on confirm-packs) |
| buyer-questions / lay-of-land | export outputs | Human share |
| HPURL pointer | .github/curbpack/evidence/hpurl-pointer.json |
Post-attest client-side verify via proof/index.html |
| hooks + Action | init / @v0.5.2 |
Force re-check loop |
| drift report | curbpack drift [--json] |
Evidence checklist (exit 0; see evidence-drift) |
| evidence bundle | share --bundle |
review-pack/evidence-bundle.html offline handoff |
| review (received pack) | curbpack review <pack-dir> |
Offline document triage — not a product verdict |
| review (in-repo) | curbpack review --repo [path] [--packs a,b] [--json] [--full] [--since] [--edges] |
Governed-doc triage via ProsePaths; cold default house-policy; write-free; --edges ingest-only with --json |
| review (chain) | curbpack review --verify-chain <parent.json> <child.json> |
Exclusive digest-chain check between prior JSON reports |
curbpack export --context-pack
# → .github/curbpack/cache/context-pack.json (+ .md)Reviewers: curbpack review <received-pack> on a share. Maintainers screening their own tree: curbpack review --repo (optional --packs / --since / --verify-chain). Surfaces are pack-governed documentation only — thin packs yield few surfaces; that is scope, not classifier failure. --edges is integrator ingest-only (--repo --json).
Prefer curbpack pathway status / pathway suggest for enum-driven warm start — see pathway. Manual override:
| Situation | Pack |
|---|---|
| Default / unknown product | house-policy (curbpack init) |
| CRA-style annex drafts (opt-in) | cra-baseline via --packs |
| Medtech IEC 62304-style (opt-in) | medtech-iec62304 via --packs |
Catalog is frozen to those three ids until freeze review. See Intent vs Scope. Auditors: for-authorities.
| System | Adoption artifact | How to enable |
|---|---|---|
| Cursor | Skill via curbpack init → .cursor/skills/curbpack/SKILL.md |
init (already); then ContextPack |
| GitHub Copilot | .github/copilot-instructions.md |
Auto-picked in this repo; copy into adopters if useful |
| Claude Code / Claude in IDE | Root CLAUDE.md |
Drop-in; link this doc |
| Generic agents (Codex, Windsurf, Cline, Aider, Continue, …) | Root AGENTS.md |
De-facto agent readme |
| Claude Desktop / Cursor MCP / VS Code MCP | Thin MCP cmd/curbpack-mcp (library-backed; prefer over examples/mcp/) |
Tools are read-only resolve/doctor/digest; CLI remains SoR for check/attest |
| ChatGPT / web Claude / Gemini (no repo tools) | Paste context-pack.md or explain-packet only |
Human must re-run check locally — no false “fixed” |
| CI-only | Action @v0.5.2 + SARIF (+ ContextPack artifact when available) |
Primary PR path |
Init hygiene: curbpack init does not auto-write AGENTS.md / CLAUDE.md / copilot-instructions.md into every product repo (avoids clutter). Cursor gets the skill; other tools read those files when present — adopters may copy them once from this repo.
- Locally:
curbpack checkthencurbpack export --context-pack. - Paste
.github/curbpack/cache/context-pack.md(or washed explain-packet) into the chat. - Treat chat output as proposals only. Re-run
curbpack checkbefore any “fixed” claim.
Regulation prose and raw source stay off the default tutor path. Dual-rep IR + ContextPack are the memory. Chat never greenlights gates.
- 60-second paths · Buyer evidence · Pathway · Daily loop
- Stable contracts · For authorities · Intent vs Scope
- Shared Frame · Shared Frame annexes — curbpack ⇄ Mapper seam (pin
a36aeef)