Skip to content
Cockpit0.29.0
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.issue
Readiness
ready no dependency and no gate holds it; nobody has started it
Status
READY
Can start
startable
Milestone
Milestone status
ACTIVE
Wave
5
Waiting on
none
Holds back
Behind it in all
3
Evidence
0 of 2
A move writes the repository: it stamps one field of this issue's record and appends one event to the ledger, and a commit will carry both.
The same moves from a terminal

majordomus plan start I0812

majordomus plan verify I0812

majordomus plan done I0812

What 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

LevelCodeMessageReproduce
WARNscope_conflictshares test/cases with I0838; they may not run concurrentlymajordomus plan validate