orc-pact

Tracks project invariants in a ledger and recomputes their status against code changes.

6|1|Updated Jul 4, 2026
One-click install
npx skills add https://github.com/azure-id/orc --skill orc-pact-azure-id
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: orc-pact
Source: https://github.com/azure-id/orc/tree/main/templates/skills/orc-pact
Command: npx skills add https://github.com/azure-id/orc --skill orc-pact-azure-id

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Decisions made during planning and brainstorming sessions evaporate after a run ends, leaving load-bearing promises undocumented while the code drifts underneath them. This Skill maintains a persistent ledger of system invariants, recomputes whether each promise still holds, and surfaces drifted or broken promises before they silently fail. ## Core Features & Use Cases - Invariant Harvesting: Pulls constraints verbatim from plan spec_invariants, grill sessions, brainstorm docs, and frozen interface contracts, each with a recorded origin. - Computed State Tracking: Classifies every promise as HOLDING, DRIFTED, UNCHECKABLE, or BROKEN using coverage-relative checks against anchored files, never storing stale states. - Plan Injection and Verify Recheck: Injects drifted promises as constraints into new plans whose declared files intersect the anchors, and re-checks touched promises after verification. - Use Case: A team decided that payments are never written twice per idempotency key. Months later, commits touch the ledger file; the skill flags the promise as DRIFTED, re-runs its test, and asks the user whether to re-anchor, improve the check, or retire it. ## Quick Start Ask the assistant to run /orc-pact to harvest constraints from the latest run and review any drifted promises in the ledger.

Frequently Asked Questions about orc-pact

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I track architectural decisions and invariants across coding sessions?▼

Record each decision as a ledger entry with a statement, origin, anchored files, and the cheapest check that proves it. The orc pact status command then recomputes whether each promise is holding, drifted, uncheckable, or broken on every read.

How does the pact ledger detect when code changes break a promise?▼

Drift is coverage-relative: only commits touching the files listed in an entry's anchors mark it DRIFTED. Running orc pact check re-executes the entry's test, command, or grep check and re-anchors it to HEAD if it passes.

Can a promise block an orchestrated run from shipping?▼

No. The pact_gate config defaults to warn and has no block mode. A broken promise during verification is reported as a P1 finding for the user to decide on, never an automatic abort.

What happens to promises that have no automated check?▼

They are recorded with check kind manual and shown as UNCHECKABLE, a first-class state that never raises the exit code. An assumption is modeled as a low-confidence manual entry rather than a separate ledger.

Why is PACT.md never edited by hand?▼

PACT.md is fully derived from the ledger and written only by orc pact sync, so the committed document and the ledger cannot diverge. Retired entries stay struck through with a recorded reason instead of disappearing.