Skip to content

Adopt the portable planning convention#210

Merged
lesnik512 merged 12 commits into
mainfrom
chore/portable-planning-convention
Jun 13, 2026
Merged

Adopt the portable planning convention#210
lesnik512 merged 12 commits into
mainfrom
chore/portable-planning-convention

Conversation

@lesnik512

Copy link
Copy Markdown
Member

Summary

Adopts the two-axis planning convention from faststream-outbox: a living architecture/ truth home at the repo root plus planning/changes/{active,archive}/ folder bundles. modern-di had no truth home before this.

  • New architecture/ — README index + 6 capability docs (scopes, containers, providers, resolution, validation, testing-and-overrides), back-authored from and verified against the code. Sits outside the mkdocs build. This is the promotion target on every ship.
  • Migrated planning/specs/ + planning/plans/ → 11 dated changes/archive/<YYYY-MM-DD.NN-slug>/ bundles via git mv (history preserved), renamed to design.md/plan.md, frontmatter normalized to status: shipped with pr:/outcome:/spec: filled. Design-only and plan-only orphans handled (plan-only bundles point spec: at the audit report). .NN breaks same-date ties by merge order.
  • planning/README.md — "Conventions" section byte-identical to faststream-outbox; repo-specific "Index" (Active = this change; Archived = the 11).
  • planning/_templates/ — design/plan/change templates copied verbatim.
  • CLAUDE.md — new ## Workflow section naming architecture/ as the truth home / promotion target.
  • Repointed links in planning/releases/*.md and the two audit-report breadcrumbs to the new bundle paths.
  • .gitignore — scoped the bare plan.md rule to /plan.md so bundle plans are tracked (it was silently ignoring every plan.md).
  • This change dogfoods the convention: its own spec + plan live in planning/changes/active/2026-06-13.03-portable-planning-convention/.

audits/, releases/, deferred.md, and scripts/workflow.mjs are unchanged (the .mjs keeps its historical specs//plans/ strings as frozen runtime content, like other intra-bundle history).

Notably, back-authoring architecture/ surfaced several places where CLAUDE.md had drifted from the code (e.g. close_sync()/close_async() not close(); find_container is an O(1) scope_map, not a parent-chain walk; the Alias(scope=) deprecation says "a future release", not "3.0"). The new docs follow the code.

Test Plan

  • just lint-ci clean (eof-fixer + ruff format + ruff check + ty)
  • just test — 199 passed
  • mkdocs build --strict succeeds (planning/ and architecture/ are outside docs_dir, so the published site is unaffected)
  • README Index ↔ on-disk bundles: exact bijection; all relative links resolve
  • No stale planning/specs//planning/plans/ references outside frozen history
  • Conventions section verified byte-identical to faststream-outbox via diff

🤖 Generated with Claude Code

lesnik512 and others added 12 commits June 13, 2026 19:40
Two-axis convention from faststream-outbox: architecture/ truth home +
planning/changes/{active,archive}/ bundles. Spec written into the new
location to dogfood it.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
16-task plan: scaffold, git-mv 17 files into 11 archive bundles, normalize
frontmatter, back-author architecture/ (README + 6 capabilities), repoint
release links, add CLAUDE.md Workflow, verify. Scope the bare plan.md
gitignore rule to /plan.md so bundle plans are tracked.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
17 files relocated via git mv into 11 dated bundles; specs/ and plans/ removed.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
README index + 6 capability docs (scopes, containers, providers, resolution,
validation, testing-and-overrides), sourced from and verified against the
code. No frontmatter — living prose, dated by git.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Fix reversed finalizer/eviction ordering in providers.md (finalizer runs
before _clear()); drop unsupported "3.0" removal claims (code says "a future
release"); fix typo; rewrap three files to <=120 chars.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Fixes drift surfaced while back-authoring architecture/: find_container is an
O(1) scope_map lookup (not a parent-chain walk); validate() does transitive
scope checks via effective_scope (not just cycle detection); list
exceptions.py (the exception classes) alongside errors.py (message templates);
add a forward pointer to architecture/ as the authoritative account.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@lesnik512 lesnik512 merged commit e39947f into main Jun 13, 2026
6 checks passed
@lesnik512 lesnik512 deleted the chore/portable-planning-convention branch June 13, 2026 17:39
lesnik512 added a commit that referenced this pull request Jun 13, 2026
…) (#211)

Promotes the adoption change on merge: moves the bundle from changes/active/
to changes/archive/, sets status: shipped + pr: #210 + outcome, and moves its
README Index line from Active to Archived. active/ is now empty.

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant