ultimate-pi 0.1.7 → 0.2.2

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 (524) hide show
  1. package/.agents/skills/graphify/.graphify_version +1 -0
  2. package/.agents/skills/graphify/SKILL.md +1204 -0
  3. package/.agents/skills/wiki-autoresearch/SKILL.md +225 -97
  4. package/.agents/skills/wiki-autoresearch/references/program.md +28 -62
  5. package/.agents/skills/wiki-autoresearch/references/quality-sites.md +32 -0
  6. package/.env.example +5 -1
  7. package/.gitattributes +1 -0
  8. package/.github/workflows/publish-github-packages.yml +1 -1
  9. package/.pi/SYSTEM.md +72 -18
  10. package/.pi/agents/harness/adversary.md +32 -0
  11. package/.pi/agents/harness/evaluator.md +32 -0
  12. package/.pi/agents/harness/executor.md +34 -0
  13. package/.pi/agents/harness/meta-optimizer.md +33 -0
  14. package/.pi/agents/harness/planner.md +33 -0
  15. package/.pi/agents/harness/tie-breaker.md +35 -0
  16. package/.pi/agents/harness/trace-librarian.md +32 -0
  17. package/.pi/extensions/banner.png +0 -0
  18. package/.pi/extensions/budget-guard.ts +265 -0
  19. package/.pi/extensions/custom-footer.ts +194 -22
  20. package/.pi/extensions/custom-header.ts +47 -9
  21. package/.pi/extensions/debate-orchestrator.ts +479 -0
  22. package/.pi/extensions/harness-live-widget.ts +438 -0
  23. package/.pi/extensions/policy-gate.ts +349 -0
  24. package/.pi/extensions/review-integrity.ts +198 -0
  25. package/.pi/extensions/test-diff-integrity.ts +240 -0
  26. package/.pi/extensions/trace-recorder.ts +315 -0
  27. package/.pi/harness/README.md +23 -0
  28. package/.pi/harness/router/README.md +35 -0
  29. package/.pi/harness/router/apply-router-proposal.mjs +153 -0
  30. package/.pi/harness/router/propose-router-tuning.mjs +149 -0
  31. package/.pi/harness/specs/README.md +37 -0
  32. package/.pi/harness/specs/adversary-report.schema.json +53 -0
  33. package/.pi/harness/specs/budget-exhausted-event.schema.json +93 -0
  34. package/.pi/harness/specs/consensus-packet.schema.json +175 -0
  35. package/.pi/harness/specs/eval-verdict.schema.json +59 -0
  36. package/.pi/harness/specs/incident-record.schema.json +84 -0
  37. package/.pi/harness/specs/plan-packet.schema.json +90 -0
  38. package/.pi/harness/specs/round-result.schema.json +126 -0
  39. package/.pi/harness/specs/router-tuning-proposal.schema.json +114 -0
  40. package/.pi/harness/specs/run-trace.schema.json +107 -0
  41. package/.pi/lib/harness-ui-state.ts +311 -0
  42. package/.pi/mcp.json +4 -0
  43. package/.pi/model-router.json +93 -93
  44. package/.pi/prompts/graphify.md +23 -0
  45. package/.pi/prompts/harness-abort.md +41 -0
  46. package/.pi/prompts/harness-auto.md +83 -0
  47. package/.pi/prompts/harness-critic.md +52 -0
  48. package/.pi/prompts/harness-eval.md +51 -0
  49. package/.pi/prompts/harness-incident.md +51 -0
  50. package/.pi/prompts/harness-plan.md +64 -0
  51. package/.pi/prompts/harness-review.md +52 -0
  52. package/.pi/prompts/harness-router-tune.md +74 -0
  53. package/.pi/prompts/harness-run.md +59 -0
  54. package/.pi/prompts/harness-setup.md +316 -216
  55. package/.pi/prompts/harness-trace.md +51 -0
  56. package/.pi/prompts/wiki-autoresearch.md +9 -7
  57. package/.pi/prompts/wiki-save.md +20 -0
  58. package/.pi/skills/agent-router/SKILL.md +2 -4
  59. package/.pi/skills/ast-grep/SKILL.md +354 -0
  60. package/.pi/sounds/project-sounds.json +18 -24
  61. package/AGENTS.md +30 -0
  62. package/CHANGELOG.md +89 -0
  63. package/CONTRIBUTING.md +51 -1
  64. package/README.md +264 -20
  65. package/biome.json +8 -2
  66. package/lefthook.yml +3 -2
  67. package/node_modules/@sting8k/pi-vcc/README.md +200 -0
  68. package/node_modules/@sting8k/pi-vcc/index.ts +14 -0
  69. package/node_modules/@sting8k/pi-vcc/package.json +26 -0
  70. package/node_modules/@sting8k/pi-vcc/scripts/audit-sessions.ts +88 -0
  71. package/node_modules/@sting8k/pi-vcc/scripts/benchmark-real-sessions.ts +25 -0
  72. package/node_modules/@sting8k/pi-vcc/scripts/compare-before-after.ts +36 -0
  73. package/node_modules/@sting8k/pi-vcc/scripts/dump-branch-output.ts +20 -0
  74. package/node_modules/@sting8k/pi-vcc/src/commands/pi-vcc.ts +36 -0
  75. package/node_modules/@sting8k/pi-vcc/src/commands/vcc-recall.ts +65 -0
  76. package/node_modules/@sting8k/pi-vcc/src/core/brief.ts +381 -0
  77. package/node_modules/@sting8k/pi-vcc/src/core/build-sections.ts +79 -0
  78. package/node_modules/@sting8k/pi-vcc/src/core/content.ts +60 -0
  79. package/node_modules/@sting8k/pi-vcc/src/core/filter-noise.ts +42 -0
  80. package/node_modules/@sting8k/pi-vcc/src/core/format-recall.ts +27 -0
  81. package/node_modules/@sting8k/pi-vcc/src/core/format.ts +49 -0
  82. package/node_modules/@sting8k/pi-vcc/src/core/lineage.ts +26 -0
  83. package/node_modules/@sting8k/pi-vcc/src/core/load-messages.ts +41 -0
  84. package/node_modules/@sting8k/pi-vcc/src/core/normalize.ts +66 -0
  85. package/node_modules/@sting8k/pi-vcc/src/core/recall-scope.ts +14 -0
  86. package/node_modules/@sting8k/pi-vcc/src/core/render-entries.ts +55 -0
  87. package/node_modules/@sting8k/pi-vcc/src/core/report.ts +237 -0
  88. package/node_modules/@sting8k/pi-vcc/src/core/sanitize.ts +5 -0
  89. package/node_modules/@sting8k/pi-vcc/src/core/search-entries.ts +221 -0
  90. package/node_modules/@sting8k/pi-vcc/src/core/settings.ts +77 -0
  91. package/node_modules/@sting8k/pi-vcc/src/core/skill-collapse.ts +35 -0
  92. package/node_modules/@sting8k/pi-vcc/src/core/summarize.ts +157 -0
  93. package/node_modules/@sting8k/pi-vcc/src/core/tool-args.ts +14 -0
  94. package/node_modules/@sting8k/pi-vcc/src/details.ts +7 -0
  95. package/node_modules/@sting8k/pi-vcc/src/extract/commits.ts +69 -0
  96. package/node_modules/@sting8k/pi-vcc/src/extract/files.ts +80 -0
  97. package/node_modules/@sting8k/pi-vcc/src/extract/goals.ts +79 -0
  98. package/node_modules/@sting8k/pi-vcc/src/extract/preferences.ts +55 -0
  99. package/node_modules/@sting8k/pi-vcc/src/hooks/before-compact.ts +322 -0
  100. package/node_modules/@sting8k/pi-vcc/src/sections.ts +12 -0
  101. package/node_modules/@sting8k/pi-vcc/src/tools/recall.ts +109 -0
  102. package/node_modules/@sting8k/pi-vcc/src/types.ts +14 -0
  103. package/node_modules/@sting8k/pi-vcc/tests/before-compact-hook.test.ts +181 -0
  104. package/node_modules/@sting8k/pi-vcc/tests/before-compact.test.ts +140 -0
  105. package/node_modules/@sting8k/pi-vcc/tests/brief.test.ts +206 -0
  106. package/node_modules/@sting8k/pi-vcc/tests/build-sections.test.ts +59 -0
  107. package/node_modules/@sting8k/pi-vcc/tests/compile.test.ts +80 -0
  108. package/node_modules/@sting8k/pi-vcc/tests/content.test.ts +31 -0
  109. package/node_modules/@sting8k/pi-vcc/tests/extract-goals.test.ts +86 -0
  110. package/node_modules/@sting8k/pi-vcc/tests/extract-preferences.test.ts +30 -0
  111. package/node_modules/@sting8k/pi-vcc/tests/filter-noise.test.ts +61 -0
  112. package/node_modules/@sting8k/pi-vcc/tests/fixtures.ts +61 -0
  113. package/node_modules/@sting8k/pi-vcc/tests/format-recall.test.ts +30 -0
  114. package/node_modules/@sting8k/pi-vcc/tests/format.test.ts +62 -0
  115. package/node_modules/@sting8k/pi-vcc/tests/lineage.test.ts +33 -0
  116. package/node_modules/@sting8k/pi-vcc/tests/load-messages.test.ts +51 -0
  117. package/node_modules/@sting8k/pi-vcc/tests/normalize.test.ts +97 -0
  118. package/node_modules/@sting8k/pi-vcc/tests/real-sessions.test.ts +38 -0
  119. package/node_modules/@sting8k/pi-vcc/tests/recall-expand.test.ts +15 -0
  120. package/node_modules/@sting8k/pi-vcc/tests/recall-scope.test.ts +32 -0
  121. package/node_modules/@sting8k/pi-vcc/tests/recall-tool-scope.test.ts +67 -0
  122. package/node_modules/@sting8k/pi-vcc/tests/render-entries.test.ts +62 -0
  123. package/node_modules/@sting8k/pi-vcc/tests/report.test.ts +44 -0
  124. package/node_modules/@sting8k/pi-vcc/tests/sanitize.test.ts +24 -0
  125. package/node_modules/@sting8k/pi-vcc/tests/search-entries.test.ts +144 -0
  126. package/node_modules/@sting8k/pi-vcc/tests/support/load-session.ts +23 -0
  127. package/node_modules/@sting8k/pi-vcc/tests/support/real-sessions.ts +51 -0
  128. package/package.json +15 -4
  129. package/scripts/__pycache__/merge_graphify_corpora.cpython-314.pyc +0 -0
  130. package/scripts/index_youtube_urls.py +376 -0
  131. package/scripts/merge_graphify_corpora.py +398 -0
  132. package/scripts/regen_graphify_html.py +46 -0
  133. package/.agents/skills/defuddle/SKILL.md +0 -90
  134. package/.agents/skills/wiki/SKILL.md +0 -215
  135. package/.agents/skills/wiki/references/css-snippets.md +0 -122
  136. package/.agents/skills/wiki/references/frontmatter.md +0 -107
  137. package/.agents/skills/wiki/references/git-setup.md +0 -58
  138. package/.agents/skills/wiki/references/mcp-setup.md +0 -149
  139. package/.agents/skills/wiki/references/modes.md +0 -259
  140. package/.agents/skills/wiki/references/plugins.md +0 -96
  141. package/.agents/skills/wiki/references/rest-api.md +0 -124
  142. package/.agents/skills/wiki-fold/SKILL.md +0 -204
  143. package/.agents/skills/wiki-fold/references/fold-template.md +0 -133
  144. package/.agents/skills/wiki-ingest/SKILL.md +0 -288
  145. package/.agents/skills/wiki-lint/SKILL.md +0 -183
  146. package/.agents/skills/wiki-query/SKILL.md +0 -176
  147. package/.pi/agents/rethink.md +0 -140
  148. package/.pi/agents/wiki-ingest.md +0 -67
  149. package/.pi/agents/wiki-lint.md +0 -75
  150. package/.pi/internal/cursor-sdk-transcript-parser.ts +0 -59
  151. package/.pi/prompts/save.md +0 -16
  152. package/.pi/prompts/wiki.md +0 -23
  153. package/.pi/providers/cursor-sdk-provider.test.mjs +0 -476
  154. package/.pi/providers/cursor-sdk-provider.ts +0 -1085
  155. package/vault/AGENTS.md +0 -37
  156. package/vault/wiki/_templates/comparison.md +0 -39
  157. package/vault/wiki/_templates/concept.md +0 -40
  158. package/vault/wiki/_templates/decision.md +0 -21
  159. package/vault/wiki/_templates/entity.md +0 -32
  160. package/vault/wiki/_templates/flow.md +0 -14
  161. package/vault/wiki/_templates/module.md +0 -18
  162. package/vault/wiki/_templates/question.md +0 -31
  163. package/vault/wiki/_templates/source.md +0 -39
  164. package/vault/wiki/concepts/AST-Aware Code Chunking.md +0 -44
  165. package/vault/wiki/concepts/Build-Time Prompt Compilation.md +0 -107
  166. package/vault/wiki/concepts/Context Engine (AI Coding).md +0 -47
  167. package/vault/wiki/concepts/Context-Aware System Reminders.md +0 -61
  168. package/vault/wiki/concepts/Contextualized Text Embedding.md +0 -42
  169. package/vault/wiki/concepts/Contractor vs Employee AI Model.md +0 -55
  170. package/vault/wiki/concepts/Dual-Model Agent Architecture.md +0 -65
  171. package/vault/wiki/concepts/Late Chunking vs Early Chunking.md +0 -43
  172. package/vault/wiki/concepts/Majority Vote Ensembling.md +0 -68
  173. package/vault/wiki/concepts/Meta-Harness.md +0 -16
  174. package/vault/wiki/concepts/Multi-Agent AI Coding Architecture.md +0 -75
  175. package/vault/wiki/concepts/Prompt Enhancement.md +0 -90
  176. package/vault/wiki/concepts/Prompt Renderer.md +0 -89
  177. package/vault/wiki/concepts/Semantic Codebase Indexing.md +0 -67
  178. package/vault/wiki/concepts/additive-config-hierarchy.md +0 -16
  179. package/vault/wiki/concepts/agent-artifacts-verifiable-deliverables.md +0 -71
  180. package/vault/wiki/concepts/agent-browser-browser-automation.md +0 -99
  181. package/vault/wiki/concepts/agent-codebase-interface.md +0 -43
  182. package/vault/wiki/concepts/agent-harness-architecture.md +0 -67
  183. package/vault/wiki/concepts/agent-loop-detection-patterns.md +0 -133
  184. package/vault/wiki/concepts/agent-search-enforcement.md +0 -126
  185. package/vault/wiki/concepts/agent-skills-ecosystem.md +0 -74
  186. package/vault/wiki/concepts/agent-skills-pattern.md +0 -68
  187. package/vault/wiki/concepts/agentic-harness-context-enforcement.md +0 -91
  188. package/vault/wiki/concepts/agentic-harness.md +0 -34
  189. package/vault/wiki/concepts/agentic-orchestration-pipeline.md +0 -56
  190. package/vault/wiki/concepts/agentic-search-no-embeddings.md +0 -18
  191. package/vault/wiki/concepts/anthropic-context-engineering.md +0 -13
  192. package/vault/wiki/concepts/antigravity-agent-first-architecture.md +0 -61
  193. package/vault/wiki/concepts/ast-compression.md +0 -19
  194. package/vault/wiki/concepts/ast-truncation.md +0 -66
  195. package/vault/wiki/concepts/barrel-files.md +0 -37
  196. package/vault/wiki/concepts/browser-harness-agent.md +0 -41
  197. package/vault/wiki/concepts/browser-subagent-visual-verification.md +0 -82
  198. package/vault/wiki/concepts/codebase-intelligence-ecosystem-comparison.md +0 -192
  199. package/vault/wiki/concepts/codebase-intelligence-harness-integration.md +0 -161
  200. package/vault/wiki/concepts/codebase-to-context-ingestion.md +0 -46
  201. package/vault/wiki/concepts/codex-harness-innovations.md +0 -147
  202. package/vault/wiki/concepts/consensus-debate-flow.md +0 -17
  203. package/vault/wiki/concepts/consensus-debate.md +0 -206
  204. package/vault/wiki/concepts/content-addressed-spec-identity.md +0 -166
  205. package/vault/wiki/concepts/context-anxiety.md +0 -57
  206. package/vault/wiki/concepts/context-compression-techniques.md +0 -19
  207. package/vault/wiki/concepts/context-continuity.md +0 -22
  208. package/vault/wiki/concepts/context-drift-in-agents.md +0 -106
  209. package/vault/wiki/concepts/context-engineering.md +0 -62
  210. package/vault/wiki/concepts/context-folding.md +0 -67
  211. package/vault/wiki/concepts/context-mode.md +0 -38
  212. package/vault/wiki/concepts/cursor-harness-innovations.md +0 -107
  213. package/vault/wiki/concepts/deterministic-session-compaction.md +0 -79
  214. package/vault/wiki/concepts/drift-detection-unified.md +0 -296
  215. package/vault/wiki/concepts/execution-feedback-loop.md +0 -46
  216. package/vault/wiki/concepts/feedforward-feedback-harness.md +0 -60
  217. package/vault/wiki/concepts/five-root-cause-metrics-sentrux.md +0 -40
  218. package/vault/wiki/concepts/fork-safe-spec-storage.md +0 -89
  219. package/vault/wiki/concepts/fts5-sandbox.md +0 -19
  220. package/vault/wiki/concepts/fuzzy-edit-matching.md +0 -71
  221. package/vault/wiki/concepts/gemini-cli-architecture.md +0 -104
  222. package/vault/wiki/concepts/generator-evaluator-architecture.md +0 -64
  223. package/vault/wiki/concepts/guardian-agent-pattern.md +0 -67
  224. package/vault/wiki/concepts/harness-configuration-layers.md +0 -89
  225. package/vault/wiki/concepts/harness-control-frameworks.md +0 -155
  226. package/vault/wiki/concepts/harness-engineering-first-principles.md +0 -90
  227. package/vault/wiki/concepts/harness-h-formalism.md +0 -53
  228. package/vault/wiki/concepts/hybrid-code-search.md +0 -61
  229. package/vault/wiki/concepts/inline-post-edit-validation.md +0 -112
  230. package/vault/wiki/concepts/legendary-engineering-patterns-harness.md +0 -110
  231. package/vault/wiki/concepts/lifecycle-hooks.md +0 -94
  232. package/vault/wiki/concepts/mcp-tool-routing.md +0 -102
  233. package/vault/wiki/concepts/memory-system-of-record-vs-ephemeral-cache.md +0 -47
  234. package/vault/wiki/concepts/meta-agent-context-pruning.md +0 -151
  235. package/vault/wiki/concepts/model-adaptive-harness.md +0 -122
  236. package/vault/wiki/concepts/model-routing-agents.md +0 -101
  237. package/vault/wiki/concepts/monorepo-architecture.md +0 -45
  238. package/vault/wiki/concepts/multi-agent-specialization.md +0 -61
  239. package/vault/wiki/concepts/permission-subsystem.md +0 -16
  240. package/vault/wiki/concepts/pi-messenger-analysis.md +0 -243
  241. package/vault/wiki/concepts/pi-vscode-extension-landscape.md +0 -37
  242. package/vault/wiki/concepts/policy-engine-pattern.md +0 -78
  243. package/vault/wiki/concepts/progressive-disclosure-agents.md +0 -53
  244. package/vault/wiki/concepts/progressive-skill-disclosure.md +0 -17
  245. package/vault/wiki/concepts/provider-native-prompting.md +0 -203
  246. package/vault/wiki/concepts/quality-signal-sentrux.md +0 -37
  247. package/vault/wiki/concepts/repo-map-ranking.md +0 -42
  248. package/vault/wiki/concepts/result-monad-error-handling.md +0 -47
  249. package/vault/wiki/concepts/safety-defense-in-depth.md +0 -83
  250. package/vault/wiki/concepts/sandbox-os-enforcement.md +0 -18
  251. package/vault/wiki/concepts/selective-debate-routing.md +0 -70
  252. package/vault/wiki/concepts/self-evolving-harness.md +0 -60
  253. package/vault/wiki/concepts/sentrux-mcp-integration.md +0 -36
  254. package/vault/wiki/concepts/sentrux-rules-engine.md +0 -49
  255. package/vault/wiki/concepts/shell-pattern-compression.md +0 -24
  256. package/vault/wiki/concepts/skill-first-architecture.md +0 -166
  257. package/vault/wiki/concepts/structured-compaction.md +0 -78
  258. package/vault/wiki/concepts/subagent-orchestration.md +0 -17
  259. package/vault/wiki/concepts/subagent-worktree-isolation.md +0 -68
  260. package/vault/wiki/concepts/superpowers-methodology.md +0 -78
  261. package/vault/wiki/concepts/think-in-code.md +0 -73
  262. package/vault/wiki/concepts/ts-execution-layer.md +0 -100
  263. package/vault/wiki/concepts/typescript-strict-mode.md +0 -37
  264. package/vault/wiki/concepts/vcc-conversation-compaction-for-pi.md +0 -53
  265. package/vault/wiki/concepts/verification-drift-detection.md +0 -19
  266. package/vault/wiki/consensus/consensus-records.md +0 -58
  267. package/vault/wiki/decisions/2026-04-30-pi-lean-ctx-native.md +0 -122
  268. package/vault/wiki/decisions/2026-05-07-replace-lean-ctx-with-context-mode.md +0 -59
  269. package/vault/wiki/decisions/adr-008.md +0 -40
  270. package/vault/wiki/decisions/adr-009.md +0 -46
  271. package/vault/wiki/decisions/adr-010.md +0 -55
  272. package/vault/wiki/decisions/adr-011.md +0 -165
  273. package/vault/wiki/decisions/adr-012.md +0 -102
  274. package/vault/wiki/decisions/adr-013.md +0 -59
  275. package/vault/wiki/decisions/adr-014.md +0 -73
  276. package/vault/wiki/decisions/adr-015.md +0 -81
  277. package/vault/wiki/decisions/adr-016.md +0 -91
  278. package/vault/wiki/decisions/adr-017.md +0 -79
  279. package/vault/wiki/decisions/adr-018.md +0 -100
  280. package/vault/wiki/decisions/adr-019.md +0 -75
  281. package/vault/wiki/decisions/adr-020.md +0 -106
  282. package/vault/wiki/decisions/adr-021.md +0 -86
  283. package/vault/wiki/decisions/adr-022.md +0 -113
  284. package/vault/wiki/decisions/adr-023.md +0 -113
  285. package/vault/wiki/decisions/adr-024.md +0 -73
  286. package/vault/wiki/decisions/adr-025.md +0 -130
  287. package/vault/wiki/decisions/adr-026.md +0 -56
  288. package/vault/wiki/decisions/adr-027.md +0 -94
  289. package/vault/wiki/decisions/colocate-wiki.md +0 -34
  290. package/vault/wiki/entities/Anders Hejlsberg.md +0 -29
  291. package/vault/wiki/entities/Anthropic.md +0 -17
  292. package/vault/wiki/entities/Augment Code.md +0 -49
  293. package/vault/wiki/entities/Bjarne Stroustrup.md +0 -26
  294. package/vault/wiki/entities/Bolt.new (StackBlitz).md +0 -39
  295. package/vault/wiki/entities/Boris Cherny.md +0 -11
  296. package/vault/wiki/entities/Claude Code.md +0 -19
  297. package/vault/wiki/entities/Dennis Ritchie.md +0 -26
  298. package/vault/wiki/entities/Emergent Labs.md +0 -32
  299. package/vault/wiki/entities/Google Cloud.md +0 -16
  300. package/vault/wiki/entities/Guido van Rossum.md +0 -28
  301. package/vault/wiki/entities/Ken Thompson.md +0 -28
  302. package/vault/wiki/entities/Lee et al.md +0 -16
  303. package/vault/wiki/entities/Linus Torvalds.md +0 -28
  304. package/vault/wiki/entities/Lovable (company).md +0 -40
  305. package/vault/wiki/entities/Martin Fowler.md +0 -16
  306. package/vault/wiki/entities/Meng et al.md +0 -16
  307. package/vault/wiki/entities/OpenAI.md +0 -16
  308. package/vault/wiki/entities/Rocket.new.md +0 -38
  309. package/vault/wiki/entities/VILA-Lab.md +0 -15
  310. package/vault/wiki/entities/autodev-codebase.md +0 -18
  311. package/vault/wiki/entities/ck-tool.md +0 -59
  312. package/vault/wiki/entities/codesearch.md +0 -18
  313. package/vault/wiki/entities/disler-indydevdan.md +0 -33
  314. package/vault/wiki/entities/gsd-get-shit-done.md +0 -56
  315. package/vault/wiki/entities/javascript-runtimes.md +0 -48
  316. package/vault/wiki/entities/jesse-vincent.md +0 -38
  317. package/vault/wiki/entities/lean-ctx.md +0 -32
  318. package/vault/wiki/entities/opendev.md +0 -41
  319. package/vault/wiki/entities/ops-codegraph-tool.md +0 -18
  320. package/vault/wiki/entities/pi-coding-agent.md +0 -53
  321. package/vault/wiki/entities/sentrux.md +0 -54
  322. package/vault/wiki/entities/vgrep-tool.md +0 -57
  323. package/vault/wiki/entities/vitest.md +0 -41
  324. package/vault/wiki/flows/harness-wiki-pipeline.md +0 -204
  325. package/vault/wiki/hot.md +0 -932
  326. package/vault/wiki/index.md +0 -437
  327. package/vault/wiki/log.md +0 -422
  328. package/vault/wiki/meta/dashboard.md +0 -30
  329. package/vault/wiki/meta/lint-report-2026-04-30.md +0 -86
  330. package/vault/wiki/meta/lint-report-2026-05-02.md +0 -251
  331. package/vault/wiki/meta/overview.canvas +0 -43
  332. package/vault/wiki/modules/adversarial-verification.md +0 -57
  333. package/vault/wiki/modules/automated-observability.md +0 -54
  334. package/vault/wiki/modules/bench.md +0 -20
  335. package/vault/wiki/modules/extensions.md +0 -23
  336. package/vault/wiki/modules/grounding-checkpoints.md +0 -62
  337. package/vault/wiki/modules/harness-implementation-plan.md +0 -345
  338. package/vault/wiki/modules/harness-wiki-skill-mapping.md +0 -135
  339. package/vault/wiki/modules/harness.md +0 -86
  340. package/vault/wiki/modules/persistent-memory.md +0 -85
  341. package/vault/wiki/modules/schema-orchestration.md +0 -68
  342. package/vault/wiki/modules/skills.md +0 -27
  343. package/vault/wiki/modules/spec-hardening.md +0 -58
  344. package/vault/wiki/modules/structured-planning.md +0 -53
  345. package/vault/wiki/modules/think-in-code-enforcement.md +0 -153
  346. package/vault/wiki/modules/wiki-query-interface.md +0 -64
  347. package/vault/wiki/overview.md +0 -51
  348. package/vault/wiki/questions/Research-pi-vs-claude-code-agentic-orchestration-pipeline.md +0 -87
  349. package/vault/wiki/questions/Research-sentrux-dev.md +0 -123
  350. package/vault/wiki/questions/Research-superpowers-skill-for-agentic-coding-agents.md +0 -164
  351. package/vault/wiki/questions/Research: Augment Code Context Engine.md +0 -244
  352. package/vault/wiki/questions/Research: Automating Software Engineering - Lovable, Bolt, Emergent, Rocket.md +0 -112
  353. package/vault/wiki/questions/Research: Claude Code State-of-the-Art Harness Improvements.md +0 -209
  354. package/vault/wiki/questions/Research: Codex State-of-the-Art Harness Improvements.md +0 -99
  355. package/vault/wiki/questions/Research: Engineering Workflows of Legendary Programmers and AI Harness Mapping.md +0 -107
  356. package/vault/wiki/questions/Research: Fallow Codebase Intelligence Harness Integration.md +0 -72
  357. package/vault/wiki/questions/Research: Gemini CLI SOTA Harness Integration.md +0 -166
  358. package/vault/wiki/questions/Research: GitHub Issues as Harness Spec Storage.md +0 -188
  359. package/vault/wiki/questions/Research: Google Antigravity Harness Integration.md +0 -120
  360. package/vault/wiki/questions/Research: Meta-Agent Context Drift Detection.md +0 -236
  361. package/vault/wiki/questions/Research: Model-Adaptive Agent Harness Design.md +0 -95
  362. package/vault/wiki/questions/Research: Model-Specific Prompting Guides.md +0 -165
  363. package/vault/wiki/questions/Research: Prompt Renderer for Multi-Model Agent Harness.md +0 -216
  364. package/vault/wiki/questions/Research: Skill-First Harness Architecture.md +0 -91
  365. package/vault/wiki/questions/Research: TypeScript Best Practices and Codebase Structure.md +0 -88
  366. package/vault/wiki/questions/Research: TypeScript Execution Layer for Agent Tool Calling.md +0 -81
  367. package/vault/wiki/questions/Research: claude-mem over Obsidian for Harness Layer.md +0 -71
  368. package/vault/wiki/questions/Research: claude-mem over obsidian wiki as the knowledge base for our agentic harness pipeline. think from first principles. does this replace or complement our current setup? no hard feelings about previous decisions. gimme accurate points.md +0 -80
  369. package/vault/wiki/questions/Research: context-mode vs lean-ctx.md +0 -72
  370. package/vault/wiki/questions/Research: cursor.sh Harness Innovations.md +0 -92
  371. package/vault/wiki/questions/Research: executor.sh Harness Integration.md +0 -170
  372. package/vault/wiki/questions/Research: how GSD fits into our coding harness setup.md +0 -97
  373. package/vault/wiki/questions/Research: how claude-mem fits into our workflow. and whether it should replace obsidian in the codebase. no hard feelings about previous actions, rethink from first principles always.md +0 -80
  374. package/vault/wiki/questions/Research: pi-vcc.md +0 -113
  375. package/vault/wiki/questions/Research: semantic code search tools.md +0 -69
  376. package/vault/wiki/questions/Research: vcc extension for pi coding agent.md +0 -73
  377. package/vault/wiki/questions/how-to-enable-semantic-code-search-now.md +0 -111
  378. package/vault/wiki/questions/mvp-implementation-blueprint.md +0 -552
  379. package/vault/wiki/questions/research-agent-first-codebase-exploration.md +0 -199
  380. package/vault/wiki/questions/research-agentic-coding-harness-latest-papers.md +0 -142
  381. package/vault/wiki/questions/research-gitingest-gitreverse-integration.md +0 -100
  382. package/vault/wiki/questions/research-wozcode-token-reduction.md +0 -67
  383. package/vault/wiki/questions/resolved-context-pruning-inplace-vs-restart.md +0 -95
  384. package/vault/wiki/questions/resolved-context-window-economics.md +0 -167
  385. package/vault/wiki/questions/resolved-imad-debate-gating-transfer.md +0 -126
  386. package/vault/wiki/questions/resolved-mcp-tool-preference.md +0 -112
  387. package/vault/wiki/questions/resolved-small-model-meta-agents.md +0 -107
  388. package/vault/wiki/questions/resolved-treesitter-dynamic-languages.md +0 -95
  389. package/vault/wiki/sources/Auggie Context MCP Server.md +0 -63
  390. package/vault/wiki/sources/Augment Code Codacy AI Giants.md +0 -61
  391. package/vault/wiki/sources/Augment Code MCP SiliconAngle.md +0 -49
  392. package/vault/wiki/sources/Augment Code WorkOS ERC 2025.md +0 -55
  393. package/vault/wiki/sources/Augment Context Engine Official.md +0 -71
  394. package/vault/wiki/sources/Augment SWE-bench Agent GitHub.md +0 -74
  395. package/vault/wiki/sources/Augment SWE-bench Pro Blog.md +0 -58
  396. package/vault/wiki/sources/Source: AgentBus Jinja2 Prompt Pipelines.md +0 -75
  397. package/vault/wiki/sources/Source: Arxiv /342/200/224 Don't Break the Cache.md" +0 -85
  398. package/vault/wiki/sources/Source: Augment - Harness Engineering for AI Coding Agents.md +0 -58
  399. package/vault/wiki/sources/Source: Blake Crosley Agent Architecture Guide.md +0 -100
  400. package/vault/wiki/sources/Source: Bolt.new Architecture & Case Study.md +0 -75
  401. package/vault/wiki/sources/Source: Build-Time Prompt Compilation Architecture.md +0 -107
  402. package/vault/wiki/sources/Source: Claude API Agent Skills Overview.md +0 -70
  403. package/vault/wiki/sources/Source: Gemini CLI Changelogs.md +0 -88
  404. package/vault/wiki/sources/Source: Google Blog - Gemini CLI Announcement.md +0 -57
  405. package/vault/wiki/sources/Source: Google Gemini CLI Architecture Docs.md +0 -53
  406. package/vault/wiki/sources/Source: LangChain - Anatomy of Agent Harness.md +0 -65
  407. package/vault/wiki/sources/Source: Lovable Architecture & Clone Analysis.md +0 -83
  408. package/vault/wiki/sources/Source: Martin Fowler - Harness Engineering.md +0 -70
  409. package/vault/wiki/sources/Source: OpenAI Harness Engineering Five Principles.md +0 -58
  410. package/vault/wiki/sources/Source: OpenAI Harness Engineering /342/200/224 0 Lines of Human Code.md" +0 -101
  411. package/vault/wiki/sources/Source: OpenDev /342/200/224 Building AI Coding Agents for the Terminal.md" +0 -100
  412. package/vault/wiki/sources/Source: Render AI Coding Agents Benchmark 2025.md +0 -53
  413. package/vault/wiki/sources/Source: Rocket.new /342/200/224 Vibe Solutioning Platform.md" +0 -70
  414. package/vault/wiki/sources/Source: SwirlAI Agent Skills Progressive Disclosure.md +0 -71
  415. package/vault/wiki/sources/Source: TianPan Prompt Caching Architecture.md +0 -89
  416. package/vault/wiki/sources/Source: Vercel Labs agent-browser.md +0 -155
  417. package/vault/wiki/sources/Source: browser-harness CDP Harness.md +0 -126
  418. package/vault/wiki/sources/agent-drift-academic-paper.md +0 -79
  419. package/vault/wiki/sources/aider-repomap-tree-sitter.md +0 -42
  420. package/vault/wiki/sources/anthropic-compaction-api.md +0 -58
  421. package/vault/wiki/sources/anthropic-effective-harnesses.md +0 -42
  422. package/vault/wiki/sources/anthropic-prompt-best-practices.md +0 -100
  423. package/vault/wiki/sources/anthropic2026-harness-design.md +0 -63
  424. package/vault/wiki/sources/barrel-files-tkdodo.md +0 -38
  425. package/vault/wiki/sources/birth-of-unix-kernighan-interview.md +0 -57
  426. package/vault/wiki/sources/bockeler2026-harness-engineering.md +0 -69
  427. package/vault/wiki/sources/cast-code-chunking-paper.md +0 -50
  428. package/vault/wiki/sources/ck-semantic-search.md +0 -78
  429. package/vault/wiki/sources/claude-code-architecture-karaxai-2026.md +0 -71
  430. package/vault/wiki/sources/claude-code-architecture-qubytes-2026.md +0 -50
  431. package/vault/wiki/sources/claude-code-architecture-vila-lab-2026.md +0 -64
  432. package/vault/wiki/sources/claude-code-security-architecture-penligent-2026.md +0 -70
  433. package/vault/wiki/sources/claude-context-editing-docs.md +0 -13
  434. package/vault/wiki/sources/cloudflare-codemode.md +0 -63
  435. package/vault/wiki/sources/code-chunk-library-supermemory.md +0 -63
  436. package/vault/wiki/sources/codeact-apple-2024.md +0 -62
  437. package/vault/wiki/sources/codex-dsc-rfc-8573.md +0 -41
  438. package/vault/wiki/sources/codex-open-source-agent-2026.md +0 -110
  439. package/vault/wiki/sources/coir-code-retrieval-benchmark.md +0 -51
  440. package/vault/wiki/sources/colinmcnamara-context-optimization-codemode.md +0 -48
  441. package/vault/wiki/sources/context-folding-paper.md +0 -61
  442. package/vault/wiki/sources/context-mode-website.md +0 -63
  443. package/vault/wiki/sources/cursor-agent-best-practices-2026.md +0 -62
  444. package/vault/wiki/sources/cursor-fork-29b-2025.md +0 -50
  445. package/vault/wiki/sources/cursor-harness-april-2026.md +0 -76
  446. package/vault/wiki/sources/cursor-instant-apply-2024.md +0 -45
  447. package/vault/wiki/sources/cursor-shadow-workspace-2024.md +0 -52
  448. package/vault/wiki/sources/cursor-shipped-coding-agent-2026.md +0 -53
  449. package/vault/wiki/sources/cursor-vs-antigravity-2026.md +0 -51
  450. package/vault/wiki/sources/disler-pi-vs-claude-code.md +0 -69
  451. package/vault/wiki/sources/distill-deterministic-context-compression.md +0 -53
  452. package/vault/wiki/sources/embedding-models-benchmark-supermemory-2025.md +0 -48
  453. package/vault/wiki/sources/executor-rhyssullivan.md +0 -122
  454. package/vault/wiki/sources/fallow-rs-codebase-intelligence.md +0 -125
  455. package/vault/wiki/sources/fan2025-imad.md +0 -60
  456. package/vault/wiki/sources/forgecode-gpt5-agent-improvements.md +0 -63
  457. package/vault/wiki/sources/gemini-3-prompting-guide.md +0 -78
  458. package/vault/wiki/sources/gh-cli-sub-issue-rfc.md +0 -50
  459. package/vault/wiki/sources/gh-sub-issue-extension.md +0 -72
  460. package/vault/wiki/sources/github-fork-issues-discussion.md +0 -44
  461. package/vault/wiki/sources/github-issue-dependencies-docs.md +0 -49
  462. package/vault/wiki/sources/github-sub-issues-docs.md +0 -51
  463. package/vault/wiki/sources/gitingest.md +0 -91
  464. package/vault/wiki/sources/gitreverse.md +0 -63
  465. package/vault/wiki/sources/google-antigravity-official-blog.md +0 -47
  466. package/vault/wiki/sources/google-antigravity-wikipedia.md +0 -53
  467. package/vault/wiki/sources/gsd-codecentric-deep-dive.md +0 -57
  468. package/vault/wiki/sources/gsd-github-repo.md +0 -51
  469. package/vault/wiki/sources/gsd-hn-discussion.md +0 -59
  470. package/vault/wiki/sources/guido-python-design-philosophy.md +0 -56
  471. package/vault/wiki/sources/hejlsberg-7-learnings.md +0 -48
  472. package/vault/wiki/sources/ironclaw-drift-monitor.md +0 -80
  473. package/vault/wiki/sources/langsight-loop-detection.md +0 -80
  474. package/vault/wiki/sources/leanctx-website.md +0 -69
  475. package/vault/wiki/sources/lee2026-meta-harness.md +0 -59
  476. package/vault/wiki/sources/linux-kernel-coding-workflow.md +0 -50
  477. package/vault/wiki/sources/lou2026-autoharness.md +0 -53
  478. package/vault/wiki/sources/martin-fowler-harness-engineering.md +0 -73
  479. package/vault/wiki/sources/mcp-architecture-docs.md +0 -13
  480. package/vault/wiki/sources/meng2026-agent-harness-survey.md +0 -79
  481. package/vault/wiki/sources/mindstudio-four-agent-types.md +0 -68
  482. package/vault/wiki/sources/ms-chat-history-management.md +0 -13
  483. package/vault/wiki/sources/openai-prompt-guidance.md +0 -104
  484. package/vault/wiki/sources/openclaw-session-pruning.md +0 -13
  485. package/vault/wiki/sources/opencode-dcp.md +0 -13
  486. package/vault/wiki/sources/opendev-arxiv-2603.05344v1.md +0 -79
  487. package/vault/wiki/sources/openhands-platform.md +0 -39
  488. package/vault/wiki/sources/oss-guide-codebase-exploration.md +0 -53
  489. package/vault/wiki/sources/pi-compaction-extensions-ecosystem.md +0 -102
  490. package/vault/wiki/sources/pi-context-prune-github-repo.md +0 -38
  491. package/vault/wiki/sources/pi-mono-compaction-docs.md +0 -38
  492. package/vault/wiki/sources/pi-omni-compact-github-repo.md +0 -50
  493. package/vault/wiki/sources/pi-rtk-optimizer-github-repo.md +0 -45
  494. package/vault/wiki/sources/pi-vcc-github-repo.md +0 -69
  495. package/vault/wiki/sources/pi-vscode-marketplace.md +0 -41
  496. package/vault/wiki/sources/pi-vscode-model-provider-marketplace.md +0 -39
  497. package/vault/wiki/sources/py-tree-sitter.md +0 -13
  498. package/vault/wiki/sources/sentrux-dev-landing.md +0 -40
  499. package/vault/wiki/sources/sentrux-docs-pro-architecture.md +0 -75
  500. package/vault/wiki/sources/sentrux-docs-quality-signal.md +0 -46
  501. package/vault/wiki/sources/sentrux-docs-root-cause-metrics.md +0 -57
  502. package/vault/wiki/sources/sentrux-docs-rules-engine.md +0 -58
  503. package/vault/wiki/sources/sentrux-github-repo.md +0 -56
  504. package/vault/wiki/sources/superpowers-github-repo.md +0 -56
  505. package/vault/wiki/sources/superpowers-release-blog.md +0 -54
  506. package/vault/wiki/sources/superpowers-termdock-analysis.md +0 -45
  507. package/vault/wiki/sources/swe-agent-aci.md +0 -42
  508. package/vault/wiki/sources/swe-bench.md +0 -45
  509. package/vault/wiki/sources/swe-pruner-context-pruning.md +0 -13
  510. package/vault/wiki/sources/think-in-code-blog.md +0 -48
  511. package/vault/wiki/sources/tree-sitter-docs.md +0 -13
  512. package/vault/wiki/sources/ts-best-practices-2025-devto.md +0 -42
  513. package/vault/wiki/sources/ts-folder-structure-mingyang.md +0 -58
  514. package/vault/wiki/sources/ts-monorepo-koerselman.md +0 -44
  515. package/vault/wiki/sources/ts-result-error-handling-kkalamarski.md +0 -52
  516. package/vault/wiki/sources/ts-runtimes-comparison-betterstack.md +0 -42
  517. package/vault/wiki/sources/ts-strict-mode-rishikc.md +0 -43
  518. package/vault/wiki/sources/unix-philosophy.md +0 -48
  519. package/vault/wiki/sources/vectara-chunking-vs-embedding-naacl2025.md +0 -39
  520. package/vault/wiki/sources/vectara-guardian-agents.md +0 -79
  521. package/vault/wiki/sources/vgrep-semantic-search.md +0 -76
  522. package/vault/wiki/sources/vitest-official.md +0 -41
  523. package/vault/wiki/sources/vscode-pi-community-extension.md +0 -40
  524. package/vault/wiki/sources/wozcode.md +0 -79
