Night Market Skill — ported from claude-night-market/imbue. For the full experience with agents, hooks, and commands, install the Claude Code plugin.
Rules that depend on willpower fail under pressure. Enforcement earns trust by making the right path the only path.
ODCV-Bench found that agents break self-imposed constraints 30-50% of the time when goals conflict. Practitioner consensus confirms: past 150 soft rules, compliance drops for ALL rules, not just the new ones.
The core insight: "settings.json is a firewall; CLAUDE.md is an employee handbook." Handbooks work for guidance. Firewalls work for enforcement. Mixing them up creates a false sense of security.
LayerMechanismComplianceExamplesSoft VowSkill instructions, CLAUDE.md rules80%"Write tests first", "Keep commits small"Hard VowHooks (PreToolUse/PostToolUse), settings.json permissions100%Block --no-verify, enforce file size limitsNen CourtExternal validator agents checking outputDeterministicLint checks, test runs, constraint audits
Soft Vows rely on model compliance. Cheap to add and easy to iterate, but unreliable under goal conflict. Use when the constraint requires judgment, violation is annoying but not dangerous, or you are still learning what the right rule is.
Hard Vows block forbidden actions before they execute via hooks and settings.json permissions. Use when the constraint is binary, violation causes real damage, or the soft vow version was violated repeatedly.
Nen Court spawns external validator agents that audit output after a phase completes. Use when the constraint requires analysis (not pattern matching), a hook cannot express the rule, or the check needs codebase context.
When adding a new constraint, follow this sequence:
Add the rule to the relevant skill or CLAUDE.md. This is the cheapest path: zero cost, minutes to deploy, ~80% compliance.
Track violations via execution logs, post-hoc audits
( imbue:justify reports), user complaints, and Nen
Court findings from related audits.
If violation rate exceeds 20% over a 30-day window:
Current classification of existing constraints:
ConstraintCurrent LayerTarget LayerNotesIron Law (no impl without failing test)Nen CourtNen Courtvalidators/iron_law.py audits commit order (#406)No --no-verifyHardHardAlready hook-enforceableScope-guard worthiness scoringSoftSoftRequires judgment, not binaryProof-of-work evidenceNen CourtNen Courtvalidators/proof_of_work.py checks [Ex] refs and status (#406)Bounded discovery readsHardHardvow_bounded_reads.py with fcntl.flock for parallel safety (#418)No AI attribution in commitsHardHardHook pattern-matches git commit commandMarkdown line wrapping at 80 charsNen CourtNen Courtvalidators/markdown_wrap.py flags >80-char prose lines (#406)No emojis in commitsHardHardHook pattern-matches git commit command
The three Nen Court validators are standalone scripts under
plugins/imbue/validators/. Each reads JSON on stdin and writes a
verdict JSON on stdout, using exit codes 0 (pass), 1 (violation), and
2 (inconclusive). Examples:
bash
# Markdown wrap audit on a list of files
echo '{"files": ["README.md", "docs/guide.md"]}' \
| python plugins/imbue/validators/markdown_wrap.py
# Iron Law audit on an explicit commit log
echo '{"commits": [
{"sha": "abc", "ts": 100, "files": ["tests/test_x.py"]},
{"sha": "def", "ts": 200, "files": ["src/x.py"]}
]}' | python plugins/imbue/validators/iron_law.py
# Proof-of-work audit on agent output
echo '{"text": "Tested foo [E1] [E2] [E3]. Status: PASS.", "min_evidence": 3}' \
| python plugins/imbue/validators/proof_of_work.py
Mission orchestrator integration: dispatch the appropriate validator at each phase boundary (see Nen Court Protocol below) and treat exit code 1 as a blocking gate, exit code 2 as advisory.
A vow graduates when any of these conditions hold:
Hard Vows can be demoted back to Soft if:
Nen Court runs at phase boundaries in the mission orchestrator lifecycle:
specify: validate spec completenessplan: validate plan feasibilityexecute: validate Iron Law, additive bias,
proof-of-workpr-prep: final compliance audityaml
validator:
name: iron-law-court
constraint: "Tests must drive implementation"
inputs:
- git log with timestamps
- diff of test files vs implementation files
checks:
- test file modified before implementation file
- no test assertions changed to match output
- coverage did not decrease
output:
verdict: pass | violation | inconclusive
evidence: [list of specific findings]
recommendation: [action if violation]
VerdictMeaningActionpassConstraint satisfiedPhase advancesviolationConstraint broken with evidencePhase blocked until fixed or user overridesinconclusiveCannot determine complianceFlag for human review, do not block
The user can override any Nen Court verdict:
imbue:scope-guard -- Soft vow layer. Worthiness
scoring is a judgment call that belongs in skills.imbue:proof-of-work -- Mixed enforcement.
Evidence rules are soft; evidence content can be
verified by a Nen Court validator.imbue:justify -- Post-hoc Nen Court audit.
Already functions as a validator agent for additive
bias, Iron Law, and test mutations.text
specify -> [Nen Court: spec review] -> plan
plan -> [Nen Court: plan review] -> execute
execute -> [Nen Court: justify] -> pr-prep
Phase advances only when Nen Court returns pass or
the user provides an explicit override.
imbue:karpathy-principles - the discursive layer
this skill governs (vow-enforcement decides which
principles graduate from skills to hooks)imbue:scope-guard, imbue:proof-of-work,
leyline:additive-bias-defense - example soft vows
that vow-enforcement classifies and may promotedocs/quality-gates.md#skill-level-quality-gate-composition
for the federation this skill governs