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
I1002
Relations are typed, inferred from stable identities, and never dangle
Where it stands
devtask.issue- Readiness
- complete completion is recorded and every required evidence token is present
- Status
- DONE
- Can start
- not now
- Milestone
- Milestone status
- ACTIVE
- Wave
1- Waiting on
- none
- Holds back
- Behind it in all
24- Evidence
2of2
Moves
plan.transitionWhat it is
- Objective
- Give the graph typed relations — implements, documents, exposes, generated from, enforced by, tested by, benchmarked by, depends on, projects to, served at — inferred where a stable convention exists, declared where it does not, and resolved or refused.
- Why
- A list of capabilities is an inventory; a graph of them is an architecture a person can navigate. The value is entirely in the edges, and an edge that points at nothing is worse than a missing one because it renders as an empty section instead of an error.
- Now
- Relations exist implicitly in frontmatter references, capability tags, rule metadata and ADR related lists. Nothing resolves them into a common edge type, and nothing fails when one does not resolve.
- Wanted
- Every edge has a type, both ends resolve to a node, and an unresolvable edge fails generation with a message naming the declaration, the missing end and the correction.
- Done when
- unknown: the record declares no `completion`
- Risk
- Strict resolution can make an unrelated documentation edit fail the build. The message has to be good enough that the failure is a five-second fix rather than an investigation.
Acceptance
- Each relation type is explicit, and the direction is part of its meaning
- Inference uses stable identities only, and an ambiguous case requires an explicit declaration instead of a guess
- A relation whose target does not exist fails generation, naming where it was declared and what is missing
- Tests cover malformed metadata, duplicate identities and dangling relations
- Validation
cargo test --workspace --all-featuresmajordomus generate --check- Evidence required
relations_resolvedangling_refused- Evidence present
relations_resolvedangling_refused
Scope
- Touches
apps/majordomus-cli/src/graph.rs- Not
Inference by substring or title matching where a stable identity existsRequiring a contributor to restate a relation the metadata already implies- Depends on
- Priority
- p0
- Profile
- deep-work
- Parallel safe
- true
- Owner
- unknown: the record declares no `owner`
The work so far
- Branches
- none
- Merged
- none
- Commits
0- Trunk
- master
- Sessions
- none
- Created
- 2026-09-06
- Updated
- 2026-09-06T16:19:14Z
- Started
- 2026-09-06T15:54:48Z
- Verified
- unknown: the record declares no `verified_at`
- Completed
- 2026-09-06T16:19:14Z
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
Nothing is wrong with these records.