ultimate-pi 0.1.0 → 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/banner-v2.png +0 -0
- package/.github/workflows/lint.yml +33 -0
- package/.github/workflows/publish-github-packages.yml +35 -0
- package/.github/workflows/publish-npm.yml +32 -0
- 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 +33 -40
- 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 -16
- 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/.github/banner.png +0 -0
- package/PLAN.md +0 -11
- package/extensions/lean-ctx-enforce.ts +0 -166
- package/skills-lock.json +0 -35
- package/wiki/README.md +0 -10
- 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
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: decision
|
|
3
|
+
title: "ADR-021: Explicit Command for Harness Activation"
|
|
4
|
+
status: accepted
|
|
5
|
+
priority: 1
|
|
6
|
+
date: "2026-05-02"
|
|
7
|
+
tags: [adr, harness, activation, command, explicit]
|
|
8
|
+
sources:
|
|
9
|
+
- "[[HARNESS-PRD]]"
|
|
10
|
+
related:
|
|
11
|
+
- "[[adr-012]]"
|
|
12
|
+
- "[[adr-017]]"
|
|
13
|
+
supersedes:
|
|
14
|
+
created: 2026-05-02
|
|
15
|
+
updated: 2026-05-02
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
# ADR-021: Explicit Command for Harness Activation
|
|
19
|
+
|
|
20
|
+
## Context
|
|
21
|
+
|
|
22
|
+
The harness pipeline must not run on every user message. Simple queries ("what does git status do?") should bypass the pipeline. Three approaches were considered: explicit command, automatic task detection, and sub-agent routing.
|
|
23
|
+
|
|
24
|
+
## Decision
|
|
25
|
+
|
|
26
|
+
**Use an explicit command. Harness activates only via `/harness "task description"`.**
|
|
27
|
+
|
|
28
|
+
### Command Registration
|
|
29
|
+
|
|
30
|
+
The harness extension registers a `/harness` command via `pi.registerCommand()`:
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
/harness "fix the authentication bug in auth.ts"
|
|
34
|
+
/harness "add rate limiting to the API endpoints"
|
|
35
|
+
/harness "refactor the user model to use Zod validation"
|
|
36
|
+
/harness --no-verify "quick fix" (bypass L4 adversarial, P16 still runs)
|
|
37
|
+
/harness --plan-only "implement caching" (stop after L2, output plan)
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
### Flags
|
|
41
|
+
|
|
42
|
+
| Flag | Effect |
|
|
43
|
+
|------|--------|
|
|
44
|
+
| (none) | Full pipeline: L1 → L2 → L2.5 → L3 → L4 → P16 |
|
|
45
|
+
| `--no-verify` | Skip L4 adversarial verification. P16 still runs. |
|
|
46
|
+
| `--plan-only` | Stop after L2 planning. Output plan, don't execute. |
|
|
47
|
+
| `--skip-lint` | Skip P16 lint/format gate. |
|
|
48
|
+
| `--model <model>` | Override model for this harness run. |
|
|
49
|
+
|
|
50
|
+
### Lifecycle
|
|
51
|
+
|
|
52
|
+
1. User types `/harness "task"` in pi
|
|
53
|
+
2. Harness extension intercepts, blocks normal agent flow
|
|
54
|
+
3. Runs L1 spec hardening (may call `harness_ask` for clarifications)
|
|
55
|
+
4. Runs L2 planning (generates plan YAML, may trigger plan debate)
|
|
56
|
+
5. Injects hardened spec + plan into agent's system prompt via `before_agent_start`
|
|
57
|
+
6. L2.5 drift monitor activates for this session
|
|
58
|
+
7. Agent executes L3 with grounding checkpoints
|
|
59
|
+
8. L4 critic spawns via pi-subagents RPC
|
|
60
|
+
9. P16 runs deterministic gates
|
|
61
|
+
10. Results returned to user
|
|
62
|
+
|
|
63
|
+
Normal `/harness`-less chat bypasses all pipeline layers entirely.
|
|
64
|
+
|
|
65
|
+
## Rationale
|
|
66
|
+
|
|
67
|
+
- **Explicit user intent**: User knowingly opts into harness overhead. No surprise token costs.
|
|
68
|
+
- **Clean separation**: Normal chat = fast, lean. Harness = formal, verified.
|
|
69
|
+
- **Flag-based flexibility**: `--plan-only` enables plan-then-execute workflow. `--no-verify` for quick fixes.
|
|
70
|
+
- **Matches pi philosophy**: pi has no built-in pipeline. `/harness` command follows pi's extension command pattern.
|
|
71
|
+
|
|
72
|
+
## Consequences
|
|
73
|
+
|
|
74
|
+
### Positive
|
|
75
|
+
- No false positives from automatic detection.
|
|
76
|
+
- User controls pipeline depth per task.
|
|
77
|
+
- Simple mental model: type `/harness` when you want formal verification.
|
|
78
|
+
|
|
79
|
+
### Negative
|
|
80
|
+
- User must remember to use `/harness`. Easy to accidentally bypass.
|
|
81
|
+
- Adds friction for frequent harness users. Mitigated by shell aliases or pi prompt templates.
|
|
82
|
+
|
|
83
|
+
### Mitigations
|
|
84
|
+
- Pi prompt templates: `/harness` can be aliased to `/h`.
|
|
85
|
+
- `AGENTS.md` can recommend harness for code changes.
|
|
86
|
+
- Future: optional automatic detection via config (`harness.autoDetect: true`).
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: decision
|
|
3
|
+
title: "ADR-022: Drift Monitor Pattern Definitions and Turn-Dependent Thresholds"
|
|
4
|
+
status: accepted
|
|
5
|
+
priority: 1
|
|
6
|
+
date: "2026-05-02"
|
|
7
|
+
tags: [adr, harness, l2.5, drift-monitor, thresholds, ck-search]
|
|
8
|
+
sources:
|
|
9
|
+
- "[[HARNESS-PRD]]"
|
|
10
|
+
- "[[adr-018]]"
|
|
11
|
+
- "[[adr-020]]"
|
|
12
|
+
related:
|
|
13
|
+
- "[[adr-018]]"
|
|
14
|
+
supersedes:
|
|
15
|
+
created: 2026-05-02
|
|
16
|
+
updated: 2026-05-02
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
# ADR-022: Drift Monitor Pattern Definitions and Thresholds
|
|
20
|
+
|
|
21
|
+
## Context
|
|
22
|
+
|
|
23
|
+
L2.5 runtime drift monitor detects agent stuckness via 7 rule-based patterns (6 original + 1 added). Detection runs on every `tool_result` event via a sliding window of the last 20 tool calls. Thresholds are configurable in `.pi/harness/config.json`.
|
|
24
|
+
|
|
25
|
+
## Decision
|
|
26
|
+
|
|
27
|
+
### Pattern Definitions
|
|
28
|
+
|
|
29
|
+
#### 1. Repetition Loops
|
|
30
|
+
- **Detection**: Same tool name + same arguments ≥ N times in a row
|
|
31
|
+
- **Threshold**: 3
|
|
32
|
+
- **Nudge**: "You appear to be repeating the same action. Consider a different approach."
|
|
33
|
+
- **Reset on**: Tool call with different args
|
|
34
|
+
|
|
35
|
+
#### 2. Failure Spirals
|
|
36
|
+
- **Detection**: Consecutive tool calls returning error/non-zero exit
|
|
37
|
+
- **Threshold**: 3
|
|
38
|
+
- **Nudge**: "Multiple tool calls are failing. Stop and reassess your approach."
|
|
39
|
+
- **Reset on**: Successful tool call
|
|
40
|
+
|
|
41
|
+
#### 3. Tool Cycling
|
|
42
|
+
- **Detection**: Alternating between 2-3 tools without any write/edit in K turns
|
|
43
|
+
- **Threshold**: 5 turns
|
|
44
|
+
- **Nudge**: "You're cycling between tools without making changes. Act on findings."
|
|
45
|
+
- **Reset on**: Write or edit call
|
|
46
|
+
|
|
47
|
+
#### 4. Silence/Batching (Turn-Dependent)
|
|
48
|
+
- **Detection**: Agent reads/greps/finds many files without write/edit/bash (modifying)
|
|
49
|
+
- **Thresholds**:
|
|
50
|
+
| Turn Range | Threshold | Rationale |
|
|
51
|
+
|------------|-----------|-----------|
|
|
52
|
+
| Turns 1-8 | No limit | Exploration phase. Read freely. |
|
|
53
|
+
| Turns 9-15 | 12 reads without action | Should transition from exploring to doing. |
|
|
54
|
+
| Turns 16+ | 6 reads without action | Analysis paralysis. Agent has enough context. |
|
|
55
|
+
- **Nudge style by severity**:
|
|
56
|
+
- Turns 9-15: "You've read 12 files without making changes. If you're still mapping the codebase, ignore. If ready, act."
|
|
57
|
+
- Turns 16+: "You're deep in exploration. Summarize findings and act."
|
|
58
|
+
- **Reset on**: Write, edit, or modifying bash call
|
|
59
|
+
- **"Action" definition**: write, edit, or bash that modifies filesystem (not `ls`/`cat`/`echo`)
|
|
60
|
+
|
|
61
|
+
#### 5. Rework
|
|
62
|
+
- **Detection**: Editing the same file or overlapping region ≥ N times
|
|
63
|
+
- **Threshold**: 2 edits on same file region
|
|
64
|
+
- **Nudge**: "You've edited this region multiple times. Reassess approach."
|
|
65
|
+
- **Reset on**: Edit on different file or region
|
|
66
|
+
|
|
67
|
+
#### 6. Excessive Search
|
|
68
|
+
- **Detection**: ≥ N consecutive grep/find calls without narrowing queries or finding results
|
|
69
|
+
- **Threshold**: 8 searches
|
|
70
|
+
- **Nudge**: "Consider narrowing your search or using a different approach."
|
|
71
|
+
- **Reset on**: Read or edit after a grep/find that found results
|
|
72
|
+
|
|
73
|
+
#### 7. Obsolete Search (ck routing)
|
|
74
|
+
- **Detection**: ≥ 3 grep/find calls in a row where query is a natural-language phrase (≥ 3 words)
|
|
75
|
+
- **Nudge**: "For semantic searches like 'find authentication logic', try ck_search instead of grep."
|
|
76
|
+
- **Reset on**: Successful ck call or narrowing to single-word grep
|
|
77
|
+
|
|
78
|
+
### Escalation Ladder
|
|
79
|
+
|
|
80
|
+
| Level | Trigger | Action |
|
|
81
|
+
|-------|---------|--------|
|
|
82
|
+
| Soft nudge | First detection | Inject correction prompt into next `before_agent_start` |
|
|
83
|
+
| Strong nudge | Same pattern re-detected after nudge | Stronger language. "STOP. You are stuck. Reassess." |
|
|
84
|
+
| Forced restart | Pattern persists after strong nudge | Inject "RESTART: Clear your mental model. Re-read spec. Start fresh." + reset pattern counters |
|
|
85
|
+
|
|
86
|
+
Escalation thresholds configurable. Default: soft at 1 detection, strong at 2 consecutive, restart at 3.
|
|
87
|
+
|
|
88
|
+
### Config
|
|
89
|
+
|
|
90
|
+
All thresholds configurable in `.pi/harness/config.json` → `driftMonitor.patterns` and `driftMonitor.escalation`.
|
|
91
|
+
|
|
92
|
+
## Rationale
|
|
93
|
+
|
|
94
|
+
- **Turn-dependent batching**: First 8 turns are exploration — penalizing reads here would break legitimate codebase mapping. After turn 16, continued reading signals paralysis.
|
|
95
|
+
- **ck routing**: Grep for semantic queries is an anti-pattern. Nudging toward ck_search saves tokens and improves code discovery.
|
|
96
|
+
- **Sliding window**: Last 20 tool calls is ~4-8 turns of context. Enough to detect patterns, small enough to be responsive.
|
|
97
|
+
- **Configurable**: Every project has different exploration needs. Per-project thresholds prevent false positives.
|
|
98
|
+
|
|
99
|
+
## Consequences
|
|
100
|
+
|
|
101
|
+
### Positive
|
|
102
|
+
- Catches 7 distinct stuckness patterns.
|
|
103
|
+
- Escalation prevents infinite loops.
|
|
104
|
+
- Turn-dependent thresholds balance exploration vs paralysis detection.
|
|
105
|
+
- ck routing improves code discovery.
|
|
106
|
+
|
|
107
|
+
### Negative
|
|
108
|
+
- 20-call sliding window adds memory overhead (minimal — ~2KB state).
|
|
109
|
+
- Turn counting assumes pi doesn't reset turn counter mid-session (verified: pi maintains monotonic turn count).
|
|
110
|
+
|
|
111
|
+
### Mitigations
|
|
112
|
+
- User can disable drift monitor entirely via config or `/harness --no-drift-monitor`.
|
|
113
|
+
- Pattern counters reset on successful write/edit — productive work clears drift state.
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: decision
|
|
3
|
+
title: "ADR-023: Hybrid Spec Format — Structured + Freeform Acceptance Criteria"
|
|
4
|
+
status: accepted
|
|
5
|
+
priority: 1
|
|
6
|
+
date: "2026-05-02"
|
|
7
|
+
tags: [adr, harness, l1, spec, yaml, acceptance-criteria]
|
|
8
|
+
sources:
|
|
9
|
+
- "[[HARNESS-PRD]]"
|
|
10
|
+
- "[[adr-020]]"
|
|
11
|
+
related:
|
|
12
|
+
- "[[adr-020]]"
|
|
13
|
+
- "[[adr-021]]"
|
|
14
|
+
supersedes:
|
|
15
|
+
created: 2026-05-02
|
|
16
|
+
updated: 2026-05-02
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
# ADR-023: Hybrid Spec Format — Structured + Freeform Acceptance Criteria
|
|
20
|
+
|
|
21
|
+
## Context
|
|
22
|
+
|
|
23
|
+
L1 spec hardening must produce a content-addressed specification that L2 (planning), L3 (execution), and L4 (adversarial verification) can all consume. The spec must support both deterministic auto-verifiable criteria (tests pass, lint passes) and freeform criteria (security properties, behavioral guarantees) that require LLM judgment.
|
|
24
|
+
|
|
25
|
+
## Decision
|
|
26
|
+
|
|
27
|
+
**Use a hybrid YAML format with structured deterministic criteria and freeform acceptance criteria.**
|
|
28
|
+
|
|
29
|
+
### Schema
|
|
30
|
+
|
|
31
|
+
`.pi/harness/specs/<sha256-hash>.yaml`:
|
|
32
|
+
|
|
33
|
+
```yaml
|
|
34
|
+
request: "Fix the authentication timeout bug in auth.ts"
|
|
35
|
+
ambiguities:
|
|
36
|
+
- question: "Which auth library is used?"
|
|
37
|
+
answer: "JWT in src/auth.ts — existing."
|
|
38
|
+
resolved_by: "user"
|
|
39
|
+
- question: "Must the fix be backward compatible?"
|
|
40
|
+
answer: "Yes. Cannot change token format."
|
|
41
|
+
resolved_by: "user"
|
|
42
|
+
intent: "JWT tokens expire prematurely because the TTL calculation uses seconds instead of milliseconds"
|
|
43
|
+
scope:
|
|
44
|
+
include: ["src/auth.ts", "src/middleware/auth.ts"]
|
|
45
|
+
exclude: ["src/auth/__tests__/*"]
|
|
46
|
+
constraints:
|
|
47
|
+
- "Must be backward compatible with existing tokens"
|
|
48
|
+
- "Must not change the API surface of verifyToken()"
|
|
49
|
+
- "Must handle edge case: tokens issued before the fix"
|
|
50
|
+
acceptance_criteria:
|
|
51
|
+
deterministic:
|
|
52
|
+
- type: tests_pass
|
|
53
|
+
pattern: "auth/**"
|
|
54
|
+
- type: lint_passes
|
|
55
|
+
- type: typescript_compiles
|
|
56
|
+
- type: no_regression
|
|
57
|
+
baseline: "main"
|
|
58
|
+
freeform:
|
|
59
|
+
- "Tokens issued with the old TTL (seconds) must still validate"
|
|
60
|
+
- "New tokens must use the correct TTL (milliseconds)"
|
|
61
|
+
- "No new security vulnerabilities introduced"
|
|
62
|
+
- "The fix must be contained to auth.ts — no changes to unrelated files"
|
|
63
|
+
model: anthropic/claude-sonnet-4-6
|
|
64
|
+
hardened_at: "2026-05-02T14:30:00Z"
|
|
65
|
+
clarification_rounds: 1
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
### Field Definitions
|
|
69
|
+
|
|
70
|
+
| Field | Required | Description |
|
|
71
|
+
|-------|----------|-------------|
|
|
72
|
+
| `request` | Yes | Original user request (verbatim) |
|
|
73
|
+
| `ambiguities` | No | Resolved ambiguities with source (user/auto) |
|
|
74
|
+
| `intent` | Yes | One-sentence distilled intent after hardening |
|
|
75
|
+
| `scope` | No | Files/directories in and out of scope |
|
|
76
|
+
| `constraints` | No | Non-negotiable constraints |
|
|
77
|
+
| `acceptance_criteria.deterministic` | No | Auto-verifiable criteria (L3, P16) |
|
|
78
|
+
| `acceptance_criteria.freeform` | Yes | LLM-judged criteria (L4 critic) |
|
|
79
|
+
| `model` | Yes | Model that generated the spec |
|
|
80
|
+
| `hardened_at` | Yes | Timestamp |
|
|
81
|
+
| `clarification_rounds` | Yes | How many Q&A rounds were needed |
|
|
82
|
+
|
|
83
|
+
### Spec Hash
|
|
84
|
+
|
|
85
|
+
`SHA256` of the canonical YAML serialization (sorted keys, consistent indentation). Immutable after `hardened_at` timestamp. Any spec change = new hash = new file.
|
|
86
|
+
|
|
87
|
+
### Enforcement
|
|
88
|
+
|
|
89
|
+
- L3: checks deterministic criteria at each grounding checkpoint. Auto-verifies via `vitest`, `biome check`, `tsc --noEmit`.
|
|
90
|
+
- L4: critic reads freeform criteria as its attack surface. Critic's pass/fail judgment is based on freeform criteria compliance.
|
|
91
|
+
- P16: runs deterministic gates regardless of L4 outcome.
|
|
92
|
+
|
|
93
|
+
## Rationale
|
|
94
|
+
|
|
95
|
+
- **Hybrid = complete**: Deterministic criteria catch syntax/type/test failures without LLM cost. Freeform criteria catch semantic issues that only an LLM can judge.
|
|
96
|
+
- **Both required**: If only deterministic criteria, security and behavioral bugs slip through. If only freeform, every verification burns LLM tokens.
|
|
97
|
+
- **Content-addressed**: Spec is immutable after hardening. No scope creep. L4 critic verifies against the same spec that L1 produced.
|
|
98
|
+
- **Resolved ambiguities recorded**: Trail of Q&A decisions prevents re-litigation.
|
|
99
|
+
|
|
100
|
+
## Consequences
|
|
101
|
+
|
|
102
|
+
### Positive
|
|
103
|
+
- Single ground truth for L2, L3, L4.
|
|
104
|
+
- Immutable spec prevents scope creep.
|
|
105
|
+
- Q&A trail provides audit log of clarifications.
|
|
106
|
+
|
|
107
|
+
### Negative
|
|
108
|
+
- Freeform criteria depend on L4 critic availability. During Groups 1-2 (before L4), freeform criteria are unchecked.
|
|
109
|
+
- Spec YAML can become large for complex tasks.
|
|
110
|
+
|
|
111
|
+
### Mitigations
|
|
112
|
+
- During Groups 1-2, only deterministic criteria enforced. Freeform criteria stored but skipped.
|
|
113
|
+
- Spec files are gitignored (`.pi/harness/specs/`). Not committed. Re-built per harness run.
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: decision
|
|
3
|
+
title: "ADR-024: Compact Plan Summary in System Prompt"
|
|
4
|
+
status: accepted
|
|
5
|
+
priority: 1
|
|
6
|
+
date: "2026-05-02"
|
|
7
|
+
tags: [adr, harness, l2, plan, system-prompt, context]
|
|
8
|
+
sources:
|
|
9
|
+
- "[[HARNESS-PRD]]"
|
|
10
|
+
- "[[adr-020]]"
|
|
11
|
+
- "[[adr-023]]"
|
|
12
|
+
related:
|
|
13
|
+
- "[[adr-020]]"
|
|
14
|
+
- "[[adr-023]]"
|
|
15
|
+
supersedes:
|
|
16
|
+
created: 2026-05-02
|
|
17
|
+
updated: 2026-05-02
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
# ADR-024: Compact Plan Summary in System Prompt
|
|
21
|
+
|
|
22
|
+
## Context
|
|
23
|
+
|
|
24
|
+
L2 generates a detailed YAML plan (ADR-020). The agent must follow it during L3 execution. Injecting the full plan into the system prompt burns context tokens on every turn. Storing it only on disk risks the agent losing track of the plan.
|
|
25
|
+
|
|
26
|
+
## Decision
|
|
27
|
+
|
|
28
|
+
**Inject a compact summary into the system prompt. Full plan YAML on disk. Agent instructed to re-read at checkpoints.**
|
|
29
|
+
|
|
30
|
+
### Summary Format (in system prompt)
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
TASK PLAN → .pi/harness/plans/<hash>.yaml
|
|
34
|
+
1. add-user-model [CHECKPOINT] ← no deps
|
|
35
|
+
2. add-auth-middleware ← after add-user-model
|
|
36
|
+
3. add-rate-limiting ← after add-auth-middleware [CHECKPOINT]
|
|
37
|
+
|
|
38
|
+
CONTRACT: Complete tasks in order. Do not skip checkpoints.
|
|
39
|
+
At each [CHECKPOINT], re-read plan YAML and verify doneCriteria
|
|
40
|
+
before proceeding to next task.
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
### Agent Instructions
|
|
44
|
+
|
|
45
|
+
Appended to system prompt:
|
|
46
|
+
- Read plan YAML before starting work
|
|
47
|
+
- Execute tasks in dependency order
|
|
48
|
+
- At each checkpoint: re-read plan YAML, verify all `doneCriteria` for completed tasks
|
|
49
|
+
- If stuck or uncertain about next step: re-read plan YAML
|
|
50
|
+
- Do not work on future tasks before current task's `doneCriteria` are met
|
|
51
|
+
|
|
52
|
+
### L2.5 Drift Integration
|
|
53
|
+
|
|
54
|
+
Drift monitor (ADR-022) adds pattern #8: **plan deviation**. Detected when agent edits files outside current task scope or works on tasks out of dependency order. Nudge: "You're working outside the current plan task. Re-read plan and refocus."
|
|
55
|
+
|
|
56
|
+
## Rationale
|
|
57
|
+
|
|
58
|
+
- **Minimal context burn**: 3-5 lines per plan in system prompt vs potentially hundreds of lines of full YAML.
|
|
59
|
+
- **Agent autonomy**: Agent decides when to re-read the plan. Not forced to hold it in context at all times.
|
|
60
|
+
- **Checkpoint enforcement**: Re-reading at checkpoints ensures the agent re-grounds before proceeding.
|
|
61
|
+
- **Drift integration**: Plan deviation detection catches scope creep early.
|
|
62
|
+
|
|
63
|
+
## Consequences
|
|
64
|
+
|
|
65
|
+
### Positive
|
|
66
|
+
- Context-efficient. Plan details don't consume tokens on every turn.
|
|
67
|
+
- Agent has access to full plan details when needed.
|
|
68
|
+
- Drift monitor catches plan deviation.
|
|
69
|
+
|
|
70
|
+
### Negative
|
|
71
|
+
- Agent must be trusted to re-read the plan. Lazy agents may skip re-reading.
|
|
72
|
+
- Plan YAML file path is in system prompt — agent could accidentally edit it. Mitigated by file permissions or drift detection.
|
|
73
|
+
- Summary format is lossy — task descriptions and criteria details only in YAML file.
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: decision
|
|
3
|
+
title: "ADR-025: GitHub Issues as Sole Spec Storage + harness-setup Bootstrap"
|
|
4
|
+
status: accepted
|
|
5
|
+
priority: 1
|
|
6
|
+
date: "2026-05-02"
|
|
7
|
+
tags: [adr, harness, specs, github-issues, storage, setup]
|
|
8
|
+
sources:
|
|
9
|
+
- "[[HARNESS-PRD]]"
|
|
10
|
+
- "[[adr-023]]"
|
|
11
|
+
- "[[adr-021]]"
|
|
12
|
+
related:
|
|
13
|
+
- "[[adr-023]]"
|
|
14
|
+
- "[[adr-021]]"
|
|
15
|
+
supersedes: "PRD P1.4 (dual-tier local + GitHub Issues)"
|
|
16
|
+
created: 2026-05-02
|
|
17
|
+
updated: 2026-05-02
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
# ADR-025: GitHub Issues as Sole Spec Storage + harness-setup
|
|
21
|
+
|
|
22
|
+
## Context
|
|
23
|
+
|
|
24
|
+
PRD P1.4 specified dual-tier spec storage: local `.pi/harness/specs/<hash>.json` cache + GitHub Issue for cross-session ledger. Local cache adds complexity and two sources of truth. GitHub Issues alone provides a single source of truth with built-in cross-session durability, issue numbers as IDs, and no local file management.
|
|
25
|
+
|
|
26
|
+
P2b (iMAD pre-debate gating classifier) was considered for Group 1 but is deferred until L4 debate infrastructure exists (Group 3).
|
|
27
|
+
|
|
28
|
+
## Decision
|
|
29
|
+
|
|
30
|
+
**Use GitHub Issues as the sole spec storage. No local cache. If GitHub is unreachable, harness fails with clear error.**
|
|
31
|
+
|
|
32
|
+
### Issue Format
|
|
33
|
+
|
|
34
|
+
Each harness spec is a GitHub Issue in the project's repository, using a custom issue template.
|
|
35
|
+
|
|
36
|
+
Issue body contains the spec YAML (ADR-023) in a markdown code block:
|
|
37
|
+
|
|
38
|
+
```markdown
|
|
39
|
+
## Spec
|
|
40
|
+
|
|
41
|
+
\`\`\`yaml
|
|
42
|
+
request: "Fix the authentication timeout bug in auth.ts"
|
|
43
|
+
intent: "JWT tokens expire prematurely..."
|
|
44
|
+
acceptance_criteria:
|
|
45
|
+
deterministic:
|
|
46
|
+
- type: tests_pass
|
|
47
|
+
pattern: "auth/**"
|
|
48
|
+
freeform:
|
|
49
|
+
- "Tokens issued with old TTL must still validate"
|
|
50
|
+
...
|
|
51
|
+
\`\`\`
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### Issue Template
|
|
55
|
+
|
|
56
|
+
`.github/ISSUE_TEMPLATE/harness-spec.yml`:
|
|
57
|
+
|
|
58
|
+
```yaml
|
|
59
|
+
name: Harness Spec
|
|
60
|
+
description: Auto-generated hardened spec from pi harness
|
|
61
|
+
title: "harness: [spec title]"
|
|
62
|
+
labels: ["harness", "spec"]
|
|
63
|
+
body:
|
|
64
|
+
- type: textarea
|
|
65
|
+
attributes:
|
|
66
|
+
label: Spec
|
|
67
|
+
description: Hardened specification (auto-generated)
|
|
68
|
+
render: yaml
|
|
69
|
+
validations:
|
|
70
|
+
required: true
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### Storage Model
|
|
74
|
+
|
|
75
|
+
- **Spec ID**: GitHub issue number (replaces SHA256 hash as stable ID)
|
|
76
|
+
- **Issue title**: `harness: <intent truncated to 80 chars>`
|
|
77
|
+
- **Issue labels**: `harness`, `spec`, plus status labels (`in-progress`, `verified`, `failed`)
|
|
78
|
+
- **Issue close**: Closed when task completes (L4 verdict + P16 pass). Comment with verdict summary.
|
|
79
|
+
- **Issue reopen**: If L4 fails and agent retries, same issue gets reopened.
|
|
80
|
+
|
|
81
|
+
### Failure Mode
|
|
82
|
+
|
|
83
|
+
If GitHub API is unreachable (no network, rate limited, token expired):
|
|
84
|
+
- Harness fails immediately with: "GitHub API unreachable. Spec storage requires GitHub connectivity."
|
|
85
|
+
- User sees clear error, not a crash.
|
|
86
|
+
- No offline mode. No local fallback.
|
|
87
|
+
|
|
88
|
+
### harness-setup Command
|
|
89
|
+
|
|
90
|
+
One-time bootstrap registered as a pi command:
|
|
91
|
+
|
|
92
|
+
```
|
|
93
|
+
/harness-setup
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
Runs the following checklist interactively:
|
|
97
|
+
|
|
98
|
+
| Step | Action | Confirm? |
|
|
99
|
+
|------|--------|----------|
|
|
100
|
+
| 1. Install sub-agents | `pi install npm:@tintinweb/pi-subagents` | Auto |
|
|
101
|
+
| 2. Create wiki vault | Invoke `/wiki` prompt template (ensures `wiki/`, `vault/` exist) | Auto |
|
|
102
|
+
| 3. Create issue template | Write `.github/ISSUE_TEMPLATE/harness-spec.yml` | User confirm |
|
|
103
|
+
| 4. Create harness config | Generate `.pi/harness/config.json` from defaults | Auto |
|
|
104
|
+
| 5. Create critic agent | Write `.pi/agents/critic.md` with L4 critic definition | Auto |
|
|
105
|
+
| 6. Verify firecrawl | Check CLI, prompt install if missing | Auto |
|
|
106
|
+
| 7. Verify defuddle | Check CLI, prompt install if missing | Auto |
|
|
107
|
+
| 8. Verify GitHub | `gh auth status`, prompt login if missing | Auto |
|
|
108
|
+
| 9. Create consensus dir | `mkdir -p wiki/consensus/` | Auto |
|
|
109
|
+
|
|
110
|
+
## Rationale
|
|
111
|
+
|
|
112
|
+
- **Single source of truth**: No sync between local cache and remote. GitHub IS the store.
|
|
113
|
+
- **Cross-session durable**: Issues survive between sessions, machines, forks.
|
|
114
|
+
- **Built-in IDs**: Issue numbers are stable, sequential, human-friendly identifiers.
|
|
115
|
+
- **Labels as state**: Issue labels track spec lifecycle without custom database.
|
|
116
|
+
- **Fail-fast**: No offline fallback. Forces clean failure instead of silent divergence.
|
|
117
|
+
|
|
118
|
+
## Consequences
|
|
119
|
+
|
|
120
|
+
### Positive
|
|
121
|
+
- Zero local storage management.
|
|
122
|
+
- Specs visible in GitHub UI for human review.
|
|
123
|
+
- Issue labels enable filtering: "show all verified harness specs."
|
|
124
|
+
- Cross-session without any persistence layer.
|
|
125
|
+
|
|
126
|
+
### Negative
|
|
127
|
+
- **Network dependency**: No offline work. Harness won't function without GitHub.
|
|
128
|
+
- **Rate limits**: GitHub API has rate limits (5,000/hr authenticated). Harness spec operations are low-volume (1-2 per session), well within limits.
|
|
129
|
+
- **No local caching**: Even a transient network blip blocks harness. Mitigated by clear error message.
|
|
130
|
+
- **Issue noise**: Harness specs will appear in the project's GitHub Issues alongside bugs and features. Mitigated by `harness` label for filtering.
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: decision
|
|
3
|
+
title: "ADR-026: Replace CLI Cursor Provider with Native Cursor SDK Provider"
|
|
4
|
+
status: accepted
|
|
5
|
+
priority: 1
|
|
6
|
+
date: "2026-05-04"
|
|
7
|
+
tags: [adr, provider, cursor, sdk, pi]
|
|
8
|
+
sources:
|
|
9
|
+
- "https://pi.dev/docs/latest/custom-provider"
|
|
10
|
+
- "https://cursor.com/docs/api/sdk/typescript"
|
|
11
|
+
related:
|
|
12
|
+
- "[[adr-012]]"
|
|
13
|
+
created: 2026-05-04
|
|
14
|
+
updated: 2026-05-04
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
# ADR-026: Replace CLI Cursor Provider with Native Cursor SDK Provider
|
|
18
|
+
|
|
19
|
+
## Context
|
|
20
|
+
|
|
21
|
+
Current setup used `npm:@netandreus/pi-cursor-provider`, which wrapped Cursor CLI calls.
|
|
22
|
+
That path was brittle and not purely programmatic.
|
|
23
|
+
|
|
24
|
+
Project needs clean provider integration through Pi `registerProvider(..., streamSimple)` and Cursor TypeScript SDK.
|
|
25
|
+
|
|
26
|
+
## Decision
|
|
27
|
+
|
|
28
|
+
Use repo-local extension `.pi/extensions/cursor-sdk-provider.ts`.
|
|
29
|
+
|
|
30
|
+
- Register provider name: `cursor-sdk`
|
|
31
|
+
- Implement `streamSimple` using `@cursor/sdk` (`Agent.create`, `agent.send`, `run.stream`, `run.wait`)
|
|
32
|
+
- Remove `npm:@netandreus/pi-cursor-provider` from `.pi/settings.json`
|
|
33
|
+
- Keep auth via `CURSOR_API_KEY`
|
|
34
|
+
|
|
35
|
+
## Alternatives considered
|
|
36
|
+
|
|
37
|
+
1. Keep external CLI package
|
|
38
|
+
- Rejected: CLI indirection, less control, hacky behavior.
|
|
39
|
+
2. Keep external package but fork it
|
|
40
|
+
- Rejected: extra maintenance for little gain.
|
|
41
|
+
|
|
42
|
+
## Rationale
|
|
43
|
+
|
|
44
|
+
Cursor SDK gives stable programmatic API, event stream access, and direct TypeScript types.
|
|
45
|
+
Pi custom-provider API supports this natively through `streamSimple`.
|
|
46
|
+
|
|
47
|
+
## Consequences
|
|
48
|
+
|
|
49
|
+
### Positive
|
|
50
|
+
- Cleaner architecture
|
|
51
|
+
- No CLI shell glue
|
|
52
|
+
- Local code ownership of provider behavior
|
|
53
|
+
|
|
54
|
+
### Negative
|
|
55
|
+
- Must maintain local provider extension on future SDK changes
|
|
56
|
+
- Initial model defaults may need tuning per team account/model availability
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: decision
|
|
3
|
+
status: active
|
|
4
|
+
priority: 2
|
|
5
|
+
date: "2026-04-28"
|
|
6
|
+
owner: "aryaniyaps"
|
|
7
|
+
due_date: ""
|
|
8
|
+
context: "Should the architecture wiki be co-located in the same repository as the application source code?"
|
|
9
|
+
tags: [decision, architecture, documentation]
|
|
10
|
+
created: "2026-04-28"
|
|
11
|
+
updated: "2026-04-28"
|
|
12
|
+
title: "Co-locating Wiki with Codebase"
|
|
13
|
+
---
|
|
14
|
+
# Co-locating Wiki with Codebase
|
|
15
|
+
|
|
16
|
+
## Context
|
|
17
|
+
Deciding whether to store the codebase map and architecture wiki inside the source repository or in a separate documentation vault.
|
|
18
|
+
|
|
19
|
+
## Options Considered
|
|
20
|
+
1. **Co-location (Monorepo approach)**: Wiki lives in `wiki/` and `CLAUDE.md` in the root.
|
|
21
|
+
2. **Separate Vault**: Codebase is purely code; wiki is an isolated Obsidian vault elsewhere.
|
|
22
|
+
|
|
23
|
+
## Decision
|
|
24
|
+
**Option 1: Co-location.**
|
|
25
|
+
|
|
26
|
+
## Rationale
|
|
27
|
+
- **Proximity**: Developers can update code and architecture documentation in the same commit, preventing the wiki from becoming stale (the "doc rot" problem).
|
|
28
|
+
- **Tooling Integration**: Agent skills (`wiki`, `wiki-ingest`) can seamlessly traverse the codebase and cross-reference real files because they share the same filesystem context.
|
|
29
|
+
- **Git as Single Source of Truth**: Branching, PR reviews, and versioning apply to code and its architectural reasoning simultaneously.
|
|
30
|
+
|
|
31
|
+
## Consequences
|
|
32
|
+
- The repository clone size slightly increases (markdown is negligible, but attachments/images could add up).
|
|
33
|
+
- Non-code contributors (if any) need git access to update documentation.
|
|
34
|
+
- We must enforce policies (e.g., `.gitignore` rules or pre-commit hooks) so that generated wiki artifacts don't interfere with the build process.
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: entity
|
|
3
|
+
entity_type: person
|
|
4
|
+
title: "Anders Hejlsberg"
|
|
5
|
+
role: "Creator of Turbo Pascal, Delphi, C#, TypeScript"
|
|
6
|
+
active: true
|
|
7
|
+
tags: [person, language-design, typescript, csharp, microsoft]
|
|
8
|
+
related:
|
|
9
|
+
- "[[hejlsberg-7-learnings]]"
|
|
10
|
+
- "[[fast-feedback-loops]]"
|
|
11
|
+
- "[[behavioral-compatibility-over-purity]]"
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Anders Hejlsberg
|
|
15
|
+
|
|
16
|
+
Creator of Turbo Pascal (Borland, 1983), Delphi (1995), lead architect of C# (Microsoft, 2000), and designer of TypeScript (2012). Self-taught compiler writer. Still writes code daily — "my calling is writing code."
|
|
17
|
+
|
|
18
|
+
## Engineering Practices
|
|
19
|
+
|
|
20
|
+
- **Fast feedback as first principle**: Turbo Pascal's impact came from shortening edit-compile-run to instants. TypeScript's value equally from tooling responsiveness as from the type system.
|
|
21
|
+
- **Stay hands-on**: Discovered hash tables from a book while writing Turbo Pascal 2.0 — doubled compiler speed. Wrote the TypeScript type checker core himself. "I treated work as the place where I wouldn't work and then I go home and work."
|
|
22
|
+
- **Compromise over purity**: TypeScript extended JavaScript instead of replacing it. C# merged VB6 ease with C++ power. "Languages do not succeed because they are perfectly designed. They succeed because they accommodate the way teams actually work."
|
|
23
|
+
- **Behavioral compatibility**: When porting TypeScript compiler to Go, the goal was semantic fidelity — "the new compiler needed to behave exactly like the old one, including quirks and edge cases."
|
|
24
|
+
- **Open development**: 2014 move to GitHub was TypeScript's turning point. "Our entire workflow is in the open... no secrets on this project."
|
|
25
|
+
- **On AI coding**: Grounding/constraint matters more than generation. Type systems and refactoring tools become essential guardrails. "The most valuable tools in an AI-assisted workflow aren't the ones that generate the most code, but the ones that constrain it correctly."
|
|
26
|
+
|
|
27
|
+
## Relevance to AI Coding Harness
|
|
28
|
+
|
|
29
|
+
Hejlsberg's career is the strongest bridge between legendary programming and AI-assisted development. His 7 learnings (2026 GitHub blog) directly address AI coding workflow: fast feedback matters most, behavioral compatibility over purity, visibility builds trust, and deterministic constraints (type checkers, linters) as guardrails around AI output. The idea that "grounding matters more than generation" is a direct harness design principle.
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: entity
|
|
3
|
+
status: stub
|
|
4
|
+
created: 2026-05-02
|
|
5
|
+
updated: 2026-05-02
|
|
6
|
+
tags: [entity, ai-lab]
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Anthropic
|
|
10
|
+
|
|
11
|
+
AI research company. Creator of Claude (Opus, Sonnet, Haiku models) and the Claude Code agentic coding tool.
|
|
12
|
+
|
|
13
|
+
## Relevance to Harness
|
|
14
|
+
|
|
15
|
+
- [[anthropic-prompt-best-practices]] — official prompting guidance
|
|
16
|
+
- [[anthropic2026-harness-design]] — GAN-inspired generator-evaluator architecture
|
|
17
|
+
- [[claude-code-architecture-vila-lab-2026]] — Claude Code architecture analysis
|