@@ -1,11 +1,24 @@
1
1
  ---
2
- description: Full harness bootstrap — obsidian wiki scaffold, optional self-hosted firecrawl (Docker), CLI tools install, pi extension packages, and verification. Run once per project.
3
- argument-hint: "[--skip-wiki] [--skip-tools] [--skip-firecrawl-self] [--force] [--wiki-path <path>]"
2
+ description: Full harness bootstrap — Graphify knowledge graph setup, optional self-hosted firecrawl (Docker), CLI tools install, pi extension packages, and verification. Run once per project.
3
+ argument-hint: "[--skip-graphify] [--skip-tools] [--skip-firecrawl-self] [--force]"
4
4
  ---
5
5
 
6
6
  # harness-setup — Full Harness Bootstrap
7
7
 
8
- Bootstraps the complete ultimate-pi agentic harness: Obsidian wiki vault, CLI tools, pi extension packages, configuration files, and verification. Idempotent — safe to re-run, skips what's already installed.
8
+ Bootstraps the complete ultimate-pi agentic harness: Graphify knowledge graph, CLI tools, pi extension packages, configuration files, and verification. Idempotent — safe to re-run, skips what's already installed.
9
+
10
+ ## Parse arguments
11
+
12
+ Read `$ARGUMENTS` and map flags:
13
+
14
+ - `--skip-graphify`
15
+ - `--skip-tools`
16
+ - `--skip-firecrawl-self`
17
+ - `--force`
18
+
19
+ If a flag is unknown, stop and return:
20
+
21
+ `Usage: /harness-setup [--skip-graphify] [--skip-tools] [--skip-firecrawl-self] [--force]`
9
22
 
