Skip to content

I0002 — Define the canonical milestone and issue schema

Define the smallest repository-native representation of a milestone outcome specification and an issue execution contract, and enforce it the way every other configuration file here is enforced: a key nobody reads is an error.

DONE wave 1 · p0 · deep-work profile · parallel safe

Part of M000 — Milestone and DAG driven development.

Objective

Define the smallest repository-native representation of a milestone outcome specification and an issue execution contract, and enforce it the way every other configuration file here is enforced: a key nobody reads is an error.

Why

Every surface downstream reads these files. A field that is written and never read, or read and never written, becomes a lie that the website eventually publishes.

Current state

Policy, profiles and prompts each have an allowlist under share/allow. Milestones and issues had none because they did not exist.

Desired state

share/allow/project.txt, share/allow/milestone.txt and share/allow/issue.txt exist and every key in a canonical file matches one of them.

Scope

  • .majordomus/project
  • share/allow
  • docs/SCHEMAS.md

Out of scope

  • JSON Schema; this repository validates with allowlists and its own YAML subset
  • A separate evidence directory; evidence lives inside the record it proves

Dependencies

What waits on this

Acceptance criteria

  • An unknown key in a milestone or issue file is a reported failure
  • No status field exists in either schema
  • Evidence is part of the record whose completion it gates

Validation

  • bin/majordomus plan validate
  • bash test/run.sh 40_project_model

Evidence required

  • schema_test

Evidence

coverstypecommandresultat commit
schema_testtestbash test/run.sh 40_project_model1 passed, 0 failed2dd5915

Risk

A schema too small forces a later migration; a schema too large invites fields nobody reads.

Timeline

started
2026-09-04T03:12:42Z
verified
2026-09-04T03:12:43Z
completed
2026-09-04T03:12:44Z

Those three fields, the evidence above and the state of the dependencies are all the status is made of. There is no status field to disagree with them.

Canonical record: .ai/repo/project/issues/I0002.yaml. Read it back with majordomus plan show I0002.