Repozitář říká, že pravidlo se vynucuje. Skript existuje, test existuje a nic skript nevolá. Každý artefakt vynucování je přítomen a vynucování je fikce — a žádné čtení souborů vám to neřekne, protože každý vypadá správně.
doctrine: vypíše, co je deklarováno, jeho třídu a validátor, který o tom rozhoduje
doctor: prochází od deklarace přes validátor a dispatch k exit kódu, testu a CI, ze zdroje
check: spustí jedno pravidlo proti aktuální úloze pomocí --rule
setup: installed
given:
- 'Majordomus installed with the policy declaring two enforcements'
- 'no git hook invokes the tool yet'
steps:
- id: list-the-rules
run: ['doctrine', 'list']
note: 'every rule with its class, and whether the tool enforces it'
expect:
exit: 0
stdout_contains: ['majordomus.enforcement-wiring', 'blocking']
- id: find-the-gap
run: ['doctor']
note: 'the enforcement the policy declares reaches no hook: named, with the fix'
expect:
exit: 10
stdout_contains: ['^FAIL wiring', 'doctor-on-commit']
- id: read-the-status
run: ['doctrine', 'status']
note: 'the resolved rule set as the tool applies it'
expect:
exit: 0
stdout_contains: ['doctrine']
then:
- 'a declared enforcement that nothing invokes is a failure, not a green line'
Každý článek řetězce se řeší ze zdroje, ne z popisu, který o sobě podává registr, a přerušení se pojmenuje. Selže i validátor, který nedeklaruje žádné pravidlo.
-
každé pravidlo s třídou a zda ho nástroj vynucuje
majordomus.knowledge-graph advisory mj_validate_knowledge_graph doctor,watch
majordomus.knowledge-integrity blocking mj_validate_knowledge_integrity check,doctor
majordomus.candidates-reviewed advisory mj_validate_knowledge_accumulation doctor
majordomus.ai-layout-integrity blocking mj_validate_ai_layout doctor,watch
majordomus.checkpoint-freshness advisory mj_validate_checkpoint check,watch
majordomus.layout-integrity advisory mj_validate_layout doctor
majordomus.ledger-integrity blocking mj_validate_ledger check,doctor,watch
majordomus.policy-completeness blocking mj_validate_policy_defaults doctor,watch
majordomus.bootstrap-integrity blocking mj_validate_bootstrap doctor,watch
majordomus.catalogue-integrity blocking mj_validate_catalogue doctor,watch
majordomus.context-integrity blocking mj_validate_context doctor,watch
majordomus.policy-integrity blocking mj_validate_policy doctor,watch
majordomus.adr-integrity blocking mj_validate_adr doctor,watch
majordomus.blocker-resolution blocking mj_validate_blockers check,finish
majordomus.decision-records advisory mj_validate_decisions check,doctor,watch
majordomus.dag-integrity blocking mj_validate_dag doctor,watch
majordomus.command-surface blocking mj_validate_command_surface doctor,watch
majordomus.doctrine-wiring-integrity blocking mj_validate_doctrine_wiring doctor
majordomus.enforcement-wiring blocking mj_validate_wiring doctor
majordomus.command-coverage blocking mj_validate_command_coverage doctor,watch
majordomus.handover-integrity blocking mj_validate_resolver doctor,watch
majordomus.lifecycle-observed blocking mj_validate_lifecycle doctor,watch
majordomus.knowledge-observed blocking mj_validate_knowledge_lifecycle doctor,watch
majordomus.note-integrity blocking mj_validate_note finish
majordomus.profile-requirements blocking mj_validate_profile_requirements finish
majordomus.project-integrity blocking mj_validate_project doctor,watch
majordomus.projection-integrity blocking mj_validate_projection doctor,watch
majordomus.context-budget blocking mj_validate_budget doctor,watch
majordomus.deployment-contract blocking mj_validate_deployments doctor,watch
majordomus.prompt-capture blocking mj_validate_prompt_capture doctor,watch
majordomus.prompt-continuity blocking mj_validate_prompt_continuity doctor,watch
majordomus.prompt-integrity blocking mj_validate_prompts doctor,watch
majordomus.questions-store-integrity blocking mj_validate_questions_store doctor,watch
majordomus.retention-caps blocking mj_validate_retention doctor,watch
majordomus.roadmap-integrity blocking mj_validate_roadmap doctor,watch
majordomus.rule-package-integrity blocking mj_validate_rule_package doctor,watch
majordomus.schema-integrity blocking mj_validate_schema_integrity doctor,watch
majordomus.scope-integrity blocking mj_validate_scope check,finish,watch
majordomus.session-records blocking mj_validate_session_records doctor,watch
majordomus.record-changed-files advisory mj_validate_record_changed_files doctor
majordomus.session-lifecycle blocking mj_validate_session_lifecycle doctor,watch
majordomus.skill-integrity blocking mj_validate_skills doctor,watch
majordomus.state-consistency blocking mj_validate_state check,finish,watch
majordomus.task-continuity advisory mj_validate_continuity finish
majordomus.task-on-the-mesh blocking mj_validate_task_on_the_mesh check,finish
majordomus.use-case-coverage blocking mj_validate_use_case_coverage doctor,check,finish
majordomus.verification-integrity blocking mj_validate_verification finish
majordomus.obligation-closure blocking mj_validate_obligations check,finish
majordomus.completion-gates blocking mj_validate_completion_gates check,finish
majordomus.publication-currency blocking mj_validate_publication_currency finish
- exit 0
- stdout_contains /majordomus.enforcement-wiring/
- stdout_contains /blocking/
-
vynucování, které politika deklaruje, nedosáhne žádného hooku: pojmenováno, s opravou
OK knowledge graph — buildable here: 98 node(s), 58 edge(s), compiled into a temporary file and removed; no stored index to go stale
OK knowledge records — 0 record(s) valid against knowledge/v1; every reference resolves [reproduce: majordomus knowledge check]
OK knowledge candidates — 0 await review, cap 40
OK layout .ai/manifest.yaml — schema ai-repository/v1
OK layout .ai/repo/scope.yaml — version 1; 14 in pathspec(s); every key is one the schema declares
OK layout .ai/local/ — ignored, and nothing under it is tracked
OK layout .ai/ — every section the manifest names exists; the layer is readable without the tool
OK layout .ai/repo/prompts — present
OK layout .ai/local/state/handovers — present, 0 record(s)
OK layout .ai/local/state/checkpoints — present, 0 record(s)
OK records ledger.jsonl — every line is a well-formed event
OK policy 39 key(s) — every policy value the code reads is declared, with no reader-side default
OK bootstrap 3 projection(s) — each points at .ai/README.md, carries no rule of its own and names only rules in force
OK catalogue 0 use case(s), 0 application(s) — every command, doctrine, claim, responsibility, category, setup and cross-reference resolves, both directions
OK context .ai/ — 19 context document(s) carry the contract; ids unique, references resolve, no final document superseded, no cycle [reproduce: majordomus context validate]
OK policy .ai/repo/policy.yaml — parsed, version 1
OK profiles 4 files — parsed; default 'implementation' exists
INFO adr .ai/repo/adrs/ — no decisions; nothing to validate
OK records decisions.md — every entry is attributable
INFO project .ai/repo/project — no canonical project model here; nothing to validate
OK command surface — 30 public command(s), reconciled against the dispatch table [reproduce: majordomus doctor]
OK doctrine 50 of 61 rule(s) carry a validator — validator, dispatch, propagation, test and CI resolve for every one of the 50; the remaining 11 declare no validator and this check does not examine them
FAIL wiring doctor-on-commit — hook .git/hooks/pre-commit does not exist [reproduce: ls -l .git/hooks/pre-commit]
FAIL wiring finish-on-push — hook .git/hooks/pre-push does not exist [reproduce: ls -l .git/hooks/pre-push]
OK command coverage — every public command is exercised and refuted [reproduce: bash test/run.sh 31_command_coverage]
OK resolver handovers — no record for this worktree and branch (absence, not a stale match) [reproduce: majordomus handover --resolve]
OK lifecycle activity — 0 episode(s) opened here; too few to judge whether the writers stopped
OK knowledge wiring — the close path and the compaction adapter call the deriver
OK knowledge deriver — no episode has closed here; nothing to judge
INFO project .ai/repo/project — no canonical project model here; nothing to validate
OK projection AGENTS.md — content matches its stamp
OK projection CLAUDE.md — content matches its stamp
OK projection GEMINI.md — content matches its stamp
OK budget AGENTS.md — 42 lines, budget 150
OK links AGENTS.md — all references resolve
OK counts AGENTS.md — no hardcoded counts
OK context builder — 21 lines, budget 300 [reproduce: majordomus context]
OK capture share/schemas/majordomus/capture/capture.v1 — 2 file(s) describe majordomus.capture/v1 at the path the identifier derives: the record as JSON Schema, the document as protobuf
OK capture .ai/local/prompts — ignored and untracked
OK capture .ai/local/prompts — no records yet; the archive is empty
OK capture .ai/local/prompts — every prompt is present as all three: the record, the Markdown and the YAML
OK prompts .ai/local/prompts — the archive and every record in it are readable by their owner only
OK prompts .ai/local/prompts — no records yet; the archive is empty
OK prompt 4 asset(s) — front matter valid, every token known
OK records open-questions.md — every entry parses
OK retention ledger — 1 lines, cap 5000
OK retention handovers — 0 files, cap 200
OK retention checkpoints — 0 files, cap 500
OK retention sessions — 0 records, cap 500
INFO project .ai/repo/project — no canonical project model here; nothing to validate
OK rules .ai/repo/rules/vendor/majordomus — every file matches the manifest (1 (1.0.0-alpha.4))
OK rules 61 rule(s) — resolve in one deterministic order; vendored baseline plus project rules, no override — 51 carry a validator, 10 are normative text this tool does not check
OK rules blocking — all 44 blocking rule(s) carry a validator
OK schema rules — 61 rule(s) resolve in one order: the vendored baseline in manifest order, then the project's, as a dependency graph
OK schema share/kinds.yaml — 36 kind(s); every one that carries metadata declares a schema
OK schema share/schemas — 53 schema(s), each valid JSON and each applied — by a kind, through an allow-list the tool reads, by a validator that names it, or as a generated document's contract (15)
OK records 0 record(s) — every changed_files names work, not generated or local state
OK session .ai/local/session-contexts — ignored and untracked
OK session .ai/local/session-contexts — no working contexts yet; the store is empty
INFO skill .ai/repo/skills/ — no skills; nothing to validate
INFO use-case 30 advisory gap(s) — not covered by an active use case, and the policy does not require it: command:init command:update command:doctor command:watch command:start command:context command:checkpoint command:handover command:check command:finish command:history command:decision command:question command:prompt command:evidence command:skills command:capture command:search command:doctrine command:plan command:version command:session command:knowledge command:adr command:usecase command:rules command:migrate command:recover command:bench command:archive [reproduce: majordomus usecase coverage]
OK use-case 0 of 30 target(s) covered — every public command the policy requires is named and run by an active use case (policy use_cases.coverage)
INFO env - — bash <version>, git <version>, jq <version>, shellcheck present
WARN clone unpushed — commits on no remote: main(2) — work on one disk is invisible to every other session and cannot be integrated [reproduce: git push -u origin <branch>]
OK clone uncommitted — no linked worktree, so no uncommitted work can sit in one
INFO clone trunk — no remote-tracking branch, so this checkout's distance from the remote trunk cannot be measured
· reasoning <decided by the advisors and the executable of the recording machine>
· budget doctor — <timed against the policy budget>
doctor: 2 failure(s)
- exit 10
- stdout_contains /^FAIL wiring/
- stdout_contains /doctor-on-commit/
-
vyřešená sada pravidel tak, jak ji nástroj aplikuje
declared doctrines: 50 of 61 rule(s) in the effective set
blocking: 43
advisory: 7
missing validators: 0
blocking rules with no validator, outside this registry: 0
without a test file: 0
the registry is the enforced subset of the effective rule set: majordomus rules list
wiring is verified by: majordomus doctor
the rules outside it: scripts/ci/rule-proof-check
- exit 0
- stdout_contains /doctrine/
Řetězec od této stránky ke kódu: případ užití jmenuje příkazy, pravidla a tvrzení; každé pravidlo se dispatchuje z registru a každé tvrzení jmenuje test, který ho dokazuje; scénář výše provedl příkazy. Nic v tomto řetězci není text o záměru.
Vypočteno z toho, co sdílejí: tvrzení, pravidla, příkazy, kategorie, aplikace. Tento seznam nikdo neudržuje.