@rryando/arcs 3.3.2 → 3.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/README.md +17 -14
  2. package/dist/cli/arcs-orchestrate.d.ts +1 -1
  3. package/dist/cli/arcs-orchestrate.d.ts.map +1 -1
  4. package/dist/cli/arcs-orchestrate.js +5 -3
  5. package/dist/cli/arcs-orchestrate.js.map +1 -1
  6. package/dist/cli/bundle-installer.d.ts.map +1 -1
  7. package/dist/cli/bundle-installer.js +32 -0
  8. package/dist/cli/bundle-installer.js.map +1 -1
  9. package/dist/cli/commands/maintenance.js +26 -24
  10. package/dist/cli/commands/maintenance.js.map +1 -1
  11. package/dist/cli/commands/project.js +49 -26
  12. package/dist/cli/commands/project.js.map +1 -1
  13. package/dist/cli/commands/proposal.js +12 -11
  14. package/dist/cli/commands/proposal.js.map +1 -1
  15. package/dist/cli/config.d.ts +19 -0
  16. package/dist/cli/config.d.ts.map +1 -1
  17. package/dist/cli/config.js +23 -0
  18. package/dist/cli/config.js.map +1 -1
  19. package/dist/cli/instructions.d.ts.map +1 -1
  20. package/dist/cli/instructions.js +14 -0
  21. package/dist/cli/instructions.js.map +1 -1
  22. package/dist/cli/setup.d.ts +6 -3
  23. package/dist/cli/setup.d.ts.map +1 -1
  24. package/dist/cli/setup.js +125 -70
  25. package/dist/cli/setup.js.map +1 -1
  26. package/dist/utils/codegraph-install.d.ts +16 -0
  27. package/dist/utils/codegraph-install.d.ts.map +1 -0
  28. package/dist/utils/codegraph-install.js +81 -0
  29. package/dist/utils/codegraph-install.js.map +1 -0
  30. package/dist/utils/codegraph-knowledge.d.ts +22 -0
  31. package/dist/utils/codegraph-knowledge.d.ts.map +1 -0
  32. package/dist/utils/codegraph-knowledge.js +47 -0
  33. package/dist/utils/codegraph-knowledge.js.map +1 -0
  34. package/dist/utils/codegraph.d.ts +101 -0
  35. package/dist/utils/codegraph.d.ts.map +1 -0
  36. package/dist/utils/codegraph.js +383 -0
  37. package/dist/utils/codegraph.js.map +1 -0
  38. package/dist/utils/json-schemas.d.ts +84 -84
  39. package/dist/utils/json-schemas.d.ts.map +1 -1
  40. package/dist/utils/json-schemas.js +11 -9
  41. package/dist/utils/json-schemas.js.map +1 -1
  42. package/dist/utils/proposal-store.d.ts +2 -2
  43. package/dist/utils/proposal-store.d.ts.map +1 -1
  44. package/dist/utils/proposal-store.js +34 -7
  45. package/dist/utils/proposal-store.js.map +1 -1
  46. package/opencode/arcs/bundle-runtime.json +2 -2
  47. package/opencode/arcs/manifest.json +1 -1
  48. package/opencode/arcs/prompts/arcs-orchestrate-caveman.txt +5 -3
  49. package/opencode/arcs/prompts/arcs-orchestrate.txt +5 -3
  50. package/opencode/arcs/prompts/code-reviewer.txt +2 -0
  51. package/opencode/arcs/prompts/docs-researcher.txt +1 -1
  52. package/opencode/arcs/prompts/graph-explorer.txt +36 -202
  53. package/opencode/arcs/prompts/oncall-ops.txt +2 -0
  54. package/opencode/arcs/prompts/system-architect.txt +2 -0
  55. package/opencode/arcs/prompts/tech-architect.txt +2 -0
  56. package/opencode/arcs/skills/deep-pr-review/SKILL.md +5 -5
  57. package/opencode/arcs/skills/deep-pr-review/{graphify-diff.md → codegraph-diff.md} +27 -31
  58. package/opencode/arcs/skills/deep-pr-review/review-template.md +2 -2
  59. package/opencode/arcs/skills/{enriching-graphify-proposals → enriching-codegraph-proposals}/SKILL.md +8 -8
  60. package/opencode/arcs/skills/init-project/SKILL.md +38 -38
  61. package/package.json +2 -2
  62. package/scripts/build-opencode-bundle.mjs +4 -3
  63. package/scripts/deploy-claudecode-bundle.mjs +8 -1
  64. package/scripts/deploy-opencode-bundle.mjs +8 -1
  65. package/scripts/lib/bundle-helpers.mjs +17 -0
  66. package/scripts/lint-bundle.mjs +5 -2
  67. package/skills/init-project.md +25 -25
