Skip to content

Migrate the remaining repos off the planning/ convention #67

Description

@lesnik512

Tracking issue for moving the rest of the org off the planning/ convention and onto
PR-body-as-spec. #50 did this repo; modern-di and faststream-outbox did themselves
earlier. This covers everyone else.

Where the org actually stands

Measured across all 28 non-archived repos, not estimated:

State Count Repos
MigratedCONTEXT.md + docs/adr/, no planning/ 3 .github, modern-di, faststream-outbox
Mid-migration — has both 1 chat-app
Not migratedplanning/ only 21 the checklist below
On neither convention 3 that-depends, fastapi-sqlalchemy-template, litestar-sqlalchemy-template

Three of those are handled elsewhere and are not part of this issue's checklist:

Why this is a programme, not a sweep

The .github migration (#50) was one PR but a session of judgment: ruling on 24 change
files, one decision record, a deferred list, and a 5-page architecture/ tree — each one
either derivable and dropped, enforceable and turned into a test, a rejected alternative
turned into an ADR, or real work turned into an issue. modern-di took five PRs
(modern-python/modern-di#424, #432, #433, #439, #449).

Per-repo issues should be spawned as work starts, not written upfront — 21 stale specs
would be worse than none.

The recipe, as actually performed twice

  1. CONTEXT.md — the vocabulary. Seed from architecture/glossary.md where one exists;
    otherwise author it, and audit every _Avoid_ entry against real usage before committing
    (in .github that cut ten terms to seven — four rejected synonyms appeared nowhere in
    the repo).
  2. docs/adr/planning/decisions/* become NNNN-slug.md, each with a revisit
    trigger. Also rescue rejected alternatives buried in change files and capability pages.
  3. Deferred items become GitHub issues, self-contained, carrying their revisit triggers.
  4. planning/changes/* are deleted. Git history is the record; route anything
    load-bearing through the admission check first.
  5. architecture/ is dropped. Enforceable claims become tests whose name is the claim,
    with an INVARIANT: docstring naming what breaks it.
  6. AGENTS.md gains the Workflow and Where-a-fact-goes sections and loses the lanes.
  7. docs/agents/domain.md repoints to CONTEXT.md + docs/adr/.
  8. justfile and CI drop check-planning / index. Add the offline link gate (Add the offline link gate to the 18 green repos, and unpublish the ADRs in the two that have them #66) in
    the same PR — see below.
  9. Do not touch .github/PULL_REQUEST_TEMPLATE.md. The org default is staying as the
    generic form and is true under either convention, so a migrating repo needs no template
    change. Template work is Delete the local PR templates; keep the generic org default #53, which runs independently of this issue.

The link gate rides along

#66 adopts a blocking offline link check in the 18 repos that are already green. Seven
repos are red, and all seven are red only inside planning/:

httpware 56, lite-bootstrap 8, compose2pod 4, semvertag 3, faststream-concurrent-aiokafka 3,
faststream-redis-timers 2, db-retry 1 — 77 broken links, 77 of 77 in planning/, zero in
any user-facing surface.

Deleting planning/ deletes all 77. So each migration PR should add the gate as its last
step and land green, rather than #66 excluding planning/ to work around history that is
about to be removed.

Checklist — the 21 not-migrated repos

chat-app (#70) and that-depends (#69) are tracked separately and are not on this list.

Out of scope

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions