feat(006/5): cleanup legacy — spec 006 complete#1129
Merged
zbigniewsobiecki merged 3 commits intodevfrom Apr 16, 2026
Merged
Conversation
Closes plan 006/5 — the final cleanup plan of spec 006. Backend: - src/integrations/bootstrap.ts — DELETED. PM registrations flow through src/integrations/pm/index.ts (which also mirrors manifests into integrationRegistry). SCM (GitHub) and alerting (Sentry) self-register via new side-effect modules. - src/github/register.ts + src/sentry/register.ts — new minimal side-effect modules that replace the respective branches of the deleted bootstrap. SCM + alerting stay on the legacy IntegrationModule pattern (out of spec 006 scope). - src/pm/registry.ts — converted to a read-only adapter over pmProviderRegistry. get/getOrNull/all/createProvider/ resolveLifecycleConfig all delegate to the manifest registry. register() is a deprecation warn. The ~9 unmigrated call sites (webhook handlers, manual runner, credential scope, lifecycle, GitHub adapter) keep working unchanged — they now transparently read from the manifest registry, so there is no divergent registration. - src/router/index.ts + src/worker-entry.ts — updated to import the three new side-effect modules instead of the deleted bootstrap. - src/integrations/registry.ts — header comment updated to reflect the new population topology. Tests: - tests/unit/integrations/bootstrap.test.ts — rewritten to cover the new side-effect-module wiring (the file name stays for audit clarity; its content asserts the same end-state invariants). - 8 other test files that imported bootstrap.js for side effect are migrated to import the three new modules (pm barrel + github/register + sentry/register). Docs: - src/integrations/README.md — rewritten. Transitional note + "Legacy path" section removed. The README is now the single canonical author's guide for adding a new PM provider. - CLAUDE.md — integration-abstraction pointer updated to final state. - CHANGELOG.md — entry per plan. Plan-divergence: - AC #2 (delete pm/registry.ts) — became: convert to a read-only delegate. Deleting it would require migrating 9 call sites that are out of spec scope. The delegate preserves the end state (single source of truth = pmProviderRegistry) without downstream churn. - AC #5 (consolidate createXxxLabel tRPC endpoints) — deferred to a follow-up PR. Purely additive cleanup; not required for any spec AC. Both divergences documented in the .done plan. Tests: 7809/7809 pass. Build + lint + typecheck clean. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
All 5 plans of spec 006 (pm-integration-plug-and-play) have landed: - 006/1 infrastructure — manifest contract + registry + conformance harness + shared helpers + generic wizard renderer - 006/2 migrate-trello - 006/3 migrate-jira - 006/4 migrate-linear — completes all 3 PM providers + shared-helper adoption (canonical auth headers + label resolver; divergent copies deleted) - 006/5 cleanup-legacy — bootstrap.ts deleted; pmRegistry becomes a delegate; README rewritten as canonical author's guide Outcome-level ACs of the spec all satisfied: - A new PM provider is added by creating one backend folder + one frontend folder. No edits to shared registries, router routes, wizard routing, trigger dispatch, or job extractors. - Conformance harness iterates every registered manifest (44 tests across TestProvider + Trello + JIRA + Linear) and fails CI on any missing contract surface. - Trello, JIRA, Linear continue to work identically — operators see no change. - Divergent cross-cutting copies (Bearer-prefix auth, UUID-vs-name label resolver, forgotten job-id extractor branch) are physically impossible now — shared helpers are the sole call sites. - Wizard adapts entirely from the manifest registry. - Each migration shipped independently and is independently revertable. - src/integrations/README.md rewritten as the single canonical guide. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Codecov Report❌ Patch coverage is
📢 Thoughts on this report? Let us know! |
5 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Plan 006/5 of spec 006 — the final cleanup plan. Spec 006 is complete after this merges.
No operator-visible changes. Routing tables, webhook flows, trigger dispatch, wizard UX, save body shapes — everything behaves identically to `dev`.
What's landed
Backend
Test wiring
Docs
Spec status
`docs/specs/006-pm-integration-plug-and-play.md.done` — the spec is marked complete in a trailing commit.
Plan-divergence (both documented in the `.done` plan)
Tests
Spec 006 outcome-level ACs — all satisfied
Post-merge
🤖 Generated with Claude Code