10
23
  ## Step 0 — Pre-flight Environment Check
11
24
 
@@ -17,104 +30,72 @@ which git && git --version
17
30
 
18
31
  Block if node < 18, npm < 9, or git missing. Report versions and continue.
19
32
 
20
- Read `.pi/auto-commit.json` for co-author + branch config. Read `.pi/settings.json` for extension packages list and `wiki_path` field (if present).
21
-
22
- ## Step 0.5 — Resolve Wiki Vault Path + Detect Existing Vault
33
+ Read `.pi/auto-commit.json` for co-author + branch config. Read `.pi/settings.json` for extension packages list.
23
34
 
24
- Resolve the wiki vault path with this priority:
35
+ ## Step 0.5 Graphify Setup
25
36
 
26
- 1. **CLI flag** `--wiki-path <path>` (highest priority — user explicitly passed it)
27
- 2. **Env var** `VAULT_WIKI_PATH` (set by project or user shell config)
28
- 3. **Settings file** `.pi/settings.json` → `wiki_path` field
29
- 4. **Default** `vault/wiki` (relative to project root)
37
+ Check if Graphify is installed and set up:
30
38
 
31
39
  ```bash
32
- # Resolve logic
33
- if [ -n "$CLI_WIKI_PATH" ]; then
34
- WIKI_PATH="$CLI_WIKI_PATH"
35
- elif [ -n "$VAULT_WIKI_PATH" ]; then
36
- WIKI_PATH="$VAULT_WIKI_PATH"
37
- else
38
- WIKI_PATH="$(node -e "try{const s=require('./.pi/settings.json');if(s.wiki_path)process.stdout.write(s.wiki_path)}catch(e){}" 2>/dev/null)"
39
- WIKI_PATH="${WIKI_PATH:-vault/wiki}"
40
- fi
40
+ # Check Python 3.10+
41
+ python3 --version | grep -q "3\.1[0-9]" && echo "✓ Python 3.10+" || echo "✗ Need Python 3.10+"
41
42
 
42
- # Normalize to absolute path (relative paths are relative to project root)
43
- if [[ "$WIKI_PATH" != /* ]]; then
44
- WIKI_PATH="$(pwd)/$WIKI_PATH"
45
- fi
46
-
47
- # Detect if a vault already exists at the resolved path
48
- # Vault indicators: .obsidian/ folder OR wiki/index.md OR wiki/log.md
49
- if [ -d "$WIKI_PATH/.obsidian" ] || [ -f "$WIKI_PATH/index.md" ] || [ -f "$WIKI_PATH/log.md" ]; then
50
- VAULT_EXISTS=true
51
- # Quick stats
52
- PAGE_COUNT=$(find "$WIKI_PATH" -name "*.md" -type f 2>/dev/null | wc -l)
53
- LAST_LOG=$(head -5 "$WIKI_PATH/log.md" 2>/dev/null || echo "unknown")
43
+ # Check if Graphify is installed
44
+ if pip show graphifyy &>/dev/null; then
45
+ echo "✓ Graphify installed"
46
+ GRAPHIFY_INSTALLED=true
54
47
  else
55
- VAULT_EXISTS=false
48
+ echo "! Graphify not installed"
49
+ GRAPHIFY_INSTALLED=false
56
50
  fi
57
- ```
58
51
 
59
- **Present to user explicitly context-aware:**
60
-
61
- ### Case A: Env var was set + vault found
62
-
63
- > "`VAULT_WIKI_PATH` is set to `$VAULT_WIKI_PATH`. Vault detected: $PAGE_COUNT pages, last updated $LAST_LOG. Confirm this is the correct vault?"
64
-
65
- ### Case B: Env var was set + NO vault found
52
+ # Check if graph already exists
53
+ test -f graphify-out/graph.json && GRAPH_EXISTS=true || GRAPH_EXISTS=false
54
+ ```
66
55
 
67
- > "`VAULT_WIKI_PATH` is set to `$VAULT_WIKI_PATH`, but no vault found there (no `.obsidian/`, `index.md`, or `log.md`). Where should we create the wiki vault? (Press Enter to use this path, or type a different path)"
56
+ **Present to user:**
68
57
 
69
- ### Case C: Settings had wiki_path + vault found
58
+ ### Case A: Graphify installed + graph exists
59
+ > "Graphify ready. Existing graph: `graphify-out/`. Run `graphify . --update` to refresh."
70
60
 
71
- > "Found `wiki_path: <path>` in `.pi/settings.json`. Vault detected: $PAGE_COUNT pages, last updated $LAST_LOG. Use this vault?"
61
+ ### Case B: Graphify installed + no graph
62
+ > "Graphify installed but no graph built yet. Build one now?"
72
63
 
73
- ### Case D: No env var, no settings → defaulting
64
+ ### Case C: Graphify not installed
65
+ > "Graphify not found. Install: `pip install graphifyy && graphify install`. Install now?"
74
66
 
75
- > "No `VAULT_WIKI_PATH` env var or `wiki_path` in settings found. Default path: `$(pwd)/vault/wiki`. Where should we create the wiki vault? (Press Enter for default, or type a different path)"
67
+ ### Case D: Python too old
68
+ > "Python 3.10+ required for Graphify. Current: `$(python3 --version)`. Install Python 3.10+ before continuing."
76
69
 
77
- ### Case E: All sources agree on path + vault found
70
+ ## Step 1 Build Knowledge Graph
78
71
 
79
- > "Wiki vault: `$WIKI_PATH` ($PAGE_COUNT pages, last updated $LAST_LOG). Use this?"
72
+ ```bash
73
+ # Install if needed
74
+ if [ "$GRAPHIFY_INSTALLED" != "true" ]; then
75
+ pip install graphifyy && graphify install
76
+ fi
80
77
 
