A snapshot: read at commit 707a04c7ce8 on 2026-10-18T00:06:01Z by majordomus 0.29.0. Nothing on this page is read again. See it live
I0812
Validate the graph, and let doctor and watch ask the same validator
Where it stands
devtask.issueMoves
plan.transitionWhat it is
- Objective
- Implement `knowledge validate` detecting duplicate node ids, dangling explicit references, source paths that no longer exist, hash mismatches, edges with a missing end, edges without provenance and a stale generated index, each with a severity and a reproduce command, and declare the rule in the doctrine registry so doctor and watch dispatch the same validator rather than reimplementing it.
- Why
- Validation logic that exists twice diverges, and the second copy is the one that stops being run. The registry is the mechanism that makes doctor, watch and the command itself provably the same rule.
- Now
- Doctrines are declared with a validator, the commands that enforce it and its test; doctor proves each link of that chain from the source rather than from the declaration.
- Wanted
- knowledge_integrity is declared and dispatched from doctor and watch. Findings distinguish a broken Majordomus-owned reference, which is a failure, from a broken link to a deliberately external resource, which is not. Doctor also answers whether the index can be built at all in this checkout.
- Done when
- unknown: the record declares no `completion`
- Risk
- A validator that runs a full extraction inside doctor makes doctor slow enough to be skipped, and a check nobody runs is the failure this project measures. It has to compare hashes rather than rebuild.
Acceptance
- Every listed condition is detected by a case that introduces exactly that fault
- The doctrine appears in doctrine list, doctor proves it reaches both commands, and its test is named
- Severity distinguishes an owned reference from an external one, and the rule for which is which is stated
- A stale index is drift under watch and a failure under the command, and neither rebuilds it
- doctor reports whether the index is buildable here without leaving one behind
- Validation
bash test/run.sh 3075_knowledge_validate_judges_the_graphbin/majordomus knowledge validatebin/majordomus doctorbin/majordomus watch- Evidence required
validation_detectsdoctrines_wired- Evidence present
- unknown: the record carries no `evidence` entries
Scope
- Touches
lib/knowledge.shshare/standard/majordomus/rules/knowledge-graph.v1.mdlib/doctor.shlib/watch.shtest/cases- Not
Repairing anything automaticallyFailing on a link to a resource outside the repository- Depends on
- Priority
- p1
- Profile
- implementation
- Parallel safe
- false
- Owner
- unknown: the record declares no `owner`
The work so far
- Branches
- none
- Merged
- none
- Commits
0- Trunk
- master
- Sessions
- none
- Created
- 2026-09-04
- Updated
- 2026-10-16
- Started
- unknown: the record declares no `started_at`
- Verified
- unknown: the record declares no `verified_at`
- Completed
- unknown: the record declares no `completed_at`
Synchronisation
- Adapter
scripts/github-sync- Repository
- unknown: the derived plan's header carries no repository
- External issue
- unknown: a live GitHub state; this executable makes no network call, so only `scripts/github-sync --check` can answer it
- State there
- unknown: a live GitHub state; this executable makes no network call, so only `scripts/github-sync --check` can answer it
Findings
| Level | Code | Message | Reproduce |
|---|---|---|---|
| WARN | scope_conflict | shares test/cases with I0838; they may not run concurrently | majordomus plan validate |