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.
- package/.agents/skills/graphify/.graphify_version +1 -0
- package/.agents/skills/graphify/SKILL.md +1204 -0
- package/.agents/skills/wiki-autoresearch/SKILL.md +225 -97
- package/.agents/skills/wiki-autoresearch/references/program.md +28 -62
- package/.agents/skills/wiki-autoresearch/references/quality-sites.md +32 -0
- package/.env.example +5 -1
- package/.gitattributes +1 -0
- package/.github/workflows/publish-github-packages.yml +1 -1
- package/.pi/SYSTEM.md +72 -18
- package/.pi/agents/harness/adversary.md +32 -0
- package/.pi/agents/harness/evaluator.md +32 -0
- package/.pi/agents/harness/executor.md +34 -0
- package/.pi/agents/harness/meta-optimizer.md +33 -0
- package/.pi/agents/harness/planner.md +33 -0
- package/.pi/agents/harness/tie-breaker.md +35 -0
- package/.pi/agents/harness/trace-librarian.md +32 -0
- package/.pi/extensions/banner.png +0 -0
- package/.pi/extensions/budget-guard.ts +265 -0
- package/.pi/extensions/custom-footer.ts +194 -22
- package/.pi/extensions/custom-header.ts +47 -9
- package/.pi/extensions/debate-orchestrator.ts +479 -0
- package/.pi/extensions/harness-live-widget.ts +438 -0
- package/.pi/extensions/policy-gate.ts +349 -0
- package/.pi/extensions/review-integrity.ts +198 -0
- package/.pi/extensions/test-diff-integrity.ts +240 -0
- package/.pi/extensions/trace-recorder.ts +315 -0
- package/.pi/harness/README.md +23 -0
- package/.pi/harness/router/README.md +35 -0
- package/.pi/harness/router/apply-router-proposal.mjs +153 -0
- package/.pi/harness/router/propose-router-tuning.mjs +149 -0
- package/.pi/harness/specs/README.md +37 -0
- package/.pi/harness/specs/adversary-report.schema.json +53 -0
- package/.pi/harness/specs/budget-exhausted-event.schema.json +93 -0
- package/.pi/harness/specs/consensus-packet.schema.json +175 -0
- package/.pi/harness/specs/eval-verdict.schema.json +59 -0
- package/.pi/harness/specs/incident-record.schema.json +84 -0
- package/.pi/harness/specs/plan-packet.schema.json +90 -0
- package/.pi/harness/specs/round-result.schema.json +126 -0
- package/.pi/harness/specs/router-tuning-proposal.schema.json +114 -0
- package/.pi/harness/specs/run-trace.schema.json +107 -0
- package/.pi/lib/harness-ui-state.ts +311 -0
- package/.pi/mcp.json +4 -0
- package/.pi/model-router.json +93 -93
- package/.pi/prompts/graphify.md +23 -0
- package/.pi/prompts/harness-abort.md +41 -0
- package/.pi/prompts/harness-auto.md +83 -0
- package/.pi/prompts/harness-critic.md +52 -0
- package/.pi/prompts/harness-eval.md +51 -0
- package/.pi/prompts/harness-incident.md +51 -0
- package/.pi/prompts/harness-plan.md +64 -0
- package/.pi/prompts/harness-review.md +52 -0
- package/.pi/prompts/harness-router-tune.md +74 -0
- package/.pi/prompts/harness-run.md +59 -0
- package/.pi/prompts/harness-setup.md +316 -216
- package/.pi/prompts/harness-trace.md +51 -0
- package/.pi/prompts/wiki-autoresearch.md +9 -7
- package/.pi/prompts/wiki-save.md +20 -0
- package/.pi/skills/agent-router/SKILL.md +2 -4
- package/.pi/skills/ast-grep/SKILL.md +354 -0
- package/.pi/sounds/project-sounds.json +18 -24
- package/AGENTS.md +30 -0
- package/CHANGELOG.md +89 -0
- package/CONTRIBUTING.md +51 -1
- package/README.md +264 -20
- package/biome.json +8 -2
- package/lefthook.yml +3 -2
- package/node_modules/@sting8k/pi-vcc/README.md +200 -0
- package/node_modules/@sting8k/pi-vcc/index.ts +14 -0
- package/node_modules/@sting8k/pi-vcc/package.json +26 -0
- package/node_modules/@sting8k/pi-vcc/scripts/audit-sessions.ts +88 -0
- package/node_modules/@sting8k/pi-vcc/scripts/benchmark-real-sessions.ts +25 -0
- package/node_modules/@sting8k/pi-vcc/scripts/compare-before-after.ts +36 -0
- package/node_modules/@sting8k/pi-vcc/scripts/dump-branch-output.ts +20 -0
- package/node_modules/@sting8k/pi-vcc/src/commands/pi-vcc.ts +36 -0
- package/node_modules/@sting8k/pi-vcc/src/commands/vcc-recall.ts +65 -0
- package/node_modules/@sting8k/pi-vcc/src/core/brief.ts +381 -0
- package/node_modules/@sting8k/pi-vcc/src/core/build-sections.ts +79 -0
- package/node_modules/@sting8k/pi-vcc/src/core/content.ts +60 -0
- package/node_modules/@sting8k/pi-vcc/src/core/filter-noise.ts +42 -0
- package/node_modules/@sting8k/pi-vcc/src/core/format-recall.ts +27 -0
- package/node_modules/@sting8k/pi-vcc/src/core/format.ts +49 -0
- package/node_modules/@sting8k/pi-vcc/src/core/lineage.ts +26 -0
- package/node_modules/@sting8k/pi-vcc/src/core/load-messages.ts +41 -0
- package/node_modules/@sting8k/pi-vcc/src/core/normalize.ts +66 -0
- package/node_modules/@sting8k/pi-vcc/src/core/recall-scope.ts +14 -0
- package/node_modules/@sting8k/pi-vcc/src/core/render-entries.ts +55 -0
- package/node_modules/@sting8k/pi-vcc/src/core/report.ts +237 -0
- package/node_modules/@sting8k/pi-vcc/src/core/sanitize.ts +5 -0
- package/node_modules/@sting8k/pi-vcc/src/core/search-entries.ts +221 -0
- package/node_modules/@sting8k/pi-vcc/src/core/settings.ts +77 -0
- package/node_modules/@sting8k/pi-vcc/src/core/skill-collapse.ts +35 -0
- package/node_modules/@sting8k/pi-vcc/src/core/summarize.ts +157 -0
- package/node_modules/@sting8k/pi-vcc/src/core/tool-args.ts +14 -0
- package/node_modules/@sting8k/pi-vcc/src/details.ts +7 -0
- package/node_modules/@sting8k/pi-vcc/src/extract/commits.ts +69 -0
- package/node_modules/@sting8k/pi-vcc/src/extract/files.ts +80 -0
- package/node_modules/@sting8k/pi-vcc/src/extract/goals.ts +79 -0
- package/node_modules/@sting8k/pi-vcc/src/extract/preferences.ts +55 -0
- package/node_modules/@sting8k/pi-vcc/src/hooks/before-compact.ts +322 -0
- package/node_modules/@sting8k/pi-vcc/src/sections.ts +12 -0
- package/node_modules/@sting8k/pi-vcc/src/tools/recall.ts +109 -0
- package/node_modules/@sting8k/pi-vcc/src/types.ts +14 -0
- package/node_modules/@sting8k/pi-vcc/tests/before-compact-hook.test.ts +181 -0
- package/node_modules/@sting8k/pi-vcc/tests/before-compact.test.ts +140 -0
- package/node_modules/@sting8k/pi-vcc/tests/brief.test.ts +206 -0
- package/node_modules/@sting8k/pi-vcc/tests/build-sections.test.ts +59 -0
- package/node_modules/@sting8k/pi-vcc/tests/compile.test.ts +80 -0
- package/node_modules/@sting8k/pi-vcc/tests/content.test.ts +31 -0
- package/node_modules/@sting8k/pi-vcc/tests/extract-goals.test.ts +86 -0
- package/node_modules/@sting8k/pi-vcc/tests/extract-preferences.test.ts +30 -0
- package/node_modules/@sting8k/pi-vcc/tests/filter-noise.test.ts +61 -0
- package/node_modules/@sting8k/pi-vcc/tests/fixtures.ts +61 -0
- package/node_modules/@sting8k/pi-vcc/tests/format-recall.test.ts +30 -0
- package/node_modules/@sting8k/pi-vcc/tests/format.test.ts +62 -0
- package/node_modules/@sting8k/pi-vcc/tests/lineage.test.ts +33 -0
- package/node_modules/@sting8k/pi-vcc/tests/load-messages.test.ts +51 -0
- package/node_modules/@sting8k/pi-vcc/tests/normalize.test.ts +97 -0
- package/node_modules/@sting8k/pi-vcc/tests/real-sessions.test.ts +38 -0
- package/node_modules/@sting8k/pi-vcc/tests/recall-expand.test.ts +15 -0
- package/node_modules/@sting8k/pi-vcc/tests/recall-scope.test.ts +32 -0
- package/node_modules/@sting8k/pi-vcc/tests/recall-tool-scope.test.ts +67 -0
- package/node_modules/@sting8k/pi-vcc/tests/render-entries.test.ts +62 -0
- package/node_modules/@sting8k/pi-vcc/tests/report.test.ts +44 -0
- package/node_modules/@sting8k/pi-vcc/tests/sanitize.test.ts +24 -0
- package/node_modules/@sting8k/pi-vcc/tests/search-entries.test.ts +144 -0
- package/node_modules/@sting8k/pi-vcc/tests/support/load-session.ts +23 -0
- package/node_modules/@sting8k/pi-vcc/tests/support/real-sessions.ts +51 -0
- package/package.json +15 -4
- package/scripts/__pycache__/merge_graphify_corpora.cpython-314.pyc +0 -0
- package/scripts/index_youtube_urls.py +376 -0
- package/scripts/merge_graphify_corpora.py +398 -0
- package/scripts/regen_graphify_html.py +46 -0
- package/.agents/skills/defuddle/SKILL.md +0 -90
- package/.agents/skills/wiki/SKILL.md +0 -215
- package/.agents/skills/wiki/references/css-snippets.md +0 -122
- package/.agents/skills/wiki/references/frontmatter.md +0 -107
- package/.agents/skills/wiki/references/git-setup.md +0 -58
- package/.agents/skills/wiki/references/mcp-setup.md +0 -149
- package/.agents/skills/wiki/references/modes.md +0 -259
- package/.agents/skills/wiki/references/plugins.md +0 -96
- package/.agents/skills/wiki/references/rest-api.md +0 -124
- package/.agents/skills/wiki-fold/SKILL.md +0 -204
- package/.agents/skills/wiki-fold/references/fold-template.md +0 -133
- package/.agents/skills/wiki-ingest/SKILL.md +0 -288
- package/.agents/skills/wiki-lint/SKILL.md +0 -183
- package/.agents/skills/wiki-query/SKILL.md +0 -176
- package/.pi/agents/rethink.md +0 -140
- package/.pi/agents/wiki-ingest.md +0 -67
- package/.pi/agents/wiki-lint.md +0 -75
- package/.pi/internal/cursor-sdk-transcript-parser.ts +0 -59
- package/.pi/prompts/save.md +0 -16
- package/.pi/prompts/wiki.md +0 -23
- package/.pi/providers/cursor-sdk-provider.test.mjs +0 -476
- package/.pi/providers/cursor-sdk-provider.ts +0 -1085
- package/vault/AGENTS.md +0 -37
- package/vault/wiki/_templates/comparison.md +0 -39
- package/vault/wiki/_templates/concept.md +0 -40
- package/vault/wiki/_templates/decision.md +0 -21
- package/vault/wiki/_templates/entity.md +0 -32
- package/vault/wiki/_templates/flow.md +0 -14
- package/vault/wiki/_templates/module.md +0 -18
- package/vault/wiki/_templates/question.md +0 -31
- package/vault/wiki/_templates/source.md +0 -39
- package/vault/wiki/concepts/AST-Aware Code Chunking.md +0 -44
- package/vault/wiki/concepts/Build-Time Prompt Compilation.md +0 -107
- package/vault/wiki/concepts/Context Engine (AI Coding).md +0 -47
- package/vault/wiki/concepts/Context-Aware System Reminders.md +0 -61
- package/vault/wiki/concepts/Contextualized Text Embedding.md +0 -42
- package/vault/wiki/concepts/Contractor vs Employee AI Model.md +0 -55
- package/vault/wiki/concepts/Dual-Model Agent Architecture.md +0 -65
- package/vault/wiki/concepts/Late Chunking vs Early Chunking.md +0 -43
- package/vault/wiki/concepts/Majority Vote Ensembling.md +0 -68
- package/vault/wiki/concepts/Meta-Harness.md +0 -16
- package/vault/wiki/concepts/Multi-Agent AI Coding Architecture.md +0 -75
- package/vault/wiki/concepts/Prompt Enhancement.md +0 -90
- package/vault/wiki/concepts/Prompt Renderer.md +0 -89
- package/vault/wiki/concepts/Semantic Codebase Indexing.md +0 -67
- package/vault/wiki/concepts/additive-config-hierarchy.md +0 -16
- package/vault/wiki/concepts/agent-artifacts-verifiable-deliverables.md +0 -71
- package/vault/wiki/concepts/agent-browser-browser-automation.md +0 -99
- package/vault/wiki/concepts/agent-codebase-interface.md +0 -43
- package/vault/wiki/concepts/agent-harness-architecture.md +0 -67
- package/vault/wiki/concepts/agent-loop-detection-patterns.md +0 -133
- package/vault/wiki/concepts/agent-search-enforcement.md +0 -126
- package/vault/wiki/concepts/agent-skills-ecosystem.md +0 -74
- package/vault/wiki/concepts/agent-skills-pattern.md +0 -68
- package/vault/wiki/concepts/agentic-harness-context-enforcement.md +0 -91
- package/vault/wiki/concepts/agentic-harness.md +0 -34
- package/vault/wiki/concepts/agentic-orchestration-pipeline.md +0 -56
- package/vault/wiki/concepts/agentic-search-no-embeddings.md +0 -18
- package/vault/wiki/concepts/anthropic-context-engineering.md +0 -13
- package/vault/wiki/concepts/antigravity-agent-first-architecture.md +0 -61
- package/vault/wiki/concepts/ast-compression.md +0 -19
- package/vault/wiki/concepts/ast-truncation.md +0 -66
- package/vault/wiki/concepts/barrel-files.md +0 -37
- package/vault/wiki/concepts/browser-harness-agent.md +0 -41
- package/vault/wiki/concepts/browser-subagent-visual-verification.md +0 -82
- package/vault/wiki/concepts/codebase-intelligence-ecosystem-comparison.md +0 -192
- package/vault/wiki/concepts/codebase-intelligence-harness-integration.md +0 -161
- package/vault/wiki/concepts/codebase-to-context-ingestion.md +0 -46
- package/vault/wiki/concepts/codex-harness-innovations.md +0 -147
- package/vault/wiki/concepts/consensus-debate-flow.md +0 -17
- package/vault/wiki/concepts/consensus-debate.md +0 -206
- package/vault/wiki/concepts/content-addressed-spec-identity.md +0 -166
- package/vault/wiki/concepts/context-anxiety.md +0 -57
- package/vault/wiki/concepts/context-compression-techniques.md +0 -19
- package/vault/wiki/concepts/context-continuity.md +0 -22
- package/vault/wiki/concepts/context-drift-in-agents.md +0 -106
- package/vault/wiki/concepts/context-engineering.md +0 -62
- package/vault/wiki/concepts/context-folding.md +0 -67
- package/vault/wiki/concepts/context-mode.md +0 -38
- package/vault/wiki/concepts/cursor-harness-innovations.md +0 -107
- package/vault/wiki/concepts/deterministic-session-compaction.md +0 -79
- package/vault/wiki/concepts/drift-detection-unified.md +0 -296
- package/vault/wiki/concepts/execution-feedback-loop.md +0 -46
- package/vault/wiki/concepts/feedforward-feedback-harness.md +0 -60
- package/vault/wiki/concepts/five-root-cause-metrics-sentrux.md +0 -40
- package/vault/wiki/concepts/fork-safe-spec-storage.md +0 -89
- package/vault/wiki/concepts/fts5-sandbox.md +0 -19
- package/vault/wiki/concepts/fuzzy-edit-matching.md +0 -71
- package/vault/wiki/concepts/gemini-cli-architecture.md +0 -104
- package/vault/wiki/concepts/generator-evaluator-architecture.md +0 -64
- package/vault/wiki/concepts/guardian-agent-pattern.md +0 -67
- package/vault/wiki/concepts/harness-configuration-layers.md +0 -89
- package/vault/wiki/concepts/harness-control-frameworks.md +0 -155
- package/vault/wiki/concepts/harness-engineering-first-principles.md +0 -90
- package/vault/wiki/concepts/harness-h-formalism.md +0 -53
- package/vault/wiki/concepts/hybrid-code-search.md +0 -61
- package/vault/wiki/concepts/inline-post-edit-validation.md +0 -112
- package/vault/wiki/concepts/legendary-engineering-patterns-harness.md +0 -110
- package/vault/wiki/concepts/lifecycle-hooks.md +0 -94
- package/vault/wiki/concepts/mcp-tool-routing.md +0 -102
- package/vault/wiki/concepts/memory-system-of-record-vs-ephemeral-cache.md +0 -47
- package/vault/wiki/concepts/meta-agent-context-pruning.md +0 -151
- package/vault/wiki/concepts/model-adaptive-harness.md +0 -122
- package/vault/wiki/concepts/model-routing-agents.md +0 -101
- package/vault/wiki/concepts/monorepo-architecture.md +0 -45
- package/vault/wiki/concepts/multi-agent-specialization.md +0 -61
- package/vault/wiki/concepts/permission-subsystem.md +0 -16
- package/vault/wiki/concepts/pi-messenger-analysis.md +0 -243
- package/vault/wiki/concepts/pi-vscode-extension-landscape.md +0 -37
- package/vault/wiki/concepts/policy-engine-pattern.md +0 -78
- package/vault/wiki/concepts/progressive-disclosure-agents.md +0 -53
- package/vault/wiki/concepts/progressive-skill-disclosure.md +0 -17
- package/vault/wiki/concepts/provider-native-prompting.md +0 -203
- package/vault/wiki/concepts/quality-signal-sentrux.md +0 -37
- package/vault/wiki/concepts/repo-map-ranking.md +0 -42
- package/vault/wiki/concepts/result-monad-error-handling.md +0 -47
- package/vault/wiki/concepts/safety-defense-in-depth.md +0 -83
- package/vault/wiki/concepts/sandbox-os-enforcement.md +0 -18
- package/vault/wiki/concepts/selective-debate-routing.md +0 -70
- package/vault/wiki/concepts/self-evolving-harness.md +0 -60
- package/vault/wiki/concepts/sentrux-mcp-integration.md +0 -36
- package/vault/wiki/concepts/sentrux-rules-engine.md +0 -49
- package/vault/wiki/concepts/shell-pattern-compression.md +0 -24
- package/vault/wiki/concepts/skill-first-architecture.md +0 -166
- package/vault/wiki/concepts/structured-compaction.md +0 -78
- package/vault/wiki/concepts/subagent-orchestration.md +0 -17
- package/vault/wiki/concepts/subagent-worktree-isolation.md +0 -68
- package/vault/wiki/concepts/superpowers-methodology.md +0 -78
- package/vault/wiki/concepts/think-in-code.md +0 -73
- package/vault/wiki/concepts/ts-execution-layer.md +0 -100
- package/vault/wiki/concepts/typescript-strict-mode.md +0 -37
- package/vault/wiki/concepts/vcc-conversation-compaction-for-pi.md +0 -53
- package/vault/wiki/concepts/verification-drift-detection.md +0 -19
- package/vault/wiki/consensus/consensus-records.md +0 -58
- package/vault/wiki/decisions/2026-04-30-pi-lean-ctx-native.md +0 -122
- package/vault/wiki/decisions/2026-05-07-replace-lean-ctx-with-context-mode.md +0 -59
- package/vault/wiki/decisions/adr-008.md +0 -40
- package/vault/wiki/decisions/adr-009.md +0 -46
- package/vault/wiki/decisions/adr-010.md +0 -55
- package/vault/wiki/decisions/adr-011.md +0 -165
- package/vault/wiki/decisions/adr-012.md +0 -102
- package/vault/wiki/decisions/adr-013.md +0 -59
- package/vault/wiki/decisions/adr-014.md +0 -73
- package/vault/wiki/decisions/adr-015.md +0 -81
- package/vault/wiki/decisions/adr-016.md +0 -91
- package/vault/wiki/decisions/adr-017.md +0 -79
- package/vault/wiki/decisions/adr-018.md +0 -100
- package/vault/wiki/decisions/adr-019.md +0 -75
- package/vault/wiki/decisions/adr-020.md +0 -106
- package/vault/wiki/decisions/adr-021.md +0 -86
- package/vault/wiki/decisions/adr-022.md +0 -113
- package/vault/wiki/decisions/adr-023.md +0 -113
- package/vault/wiki/decisions/adr-024.md +0 -73
- package/vault/wiki/decisions/adr-025.md +0 -130
- package/vault/wiki/decisions/adr-026.md +0 -56
- package/vault/wiki/decisions/adr-027.md +0 -94
- package/vault/wiki/decisions/colocate-wiki.md +0 -34
- package/vault/wiki/entities/Anders Hejlsberg.md +0 -29
- package/vault/wiki/entities/Anthropic.md +0 -17
- package/vault/wiki/entities/Augment Code.md +0 -49
- package/vault/wiki/entities/Bjarne Stroustrup.md +0 -26
- package/vault/wiki/entities/Bolt.new (StackBlitz).md +0 -39
- package/vault/wiki/entities/Boris Cherny.md +0 -11
- package/vault/wiki/entities/Claude Code.md +0 -19
- package/vault/wiki/entities/Dennis Ritchie.md +0 -26
- package/vault/wiki/entities/Emergent Labs.md +0 -32
- package/vault/wiki/entities/Google Cloud.md +0 -16
- package/vault/wiki/entities/Guido van Rossum.md +0 -28
- package/vault/wiki/entities/Ken Thompson.md +0 -28
- package/vault/wiki/entities/Lee et al.md +0 -16
- package/vault/wiki/entities/Linus Torvalds.md +0 -28
- package/vault/wiki/entities/Lovable (company).md +0 -40
- package/vault/wiki/entities/Martin Fowler.md +0 -16
- package/vault/wiki/entities/Meng et al.md +0 -16
- package/vault/wiki/entities/OpenAI.md +0 -16
- package/vault/wiki/entities/Rocket.new.md +0 -38
- package/vault/wiki/entities/VILA-Lab.md +0 -15
- package/vault/wiki/entities/autodev-codebase.md +0 -18
- package/vault/wiki/entities/ck-tool.md +0 -59
- package/vault/wiki/entities/codesearch.md +0 -18
- package/vault/wiki/entities/disler-indydevdan.md +0 -33
- package/vault/wiki/entities/gsd-get-shit-done.md +0 -56
- package/vault/wiki/entities/javascript-runtimes.md +0 -48
- package/vault/wiki/entities/jesse-vincent.md +0 -38
- package/vault/wiki/entities/lean-ctx.md +0 -32
- package/vault/wiki/entities/opendev.md +0 -41
- package/vault/wiki/entities/ops-codegraph-tool.md +0 -18
- package/vault/wiki/entities/pi-coding-agent.md +0 -53
- package/vault/wiki/entities/sentrux.md +0 -54
- package/vault/wiki/entities/vgrep-tool.md +0 -57
- package/vault/wiki/entities/vitest.md +0 -41
- package/vault/wiki/flows/harness-wiki-pipeline.md +0 -204
- package/vault/wiki/hot.md +0 -932
- package/vault/wiki/index.md +0 -437
- package/vault/wiki/log.md +0 -422
- package/vault/wiki/meta/dashboard.md +0 -30
- package/vault/wiki/meta/lint-report-2026-04-30.md +0 -86
- package/vault/wiki/meta/lint-report-2026-05-02.md +0 -251
- package/vault/wiki/meta/overview.canvas +0 -43
- package/vault/wiki/modules/adversarial-verification.md +0 -57
- package/vault/wiki/modules/automated-observability.md +0 -54
- package/vault/wiki/modules/bench.md +0 -20
- package/vault/wiki/modules/extensions.md +0 -23
- package/vault/wiki/modules/grounding-checkpoints.md +0 -62
- package/vault/wiki/modules/harness-implementation-plan.md +0 -345
- package/vault/wiki/modules/harness-wiki-skill-mapping.md +0 -135
- package/vault/wiki/modules/harness.md +0 -86
- package/vault/wiki/modules/persistent-memory.md +0 -85
- package/vault/wiki/modules/schema-orchestration.md +0 -68
- package/vault/wiki/modules/skills.md +0 -27
- package/vault/wiki/modules/spec-hardening.md +0 -58
- package/vault/wiki/modules/structured-planning.md +0 -53
- package/vault/wiki/modules/think-in-code-enforcement.md +0 -153
- package/vault/wiki/modules/wiki-query-interface.md +0 -64
- package/vault/wiki/overview.md +0 -51
- package/vault/wiki/questions/Research-pi-vs-claude-code-agentic-orchestration-pipeline.md +0 -87
- package/vault/wiki/questions/Research-sentrux-dev.md +0 -123
- package/vault/wiki/questions/Research-superpowers-skill-for-agentic-coding-agents.md +0 -164
- package/vault/wiki/questions/Research: Augment Code Context Engine.md +0 -244
- package/vault/wiki/questions/Research: Automating Software Engineering - Lovable, Bolt, Emergent, Rocket.md +0 -112
- package/vault/wiki/questions/Research: Claude Code State-of-the-Art Harness Improvements.md +0 -209
- package/vault/wiki/questions/Research: Codex State-of-the-Art Harness Improvements.md +0 -99
- package/vault/wiki/questions/Research: Engineering Workflows of Legendary Programmers and AI Harness Mapping.md +0 -107
- package/vault/wiki/questions/Research: Fallow Codebase Intelligence Harness Integration.md +0 -72
- package/vault/wiki/questions/Research: Gemini CLI SOTA Harness Integration.md +0 -166
- package/vault/wiki/questions/Research: GitHub Issues as Harness Spec Storage.md +0 -188
- package/vault/wiki/questions/Research: Google Antigravity Harness Integration.md +0 -120
- package/vault/wiki/questions/Research: Meta-Agent Context Drift Detection.md +0 -236
- package/vault/wiki/questions/Research: Model-Adaptive Agent Harness Design.md +0 -95
- package/vault/wiki/questions/Research: Model-Specific Prompting Guides.md +0 -165
- package/vault/wiki/questions/Research: Prompt Renderer for Multi-Model Agent Harness.md +0 -216
- package/vault/wiki/questions/Research: Skill-First Harness Architecture.md +0 -91
- package/vault/wiki/questions/Research: TypeScript Best Practices and Codebase Structure.md +0 -88
- package/vault/wiki/questions/Research: TypeScript Execution Layer for Agent Tool Calling.md +0 -81
- package/vault/wiki/questions/Research: claude-mem over Obsidian for Harness Layer.md +0 -71
- 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
- package/vault/wiki/questions/Research: context-mode vs lean-ctx.md +0 -72
- package/vault/wiki/questions/Research: cursor.sh Harness Innovations.md +0 -92
- package/vault/wiki/questions/Research: executor.sh Harness Integration.md +0 -170
- package/vault/wiki/questions/Research: how GSD fits into our coding harness setup.md +0 -97
- 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
- package/vault/wiki/questions/Research: pi-vcc.md +0 -113
- package/vault/wiki/questions/Research: semantic code search tools.md +0 -69
- package/vault/wiki/questions/Research: vcc extension for pi coding agent.md +0 -73
- package/vault/wiki/questions/how-to-enable-semantic-code-search-now.md +0 -111
- package/vault/wiki/questions/mvp-implementation-blueprint.md +0 -552
- package/vault/wiki/questions/research-agent-first-codebase-exploration.md +0 -199
- package/vault/wiki/questions/research-agentic-coding-harness-latest-papers.md +0 -142
- package/vault/wiki/questions/research-gitingest-gitreverse-integration.md +0 -100
- package/vault/wiki/questions/research-wozcode-token-reduction.md +0 -67
- package/vault/wiki/questions/resolved-context-pruning-inplace-vs-restart.md +0 -95
- package/vault/wiki/questions/resolved-context-window-economics.md +0 -167
- package/vault/wiki/questions/resolved-imad-debate-gating-transfer.md +0 -126
- package/vault/wiki/questions/resolved-mcp-tool-preference.md +0 -112
- package/vault/wiki/questions/resolved-small-model-meta-agents.md +0 -107
- package/vault/wiki/questions/resolved-treesitter-dynamic-languages.md +0 -95
- package/vault/wiki/sources/Auggie Context MCP Server.md +0 -63
- package/vault/wiki/sources/Augment Code Codacy AI Giants.md +0 -61
- package/vault/wiki/sources/Augment Code MCP SiliconAngle.md +0 -49
- package/vault/wiki/sources/Augment Code WorkOS ERC 2025.md +0 -55
- package/vault/wiki/sources/Augment Context Engine Official.md +0 -71
- package/vault/wiki/sources/Augment SWE-bench Agent GitHub.md +0 -74
- package/vault/wiki/sources/Augment SWE-bench Pro Blog.md +0 -58
- package/vault/wiki/sources/Source: AgentBus Jinja2 Prompt Pipelines.md +0 -75
- package/vault/wiki/sources/Source: Arxiv /342/200/224 Don't Break the Cache.md" +0 -85
- package/vault/wiki/sources/Source: Augment - Harness Engineering for AI Coding Agents.md +0 -58
- package/vault/wiki/sources/Source: Blake Crosley Agent Architecture Guide.md +0 -100
- package/vault/wiki/sources/Source: Bolt.new Architecture & Case Study.md +0 -75
- package/vault/wiki/sources/Source: Build-Time Prompt Compilation Architecture.md +0 -107
- package/vault/wiki/sources/Source: Claude API Agent Skills Overview.md +0 -70
- package/vault/wiki/sources/Source: Gemini CLI Changelogs.md +0 -88
- package/vault/wiki/sources/Source: Google Blog - Gemini CLI Announcement.md +0 -57
- package/vault/wiki/sources/Source: Google Gemini CLI Architecture Docs.md +0 -53
- package/vault/wiki/sources/Source: LangChain - Anatomy of Agent Harness.md +0 -65
- package/vault/wiki/sources/Source: Lovable Architecture & Clone Analysis.md +0 -83
- package/vault/wiki/sources/Source: Martin Fowler - Harness Engineering.md +0 -70
- package/vault/wiki/sources/Source: OpenAI Harness Engineering Five Principles.md +0 -58
- package/vault/wiki/sources/Source: OpenAI Harness Engineering /342/200/224 0 Lines of Human Code.md" +0 -101
- package/vault/wiki/sources/Source: OpenDev /342/200/224 Building AI Coding Agents for the Terminal.md" +0 -100
- package/vault/wiki/sources/Source: Render AI Coding Agents Benchmark 2025.md +0 -53
- package/vault/wiki/sources/Source: Rocket.new /342/200/224 Vibe Solutioning Platform.md" +0 -70
- package/vault/wiki/sources/Source: SwirlAI Agent Skills Progressive Disclosure.md +0 -71
- package/vault/wiki/sources/Source: TianPan Prompt Caching Architecture.md +0 -89
- package/vault/wiki/sources/Source: Vercel Labs agent-browser.md +0 -155
- package/vault/wiki/sources/Source: browser-harness CDP Harness.md +0 -126
- package/vault/wiki/sources/agent-drift-academic-paper.md +0 -79
- package/vault/wiki/sources/aider-repomap-tree-sitter.md +0 -42
- package/vault/wiki/sources/anthropic-compaction-api.md +0 -58
- package/vault/wiki/sources/anthropic-effective-harnesses.md +0 -42
- package/vault/wiki/sources/anthropic-prompt-best-practices.md +0 -100
- package/vault/wiki/sources/anthropic2026-harness-design.md +0 -63
- package/vault/wiki/sources/barrel-files-tkdodo.md +0 -38
- package/vault/wiki/sources/birth-of-unix-kernighan-interview.md +0 -57
- package/vault/wiki/sources/bockeler2026-harness-engineering.md +0 -69
- package/vault/wiki/sources/cast-code-chunking-paper.md +0 -50
- package/vault/wiki/sources/ck-semantic-search.md +0 -78
- package/vault/wiki/sources/claude-code-architecture-karaxai-2026.md +0 -71
- package/vault/wiki/sources/claude-code-architecture-qubytes-2026.md +0 -50
- package/vault/wiki/sources/claude-code-architecture-vila-lab-2026.md +0 -64
- package/vault/wiki/sources/claude-code-security-architecture-penligent-2026.md +0 -70
- package/vault/wiki/sources/claude-context-editing-docs.md +0 -13
- package/vault/wiki/sources/cloudflare-codemode.md +0 -63
- package/vault/wiki/sources/code-chunk-library-supermemory.md +0 -63
- package/vault/wiki/sources/codeact-apple-2024.md +0 -62
- package/vault/wiki/sources/codex-dsc-rfc-8573.md +0 -41
- package/vault/wiki/sources/codex-open-source-agent-2026.md +0 -110
- package/vault/wiki/sources/coir-code-retrieval-benchmark.md +0 -51
- package/vault/wiki/sources/colinmcnamara-context-optimization-codemode.md +0 -48
- package/vault/wiki/sources/context-folding-paper.md +0 -61
- package/vault/wiki/sources/context-mode-website.md +0 -63
- package/vault/wiki/sources/cursor-agent-best-practices-2026.md +0 -62
- package/vault/wiki/sources/cursor-fork-29b-2025.md +0 -50
- package/vault/wiki/sources/cursor-harness-april-2026.md +0 -76
- package/vault/wiki/sources/cursor-instant-apply-2024.md +0 -45
- package/vault/wiki/sources/cursor-shadow-workspace-2024.md +0 -52
- package/vault/wiki/sources/cursor-shipped-coding-agent-2026.md +0 -53
- package/vault/wiki/sources/cursor-vs-antigravity-2026.md +0 -51
- package/vault/wiki/sources/disler-pi-vs-claude-code.md +0 -69
- package/vault/wiki/sources/distill-deterministic-context-compression.md +0 -53
- package/vault/wiki/sources/embedding-models-benchmark-supermemory-2025.md +0 -48
- package/vault/wiki/sources/executor-rhyssullivan.md +0 -122
- package/vault/wiki/sources/fallow-rs-codebase-intelligence.md +0 -125
- package/vault/wiki/sources/fan2025-imad.md +0 -60
- package/vault/wiki/sources/forgecode-gpt5-agent-improvements.md +0 -63
- package/vault/wiki/sources/gemini-3-prompting-guide.md +0 -78
- package/vault/wiki/sources/gh-cli-sub-issue-rfc.md +0 -50
- package/vault/wiki/sources/gh-sub-issue-extension.md +0 -72
- package/vault/wiki/sources/github-fork-issues-discussion.md +0 -44
- package/vault/wiki/sources/github-issue-dependencies-docs.md +0 -49
- package/vault/wiki/sources/github-sub-issues-docs.md +0 -51
- package/vault/wiki/sources/gitingest.md +0 -91
- package/vault/wiki/sources/gitreverse.md +0 -63
- package/vault/wiki/sources/google-antigravity-official-blog.md +0 -47
- package/vault/wiki/sources/google-antigravity-wikipedia.md +0 -53
- package/vault/wiki/sources/gsd-codecentric-deep-dive.md +0 -57
- package/vault/wiki/sources/gsd-github-repo.md +0 -51
- package/vault/wiki/sources/gsd-hn-discussion.md +0 -59
- package/vault/wiki/sources/guido-python-design-philosophy.md +0 -56
- package/vault/wiki/sources/hejlsberg-7-learnings.md +0 -48
- package/vault/wiki/sources/ironclaw-drift-monitor.md +0 -80
- package/vault/wiki/sources/langsight-loop-detection.md +0 -80
- package/vault/wiki/sources/leanctx-website.md +0 -69
- package/vault/wiki/sources/lee2026-meta-harness.md +0 -59
- package/vault/wiki/sources/linux-kernel-coding-workflow.md +0 -50
- package/vault/wiki/sources/lou2026-autoharness.md +0 -53
- package/vault/wiki/sources/martin-fowler-harness-engineering.md +0 -73
- package/vault/wiki/sources/mcp-architecture-docs.md +0 -13
- package/vault/wiki/sources/meng2026-agent-harness-survey.md +0 -79
- package/vault/wiki/sources/mindstudio-four-agent-types.md +0 -68
- package/vault/wiki/sources/ms-chat-history-management.md +0 -13
- package/vault/wiki/sources/openai-prompt-guidance.md +0 -104
- package/vault/wiki/sources/openclaw-session-pruning.md +0 -13
- package/vault/wiki/sources/opencode-dcp.md +0 -13
- package/vault/wiki/sources/opendev-arxiv-2603.05344v1.md +0 -79
- package/vault/wiki/sources/openhands-platform.md +0 -39
- package/vault/wiki/sources/oss-guide-codebase-exploration.md +0 -53
- package/vault/wiki/sources/pi-compaction-extensions-ecosystem.md +0 -102
- package/vault/wiki/sources/pi-context-prune-github-repo.md +0 -38
- package/vault/wiki/sources/pi-mono-compaction-docs.md +0 -38
- package/vault/wiki/sources/pi-omni-compact-github-repo.md +0 -50
- package/vault/wiki/sources/pi-rtk-optimizer-github-repo.md +0 -45
- package/vault/wiki/sources/pi-vcc-github-repo.md +0 -69
- package/vault/wiki/sources/pi-vscode-marketplace.md +0 -41
- package/vault/wiki/sources/pi-vscode-model-provider-marketplace.md +0 -39
- package/vault/wiki/sources/py-tree-sitter.md +0 -13
- package/vault/wiki/sources/sentrux-dev-landing.md +0 -40
- package/vault/wiki/sources/sentrux-docs-pro-architecture.md +0 -75
- package/vault/wiki/sources/sentrux-docs-quality-signal.md +0 -46
- package/vault/wiki/sources/sentrux-docs-root-cause-metrics.md +0 -57
- package/vault/wiki/sources/sentrux-docs-rules-engine.md +0 -58
- package/vault/wiki/sources/sentrux-github-repo.md +0 -56
- package/vault/wiki/sources/superpowers-github-repo.md +0 -56
- package/vault/wiki/sources/superpowers-release-blog.md +0 -54
- package/vault/wiki/sources/superpowers-termdock-analysis.md +0 -45
- package/vault/wiki/sources/swe-agent-aci.md +0 -42
- package/vault/wiki/sources/swe-bench.md +0 -45
- package/vault/wiki/sources/swe-pruner-context-pruning.md +0 -13
- package/vault/wiki/sources/think-in-code-blog.md +0 -48
- package/vault/wiki/sources/tree-sitter-docs.md +0 -13
- package/vault/wiki/sources/ts-best-practices-2025-devto.md +0 -42
- package/vault/wiki/sources/ts-folder-structure-mingyang.md +0 -58
- package/vault/wiki/sources/ts-monorepo-koerselman.md +0 -44
- package/vault/wiki/sources/ts-result-error-handling-kkalamarski.md +0 -52
- package/vault/wiki/sources/ts-runtimes-comparison-betterstack.md +0 -42
- package/vault/wiki/sources/ts-strict-mode-rishikc.md +0 -43
- package/vault/wiki/sources/unix-philosophy.md +0 -48
- package/vault/wiki/sources/vectara-chunking-vs-embedding-naacl2025.md +0 -39
- package/vault/wiki/sources/vectara-guardian-agents.md +0 -79
- package/vault/wiki/sources/vgrep-semantic-search.md +0 -76
- package/vault/wiki/sources/vitest-official.md +0 -41
- package/vault/wiki/sources/vscode-pi-community-extension.md +0 -40
- package/vault/wiki/sources/wozcode.md +0 -79
|
@@ -1,11 +1,24 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: Full harness bootstrap —
|
|
3
|
-
argument-hint: "[--skip-
|
|
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:
|
|
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
|
|
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
|
-
|
|
35
|
+
## Step 0.5 — Graphify Setup
|
|
25
36
|
|
|
26
|
-
|
|
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
|
-
#
|
|
33
|
-
|
|
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
|
-
#
|
|
43
|
-
if
|
|
44
|
-
|
|
45
|
-
|
|
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
|
-
|
|
48
|
+
echo "! Graphify not installed"
|
|
49
|
+
GRAPHIFY_INSTALLED=false
|
|
56
50
|
fi
|
|
57
|
-
```
|
|
58
51
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
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
|
-
|
|
56
|
+
**Present to user:**
|
|
68
57
|
|
|
69
|
-
### Case
|
|
58
|
+
### Case A: Graphify installed + graph exists
|
|
59
|
+
> "Graphify ready. Existing graph: `graphify-out/`. Run `graphify . --update` to refresh."
|
|
70
60
|
|
|
71
|
-
|
|
61
|
+
### Case B: Graphify installed + no graph
|
|
62
|
+
> "Graphify installed but no graph built yet. Build one now?"
|
|
72
63
|
|
|
73
|
-
### Case
|
|
64
|
+
### Case C: Graphify not installed
|
|
65
|
+
> "Graphify not found. Install: `pip install graphifyy && graphify install`. Install now?"
|
|
74
66
|
|
|
75
|
-
|
|
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
|
-
|
|
70
|
+
## Step 1 — Build Knowledge Graph
|
|
78
71
|
|
|
79
|
-
|
|
72
|
+
```bash
|
|
73
|
+
# Install if needed
|
|
74
|
+
if [ "$GRAPHIFY_INSTALLED" != "true" ]; then
|
|
75
|
+
pip install graphifyy && graphify install
|
|
76
|
+
fi
|
|
80
77
|
|
|
81
|
-
|
|
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
|
-
|
|
84
|
-
|
|
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
|
-
|
|
88
|
+
# Quick stats
|
|
89
|
+
echo "Graph built. Output: graphify-out/"
|
|
90
|
+
ls graphify-out/
|
|
91
|
+
```
|
|
90
92
|
|
|
91
|
-
|
|
93
|
+
Read and summarize `graphify-out/GRAPH_REPORT.md` — show god nodes and surprising connections.
|
|
92
94
|
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
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 —
|
|
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.
|
|
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.
|
|
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.
|
|
326
|
+
### 2.5 — biome (Lint + Format Gate)
|
|
356
327
|
|
|
357
328
|
```bash
|
|
358
|
-
if ! command -v
|
|
359
|
-
npm install -g
|
|
329
|
+
if ! command -v biome &>/dev/null || [ "$FORCE" = "true" ]; then
|
|
330
|
+
npm install -g @biomejs/biome
|
|
360
331
|
fi
|
|
361
332
|
```
|
|
362
333
|
|
|
363
|
-
|
|
334
|
+
Check if project already has biome config:
|
|
364
335
|
```bash
|
|
365
|
-
|
|
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
|
-
|
|
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.
|
|
341
|
+
### 2.6 — ast-grep (AST-Aware Structural Code Search)
|
|
374
342
|
|
|
375
343
|
```bash
|
|
376
|
-
if ! command -v
|
|
377
|
-
npm install -g @
|
|
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
|
-
|
|
349
|
+
Verify:
|
|
382
350
|
```bash
|
|
383
|
-
|
|
351
|
+
sg --version && echo "✓ ast-grep installed" || echo "✗ ast-grep install failed"
|
|
384
352
|
```
|
|
385
353
|
|
|
386
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
#
|
|
438
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
592
|
+
Create a minimal `AGENTS.md` in the project root for agent onboarding:
|
|
467
593
|
|
|
468
594
|
```markdown
|
|
469
|
-
# ultimate-pi: Agentic Harness
|
|
595
|
+
# ultimate-pi: Agentic Harness
|
|
470
596
|
|
|
471
|
-
|
|
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
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
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
|
-
##
|
|
610
|
+
## Graphify-First Workflow
|
|
493
611
|
|
|
494
|
-
|
|
495
|
-
-
|
|
496
|
-
|
|
497
|
-
|
|
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
|
-
##
|
|
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
|
-
|
|
510
|
-
-
|
|
511
|
-
-
|
|
512
|
-
-
|
|
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
|
|
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
|
-
#
|
|
534
|
-
|
|
535
|
-
ls
|
|
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
|
-
#
|
|
542
|
-
|
|
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 —
|
|
661
|
+
## Step 6 — Graph Knowledge Report Bootstrap
|
|
549
662
|
|
|
550
|
-
|
|
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
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
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
|
-
|
|
|
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 | ✓/✗ |
|
|
602
|
-
|
|
|
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
|
|
609
|
-
3. If
|
|
610
|
-
4. If
|
|
611
|
-
5.
|
|
612
|
-
6.
|
|
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
|
-
- **
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
|
636
|
-
|
|
|
637
|
-
|
|
|
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
|
-
|
|
|
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.
|
|
644
|
-
| No internet | Block for tool installs. Continue for
|
|
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-
|
|
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
|
-
|
|
758
|
+
|