Skip to content

I0008 — Project the model to GitHub milestones and issues

Create and update GitHub milestones and issues from the canonical model, report drift instead of overwriting human edits, and keep every network call out of the tool itself.

DONE wave 5 · p1 · implementation profile · parallel safe

Part of M000 — Milestone and DAG driven development.

Objective

Create and update GitHub milestones and issues from the canonical model, report drift instead of overwriting human edits, and keep every network call out of the tool itself.

Why

GitHub is where collaboration happens, so it must show the plan. It is not where the plan lives, so it must never be the thing that defines it.

Current state

The repository had no GitHub issues or milestones at all.

Desired state

scripts/github-sync renders the projection from majordomus plan body, creates what is missing, updates what changed, and reports what a human has edited.

Scope

  • scripts/github-sync

Out of scope

  • Writing GitHub state back into the canonical files
  • Any network call inside bin, lib, share or test

Dependencies

What waits on this

Acceptance criteria

  • The adapter runs offline against a fixture and produces the exact payload it would post
  • A managed issue whose body differs from the projection is reported as drift, not overwritten
  • A closed issue whose canonical status is not DONE is reported
  • The tool itself contains no network client

Validation

  • bash test/run.sh 45_github_projection
  • scripts/github-sync --plan

Evidence required

  • projection_test
  • github

Evidence

coverstypecommandresultat commit
projection_testtestbash test/run.sh 45_github_projection1 passed, 0 failed2dd5915
githubmanualscripts/github-sync --apply && scripts/github-sync --checkcreated milestone M000 and every issue belonging to it on korczis/prismatic-majordomus, each open or closed according to its derived status; check exited 0 with no drift. A hand edit inside a generated region was detected (exit 11), refused by --apply, and overwritten only under --force82f23ef

Risk

A sync that overwrites a human comment thread would make GitHub hostile to use.

Timeline

started
2026-09-04T03:13:04Z
verified
2026-09-04T03:13:05Z
completed
2026-09-04T04:08:51Z

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/I0008.yaml. Read it back with majordomus plan show I0008.