81
- **Wait for user confirmation before proceeding.** This is the ONLY blocking question. If user provides a different path, update `WIKI_PATH`, re-detect, and re-confirm.
78
+ # Build the graph (or update existing)
79
+ if [ "$GRAPH_EXISTS" = "true" ]; then
80
+ graphify . --update --wiki
81
+ else
82
+ graphify . --wiki
83
+ fi
82
84
 
83
- **DX principles:**
84
- - Always show the resolved absolute path so user knows exactly where files go.
85
- - Always show the *source* of the path (env var, settings, default) so user understands WHY this path was chosen.
86
- - When no vault is detected, ask explicitly — don't just silently create at the default.
87
- - Don't check for `.obsidian/` in project root as a fallback. The vault can live anywhere.
85
+ # Install git hooks — auto-update graph on commit/checkout
86
+ graphify hook install
88
87
 
89
- ## Step 1 — Wiki Scaffold
88
+ # Quick stats
89
+ echo "Graph built. Output: graphify-out/"
90
+ ls graphify-out/
91
+ ```
90
92
 
91
- Run the `/wiki` prompt flow using the user-confirmed `$WIKI_PATH`:
93
+ Read and summarize `graphify-out/GRAPH_REPORT.md` show god nodes and surprising connections.
92
94
 
93
- 1. If `VAULT_EXISTS=true` (detected in Step 0.5): skip scaffold. Move to Step 2.
94
- 2. If `VAULT_EXISTS=false`: ask ONE question: "What is this vault for?"
95
- 3. Scaffold full wiki structure based on answer at `$WIKI_PATH`:
96
- ```
97
- $WIKI_PATH/
98
- ├── index.md # master catalog
99
- ├── log.md # chronological operations log
100
- ├── hot.md # recent context summary
101
- ├── overview.md # executive summary
102
- ├── sources/ # source document summaries
103
- ├── entities/ # people, orgs, products, repos
104
- ├── concepts/ # ideas, patterns, frameworks
105
- ├── decisions/ # ADRs + design decisions
106
- ├── questions/ # filed research answers
107
- ├── modules/ # code module documentation
108
- ├── flows/ # pipeline/process flows
109
- ├── consensus/ # debate verdict records
110
- ├── meta/ # dashboards, lint reports
111
- └── components/ # reusable sub-modules
112
- ```
113
- 4. Create `$WIKI_PATH/.vault-meta/` with vault metadata (inside the wiki vault).
114
- 5. Create vault `AGENTS.md` inside `$WIKI_PATH/` with mode, purpose, conventions, operations.
115
- 6. Initialize wiki git tracking if not already present.
116
- 7. Write initial `$WIKI_PATH/hot.md` with setup timestamp.
117
- 8. **Save resolved path** to `.pi/settings.json` (merge `"wiki_path": "<relative-path>"` into settings) for future sessions.
95
+ Create project directories needed for graphify + harness workflow:
96
+ ```bash
97
+ mkdir -p ./raw .pi/harness/specs .pi/harness/runs .pi/harness/incidents .pi/harness/debates
98
+ ```
118
99
 
119
100
  ## Step 1.5 — Optional Self-Hosted Firecrawl
120
101
 
@@ -286,17 +267,7 @@ mkdir -p .firecrawl
286
267
  firecrawl scrape "https://firecrawl.dev" -o .firecrawl/install-check.md
287
268
  ```
288
269
 
289
- ### 2.2 — defuddle-cli (Web Page Cleaner)
290
-
291
- ```bash
292
- if ! command -v defuddle &>/dev/null || [ "$FORCE" = "true" ]; then
293
- npm install -g defuddle-cli
294
- fi
295
- ```
296
-
297
- Verify: `defuddle --version`
298
-
299
- ### 2.3 — ctx7 (Context7 Library Docs + Skills Management)
270
+ ### 2.2 — ctx7 (Context7 Library Docs + Skills Management)
300
271
 
301
272
  ```bash
302
273
  if ! command -v ctx7 &>/dev/null || [ "$FORCE" = "true" ]; then
@@ -312,7 +283,7 @@ ctx7 login
312
283
  ctx7 whoami
313
284
  ```
314
285
 
315
- ### 2.4 — agent-browser (Vercel Labs Browser Automation for AI Agents)
286
+ ### 2.3 — agent-browser (Vercel Labs Browser Automation for AI Agents)
316
287
 
317
288
  ```bash
318
289
  if ! command -v agent-browser &>/dev/null || [ "$FORCE" = "true" ]; then
@@ -337,7 +308,7 @@ if [ ! -f .pi/harness/browser.json ]; then
337
308
  fi
338
309
  ```
339
310
 
340
- ### 2.5 — ck-search (Semantic Code Search)
311
+ ### 2.4 — ck-search (Semantic Code Search)
341
312
 
342
313
  ```bash
343
314
  if ! command -v ck &>/dev/null || [ "$FORCE" = "true" ]; then
@@ -352,40 +323,43 @@ Register as MCP server (if Claude MCP available):
352
323
  claude mcp list 2>/dev/null && claude mcp add ck-search -s user -- ck --serve || echo "MCP not available — ck will be used as CLI only"
353
324
  ```
354
325
 
355
- ### 2.6fallow (Codebase Intelligence: Dead Code, Duplication, Complexity)
326
+ ### 2.5biome (Lint + Format Gate)
356
327
 
357
328
  ```bash
358
- if ! command -v fallow &>/dev/null || [ "$FORCE" = "true" ]; then
359
- npm install -g fallow
329
+ if ! command -v biome &>/dev/null || [ "$FORCE" = "true" ]; then
330
+ npm install -g @biomejs/biome
360
331
  fi
361
332
  ```
362
333
 
363
- Verify:
334
+ Check if project already has biome config:
364
335
  ```bash
365
- fallow --version
336
+ ls biome.json 2>/dev/null && echo "biome.json found — using project config" || echo "No biome.json — using defaults"
366
337
  ```
367
338
 
368
- Set up baseline for existing codebases:
369
- ```bash
370
- fallow audit --gate all --format json > .fallow-baseline.json 2>/dev/null || echo "No baseline yet — will be created on first gate run"
371
- ```
339
+ Verify: `biome --version`
372
340
 
373
- ### 2.7biome (Lint + Format Gate)
341
+ ### 2.6ast-grep (AST-Aware Structural Code Search)
374
342
 
375
343
  ```bash
376
- if ! command -v biome &>/dev/null || [ "$FORCE" = "true" ]; then
377
- npm install -g @biomejs/biome
344
+ if ! command -v sg &>/dev/null || [ "$FORCE" = "true" ]; then
345
+ npm install -g @ast-grep/cli@latest
378
346
  fi
379
347
  ```
380
348
 
381
- Check if project already has biome config:
349
+ Verify:
382
350
  ```bash
383
- ls biome.json 2>/dev/null && echo "biome.json found — using project config" || echo "No biome.json using defaults"
351
+ sg --version && echo " ast-grep installed" || echo " ast-grep install failed"
384
352
  ```
385
353
 
386
- Verify: `biome --version`
354
+ ast-grep is the primary code search tool. It uses tree-sitter for AST-aware pattern matching — understands code structure, not just text. Replaces grep for code search tasks.
387
355
 
388
- ### 2.8 — gh CLI (GitHub Issues Spec Storage — ADR-025)
356
+ Quick smoke test:
357
+ ```bash
358
+ # Search for function definitions across the codebase
359
+ sg -p 'function $NAME($$$ARGS) { $$$BODY }' --json 2>/dev/null | head -5 && echo "✓ ast-grep pattern matching works" || echo "! ast-grep smoke test — may need language-specific config"
360
+ ```
361
+
362
+ ### 2.7 — gh CLI (GitHub Issues Spec Storage — ADR-025)
389
363
 
390
364
  ```bash
391
365
  if ! command -v gh &>/dev/null || [ "$FORCE" = "true" ]; then
@@ -408,6 +382,31 @@ if gh auth status &>/dev/null; then
408
382
  fi
409
383
  ```
410
384
 
385
+ ### 2.8 — sentrux (Architectural Quality Gate + MCP Sensor)
386
+
387
+ ```bash
388
+ if ! command -v sentrux &>/dev/null || [ "$FORCE" = "true" ]; then
389
+ curl -fsSL https://raw.githubusercontent.com/sentrux/sentrux/main/install.sh | sh
390
+ fi
391
+ ```
392
+
393
+ Verify:
394
+ ```bash
395
+ sentrux --version && echo "✓ sentrux installed" || echo "✗ sentrux install failed"
396
+ ```
397
+
398
+ Install all 52 language plugins:
399
+ ```bash
400
+ sentrux plugin add-standard 2>/dev/null || echo "Plugins already installed or failed"
401
+ ```
402
+
403
+ Configure MCP server in `.pi/mcp.json` (see Step 4.3).
404
+
405
+ Set up project baseline (optional, runs on first check):
406
+ ```bash
407
+ sentrux gate --save . 2>/dev/null || echo "Baseline will be saved on first gate run"
408
+ ```
409
+
411
410
  ## Step 3 — Pi Extension Packages
412
411
 
413
412
  Install pi extension packages from `.pi/settings.json`:
@@ -426,19 +425,120 @@ Verify each package:
426
425
  | `@tintinweb/pi-subagents` | L4 critic sub-agent spawn/control | P16 |
427
426
  | `@yeliu84/pi-model-router` | Per-turn intelligent model routing (auto high/medium/low tier selection) | F0 |
428
427
 
