ultimate-pi 0.1.2 → 0.1.4
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,17 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: concept
|
|
3
|
+
status: stub
|
|
4
|
+
created: 2026-05-02
|
|
5
|
+
updated: 2026-05-02
|
|
6
|
+
tags: [concept, consensus, flow]
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Consensus Debate Flow
|
|
10
|
+
|
|
11
|
+
The flow diagram / process for multi-agent consensus debates in the harness pipeline. Defines when debate is triggered (selective routing via iMAD), how rounds proceed, and how verdicts are filed.
|
|
12
|
+
|
|
13
|
+
## References
|
|
14
|
+
|
|
15
|
+
- [[consensus-debate]]
|
|
16
|
+
- [[selective-debate-routing]]
|
|
17
|
+
- [[adr-011]]
|
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: concept
|
|
3
|
+
title: "Consensus Debate"
|
|
4
|
+
created: 2026-04-30
|
|
5
|
+
updated: 2026-04-30
|
|
6
|
+
status: active
|
|
7
|
+
tags: [harness, consensus, debate, multi-agent, dialectic, protocol]
|
|
8
|
+
related:
|
|
9
|
+
- "[[adr-011]]"
|
|
10
|
+
- "[[agentic-harness]]"
|
|
11
|
+
- "[[adversarial-verification]]"
|
|
12
|
+
- "[[pi-messenger-analysis]]"
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# Consensus Debate
|
|
16
|
+
|
|
17
|
+
A structured multi-agent debate protocol for the harness pipeline. Replaces single-pass review with genuine back-and-forth argument — the kind that produces the best human software decisions.
|
|
18
|
+
|
|
19
|
+
## First Principles
|
|
20
|
+
|
|
21
|
+
### Why arguing works for humans
|
|
22
|
+
|
|
23
|
+
The dialectical process (thesis → antithesis → synthesis) is the engine of reasoning:
|
|
24
|
+
|
|
25
|
+
1. **Position**: Alice proposes X
|
|
26
|
+
2. **Counter**: Bob identifies flaw in X
|
|
27
|
+
3. **Rebuttal**: Alice refines X → X'
|
|
28
|
+
4. **Counter**: Bob finds deeper flaw in X'
|
|
29
|
+
5. **Rebuttal**: Alice refines X' → X''
|
|
30
|
+
6. **Convergence**: Bob cannot find further flaws. Consensus.
|
|
31
|
+
|
|
32
|
+
Each round forces deeper reasoning. The first counter is often shallow — it's the REBUTTAL that reveals the real insight, because defending a position requires understanding it more deeply than attacking it.
|
|
33
|
+
|
|
34
|
+
### Why this applies even more to agents
|
|
35
|
+
|
|
36
|
+
Agents lack intuition. They cannot "sense" something is wrong. They cannot have a "gut feeling" that a design is fragile.
|
|
37
|
+
|
|
38
|
+
Multi-round argument is a **substitute for intuition**:
|
|
39
|
+
- Round 1: Surface-level objections (syntax, naming, obvious gaps)
|
|
40
|
+
- Round 2: Structural objections (dependency cycles, coupling, missing edge cases)
|
|
41
|
+
- Round 3: Philosophical objections (wrong abstraction, incorrect model of the problem)
|
|
42
|
+
|
|
43
|
+
Without rounds 2-3, agents miss everything below the surface.
|
|
44
|
+
|
|
45
|
+
### Why single-pass review is insufficient
|
|
46
|
+
|
|
47
|
+
L4 (Adversarial Verification) currently does ONE attack pass. The critic finds what it can in one shot, and that's it. But the critic's first pass is limited by its own blind spots — it can only attack what it sees immediately. A defender's rebuttal ("no, because X") often REVEALS a deeper flaw the critic didn't consider ("wait, if X is your assumption, then what about Y?"). This dynamic cannot happen in a single pass.
|
|
48
|
+
|
|
49
|
+
## Protocol Design
|
|
50
|
+
|
|
51
|
+
### DebateSession
|
|
52
|
+
|
|
53
|
+
```
|
|
54
|
+
DebateSession {
|
|
55
|
+
topic: string // What is being debated
|
|
56
|
+
scope: LayerScope // Which harness layer invoked this
|
|
57
|
+
participants: Agent[] // 2+ agents with defined roles
|
|
58
|
+
budget: ConsensusBudget // Termination conditions
|
|
59
|
+
rounds: Round[] // Accumulated argument rounds
|
|
60
|
+
verdict: Verdict | null // Final outcome
|
|
61
|
+
}
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### ConsensusBudget
|
|
65
|
+
|
|
66
|
+
```
|
|
67
|
+
ConsensusBudget {
|
|
68
|
+
maxRounds: number // Hard cap (default: 3-4 depending on layer)
|
|
69
|
+
maxTokensPerRound: number // Per-agent token limit per round
|
|
70
|
+
maxWallClockMs: number // Timeout (default: 120s)
|
|
71
|
+
convergenceRounds: number // Rounds without position change to declare convergence (default: 1)
|
|
72
|
+
}
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### Round Structure
|
|
76
|
+
|
|
77
|
+
Each round has two phases:
|
|
78
|
+
|
|
79
|
+
```
|
|
80
|
+
Round {
|
|
81
|
+
number: number
|
|
82
|
+
attacker: Turn // Critic's argument
|
|
83
|
+
defender: Turn // Proposer's rebuttal
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
Turn {
|
|
87
|
+
agent: string // Agent name
|
|
88
|
+
role: "attacker" | "defender"
|
|
89
|
+
position: string // Succinct: what this agent asserts
|
|
90
|
+
counter_to: string // Which specific claim is being countered
|
|
91
|
+
evidence_refs: string[] // References to spec, code, wiki pages
|
|
92
|
+
confidence_change: number // Did this turn shift confidence? (-1, 0, +1)
|
|
93
|
+
}
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### Verdict Semantics
|
|
97
|
+
|
|
98
|
+
| Verdict | Meaning | Harness action |
|
|
99
|
+
|---------|---------|---------------|
|
|
100
|
+
| `CONSENSUS_REACHED` | Both sides agree on final position | File winning consensus to wiki as permanent alignment record, then proceed to next layer |
|
|
101
|
+
| `DEADLOCK` | Positions unchanged after `convergenceRounds` rounds | File both positions + deadlock analysis to wiki. Escalate to human. |
|
|
102
|
+
| `BUDGET_EXHAUSTED` | Max rounds or tokens hit without convergence | File last positions + exhaustion analysis to wiki. Use last agreed position if any; otherwise escalate |
|
|
103
|
+
| `TIMEOUT` | Wall-clock time exceeded | File partial transcript to wiki. Escalate |
|
|
104
|
+
|
|
105
|
+
### Convergence Detection
|
|
106
|
+
|
|
107
|
+
Positions are hashed (deterministic). If the defender's position hash is identical for `convergenceRounds` consecutive rounds, and the attacker has presented new counters each time, but the position survived, we have convergence.
|
|
108
|
+
|
|
109
|
+
Alternatively: if the attacker explicitly signals "no further objections" by setting `confidence_change: 0` and an empty `counter_to`, that's consensus.
|
|
110
|
+
|
|
111
|
+
## Integration Points
|
|
112
|
+
|
|
113
|
+
### L1: Spec Debate
|
|
114
|
+
|
|
115
|
+
**Purpose**: Argue about whether a spec is sufficiently hardened.
|
|
116
|
+
|
|
117
|
+
**Participants**: Spec proposer (defender) + Spec critic (attacker)
|
|
118
|
+
|
|
119
|
+
**Example debate**:
|
|
120
|
+
|
|
121
|
+
| Round | Attacker (Critic) | Defender (Proposer) |
|
|
122
|
+
|-------|-------------------|---------------------|
|
|
123
|
+
| 1 | "You didn't specify error behavior for network timeout" | "Added: timeout → retry 3x with exponential backoff, then fail with TIMEOUT_ERROR" |
|
|
124
|
+
| 2 | "What about partial writes during retry? Is the operation idempotent?" | "Spec now requires idempotency key. Each retry reuses the same key. Server deduplicates." |
|
|
125
|
+
| 3 | "No further objections. Spec is complete." | — |
|
|
126
|
+
|
|
127
|
+
**Verdict**: CONSENSUS_REACHED. Winning consensus filed to `wiki/consensus/spec-[slug].md`. Spec proceeds to L2.
|
|
128
|
+
|
|
129
|
+
**Budget**: 3 rounds, ~2K tokens/round.
|
|
130
|
+
|
|
131
|
+
### L2: Plan Debate
|
|
132
|
+
|
|
133
|
+
**Purpose**: Argue about plan structure, dependencies, and feasibility.
|
|
134
|
+
|
|
135
|
+
**Participants**: Planner (defender) + Plan critic (attacker)
|
|
136
|
+
|
|
137
|
+
**Example debate**:
|
|
138
|
+
|
|
139
|
+
| Round | Attacker | Defender |
|
|
140
|
+
|-------|----------|----------|
|
|
141
|
+
| 1 | "Task 3 depends on Task 1 and Task 2 — but Task 2 also reads the output of Task 3. Circular dependency." | "Task 2 only reads Task 3's OUTPUT SCHEMA, not its data. Dependency is on the interface, not the implementation. Restructured: Task 2 depends on the schema definition step, not Task 3." |
|
|
142
|
+
| 2 | "Task 4 (DB migration) has no rollback plan. If migration fails after Task 5 (data transform) runs, we're in an inconsistent state." | "Added Task 4b: migration verification + rollback trigger. Task 4 and 4b form an atomic pair. Task 5 only runs after 4b passes." |
|
|
143
|
+
| 3 | "No further objections. Plan is executable." | — |
|
|
144
|
+
|
|
145
|
+
**Verdict**: CONSENSUS_REACHED. Winning consensus filed to `wiki/consensus/plan-[slug].md`. Plan proceeds to L3.
|
|
146
|
+
|
|
147
|
+
**Budget**: 3 rounds, ~3K tokens/round.
|
|
148
|
+
|
|
149
|
+
### L4: Multi-Round Adversarial Attack
|
|
150
|
+
|
|
151
|
+
**Purpose**: Genuine debate about implementation correctness and spec compliance.
|
|
152
|
+
|
|
153
|
+
**Participants**: Implementer (defender) + Critic (attacker)
|
|
154
|
+
|
|
155
|
+
This replaces the current single-pass L4 critic. Instead of one attack, the critic gets multiple rounds to find increasingly subtle flaws.
|
|
156
|
+
|
|
157
|
+
**Budget**: 4 rounds, ~2K tokens/round. Winning consensus filed to `wiki/consensus/verify-[slug].md`.
|
|
158
|
+
|
|
159
|
+
## Token Budget Impact
|
|
160
|
+
|
|
161
|
+
| Activity | Current | With Consensus | Delta |
|
|
162
|
+
|----------|---------|---------------|-------|
|
|
163
|
+
| L1 Spec Hardening | ~2,000 | ~6,000 (3 rounds) | +4,000 |
|
|
164
|
+
| L2 Planning + review | ~5,000 | ~10,000 (3 rounds) | +5,000 |
|
|
165
|
+
| L4 Adversarial | ~4,000 | ~8,000 (4 rounds) | +4,000 |
|
|
166
|
+
| **Total added per subtask** | — | **~13,000** | — |
|
|
167
|
+
|
|
168
|
+
New total per subtask: **~30,500-33,500 tokens** (up from ~17,500).
|
|
169
|
+
|
|
170
|
+
**Is this worth it?** Catching a spec flaw at L1 saves ~17,500 tokens of L2-L8 work. Catching a plan flaw at L2 saves ~15,500 tokens of L3-L8 work. The debate cost pays for itself on the first flaw caught.
|
|
171
|
+
|
|
172
|
+
## Transport Layer: pi-messenger File-Based Messaging
|
|
173
|
+
|
|
174
|
+
See [[pi-messenger-analysis]] for full analysis. Summary:
|
|
175
|
+
|
|
176
|
+
- **Adopted**: Agent registry, per-agent inboxes, `fs.watch` delivery, JSON message format, atomic file writes, stale cleanup
|
|
177
|
+
- **Stripped**: Chat UI, status bar, activity feed, emoji, crew orchestration, swarm claims
|
|
178
|
+
- **Added**: Consensus protocol layer (DebateSession, ConsensusBudget, convergence detection, verdict generation)
|
|
179
|
+
|
|
180
|
+
## Files
|
|
181
|
+
|
|
182
|
+
- `lib/harness-messenger.ts` — pi-messenger transport integration (registry, inbox, watcher)
|
|
183
|
+
- `lib/harness-debate.ts` — Consensus protocol (DebateSession, ConsensusBudget, convergence, verdict)
|
|
184
|
+
- `lib/harness-schemas.ts` — Extended with debate message schemas
|
|
185
|
+
- `extensions/harness-debate.ts` — Extension hooks: debate → wiki transcript
|
|
186
|
+
- `extensions/harness-spec.ts` — Updated: L1 spec debate integration
|
|
187
|
+
- `extensions/harness-planner.ts` — Updated: L2 plan debate integration
|
|
188
|
+
- `extensions/harness-critics.ts` — Updated: L4 multi-round debate integration
|
|
189
|
+
|
|
190
|
+
## Wiki Filing Rule (Mandatory)
|
|
191
|
+
|
|
192
|
+
**Winning consensus from any agent debate MUST be filed in the project wiki.** This is not optional. The purpose is permanent agent alignment: future agents query the wiki before making decisions and find the resolved consensus, preventing re-litigation of settled debates.
|
|
193
|
+
|
|
194
|
+
- **CONSENSUS_REACHED** → File final position + key rounds + evidence references to `wiki/consensus/`
|
|
195
|
+
- **DEADLOCK** → File both positions + deadlock analysis (what blocked convergence)
|
|
196
|
+
- **BUDGET_EXHAUSTED / TIMEOUT** → File partial transcript + exhaustion analysis
|
|
197
|
+
|
|
198
|
+
Filing is enforced by L7 schema orchestration: no layer transition after a debate until the wiki write is confirmed. [[adr-010]] already mandates write-after for every state transition — consensus verdicts are state transitions and fall under this contract.
|
|
199
|
+
|
|
200
|
+
## Open Questions
|
|
201
|
+
|
|
202
|
+
- Should debates use the same model for both sides, or different models for genuine adversarial diversity?
|
|
203
|
+
- What is the right default `convergenceRounds`? (1 may be too aggressive, 2 may waste tokens)
|
|
204
|
+
- Should L3 (Grounding Checkpoints) also have a debate mode? (Current thinking: no — L3 is about execution fidelity, not design decisions)
|
|
205
|
+
- Can we reuse a single critic agent across multiple debates, or should each debate spawn fresh critics?
|
|
206
|
+
- What is the optimal wiki page structure for consensus records? (candidate: `wiki/consensus/[topic-slug].md` with frontmatter linking to the debate layer, participants, and verdict)
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: concept
|
|
3
|
+
title: "Content-Addressed Spec Identity"
|
|
4
|
+
status: developing
|
|
5
|
+
created: 2026-04-30
|
|
6
|
+
updated: 2026-04-30
|
|
7
|
+
tags:
|
|
8
|
+
- harness
|
|
9
|
+
- spec-storage
|
|
10
|
+
- content-addressing
|
|
11
|
+
- fingerprinting
|
|
12
|
+
- fork-safety
|
|
13
|
+
- reconciliation
|
|
14
|
+
related:
|
|
15
|
+
- "[[Research: GitHub Issues as Harness Spec Storage]]"
|
|
16
|
+
- "[[fork-safe-spec-storage]]"
|
|
17
|
+
- "[[spec-hardening]]"
|
|
18
|
+
sources:
|
|
19
|
+
- "[[Research: GitHub Issues as Harness Spec Storage]]"
|
|
20
|
+
|
|
21
|
+
---# Content-Addressed Spec Identity
|
|
22
|
+
|
|
23
|
+
How ultimate-pi harnesses resolve specs by content fingerprint, not issue number. Solves the fork-merge divergence problem: fork's issue #5 and upstream's issue #5 are different specs found by different hashes.
|
|
24
|
+
|
|
25
|
+
## The Problem
|
|
26
|
+
|
|
27
|
+
GitHub Issues are identified by repo-scoped integers. When specs live in issues:
|
|
28
|
+
|
|
29
|
+
| Scenario | Fork Issue | Upstream Issue | Conflict? |
|
|
30
|
+
|----------|-----------|----------------|-----------|
|
|
31
|
+
| Normal | `forker/proj#1` = "Add OAuth" | `owner/proj#1` = "Initial setup" | No — different repos |
|
|
32
|
+
| After fork merge | `forker/proj#1` = "Add OAuth" transferred to upstream | `owner/proj#2` = "Fix rate limiter" | No — transfer assigns new number |
|
|
33
|
+
| Stale cache | Local cache still says `forker/proj#1` | Issue doesn't exist in fork anymore, wrong number in upstream | **YES** — harness looks up wrong repo/number |
|
|
34
|
+
|
|
35
|
+
Issue numbers are repo-scoped, time-ordered identifiers. They are NOT stable identities across repo boundaries.
|
|
36
|
+
|
|
37
|
+
## The Solution: Content-Hash Identity
|
|
38
|
+
|
|
39
|
+
Every HardenedSpec carries a deterministic content fingerprint that survives repo migration.
|
|
40
|
+
|
|
41
|
+
### Fingerprint Generation
|
|
42
|
+
|
|
43
|
+
```
|
|
44
|
+
spec_fingerprint = SHA256(
|
|
45
|
+
normalize(intent_summary) +
|
|
46
|
+
normalize(json.dumps(success_criteria, sort_keys=True)) +
|
|
47
|
+
normalize(definition_of_done)
|
|
48
|
+
)
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
`normalize()` strips whitespace, lowercases, removes punctuation. This makes the fingerprint tolerant of formatting changes while sensitive to semantic changes.
|
|
52
|
+
|
|
53
|
+
### Embedding Points
|
|
54
|
+
|
|
55
|
+
| Location | Format | Purpose |
|
|
56
|
+
|----------|--------|---------|
|
|
57
|
+
| Issue body (HTML comment) | `<!-- spec-fp: a1b2c3d4e5f6... -->` | Primary: searchable across repos |
|
|
58
|
+
| Issue title prefix | `[spec:a1b2c3d4] Implement OAuth2 login` | Visible: human-readable first-8 prefix |
|
|
59
|
+
| Local cache JSON | `"spec_fingerprint": "a1b2c3d4e5f6..."` | Fast: no API call needed for lookup |
|
|
60
|
+
| Wiki page (ADR, spec page) | `spec_fingerprint: a1b2c3d4e5f6` | Cross-reference: wiki-to-issue linkage |
|
|
61
|
+
|
|
62
|
+
### Resolution Algorithm
|
|
63
|
+
|
|
64
|
+
When the harness needs spec `X`:
|
|
65
|
+
|
|
66
|
+
```
|
|
67
|
+
1. Check local cache: .pi/harness/specs/<id>.json — read spec_fingerprint
|
|
68
|
+
2. Check cached issue URL: if github_issue_url exists and is reachable → use it
|
|
69
|
+
3. If cached URL is stale (404, wrong repo, wrong content):
|
|
70
|
+
a. Search by fingerprint: gh search issues "spec-fp:a1b2c3d4" --label harness-spec
|
|
71
|
+
b. If found in current repo: update cache, use it
|
|
72
|
+
c. If found in different repo: warn, offer to transfer
|
|
73
|
+
d. If not found anywhere: spec is orphaned — recreate from local cache body
|
|
74
|
+
4. Always verify: read issue body, extract fingerprint, compare with expected
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### Why This Works
|
|
78
|
+
|
|
79
|
+
- **Content-addressed, not location-addressed**: Like Git's object model. The spec's identity is its content, not where it lives.
|
|
80
|
+
- **Repo-agnostic**: The same spec hash resolves to the correct issue in any repo.
|
|
81
|
+
- **Transfer-safe**: When an issue is transferred via `gh issue transfer`, only its number changes. The body (and fingerprint within it) stays the same.
|
|
82
|
+
- **Deduplication**: Two issues with the same fingerprint ARE the same spec. Harness can detect and merge duplicates.
|
|
83
|
+
- **Searchable**: `gh search issues "spec-fp:abc123"` works across all repos the user has access to.
|
|
84
|
+
|
|
85
|
+
## The Transfer-on-Merge Pattern
|
|
86
|
+
|
|
87
|
+
When code merges from fork to upstream, specs can follow via GitHub's native issue transfer API.
|
|
88
|
+
|
|
89
|
+
### `ultimate-pi harness migrate` Command
|
|
90
|
+
|
|
91
|
+
```
|
|
92
|
+
ultimate-pi harness migrate [--dry-run]
|
|
93
|
+
├─ Detect repo change: current repo ≠ .pi/harness/config.json cached repo
|
|
94
|
+
├─ List fork specs: gh issue list --repo <old-repo> --label harness-spec --json number,title,body
|
|
95
|
+
├─ For each spec:
|
|
96
|
+
│ ├─ Search upstream: gh search issues "spec-fp:<hash>" --repo <new-repo>
|
|
97
|
+
│ ├─ If found in upstream → skip (already migrated)
|
|
98
|
+
│ ├─ If not found:
|
|
99
|
+
│ │ ├─ Transfer: gh issue transfer <issue> <new-repo>
|
|
100
|
+
│ │ ├─ Relabel: gh issue edit <new-number> --add-label harness-spec,layer-N,status:*
|
|
101
|
+
│ │ └─ Note: labels don't survive transfer — must reapply
|
|
102
|
+
│ └─ Update local cache: rewrite github_issue_url → new repo
|
|
103
|
+
├─ Update config: .pi/harness/config.json → new repo
|
|
104
|
+
└─ Report: N transferred, M already-present, K orphaned
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
### Transfer API Constraints
|
|
108
|
+
|
|
109
|
+
| Constraint | Impact |
|
|
110
|
+
|------------|--------|
|
|
111
|
+
| Requires write access to BOTH repos | Fork must have push access to upstream (true after PR merged) |
|
|
112
|
+
| Labels are NOT transferred | Harness must reapply labels post-transfer |
|
|
113
|
+
| Assignees, milestones ARE transferred | Good |
|
|
114
|
+
| Comments ARE transferred | Execution audit trail preserved |
|
|
115
|
+
| Sub-issues are NOT transferred | Must transfer children individually or recreate hierarchy |
|
|
116
|
+
| Issue number changes | Upstream assigns next available number |
|
|
117
|
+
|
|
118
|
+
### Idempotency Guarantee
|
|
119
|
+
|
|
120
|
+
`harness migrate` is idempotent because it searches by fingerprint before transferring. If a spec already exists in upstream (from a previous migration run), it's skipped. Running migrate twice produces the same result.
|
|
121
|
+
|
|
122
|
+
## Edge Cases
|
|
123
|
+
|
|
124
|
+
### Orphaned Specs (No Fingerprint Match)
|
|
125
|
+
|
|
126
|
+
If a spec exists in the fork but no matching fingerprint is found anywhere:
|
|
127
|
+
- **Cause**: Issue body was edited and fingerprint comment removed, or spec was deleted
|
|
128
|
+
- **Resolution**: Harness recreates the spec in upstream from the local cache JSON body
|
|
129
|
+
- **Warning**: Comment history is lost (original was in fork issue, now inaccessible)
|
|
130
|
+
|
|
131
|
+
### Duplicate Specs (Same Fingerprint, Different Issues)
|
|
132
|
+
|
|
133
|
+
If two issues in the same repo have the same fingerprint:
|
|
134
|
+
- **Detection**: `gh search issues "spec-fp:<hash>" --repo <repo>` returns multiple results
|
|
135
|
+
- **Resolution**: Harness keeps the newer one (most recently updated), closes the older as duplicate with comment "Merged into #<newer> — same spec fingerprint"
|
|
136
|
+
- **Rationale**: The newer issue likely has richer comment history
|
|
137
|
+
|
|
138
|
+
### Cross-Fork Specs (Multiple Forks, Same Spec)
|
|
139
|
+
|
|
140
|
+
If Forker-A and Forker-B both create "Add OAuth2" with different approaches:
|
|
141
|
+
- **Their fingerprints WILL differ** — the `success_criteria` and `definition_of_done` are different
|
|
142
|
+
- **No false collision**: fingerprint includes the full spec semantics, not just the title
|
|
143
|
+
- **Correct behavior**: they remain separate specs in separate forks, as they should
|
|
144
|
+
|
|
145
|
+
## Implementation Complexity
|
|
146
|
+
|
|
147
|
+
| Component | Effort | Risk |
|
|
148
|
+
|-----------|--------|------|
|
|
149
|
+
| Fingerprint generation in SpecHardener | Low — add SHA256 call before saving | None |
|
|
150
|
+
| Fingerprint embedding in issue body | Low — prepend HTML comment | None |
|
|
151
|
+
| `gh search issues` integration | Low — single CLI call | None |
|
|
152
|
+
| `harness migrate` command | Medium — transfer + relabel + cache update loop | Medium — transfer API edge cases |
|
|
153
|
+
| Cache staleness detection | Low — compare cached URL to current repo | None |
|
|
154
|
+
| Orphan recreation | Low — `gh issue create` from cached body | Low |
|
|
155
|
+
| Duplicate detection | Low — count search results | None |
|
|
156
|
+
|
|
157
|
+
Total: ~2-3 days of implementation. All operations use existing `gh` CLI commands or REST API.
|
|
158
|
+
|
|
159
|
+
## Prior Art
|
|
160
|
+
|
|
161
|
+
- **Git's content-addressed object model**: SHA1 hashes identify objects by content, not by location. This is the same principle applied to specs.
|
|
162
|
+
- **IPFS / libp2p**: Content-addressed distributed storage. Specs are "CID-addressable" in concept.
|
|
163
|
+
- **Nix / Guix**: Package builds are identified by content hashes of their inputs. Same deterministic identity pattern.
|
|
164
|
+
- **Docker image digests**: `image@sha256:abc...` identifies an image by its content manifest, not by its tag. Tags move; digests don't.
|
|
165
|
+
|
|
166
|
+
None of these are "harness spec storage" prior art — this is a novel application of content addressing to agent task management.
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: concept
|
|
3
|
+
title: "Context Anxiety"
|
|
4
|
+
created: 2026-04-30
|
|
5
|
+
updated: 2026-04-30
|
|
6
|
+
status: seed
|
|
7
|
+
tags:
|
|
8
|
+
- context
|
|
9
|
+
- harness
|
|
10
|
+
- failure-mode
|
|
11
|
+
related:
|
|
12
|
+
- "[[agentic-harness]]"
|
|
13
|
+
- "[[harness-implementation-plan]]"
|
|
14
|
+
sources:
|
|
15
|
+
- "[[anthropic2026-harness-design]]"
|
|
16
|
+
|
|
17
|
+
---# Context Anxiety
|
|
18
|
+
|
|
19
|
+
A failure mode where LLM agents begin wrapping up work prematurely as they approach what they believe is their context limit. Identified and named by Anthropic Engineering (Rajasekaran, 2026).
|
|
20
|
+
|
|
21
|
+
## Behavior
|
|
22
|
+
|
|
23
|
+
- Agent rushes to finish, skipping verification steps
|
|
24
|
+
- Outputs become shorter, less thorough
|
|
25
|
+
- Agent makes premature declarations of completion
|
|
26
|
+
- Quality drops sharply in later parts of long tasks
|
|
27
|
+
|
|
28
|
+
## Which Models Exhibit It
|
|
29
|
+
|
|
30
|
+
- **Sonnet 4.5**: Strong context anxiety. Compaction alone insufficient — required context resets with structured handoffs
|
|
31
|
+
- **Opus 4.5+**: Largely eliminated. One continuous session sufficient with automatic compaction
|
|
32
|
+
|
|
33
|
+
## Mitigations
|
|
34
|
+
|
|
35
|
+
### Context Reset (for anxious models)
|
|
36
|
+
- Clear context window entirely
|
|
37
|
+
- Start fresh agent session
|
|
38
|
+
- Provide structured handoff artifact carrying previous agent's state + next steps
|
|
39
|
+
- Cost: orchestration complexity, token overhead, latency
|
|
40
|
+
|
|
41
|
+
### Compaction (for non-anxious models)
|
|
42
|
+
- Summarize earlier parts of conversation in-place
|
|
43
|
+
- Same agent continues with shortened history
|
|
44
|
+
- Preserves continuity but doesn't give clean slate
|
|
45
|
+
- Insufficient alone for models with strong anxiety
|
|
46
|
+
|
|
47
|
+
## Relevance to Our Harness
|
|
48
|
+
|
|
49
|
+
Our long-running research sessions (3-round autoresearch, multi-phase builds) are vulnerable to context anxiety. Our current mitigation is compaction (summarizing earlier rounds). For GPT/strict models, this may be insufficient — context resets may be required between rounds.
|
|
50
|
+
|
|
51
|
+
## Detection
|
|
52
|
+
|
|
53
|
+
Watch for:
|
|
54
|
+
- Sudden acceleration in output pace toward end of long sessions
|
|
55
|
+
- Skipping of verification gates that were passed earlier
|
|
56
|
+
- "I'll complete this quickly" language
|
|
57
|
+
- Dropping of structured output formats
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: concept
|
|
3
|
+
status: stub
|
|
4
|
+
created: 2026-05-02
|
|
5
|
+
updated: 2026-05-02
|
|
6
|
+
tags: [concept, context-management]
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Context Compression Techniques
|
|
10
|
+
|
|
11
|
+
Methods for reducing LLM context window usage while preserving task-relevant information. Includes structured compaction, AST truncation, shell pattern compression, and context pruning.
|
|
12
|
+
|
|
13
|
+
## References
|
|
14
|
+
|
|
15
|
+
- [[structured-compaction]]
|
|
16
|
+
- [[ast-compression]]
|
|
17
|
+
- [[shell-pattern-compression]]
|
|
18
|
+
- [[meta-agent-context-pruning]]
|
|
19
|
+
- [[context-anxiety]]
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: concept
|
|
3
|
+
title: "context-continuity"
|
|
4
|
+
created: 2026-04-30
|
|
5
|
+
updated: 2026-04-30
|
|
6
|
+
status: seed
|
|
7
|
+
tags: [#concept, #context-optimization, #session-management]
|
|
8
|
+
related:
|
|
9
|
+
- "[[context-mode]]"
|
|
10
|
+
- "[[lean-ctx]]"
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Context Continuity
|
|
14
|
+
|
|
15
|
+
> [!stub] This is a stub page.
|
|
16
|
+
|
|
17
|
+
The ability for AI coding agents to preserve session state across context compaction events. Both context-mode and lean-ctx implement this, but differently:
|
|
18
|
+
|
|
19
|
+
- **context-mode**: Captures 26 event types to SessionDB for cross-compaction continuity
|
|
20
|
+
- **lean-ctx**: Uses CCP (Cross-session Continuity Protocol) with scratchpad messaging for multi-agent session sharing
|
|
21
|
+
|
|
22
|
+
Without context continuity, each context window compaction resets the agent's working memory, losing accumulated understanding of the codebase.
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
---
|
|
2
|
+
aliases: ["agent drift", "behavioral drift", "context drift in agents"]
|
|
3
|
+
type: concept
|
|
4
|
+
title: "Context Drift in AI Agents"
|
|
5
|
+
created: 2026-04-30
|
|
6
|
+
status: developing
|
|
7
|
+
tags:
|
|
8
|
+
- concept
|
|
9
|
+
- drift
|
|
10
|
+
- agent-reliability
|
|
11
|
+
- context-engineering
|
|
12
|
+
related:
|
|
13
|
+
- "[[Research: Meta-Agent Context Drift Detection]]"
|
|
14
|
+
- "[[meta-agent-context-pruning]]"
|
|
15
|
+
- "[[agent-loop-detection-patterns]]"
|
|
16
|
+
- "[[guardian-agent-pattern]]"
|
|
17
|
+
- "[[agent-drift-academic-paper]]"
|
|
18
|
+
- "[[ironclaw-drift-monitor]]"
|
|
19
|
+
- "[[model-adaptive-harness]]"
|
|
20
|
+
updated: 2026-05-02
|
|
21
|
+
|
|
22
|
+
---# Context Drift in AI Agents
|
|
23
|
+
|
|
24
|
+
The progressive degradation of agent behavior, decision quality, and task coherence over extended interactions. Not a model failure — a context management failure.
|
|
25
|
+
|
|
26
|
+
## Two Definitions
|
|
27
|
+
|
|
28
|
+
The term "context drift" is used in two distinct ways in the literature:
|
|
29
|
+
|
|
30
|
+
### 1. Stale Environment Context (Infrastructure Drift)
|
|
31
|
+
|
|
32
|
+
The agent's view of the world diverges from reality because data sources haven't caught up. The agent reads stale state, makes decisions based on it, detects mismatch, re-plans, and loops. (Source: [[vectara-guardian-agents|Tacnode]])
|
|
33
|
+
|
|
34
|
+
**Cause**: Slow data pipelines, batch ETL, separate OLTP/OLAP stores. The stack was built for human consumers (dashboards, periodic queries), not sub-second agent freshness.
|
|
35
|
+
|
|
36
|
+
**Fix**: Unified context lake with instant freshness guarantees. Reduce hops between event and agent visibility.
|
|
37
|
+
|
|
38
|
+
### 2. Context Window Pollution (Interaction Drift)
|
|
39
|
+
|
|
40
|
+
The agent's context window fills with irrelevant information from failed attempts, verbose outputs, and dead-end explorations. Signal-to-noise collapses. The agent's decisions degrade because it's reasoning over noise. (Source: [[agent-drift-academic-paper]])
|
|
41
|
+
|
|
42
|
+
**Cause**: Multi-turn agent loops where every tool call and response accumulates in context. Failed attempts add noise. Successful attempts may be too verbose. No mechanism prunes irrelevant history.
|
|
43
|
+
|
|
44
|
+
**Fix**: Context compaction (summarize + restart), context pruning (remove dead-ends), external memory (structured notes outside context window).
|
|
45
|
+
|
|
46
|
+
## The Meta-Agent Problem Space
|
|
47
|
+
|
|
48
|
+
This concept page addresses the **second** definition — interaction drift from context window pollution. The meta-agent concept targets exactly this: detecting when context pollution has reached a critical point and pruning the context to restore signal quality.
|
|
49
|
+
|
|
50
|
+
## Drift Taxonomy
|
|
51
|
+
|
|
52
|
+
From the academic literature (Source: [[agent-drift-academic-paper]]):
|
|
53
|
+
|
|
54
|
+
| Type | Definition | Example |
|
|
55
|
+
|------|-----------|---------|
|
|
56
|
+
| **Semantic drift** | Outputs deviate from original intent while staying syntactically valid | Financial analysis agent shifts from risk-focused to opportunity-emphasizing language |
|
|
57
|
+
| **Coordination drift** | Multi-agent consensus breaks down | Router develops bias toward certain sub-agents, creating bottlenecks |
|
|
58
|
+
| **Behavioral drift** | Novel strategies emerge not present in initial interactions | Agent caches data in chat history instead of using designated memory tools |
|
|
59
|
+
|
|
60
|
+
## Stuck-Pattern Signatures
|
|
61
|
+
|
|
62
|
+
Operational patterns that indicate context drift (Source: [[ironclaw-drift-monitor]]):
|
|
63
|
+
|
|
64
|
+
| Pattern | Signature | Threshold |
|
|
65
|
+
|---------|-----------|-----------|
|
|
66
|
+
| Repetition loops | Same tool + same args called repeatedly | 3+ in 10 calls |
|
|
67
|
+
| Failure spirals | Consecutive tool failures | 4+ |
|
|
68
|
+
| Tool cycling | A-B-A-B-A-B alternation | 6 calls |
|
|
69
|
+
| Silence drift | No text response | 15+ iterations |
|
|
70
|
+
| Rework churn | Same file written repeatedly | 3+ writes |
|
|
71
|
+
| Excessive searching | ls/find/grep without code edits | 5+ searches |
|
|
72
|
+
|
|
73
|
+
## Quantified Impact
|
|
74
|
+
|
|
75
|
+
From 847 simulated workflows (Source: [[agent-drift-academic-paper]]):
|
|
76
|
+
|
|
77
|
+
- Task success rate: -42% (87.3% → 50.6%)
|
|
78
|
+
- Human interventions: +216% (0.31/task → 0.98/task)
|
|
79
|
+
- Token usage: +52.4% (12,400 → 18,900)
|
|
80
|
+
- Inter-agent conflicts: +487.5%
|
|
81
|
+
- Drift emerges after median 73 interactions — far earlier than expected
|
|
82
|
+
|
|
83
|
+
## Three Causal Mechanisms
|
|
84
|
+
|
|
85
|
+
1. **Context window pollution**: Irrelevant history dilutes signal. Episodic Memory Consolidation directly addresses this.
|
|
86
|
+
2. **Distributional shift**: Narrow domain language diverges from broad training distribution over time.
|
|
87
|
+
3. **Autoregressive reinforcement**: Small errors compound through feedback loops — an unnecessarily verbose response sets precedent for future verbosity.
|
|
88
|
+
|
|
89
|
+
## Mitigation Approaches
|
|
90
|
+
|
|
91
|
+
| Approach | Mechanism | Drift Reduction | Overhead |
|
|
92
|
+
|----------|-----------|----------------|----------|
|
|
93
|
+
| Episodic Memory Consolidation | Summarize + compress history | 51.9% | Moderate (summarization cost) |
|
|
94
|
+
| Drift-Aware Routing | Stability scores in delegation | 63.0% | Low (metric computation) |
|
|
95
|
+
| Adaptive Behavioral Anchoring | Few-shot exemplars from baseline | 70.4% | Low (prompt augmentation) |
|
|
96
|
+
| Context Pruning (proposed) | Remove dead-end entries | Unknown | Low (metadata operation) |
|
|
97
|
+
| Combined (all three above) | Multi-layer defense | 81.5% | +23% compute |
|
|
98
|
+
|
|
99
|
+
The proposed meta-agent context pruning would add a fourth approach to this arsenal — one that operates at the conversation-history level rather than the prompt or routing level.
|
|
100
|
+
|
|
101
|
+
## See Also
|
|
102
|
+
|
|
103
|
+
- [[meta-agent-context-pruning]] — The proposed system combining detection + pruning + restart
|
|
104
|
+
- [[agent-loop-detection-patterns]] — Production-grade loop detection code
|
|
105
|
+
- [[guardian-agent-pattern]] — Pre-execution safety validation
|
|
106
|
+
- [[agentic-harness-context-enforcement]] — Enforcing context-efficient behavior
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: concept
|
|
3
|
+
tags:
|
|
4
|
+
- context-engineering
|
|
5
|
+
- token-management
|
|
6
|
+
- compaction
|
|
7
|
+
- memory
|
|
8
|
+
related:
|
|
9
|
+
- "[[Agent Harness Architecture]]"
|
|
10
|
+
- "[[sources/opendev-arxiv-2603.05344v1]]"
|
|
11
|
+
- "[[sources/martin-fowler-harness-engineering]]"
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Context Engineering
|
|
15
|
+
|
|
16
|
+
The practice of managing an LLM's context window as a first-class engineering concern. Context is a finite, expensive resource consumed by system prompts, tool schemas, conversation history, and tool outputs. Effective context engineering determines how long an agent can operate before context overflow degrades performance.
|
|
17
|
+
|
|
18
|
+
## Core Principles
|
|
19
|
+
|
|
20
|
+
1. **Entropy reduction**: Each context element should reduce uncertainty about the desired output
|
|
21
|
+
2. **Minimal sufficiency**: Include only what is necessary to avoid attention dilution
|
|
22
|
+
3. **Semantic continuity**: Context should evolve coherently across turns, not be reconstructed from scratch
|
|
23
|
+
|
|
24
|
+
## Key Techniques
|
|
25
|
+
|
|
26
|
+
### Adaptive Context Compaction (ACC)
|
|
27
|
+
Five graduated stages instead of a single emergency threshold:
|
|
28
|
+
- **70%**: Warning — log pressure, track trends
|
|
29
|
+
- **80%**: Observation Masking — replace old tool results with reference pointers (~15 tokens each)
|
|
30
|
+
- **85%**: Fast Pruning — walk backward, replace oldest results with `[pruned]` markers
|
|
31
|
+
- **90%**: Aggressive Masking — shrink preservation window to most recent outputs only
|
|
32
|
+
- **99%**: Full Compaction — LLM-based summarization of middle portion, keep recent verbatim
|
|
33
|
+
|
|
34
|
+
ACC reduces peak context consumption by ~54%, often eliminating the need for emergency compaction.
|
|
35
|
+
|
|
36
|
+
### Dual-Memory Architecture
|
|
37
|
+
- **Episodic memory**: LLM summary of full history (strategic context). Regenerated from full history every 5 messages to prevent summary drift.
|
|
38
|
+
- **Working memory**: Last 6 exchanges verbatim (operational detail).
|
|
39
|
+
|
|
40
|
+
### Event-Driven System Reminders
|
|
41
|
+
Short, targeted messages injected at decision points (not upfront in system prompt). Use `role: user` for maximum recency. Governed by counter budgets to prevent noise.
|
|
42
|
+
|
|
43
|
+
### Lazy Tool Discovery
|
|
44
|
+
Only discovered/explicitly invoked MCP tool schemas consume context. Baseline overhead: <5% instead of 40%.
|
|
45
|
+
|
|
46
|
+
### Tool Result Optimization
|
|
47
|
+
Per-tool-type summarization (file reads → metadata, search → match counts, directory listings → item counts). Large outputs (>8,000 chars) offloaded to scratch files with previews.
|
|
48
|
+
|
|
49
|
+
### Prompt Caching
|
|
50
|
+
Split system prompt into stable (cacheable) and dynamic parts. Stable portion (~80-90%) receives `cache_control` header, yielding ~88% input cost reduction on cached tokens.
|
|
51
|
+
|
|
52
|
+
## Calibration
|
|
53
|
+
|
|
54
|
+
Always use the API's reported `prompt_tokens` as calibration anchor, not local estimates. Providers inject invisible content (safety preambles, tool serialization) that local counting misses.
|
|
55
|
+
|
|
56
|
+
## Relevance to Our Harness
|
|
57
|
+
|
|
58
|
+
- No staged compaction — we rely on session restarts when context fills
|
|
59
|
+
- No event-driven reminders — our system prompt decays over long sessions
|
|
60
|
+
- No dual-memory — thinking contexts share full history
|
|
61
|
+
- Partial tool result optimization — `lean-ctx` compresses bash output
|
|
62
|
+
- Lazy discovery pattern exists — `ctx_discover_tools` for lean-ctx
|