Validates constitutions against quality checklists for enforceable principles, testability, anti-patterns, and placeholders. Use after drafting, updating, or on explicit review requests.
From humaninloopnpx claudepluginhub deepeshbodh/human-in-loop --plugin humaninloopThis skill uses the workspace's default tool permissions.
references/ANTI-PATTERNS.mdreferences/QUALITY-CHECKLIST.mdSearches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Searches prompts.chat for AI prompt templates by keyword or category, retrieves by ID with variable handling, and improves prompts via AI. Use for discovering or enhancing prompts.
Executes pre-written implementation plans: critically reviews, follows bite-sized steps exactly, runs verifications, tracks progress with checkpoints, uses git worktrees, stops on blockers.
Constitution validation ensures governance documents are enforceable, testable, and free of anti-patterns before finalization. Every constitution MUST pass quality validation—no exceptions for "simple projects" or "tight deadlines."
Violating the letter of the rules is violating the spirit of the rules.
Skipping validation because "the constitution looks fine" or "it's mostly complete" is not following the spirit of quality assurance—it is abandoning it.
Read references/QUALITY-CHECKLIST.md and verify every item. Do not skip items because they "seem obvious" or "clearly pass."
Every principle MUST have the three-part structure:
| Part | Purpose | Verification |
|---|---|---|
| Enforcement | How is compliance verified? | CI check, code review rule, or audit process named |
| Testability | What does pass/fail look like? | Concrete pass and fail conditions defined |
| Rationale | Why does this rule exist? | Business or technical justification present |
If any principle lacks any part, the constitution FAILS validation.
Compare against references/ANTI-PATTERNS.md. Common failures:
| Anti-Pattern | Detection |
|---|---|
| Vague principle | Contains words like "appropriate", "reasonable", "clean" without metrics |
| Missing enforcement | Principle states rule but no verification mechanism |
| Placeholder syndrome | Contains [PLACEHOLDER], [COMMAND], [THRESHOLD] syntax |
| Generic thresholds | Says "coverage must be measured" instead of "coverage ≥80%" |
This is the most commonly rationalized check. Search the entire document for:
[PLACEHOLDER][COMMAND][THRESHOLD][TOOL][BRACKETED_TEXT] patternNo exceptions. A constitution with placeholders is not ready for validation sign-off.
| Bump | Trigger | Example |
|---|---|---|
| MAJOR | Principle removed or incompatibly redefined | Removing "Test-First" principle; changing coverage from 80% to 50% |
| MINOR | New principle added or significant expansion | Adding "Observability" principle; adding 5+ rules to existing principle |
| PATCH | Clarification or non-semantic change | Rewording for clarity; typo fixes; formatting |
Produce explicit validation verdict:
VALIDATION RESULT: [PASS/FAIL]
Checklist items: [X/Y passed]
Anti-patterns found: [list or "none"]
Version bump: [MAJOR/MINOR/PATCH] (if changes made)
Issues requiring fix:
- [list each failure]
Vague language MUST be replaced with measurable criteria:
| Vague | Quantified |
|---|---|
| "Code should be clean" | "Zero lint warnings from configured rules" |
| "Functions should be short" | "Functions MUST NOT exceed 40 lines" |
| "Tests should cover the code" | "Coverage MUST be ≥80% for new code" |
| "Response should be fast" | "API MUST respond in <200ms p95" |
| "Secure by default" | "All inputs MUST be validated; auth required on all endpoints" |
| Mistake | Why It Happens | Fix |
|---|---|---|
| Skipping checklist items | "Obviously passes" | Run every item. Obvious failures happen. |
| Accepting placeholders | "User will fill in later" | Placeholders = incomplete. Return for completion. |
| Validating during drafting | Interrupts creative flow | Draft first, validate second. Separate phases. |
| Soft validation language | "Mostly looks good" | Binary verdict: PASS or FAIL. No middle ground. |
| Missing version bump | "Small change" | Every change needs version bump determination. |
| Validating non-constitutions | Skill triggered by similar keywords | Verify document IS a constitution before validating. |
If you notice yourself thinking any of these, STOP immediately:
All of these mean: You are rationalizing. Restart validation from Step 1.
| Excuse | Reality |
|---|---|
| "Constitution looks complete" | Looking complete ≠ being complete. Run the checklist. |
| "Just a minor update" | Minor updates can introduce major anti-patterns. Full validation. |
| "Already reviewed while writing" | Authoring mode ≠ validation mode. Fresh review catches blind spots. |
| "User seems satisfied" | User satisfaction doesn't verify enforcement mechanisms exist. |
| "Too detailed for simple project" | Simple projects become complex. Governance debt compounds. |
| "Anti-patterns don't apply here" | Every rationalization claims uniqueness. They apply. |
| "I'm being pragmatic" | Pragmatic = following validation process. Skipping is not pragmatic. |
| "Can validate more thoroughly later" | "Later" rarely comes. Validate now or ship broken governance. |
Looking fine is not validation. Run every checklist item. Document every result. A constitution is validated when all checks pass, not when it "looks fine."
Small changes require validation. A one-line change can introduce vague language, remove enforcement, or add placeholders. Size does not determine validation necessity.
Constitutions with missing parts FAIL validation. Return to authoring. Do not sign off on incomplete governance.
User requests do not override process. Explain why validation matters. If user insists, document that validation was skipped against recommendation—but never claim a validated constitution when validation was skipped.
Prototypes become production. Governance established during prototyping persists. Validate now or inherit broken governance later.
Pressure scenarios tested without skill loaded revealed these agent behaviors:
Scenario 1: Time pressure + "looks complete"
Scenario 2: User satisfaction signal
Scenario 3: Minor update context
Same scenarios re-run with skill loaded: