Alignment Refactor
Restore naming, module boundaries, and structure so the code matches the concept capsule. Refactor immediately after green, while context is fresh.
Input
What feels off, or the scope to check: $ARGUMENTS
Before starting, locate:
- •The concept capsule (glossary, invariants — naming authority). If none exists →
/pragma:capsulefirst. - •The recent changes (files touched in the last slice)
- •What feels off (if the user has a specific concern, start there)
Procedure
1. Audit naming
Compare every public name (types, functions, modules, test suites) against the capsule glossary:
- •Mismatches: same concept, different words → rename to match glossary
- •Missing terms: glossary concept with no code home → note for future slice
- •Extra terms: code name with no glossary counterpart → add to glossary or delete as speculative
If the glossary says "Worker," the code says "Worker" — not "processor," not "handler."
2. Audit module boundaries
For each module, complete: "This module hides the decision about ___." (Parnas)
- •Can't complete the sentence → module does too much, split it
- •Two modules hide the same decision → merge
- •Module hides no decision (pass-through) → delete
Check functional core / imperative shell boundary: pure domain logic has zero I/O imports; I/O adapters have zero domain logic; shell calls core, never the reverse.
3. Delete dead code
- •Speculative abstractions (generics/interfaces with one implementation)
- •Commented-out code
- •"For later" structure (empty dirs, placeholders, stubs)
- •Unused imports and variables
If it doesn't serve a current test or behavior, it goes.
4. Check invariant enforcement
For each capsule invariant: type system (best) → constructor/validator (good) → tests (minimum) → none (fix this).
5. Classify authority deltas
Before closing refactor work, classify what changed and route durable updates:
- •Semantics changed (glossary/invariant/happy-path/non-goal meaning) →
/pragma:capsule update - •Strategy changed (cross-cutting decision/rationale/reversal trigger) →
/pragma:roadmap update - •Phase control changed (scope/status/ordering/deferment/exit criteria) →
/pragma:milestone update - •Confidence changed (assumption validated/invalidated/confidence shift) →
/pragma:assumptions update - •Enforcement readiness changed (invariant now enforceable in code/tests) →
/pragma:contract
Use explicit none for lanes with no change.
6. Verify and commit
Run full verification harness. All checks must pass — remain green throughout. Commit separately from behavior work: Refactor: align naming/boundaries to capsule after [slice]
Constraints
- •Tests stay green. Refactor under green.
- •No new features. Structure changes only. Missing behavior → write a
/pragma:card. - •The capsule is the authority. Code wrong + capsule right → change code. Code right + capsule wrong → update capsule first, then change code.
Output
- •Renames: what was renamed to match glossary
- •Splits/merges: module boundary changes
- •Deletions: speculative or dead code removed
- •Invariant status: which invariants are enforced where
- •Authority Delta:
- •Semantics:
none|/pragma:capsule update— [reason] - •Strategy:
none|/pragma:roadmap update— [reason] - •Phase control:
none|/pragma:milestone update— [reason] - •Assumptions:
none|/pragma:assumptions update— [reason] - •Enforcement:
none|/pragma:contract— [reason]
- •Semantics:
- •Capsule updates: if the capsule itself needed updating
- •Remaining drift: anything that needs a separate slice to fix
- •Lifecycle:
State: stabilizing,Next: first non-'none' authority delta command (otherwise /pragma:assumptions update),Loop: /pragma:consult(default unless user explicitly continues directly)