Skip to content

Methodology

The constraint-first approach to AI-assisted development.

The Principle

Write the rules before the code. Enforce them automatically. Stop at first failure.

This inverts the typical AI workflow:

  1. Spec first - define invariants, decisions, and architecture before implementation
  2. Gate before generate - every request passes through a guardian that checks alignment
  3. Stop at first failure - the gate chain halts immediately on any failure
  4. Escalate, don't guess - when the spec is silent, the system waits for a human decision

The Gate Chain

Every /wk-impl runs in order:

Guardian -> Spec-synthesizer -> Test-author -> Handoff

A failure at any step stops the chain. You never get code that violates the design.

Guardian Verdicts

Verdict Meaning
PASS Proposal aligns with all invariants and ADRs. Proceed.
BLOCK Violates a specific rule. Fix the proposal or the spec.
NEEDS-DECISION Spec doesn't cover this. Record a decision first.

Comparison with Ceremony-Heavy Approaches

Aspect Ceremony-heavy Wolverine Kit
When roles run Every feature Phase-triggered
Enforcement Guidelines Machine verdicts
On ambiguity Agent guesses Stops, escalates
On violation Retry and hope Cites the rule

Writing Good Constraints

  1. Be specific enough to check. "Code should be clean" is not an invariant. "No bare print() outside ui.py" is.
  2. State what's blocked, not what's encouraged.
  3. One decision per ADR. Keep them atomic so agents can cite them precisely.
  4. Update the spec when reality changes. A stale spec is worse than no spec.
  5. Fewer rules, strictly enforced. Ten invariants that always hold beat fifty that are sometimes checked.