Commit Graph

3 Commits

Author SHA1 Message Date
Colby McHenry 62058b64f5 docs(design): record maintainer sign-off — all six plugin-API open questions resolved as recommended (CG-63)
Trust prompt scoped to path specifiers only (bare packages load
unprompted, including in non-interactive contexts); no first-class
install dir for non-Node repos; plugin synth passes run worker-side;
'replaces' lives in config only; the types package stays unpublished
until CG-71 proves the API; sandboxing confirmed out of scope for v1,
revisited alongside CG-72.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-02 13:11:49 -05:00
Colby McHenry 30e2d9bda7 docs(design): review pass on plugin API — label centralization, contribution validation, Windows, telemetry privacy, CG-71 equivalence (CG-63)
Five findings from the independent review, amended in place:
- §4.3 rule 4: the synthesized-hop label has FIVE renderers across three
  packages; mandate one synthEdgeLabel helper in src/graph/ and carry the
  label through the wire payload instead of patching each switch.
- §4.3 rule 7: validate plugin-returned nodes/edges at the persistence
  boundary (closed kinds, path confinement) — the failure class the throw
  policy cannot see.
- §6.5: plugin identity never enters telemetry.
- §7.3: define CG-71 graph equivalence modulo id scheme (the plugin:<id>:
  prefix makes byte-identical ids impossible by design).
- §6.2/§7.1: Windows path normalization + VM validation requirements.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-02 12:57:25 -05:00
Colby McHenry 24c446be4b docs(design): plugin API design — surfaces, config, trust, compat (CG-63)
The design doc the rest of epic CG-62 (GH #1376) implements: v1 exposes
framework/semantic plugins only (FrameworkResolver + synth passes), with
language providers deferred to the kernel-aware spike CG-72.

Two proposals from the issue are argued down on evidence: the plugin list
lives in the committed root `codegraph.json`, not `.codegraph/config.json`
(everything in .codegraph/ is gitignored), and plugins load on the write
path rather than through CodeGraph.open() (which is deliberately lazy-loaded
off the MCP startup path).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-02 12:33:41 -05:00