ultimate-pi 0.1.2 → 0.1.3
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/ck-search/SKILL.md +99 -0
- package/.agents/skills/defuddle/SKILL.md +90 -0
- package/.agents/skills/find-skills/SKILL.md +142 -0
- package/.agents/skills/firecrawl/SKILL.md +150 -0
- package/.agents/skills/firecrawl/rules/install.md +82 -0
- package/.agents/skills/firecrawl/rules/security.md +26 -0
- package/.agents/skills/firecrawl-agent/SKILL.md +57 -0
- package/.agents/skills/firecrawl-build-interact/SKILL.md +67 -0
- package/.agents/skills/firecrawl-build-onboarding/SKILL.md +102 -0
- package/.agents/skills/firecrawl-build-onboarding/references/auth-flow.md +39 -0
- package/.agents/skills/firecrawl-build-onboarding/references/project-setup.md +20 -0
- package/.agents/skills/firecrawl-build-onboarding/references/sdk-installation.md +17 -0
- package/.agents/skills/firecrawl-build-scrape/SKILL.md +68 -0
- package/.agents/skills/firecrawl-build-search/SKILL.md +68 -0
- package/.agents/skills/firecrawl-crawl/SKILL.md +58 -0
- package/.agents/skills/firecrawl-download/SKILL.md +69 -0
- package/.agents/skills/firecrawl-interact/SKILL.md +83 -0
- package/.agents/skills/firecrawl-map/SKILL.md +50 -0
- package/.agents/skills/firecrawl-parse/SKILL.md +61 -0
- package/.agents/skills/firecrawl-scrape/SKILL.md +68 -0
- package/.agents/skills/firecrawl-search/SKILL.md +59 -0
- package/.agents/skills/obsidian-bases/SKILL.md +299 -0
- package/.agents/skills/obsidian-markdown/SKILL.md +237 -0
- package/.agents/skills/posthog-analyst/SKILL.md +306 -0
- package/.agents/skills/posthog-analyst/evals/evals.json +23 -0
- package/.agents/skills/wiki/SKILL.md +215 -0
- package/.agents/skills/wiki/references/css-snippets.md +122 -0
- package/.agents/skills/wiki/references/frontmatter.md +107 -0
- package/.agents/skills/wiki/references/git-setup.md +58 -0
- package/.agents/skills/wiki/references/mcp-setup.md +149 -0
- package/.agents/skills/wiki/references/modes.md +259 -0
- package/.agents/skills/wiki/references/plugins.md +96 -0
- package/.agents/skills/wiki/references/rest-api.md +124 -0
- package/.agents/skills/wiki-autoresearch/SKILL.md +211 -0
- package/.agents/skills/wiki-autoresearch/references/program.md +75 -0
- package/.agents/skills/wiki-fold/SKILL.md +204 -0
- package/.agents/skills/wiki-fold/references/fold-template.md +133 -0
- package/.agents/skills/wiki-ingest/SKILL.md +288 -0
- package/.agents/skills/wiki-lint/SKILL.md +183 -0
- package/.agents/skills/wiki-query/SKILL.md +176 -0
- package/.agents/skills/wiki-save/SKILL.md +128 -0
- package/.ckignore +41 -0
- package/.env.example +9 -0
- package/.github/workflows/lint.yml +33 -0
- package/.github/workflows/publish-github-packages.yml +35 -0
- package/.github/workflows/publish-npm.yml +1 -1
- package/.pi/SYSTEM.md +107 -40
- package/.pi/agents/pi-pi/agent-expert.md +205 -0
- package/.pi/agents/pi-pi/cli-expert.md +47 -0
- package/.pi/agents/pi-pi/config-expert.md +67 -0
- package/.pi/agents/pi-pi/ext-expert.md +53 -0
- package/.pi/agents/pi-pi/keybinding-expert.md +123 -0
- package/.pi/agents/pi-pi/pi-orchestrator.md +103 -0
- package/.pi/agents/pi-pi/prompt-expert.md +83 -0
- package/.pi/agents/pi-pi/skill-expert.md +52 -0
- package/.pi/agents/pi-pi/theme-expert.md +46 -0
- package/.pi/agents/pi-pi/tui-expert.md +100 -0
- package/.pi/agents/rethink.md +140 -0
- package/.pi/agents/wiki-ingest.md +67 -0
- package/.pi/agents/wiki-lint.md +75 -0
- package/.pi/auto-commit.json +20 -0
- package/.pi/extensions/banner.png +0 -0
- package/.pi/extensions/ck-enforce.ts +216 -0
- package/.pi/extensions/custom-footer.ts +308 -0
- package/.pi/extensions/custom-header.ts +116 -0
- package/.pi/extensions/dotenv-loader.ts +170 -0
- package/.pi/internal/cursor-sdk-transcript-parser.ts +59 -0
- package/.pi/model-router.json +95 -0
- package/.pi/npm/.gitignore +2 -0
- package/.pi/prompts/git-sync.md +124 -0
- package/.pi/prompts/harness-setup.md +509 -0
- package/.pi/prompts/save.md +16 -0
- package/.pi/prompts/wiki-autoresearch.md +19 -0
- package/.pi/prompts/wiki.md +23 -0
- package/.pi/providers/cursor-sdk-provider.test.mjs +476 -0
- package/.pi/providers/cursor-sdk-provider.ts +1085 -0
- package/.pi/settings.json +14 -4
- package/.pi/skills/agent-router/SKILL.md +174 -0
- package/.pi/sounds/alert/1-kaching-track.mp3 +0 -0
- package/.pi/sounds/error/1-ksi-wth-track.mp3 +0 -0
- package/.pi/sounds/error/2-smash-track.mp3 +0 -0
- package/.pi/sounds/error/3-buzzer-track.mp3 +0 -0
- package/.pi/sounds/notification/1-soft-notification-track.mp3 +0 -0
- package/.pi/sounds/project-sounds.json +25 -0
- package/.pi/sounds/reminder/1-soft-notification-track.mp3 +0 -0
- package/.pi/sounds/success/1-tada-track.mp3 +0 -0
- package/.pi/sounds/success/2-jobs-done-track.mp3 +0 -0
- package/.pi/sounds/success/3-yay-track.mp3 +0 -0
- package/CONTRIBUTING.md +116 -0
- package/README.md +32 -39
- package/biome.json +34 -0
- package/firecrawl/.env.template +58 -0
- package/firecrawl/README.md +49 -0
- package/firecrawl/docker-compose.yaml +201 -0
- package/firecrawl/searxng/searxng.env +3 -0
- package/firecrawl/searxng/settings.yml +85 -0
- package/lefthook.yml +8 -0
- package/package.json +55 -24
- package/vault/AGENTS.md +37 -0
- package/vault/wiki/_templates/comparison.md +39 -0
- package/vault/wiki/_templates/concept.md +40 -0
- package/vault/wiki/_templates/decision.md +21 -0
- package/vault/wiki/_templates/entity.md +32 -0
- package/vault/wiki/_templates/flow.md +14 -0
- package/vault/wiki/_templates/module.md +18 -0
- package/vault/wiki/_templates/question.md +31 -0
- package/vault/wiki/_templates/source.md +39 -0
- package/vault/wiki/concepts/AST-Aware Code Chunking.md +44 -0
- package/vault/wiki/concepts/Build-Time Prompt Compilation.md +107 -0
- package/vault/wiki/concepts/Context Engine (AI Coding).md +47 -0
- package/vault/wiki/concepts/Context-Aware System Reminders.md +61 -0
- package/vault/wiki/concepts/Contextualized Text Embedding.md +42 -0
- package/vault/wiki/concepts/Contractor vs Employee AI Model.md +55 -0
- package/vault/wiki/concepts/Dual-Model Agent Architecture.md +65 -0
- package/vault/wiki/concepts/Late Chunking vs Early Chunking.md +43 -0
- package/vault/wiki/concepts/Majority Vote Ensembling.md +68 -0
- package/vault/wiki/concepts/Meta-Harness.md +16 -0
- package/vault/wiki/concepts/Multi-Agent AI Coding Architecture.md +75 -0
- package/vault/wiki/concepts/Prompt Enhancement.md +90 -0
- package/vault/wiki/concepts/Prompt Renderer.md +89 -0
- package/vault/wiki/concepts/Semantic Codebase Indexing.md +67 -0
- package/vault/wiki/concepts/additive-config-hierarchy.md +16 -0
- package/vault/wiki/concepts/agent-artifacts-verifiable-deliverables.md +71 -0
- package/vault/wiki/concepts/agent-browser-browser-automation.md +99 -0
- package/vault/wiki/concepts/agent-codebase-interface.md +43 -0
- package/vault/wiki/concepts/agent-harness-architecture.md +67 -0
- package/vault/wiki/concepts/agent-loop-detection-patterns.md +133 -0
- package/vault/wiki/concepts/agent-search-enforcement.md +126 -0
- package/vault/wiki/concepts/agent-skills-ecosystem.md +74 -0
- package/vault/wiki/concepts/agent-skills-pattern.md +68 -0
- package/vault/wiki/concepts/agentic-harness-context-enforcement.md +91 -0
- package/vault/wiki/concepts/agentic-harness.md +34 -0
- package/vault/wiki/concepts/agentic-orchestration-pipeline.md +56 -0
- package/vault/wiki/concepts/agentic-search-no-embeddings.md +18 -0
- package/vault/wiki/concepts/anthropic-context-engineering.md +13 -0
- package/vault/wiki/concepts/antigravity-agent-first-architecture.md +61 -0
- package/vault/wiki/concepts/ast-compression.md +19 -0
- package/vault/wiki/concepts/ast-truncation.md +66 -0
- package/vault/wiki/concepts/barrel-files.md +37 -0
- package/vault/wiki/concepts/browser-harness-agent.md +41 -0
- package/vault/wiki/concepts/browser-subagent-visual-verification.md +82 -0
- package/vault/wiki/concepts/codebase-intelligence-ecosystem-comparison.md +192 -0
- package/vault/wiki/concepts/codebase-intelligence-harness-integration.md +161 -0
- package/vault/wiki/concepts/codebase-to-context-ingestion.md +46 -0
- package/vault/wiki/concepts/codex-harness-innovations.md +147 -0
- package/vault/wiki/concepts/consensus-debate-flow.md +17 -0
- package/vault/wiki/concepts/consensus-debate.md +206 -0
- package/vault/wiki/concepts/content-addressed-spec-identity.md +166 -0
- package/vault/wiki/concepts/context-anxiety.md +57 -0
- package/vault/wiki/concepts/context-compression-techniques.md +19 -0
- package/vault/wiki/concepts/context-continuity.md +22 -0
- package/vault/wiki/concepts/context-drift-in-agents.md +106 -0
- package/vault/wiki/concepts/context-engineering.md +62 -0
- package/vault/wiki/concepts/context-folding.md +67 -0
- package/vault/wiki/concepts/context-mode.md +38 -0
- package/vault/wiki/concepts/cursor-harness-innovations.md +107 -0
- package/vault/wiki/concepts/deterministic-session-compaction.md +79 -0
- package/vault/wiki/concepts/drift-detection-unified.md +296 -0
- package/vault/wiki/concepts/execution-feedback-loop.md +46 -0
- package/vault/wiki/concepts/feedforward-feedback-harness.md +60 -0
- package/vault/wiki/concepts/five-root-cause-metrics-sentrux.md +40 -0
- package/vault/wiki/concepts/fork-safe-spec-storage.md +89 -0
- package/vault/wiki/concepts/fts5-sandbox.md +19 -0
- package/vault/wiki/concepts/fuzzy-edit-matching.md +71 -0
- package/vault/wiki/concepts/gemini-cli-architecture.md +104 -0
- package/vault/wiki/concepts/generator-evaluator-architecture.md +64 -0
- package/vault/wiki/concepts/guardian-agent-pattern.md +67 -0
- package/vault/wiki/concepts/harness-configuration-layers.md +89 -0
- package/vault/wiki/concepts/harness-control-frameworks.md +155 -0
- package/vault/wiki/concepts/harness-engineering-first-principles.md +90 -0
- package/vault/wiki/concepts/harness-h-formalism.md +53 -0
- package/vault/wiki/concepts/hybrid-code-search.md +61 -0
- package/vault/wiki/concepts/inline-post-edit-validation.md +112 -0
- package/vault/wiki/concepts/legendary-engineering-patterns-harness.md +110 -0
- package/vault/wiki/concepts/lifecycle-hooks.md +94 -0
- package/vault/wiki/concepts/mcp-tool-routing.md +102 -0
- package/vault/wiki/concepts/memory-system-of-record-vs-ephemeral-cache.md +47 -0
- package/vault/wiki/concepts/meta-agent-context-pruning.md +151 -0
- package/vault/wiki/concepts/model-adaptive-harness.md +122 -0
- package/vault/wiki/concepts/model-routing-agents.md +101 -0
- package/vault/wiki/concepts/monorepo-architecture.md +45 -0
- package/vault/wiki/concepts/multi-agent-specialization.md +61 -0
- package/vault/wiki/concepts/permission-subsystem.md +16 -0
- package/vault/wiki/concepts/pi-messenger-analysis.md +243 -0
- package/vault/wiki/concepts/pi-vscode-extension-landscape.md +37 -0
- package/vault/wiki/concepts/policy-engine-pattern.md +78 -0
- package/vault/wiki/concepts/progressive-disclosure-agents.md +53 -0
- package/vault/wiki/concepts/progressive-skill-disclosure.md +17 -0
- package/vault/wiki/concepts/provider-native-prompting.md +203 -0
- package/vault/wiki/concepts/quality-signal-sentrux.md +37 -0
- package/vault/wiki/concepts/repo-map-ranking.md +42 -0
- package/vault/wiki/concepts/result-monad-error-handling.md +47 -0
- package/vault/wiki/concepts/safety-defense-in-depth.md +83 -0
- package/vault/wiki/concepts/sandbox-os-enforcement.md +18 -0
- package/vault/wiki/concepts/selective-debate-routing.md +70 -0
- package/vault/wiki/concepts/self-evolving-harness.md +60 -0
- package/vault/wiki/concepts/sentrux-mcp-integration.md +36 -0
- package/vault/wiki/concepts/sentrux-rules-engine.md +49 -0
- package/vault/wiki/concepts/shell-pattern-compression.md +24 -0
- package/vault/wiki/concepts/skill-first-architecture.md +166 -0
- package/vault/wiki/concepts/structured-compaction.md +78 -0
- package/vault/wiki/concepts/subagent-orchestration.md +17 -0
- package/vault/wiki/concepts/subagent-worktree-isolation.md +68 -0
- package/vault/wiki/concepts/superpowers-methodology.md +78 -0
- package/vault/wiki/concepts/think-in-code.md +73 -0
- package/vault/wiki/concepts/ts-execution-layer.md +100 -0
- package/vault/wiki/concepts/typescript-strict-mode.md +37 -0
- package/vault/wiki/concepts/vcc-conversation-compaction-for-pi.md +51 -0
- package/vault/wiki/concepts/verification-drift-detection.md +19 -0
- package/vault/wiki/consensus/consensus-records.md +58 -0
- package/vault/wiki/decisions/2026-04-30-pi-lean-ctx-native.md +122 -0
- package/vault/wiki/decisions/adr-008.md +40 -0
- package/vault/wiki/decisions/adr-009.md +46 -0
- package/vault/wiki/decisions/adr-010.md +55 -0
- package/vault/wiki/decisions/adr-011.md +165 -0
- package/vault/wiki/decisions/adr-012.md +102 -0
- package/vault/wiki/decisions/adr-013.md +59 -0
- package/vault/wiki/decisions/adr-014.md +73 -0
- package/vault/wiki/decisions/adr-015.md +81 -0
- package/vault/wiki/decisions/adr-016.md +91 -0
- package/vault/wiki/decisions/adr-017.md +79 -0
- package/vault/wiki/decisions/adr-018.md +100 -0
- package/vault/wiki/decisions/adr-019.md +75 -0
- package/vault/wiki/decisions/adr-020.md +106 -0
- package/vault/wiki/decisions/adr-021.md +86 -0
- package/vault/wiki/decisions/adr-022.md +113 -0
- package/vault/wiki/decisions/adr-023.md +113 -0
- package/vault/wiki/decisions/adr-024.md +73 -0
- package/vault/wiki/decisions/adr-025.md +130 -0
- package/vault/wiki/decisions/adr-026.md +56 -0
- package/vault/wiki/decisions/colocate-wiki.md +34 -0
- package/vault/wiki/entities/Anders Hejlsberg.md +29 -0
- package/vault/wiki/entities/Anthropic.md +17 -0
- package/vault/wiki/entities/Augment Code.md +49 -0
- package/vault/wiki/entities/Bjarne Stroustrup.md +26 -0
- package/vault/wiki/entities/Bolt.new (StackBlitz).md +39 -0
- package/vault/wiki/entities/Boris Cherny.md +11 -0
- package/vault/wiki/entities/Claude Code.md +19 -0
- package/vault/wiki/entities/Dennis Ritchie.md +26 -0
- package/vault/wiki/entities/Emergent Labs.md +32 -0
- package/vault/wiki/entities/Google Cloud.md +16 -0
- package/vault/wiki/entities/Guido van Rossum.md +28 -0
- package/vault/wiki/entities/Ken Thompson.md +28 -0
- package/vault/wiki/entities/Lee et al.md +16 -0
- package/vault/wiki/entities/Linus Torvalds.md +28 -0
- package/vault/wiki/entities/Lovable (company).md +40 -0
- package/vault/wiki/entities/Martin Fowler.md +16 -0
- package/vault/wiki/entities/Meng et al.md +16 -0
- package/vault/wiki/entities/OpenAI.md +16 -0
- package/vault/wiki/entities/Rocket.new.md +38 -0
- package/vault/wiki/entities/VILA-Lab.md +15 -0
- package/vault/wiki/entities/autodev-codebase.md +18 -0
- package/vault/wiki/entities/ck-tool.md +59 -0
- package/vault/wiki/entities/codesearch.md +18 -0
- package/vault/wiki/entities/disler-indydevdan.md +33 -0
- package/vault/wiki/entities/gsd-get-shit-done.md +56 -0
- package/vault/wiki/entities/javascript-runtimes.md +48 -0
- package/vault/wiki/entities/jesse-vincent.md +38 -0
- package/vault/wiki/entities/lean-ctx.md +32 -0
- package/vault/wiki/entities/opendev.md +41 -0
- package/vault/wiki/entities/ops-codegraph-tool.md +18 -0
- package/vault/wiki/entities/pi-coding-agent.md +53 -0
- package/vault/wiki/entities/sentrux.md +54 -0
- package/vault/wiki/entities/vgrep-tool.md +57 -0
- package/vault/wiki/entities/vitest.md +41 -0
- package/vault/wiki/flows/harness-wiki-pipeline.md +204 -0
- package/vault/wiki/hot.md +932 -0
- package/vault/wiki/index.md +437 -0
- package/vault/wiki/log.md +418 -0
- package/vault/wiki/meta/dashboard.md +30 -0
- package/vault/wiki/meta/lint-report-2026-04-30.md +86 -0
- package/vault/wiki/meta/lint-report-2026-05-02.md +251 -0
- package/vault/wiki/meta/overview.canvas +43 -0
- package/vault/wiki/modules/adversarial-verification.md +57 -0
- package/vault/wiki/modules/automated-observability.md +54 -0
- package/vault/wiki/modules/bench.md +20 -0
- package/vault/wiki/modules/extensions.md +23 -0
- package/vault/wiki/modules/grounding-checkpoints.md +62 -0
- package/vault/wiki/modules/harness-implementation-plan.md +345 -0
- package/vault/wiki/modules/harness-wiki-skill-mapping.md +135 -0
- package/vault/wiki/modules/harness.md +86 -0
- package/vault/wiki/modules/persistent-memory.md +85 -0
- package/vault/wiki/modules/schema-orchestration.md +68 -0
- package/vault/wiki/modules/skills.md +27 -0
- package/vault/wiki/modules/spec-hardening.md +58 -0
- package/vault/wiki/modules/structured-planning.md +53 -0
- package/vault/wiki/modules/think-in-code-enforcement.md +153 -0
- package/vault/wiki/modules/wiki-query-interface.md +64 -0
- package/vault/wiki/overview.md +51 -0
- package/vault/wiki/questions/Research-pi-vs-claude-code-agentic-orchestration-pipeline.md +87 -0
- package/vault/wiki/questions/Research-sentrux-dev.md +123 -0
- package/vault/wiki/questions/Research-superpowers-skill-for-agentic-coding-agents.md +164 -0
- package/vault/wiki/questions/Research: Augment Code Context Engine.md +244 -0
- package/vault/wiki/questions/Research: Automating Software Engineering - Lovable, Bolt, Emergent, Rocket.md +112 -0
- package/vault/wiki/questions/Research: Claude Code State-of-the-Art Harness Improvements.md +209 -0
- package/vault/wiki/questions/Research: Codex State-of-the-Art Harness Improvements.md +99 -0
- package/vault/wiki/questions/Research: Engineering Workflows of Legendary Programmers and AI Harness Mapping.md +107 -0
- package/vault/wiki/questions/Research: Fallow Codebase Intelligence Harness Integration.md +72 -0
- package/vault/wiki/questions/Research: Gemini CLI SOTA Harness Integration.md +166 -0
- package/vault/wiki/questions/Research: GitHub Issues as Harness Spec Storage.md +188 -0
- package/vault/wiki/questions/Research: Google Antigravity Harness Integration.md +120 -0
- package/vault/wiki/questions/Research: Meta-Agent Context Drift Detection.md +236 -0
- package/vault/wiki/questions/Research: Model-Adaptive Agent Harness Design.md +95 -0
- package/vault/wiki/questions/Research: Model-Specific Prompting Guides.md +165 -0
- package/vault/wiki/questions/Research: Prompt Renderer for Multi-Model Agent Harness.md +216 -0
- package/vault/wiki/questions/Research: Skill-First Harness Architecture.md +91 -0
- package/vault/wiki/questions/Research: TypeScript Best Practices and Codebase Structure.md +88 -0
- package/vault/wiki/questions/Research: TypeScript Execution Layer for Agent Tool Calling.md +81 -0
- package/vault/wiki/questions/Research: claude-mem over Obsidian for Harness Layer.md +71 -0
- 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 +80 -0
- package/vault/wiki/questions/Research: context-mode vs lean-ctx.md +72 -0
- package/vault/wiki/questions/Research: cursor.sh Harness Innovations.md +92 -0
- package/vault/wiki/questions/Research: executor.sh Harness Integration.md +170 -0
- package/vault/wiki/questions/Research: how GSD fits into our coding harness setup.md +97 -0
- 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 +80 -0
- package/vault/wiki/questions/Research: pi-vcc.md +113 -0
- package/vault/wiki/questions/Research: semantic code search tools.md +69 -0
- package/vault/wiki/questions/Research: vcc extension for pi coding agent.md +73 -0
- package/vault/wiki/questions/how-to-enable-semantic-code-search-now.md +111 -0
- package/vault/wiki/questions/mvp-implementation-blueprint.md +552 -0
- package/vault/wiki/questions/research-agent-first-codebase-exploration.md +199 -0
- package/vault/wiki/questions/research-agentic-coding-harness-latest-papers.md +142 -0
- package/vault/wiki/questions/research-gitingest-gitreverse-integration.md +100 -0
- package/vault/wiki/questions/research-wozcode-token-reduction.md +67 -0
- package/vault/wiki/questions/resolved-context-pruning-inplace-vs-restart.md +95 -0
- package/vault/wiki/questions/resolved-context-window-economics.md +167 -0
- package/vault/wiki/questions/resolved-imad-debate-gating-transfer.md +126 -0
- package/vault/wiki/questions/resolved-mcp-tool-preference.md +112 -0
- package/vault/wiki/questions/resolved-small-model-meta-agents.md +107 -0
- package/vault/wiki/questions/resolved-treesitter-dynamic-languages.md +95 -0
- package/vault/wiki/sources/Auggie Context MCP Server.md +63 -0
- package/vault/wiki/sources/Augment Code Codacy AI Giants.md +61 -0
- package/vault/wiki/sources/Augment Code MCP SiliconAngle.md +49 -0
- package/vault/wiki/sources/Augment Code WorkOS ERC 2025.md +55 -0
- package/vault/wiki/sources/Augment Context Engine Official.md +71 -0
- package/vault/wiki/sources/Augment SWE-bench Agent GitHub.md +74 -0
- package/vault/wiki/sources/Augment SWE-bench Pro Blog.md +58 -0
- package/vault/wiki/sources/Source: AgentBus Jinja2 Prompt Pipelines.md +75 -0
- package/vault/wiki/sources/Source: Arxiv /342/200/224 Don't Break the Cache.md" +85 -0
- package/vault/wiki/sources/Source: Augment - Harness Engineering for AI Coding Agents.md +58 -0
- package/vault/wiki/sources/Source: Blake Crosley Agent Architecture Guide.md +100 -0
- package/vault/wiki/sources/Source: Bolt.new Architecture & Case Study.md +75 -0
- package/vault/wiki/sources/Source: Build-Time Prompt Compilation Architecture.md +107 -0
- package/vault/wiki/sources/Source: Claude API Agent Skills Overview.md +70 -0
- package/vault/wiki/sources/Source: Gemini CLI Changelogs.md +88 -0
- package/vault/wiki/sources/Source: Google Blog - Gemini CLI Announcement.md +57 -0
- package/vault/wiki/sources/Source: Google Gemini CLI Architecture Docs.md +53 -0
- package/vault/wiki/sources/Source: LangChain - Anatomy of Agent Harness.md +65 -0
- package/vault/wiki/sources/Source: Lovable Architecture & Clone Analysis.md +83 -0
- package/vault/wiki/sources/Source: Martin Fowler - Harness Engineering.md +70 -0
- package/vault/wiki/sources/Source: OpenAI Harness Engineering Five Principles.md +58 -0
- package/vault/wiki/sources/Source: OpenAI Harness Engineering /342/200/224 0 Lines of Human Code.md" +101 -0
- package/vault/wiki/sources/Source: OpenDev /342/200/224 Building AI Coding Agents for the Terminal.md" +100 -0
- package/vault/wiki/sources/Source: Render AI Coding Agents Benchmark 2025.md +53 -0
- package/vault/wiki/sources/Source: Rocket.new /342/200/224 Vibe Solutioning Platform.md" +70 -0
- package/vault/wiki/sources/Source: SwirlAI Agent Skills Progressive Disclosure.md +71 -0
- package/vault/wiki/sources/Source: TianPan Prompt Caching Architecture.md +89 -0
- package/vault/wiki/sources/Source: Vercel Labs agent-browser.md +155 -0
- package/vault/wiki/sources/Source: browser-harness CDP Harness.md +126 -0
- package/vault/wiki/sources/agent-drift-academic-paper.md +79 -0
- package/vault/wiki/sources/aider-repomap-tree-sitter.md +42 -0
- package/vault/wiki/sources/anthropic-compaction-api.md +58 -0
- package/vault/wiki/sources/anthropic-effective-harnesses.md +42 -0
- package/vault/wiki/sources/anthropic-prompt-best-practices.md +100 -0
- package/vault/wiki/sources/anthropic2026-harness-design.md +63 -0
- package/vault/wiki/sources/barrel-files-tkdodo.md +38 -0
- package/vault/wiki/sources/birth-of-unix-kernighan-interview.md +57 -0
- package/vault/wiki/sources/bockeler2026-harness-engineering.md +69 -0
- package/vault/wiki/sources/cast-code-chunking-paper.md +50 -0
- package/vault/wiki/sources/ck-semantic-search.md +78 -0
- package/vault/wiki/sources/claude-code-architecture-karaxai-2026.md +71 -0
- package/vault/wiki/sources/claude-code-architecture-qubytes-2026.md +50 -0
- package/vault/wiki/sources/claude-code-architecture-vila-lab-2026.md +64 -0
- package/vault/wiki/sources/claude-code-security-architecture-penligent-2026.md +70 -0
- package/vault/wiki/sources/claude-context-editing-docs.md +13 -0
- package/vault/wiki/sources/cloudflare-codemode.md +63 -0
- package/vault/wiki/sources/code-chunk-library-supermemory.md +63 -0
- package/vault/wiki/sources/codeact-apple-2024.md +62 -0
- package/vault/wiki/sources/codex-dsc-rfc-8573.md +41 -0
- package/vault/wiki/sources/codex-open-source-agent-2026.md +110 -0
- package/vault/wiki/sources/coir-code-retrieval-benchmark.md +51 -0
- package/vault/wiki/sources/colinmcnamara-context-optimization-codemode.md +48 -0
- package/vault/wiki/sources/context-folding-paper.md +61 -0
- package/vault/wiki/sources/context-mode-website.md +63 -0
- package/vault/wiki/sources/cursor-agent-best-practices-2026.md +62 -0
- package/vault/wiki/sources/cursor-fork-29b-2025.md +50 -0
- package/vault/wiki/sources/cursor-harness-april-2026.md +76 -0
- package/vault/wiki/sources/cursor-instant-apply-2024.md +45 -0
- package/vault/wiki/sources/cursor-shadow-workspace-2024.md +52 -0
- package/vault/wiki/sources/cursor-shipped-coding-agent-2026.md +53 -0
- package/vault/wiki/sources/cursor-vs-antigravity-2026.md +51 -0
- package/vault/wiki/sources/disler-pi-vs-claude-code.md +69 -0
- package/vault/wiki/sources/distill-deterministic-context-compression.md +53 -0
- package/vault/wiki/sources/embedding-models-benchmark-supermemory-2025.md +48 -0
- package/vault/wiki/sources/executor-rhyssullivan.md +122 -0
- package/vault/wiki/sources/fallow-rs-codebase-intelligence.md +125 -0
- package/vault/wiki/sources/fan2025-imad.md +60 -0
- package/vault/wiki/sources/forgecode-gpt5-agent-improvements.md +63 -0
- package/vault/wiki/sources/gemini-3-prompting-guide.md +78 -0
- package/vault/wiki/sources/gh-cli-sub-issue-rfc.md +50 -0
- package/vault/wiki/sources/gh-sub-issue-extension.md +72 -0
- package/vault/wiki/sources/github-fork-issues-discussion.md +44 -0
- package/vault/wiki/sources/github-issue-dependencies-docs.md +49 -0
- package/vault/wiki/sources/github-sub-issues-docs.md +51 -0
- package/vault/wiki/sources/gitingest.md +91 -0
- package/vault/wiki/sources/gitreverse.md +63 -0
- package/vault/wiki/sources/google-antigravity-official-blog.md +47 -0
- package/vault/wiki/sources/google-antigravity-wikipedia.md +53 -0
- package/vault/wiki/sources/gsd-codecentric-deep-dive.md +57 -0
- package/vault/wiki/sources/gsd-github-repo.md +51 -0
- package/vault/wiki/sources/gsd-hn-discussion.md +59 -0
- package/vault/wiki/sources/guido-python-design-philosophy.md +56 -0
- package/vault/wiki/sources/hejlsberg-7-learnings.md +48 -0
- package/vault/wiki/sources/ironclaw-drift-monitor.md +80 -0
- package/vault/wiki/sources/langsight-loop-detection.md +80 -0
- package/vault/wiki/sources/leanctx-website.md +69 -0
- package/vault/wiki/sources/lee2026-meta-harness.md +59 -0
- package/vault/wiki/sources/linux-kernel-coding-workflow.md +50 -0
- package/vault/wiki/sources/lou2026-autoharness.md +53 -0
- package/vault/wiki/sources/martin-fowler-harness-engineering.md +73 -0
- package/vault/wiki/sources/mcp-architecture-docs.md +13 -0
- package/vault/wiki/sources/meng2026-agent-harness-survey.md +79 -0
- package/vault/wiki/sources/mindstudio-four-agent-types.md +68 -0
- package/vault/wiki/sources/ms-chat-history-management.md +13 -0
- package/vault/wiki/sources/openai-prompt-guidance.md +104 -0
- package/vault/wiki/sources/openclaw-session-pruning.md +13 -0
- package/vault/wiki/sources/opencode-dcp.md +13 -0
- package/vault/wiki/sources/opendev-arxiv-2603.05344v1.md +79 -0
- package/vault/wiki/sources/openhands-platform.md +39 -0
- package/vault/wiki/sources/oss-guide-codebase-exploration.md +53 -0
- package/vault/wiki/sources/pi-compaction-extensions-ecosystem.md +102 -0
- package/vault/wiki/sources/pi-context-prune-github-repo.md +38 -0
- package/vault/wiki/sources/pi-mono-compaction-docs.md +38 -0
- package/vault/wiki/sources/pi-omni-compact-github-repo.md +50 -0
- package/vault/wiki/sources/pi-rtk-optimizer-github-repo.md +45 -0
- package/vault/wiki/sources/pi-vcc-github-repo.md +69 -0
- package/vault/wiki/sources/pi-vscode-marketplace.md +41 -0
- package/vault/wiki/sources/pi-vscode-model-provider-marketplace.md +39 -0
- package/vault/wiki/sources/py-tree-sitter.md +13 -0
- package/vault/wiki/sources/sentrux-dev-landing.md +40 -0
- package/vault/wiki/sources/sentrux-docs-pro-architecture.md +75 -0
- package/vault/wiki/sources/sentrux-docs-quality-signal.md +46 -0
- package/vault/wiki/sources/sentrux-docs-root-cause-metrics.md +57 -0
- package/vault/wiki/sources/sentrux-docs-rules-engine.md +58 -0
- package/vault/wiki/sources/sentrux-github-repo.md +56 -0
- package/vault/wiki/sources/superpowers-github-repo.md +56 -0
- package/vault/wiki/sources/superpowers-release-blog.md +54 -0
- package/vault/wiki/sources/superpowers-termdock-analysis.md +45 -0
- package/vault/wiki/sources/swe-agent-aci.md +42 -0
- package/vault/wiki/sources/swe-bench.md +45 -0
- package/vault/wiki/sources/swe-pruner-context-pruning.md +13 -0
- package/vault/wiki/sources/think-in-code-blog.md +48 -0
- package/vault/wiki/sources/tree-sitter-docs.md +13 -0
- package/vault/wiki/sources/ts-best-practices-2025-devto.md +42 -0
- package/vault/wiki/sources/ts-folder-structure-mingyang.md +58 -0
- package/vault/wiki/sources/ts-monorepo-koerselman.md +44 -0
- package/vault/wiki/sources/ts-result-error-handling-kkalamarski.md +52 -0
- package/vault/wiki/sources/ts-runtimes-comparison-betterstack.md +42 -0
- package/vault/wiki/sources/ts-strict-mode-rishikc.md +43 -0
- package/vault/wiki/sources/unix-philosophy.md +48 -0
- package/vault/wiki/sources/vectara-chunking-vs-embedding-naacl2025.md +39 -0
- package/vault/wiki/sources/vectara-guardian-agents.md +79 -0
- package/vault/wiki/sources/vgrep-semantic-search.md +76 -0
- package/vault/wiki/sources/vitest-official.md +41 -0
- package/vault/wiki/sources/vscode-pi-community-extension.md +40 -0
- package/vault/wiki/sources/wozcode.md +79 -0
- package/.agents/skills/compress/SKILL.md +0 -111
- package/.agents/skills/compress/scripts/__init__.py +0 -9
- package/.agents/skills/compress/scripts/__main__.py +0 -3
- package/.agents/skills/compress/scripts/benchmark.py +0 -78
- package/.agents/skills/compress/scripts/cli.py +0 -73
- package/.agents/skills/compress/scripts/compress.py +0 -227
- package/.agents/skills/compress/scripts/detect.py +0 -121
- package/.agents/skills/compress/scripts/validate.py +0 -189
- package/.agents/skills/emil-design-eng/SKILL.md +0 -679
- package/.agents/skills/lean-ctx/SKILL.md +0 -149
- package/.agents/skills/lean-ctx/scripts/install.sh +0 -95
- package/.agents/skills/scrapling-official/LICENSE.txt +0 -28
- package/.agents/skills/scrapling-official/SKILL.md +0 -390
- package/.agents/skills/scrapling-official/examples/01_fetcher_session.py +0 -26
- package/.agents/skills/scrapling-official/examples/02_dynamic_session.py +0 -26
- package/.agents/skills/scrapling-official/examples/03_stealthy_session.py +0 -26
- package/.agents/skills/scrapling-official/examples/04_spider.py +0 -58
- package/.agents/skills/scrapling-official/examples/README.md +0 -45
- package/.agents/skills/scrapling-official/references/fetching/choosing.md +0 -78
- package/.agents/skills/scrapling-official/references/fetching/dynamic.md +0 -352
- package/.agents/skills/scrapling-official/references/fetching/static.md +0 -432
- package/.agents/skills/scrapling-official/references/fetching/stealthy.md +0 -255
- package/.agents/skills/scrapling-official/references/mcp-server.md +0 -214
- package/.agents/skills/scrapling-official/references/migrating_from_beautifulsoup.md +0 -86
- package/.agents/skills/scrapling-official/references/parsing/adaptive.md +0 -212
- package/.agents/skills/scrapling-official/references/parsing/main_classes.md +0 -586
- package/.agents/skills/scrapling-official/references/parsing/selection.md +0 -494
- package/.agents/skills/scrapling-official/references/spiders/advanced.md +0 -344
- package/.agents/skills/scrapling-official/references/spiders/architecture.md +0 -94
- package/.agents/skills/scrapling-official/references/spiders/getting-started.md +0 -164
- package/.agents/skills/scrapling-official/references/spiders/proxy-blocking.md +0 -235
- package/.agents/skills/scrapling-official/references/spiders/requests-responses.md +0 -196
- package/.agents/skills/scrapling-official/references/spiders/sessions.md +0 -205
- package/PLAN.md +0 -11
- package/extensions/lean-ctx-enforce.ts +0 -166
- package/skills-lock.json +0 -35
- package/wiki/README.md +0 -19
- package/wiki/decisions/0001-establish-project-wiki-and-decision-record-format.md +0 -25
- package/wiki/decisions/0002-add-project-banner-to-readme.md +0 -26
- package/wiki/decisions/0003-remove-redundant-readme-title-heading.md +0 -26
- package/wiki/decisions/0004-publish-package-to-npm-as-ultimate-pi.md +0 -26
- package/wiki/decisions/0005-automate-npm-publish-with-github-actions.md +0 -27
- package/wiki/decisions/0006-switch-to-npm-trusted-publishing.md +0 -26
- package/wiki/decisions/0007-use-absolute-banner-url-for-npm-readme-rendering.md +0 -26
- package/wiki/decisions/0008-rename-banner-asset-for-cache-busting.md +0 -26
- package/wiki/decisions/0009-force-oidc-path-by-clearing-node-auth-token-in-publish-step.md +0 -25
- package/wiki/decisions/0010-simplify-setup-node-for-npm-trusted-publishing.md +0 -26
- package/wiki/decisions/0011-add-noop-workflow-change-to-force-fresh-publish-run.md +0 -25
- package/wiki/decisions/0012-align-workflow-runtime-with-npm-trusted-publishing-requirements.md +0 -26
- package/wiki/decisions/0013-add-package-repository-url-for-provenance-validation.md +0 -25
|
@@ -0,0 +1,552 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: question
|
|
3
|
+
title: "MVP Implementation Blueprint for Agentic Coding Harness (Skill-First v2)"
|
|
4
|
+
question: "Rethought from first principles: MVP implementation plan where spec-hardening and harness layers are markdown-based skills, only drift monitoring remains as code. Event bus handled by pi's built-in system."
|
|
5
|
+
answer_quality: solid
|
|
6
|
+
created: 2026-05-03
|
|
7
|
+
updated: 2026-05-03
|
|
8
|
+
tags: [question, harness, mvp, implementation, build-plan, skill-first, v2]
|
|
9
|
+
related:
|
|
10
|
+
- "[[Research: Skill-First Harness Architecture]]"
|
|
11
|
+
- "[[skill-first-architecture]]"
|
|
12
|
+
- "[[harness-implementation-plan]]"
|
|
13
|
+
- "[[HARNESS-PRD]]"
|
|
14
|
+
- "[[adr-012]]"
|
|
15
|
+
- "[[adr-015]]"
|
|
16
|
+
- "[[adr-017]]"
|
|
17
|
+
- "[[adr-021]]"
|
|
18
|
+
- "[[adr-018]]"
|
|
19
|
+
- "[[adr-019]]"
|
|
20
|
+
- "[[adr-020]]"
|
|
21
|
+
- "[[adr-022]]"
|
|
22
|
+
- "[[adr-025]]"
|
|
23
|
+
- "[[agent-skills-pattern]]"
|
|
24
|
+
- "[[drift-detection-unified]]"
|
|
25
|
+
sources:
|
|
26
|
+
- "[[Source: SwirlAI Agent Skills Progressive Disclosure]]"
|
|
27
|
+
- "[[Source: Claude API Agent Skills Overview]]"
|
|
28
|
+
- "[[Source: Blake Crosley Agent Architecture Guide]]"
|
|
29
|
+
status: developing
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
# MVP Implementation Blueprint: Skill-First Harness (v2)
|
|
33
|
+
|
|
34
|
+
## Rethought from First Principles
|
|
35
|
+
|
|
36
|
+
**Previous plan (v1)**: 15 TypeScript files in `src/harness/`. Every pipeline layer implemented as code.
|
|
37
|
+
|
|
38
|
+
**New plan (v2)**: 3 TypeScript files (drift monitor, types, config). Six markdown-based skills for pipeline layers. Event bus handled by pi's built-in system. Progressive disclosure keeps context lean. Zero-compile iteration for harness behavior changes.
|
|
39
|
+
|
|
40
|
+
**Core insight**: The harness is NOT a code pipeline — it's a skill coordination layer. The model is better at evaluation (spec quality, plan correctness, code review) than imperative code. Code is for determinism: the drift monitor MUST pattern-match on every `tool_result`. Pi's built-in event bus handles routing — no custom event bus needed. Everything else is probabilistic evaluation and SHOULD be a skill.
|
|
41
|
+
|
|
42
|
+
## MVP Scope
|
|
43
|
+
|
|
44
|
+
Per ADR-015 (pipeline-first build order), the MVP is **Groups 1-3 + P20 gate from Group 5** — the full quality pipeline.
|
|
45
|
+
|
|
46
|
+
**MVP pipeline**: `/harness "task"` → L1 Spec Hardening (skill) → L2 Structured Planning (skill) → L2.5 Drift Monitor (code) → L3 Agent Execution (flat tools) → L4 Adversarial Verification (skill + agent) → P20 Deterministic Gate (skill + bash) → trace/memory writes.
|
|
47
|
+
|
|
48
|
+
| MVP Phase | Implementation | What Gets Built |
|
|
49
|
+
|-----------|---------------|-----------------|
|
|
50
|
+
| **F0** | CODE | Types, config (event bus handled by pi's built-in system) |
|
|
51
|
+
| **P1** | SKILL | L1 Spec Hardening: `harness-spec/SKILL.md` |
|
|
52
|
+
| **P2** | SKILL | L2 Structured Planning: `harness-plan/SKILL.md` |
|
|
53
|
+
| **P3-P7** | CODE | L2.5 Drift Monitor: LLM-first + rule pre-filter + escalation |
|
|
54
|
+
| **P16-P19b** | SKILL + AGENT | L4 Adversarial: `harness-critic/SKILL.md` + `.pi/agents/critic.md` + consensus filing |
|
|
55
|
+
| **P20** | SKILL + BASH | Deterministic gate: `harness-gate/SKILL.md` (biome + tsc + fallow) |
|
|
56
|
+
| **P21-P24** | SKILL + WIKI | L5 Obsrv + L6 Memory + L7 Orch + L8 Wiki |
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## 1. File Structure (Code Layer)
|
|
61
|
+
|
|
62
|
+
### What Stays Code (3 files)
|
|
63
|
+
|
|
64
|
+
```
|
|
65
|
+
src/harness/
|
|
66
|
+
├── types.ts # All harness types (Spec, Plan, DriftVerdict, CriticVerdict, Config)
|
|
67
|
+
├── config.ts # Load .pi/harness/config.json, merge with code defaults
|
|
68
|
+
└── drift-monitor.ts # L2.5: LLM-first drift detection + 6-rule pre-filter + escalation
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
> [!note] Event bus removed
|
|
72
|
+
> Pi's latest version ships a built-in event bus. Skills register directly with pi's native events — no custom `events.ts` or `harness-event-bus.ts` wiring needed.
|
|
73
|
+
|
|
74
|
+
### What Becomes Skills (6 directories)
|
|
75
|
+
|
|
76
|
+
```
|
|
77
|
+
.pi/skills/
|
|
78
|
+
├── harness-spec/
|
|
79
|
+
│ ├── SKILL.md # L1: Ambiguity detection, spec hardening, harness_ask tool
|
|
80
|
+
│ └── reference.md # Ambiguity categories, hardening patterns
|
|
81
|
+
├── harness-plan/
|
|
82
|
+
│ ├── SKILL.md # L2: YAML task DAG generation, sprint contracts
|
|
83
|
+
│ └── reference.md # Plan templates, DAG patterns, sprint contract examples
|
|
84
|
+
├── harness-critic/
|
|
85
|
+
│ ├── SKILL.md # L4: Adversarial attack patterns, debate protocol
|
|
86
|
+
│ └── reference.md # Attack angle catalog, failure pattern taxonomy
|
|
87
|
+
├── harness-observe/
|
|
88
|
+
│ ├── SKILL.md # L5: Keep Rate tracking, LLM-as-Judge, satisfaction metrics
|
|
89
|
+
│ └── reference.md # Metric definitions, sampling strategies
|
|
90
|
+
├── harness-gate/
|
|
91
|
+
│ ├── SKILL.md # P20: Deterministic gate instructions
|
|
92
|
+
│ └── reference.md # Gate configuration, baseline management
|
|
93
|
+
└── harness-memory/
|
|
94
|
+
├── SKILL.md # L6: Read-first/write-after wiki contract
|
|
95
|
+
└── reference.md # Wiki page templates, staleness rules
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
### Extension Wiring
|
|
99
|
+
|
|
100
|
+
```
|
|
101
|
+
.pi/
|
|
102
|
+
├── extensions/
|
|
103
|
+
│ ├── wiki-hooks.ts # Existing (unchanged)
|
|
104
|
+
│ └── dotenv-loader.ts # Existing (unchanged)
|
|
105
|
+
├── harness/
|
|
106
|
+
│ ├── config.json # Single config file (ADR-018)
|
|
107
|
+
│ ├── plans/ # <spec-hash>.yaml plan files (generated by L2 skill)
|
|
108
|
+
│ └── critics/ # Critic temp files (generated by L4 skill)
|
|
109
|
+
├── agents/
|
|
110
|
+
│ └── critic.md # L4 critic agent definition (ADR-016) — invoked by skill
|
|
111
|
+
└── skills/
|
|
112
|
+
└── gitingest/SKILL.md # Bulk repo ingestion (unchanged)
|
|
113
|
+
|
|
114
|
+
.github/
|
|
115
|
+
└── ISSUE_TEMPLATE/
|
|
116
|
+
└── harness-spec.yml # GitHub Issue template for specs (ADR-025)
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
**Key rule**: `src/harness/` modules are pure TypeScript. All harness logic lives in skills — markdown, not code. Pi's built-in event bus handles event routing.
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
## 2. Foundation (F0) — Phase 0 (CODE)
|
|
124
|
+
|
|
125
|
+
### 2.1 Harness Types (`src/harness/types.ts`)
|
|
126
|
+
|
|
127
|
+
```typescript
|
|
128
|
+
// Spec after hardening (generated by L1 skill)
|
|
129
|
+
export interface HardenedSpec {
|
|
130
|
+
request: string;
|
|
131
|
+
intent: string;
|
|
132
|
+
acceptanceCriteria: {
|
|
133
|
+
deterministic: DeterministicCriterion[];
|
|
134
|
+
freeform: string[];
|
|
135
|
+
};
|
|
136
|
+
constraints: string[];
|
|
137
|
+
context: { files: string[]; wiki: string[]; git: { branch: string } };
|
|
138
|
+
specHash: string; // SHA256(intent + criteria)
|
|
139
|
+
clarifiedQuestions: { q: string; a: string }[];
|
|
140
|
+
createdAt: string;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
// L2 plan (generated by L2 skill)
|
|
144
|
+
export interface SprintPlan {
|
|
145
|
+
specHash: string;
|
|
146
|
+
tasks: TaskNode[];
|
|
147
|
+
generated: string;
|
|
148
|
+
model: string;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
export interface TaskNode {
|
|
152
|
+
id: string;
|
|
153
|
+
description: string;
|
|
154
|
+
dependsOn: string[];
|
|
155
|
+
doneCriteria: DoneCriterion[];
|
|
156
|
+
estimatedTokens: number;
|
|
157
|
+
checkpoint: boolean;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
export type DoneCriterion =
|
|
161
|
+
| { type: 'tests_pass'; pattern: string }
|
|
162
|
+
| { type: 'lint_passes' }
|
|
163
|
+
| { type: 'typescript_compiles' }
|
|
164
|
+
| { type: 'no_regression'; baseline: string }
|
|
165
|
+
| { type: 'spec_requirement'; requirement: string }
|
|
166
|
+
| { type: 'no_new_dead_code' };
|
|
167
|
+
|
|
168
|
+
// L2.5 drift verdict (generated by code)
|
|
169
|
+
export interface DriftVerdict {
|
|
170
|
+
drifted: boolean;
|
|
171
|
+
patterns: string[];
|
|
172
|
+
confidence: number;
|
|
173
|
+
action: 'continue' | 'nudge' | 'restart';
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
// L4 critic verdict (generated by L4 skill)
|
|
177
|
+
export interface CriticVerdict {
|
|
178
|
+
pass: boolean;
|
|
179
|
+
failures: { criteria: string; explanation: string }[];
|
|
180
|
+
score: number;
|
|
181
|
+
rounds: number;
|
|
182
|
+
debateResult: 'CONSENSUS_REACHED' | 'DEADLOCK' | 'BUDGET_EXHAUSTED' | 'TIMEOUT';
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
export type PipelinePhase = 'idle' | 'l1-spec' | 'l2-plan' | 'l3-execute' | 'l4-verify' | 'p20-gate' | 'l5-l8-trace';
|
|
186
|
+
|
|
187
|
+
export interface PipelineState {
|
|
188
|
+
phase: PipelinePhase;
|
|
189
|
+
spec?: HardenedSpec;
|
|
190
|
+
plan?: SprintPlan;
|
|
191
|
+
currentTaskId?: string;
|
|
192
|
+
driftHistory: DriftVerdict[];
|
|
193
|
+
criticVerdict?: CriticVerdict;
|
|
194
|
+
turnCount: number;
|
|
195
|
+
}
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
### 2.2 Config (`src/harness/config.ts` + `.pi/harness/config.json`)
|
|
199
|
+
|
|
200
|
+
ADR-018: single file, code defaults, project-local only. Same structure as v1 — unchanged.
|
|
201
|
+
|
|
202
|
+
### 2.3 Event Routing (Pi's Built-in Event Bus)
|
|
203
|
+
|
|
204
|
+
Pi's latest version ships a built-in event bus. Skills register directly with pi's native events — no custom `events.ts` or `harness-event-bus.ts` needed.
|
|
205
|
+
|
|
206
|
+
```
|
|
207
|
+
Pi Native Event → Skill Action
|
|
208
|
+
─────────────────────────────────────────────
|
|
209
|
+
session_start → Load harness config, set state.idle
|
|
210
|
+
before_agent_start → If /harness command detected:
|
|
211
|
+
→ Phase L1: activate harness-spec skill
|
|
212
|
+
→ Phase L2: activate harness-plan skill
|
|
213
|
+
→ Phase L4: activate harness-critic skill + spawn critic agent
|
|
214
|
+
→ Phase P20: activate harness-gate skill
|
|
215
|
+
→ Phase L5-L8: activate harness-observe + memory skills
|
|
216
|
+
tool_result → Drift monitor (code): pattern-match, check every N turns
|
|
217
|
+
session_compact → Persist pipeline state for reinjection
|
|
218
|
+
session_shutdown → Flush consensus, record Keep Rate sample
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
---
|
|
222
|
+
|
|
223
|
+
## 3. L1: Spec Hardening — `harness-spec/SKILL.md`
|
|
224
|
+
|
|
225
|
+
### Skill Frontmatter
|
|
226
|
+
|
|
227
|
+
```yaml
|
|
228
|
+
---
|
|
229
|
+
name: harness-spec
|
|
230
|
+
description: >
|
|
231
|
+
Hardens user task descriptions into structured specifications.
|
|
232
|
+
Detects ambiguity, resolves through Q&A, generates spec hash,
|
|
233
|
+
stores in GitHub Issues. Activates on /harness command.
|
|
234
|
+
Use when user invokes the harness pipeline.
|
|
235
|
+
allowed-tools: Read, Grep, Glob, Bash, harness_ask
|
|
236
|
+
---
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
### SKILL.md Body (Core Instructions)
|
|
240
|
+
|
|
241
|
+
The skill body contains step-by-step instructions for the LLM:
|
|
242
|
+
|
|
243
|
+
1. **Ambiguity Scan**: Read the user's task description. Identify unresolved decisions: missing bug numbers, unspecified file scopes, absent acceptance criteria, ambiguous constraints.
|
|
244
|
+
|
|
245
|
+
2. **Clarification Round** (max 3, configurable): Call `harness_ask` tool with structured questions for each ambiguity. Question format: `{ id, question, options? }`. User answers via TUI.
|
|
246
|
+
|
|
247
|
+
3. **Spec Generation**: Once clarified, generate the hardened spec as YAML:
|
|
248
|
+
- `intent`: disambiguated goal
|
|
249
|
+
- `acceptanceCriteria`: deterministic (testable) + freeform (L4 critic judges)
|
|
250
|
+
- `constraints`: hard limits (files, dependencies, performance)
|
|
251
|
+
- `context`: relevant files, wiki pages, git branch
|
|
252
|
+
|
|
253
|
+
4. **Spec Hash**: Compute SHA256(intent + JSON.stringify(criteria)).slice(0, 16).
|
|
254
|
+
|
|
255
|
+
5. **GitHub Issue Storage**: Create GitHub Issue using template `.github/ISSUE_TEMPLATE/harness-spec.yml`. Labels: `harness`, `spec`, `in-progress`. Return issue number as spec ID.
|
|
256
|
+
|
|
257
|
+
6. **Wiki Write**: Write spec summary to wiki for cross-session traceability.
|
|
258
|
+
|
|
259
|
+
### Supporting File: `reference.md`
|
|
260
|
+
|
|
261
|
+
Contains:
|
|
262
|
+
- Ambiguity pattern catalog (missing scope, vague acceptance criteria, conflicting constraints)
|
|
263
|
+
- Spec hardening anti-patterns (overly broad, untestable criteria)
|
|
264
|
+
- Example hardened specs for common task types
|
|
265
|
+
|
|
266
|
+
---
|
|
267
|
+
|
|
268
|
+
## 4. L2: Structured Planning — `harness-plan/SKILL.md`
|
|
269
|
+
|
|
270
|
+
### Skill Frontmatter
|
|
271
|
+
|
|
272
|
+
```yaml
|
|
273
|
+
---
|
|
274
|
+
name: harness-plan
|
|
275
|
+
description: >
|
|
276
|
+
Generates machine-readable YAML task DAG with sprint contracts
|
|
277
|
+
from a hardened spec. Every task has doneCriteria. Checkpoint
|
|
278
|
+
tasks are grounding points. Activates after L1 spec hardening completes.
|
|
279
|
+
allowed-tools: Read, Write, Bash
|
|
280
|
+
---
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
### SKILL.md Body
|
|
284
|
+
|
|
285
|
+
1. **Read Hardened Spec**: Read the GitHub Issue or `.pi/harness/specs/<hash>.yaml`.
|
|
286
|
+
2. **Decompose into Tasks**: Break the spec into sequential + parallel subtasks. Each task has: `id`, `description`, `dependsOn`, `doneCriteria`, `estimatedTokens`, `checkpoint`.
|
|
287
|
+
3. **Sprint Contracts**: Every task gets `doneCriteria` — mix of deterministic (auto-verified: `tests_pass`, `lint_passes`, `typescript_compiles`) and `spec_requirement` (L4 critic judges).
|
|
288
|
+
4. **Checkpoint Marking**: Mark tasks that produce a verifiable state change as `checkpoint: true`. These are MVC grounding points.
|
|
289
|
+
5. **Write Plan YAML**: Store at `.pi/harness/plans/<spec-hash>.yaml`.
|
|
290
|
+
6. **Plan Summary Injection**: Generate 3-5 line plan summary. Event bus injects into system prompt.
|
|
291
|
+
|
|
292
|
+
### Supporting File: `reference.md`
|
|
293
|
+
|
|
294
|
+
Contains:
|
|
295
|
+
- DAG templates for common task types (bug fix, feature add, refactor, test)
|
|
296
|
+
- Sprint contract examples with varying doneCriteria
|
|
297
|
+
- Plan complexity heuristics (when to split, when to combine tasks)
|
|
298
|
+
|
|
299
|
+
---
|
|
300
|
+
|
|
301
|
+
## 5. L2.5: Runtime Drift Monitor (CODE — `drift-monitor.ts`)
|
|
302
|
+
|
|
303
|
+
**This is the ONLY complex logic that stays as code.** The drift monitor runs on every `tool_result` event. It needs sub-millisecond rule-based pre-filter and deterministic escalation. The LLM-based primary detection (Haiku 4.5 every 8 turns) is invoked FROM code, but the monitor itself is code.
|
|
304
|
+
|
|
305
|
+
Architecture unchanged from v1:
|
|
306
|
+
- Rule-based pre-filter (6 patterns, 0 tokens, <1ms)
|
|
307
|
+
- Structured drift context builder (~700 tokens)
|
|
308
|
+
- Haiku 4.5 invocation every 8 turns
|
|
309
|
+
- Escalation ladder (soft nudge → strong nudge → forced restart)
|
|
310
|
+
|
|
311
|
+
See [[drift-detection-unified]] and [[adr-022]] for full specification.
|
|
312
|
+
|
|
313
|
+
**Why this must be code**: Skills are probabilistic — the model decides when to activate them. Drift detection must fire deterministically on every `tool_result` event with zero exceptions. A skill cannot guarantee this. Code can.
|
|
314
|
+
|
|
315
|
+
---
|
|
316
|
+
|
|
317
|
+
## 6. L4: Adversarial Verification — `harness-critic/SKILL.md` + `.pi/agents/critic.md`
|
|
318
|
+
|
|
319
|
+
### Skill Frontmatter
|
|
320
|
+
|
|
321
|
+
```yaml
|
|
322
|
+
---
|
|
323
|
+
name: harness-critic
|
|
324
|
+
description: >
|
|
325
|
+
Performs adversarial code review with hard-threshold pass/fail criteria.
|
|
326
|
+
Spawns critic sub-agent via pi-subagents RPC. Activates after code changes
|
|
327
|
+
complete in L3 execution.
|
|
328
|
+
allowed-tools: Read, Grep, Glob, Bash
|
|
329
|
+
hooks:
|
|
330
|
+
PostToolUse:
|
|
331
|
+
- matcher: "Task"
|
|
332
|
+
hooks:
|
|
333
|
+
- type: "agent"
|
|
334
|
+
prompt: "Verify all critic criteria pass. Re-read spec. $ARGUMENTS"
|
|
335
|
+
---
|
|
336
|
+
```
|
|
337
|
+
|
|
338
|
+
### SKILL.md Body
|
|
339
|
+
|
|
340
|
+
1. **Read Diff + Spec**: Read the spec's acceptance criteria. Read the git diff of changes.
|
|
341
|
+
2. **Prepare Critic Prompt**: Write to `.pi/harness/critics/<spec-hash>.md` — spec, diff, sprint contract doneCriteria, attack angles.
|
|
342
|
+
3. **Spawn Critic Sub-agent**: Via pi-subagents RPC: `subagents:rpc:spawn` with `type: "critic"`, `prompt: "@.pi/harness/critics/<hash>.md"`.
|
|
343
|
+
4. **Monitor + iMAD Gate**: Pre-debate classifier: high-confidence tasks skip multi-round debate (92% token savings). Ambiguous tasks trigger multi-round debate with budget caps.
|
|
344
|
+
5. **Evaluate Verdict**: `{ pass: bool, failures: [...], score: number, debateResult: ... }`.
|
|
345
|
+
6. **Fix or File**: If pass → proceed to P20 gate. If fail → inject failures into agent prompt, retry (max 3 rounds).
|
|
346
|
+
7. **Consensus Filing** (P19b): Every debate verdict writes to `wiki/consensus/<layer>-<topic-slug>.md`.
|
|
347
|
+
|
|
348
|
+
### Critic Agent Definition (`.pi/agents/critic.md`)
|
|
349
|
+
|
|
350
|
+
```yaml
|
|
351
|
+
---
|
|
352
|
+
description: Adversarial code reviewer — attacks code changes with hard-threshold pass/fail criteria
|
|
353
|
+
tools: read, grep, find, ls, bash
|
|
354
|
+
model: inherit
|
|
355
|
+
thinking: high
|
|
356
|
+
max_turns: 15
|
|
357
|
+
prompt_mode: replace
|
|
358
|
+
---
|
|
359
|
+
```
|
|
360
|
+
|
|
361
|
+
### Supporting File: `reference.md`
|
|
362
|
+
|
|
363
|
+
Contains:
|
|
364
|
+
- Attack angle catalog (security, performance, edge cases, regression, spec compliance)
|
|
365
|
+
- Failure pattern taxonomy
|
|
366
|
+
- Debate protocol reference
|
|
367
|
+
- Consensus filing templates
|
|
368
|
+
|
|
369
|
+
---
|
|
370
|
+
|
|
371
|
+
## 7. P20: Deterministic Gate — `harness-gate/SKILL.md`
|
|
372
|
+
|
|
373
|
+
### Skill Frontmatter
|
|
374
|
+
|
|
375
|
+
```yaml
|
|
376
|
+
---
|
|
377
|
+
name: harness-gate
|
|
378
|
+
description: >
|
|
379
|
+
Runs deterministic quality gates: biome lint+format, tsc type-check,
|
|
380
|
+
fallow dead code/duplication audit. Zero LLM tokens. Activates after
|
|
381
|
+
L4 adversarial verification passes.
|
|
382
|
+
allowed-tools: Bash
|
|
383
|
+
---
|
|
384
|
+
```
|
|
385
|
+
|
|
386
|
+
### SKILL.md Body
|
|
387
|
+
|
|
388
|
+
Three-step gate, 0 LLM tokens, <10s:
|
|
389
|
+
|
|
390
|
+
1. `biome check --apply` — lint + format in one pass
|
|
391
|
+
2. `tsc --noEmit --skipLibCheck` — type-checking
|
|
392
|
+
3. `fallow audit --changed-since main --gate all` — dead code, duplication, complexity (optional, config-controlled)
|
|
393
|
+
|
|
394
|
+
All three are pure CLI tools with exit codes. The skill provides instructions on which commands to run and how to interpret results. The event bus reads exit codes.
|
|
395
|
+
|
|
396
|
+
**Why a skill and not code**: The logic is trivial — three bash commands. The value is in the instructions: which flags to use, how to handle warnings vs errors, when to gate vs warn. A markdown skill captures this knowledge perfectly. If a project needs different gate commands, they edit the skill — no code change needed.
|
|
397
|
+
|
|
398
|
+
### Supporting File: `reference.md`
|
|
399
|
+
|
|
400
|
+
Contains:
|
|
401
|
+
- Gate pass/fail/warn semantics
|
|
402
|
+
- Baseline management for legacy codebases (fallow)
|
|
403
|
+
- Environment-specific configurations
|
|
404
|
+
|
|
405
|
+
---
|
|
406
|
+
|
|
407
|
+
## 8. L5-L8: Trace, Observability, Memory
|
|
408
|
+
|
|
409
|
+
### L5: `harness-observe/SKILL.md`
|
|
410
|
+
|
|
411
|
+
Tracks Keep Rate (agent-generated code survival at 1-day, 1-week, 1-month). LLM-as-Judge satisfaction metrics. Writes samples to wiki.
|
|
412
|
+
|
|
413
|
+
### L6: `harness-memory/SKILL.md`
|
|
414
|
+
|
|
415
|
+
Read-first/write-after wiki contract (ADR-010). Hot cache management. Wiki staleness rules. Already partially implemented via claude-obsidian skills. This skill formalizes the harness-specific contract.
|
|
416
|
+
|
|
417
|
+
### L7: Schema Orchestration
|
|
418
|
+
|
|
419
|
+
Archon workflow DAG — unchanged from v1. Already YAML-based, not code. Enforces pipeline ordering and consensus filing compliance.
|
|
420
|
+
|
|
421
|
+
### L8: Wiki Query Interface
|
|
422
|
+
|
|
423
|
+
Already operational via claude-obsidian skills. No change needed.
|
|
424
|
+
|
|
425
|
+
---
|
|
426
|
+
|
|
427
|
+
## 9. Dependencies
|
|
428
|
+
|
|
429
|
+
| Dependency | Purpose | Install |
|
|
430
|
+
|-----------|---------|---------|
|
|
431
|
+
| `@tintinweb/pi-subagents` v0.6.3 | L4 critic sub-agent infrastructure (ADR-016) | `pi install npm:@tintinweb/pi-subagents` |
|
|
432
|
+
| `js-yaml` | YAML parsing for plans + specs | Already in ecosystem |
|
|
433
|
+
| `biome` | P20 lint+format gate | Already configured |
|
|
434
|
+
| `fallow` (optional) | P20 dead code/duplication audit | `npm install -D fallow` |
|
|
435
|
+
|
|
436
|
+
---
|
|
437
|
+
|
|
438
|
+
## 10. Token Budget (MVP — Skill-First)
|
|
439
|
+
|
|
440
|
+
| Layer | Tokens | Mechanism |
|
|
441
|
+
|-------|--------|-----------|
|
|
442
|
+
| L1 Spec Hardening (skill) | ~2,500 | Skill activation ~2,000 tokens + spec generation + Q&A |
|
|
443
|
+
| L2 Planning (skill) | ~4,500 | Skill activation + plan generation + sprint contracts |
|
|
444
|
+
| L2.5 Drift Monitor (code) | ~1,500-2,200 | Haiku 4.5 every 8 turns (~$0.0002/check). Rule pre-filter: 0 tokens. |
|
|
445
|
+
| L3 Agent Execution | variable | Flat tools — unchanged from v1 |
|
|
446
|
+
| L4 Adversarial (skill + agent) | ~4,500 | Skill activation + critic sub-agent + selective debate |
|
|
447
|
+
| P20 Gate (skill + bash) | 0 | Deterministic tools — skill only provides instructions |
|
|
448
|
+
| L5-L8 Trace (skills) | ~4,000 | Observability + memory writes |
|
|
449
|
+
| **Total overhead** | **~17,000-17,700/subtask** | Similar to v1. Skill activation replaces code module loading — comparable token cost but better isolation. |
|
|
450
|
+
|
|
451
|
+
### Savings from Skill-First Architecture
|
|
452
|
+
|
|
453
|
+
| Mechanism | Savings |
|
|
454
|
+
|-----------|---------|
|
|
455
|
+
| Progressive disclosure (skills load on demand) | Code modules always loaded → skills only loaded when pipeline phase active |
|
|
456
|
+
| Zero compile iteration | No TypeScript compilation for harness logic changes — edit markdown, agent picks up next activation |
|
|
457
|
+
| User-editable harness | No TypeScript knowledge needed to customize spec hardening, planning, critic behavior |
|
|
458
|
+
| Selective debate routing (iMAD) | 92% token savings on ~80% of debate-invoked tasks (unchanged) |
|
|
459
|
+
| ck search routing | Deterministic nudge toward semantic search (unchanged) |
|
|
460
|
+
|
|
461
|
+
---
|
|
462
|
+
|
|
463
|
+
## 11. Build Order & Delivery Increments
|
|
464
|
+
|
|
465
|
+
Same ADR-015 pipeline-first order. Implementation method changes from code to skills.
|
|
466
|
+
|
|
467
|
+
| Step | Deliverable | Implementation | Est. Time |
|
|
468
|
+
|------|-------------|---------------|-----------|
|
|
469
|
+
| **1. F0** | Types, config, event bus | CODE: `types.ts`, `config.ts`, `events.ts` | ~1 week |
|
|
470
|
+
| **2. L1+L2** | Spec hardening + planning skills | SKILLS: `harness-spec/`, `harness-plan/` | ~1 week |
|
|
471
|
+
| **3. L2.5** | LLM-first drift monitor + rule pre-filter + escalation | CODE: `drift-monitor.ts` | ~2 weeks |
|
|
472
|
+
| **4. L4** | Critic skill + agent + iMAD gating + consensus filing | SKILL + AGENT: `harness-critic/`, `critic.md` | ~2 weeks |
|
|
473
|
+
| **5. P20+L5-L8** | Gate skill + observe skill + memory skill | SKILLS: `harness-gate/`, `harness-observe/`, `harness-memory/` | ~2 weeks |
|
|
474
|
+
|
|
475
|
+
**Total MVP**: ~8 weeks (down from ~9 weeks in v1 — skill iteration is faster than code, no custom event bus to build).
|
|
476
|
+
|
|
477
|
+
---
|
|
478
|
+
|
|
479
|
+
## 12. What's Deferred (Post-MVP)
|
|
480
|
+
|
|
481
|
+
Same as v1. P43 TS Execution Layer, P22b Prompt Renderer, P25 Subagent Router, P27-P48 deferred to Groups 4-9.
|
|
482
|
+
|
|
483
|
+
---
|
|
484
|
+
|
|
485
|
+
## 13. Files to Create (MVP — Skill-First v2)
|
|
486
|
+
|
|
487
|
+
### Code (3 files)
|
|
488
|
+
1. `src/harness/types.ts` — All type definitions
|
|
489
|
+
2. `src/harness/config.ts` — Config loader with code defaults
|
|
490
|
+
3. `src/harness/drift-monitor.ts` — LLM-first drift detection + 6-rule pre-filter + escalation
|
|
491
|
+
|
|
492
|
+
> Event bus handled by pi's built-in system — no custom `events.ts` needed.
|
|
493
|
+
|
|
494
|
+
### Skills (12+ files)
|
|
495
|
+
5. `.pi/skills/harness-spec/SKILL.md` — L1: Ambiguity detection, spec hardening, harness_ask
|
|
496
|
+
6. `.pi/skills/harness-spec/reference.md` — Ambiguity patterns, hardening examples
|
|
497
|
+
7. `.pi/skills/harness-plan/SKILL.md` — L2: YAML DAG generation, sprint contracts
|
|
498
|
+
8. `.pi/skills/harness-plan/reference.md` — Plan templates, DAG patterns
|
|
499
|
+
9. `.pi/skills/harness-critic/SKILL.md` — L4: Adversarial attack patterns, debate protocol
|
|
500
|
+
10. `.pi/skills/harness-critic/reference.md` — Attack angle catalog, failure taxonomy
|
|
501
|
+
11. `.pi/skills/harness-gate/SKILL.md` — P20: Deterministic gate instructions
|
|
502
|
+
12. `.pi/skills/harness-gate/reference.md` — Gate configuration, baseline management
|
|
503
|
+
13. `.pi/skills/harness-observe/SKILL.md` — L5: Keep Rate, LLM-as-Judge
|
|
504
|
+
14. `.pi/skills/harness-observe/reference.md` — Metric definitions, sampling
|
|
505
|
+
15. `.pi/skills/harness-memory/SKILL.md` — L6: Wiki read/write contract
|
|
506
|
+
16. `.pi/skills/harness-memory/reference.md` — Wiki templates, staleness rules
|
|
507
|
+
|
|
508
|
+
### Config + Wiring
|
|
509
|
+
14. `.pi/harness/config.json` — Single config file
|
|
510
|
+
15. `.pi/agents/critic.md` — L4 critic agent definition
|
|
511
|
+
16. `.github/ISSUE_TEMPLATE/harness-spec.yml` — GitHub Issues spec template
|
|
512
|
+
|
|
513
|
+
**Total**: 3 code files + 12 skill files + 4 config files = 19 files. Down from 15 code files (v1) — shift from code to configuration.
|
|
514
|
+
|
|
515
|
+
---
|
|
516
|
+
|
|
517
|
+
## 14. Key Architecture Decisions (ADRs Governing MVP)
|
|
518
|
+
|
|
519
|
+
All ADRs from v1 remain valid. New emphasis:
|
|
520
|
+
|
|
521
|
+
| ADR | Decision | Skill-First Impact |
|
|
522
|
+
|-----|----------|-------------------|
|
|
523
|
+
| **ADR-012** | Extension-based harness. No fork. | Pi's built-in event bus handles routing — skills register directly. |
|
|
524
|
+
| **ADR-015** | Pipeline-first build order. Validate gates before P43. | Unchanged. Skills deliver same pipeline, same order. |
|
|
525
|
+
| **ADR-017** | ~~`src/harness/` library + thin extension wiring~~. Superseded. | Now truly thin: 3 files vs 15. Business logic extracted to skills. Event bus removed. |
|
|
526
|
+
| **ADR-021** | Explicit `/harness` command. | Event bus detects command → activates harness-spec skill. |
|
|
527
|
+
| **ADR-018** | Single `.pi/harness/config.json`. | Unchanged. |
|
|
528
|
+
| **ADR-019** | `harness_ask` tool for L1 clarification. | Invoked by harness-spec skill, not code. |
|
|
529
|
+
| **ADR-020** | YAML task DAG + sprint contracts. | Generated by harness-plan skill, not code. |
|
|
530
|
+
| **ADR-022** | 7 drift patterns with turn-dependent thresholds. | Implemented in drift-monitor.ts (code — must be deterministic). |
|
|
531
|
+
| **ADR-025** | GitHub Issues as sole spec storage. | Used by harness-spec skill. Event bus passes issue number. |
|
|
532
|
+
| **ADR-013** | Biome + tsc + fallow for P20 gate. | Invoked by harness-gate skill (bash commands). |
|
|
533
|
+
| **ADR-014** | isolated-vm for P43 sandbox (deferred). | Unchanged. |
|
|
534
|
+
| **ADR-016** | @tintinweb/pi-subagents for L4 critic. | Invoked by harness-critic skill. |
|
|
535
|
+
|
|
536
|
+
---
|
|
537
|
+
|
|
538
|
+
## 15. Skill-First vs Code-First Comparison
|
|
539
|
+
|
|
540
|
+
| Dimension | v1 (Code-First) | v2 (Skill-First) |
|
|
541
|
+
|-----------|----------------|-------------------|
|
|
542
|
+
| TS source files | 15 | 3 |
|
|
543
|
+
| TS lines of code | ~2,500 | ~600 |
|
|
544
|
+
| Skill markdown files | 0 | 12 (6 SKILL.md + 6 reference.md) |
|
|
545
|
+
| Compilation required per change | Every logic change | Only when types/drift change |
|
|
546
|
+
| User-edit harness behavior | Edit TS, recompile, restart | Edit markdown, agent picks up next activation |
|
|
547
|
+
| Context cost of loaded logic | All 15 modules loaded as tool definitions (~15K tokens) | Skills loaded progressively: discovery (~480 tokens), activation only when phase active |
|
|
548
|
+
| Cross-platform portability | Pi-specific TypeScript | SKILL.md standard portable to Codex, Cursor, Copilot |
|
|
549
|
+
| Deterministic guarantees | All code (guaranteed) | Code for critical path (drift monitor), pi event bus for routing, skills for evaluation (probabilistic) |
|
|
550
|
+
| Iteration speed | Minutes (edit → compile → restart) | Seconds (edit markdown → agent picks up) |
|
|
551
|
+
|
|
552
|
+
> [!gap] Pi skill system integration details need verification. Can pi skills invoke other pi skills? Can pi skills write to `.pi/harness/` directories? Can pi skills use `harness_ask` tool? These determine exact event bus sequencing logic.
|