docs(plans): C.9 framework plugin layer — plan PR (skeleton)#59
docs(plans): C.9 framework plugin layer — plan PR (skeleton)#59SutuSebastian merged 1 commit intomainfrom
Conversation
Per the parallel-plan-PR shape locked in by the just-merged research note (PR #58, docs/research/non-goals-reassessment-2026-05.md § 5): this file iterates in parallel with (a) FTS5 + Mermaid shipping; impl unblocks when its slot arrives in the cadence (T+2w → +5w per the § 5 T-table). Skeleton captures: - 5 PRE-LOCKED DECISIONS (L.1-L.5) carried over from the research note, with cross-references to specific § 6 / § 3 / § 2.3 anchors so any future challenge to these decisions has to argue against the source, not just open them as "open" questions. - 9 OPEN DECISIONS (Q1-Q9) covering the design surface that needs to crystallise during plan iteration: contract shape, discovery mechanism, schema delta, reachability algorithm, bundled starters, conflict resolution, recipe composition, community-plugin API, backwards-compat default semantics. Each gets a Resolution subsection as it crystallises (mirrors the research-note § 6 resolved-vs-open pattern). - 3-piece HIGH-LEVEL ARCHITECTURE: plugin loader + indexer hook + reachability sweep. No CLI changes; no new verb. Recipes consume the substrate (moat-A clean per L.3). - 5 IMPLEMENTATION SLICES (tracer-bullets — schema delta first, reachability recipe second, plugin contract third, starter plugins fourth, agent rule lockstep update fifth per docs/README.md Rule 10). - TEST APPROACH grounded in existing infrastructure (golden queries per docs/golden-queries.md, fixture under fixtures/golden/c9-fixture/ reproducing the closed-dead-subgraph case). - 6-row RISKS / NON-GOALS table including the abandonment escape hatch (close as Status: Rejected per docs/README.md Rule 8 if needed; design surface captured either way). Plus docs/README.md File Ownership row updated for the plans/ entry — "Empty until the first plan lands" is no longer accurate after this file lands. Per docs/README.md Rule 4 (keep ownership tables current in the same PR as the doc-file change).
|
|
Warning Rate limit exceeded
To keep reviews running without waiting, you can enable usage-based add-on for your organization. This allows additional reviews beyond the hourly cap. Account admins can enable it under billing. ⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (2)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Review rate limit: 0/1 reviews remaining, refill in 42 minutes and 27 seconds.Comment |
(#61) PR #58 (just merged) corrected codemap's positioning: not unique, but in a specific niche of a SQLite-backed-code-index cohort with multiple peers (srclight, Sverklo, ctxpp, KotaDB, codemogger, etc.). fallow is one of many, not a yardstick. Under the new positioning, fallow.md's framing ("adoption candidates from fallow") is off-mission. Per docs-governance closure pattern (competitive-scan-2026-04.md precedent), close the doc with a status header pointing at the new canonical home + lift open items. Closure rationale captured at the top: - Status: Closed (2026-05) header explicit - Cohort positioning summarized + cross-ref to research note for full framing - Body preserved verbatim as historical record (Status snapshot below is the authoritative "what actually landed" log) - New adoption candidates (if any) get authored against open specs + primitive sources per non-goals-reassessment-2026-05 § 4, not against fallow source tree - Outstanding open items lifted to canonical homes: - C.9 plugin layer → in-flight PR #59 plan - C.10 LSP → covered by § 2.5 of research note (thin shim resolved) - C.11 coverage → shipped - Tier D defers (suppressions, fix engine, dupes, runtime intel) → aligned with § 3 ergonomic floors Original framing preserved verbatim under "Original framing (preserved verbatim from before 2026-05 closure)" subsection so historical readers can see what the doc said in its open phase. Per docs/README.md Rule 8 closing-research lifecycle. fallow.md stays in repo (not deleted) — historical context git log alone can't reconstruct.
Per docs/research/non-goals-reassessment-2026-05.md § 5 ship sequence: (a) is the next ship in the cadence track. This plan opens the design surface so impl can iterate against pinned decisions; mirrors the parallel-plan-PR shape from the (b) C.9 plan PR (#59). Skeleton captures: - 6 PRE-LOCKED DECISIONS (L.1-L.6) carried from the research note with deep cross-references: - L.1 FTS5 default OFF (backwards-compat per § 6 Q2) - L.2 Toggle BOTH config + CLI flag (per § 6 Q2) - L.3 Mermaid output mode is moat-A clean (per § 3 Moat A) - L.4 Mermaid bounded-input contract (per § 1.7) - L.5 Bundle one demo recipe text-in-deprecated-functions (per § 2.1) - L.6 Cold-start sub-100ms preserved (per § 3 ergonomic floor) - 7 OPEN DECISIONS (Q1-Q7) covering the design surface that needs to crystallise before impl: source_fts schema (column shape + tokeniser), indexer integration point, --full rebuild semantics on toggle change, Mermaid edge-count threshold default, output target shape (normalised input contract for the formatter), CLI flag precedence vs config, and DB-size telemetry on first FTS5 populate. - HIGH-LEVEL ARCHITECTURE split FTS5 + Mermaid + crosscut: - FTS5: schema bump + always-CREATE virtual table + Zod config field + --with-fts CLI flag + indexer write path + .codemap/.gitignore unchanged. - Mermaid: new formatMermaid() in output-formatters.ts (sibling of SARIF) + bounded-input check + plumbing through CLI / MCP / HTTP. - Crosscut: bundled recipe + schema-bump migration story (pre-v1 patch changeset) + agent rule lockstep update per Rule 10. - 7 IMPLEMENTATION SLICES (tracer-bullets) — substrate first (slice 1 ships FTS5 plumbing without recipe; proves end-to-end before recipe authoring), then demo recipe, then Mermaid formatter, then bound check, then MCP/HTTP plumbing, then docs/agents lockstep, then patch changeset. - TEST APPROACH grounded in existing infrastructure (golden queries per docs/golden-queries.md; integration fixture under fixtures/golden/fts5-fixture/ with @deprecated function + TODO comment + low-coverage file proving the JOIN composes). - 6-row RISKS / NON-GOALS table including the abandonment escape hatch (close as Status: Rejected per Rule 8 if needed). docs/README.md File Ownership row updated for plans/ — Rule 4 discipline: keep ownership tables current in the same PR. (Note: PR #59 also updates this row; rebase will combine both entries.)
Per docs/research/non-goals-reassessment-2026-05.md § 5 ship sequence: (a) is the next ship in the cadence track. This plan opens the design surface so impl can iterate against pinned decisions; mirrors the parallel-plan-PR shape from the (b) C.9 plan PR (#59). Skeleton captures: - 6 PRE-LOCKED DECISIONS (L.1-L.6) carried from the research note with deep cross-references: - L.1 FTS5 default OFF (backwards-compat per § 6 Q2) - L.2 Toggle BOTH config + CLI flag (per § 6 Q2) - L.3 Mermaid output mode is moat-A clean (per § 3 Moat A) - L.4 Mermaid bounded-input contract (per § 1.7) - L.5 Bundle one demo recipe text-in-deprecated-functions (per § 2.1) - L.6 Cold-start sub-100ms preserved (per § 3 ergonomic floor) - 7 OPEN DECISIONS (Q1-Q7) covering the design surface that needs to crystallise before impl: source_fts schema (column shape + tokeniser), indexer integration point, --full rebuild semantics on toggle change, Mermaid edge-count threshold default, output target shape (normalised input contract for the formatter), CLI flag precedence vs config, and DB-size telemetry on first FTS5 populate. - HIGH-LEVEL ARCHITECTURE split FTS5 + Mermaid + crosscut: - FTS5: schema bump + always-CREATE virtual table + Zod config field + --with-fts CLI flag + indexer write path + .codemap/.gitignore unchanged. - Mermaid: new formatMermaid() in output-formatters.ts (sibling of SARIF) + bounded-input check + plumbing through CLI / MCP / HTTP. - Crosscut: bundled recipe + schema-bump migration story (pre-v1 patch changeset) + agent rule lockstep update per Rule 10. - 7 IMPLEMENTATION SLICES (tracer-bullets) — substrate first (slice 1 ships FTS5 plumbing without recipe; proves end-to-end before recipe authoring), then demo recipe, then Mermaid formatter, then bound check, then MCP/HTTP plumbing, then docs/agents lockstep, then patch changeset. - TEST APPROACH grounded in existing infrastructure (golden queries per docs/golden-queries.md; integration fixture under fixtures/golden/fts5-fixture/ with @deprecated function + TODO comment + low-coverage file proving the JOIN composes). - 6-row RISKS / NON-GOALS table including the abandonment escape hatch (close as Status: Rejected per Rule 8 if needed). docs/README.md File Ownership row updated for plans/ — Rule 4 discipline: keep ownership tables current in the same PR. (Note: PR #59 also updates this row; rebase will combine both entries.)
Summary
Opens the C.9 framework plugin layer plan PR per the parallel-plan-PR shape locked in by the just-merged research note (PR #58 —
docs/research/non-goals-reassessment-2026-05.md§ 5).Why now (T+0): the research note's § 5 ship sequence parks (b) C.9 impl at T+2w → +5w in the shipping cadence. The plan PR opens at T+0 in parallel with (a) FTS5 + Mermaid shipping so impl is unblocked when its slot arrives — avoids the deferral trap where XL items become "next quarter" while every new recipe layered on the noisy
dependenciessubstrate inheritsuntested-and-dead's false-positive class.Motivator: closed-dead-subgraph case — N-file packs where every file imports a sibling (non-zero
dependenciesfan-in for all) but none is reachable from a real entry point. Today'suntested-and-deadrecipe false-positives Next.jsapp/**/page.tsxfor the same reason — framework entry points aren't recognized as live without per-framework awareness.What's in the skeleton
fixtures/golden/c9-fixture/.Status: Rejectedper Rule 8 if needed).Doc-governance compliance
docs/plans/c9-plugin-layer.mdper Rule 3 — feature plans go inplans/, no-plansuffix (folder provides context).docs/README.mdFile Ownership row updated in the same PR per Rule 4 —plans/"Empty until the first plan lands" no longer accurate.Test plan
bun run format:checkpassesdocs/research/non-goals-reassessment-2026-05.mdresolve to existing section anchorsIteration cadence
Per the parallel-plan-PR shape: each open decision (Q1–Q9) gets resolved via a separate commit on this branch as it crystallises, with a "Resolution (YYYY-MM-DD)" subsection added inline (mirrors the research-note § 6 resolved-vs-open pattern). The plan stays in iterative state until impl-ready; merges with the impl PR per the cadence at T+5w.
Out of scope (separate PRs)
docs/research/fallow.mdcleanup under the new positioning — separate PR.docs/roadmap.md § Non-goalslockstep update — separate PR per Rule 10.