429
- ## Step 3.5 — Model Router Configuration
428
+ ## Step 3.5 — Model Router Configuration (Dynamic)
429
+
430
+ `.pi/model-router.json` is **user-specific** (differs per user's providers).
431
+ It is gitignored. Generate it dynamically from your `.env`.
430
432
 
431
- Verify the model router is installed and configured:
433
+ The script below:
434
+ 1. Detects available AI providers from env vars (`OPENAI_API_KEY`, `ANTHROPIC_API_KEY`, `GOOGLE_API_KEY`, and `OPENAI_API_BASE` to detect opencode gateway)
435
+ 2. Generates a full `model-router.json` with `auto`, `cheap`, and `deep` profiles
436
+ 3. Only writes if file doesn't exist yet (safe to re-run, will skip existing)
432
437
 
433
438
  ```bash
434
- # Verify package installed
435
- ls .pi/npm/node_modules/@yeliu84/pi-model-router/package.json 2>/dev/null && echo "✓ model-router package" || echo "✗ model-router package — run: cd .pi/npm && npm install"
439
+ # Verify package installed first
440
+ ls .pi/npm/node_modules/@yeliu84/pi-model-router/package.json 2>/dev/null \
441
+ && echo "✓ model-router package" \
442
+ || echo "✗ model-router package — run: cd .pi/npm && npm install"
436
443
 
437
- # Verify config exists
438
- ls .pi/model-router.json 2>/dev/null && echo "✓ model-router.json" || echo "✗ model-router.json — see .pi/npm/node_modules/@yeliu84/pi-model-router/model-router.example.json"
444
+ # Generate config from detected providers (only if missing)
445
+ if [ -f .pi/model-router.json ]; then
446
+ echo "✓ .pi/model-router.json already exists — preserving user config"
447
+ else
448
+ node << 'GENDONE'
449
+ const fs = require('fs');
450
+ const path = '.pi/model-router.json';
451
+
452
+ // --- Detect providers from env ---
453
+ const hasOpenCode = process.env.OPENAI_API_BASE?.includes('opencode.ai');
454
+ const hasOpenAI = !!process.env.OPENAI_API_KEY;
455
+ const hasAnthropic = !!process.env.ANTHROPIC_API_KEY;
456
+ const hasGoogle = !!process.env.GOOGLE_API_KEY;
457
+
458
+ // If opencode gateway is detected, prefer opencode-go/ models
459
+ // Otherwise use standard provider prefixes
460
+ const P = hasOpenCode ? 'opencode-go' : 'openai';
461
+
462
+ function model(prefix, name) { return `${prefix}/${name}`; }
463
+
464
+ // Best available high-end model per provider
465
+ const highModel = hasOpenCode
466
+ ? model('opencode-go', 'deepseek-v4-pro')
467
+ : hasOpenAI
468
+ ? model('openai', 'gpt-5.4-pro')
469
+ : hasAnthropic
470
+ ? 'anthropic/claude-3-5-sonnet-20241022'
471
+ : 'google/gemini-2.5-flash-001';
472
+
473
+ const mediumModel = hasOpenCode
474
+ ? model('opencode-go', 'qwen3.6-plus')
475
+ : hasOpenAI
476
+ ? model('openai', 'gpt-5.4-nano')
477
+ : hasAnthropic
478
+ ? 'anthropic/claude-3-5-sonnet-20241022'
479
+ : 'google/gemini-flash-latest';
480
+
481
+ const lowModel = hasOpenCode
482
+ ? model('opencode-go', 'deepseek-v4-flash')
483
+ : hasOpenAI
484
+ ? model('openai', 'gpt-5.4-nano')
485
+ : hasAnthropic
486
+ ? 'anthropic/claude-3-haiku-20240307'
487
+ : 'google/gemini-flash-lite-latest';
488
+
489
+ const fallbacks = [];
490
+ if (hasAnthropic && !highModel.startsWith('anthropic/')) fallbacks.push('anthropic/claude-3-5-sonnet-20241022');
491
+ if (hasGoogle && !highModel.startsWith('google/')) fallbacks.push('google/gemini-flash-latest');
492
+
493
+ const config = {
494
+ defaultProfile: 'auto',
495
+ debug: false,
496
+ classifierModel: mediumModel,
497
+ phaseBias: 0.5,
498
+ maxSessionBudget: 1.0,
499
+ largeContextThreshold: 100000,
500
+ rules: [
501
+ {
502
+ matches: ['deploy', 'production', 'release'],
503
+ tier: 'high',
504
+ reason: 'Safety check for production tasks'
505
+ },
506
+ { matches: 'changelog', tier: 'low' }
507
+ ],
508
+ profiles: {
509
+ auto: {
510
+ high: { model: highModel, thinking: 'high', fallbacks },
511
+ medium: { model: mediumModel, thinking: 'medium' },
512
+ low: { model: lowModel, thinking: 'low' }
513
+ },
514
+ cheap: {
515
+ high: { model: mediumModel, thinking: 'low' },
516
+ medium: { model: lowModel, thinking: 'off' },
517
+ low: { model: lowModel, thinking: 'off' }
518
+ },
519
+ deep: {
520
+ high: { model: highModel, thinking: 'xhigh', fallbacks },
521
+ medium: { model: mediumModel, thinking: 'medium' },
522
+ low: { model: lowModel, thinking: 'low' }
523
+ }
524
+ }
525
+ };
526
+
527
+ fs.mkdirSync('.pi', { recursive: true });
528
+ fs.writeFileSync(path, JSON.stringify(config, null, 2) + '\n');
529
+ console.log('✓ Generated .pi/model-router.json from detected providers:');
530
+ if (hasOpenCode) console.log(' Provider: opencode gateway');
531
+ if (hasOpenAI) console.log(' Detected: OPENAI_API_KEY');
532
+ if (hasAnthropic) console.log(' Detected: ANTHROPIC_API_KEY');
533
+ if (hasGoogle) console.log(' Detected: GOOGLE_API_KEY');
534
+ console.log(` High tier: ${highModel}`);
535
+ console.log(` Medium tier: ${mediumModel}`);
536
+ console.log(` Low tier: ${lowModel}`);
537
+ GENDONE
538
+ fi
439
539
  ```
440
540
 
441
- Do NOT block. If config exists, continue. If missing, warn in report and continue.
541
+ Do NOT block. If generation fails, warn in report and continue.
442
542
 
443
543
  **Router activation happens automatically** — the agent should output the following as its next message (this activates the router in the current session):
444
544
 
@@ -455,176 +555,175 @@ Ensure `.gitignore` contains:
455
555
  .firecrawl/
456
556
  .raw/
457
557
  .vault-meta/
458
- .fallow-baseline.json
459
558
  .pi/harness/critics/
460
559
  .pi/harness/plans/
461
560
  .pi/harness/specs/
561
+
562
+ # Model router config (user-specific — generated from env)
563
+ .pi/model-router.json
564
+ .sentrux/
565
+ ```
566
+
567
+ ### 4.2 — MCP Server Configuration
568
+
569
+ Add sentrux MCP server to `.pi/mcp.json`:
570
+ ```json
571
+ {
572
+ "mcpServers": {
573
+ "context-mode": {
574
+ "command": "context-mode"
575
+ },
576
+ "sentrux": {
577
+ "command": "sentrux",
578
+ "args": ["--mcp"]
579
+ }
580
+ }
581
+ }
462
582
  ```
463
583
 
464
- ### 4.2 Vault AGENTS.md
584
+ This gives agents real-time access to structural health metrics:
585
+ - `scan` — quality signal, file count, bottleneck detection
586
+ - `session_start` / `session_end` — baseline comparison, degradation detection
587
+ - `check_rules` — architectural constraint enforcement
588
+ - `health`, `rescan`, `evolution`, `dsm`, `test_gaps`
589
+
590
+ ### 4.3 — Project AGENTS.md
465
591
 
466
- If not already created by Step 1, create a minimal `AGENTS.md` inside `$WIKI_PATH/`:
592
+ Create a minimal `AGENTS.md` in the project root for agent onboarding:
467
593
 
468
594
  ```markdown
469
- # ultimate-pi: Agentic Harness Wiki
595
+ # ultimate-pi: Agentic Harness
470
596
 
471
- Mode: B (Engineering Research + System Design)
472
- Purpose: Knowledge base for the ultimate-pi agentic coding harness — architecture, research, decisions, implementation plans.
597
+ Purpose: Agentic coding harness architecture, research, decisions, implementation.
473
598
  Owner: pi-mono + user
474
599
  Created: $(date +%Y-%m-%d)
475
- Wiki vault path: `$WIKI_PATH`
476
600
 
477
601
  ## Structure
478
602
 
479
- ├── index.mdmaster catalog
480
- ├── log.mdchronological operations
481
- ├── hot.mdrecent context cache
482
- ├── concepts/ → ideas, patterns, frameworks (harness layers, drift detection, skill-first architecture)
483
- ├── decisions/ → ADRs for every architectural choice
484
- ├── modules/ → code module docs (harness implementation plan, pipeline)
485
- ├── sources/ → reference materials
486
- ├── entities/ → tools, platforms, people
487
- ├── questions/ → filed research answers
488
- ├── consensus/ → debate verdicts
489
- ├── flows/ → pipeline diagrams
490
- └── .vault-meta/ → vault metadata
603
+ - graphify-out/Knowledge graph (run `graphify .` to build)
604
+ - ./raw/Source documents for graphify ingestion
605
+ - .pi/harness/specs/Harness contracts and schema docs
606
+ - .pi/harness/incidents/Incident and override records
607
+ - .pi/skills/Agent skills
608
+ - .pi/agents/Specialized agents
491
609
 
492
- ## Conventions
610
+ ## Graphify-First Workflow
493
611
 
494
- - YAML frontmatter required: type, status, created, updated, tags
495
- - Wikilinks: [[Page Name]] format
496
- - .raw/ is immutable source storage
497
- - index.md updated on every ingest
498
- - log.md is append-only, newest at top
612
+ 1. Run `graphify . --wiki` to build the knowledge graph
613
+ 2. Read `graphify-out/GRAPH_REPORT.md` for god nodes and surprising connections
614
+ 3. Query: `graphify query "question"`
615
+ 4. Harness contracts and governance records in `.pi/harness/specs/` and `.pi/harness/incidents/`
499
616
 
500
- ## Cross-Project Reference
501
-
502
- Other projects can reference this vault:
503
- 1. Read hot.md (~500 tokens)
504
- 2. Read index.md if needed
505
- 3. Drill into specific topics as needed
506
-
507
- ## Path Resolution
617
+ ## Conventions
508
618
 
509
- This vault's filesystem path is set via:
510
- - Env var: `VAULT_WIKI_PATH` (current: `$VAULT_WIKI_PATH` or unset)
511
- - Settings: `.pi/settings.json` `wiki_path`
512
- - Default fallback: `vault/wiki`
619
+ - Graph before grep always consult the knowledge graph first
620
+ - ./raw/ is source storage for graphify
621
+ - Decisions and incidents in `.pi/harness/` with structured artifacts
622
+ - `graphify . --update` after significant changes
623
+ - ast-grep (`sg`) is the default code search tool — use `sg -p 'pattern'` for structural search, never grep for code
624
+ - Create `.sg/rules/` for project-wide code quality rules
513
625
  ```
514
626
 
515
627
  ## Step 5 — Verification
516
628
 
517
- Run full verification suite using resolved `$WIKI_PATH`:
629
+ Run full verification suite:
518
630
 
519
631
  ```bash
520
632
  # CLI tools
521
633
  firecrawl --status 2>/dev/null && echo "✓ firecrawl" || echo "✗ firecrawl"
522
- defuddle --version 2>/dev/null && echo "✓ defuddle" || echo "✗ defuddle"
523
634
  ctx7 --help 2>/dev/null && echo "✓ ctx7" || echo "✗ ctx7"
524
635
  agent-browser --version 2>/dev/null && echo "✓ agent-browser" || echo "✗ agent-browser"
525
636
  ck --version 2>/dev/null && echo "✓ ck-search" || echo "✗ ck-search"
526
- fallow --version 2>/dev/null && echo "✓ fallow" || echo "✗ fallow"
527
637
  biome --version 2>/dev/null && echo "✓ biome" || echo "✗ biome"
638
+ sg --version 2>/dev/null && echo "✓ ast-grep" || echo "✗ ast-grep"
528
639
  gh --version 2>/dev/null && echo "✓ gh" || echo "✗ gh"
640
+ sentrux --version 2>/dev/null && echo "✓ sentrux" || echo "✗ sentrux"
529
641
 
530
642
  # pi extensions
531
643
  cd .pi/npm && npm ls 2>/dev/null && echo "✓ pi extensions" || echo "✗ pi extensions"
532
644
 
533
- # wiki vault (using resolved WIKI_PATH)
534
- ls "$WIKI_PATH/index.md" 2>/dev/null && echo "✓ wiki vault" || echo "✗ wiki vault"
535
- ls "$WIKI_PATH/hot.md" 2>/dev/null && echo "✓ wiki hot cache" || echo "✗ wiki hot cache"
645
+ # graphify knowledge graph
646
+ pip show graphifyy 2>/dev/null && echo "✓ graphify installed" || echo "✗ graphify not installed"
647
+ ls graphify-out/graph.json 2>/dev/null && echo "✓ knowledge graph built" || echo "✗ no graph built yet"
648
+ graphify hook status 2>/dev/null && echo "✓ graphify git hooks installed" || echo "✗ graphify git hooks not installed"
536
649
 
537
650
  # model router
538
651
  ls .pi/npm/node_modules/@yeliu84/pi-model-router/package.json 2>/dev/null && echo "✓ model-router package" || echo "✗ model-router package"
539
652
  ls .pi/model-router.json 2>/dev/null && echo "✓ model-router config" || echo "✗ model-router config"
540
653
 
541
- # settings persistence
542
- grep -q 'wiki_path' .pi/settings.json 2>/dev/null && echo "✓ wiki path saved to settings" || echo "! wiki path not saved"
654
+ # raw folder for graphify sources
655
+ ls -d ./raw 2>/dev/null && echo "✓ ./raw directory exists" || echo "! ./raw directory missing"
543
656
 
544
657
  # gitignore entries
545
658
  grep -q '.firecrawl/' .gitignore 2>/dev/null && echo "✓ .gitignore" || echo "! .gitignore missing entries"
546
659
  ```
547
660
 
548
- ## Step 6 — Wiki Hot Cache Bootstrap
661
+ ## Step 6 — Graph Knowledge Report Bootstrap
549
662
 
550
- Write initial `$WIKI_PATH/hot.md`:
551
- ```markdown
552
- ---
553
- type: meta
554
- title: "Hot Cache"
555
- updated: $(date -u +%Y-%m-%dT%H:%M:%S)
556
- created: $(date +%Y-%m-%d)
557
- tags: []
558
- status: active
559
- ---
560
-
561
- # Recent Context
562
-
563
- ## Last Updated
564
- $(date +%Y-%m-%d). Harness setup completed. All CLI tools installed, wiki vault scaffolded at `$WIKI_PATH`, pi extensions configured.
565
-
566
- ## Key Facts
567
- - Harness runs 8-layer mandatory pipeline (L1 → L2 → L2.5 → L3 → L4 → P20 → L5 → L6 → L7 → L8)
568
- - Implementation: skill-first v2 — 4 code files, 6 harness skills
569
- - Wiki vault: Mode B (Engineering Research + System Design)
570
- - Wiki path: `$WIKI_PATH`
571
- - ADRs filed in `$WIKI_PATH/decisions/`
572
- - Consensus debate verdicts filed in `$WIKI_PATH/consensus/`
573
-
574
- ## Recent Changes
575
- - Created: Full wiki vault structure
663
+ After graph is built, read and display key findings:
576
664
 
577
- - Installed: firecrawl-cli, defuddle-cli, ctx7, agent-browser, ck-search, fallow, biome, gh
578
-
579
- ## Active Threads
580
- - Next: run first spec through pipeline with `/harness "task description"`
665
+ ```bash
666
+ # Show graph stats
667
+ python3 -c "
668
+ import json
669
+ with open('graphify-out/graph.json') as f:
670
+ g = json.load(f)
671
+ nodes = g['nodes']
672
+ edges = g['edges']
673
+ communities = len(set(n.get('community', 0) for n in nodes))
674
+ god_nodes = sorted(nodes, key=lambda n: n.get('degree', 0), reverse=True)[:5]
675
+ print(f'Nodes: {len(nodes)} | Edges: {len(edges)} | Communities: {communities}')
676
+ print(f'God nodes: {[n[\"label\"] for n in god_nodes]}')
677
+ " 2>/dev/null || echo "Graph not yet built"
581
678
  ```
582
679
 
680
+ Summarize `graphify-out/GRAPH_REPORT.md` to the user.
681
+
583
682
  ## Step 7 — Report
584
683
 
585
684
  Output summary table:
586
685
 
587
686
  | Component | Status | Detail |
588
687
  |-----------|--------|--------|
589
- | Wiki Vault | ✓/✗ | Path: `$WIKI_PATH` — scaffold complete / task pending |
688
+ | Knowledge Graph | ✓/✗ | `graphify-out/graph.json`graph status |
689
+ | Graphify Hooks | ✓/✗ | git post-commit/post-checkout hooks |
590
690
  | firecrawl-cli | ✓/✗ | Auth: yes/no |
591
- | defuddle-cli | ✓/✗ | Version |
592
691
  | ctx7 | ✓/✗ | Login: yes/no |
593
692
  | agent-browser | ✓/✗ | Config: .pi/harness/browser.json |
594
693
  | ck-search | ✓/✗ | MCP: registered/CLI-only |
595
- | fallow | ✓/✗ | Baseline: created/pending |
596
694
  | biome | ✓/✗ | Project config: found/default |
695
+ | ast-grep | ✓/✗ | AST-aware code search (`sg`)
597
696
  | gh CLI | ✓/✗ | Auth: yes/no |
697
+ | sentrux | ✓/✗ | Version + plugins: 52 languages |
598
698
  | pi extensions | ✓/✗ | 4 packages |
599
699
  | model router | ✓/✗ | Package + config verified, activation via `/router profile auto` |
600
700
 
601
- | .gitignore | ✓/✗ | 6 entries added |
602
- | wiki_path in settings | ✓/✗ | Persisted to .pi/settings.json |
701
+ | .gitignore | ✓/✗ | 7 entries added |
702
+ | ./raw directory | ✓/✗ | Created for graphify source ingestion |
603
703
  | Firecrawl mode | self/cloud | Self-hosted on :3002 / Cloud (api.firecrawl.dev) |
604
704
  | Docker Engine | ✓/✗/N/A | Installed / Not needed (cloud mode) |
605
705
 
606
706
  Next steps:
607
707
  1. If tools missing: re-run with `--force` or install individually
608
- 2. If wiki not scaffolded: run `/wiki` prompt
609
- 3. If gh not authenticated: `gh auth login`
610
- 4. If self-hosted Firecrawl unhealthy: `docker compose -f firecrawl/docker-compose.yaml logs`
611
- 5. First harness run: `/harness "your task description"`
612
- 6. To change wiki path later: update `VAULT_WIKI_PATH` env var or `.pi/settings.json` → `wiki_path` field
708
+ 2. If graph not built: run `graphify . --wiki`
709
+ 3. If hooks not installed: run `graphify hook install`
710
+ 4. If gh not authenticated: `gh auth login`
711
+ 5. If self-hosted Firecrawl unhealthy: `docker compose -f firecrawl/docker-compose.yaml logs`
712
+ 6. If sentrux plugins missing: `sentrux plugin add-standard`
713
+ 7. First harness run: `/harness "your task description"`
613
714
 
614
715
  ## Guard Rails
615
716
 
616
717
  - **Internet required**: Several tools need npm registry access. Block if offline.
617
- - **Wiki path must be writable**: Check `test -w "$(dirname "$WIKI_PATH")"` before scaffold. Block if not writable.
618
- - **Wiki path outside project**: Allowed (e.g., `~/vaults/my-project`). Cross-project vault sharing is supported.
718
+ - **Graphify requires Python 3.10+**: Check `python3 --version`. Block if too old.
619
719
  - **Node.js >= 18 required**: Some pi packages use modern Node APIs.
620
720
  - **Docker required for self-hosted**: Step 1.5 needs Docker Engine + Compose. Block if install fails.
621
721
  - **Sufficient RAM for self-hosted**: Firecrawl stack needs ~8GB+ free (API: 8G, Playwright: 4G, others).
622
722
  - **Idempotent**: All checks skip if already installed. `--force` overrides.
623
- - **No destructive actions**: Creates files only if missing. Never overwrites existing wiki content.
624
- - **Wiki safety**: Scaffold only creates structure, never modifies existing wiki content.
723
+ - **No destructive actions**: Creates files only if missing. Never overwrites existing content.
625
724
  - **Partial success**: If some tools fail, report which and continue. User can fix individually.
626
725
  - **Rate limits**: ctx7 login is optional. firecrawl auth is required for cloud; none needed for self-hosted.
627
- - **Settings persistence**: The resolved `wiki_path` is saved to `.pi/settings.json` so future sessions auto-detect it.
726
+
628
727
 
629
728
  ## Error Handling
630
729
 
@@ -632,27 +731,28 @@ Next steps:
632
731
  |-------|--------|
633
732
  | Node < 18 | Block. Report required version. |
634
733
  | npm not found | Block. Suggest install method per OS. |
635
- | Wiki path not writable | Block. Show path and suggest `chmod` or different path. |
636
- | Wiki path already has vault + `--skip-wiki` not set | Report state, ask if user wants to skip or force re-scaffold. |
637
- | `VAULT_WIKI_PATH` and `wiki_path` in settings disagree | Resolve with priority (env var wins), warn user about mismatch, ask to confirm. |
734
+ | Python < 3.10 | Block. Report required Python version for Graphify. |
735
+ | Graphify install fails | Show pip error output. Suggest `pip install --upgrade pip` and retry. |
736
+ | graphify hook install fails | Hooks need `.git/` directory. Verify inside git repo. Manual: `git config core.hooksPath .pi/git-hooks` |
638
737
  | firecrawl auth failed | Show manual login instructions. Continue with other tools. |
639
738
  | gh not installed | Show GitHub CLI install link. Skip label creation. |
640
739
  | pi packages install fail | Show error output. Check npm permissions. |
641
- | wiki already exists | Report state, skip scaffold, continue other steps. |
740
+ | graph already exists | Report state. Offer `graphify . --update` to refresh. |
642
741
  | biome.json missing | Create minimal config. |
643
- | settings.json not writable | Warn. Wiki path won't persist across sessions. |
644
- | No internet | Block for tool installs. Continue for wiki-only steps if `--skip-tools`. |
742
+ | settings.json not writable | Warn. Settings won't persist across sessions. |
743
+ | No internet | Block for tool installs. Continue for graphify-only steps if `--skip-tools`. |
645
744
  | Docker not running | Start: `sudo systemctl start docker`. Block if cannot start. |
646
745
  | Docker install fails | Show manual link: https://docs.docker.com/engine/install/. Block Step 1.5, continue rest. |
647
746
  | Port 3002 already in use | Warn. User must free port or change `PORT` in `firecrawl/.env`. |
648
747
  | Self-hosted health check timeout | Show logs: `docker compose -f firecrawl/docker-compose.yaml logs`. Continue — may need more time. |
748
+ | sentrux install fails | Show install script output. Fallback: download from https://github.com/sentrux/sentrux/releases/latest |
649
749
 
650
750
  ## Flags
651
751
 
652
752
  | Flag | Effect |
653
753
  |------|--------|
654
- | `--skip-wiki` | Skip Step 1 (wiki scaffold). Use when wiki already exists. |
754
+ | `--skip-graphify` | Skip Step 1 (graph build). Use when graph already exists. |
655
755
  | `--skip-tools` | Skip Step 2 (CLI tool installs). Use when tools already set up. |
656
756
  | `--skip-firecrawl-self` | Skip Step 1.5 (self-hosted Firecrawl). Always use cloud. |
657
757
  | `--force` | Reinstall all tools even if already present. Overwrite existing files. |
658
- | `--wiki-path <path>` | Override wiki vault path. Absolute or relative to project root. Bypasses env var and settings. |
758
+