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

I1102

The two namespaces are a typed contract, not a habit

Where it stands

devtask.issue
Readiness
blocked 1 of its dependencies is not DONE
Status
BLOCKED
Can start
not now
Milestone
Milestone status
ACTIVE
Wave
1
Waiting on
Holds back
Behind it in all
3
Evidence
0 of 2
In the waySubjectDetail
issueI1101I1101 is not DONE
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 I1102

majordomus plan verify I1102

majordomus plan done I1102

What it is

Objective
Declare the canonical layout of `.ai/` and `.majordomus/` as typed, versioned data — what each namespace holds, what it must never hold, and which lifecycle each directory's contents carry — so that the boundary can be checked rather than remembered.
Why
The boundary between portable knowledge and control-plane mechanics is the whole architecture. Stated only in prose it survives until the first subsystem finds it convenient to write an index next to a rule.
Now
Both namespaces exist and are populated. Nothing declares what belongs in which, and nothing refuses a control-plane artifact written under `.ai/` or a copy of authored knowledge written under `.majordomus/`.
Wanted
The layout is a schema-backed declaration; a check reads it and refuses a path that contradicts it.
Done when
unknown: the record declares no `completion`
Risk
A layout schema can become a second description of the tree it describes. It declares intent and lifecycle; the tree remains what discovery finds.

Acceptance

  • Each namespace declares what it holds, in typed and versioned form, generated from the canonical Rust types where generation is available
  • `.ai/` is defined as portable semantic material that keeps its meaning without this tool and across providers, and `.majordomus/` as control-plane state that must never hold a second copy of it
  • A check refuses an artifact placed in the namespace whose contract excludes it, and names both the path and the contract it violates
  • The skeleton a new repository receives is derived from the same declaration rather than being a parallel copy of it
Validation
cargo test --workspace --all-featuresbin/majordomus doctor
Evidence required
layout_declaredboundary_checked
Evidence present
unknown: the record carries no `evidence` entries

Scope

Touches
share/schemasshare/skeleton
Not
A configuration file restating what a convention already fixesMoving existing content; that is the migration issue
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-06
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

Nothing is wrong with these records.