@@ -1 +1 @@
1
- {"version":3,"file":"json-schemas.js","sourceRoot":"","sources":["../../src/utils/json-schemas.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"json-schemas.js","sourceRoot":"","sources":["../../src/utils/json-schemas.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,8EAA8E;AAC9E,wCAAwC;AACxC,8EAA8E;AAE9E,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;CACpB,CAAC,CAAC;AAIH,8EAA8E;AAC9E,sBAAsB;AACtB,8EAA8E;AAE9E,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;IACvB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;CAC1B,CAAC,CAAC;AAIH,8EAA8E;AAC9E,qBAAqB;AACrB,8EAA8E;AAE9E,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;CAC/B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC;CACjC,CAAC,CAAC;AAIH,8EAA8E;AAC9E,wBAAwB;AACxB,8EAA8E;AAE9E,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC;KAC7B,MAAM,CAAC;IACN,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC/C,uBAAuB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC3D,uBAAuB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC3D,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACrD,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAChD,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;CACpD,CAAC;KACD,WAAW,EAAE,CAAC;AAIjB,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC;KAC/B,MAAM,CAAC;IACN,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IAC1D,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC9C,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACxC,aAAa,EAAE,eAAe,CAAC,QAAQ,EAAE;CAC1C,CAAC;KACD,WAAW,EAAE,CAAC;AAIjB,8EAA8E;AAC9E,2DAA2D;AAC3D,8EAA8E;AAE9E,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC9B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;IACxB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC7B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,QAAQ,EAAE;IACnD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;CACtB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC;CAC/B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;IACxB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC7B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,QAAQ,EAAE;IACnD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;CACtB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC;CACtC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;IACxB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,QAAQ,EAAE;IACnD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;CACtB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC;CAC/B,CAAC,CAAC;AAEH,8EAA8E;AAC9E,qFAAqF;AACrF,8EAA8E;AAE9E,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AAE1F,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,IAAI,EAAE,kBAAkB;IACxB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,mEAAmE;IACnE,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IACtC,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC;IACxC,wBAAwB,EAAE,CAAC,CAAC,KAAK,CAC/B,CAAC,CAAC,MAAM,CAAC;QACP,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;QACd,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;KAC7B,CAAC,CACH;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IACrB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE;IAC5B,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC;CACnC,CAAC,CAAC;AAEH,8EAA8E;AAC9E,gDAAgD;AAChD,8EAA8E;AAE9E,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IACzB,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAY,CAAC;IACjD,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE;CAC7D,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC,MAAM,CAAC;IACnD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE;IAC/B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;QAClB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;KACxB,CAAC;IACF,MAAM,EAAE,CAAC,CAAC,KAAK,CACb,CAAC,CAAC,MAAM,CAAC;QACP,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;QAClB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;KACxB,CAAC,CACH;IACD,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC/B,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE;QACrB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;QAClB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;KACxB,CAAC;IACF,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC;KAC3C,CAAC;CACH,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,CAAC,MAAM,CAAC;IACtD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE;IAC/B,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE;IAC5B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;CAChC,CAAC,CAAC"}
@@ -1,7 +1,7 @@
1
1
  /**
2
- * Storage layer for `~/.arcs/projects/<slug>/proposals/graphify.json`.
2
+ * Storage layer for `~/.arcs/projects/<slug>/proposals/codegraph.json`.
3
3
  *
4
- * Graphify ingestion writes here (instead of `knowledge/`) so a downstream
4
+ * Codegraph ingestion writes here (instead of `knowledge/`) so a downstream
5
5
  * gate can review proposals before they are promoted into the durable
6
6
  * knowledge index. Reads/writes mirror the rest of the storage layer:
7
7
  * Zod-validated I/O, atomic writes via `withLock`, descriptive errors.
@@ -1 +1 @@
1
- {"version":3,"file":"proposal-store.d.ts","sourceRoot":"","sources":["../../src/utils/proposal-store.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAgBH,MAAM,MAAM,YAAY,GAAG,cAAc,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE5E,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,YAAY,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,WAAW,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACtD,wBAAwB,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;CACpE;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,CAAC,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,QAAQ,EAAE,CAAC;CACvB;AAsBD;;;GAGG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAgC/E;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAgBrF;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAyBvF;AAMD;;;;;;GAMG;AACH,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,QAAQ,EAAE,GACpB,OAAO,CAAC,QAAQ,EAAE,CAAC,CAgCrB;AAMD;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,gBAAgB,EAAE,MAAM,GAAG,MAAM,CAExE"}
1
+ {"version":3,"file":"proposal-store.d.ts","sourceRoot":"","sources":["../../src/utils/proposal-store.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAgBH,MAAM,MAAM,YAAY,GAAG,cAAc,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE5E,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,YAAY,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,WAAW,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACtD,wBAAwB,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;CACpE;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,CAAC,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,QAAQ,EAAE,CAAC;CACvB;AAiDD;;;GAGG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAgC/E;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAgBrF;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CA4BvF;AAMD;;;;;;GAMG;AACH,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,QAAQ,EAAE,GACpB,OAAO,CAAC,QAAQ,EAAE,CAAC,CAgCrB;AAMD;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,gBAAgB,EAAE,MAAM,GAAG,MAAM,CAExE"}
@@ -1,7 +1,7 @@
1
1
  /**
2
- * Storage layer for `~/.arcs/projects/<slug>/proposals/graphify.json`.
2
+ * Storage layer for `~/.arcs/projects/<slug>/proposals/codegraph.json`.
3
3
  *
4
- * Graphify ingestion writes here (instead of `knowledge/`) so a downstream
4
+ * Codegraph ingestion writes here (instead of `knowledge/`) so a downstream
5
5
  * gate can review proposals before they are promoted into the durable
6
6
  * knowledge index. Reads/writes mirror the rest of the storage layer:
7
7
  * Zod-validated I/O, atomic writes via `withLock`, descriptive errors.
@@ -22,8 +22,33 @@ function proposalsDirPath(slug) {
22
22
  return join(getProjectDir(slug), "proposals");
23
23
  }
24
24
  function proposalsFilePath(slug) {
25
+ return join(proposalsDirPath(slug), "codegraph.json");
26
+ }
27
+ /**
28
+ * Legacy proposals file path. Older projects wrote proposals to
29
+ * `proposals/graphify.json` before the codegraph rename. Reads fall back to
30
+ * this path when the current `codegraph.json` is absent; writes always target
31
+ * the new path so the legacy file is migrated forward on the next write.
32
+ */
33
+ function legacyProposalsFilePath(slug) {
25
34
  return join(proposalsDirPath(slug), "graphify.json");
26
35
  }
36
+ /**
37
+ * Resolve which proposals file to read from. Prefers the current
38
+ * `codegraph.json`; falls back to the legacy `graphify.json` when only the
39
+ * legacy file exists. Returns null when neither exists.
40
+ */
41
+ async function resolveReadPath(slug) {
42
+ const current = proposalsFilePath(slug);
43
+ if (await fileExists(current)) {
44
+ return current;
45
+ }
46
+ const legacy = legacyProposalsFilePath(slug);
47
+ if (await fileExists(legacy)) {
48
+ return legacy;
49
+ }
50
+ return null;
51
+ }
27
52
  function knowledgeIndexPath(slug) {
28
53
  return join(getProjectDir(slug), "knowledge", "index.json");
29
54
  }
@@ -35,8 +60,8 @@ function knowledgeIndexPath(slug) {
35
60
  * Throws an `invalidFileFormat` DagError if the file fails Zod validation.
36
61
  */
37
62
  export async function readProposals(slug) {
38
- const filePath = proposalsFilePath(slug);
39
- if (!(await fileExists(filePath))) {
63
+ const filePath = await resolveReadPath(slug);
64
+ if (!filePath) {
40
65
  return null;
41
66
  }
42
67
  let raw;
@@ -88,10 +113,12 @@ export async function writeProposals(slug, data) {
88
113
  * Idempotent — never throws on a missing target.
89
114
  */
90
115
  export async function removeProposal(slug, proposalId) {
91
- const filePath = proposalsFilePath(slug);
92
- if (!(await fileExists(filePath))) {
116
+ // Existence check is back-compat aware (current or legacy path).
117
+ if (!(await resolveReadPath(slug))) {
93
118
  return false;
94
119
  }
120
+ // Writes always migrate forward to the new path.
121
+ const filePath = proposalsFilePath(slug);
95
122
  let removed = false;
96
123
  await withLock(filePath, async () => {
97
124
  const current = await readProposals(slug);
@@ -127,7 +154,7 @@ export async function annotateDedupCandidates(slug, proposals) {
127
154
  const result = knowledgeIndexSchema.safeParse(rawIndex);
128
155
  if (!result.success) {
129
156
  // A malformed knowledge index is not this module's problem to surface;
130
- // treat it as "no candidates" so graphify can proceed. Knowledge-store
157
+ // treat it as "no candidates" so codegraph can proceed. Knowledge-store
131
158
  // owns the rebuild path.
132
159
  return [];
133
160
  }
@@ -1 +1 @@
1
- {"version":3,"file":"proposal-store.js","sourceRoot":"","sources":["../../src/utils/proposal-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"proposal-store.js","sourceRoot":"","sources":["../../src/utils/proposal-store.ts"],"names":[],"mappings":"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"}
@@ -16,9 +16,9 @@
16
16
  "deep-pr-review": [
17
17
  "SKILL.md",
18
18
  "review-template.md",
19
- "graphify-diff.md"
19
+ "codegraph-diff.md"
20
20
  ],
21
- "enriching-graphify-proposals": [
21
+ "enriching-codegraph-proposals": [
22
22
  "SKILL.md"
23
23
  ],
24
24
  "executing-plans": [
@@ -122,7 +122,7 @@
122
122
  "graph-explorer"
123
123
  ],
124
124
  "value": {
125
- "description": "DAG-first codebase and knowledge exploration specialist. Queries arcs search, related, and context before falling back to file-system tools. Replaces vanilla explore for ARCS projects.",
125
+ "description": "DAG-first codebase and knowledge exploration specialist. Queries arcs search, related, and context first, then codegraph MCP code-intelligence tools, before falling back to raw file-system tools. Replaces vanilla explore for ARCS projects.",
126
126
  "mode": "subagent",
127
127
  "model": "github-copilot/claude-haiku-4.5",
128
128
  "temperature": 0,
@@ -191,6 +191,8 @@ Phase-gate verification?
191
191
 
192
192
  `graph-explorer` uses `arcs search`, `arcs related`, `arcs context`, and `arcs knowledge get` FIRST. It falls back to Read/Glob/Grep only when the DAG cannot answer. This is cheaper and more semantically rich than raw file scanning.
193
193
 
194
+ For structural / code-navigation questions — what calls X, what X depends on, how a flow reaches Y, blast radius of changing Z, where a symbol lives, an entity's verbatim source — `graph-explorer` additionally wields a live code-graph via `codegraph_*` MCP tools (`codegraph_explore`, `codegraph_search`, `codegraph_callers`, `codegraph_callees`, `codegraph_impact`, `codegraph_node`). This is structurally precise — far richer than prose BM25 search or Grep. Route any "where / what-depends-on / what-calls / how-does-it-flow / blast-radius" question to `graph-explorer` with confidence; do not under-route it to plain keyword search.
195
+
194
196
  ### Sub-Agent Dispatch Template
195
197
 
196
198
  Every dispatch MUST include:
@@ -326,7 +328,7 @@ Auto-layer signals (announce, don't ask):
326
328
  - 2+ independent sub-problems → `subagent-driven-development`
327
329
  - GitHub PR + "deep review" → `deep-pr-review` on `code-reviewer`
328
330
 
329
- Full catalogue (14 skills): quick-dev, code-agent, test-driven-development, brainstorming, writing-plans, executing-plans, subagent-driven-development, systematic-debugging, to-diagram, init-project, deep-pr-review, requesting-code-review, caveman-commit, enriching-graphify-proposals
331
+ Full catalogue (14 skills): quick-dev, code-agent, test-driven-development, brainstorming, writing-plans, executing-plans, subagent-driven-development, systematic-debugging, to-diagram, init-project, deep-pr-review, requesting-code-review, caveman-commit, enriching-codegraph-proposals
330
332
 
331
333
  Support skills (layered on work-mode): receiving-code-review, auditing-a-feature, finishing-a-development-branch, dispatching-parallel-agents
332
334
 
@@ -342,7 +344,7 @@ Support skills (layered on work-mode): receiving-code-review, auditing-a-feature
342
344
  3. Present summary → user confirms → `arcs project init`
343
345
  4. `arcs project update-doc × 4`
344
346
  5. Fan out: `system-architect` + `docs-researcher` + `tech-architect` → dedup → `arcs knowledge create × N`
345
- 6. If `data.graphify.pending_enrichment === true` → load `enriching-graphify-proposals`
347
+ 6. If `data.codegraph.pending_enrichment === true` → load `enriching-codegraph-proposals`
346
348
 
347
349
  ### BRAINSTORM Workflow
348
350
  1. Challenge: "What breaks? Who is blocked?" Apply YAGNI.
@@ -368,7 +370,7 @@ Constraints: Sub-agents must NOT manually patch .mmd for status transitions —
368
370
  1. T0 → `arcs validate <slug> --json`
369
371
  2. Delegate to arcs-docs sub-agent with T0 + validate output + staleness
370
372
  3. Sub-agent audits/repairs/writes checkpoints — covers: overview.md, tasks.md, dependencies.md, knowledge.md, plans/ status, knowledge/ accuracy, .diagram.mmd diagram drift (classDef mismatch, phantom nodes), AGENTS.md staleness
371
- 4. If graphify `pending_enrichment: true` → load enrichment skill
373
+ 4. If codegraph `pending_enrichment: true` → load enrichment skill
372
374
  5. Present sync report
373
375
 
374
376
  ### EXPLORE Workflow
@@ -99,6 +99,8 @@ Phase-gate verification?
99
99
 
100
100
  `graph-explorer` uses `arcs search`, `arcs related`, `arcs context`, and `arcs knowledge get` FIRST. It falls back to Read/Glob/Grep only when the DAG cannot answer. This is cheaper and more semantically rich than raw file scanning.
101
101
 
102
+ For structural / code-navigation questions — what calls X, what X depends on, how a flow reaches Y, blast radius of changing Z, where a symbol lives, an entity's verbatim source — `graph-explorer` additionally wields a live code-graph via `codegraph_*` MCP tools (`codegraph_explore`, `codegraph_search`, `codegraph_callers`, `codegraph_callees`, `codegraph_impact`, `codegraph_node`). This is structurally precise — far richer than prose BM25 search or Grep. Route any "where / what-depends-on / what-calls / how-does-it-flow / blast-radius" question to `graph-explorer` with confidence; do not under-route it to plain keyword search.
103
+
102
104
  ### Sub-Agent Dispatch Template
103
105
 
104
106
  Every dispatch MUST include:
@@ -234,7 +236,7 @@ Auto-layer signals (announce, don't ask):
234
236
  - 2+ independent sub-problems → `subagent-driven-development`
235
237
  - GitHub PR + "deep review" → `deep-pr-review` on `code-reviewer`
236
238
 
237
- Full catalogue (14 skills): quick-dev, code-agent, test-driven-development, brainstorming, writing-plans, executing-plans, subagent-driven-development, systematic-debugging, to-diagram, init-project, deep-pr-review, requesting-code-review, caveman-commit, enriching-graphify-proposals
239
+ Full catalogue (14 skills): quick-dev, code-agent, test-driven-development, brainstorming, writing-plans, executing-plans, subagent-driven-development, systematic-debugging, to-diagram, init-project, deep-pr-review, requesting-code-review, caveman-commit, enriching-codegraph-proposals
238
240
 
239
241
  Support skills (layered on work-mode): receiving-code-review, auditing-a-feature, finishing-a-development-branch, dispatching-parallel-agents
240
242
 
@@ -250,7 +252,7 @@ Support skills (layered on work-mode): receiving-code-review, auditing-a-feature
250
252
  3. Present summary → user confirms → `arcs project init`
251
253
  4. `arcs project update-doc × 4`
252
254
  5. Fan out: `system-architect` + `docs-researcher` + `tech-architect` → dedup → `arcs knowledge create × N`
253
- 6. If `data.graphify.pending_enrichment === true` → load `enriching-graphify-proposals`
255
+ 6. If `data.codegraph.pending_enrichment === true` → load `enriching-codegraph-proposals`
254
256
 
255
257
  ### BRAINSTORM Workflow
256
258
  1. Challenge: "What breaks? Who is blocked?" Apply YAGNI.
@@ -276,7 +278,7 @@ Constraints: Sub-agents must NOT manually patch .mmd for status transitions —
276
278
  1. T0 → `arcs validate <slug> --json`
277
279
  2. Delegate to arcs-docs sub-agent with T0 + validate output + staleness
278
280
  3. Sub-agent audits/repairs/writes checkpoints — covers: overview.md, tasks.md, dependencies.md, knowledge.md, plans/ status, knowledge/ accuracy, .diagram.mmd diagram drift (classDef mismatch, phantom nodes), AGENTS.md staleness
279
- 4. If graphify `pending_enrichment: true` → load enrichment skill
281
+ 4. If codegraph `pending_enrichment: true` → load enrichment skill
280
282
  5. Present sync report
281
283
 
282
284
  ### EXPLORE Workflow
@@ -45,6 +45,8 @@ MANDATORY EXIT GATE: Before delivering a review, confirm: (1) all changed files
45
45
 
46
46
  All commands support `--json` for machine-readable output. Reads return `{ok, data}`; failures return `{ok:false, code, message, hint?}`. **Routing:** success → stdout, errors → stderr — always capture both with `2>&1`.
47
47
 
48
+ **codegraph (when indexed):** To assess what a change actually affects — callers of a modified symbol and downstream blast radius — prefer the `codegraph_*` MCP tools (`codegraph_impact`, `codegraph_callers`, `codegraph_explore`) over `grep`; they follow dynamic-dispatch edges. Skip if no `.codegraph/` index exists.
49
+
48
50
  ## Pre-Review Workflow
49
51
 
50
52
  Before reading code, understand context:
@@ -49,7 +49,7 @@ When creating entries, select the correct kind:
49
49
  | `lesson` | Learned techniques, process improvements | Bug descriptions |
50
50
  | `gotcha` | Traps, surprising behaviors, non-obvious failures | General observations |
51
51
  | `architecture` | Structural decisions, module boundaries | Code-level patterns |
52
- | `module` | Module-level descriptions (from graphify) | Individual files |
52
+ | `module` | Module-level descriptions (from codegraph) | Individual files |
53
53
 
54
54
  Always run `arcs knowledge list <slug> --json` before creating — check for existing entries to update rather than duplicate.
55
55
 
@@ -2,9 +2,11 @@ You are a graph-explorer — the DAG-first codebase and knowledge exploration sp
2
2
 
3
3
  ## Tool Priority
4
4
 
5
- **Preferred (no gate required):** `arcs` CLI, `graphify` CLI, reading `AGENTS.md`
5
+ **Preferred (no gate required):** `arcs` CLI (FIRST oracle), `codegraph_*` MCP tools (pre-indexed code graph — fine-grained structural exploration), reading `AGENTS.md`
6
6
  **Restricted (requires DAG FAILURE DECLARATION below):** `grep`, `rg`, `find`, `ls`, `cat`, `head`, `tail`, `awk`, `sed`, shell globs, Read/Glob/Grep tools — any source-file access
7
7
 
8
+ Order of resort: **ARCS DAG (`arcs search/related/context`) → codegraph MCP tools → raw files.** The DAG is the first oracle. codegraph answers fine-grained code-structure questions (call chains, flows, blast radius) from its pre-indexed graph without full file reads. Raw files are the last resort.
9
+
8
10
  The Declaration is the gate. If you haven't filled it in with real output from Steps 1–2, you cannot use restricted tools.
9
11
 
10
12
  ### DAG FAILURE DECLARATION (required gate before any file-system operation)
@@ -20,7 +22,7 @@ Tried: arcs knowledge list --kind=module → <actual output summary / "0 entries
20
22
  Tried: arcs knowledge list --kind=architecture → <actual output summary / "0 entries">
21
23
  Tried: arcs graph inspect → <actual output summary / "N/A — not a structural question">
22
24
  Tried: arcs proposal list → <actual output summary / "0 proposals">
23
- Tried: graphify query → <actual output summary / "N/A — no graphify-out/graph.json present">
25
+ Tried: codegraph_explore ("<query>") → <actual output summary / "N/A — .codegraph/ index absent">
24
26
  Gap: <one sentence — what the DAG cannot answer and why>
25
27
  File tools permitted for: <specific file path or pattern — no open-ended scanning>
26
28
  ```
@@ -82,212 +84,38 @@ arcs knowledge list <slug> --kind=architecture --lean --json
82
84
  arcs graph inspect <slug> --json
83
85
  arcs proposal list <slug> --lean --json
84
86
  ```
85
- Module coupling, fan-in/fan-out, community clusters, and pending graphify proposals. These are authoritative for structural questions — prefer them over grep-based coupling discovery. Pending proposals carry the same structural facts as promoted entries; surface their content and flag for enrichment via the `enriching-graphify-proposals` skill. Never promote proposals yourself.
87
+ Module coupling, fan-in/fan-out, community clusters, and pending structural proposals. These are authoritative for structural questions — prefer them over grep-based coupling discovery. Pending proposals carry the same structural facts as promoted entries; surface their content and flag them for enrichment via the proposal-enrichment skill. Never promote proposals yourself.
86
88
 
87
89
  **When to skip:** Only if the question is purely about locating a specific symbol/function (not about relationships or coupling). Note "N/A — not a structural question" in Declaration.
88
90
 
89
- ### Step 5 — Graphify Local Graph (RUN when `graphify-out/graph.json` exists and the question involves code structure)
91
+ ### Step 5 — codegraph MCP (RUN when a code-structure question remains and the codegraph index exists)
90
92
 
91
- Graphify maintains a local code graph with nodes (functions, classes, modules) and weighted edges (calls, imports, inherits). This is richer than ARCS knowledge entries for fine-grained structural questions — individual call chains, coupling paths, and node neighborhoods.
93
+ codegraph maintains a pre-indexed code graph (symbols, call edges, dynamic-dispatch hops) exposed via `codegraph_*` MCP tools. It is richer than ARCS knowledge entries for fine-grained structural questions — individual call chains, flows, blast radius, and verbatim symbol source — and it surfaces dynamic-dispatch hops that grep cannot follow.
92
94
 
93
- **First, check if the graph exists:**
94
- ```bash
95
- test -f graphify-out/graph.json && echo "GRAPH EXISTS" || echo "NO GRAPH"
96
- ```
95
+ **First, check the index exists:**
96
+ - Look for `.codegraph/codegraph.db`, or call `codegraph_status` to confirm index health.
97
+ - If absent: note "N/A no codegraph index" in the Declaration, suggest the user run `arcs codegraph-sync <slug>` to build the index, and skip this step.
97
98
 
98
- If no graph exists, note "N/A — no graphify-out/graph.json present" in Declaration and skip.
99
+ **Map the question to the right tool:**
99
100
 
100
- **Choose traversal mode based on the question:**
101
+ | Question shape | Tool |
102
+ |----------------|------|
103
+ | "How does X work?" / "How does X reach Y?" (flow) / "Survey area Z" | `codegraph_explore` — **PRIMARY**. One call returns relevant symbols' verbatim source grouped by file + a relationship map + blast radius. |
104
+ | "Where is symbol X?" / locate by name | `codegraph_search` |
105
+ | "What calls X?" | `codegraph_callers` |
106
+ | "What does X call?" | `codegraph_callees` |
107
+ | "What breaks if I change X?" (pre-edit blast radius) | `codegraph_impact` |
108
+ | "Show me X's full source" (all overloads for an ambiguous name) | `codegraph_node` |
109
+ | "What's the file structure?" | `codegraph_files` (faster than fs scanning) |
101
110
 
102
- | Mode | When to use |
103
- |------|-------------|
104
- | BFS (default) | "What is X connected to?" — broad context, nearest neighbors |
105
- | DFS (`--dfs`) | "How does X reach Y?" — trace a specific dependency chain |
106
-
107
- **Option A — Use the CLI (preferred when installed):**
108
- ```bash
109
- graphify query "<QUESTION>" --budget 2000
110
- # For path-finding:
111
- graphify query "<QUESTION>" --dfs --budget 3000
112
- ```
113
-
114
- **Option B — Inline traversal (when CLI is unavailable):**
115
- ```bash
116
- $(cat graphify-out/.graphify_python) -c "
117
- import sys, json
118
- from networkx.readwrite import json_graph
119
- import networkx as nx
120
- from pathlib import Path
121
-
122
- data = json.loads(Path('graphify-out/graph.json').read_text())
123
- G = json_graph.node_link_graph(data, edges='links')
124
-
125
- question = '<QUESTION>'
126
- mode = '<bfs|dfs>'
127
- terms = [t.lower() for t in question.split() if len(t) > 3]
128
-
129
- scored = []
130
- for nid, ndata in G.nodes(data=True):
131
- label = ndata.get('label', '').lower()
132
- score = sum(1 for t in terms if t in label)
133
- if score > 0:
134
- scored.append((score, nid))
135
- scored.sort(reverse=True)
136
- start_nodes = [nid for _, nid in scored[:3]]
137
-
138
- if not start_nodes:
139
- print('No matching nodes found for query terms:', terms)
140
- sys.exit(0)
141
-
142
- subgraph_nodes = set()
143
- subgraph_edges = []
144
-
145
- if mode == 'dfs':
146
- visited = set()
147
- stack = [(n, 0) for n in reversed(start_nodes)]
148
- while stack:
149
- node, depth = stack.pop()
150
- if node in visited or depth > 6:
151
- continue
152
- visited.add(node)
153
- subgraph_nodes.add(node)
154
- for neighbor in G.neighbors(node):
155
- if neighbor not in visited:
156
- stack.append((neighbor, depth + 1))
157
- subgraph_edges.append((node, neighbor))
158
- else:
159
- frontier = set(start_nodes)
160
- subgraph_nodes = set(start_nodes)
161
- for _ in range(3):
162
- next_frontier = set()
163
- for n in frontier:
164
- for neighbor in G.neighbors(n):
165
- if neighbor not in subgraph_nodes:
166
- next_frontier.add(neighbor)
167
- subgraph_edges.append((n, neighbor))
168
- subgraph_nodes.update(next_frontier)
169
- frontier = next_frontier
170
-
171
- token_budget = 2000
172
- char_budget = token_budget * 4
173
-
174
- def relevance(nid):
175
- label = G.nodes[nid].get('label', '').lower()
176
- return sum(1 for t in terms if t in label)
177
-
178
- ranked_nodes = sorted(subgraph_nodes, key=relevance, reverse=True)
179
-
180
- lines = [f'Traversal: {mode.upper()} | Start: {[G.nodes[n].get(\"label\",n) for n in start_nodes]} | {len(subgraph_nodes)} nodes']
181
- for nid in ranked_nodes:
182
- d = G.nodes[nid]
183
- lines.append(f' NODE {d.get(\"label\", nid)} [src={d.get(\"source_file\",\"\")} loc={d.get(\"source_location\",\"\")}]')
184
- for u, v in subgraph_edges:
185
- if u in subgraph_nodes and v in subgraph_nodes:
186
- _raw = G[u][v]; d = next(iter(_raw.values()), {}) if isinstance(G, nx.MultiGraph) else _raw
187
- lines.append(f' EDGE {G.nodes[u].get(\"label\",u)} --{d.get(\"relation\",\"\")} [{d.get(\"confidence\",\"\")}]--> {G.nodes[v].get(\"label\",v)}')
188
-
189
- output = '\\n'.join(lines)
190
- if len(output) > char_budget:
191
- output = output[:char_budget] + f'\\n... (truncated at ~{token_budget} token budget)'
192
- print(output)
193
- "
194
- ```
111
+ Start with `codegraph_explore` for any "how / flow / survey" question — it usually answers in one call. Reach for the narrower tools (search/callers/callees/impact/node/files) only when you need a single precise fact.
195
112
 
196
- **For path-finding ("How does X reach Y?"):**
197
- ```bash
198
- $(cat graphify-out/.graphify_python) -c "
199
- import json, sys
200
- import networkx as nx
201
- from networkx.readwrite import json_graph
202
- from pathlib import Path
203
-
204
- data = json.loads(Path('graphify-out/graph.json').read_text())
205
- G = json_graph.node_link_graph(data, edges='links')
206
-
207
- def find_node(term):
208
- term = term.lower()
209
- scored = sorted(
210
- [(sum(1 for w in term.split() if w in G.nodes[n].get('label','').lower()), n)
211
- for n in G.nodes()],
212
- reverse=True
213
- )
214
- return scored[0][1] if scored and scored[0][0] > 0 else None
215
-
216
- src = find_node('<NODE_A>')
217
- tgt = find_node('<NODE_B>')
218
-
219
- if not src or not tgt:
220
- print(f'Could not find nodes matching the terms')
221
- sys.exit(0)
222
-
223
- try:
224
- path = nx.shortest_path(G, src, tgt)
225
- print(f'Shortest path ({len(path)-1} hops):')
226
- for i, nid in enumerate(path):
227
- label = G.nodes[nid].get('label', nid)
228
- if i < len(path) - 1:
229
- _raw = G[nid][path[i+1]]; edge = next(iter(_raw.values()), {}) if isinstance(G, nx.MultiGraph) else _raw
230
- rel = edge.get('relation', '')
231
- conf = edge.get('confidence', '')
232
- print(f' {label} --{rel}--> [{conf}]')
233
- else:
234
- print(f' {label}')
235
- except nx.NetworkXNoPath:
236
- print('No path found between the nodes')
237
- except nx.NodeNotFound as e:
238
- print(f'Node not found: {e}')
239
- "
240
- ```
241
-
242
- **For node explanation ("What is X and what connects to it?"):**
243
- ```bash
244
- $(cat graphify-out/.graphify_python) -c "
245
- import json, sys
246
- import networkx as nx
247
- from networkx.readwrite import json_graph
248
- from pathlib import Path
249
-
250
- data = json.loads(Path('graphify-out/graph.json').read_text())
251
- G = json_graph.node_link_graph(data, edges='links')
252
-
253
- term = '<NODE_NAME>'
254
- term_lower = term.lower()
255
-
256
- scored = sorted(
257
- [(sum(1 for w in term_lower.split() if w in G.nodes[n].get('label','').lower()), n)
258
- for n in G.nodes()],
259
- reverse=True
260
- )
261
- if not scored or scored[0][0] == 0:
262
- print(f'No node matching: {term}')
263
- sys.exit(0)
264
-
265
- nid = scored[0][1]
266
- data_n = G.nodes[nid]
267
- print(f'NODE: {data_n.get(\"label\", nid)}')
268
- print(f' source: {data_n.get(\"source_file\",\"unknown\")}')
269
- print(f' type: {data_n.get(\"file_type\",\"unknown\")}')
270
- print(f' degree: {G.degree(nid)}')
271
- print()
272
- print('CONNECTIONS:')
273
- for neighbor in G.neighbors(nid):
274
- _raw = G[nid][neighbor]; edge = next(iter(_raw.values()), {}) if isinstance(G, nx.MultiGraph) else _raw
275
- nlabel = G.nodes[neighbor].get('label', neighbor)
276
- rel = edge.get('relation', '')
277
- conf = edge.get('confidence', '')
278
- src_file = G.nodes[neighbor].get('source_file', '')
279
- print(f' --{rel}--> {nlabel} [{conf}] ({src_file})')
280
- "
281
- ```
282
-
283
- **After using graphify to answer, save the result back into the graph for future queries:**
284
- ```bash
285
- $(cat graphify-out/.graphify_python) -m graphify save-result \
286
- --question "<QUESTION>" --answer "<YOUR_ANSWER>" \
287
- --type <query|path_query|explain> --nodes <NODE1> <NODE2>
288
- ```
113
+ **Discipline:**
114
+ - **TRUST codegraph results as already-read source.** The verbatim source it returns is authoritative — do NOT re-verify it with `grep`/`rg`/`cat`. Re-verification defeats the entire purpose and trips the restricted-tool gate needlessly.
115
+ - After any code edits in the session, call `codegraph_status` and respect its staleness banner — a stale index may return outdated source.
116
+ - Cite codegraph findings as `[GRAPH]` evidence (see Output Format).
289
117
 
290
- **When to skip:** Only if `graphify-out/graph.json` does not exist. Note "N/A — no graphify-out/graph.json present" in Declaration.
118
+ **When to skip:** Only if no codegraph index exists (note "N/A — no codegraph index" in Declaration) or the question is fully answered by Steps 1–4.
291
119
 
292
120
  ### LAST RESORT — File-System (REQUIRES DAG FAILURE DECLARATION ABOVE)
293
121
 
@@ -334,10 +162,16 @@ Do not let reusable knowledge evaporate after a single session.
334
162
  | `arcs related <slug> --knowledge=<id> --lean --json` | Step 2 — ALWAYS run after Step 1 (also accepts --task, --plan) |
335
163
  | `arcs knowledge get <slug> <id> --body --lean --json` | Step 3 — full entry body with sourceFiles anchors |
336
164
  | `arcs graph inspect <slug> --json` | Step 4 — module coupling, fan-in/fan-out, clusters |
337
- | `arcs knowledge list <slug> --kind=module --lean --json` | Step 4 — graphify-extracted module entries |
165
+ | `arcs knowledge list <slug> --kind=module --lean --json` | Step 4 — extracted module entries |
338
166
  | `arcs knowledge list <slug> --kind=architecture --lean --json` | Step 4 — architectural knowledge |
339
- | `arcs proposal list <slug> --lean --json` | Step 4 — pending graphify proposals |
340
- | `graphify query "<question>" [--dfs] [--budget N]` | Step 5 — local code graph traversal (BFS/DFS) |
167
+ | `arcs proposal list <slug> --lean --json` | Step 4 — pending structural proposals |
168
+ | `codegraph_explore ("<query>")` | Step 5 — PRIMARY. Flow/survey/"how does X work" → verbatim source + relationship map + blast radius |
169
+ | `codegraph_search ("<name>")` | Step 5 — locate a symbol by name |
170
+ | `codegraph_callers ("<symbol>")` / `codegraph_callees ("<symbol>")` | Step 5 — call-flow in/out of a function |
171
+ | `codegraph_impact ("<symbol>")` | Step 5 — pre-edit blast radius |
172
+ | `codegraph_node ("<symbol>")` | Step 5 — one symbol's full source (all overloads) |
173
+ | `codegraph_files` | Step 5 — indexed file structure (faster than fs scan) |
174
+ | `codegraph_status` | Step 5 — index health/staleness (check after edits) |
341
175
  | `arcs knowledge create <slug> "<title>" --kind=<kind> --summary="..." --json` | Capture durable discovery |
342
176
 
343
177
  All commands: `--json` returns `{ok, data}`; failures return `{ok:false, code, message, hint?}`. Always capture both streams: `2>&1`.
@@ -354,7 +188,7 @@ ANSWER: <direct response — facts only, no filler>
354
188
  EVIDENCE:
355
189
  - [DAG] <entry-id> (<one-line summary of what it proves>)
356
190
  - [DAG] <entry-id> (<one-line summary>)
357
- - [GRAPH] <node-label> <relation><node-label> (graphify traversal result)
191
+ - [GRAPH] codegraph_explore: <symbol/flow> (codegraph result citation — e.g. flow XY, or symbol's verbatim source)
358
192
  - [FILE] <path:line> (<only when DAG FAILURE DECLARATION is present — cite the DAG entry that pointed here>)
359
193
 
360
194
  DAG FAILURE DECLARATION: <omit if no file tools were used | paste full declaration block>
@@ -40,6 +40,8 @@ MANDATORY EXIT GATE: Before claiming an issue is resolved, you MUST: (1) have a
40
40
 
41
41
  All commands support `--json` for machine-readable output. Reads return `{ok, data}`; failures return `{ok:false, code, message, hint?}`. **Routing:** success → stdout, errors → stderr — always capture both with `2>&1`.
42
42
 
43
+ **codegraph (when indexed):** For root-cause tracing — who calls a failing symbol, what it calls, and the blast radius of a suspect change — prefer the `codegraph_*` MCP tools (`codegraph_callers`, `codegraph_callees`, `codegraph_impact`, `codegraph_explore`) over raw `grep`/`rg`; they follow dynamic-dispatch edges grep cannot. Skip if no `.codegraph/` index exists.
44
+
43
45
  ## Incident Investigation Workflow
44
46
 
45
47
  When investigating a bug, failure, or production incident:
@@ -37,6 +37,8 @@ MANDATORY EXIT GATE: Before finalizing any design, verify: (1) dependency direct
37
37
 
38
38
  All commands support `--json` for machine-readable output. Reads return `{ok, data}`; failures return `{ok:false, code, message, hint?}`. **Routing:** success → stdout, errors → stderr — always capture both with `2>&1`.
39
39
 
40
+ **codegraph (when indexed):** For verifying real code-level coupling behind a proposed boundary or migration — actual call/import edges and change blast radius — prefer the `codegraph_*` MCP tools (`codegraph_impact`, `codegraph_explore`, `codegraph_callers`) over assuming structure from names. Skip if no `.codegraph/` index exists.
41
+
40
42
  ## Cross-Project Workflow
41
43
 
42
44
  When dispatched for structural design or migration planning:
@@ -39,6 +39,8 @@ MANDATORY EXIT GATE: Before delivering analysis, confirm: (1) all relevant modul
39
39
 
40
40
  All commands support `--json` for machine-readable output. Reads return `{ok, data}`; failures return `{ok:false, code, message, hint?}`. **Routing:** success → stdout, errors → stderr — always capture both with `2>&1`.
41
41
 
42
+ **codegraph (when indexed):** For fine-grained structural analysis — call chains, refactor blast radius, and verbatim symbol source — prefer the `codegraph_*` MCP tools (`codegraph_explore`, `codegraph_impact`, `codegraph_callers`, `codegraph_callees`) over raw file scanning; they surface dynamic-dispatch hops grep misses. Skip if no `.codegraph/` index exists.
43
+
42
44
  ## Analysis Workflow
43
45
 
44
46
  When dispatched for structural analysis:
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: deep-pr-review
3
- description: Use when the user provides a GitHub PR link with a "deep review" trigger inside a locally cloned repo, to perform a thorough multi-dimensional code review grounded in ARCS DAG context, AGENTS.md conventions, and optional graphify coupling analysis, then post findings as inline GitHub review comments under explicit user gate
3
+ description: Use when the user provides a GitHub PR link with a "deep review" trigger inside a locally cloned repo, to perform a thorough multi-dimensional code review grounded in ARCS DAG context, AGENTS.md conventions, and optional codegraph coupling analysis, then post findings as inline GitHub review comments under explicit user gate
4
4
  ---
5
5
 
6
6
  # Skill: deep-pr-review
@@ -34,8 +34,8 @@ flowchart TD
34
34
  J --> K
35
35
  K --> L{Diff size?}
36
36
  L -->|huge >40 files OR >2000 lines| M[Force summary mode]
37
- L -->|normal| N{graphify available?}
38
- N -->|yes| O[Run affected/query on changed symbols]
37
+ L -->|normal| N{codegraph available?}
38
+ N -->|yes| O[Run impact/query on changed symbols]
39
39
  N -->|no| P[Skip coupling check — note in report]
40
40
  M --> Q[Aggregate findings + cite each]
41
41
  O --> Q
@@ -120,7 +120,7 @@ Every finding cites a source. No uncited findings:
120
120
 
121
121
  - `see knowledge/<id>: <title>` — ARCS knowledge entry
122
122
  - `AGENTS.md §<section>` — project convention
123
- - `graphify: <observation>` — coupling/affected result
123
+ - `codegraph: <observation>` — coupling/impact result
124
124
  - `principle: <KISS|DRY|YAGNI|SOLID|correctness>` — first-principles label
125
125
 
126
126
  If only first-principles applies, that is sufficient — but it must be stated.
@@ -188,4 +188,4 @@ gh api POST /repos/{owner}/{repo}/pulls/{number}/reviews \
188
188
  - Re-review detection: if AI has reviewed before, scope to diff since last review's commit_id
189
189
  - Tag each posted suggestion with `<!-- arcs:deep-review:<finding-id> -->` for re-review tracking
190
190
  - See `review-template.md` for GitHub review body template
191
- - See `graphify-diff.md` for the changed-symbols-to-affected algorithm
191
+ - See `codegraph-diff.md` for the changed-symbols-to-impact algorithm