ultimate-pi 0.1.2 → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agents/skills/ck-search/SKILL.md +99 -0
- package/.agents/skills/defuddle/SKILL.md +90 -0
- package/.agents/skills/find-skills/SKILL.md +142 -0
- package/.agents/skills/firecrawl/SKILL.md +150 -0
- package/.agents/skills/firecrawl/rules/install.md +82 -0
- package/.agents/skills/firecrawl/rules/security.md +26 -0
- package/.agents/skills/firecrawl-agent/SKILL.md +57 -0
- package/.agents/skills/firecrawl-build-interact/SKILL.md +67 -0
- package/.agents/skills/firecrawl-build-onboarding/SKILL.md +102 -0
- package/.agents/skills/firecrawl-build-onboarding/references/auth-flow.md +39 -0
- package/.agents/skills/firecrawl-build-onboarding/references/project-setup.md +20 -0
- package/.agents/skills/firecrawl-build-onboarding/references/sdk-installation.md +17 -0
- package/.agents/skills/firecrawl-build-scrape/SKILL.md +68 -0
- package/.agents/skills/firecrawl-build-search/SKILL.md +68 -0
- package/.agents/skills/firecrawl-crawl/SKILL.md +58 -0
- package/.agents/skills/firecrawl-download/SKILL.md +69 -0
- package/.agents/skills/firecrawl-interact/SKILL.md +83 -0
- package/.agents/skills/firecrawl-map/SKILL.md +50 -0
- package/.agents/skills/firecrawl-parse/SKILL.md +61 -0
- package/.agents/skills/firecrawl-scrape/SKILL.md +68 -0
- package/.agents/skills/firecrawl-search/SKILL.md +59 -0
- package/.agents/skills/obsidian-bases/SKILL.md +299 -0
- package/.agents/skills/obsidian-markdown/SKILL.md +237 -0
- package/.agents/skills/posthog-analyst/SKILL.md +306 -0
- package/.agents/skills/posthog-analyst/evals/evals.json +23 -0
- package/.agents/skills/wiki/SKILL.md +215 -0
- package/.agents/skills/wiki/references/css-snippets.md +122 -0
- package/.agents/skills/wiki/references/frontmatter.md +107 -0
- package/.agents/skills/wiki/references/git-setup.md +58 -0
- package/.agents/skills/wiki/references/mcp-setup.md +149 -0
- package/.agents/skills/wiki/references/modes.md +259 -0
- package/.agents/skills/wiki/references/plugins.md +96 -0
- package/.agents/skills/wiki/references/rest-api.md +124 -0
- package/.agents/skills/wiki-autoresearch/SKILL.md +211 -0
- package/.agents/skills/wiki-autoresearch/references/program.md +75 -0
- package/.agents/skills/wiki-fold/SKILL.md +204 -0
- package/.agents/skills/wiki-fold/references/fold-template.md +133 -0
- package/.agents/skills/wiki-ingest/SKILL.md +288 -0
- package/.agents/skills/wiki-lint/SKILL.md +183 -0
- package/.agents/skills/wiki-query/SKILL.md +176 -0
- package/.agents/skills/wiki-save/SKILL.md +128 -0
- package/.ckignore +41 -0
- package/.env.example +9 -0
- package/.github/workflows/lint.yml +33 -0
- package/.github/workflows/publish-github-packages.yml +35 -0
- package/.github/workflows/publish-npm.yml +1 -1
- package/.pi/SYSTEM.md +107 -40
- package/.pi/agents/pi-pi/agent-expert.md +205 -0
- package/.pi/agents/pi-pi/cli-expert.md +47 -0
- package/.pi/agents/pi-pi/config-expert.md +67 -0
- package/.pi/agents/pi-pi/ext-expert.md +53 -0
- package/.pi/agents/pi-pi/keybinding-expert.md +123 -0
- package/.pi/agents/pi-pi/pi-orchestrator.md +103 -0
- package/.pi/agents/pi-pi/prompt-expert.md +83 -0
- package/.pi/agents/pi-pi/skill-expert.md +52 -0
- package/.pi/agents/pi-pi/theme-expert.md +46 -0
- package/.pi/agents/pi-pi/tui-expert.md +100 -0
- package/.pi/agents/rethink.md +140 -0
- package/.pi/agents/wiki-ingest.md +67 -0
- package/.pi/agents/wiki-lint.md +75 -0
- package/.pi/auto-commit.json +20 -0
- package/.pi/extensions/banner.png +0 -0
- package/.pi/extensions/ck-enforce.ts +216 -0
- package/.pi/extensions/custom-footer.ts +308 -0
- package/.pi/extensions/custom-header.ts +116 -0
- package/.pi/extensions/dotenv-loader.ts +170 -0
- package/.pi/internal/cursor-sdk-transcript-parser.ts +59 -0
- package/.pi/model-router.json +95 -0
- package/.pi/npm/.gitignore +2 -0
- package/.pi/prompts/git-sync.md +124 -0
- package/.pi/prompts/harness-setup.md +509 -0
- package/.pi/prompts/save.md +16 -0
- package/.pi/prompts/wiki-autoresearch.md +19 -0
- package/.pi/prompts/wiki.md +23 -0
- package/.pi/providers/cursor-sdk-provider.test.mjs +476 -0
- package/.pi/providers/cursor-sdk-provider.ts +1085 -0
- package/.pi/settings.json +14 -4
- package/.pi/skills/agent-router/SKILL.md +174 -0
- package/.pi/sounds/alert/1-kaching-track.mp3 +0 -0
- package/.pi/sounds/error/1-ksi-wth-track.mp3 +0 -0
- package/.pi/sounds/error/2-smash-track.mp3 +0 -0
- package/.pi/sounds/error/3-buzzer-track.mp3 +0 -0
- package/.pi/sounds/notification/1-soft-notification-track.mp3 +0 -0
- package/.pi/sounds/project-sounds.json +25 -0
- package/.pi/sounds/reminder/1-soft-notification-track.mp3 +0 -0
- package/.pi/sounds/success/1-tada-track.mp3 +0 -0
- package/.pi/sounds/success/2-jobs-done-track.mp3 +0 -0
- package/.pi/sounds/success/3-yay-track.mp3 +0 -0
- package/CONTRIBUTING.md +116 -0
- package/README.md +32 -39
- package/biome.json +34 -0
- package/firecrawl/.env.template +58 -0
- package/firecrawl/README.md +49 -0
- package/firecrawl/docker-compose.yaml +201 -0
- package/firecrawl/searxng/searxng.env +3 -0
- package/firecrawl/searxng/settings.yml +85 -0
- package/lefthook.yml +8 -0
- package/package.json +55 -24
- package/vault/AGENTS.md +37 -0
- package/vault/wiki/_templates/comparison.md +39 -0
- package/vault/wiki/_templates/concept.md +40 -0
- package/vault/wiki/_templates/decision.md +21 -0
- package/vault/wiki/_templates/entity.md +32 -0
- package/vault/wiki/_templates/flow.md +14 -0
- package/vault/wiki/_templates/module.md +18 -0
- package/vault/wiki/_templates/question.md +31 -0
- package/vault/wiki/_templates/source.md +39 -0
- package/vault/wiki/concepts/AST-Aware Code Chunking.md +44 -0
- package/vault/wiki/concepts/Build-Time Prompt Compilation.md +107 -0
- package/vault/wiki/concepts/Context Engine (AI Coding).md +47 -0
- package/vault/wiki/concepts/Context-Aware System Reminders.md +61 -0
- package/vault/wiki/concepts/Contextualized Text Embedding.md +42 -0
- package/vault/wiki/concepts/Contractor vs Employee AI Model.md +55 -0
- package/vault/wiki/concepts/Dual-Model Agent Architecture.md +65 -0
- package/vault/wiki/concepts/Late Chunking vs Early Chunking.md +43 -0
- package/vault/wiki/concepts/Majority Vote Ensembling.md +68 -0
- package/vault/wiki/concepts/Meta-Harness.md +16 -0
- package/vault/wiki/concepts/Multi-Agent AI Coding Architecture.md +75 -0
- package/vault/wiki/concepts/Prompt Enhancement.md +90 -0
- package/vault/wiki/concepts/Prompt Renderer.md +89 -0
- package/vault/wiki/concepts/Semantic Codebase Indexing.md +67 -0
- package/vault/wiki/concepts/additive-config-hierarchy.md +16 -0
- package/vault/wiki/concepts/agent-artifacts-verifiable-deliverables.md +71 -0
- package/vault/wiki/concepts/agent-browser-browser-automation.md +99 -0
- package/vault/wiki/concepts/agent-codebase-interface.md +43 -0
- package/vault/wiki/concepts/agent-harness-architecture.md +67 -0
- package/vault/wiki/concepts/agent-loop-detection-patterns.md +133 -0
- package/vault/wiki/concepts/agent-search-enforcement.md +126 -0
- package/vault/wiki/concepts/agent-skills-ecosystem.md +74 -0
- package/vault/wiki/concepts/agent-skills-pattern.md +68 -0
- package/vault/wiki/concepts/agentic-harness-context-enforcement.md +91 -0
- package/vault/wiki/concepts/agentic-harness.md +34 -0
- package/vault/wiki/concepts/agentic-orchestration-pipeline.md +56 -0
- package/vault/wiki/concepts/agentic-search-no-embeddings.md +18 -0
- package/vault/wiki/concepts/anthropic-context-engineering.md +13 -0
- package/vault/wiki/concepts/antigravity-agent-first-architecture.md +61 -0
- package/vault/wiki/concepts/ast-compression.md +19 -0
- package/vault/wiki/concepts/ast-truncation.md +66 -0
- package/vault/wiki/concepts/barrel-files.md +37 -0
- package/vault/wiki/concepts/browser-harness-agent.md +41 -0
- package/vault/wiki/concepts/browser-subagent-visual-verification.md +82 -0
- package/vault/wiki/concepts/codebase-intelligence-ecosystem-comparison.md +192 -0
- package/vault/wiki/concepts/codebase-intelligence-harness-integration.md +161 -0
- package/vault/wiki/concepts/codebase-to-context-ingestion.md +46 -0
- package/vault/wiki/concepts/codex-harness-innovations.md +147 -0
- package/vault/wiki/concepts/consensus-debate-flow.md +17 -0
- package/vault/wiki/concepts/consensus-debate.md +206 -0
- package/vault/wiki/concepts/content-addressed-spec-identity.md +166 -0
- package/vault/wiki/concepts/context-anxiety.md +57 -0
- package/vault/wiki/concepts/context-compression-techniques.md +19 -0
- package/vault/wiki/concepts/context-continuity.md +22 -0
- package/vault/wiki/concepts/context-drift-in-agents.md +106 -0
- package/vault/wiki/concepts/context-engineering.md +62 -0
- package/vault/wiki/concepts/context-folding.md +67 -0
- package/vault/wiki/concepts/context-mode.md +38 -0
- package/vault/wiki/concepts/cursor-harness-innovations.md +107 -0
- package/vault/wiki/concepts/deterministic-session-compaction.md +79 -0
- package/vault/wiki/concepts/drift-detection-unified.md +296 -0
- package/vault/wiki/concepts/execution-feedback-loop.md +46 -0
- package/vault/wiki/concepts/feedforward-feedback-harness.md +60 -0
- package/vault/wiki/concepts/five-root-cause-metrics-sentrux.md +40 -0
- package/vault/wiki/concepts/fork-safe-spec-storage.md +89 -0
- package/vault/wiki/concepts/fts5-sandbox.md +19 -0
- package/vault/wiki/concepts/fuzzy-edit-matching.md +71 -0
- package/vault/wiki/concepts/gemini-cli-architecture.md +104 -0
- package/vault/wiki/concepts/generator-evaluator-architecture.md +64 -0
- package/vault/wiki/concepts/guardian-agent-pattern.md +67 -0
- package/vault/wiki/concepts/harness-configuration-layers.md +89 -0
- package/vault/wiki/concepts/harness-control-frameworks.md +155 -0
- package/vault/wiki/concepts/harness-engineering-first-principles.md +90 -0
- package/vault/wiki/concepts/harness-h-formalism.md +53 -0
- package/vault/wiki/concepts/hybrid-code-search.md +61 -0
- package/vault/wiki/concepts/inline-post-edit-validation.md +112 -0
- package/vault/wiki/concepts/legendary-engineering-patterns-harness.md +110 -0
- package/vault/wiki/concepts/lifecycle-hooks.md +94 -0
- package/vault/wiki/concepts/mcp-tool-routing.md +102 -0
- package/vault/wiki/concepts/memory-system-of-record-vs-ephemeral-cache.md +47 -0
- package/vault/wiki/concepts/meta-agent-context-pruning.md +151 -0
- package/vault/wiki/concepts/model-adaptive-harness.md +122 -0
- package/vault/wiki/concepts/model-routing-agents.md +101 -0
- package/vault/wiki/concepts/monorepo-architecture.md +45 -0
- package/vault/wiki/concepts/multi-agent-specialization.md +61 -0
- package/vault/wiki/concepts/permission-subsystem.md +16 -0
- package/vault/wiki/concepts/pi-messenger-analysis.md +243 -0
- package/vault/wiki/concepts/pi-vscode-extension-landscape.md +37 -0
- package/vault/wiki/concepts/policy-engine-pattern.md +78 -0
- package/vault/wiki/concepts/progressive-disclosure-agents.md +53 -0
- package/vault/wiki/concepts/progressive-skill-disclosure.md +17 -0
- package/vault/wiki/concepts/provider-native-prompting.md +203 -0
- package/vault/wiki/concepts/quality-signal-sentrux.md +37 -0
- package/vault/wiki/concepts/repo-map-ranking.md +42 -0
- package/vault/wiki/concepts/result-monad-error-handling.md +47 -0
- package/vault/wiki/concepts/safety-defense-in-depth.md +83 -0
- package/vault/wiki/concepts/sandbox-os-enforcement.md +18 -0
- package/vault/wiki/concepts/selective-debate-routing.md +70 -0
- package/vault/wiki/concepts/self-evolving-harness.md +60 -0
- package/vault/wiki/concepts/sentrux-mcp-integration.md +36 -0
- package/vault/wiki/concepts/sentrux-rules-engine.md +49 -0
- package/vault/wiki/concepts/shell-pattern-compression.md +24 -0
- package/vault/wiki/concepts/skill-first-architecture.md +166 -0
- package/vault/wiki/concepts/structured-compaction.md +78 -0
- package/vault/wiki/concepts/subagent-orchestration.md +17 -0
- package/vault/wiki/concepts/subagent-worktree-isolation.md +68 -0
- package/vault/wiki/concepts/superpowers-methodology.md +78 -0
- package/vault/wiki/concepts/think-in-code.md +73 -0
- package/vault/wiki/concepts/ts-execution-layer.md +100 -0
- package/vault/wiki/concepts/typescript-strict-mode.md +37 -0
- package/vault/wiki/concepts/vcc-conversation-compaction-for-pi.md +51 -0
- package/vault/wiki/concepts/verification-drift-detection.md +19 -0
- package/vault/wiki/consensus/consensus-records.md +58 -0
- package/vault/wiki/decisions/2026-04-30-pi-lean-ctx-native.md +122 -0
- package/vault/wiki/decisions/adr-008.md +40 -0
- package/vault/wiki/decisions/adr-009.md +46 -0
- package/vault/wiki/decisions/adr-010.md +55 -0
- package/vault/wiki/decisions/adr-011.md +165 -0
- package/vault/wiki/decisions/adr-012.md +102 -0
- package/vault/wiki/decisions/adr-013.md +59 -0
- package/vault/wiki/decisions/adr-014.md +73 -0
- package/vault/wiki/decisions/adr-015.md +81 -0
- package/vault/wiki/decisions/adr-016.md +91 -0
- package/vault/wiki/decisions/adr-017.md +79 -0
- package/vault/wiki/decisions/adr-018.md +100 -0
- package/vault/wiki/decisions/adr-019.md +75 -0
- package/vault/wiki/decisions/adr-020.md +106 -0
- package/vault/wiki/decisions/adr-021.md +86 -0
- package/vault/wiki/decisions/adr-022.md +113 -0
- package/vault/wiki/decisions/adr-023.md +113 -0
- package/vault/wiki/decisions/adr-024.md +73 -0
- package/vault/wiki/decisions/adr-025.md +130 -0
- package/vault/wiki/decisions/adr-026.md +56 -0
- package/vault/wiki/decisions/colocate-wiki.md +34 -0
- package/vault/wiki/entities/Anders Hejlsberg.md +29 -0
- package/vault/wiki/entities/Anthropic.md +17 -0
- package/vault/wiki/entities/Augment Code.md +49 -0
- package/vault/wiki/entities/Bjarne Stroustrup.md +26 -0
- package/vault/wiki/entities/Bolt.new (StackBlitz).md +39 -0
- package/vault/wiki/entities/Boris Cherny.md +11 -0
- package/vault/wiki/entities/Claude Code.md +19 -0
- package/vault/wiki/entities/Dennis Ritchie.md +26 -0
- package/vault/wiki/entities/Emergent Labs.md +32 -0
- package/vault/wiki/entities/Google Cloud.md +16 -0
- package/vault/wiki/entities/Guido van Rossum.md +28 -0
- package/vault/wiki/entities/Ken Thompson.md +28 -0
- package/vault/wiki/entities/Lee et al.md +16 -0
- package/vault/wiki/entities/Linus Torvalds.md +28 -0
- package/vault/wiki/entities/Lovable (company).md +40 -0
- package/vault/wiki/entities/Martin Fowler.md +16 -0
- package/vault/wiki/entities/Meng et al.md +16 -0
- package/vault/wiki/entities/OpenAI.md +16 -0
- package/vault/wiki/entities/Rocket.new.md +38 -0
- package/vault/wiki/entities/VILA-Lab.md +15 -0
- package/vault/wiki/entities/autodev-codebase.md +18 -0
- package/vault/wiki/entities/ck-tool.md +59 -0
- package/vault/wiki/entities/codesearch.md +18 -0
- package/vault/wiki/entities/disler-indydevdan.md +33 -0
- package/vault/wiki/entities/gsd-get-shit-done.md +56 -0
- package/vault/wiki/entities/javascript-runtimes.md +48 -0
- package/vault/wiki/entities/jesse-vincent.md +38 -0
- package/vault/wiki/entities/lean-ctx.md +32 -0
- package/vault/wiki/entities/opendev.md +41 -0
- package/vault/wiki/entities/ops-codegraph-tool.md +18 -0
- package/vault/wiki/entities/pi-coding-agent.md +53 -0
- package/vault/wiki/entities/sentrux.md +54 -0
- package/vault/wiki/entities/vgrep-tool.md +57 -0
- package/vault/wiki/entities/vitest.md +41 -0
- package/vault/wiki/flows/harness-wiki-pipeline.md +204 -0
- package/vault/wiki/hot.md +932 -0
- package/vault/wiki/index.md +437 -0
- package/vault/wiki/log.md +418 -0
- package/vault/wiki/meta/dashboard.md +30 -0
- package/vault/wiki/meta/lint-report-2026-04-30.md +86 -0
- package/vault/wiki/meta/lint-report-2026-05-02.md +251 -0
- package/vault/wiki/meta/overview.canvas +43 -0
- package/vault/wiki/modules/adversarial-verification.md +57 -0
- package/vault/wiki/modules/automated-observability.md +54 -0
- package/vault/wiki/modules/bench.md +20 -0
- package/vault/wiki/modules/extensions.md +23 -0
- package/vault/wiki/modules/grounding-checkpoints.md +62 -0
- package/vault/wiki/modules/harness-implementation-plan.md +345 -0
- package/vault/wiki/modules/harness-wiki-skill-mapping.md +135 -0
- package/vault/wiki/modules/harness.md +86 -0
- package/vault/wiki/modules/persistent-memory.md +85 -0
- package/vault/wiki/modules/schema-orchestration.md +68 -0
- package/vault/wiki/modules/skills.md +27 -0
- package/vault/wiki/modules/spec-hardening.md +58 -0
- package/vault/wiki/modules/structured-planning.md +53 -0
- package/vault/wiki/modules/think-in-code-enforcement.md +153 -0
- package/vault/wiki/modules/wiki-query-interface.md +64 -0
- package/vault/wiki/overview.md +51 -0
- package/vault/wiki/questions/Research-pi-vs-claude-code-agentic-orchestration-pipeline.md +87 -0
- package/vault/wiki/questions/Research-sentrux-dev.md +123 -0
- package/vault/wiki/questions/Research-superpowers-skill-for-agentic-coding-agents.md +164 -0
- package/vault/wiki/questions/Research: Augment Code Context Engine.md +244 -0
- package/vault/wiki/questions/Research: Automating Software Engineering - Lovable, Bolt, Emergent, Rocket.md +112 -0
- package/vault/wiki/questions/Research: Claude Code State-of-the-Art Harness Improvements.md +209 -0
- package/vault/wiki/questions/Research: Codex State-of-the-Art Harness Improvements.md +99 -0
- package/vault/wiki/questions/Research: Engineering Workflows of Legendary Programmers and AI Harness Mapping.md +107 -0
- package/vault/wiki/questions/Research: Fallow Codebase Intelligence Harness Integration.md +72 -0
- package/vault/wiki/questions/Research: Gemini CLI SOTA Harness Integration.md +166 -0
- package/vault/wiki/questions/Research: GitHub Issues as Harness Spec Storage.md +188 -0
- package/vault/wiki/questions/Research: Google Antigravity Harness Integration.md +120 -0
- package/vault/wiki/questions/Research: Meta-Agent Context Drift Detection.md +236 -0
- package/vault/wiki/questions/Research: Model-Adaptive Agent Harness Design.md +95 -0
- package/vault/wiki/questions/Research: Model-Specific Prompting Guides.md +165 -0
- package/vault/wiki/questions/Research: Prompt Renderer for Multi-Model Agent Harness.md +216 -0
- package/vault/wiki/questions/Research: Skill-First Harness Architecture.md +91 -0
- package/vault/wiki/questions/Research: TypeScript Best Practices and Codebase Structure.md +88 -0
- package/vault/wiki/questions/Research: TypeScript Execution Layer for Agent Tool Calling.md +81 -0
- package/vault/wiki/questions/Research: claude-mem over Obsidian for Harness Layer.md +71 -0
- package/vault/wiki/questions/Research: claude-mem over obsidian wiki as the knowledge base for our agentic harness pipeline. think from first principles. does this replace or complement our current setup? no hard feelings about previous decisions. gimme accurate points.md +80 -0
- package/vault/wiki/questions/Research: context-mode vs lean-ctx.md +72 -0
- package/vault/wiki/questions/Research: cursor.sh Harness Innovations.md +92 -0
- package/vault/wiki/questions/Research: executor.sh Harness Integration.md +170 -0
- package/vault/wiki/questions/Research: how GSD fits into our coding harness setup.md +97 -0
- package/vault/wiki/questions/Research: how claude-mem fits into our workflow. and whether it should replace obsidian in the codebase. no hard feelings about previous actions, rethink from first principles always.md +80 -0
- package/vault/wiki/questions/Research: pi-vcc.md +113 -0
- package/vault/wiki/questions/Research: semantic code search tools.md +69 -0
- package/vault/wiki/questions/Research: vcc extension for pi coding agent.md +73 -0
- package/vault/wiki/questions/how-to-enable-semantic-code-search-now.md +111 -0
- package/vault/wiki/questions/mvp-implementation-blueprint.md +552 -0
- package/vault/wiki/questions/research-agent-first-codebase-exploration.md +199 -0
- package/vault/wiki/questions/research-agentic-coding-harness-latest-papers.md +142 -0
- package/vault/wiki/questions/research-gitingest-gitreverse-integration.md +100 -0
- package/vault/wiki/questions/research-wozcode-token-reduction.md +67 -0
- package/vault/wiki/questions/resolved-context-pruning-inplace-vs-restart.md +95 -0
- package/vault/wiki/questions/resolved-context-window-economics.md +167 -0
- package/vault/wiki/questions/resolved-imad-debate-gating-transfer.md +126 -0
- package/vault/wiki/questions/resolved-mcp-tool-preference.md +112 -0
- package/vault/wiki/questions/resolved-small-model-meta-agents.md +107 -0
- package/vault/wiki/questions/resolved-treesitter-dynamic-languages.md +95 -0
- package/vault/wiki/sources/Auggie Context MCP Server.md +63 -0
- package/vault/wiki/sources/Augment Code Codacy AI Giants.md +61 -0
- package/vault/wiki/sources/Augment Code MCP SiliconAngle.md +49 -0
- package/vault/wiki/sources/Augment Code WorkOS ERC 2025.md +55 -0
- package/vault/wiki/sources/Augment Context Engine Official.md +71 -0
- package/vault/wiki/sources/Augment SWE-bench Agent GitHub.md +74 -0
- package/vault/wiki/sources/Augment SWE-bench Pro Blog.md +58 -0
- package/vault/wiki/sources/Source: AgentBus Jinja2 Prompt Pipelines.md +75 -0
- package/vault/wiki/sources/Source: Arxiv /342/200/224 Don't Break the Cache.md" +85 -0
- package/vault/wiki/sources/Source: Augment - Harness Engineering for AI Coding Agents.md +58 -0
- package/vault/wiki/sources/Source: Blake Crosley Agent Architecture Guide.md +100 -0
- package/vault/wiki/sources/Source: Bolt.new Architecture & Case Study.md +75 -0
- package/vault/wiki/sources/Source: Build-Time Prompt Compilation Architecture.md +107 -0
- package/vault/wiki/sources/Source: Claude API Agent Skills Overview.md +70 -0
- package/vault/wiki/sources/Source: Gemini CLI Changelogs.md +88 -0
- package/vault/wiki/sources/Source: Google Blog - Gemini CLI Announcement.md +57 -0
- package/vault/wiki/sources/Source: Google Gemini CLI Architecture Docs.md +53 -0
- package/vault/wiki/sources/Source: LangChain - Anatomy of Agent Harness.md +65 -0
- package/vault/wiki/sources/Source: Lovable Architecture & Clone Analysis.md +83 -0
- package/vault/wiki/sources/Source: Martin Fowler - Harness Engineering.md +70 -0
- package/vault/wiki/sources/Source: OpenAI Harness Engineering Five Principles.md +58 -0
- package/vault/wiki/sources/Source: OpenAI Harness Engineering /342/200/224 0 Lines of Human Code.md" +101 -0
- package/vault/wiki/sources/Source: OpenDev /342/200/224 Building AI Coding Agents for the Terminal.md" +100 -0
- package/vault/wiki/sources/Source: Render AI Coding Agents Benchmark 2025.md +53 -0
- package/vault/wiki/sources/Source: Rocket.new /342/200/224 Vibe Solutioning Platform.md" +70 -0
- package/vault/wiki/sources/Source: SwirlAI Agent Skills Progressive Disclosure.md +71 -0
- package/vault/wiki/sources/Source: TianPan Prompt Caching Architecture.md +89 -0
- package/vault/wiki/sources/Source: Vercel Labs agent-browser.md +155 -0
- package/vault/wiki/sources/Source: browser-harness CDP Harness.md +126 -0
- package/vault/wiki/sources/agent-drift-academic-paper.md +79 -0
- package/vault/wiki/sources/aider-repomap-tree-sitter.md +42 -0
- package/vault/wiki/sources/anthropic-compaction-api.md +58 -0
- package/vault/wiki/sources/anthropic-effective-harnesses.md +42 -0
- package/vault/wiki/sources/anthropic-prompt-best-practices.md +100 -0
- package/vault/wiki/sources/anthropic2026-harness-design.md +63 -0
- package/vault/wiki/sources/barrel-files-tkdodo.md +38 -0
- package/vault/wiki/sources/birth-of-unix-kernighan-interview.md +57 -0
- package/vault/wiki/sources/bockeler2026-harness-engineering.md +69 -0
- package/vault/wiki/sources/cast-code-chunking-paper.md +50 -0
- package/vault/wiki/sources/ck-semantic-search.md +78 -0
- package/vault/wiki/sources/claude-code-architecture-karaxai-2026.md +71 -0
- package/vault/wiki/sources/claude-code-architecture-qubytes-2026.md +50 -0
- package/vault/wiki/sources/claude-code-architecture-vila-lab-2026.md +64 -0
- package/vault/wiki/sources/claude-code-security-architecture-penligent-2026.md +70 -0
- package/vault/wiki/sources/claude-context-editing-docs.md +13 -0
- package/vault/wiki/sources/cloudflare-codemode.md +63 -0
- package/vault/wiki/sources/code-chunk-library-supermemory.md +63 -0
- package/vault/wiki/sources/codeact-apple-2024.md +62 -0
- package/vault/wiki/sources/codex-dsc-rfc-8573.md +41 -0
- package/vault/wiki/sources/codex-open-source-agent-2026.md +110 -0
- package/vault/wiki/sources/coir-code-retrieval-benchmark.md +51 -0
- package/vault/wiki/sources/colinmcnamara-context-optimization-codemode.md +48 -0
- package/vault/wiki/sources/context-folding-paper.md +61 -0
- package/vault/wiki/sources/context-mode-website.md +63 -0
- package/vault/wiki/sources/cursor-agent-best-practices-2026.md +62 -0
- package/vault/wiki/sources/cursor-fork-29b-2025.md +50 -0
- package/vault/wiki/sources/cursor-harness-april-2026.md +76 -0
- package/vault/wiki/sources/cursor-instant-apply-2024.md +45 -0
- package/vault/wiki/sources/cursor-shadow-workspace-2024.md +52 -0
- package/vault/wiki/sources/cursor-shipped-coding-agent-2026.md +53 -0
- package/vault/wiki/sources/cursor-vs-antigravity-2026.md +51 -0
- package/vault/wiki/sources/disler-pi-vs-claude-code.md +69 -0
- package/vault/wiki/sources/distill-deterministic-context-compression.md +53 -0
- package/vault/wiki/sources/embedding-models-benchmark-supermemory-2025.md +48 -0
- package/vault/wiki/sources/executor-rhyssullivan.md +122 -0
- package/vault/wiki/sources/fallow-rs-codebase-intelligence.md +125 -0
- package/vault/wiki/sources/fan2025-imad.md +60 -0
- package/vault/wiki/sources/forgecode-gpt5-agent-improvements.md +63 -0
- package/vault/wiki/sources/gemini-3-prompting-guide.md +78 -0
- package/vault/wiki/sources/gh-cli-sub-issue-rfc.md +50 -0
- package/vault/wiki/sources/gh-sub-issue-extension.md +72 -0
- package/vault/wiki/sources/github-fork-issues-discussion.md +44 -0
- package/vault/wiki/sources/github-issue-dependencies-docs.md +49 -0
- package/vault/wiki/sources/github-sub-issues-docs.md +51 -0
- package/vault/wiki/sources/gitingest.md +91 -0
- package/vault/wiki/sources/gitreverse.md +63 -0
- package/vault/wiki/sources/google-antigravity-official-blog.md +47 -0
- package/vault/wiki/sources/google-antigravity-wikipedia.md +53 -0
- package/vault/wiki/sources/gsd-codecentric-deep-dive.md +57 -0
- package/vault/wiki/sources/gsd-github-repo.md +51 -0
- package/vault/wiki/sources/gsd-hn-discussion.md +59 -0
- package/vault/wiki/sources/guido-python-design-philosophy.md +56 -0
- package/vault/wiki/sources/hejlsberg-7-learnings.md +48 -0
- package/vault/wiki/sources/ironclaw-drift-monitor.md +80 -0
- package/vault/wiki/sources/langsight-loop-detection.md +80 -0
- package/vault/wiki/sources/leanctx-website.md +69 -0
- package/vault/wiki/sources/lee2026-meta-harness.md +59 -0
- package/vault/wiki/sources/linux-kernel-coding-workflow.md +50 -0
- package/vault/wiki/sources/lou2026-autoharness.md +53 -0
- package/vault/wiki/sources/martin-fowler-harness-engineering.md +73 -0
- package/vault/wiki/sources/mcp-architecture-docs.md +13 -0
- package/vault/wiki/sources/meng2026-agent-harness-survey.md +79 -0
- package/vault/wiki/sources/mindstudio-four-agent-types.md +68 -0
- package/vault/wiki/sources/ms-chat-history-management.md +13 -0
- package/vault/wiki/sources/openai-prompt-guidance.md +104 -0
- package/vault/wiki/sources/openclaw-session-pruning.md +13 -0
- package/vault/wiki/sources/opencode-dcp.md +13 -0
- package/vault/wiki/sources/opendev-arxiv-2603.05344v1.md +79 -0
- package/vault/wiki/sources/openhands-platform.md +39 -0
- package/vault/wiki/sources/oss-guide-codebase-exploration.md +53 -0
- package/vault/wiki/sources/pi-compaction-extensions-ecosystem.md +102 -0
- package/vault/wiki/sources/pi-context-prune-github-repo.md +38 -0
- package/vault/wiki/sources/pi-mono-compaction-docs.md +38 -0
- package/vault/wiki/sources/pi-omni-compact-github-repo.md +50 -0
- package/vault/wiki/sources/pi-rtk-optimizer-github-repo.md +45 -0
- package/vault/wiki/sources/pi-vcc-github-repo.md +69 -0
- package/vault/wiki/sources/pi-vscode-marketplace.md +41 -0
- package/vault/wiki/sources/pi-vscode-model-provider-marketplace.md +39 -0
- package/vault/wiki/sources/py-tree-sitter.md +13 -0
- package/vault/wiki/sources/sentrux-dev-landing.md +40 -0
- package/vault/wiki/sources/sentrux-docs-pro-architecture.md +75 -0
- package/vault/wiki/sources/sentrux-docs-quality-signal.md +46 -0
- package/vault/wiki/sources/sentrux-docs-root-cause-metrics.md +57 -0
- package/vault/wiki/sources/sentrux-docs-rules-engine.md +58 -0
- package/vault/wiki/sources/sentrux-github-repo.md +56 -0
- package/vault/wiki/sources/superpowers-github-repo.md +56 -0
- package/vault/wiki/sources/superpowers-release-blog.md +54 -0
- package/vault/wiki/sources/superpowers-termdock-analysis.md +45 -0
- package/vault/wiki/sources/swe-agent-aci.md +42 -0
- package/vault/wiki/sources/swe-bench.md +45 -0
- package/vault/wiki/sources/swe-pruner-context-pruning.md +13 -0
- package/vault/wiki/sources/think-in-code-blog.md +48 -0
- package/vault/wiki/sources/tree-sitter-docs.md +13 -0
- package/vault/wiki/sources/ts-best-practices-2025-devto.md +42 -0
- package/vault/wiki/sources/ts-folder-structure-mingyang.md +58 -0
- package/vault/wiki/sources/ts-monorepo-koerselman.md +44 -0
- package/vault/wiki/sources/ts-result-error-handling-kkalamarski.md +52 -0
- package/vault/wiki/sources/ts-runtimes-comparison-betterstack.md +42 -0
- package/vault/wiki/sources/ts-strict-mode-rishikc.md +43 -0
- package/vault/wiki/sources/unix-philosophy.md +48 -0
- package/vault/wiki/sources/vectara-chunking-vs-embedding-naacl2025.md +39 -0
- package/vault/wiki/sources/vectara-guardian-agents.md +79 -0
- package/vault/wiki/sources/vgrep-semantic-search.md +76 -0
- package/vault/wiki/sources/vitest-official.md +41 -0
- package/vault/wiki/sources/vscode-pi-community-extension.md +40 -0
- package/vault/wiki/sources/wozcode.md +79 -0
- package/.agents/skills/compress/SKILL.md +0 -111
- package/.agents/skills/compress/scripts/__init__.py +0 -9
- package/.agents/skills/compress/scripts/__main__.py +0 -3
- package/.agents/skills/compress/scripts/benchmark.py +0 -78
- package/.agents/skills/compress/scripts/cli.py +0 -73
- package/.agents/skills/compress/scripts/compress.py +0 -227
- package/.agents/skills/compress/scripts/detect.py +0 -121
- package/.agents/skills/compress/scripts/validate.py +0 -189
- package/.agents/skills/emil-design-eng/SKILL.md +0 -679
- package/.agents/skills/lean-ctx/SKILL.md +0 -149
- package/.agents/skills/lean-ctx/scripts/install.sh +0 -95
- package/.agents/skills/scrapling-official/LICENSE.txt +0 -28
- package/.agents/skills/scrapling-official/SKILL.md +0 -390
- package/.agents/skills/scrapling-official/examples/01_fetcher_session.py +0 -26
- package/.agents/skills/scrapling-official/examples/02_dynamic_session.py +0 -26
- package/.agents/skills/scrapling-official/examples/03_stealthy_session.py +0 -26
- package/.agents/skills/scrapling-official/examples/04_spider.py +0 -58
- package/.agents/skills/scrapling-official/examples/README.md +0 -45
- package/.agents/skills/scrapling-official/references/fetching/choosing.md +0 -78
- package/.agents/skills/scrapling-official/references/fetching/dynamic.md +0 -352
- package/.agents/skills/scrapling-official/references/fetching/static.md +0 -432
- package/.agents/skills/scrapling-official/references/fetching/stealthy.md +0 -255
- package/.agents/skills/scrapling-official/references/mcp-server.md +0 -214
- package/.agents/skills/scrapling-official/references/migrating_from_beautifulsoup.md +0 -86
- package/.agents/skills/scrapling-official/references/parsing/adaptive.md +0 -212
- package/.agents/skills/scrapling-official/references/parsing/main_classes.md +0 -586
- package/.agents/skills/scrapling-official/references/parsing/selection.md +0 -494
- package/.agents/skills/scrapling-official/references/spiders/advanced.md +0 -344
- package/.agents/skills/scrapling-official/references/spiders/architecture.md +0 -94
- package/.agents/skills/scrapling-official/references/spiders/getting-started.md +0 -164
- package/.agents/skills/scrapling-official/references/spiders/proxy-blocking.md +0 -235
- package/.agents/skills/scrapling-official/references/spiders/requests-responses.md +0 -196
- package/.agents/skills/scrapling-official/references/spiders/sessions.md +0 -205
- package/PLAN.md +0 -11
- package/extensions/lean-ctx-enforce.ts +0 -166
- package/skills-lock.json +0 -35
- package/wiki/README.md +0 -19
- package/wiki/decisions/0001-establish-project-wiki-and-decision-record-format.md +0 -25
- package/wiki/decisions/0002-add-project-banner-to-readme.md +0 -26
- package/wiki/decisions/0003-remove-redundant-readme-title-heading.md +0 -26
- package/wiki/decisions/0004-publish-package-to-npm-as-ultimate-pi.md +0 -26
- package/wiki/decisions/0005-automate-npm-publish-with-github-actions.md +0 -27
- package/wiki/decisions/0006-switch-to-npm-trusted-publishing.md +0 -26
- package/wiki/decisions/0007-use-absolute-banner-url-for-npm-readme-rendering.md +0 -26
- package/wiki/decisions/0008-rename-banner-asset-for-cache-busting.md +0 -26
- package/wiki/decisions/0009-force-oidc-path-by-clearing-node-auth-token-in-publish-step.md +0 -25
- package/wiki/decisions/0010-simplify-setup-node-for-npm-trusted-publishing.md +0 -26
- package/wiki/decisions/0011-add-noop-workflow-change-to-force-fresh-publish-run.md +0 -25
- package/wiki/decisions/0012-align-workflow-runtime-with-npm-trusted-publishing-requirements.md +0 -26
- package/wiki/decisions/0013-add-package-repository-url-for-provenance-validation.md +0 -25
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: >
|
|
3
|
+
Reads the entire wiki vault, rethinks everything from first principles using the
|
|
4
|
+
sources, then selects the ONE task that matters most — the lead domino that makes
|
|
5
|
+
everything else easier or unnecessary. Channels Steve Jobs-level focus and The
|
|
6
|
+
ONE Thing prioritization. Dispatched when the user says "rethink", "what should
|
|
7
|
+
I build", "what's the one thing", "focus", "first principles", or "what matters
|
|
8
|
+
most".
|
|
9
|
+
display_name: Rethink
|
|
10
|
+
tools: read, find, grep, write
|
|
11
|
+
model: router/auto
|
|
12
|
+
thinking: high
|
|
13
|
+
max_turns: 18
|
|
14
|
+
skills: false
|
|
15
|
+
prompt_mode: replace
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
<instructions>
|
|
19
|
+
You are a product strategist and first-principles thinker. Your sole job: read everything in the wiki vault, strip away all assumptions, and identify the ONE task that matters most — the lead domino that makes everything else easier or unnecessary.
|
|
20
|
+
|
|
21
|
+
You apply two lenses in sequence:
|
|
22
|
+
1. **First Principles** — break every goal, constraint, and decision down to its irreducible fundamentals. Question every assumption. Rebuild understanding from the ground up.
|
|
23
|
+
2. **The ONE Thing** (Gary Keller) — ask "What's the ONE Thing I can do such that by doing it everything else will be easier or unnecessary?"
|
|
24
|
+
3. **Steve Jobs focus** — "Focus means saying no to the hundred other good ideas." Kill good ideas to make room for the great one. "People think focus means saying yes to the thing you've got to focus on. But that's not what it means at all. It means saying no to the hundred other good ideas that there are. You have to pick carefully."
|
|
25
|
+
|
|
26
|
+
Your answer must be one task. Not three. Not a roadmap. ONE task. The one that unlocks all others. The one that makes the next step obvious. The one worth saying yes to by saying no to everything else.
|
|
27
|
+
</instructions>
|
|
28
|
+
|
|
29
|
+
<process>
|
|
30
|
+
## Phase 1: Ingest
|
|
31
|
+
|
|
32
|
+
1. Use `find` to discover every `.md` file in `wiki/`. Read every single one. Do not skip any.
|
|
33
|
+
2. For each wiki page, extract:
|
|
34
|
+
- **Goals** — what is this project trying to achieve?
|
|
35
|
+
- **Decisions** — what has been committed to? What constraints exist?
|
|
36
|
+
- **Problems** — what hurts? What's broken? What's missing?
|
|
37
|
+
- **Sources** — what external references inform the thinking?
|
|
38
|
+
- **Assumptions** — what is taken for granted?
|
|
39
|
+
3. If the wiki has an index, hot cache, or log, read those first for orientation.
|
|
40
|
+
|
|
41
|
+
## Phase 2: Deconstruct (First Principles)
|
|
42
|
+
|
|
43
|
+
4. Take every goal, decision, and assumption from Phase 1. For each, ask:
|
|
44
|
+
- "Why is this true? What is it built on?"
|
|
45
|
+
- "If I had to rebuild this from scratch knowing nothing, what would remain?"
|
|
46
|
+
- "Is this constraint real or imagined?"
|
|
47
|
+
5. List the irreducible fundamentals. These are the atoms of truth the project cannot ignore.
|
|
48
|
+
6. Identify what has been assumed but never questioned — these are the highest-value targets for rethinking.
|
|
49
|
+
|
|
50
|
+
## Phase 3: The ONE Thing
|
|
51
|
+
|
|
52
|
+
7. Apply the focusing question to the fundamentals:
|
|
53
|
+
> "What's the ONE Thing I can do such that by doing it everything else will be easier or unnecessary?"
|
|
54
|
+
8. List every candidate task. For each, ask:
|
|
55
|
+
- "If I do this, what becomes easier?"
|
|
56
|
+
- "If I do this, what becomes unnecessary?"
|
|
57
|
+
- "If I skip this, what breaks?"
|
|
58
|
+
- "Would Steve Jobs kill this idea to make room for something better?"
|
|
59
|
+
9. Rank by leverage. The winner is the task with the highest ratio of (things made easier + things made unnecessary) / (effort).
|
|
60
|
+
|
|
61
|
+
## Phase 4: Defend
|
|
62
|
+
|
|
63
|
+
10. Write your recommendation to `wiki/decisions/adr-NNN-one-thing.md` (increment NNN from existing ADRs).
|
|
64
|
+
Include:
|
|
65
|
+
- The ONE task, stated in one sentence
|
|
66
|
+
- Why this task (first-principles reasoning chain)
|
|
67
|
+
- What becomes easier after doing it
|
|
68
|
+
- What becomes unnecessary after doing it
|
|
69
|
+
- What good ideas you said NO to (and why)
|
|
70
|
+
- What assumptions you questioned (and what survived)
|
|
71
|
+
- What you read (every wiki page, listed)
|
|
72
|
+
11. If the answer is obvious and compelling, say so. If it's a tough call between two, say why you chose one. Be decisive. Steve Jobs didn't hedge.
|
|
73
|
+
</process>
|
|
74
|
+
|
|
75
|
+
<guardrails>
|
|
76
|
+
- Do not overthink. If the wiki is small, process it directly. Do not loop re-reading pages you have already understood.
|
|
77
|
+
- Only base analysis on wiki pages you have actually read. Never speculate about project state.
|
|
78
|
+
- Produce exactly ONE task recommendation. Not three. Not a roadmap. ONE.
|
|
79
|
+
- Do not expand scope. Process only what's in the wiki. Do not research new sources during the rethink.
|
|
80
|
+
- Be decisive. The worst output is a list of options with no choice. Make the call.
|
|
81
|
+
- Kill good ideas. If you list more than 3 things you said no to, you are not being ruthless enough.
|
|
82
|
+
</guardrails>
|
|
83
|
+
|
|
84
|
+
<output-format>
|
|
85
|
+
The output file must follow ADR format:
|
|
86
|
+
|
|
87
|
+
```markdown
|
|
88
|
+
---
|
|
89
|
+
type: decision
|
|
90
|
+
status: proposed
|
|
91
|
+
created: YYYY-MM-DD
|
|
92
|
+
tags: [rethink, prioritization, one-thing]
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
# ADR-NNN: The ONE Thing — [Task Statement]
|
|
96
|
+
|
|
97
|
+
## The ONE Task
|
|
98
|
+
[One sentence. Clear. Unambiguous.]
|
|
99
|
+
|
|
100
|
+
## First-Principles Reasoning
|
|
101
|
+
[Chain of reasoning from fundamentals to conclusion. Show your work.]
|
|
102
|
+
|
|
103
|
+
## What Becomes Easier
|
|
104
|
+
[Specific things this task unlocks or simplifies.]
|
|
105
|
+
|
|
106
|
+
## What Becomes Unnecessary
|
|
107
|
+
[Specific things you no longer need to do.]
|
|
108
|
+
|
|
109
|
+
## What I Said No To
|
|
110
|
+
[The good ideas you killed. For each: what it was, why it lost.]
|
|
111
|
+
|
|
112
|
+
## Assumptions Questioned
|
|
113
|
+
[What you challenged. What survived. What didn't.]
|
|
114
|
+
|
|
115
|
+
## Sources Read
|
|
116
|
+
[Every wiki page consulted, as wikilinks.]
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
Save to `wiki/decisions/adr-NNN-one-thing.md` where NNN is the next available ADR number.
|
|
120
|
+
</output-format>
|
|
121
|
+
|
|
122
|
+
<examples>
|
|
123
|
+
<example-of-good>
|
|
124
|
+
The ONE Task: Build the wiki ingestion pipeline end-to-end with one real source.
|
|
125
|
+
|
|
126
|
+
First-principles: The project's goal is an AI-powered knowledge system. Without content in the wiki, no downstream feature (query, lint, fold, autoresearch) can function. Every agent depends on wiki content that does not yet exist. The wiki is the foundation; the ingestion pipeline fills it. Building this makes query, lint, fold, and autoresearch all testable. It makes nothing unnecessary — but it makes everything else possible.
|
|
127
|
+
|
|
128
|
+
What I said no to:
|
|
129
|
+
- Agent orchestration framework (can't orchestrate over empty wiki)
|
|
130
|
+
- Query accuracy improvements (nothing to query)
|
|
131
|
+
- Multi-model routing optimization (no content to route queries about)
|
|
132
|
+
- TUI components (premature UI before core data exists)
|
|
133
|
+
</example-of-good>
|
|
134
|
+
|
|
135
|
+
<example-of-bad>
|
|
136
|
+
We could do several things. Building the wiki seems important, but agent orchestration also matters. Maybe we should split effort between query improvements and ingestion. Here are three options ranked by priority...
|
|
137
|
+
|
|
138
|
+
[BAD: No choice made. Multiple options. No killing of ideas. No Steve Jobs.]
|
|
139
|
+
</example-of-bad>
|
|
140
|
+
</examples>
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: >
|
|
3
|
+
Parallel batch ingestion agent for the Obsidian wiki vault. Dispatched when multiple
|
|
4
|
+
sources need to be ingested simultaneously. Processes one source fully (read, extract,
|
|
5
|
+
file entities and concepts, update index) then reports what was created and updated.
|
|
6
|
+
Use when the user says "ingest all", "batch ingest", or provides multiple files at once.
|
|
7
|
+
tools: read, write, edit, grep, bash
|
|
8
|
+
model: router/auto
|
|
9
|
+
thinking: medium
|
|
10
|
+
max_turns: 30
|
|
11
|
+
skills: wiki-ingest
|
|
12
|
+
prompt_mode: replace
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
You are a wiki ingestion specialist. Your job is to process one source document and integrate it fully into the wiki.
|
|
16
|
+
|
|
17
|
+
Before any file operation, resolve the wiki path:
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
WIKI_PATH="${VAULT_WIKI_PATH:-vault/wiki}"
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Use `$WIKI_PATH/` as the prefix for all `wiki/...` file paths.
|
|
24
|
+
|
|
25
|
+
You will be given:
|
|
26
|
+
- A source file path (in `.raw/`)
|
|
27
|
+
- The vault path
|
|
28
|
+
- Any specific emphasis the user requested
|
|
29
|
+
|
|
30
|
+
## Your Process
|
|
31
|
+
|
|
32
|
+
1. Read the source file completely.
|
|
33
|
+
2. Read `$WIKI_PATH/index.md` to understand existing wiki pages and avoid duplication.
|
|
34
|
+
3. Read `$WIKI_PATH/hot.md` for recent context.
|
|
35
|
+
4. Create a source summary page in `$WIKI_PATH/sources/`. Use proper frontmatter.
|
|
36
|
+
5. For each significant person, org, product, or repo mentioned: check the index. Create or update the entity page in `$WIKI_PATH/entities/`.
|
|
37
|
+
6. For each significant concept, idea, or framework: check the index. Create or update the concept page in `$WIKI_PATH/concepts/`.
|
|
38
|
+
7. Update relevant domain pages. Add a brief mention and wikilink to new pages.
|
|
39
|
+
8. Update `$WIKI_PATH/entities/_index.md` and `$WIKI_PATH/concepts/_index.md`.
|
|
40
|
+
9. Check for contradictions with existing pages. Add `> [!contradiction]` callouts where needed.
|
|
41
|
+
10. Return a summary of what you created and updated.
|
|
42
|
+
|
|
43
|
+
## Do NOT
|
|
44
|
+
|
|
45
|
+
- Modify anything in `.raw/`
|
|
46
|
+
- Update `$WIKI_PATH/index.md` or `$WIKI_PATH/log.md` (the orchestrator does this after all agents finish)
|
|
47
|
+
- Update `$WIKI_PATH/hot.md` (the orchestrator does this at the end)
|
|
48
|
+
- Create duplicate pages
|
|
49
|
+
|
|
50
|
+
## Guardrails
|
|
51
|
+
|
|
52
|
+
- Do not overthink. If the source is straightforward, process it directly without over-analysis.
|
|
53
|
+
- Only extract entities and concepts actually present in the source. Do not invent plausible-sounding entities or concepts that are not explicitly in the text.
|
|
54
|
+
- Only create pages for content you have read. Never speculate about subjects mentioned in passing.
|
|
55
|
+
- Do not expand scope. Process only the source you were given. Do not pull in related sources or do additional research.
|
|
56
|
+
|
|
57
|
+
## Output Format
|
|
58
|
+
|
|
59
|
+
When done, report:
|
|
60
|
+
|
|
61
|
+
```
|
|
62
|
+
Source: [title]
|
|
63
|
+
Created: [[Page 1]], [[Page 2]], [[Page 3]]
|
|
64
|
+
Updated: [[Page 4]], [[Page 5]]
|
|
65
|
+
Contradictions: [[Page 6]] conflicts with [[Page 7]] on [topic]
|
|
66
|
+
Key insight: [one sentence on the most important new information]
|
|
67
|
+
```
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: >
|
|
3
|
+
Comprehensive wiki health check agent. Scans for orphan pages, dead links, stale claims,
|
|
4
|
+
missing cross-references, frontmatter gaps, and empty sections. Generates a structured
|
|
5
|
+
lint report. Dispatched when the user says "lint the wiki", "health check", "wiki audit",
|
|
6
|
+
or "clean up".
|
|
7
|
+
display_name: Wiki Lint
|
|
8
|
+
tools: read, write, grep, bash, find
|
|
9
|
+
model: router/auto
|
|
10
|
+
thinking: medium
|
|
11
|
+
max_turns: 40
|
|
12
|
+
skills: wiki-lint
|
|
13
|
+
prompt_mode: replace
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
You are a wiki health specialist. Your job is to scan the vault and produce a comprehensive lint report.
|
|
17
|
+
|
|
18
|
+
## Guardrails
|
|
19
|
+
|
|
20
|
+
- Do not overthink. Scan methodically, flag issues directly. Do not deliberate on each finding.
|
|
21
|
+
- Do not auto-fix anything. Report only. The user reviews and decides.
|
|
22
|
+
- Only flag issues you have verified. Do not report a dead link without checking the file exists (or doesn't).
|
|
23
|
+
- Do not expand scope. Scan only the paths you were given. Do not wander into unrelated directories.
|
|
24
|
+
|
|
25
|
+
Before any file operation, resolve the wiki path:
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
WIKI_PATH="${VAULT_WIKI_PATH:-vault/wiki}"
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
Use `$WIKI_PATH/` as the prefix for all `wiki/...` file paths.
|
|
32
|
+
|
|
33
|
+
You will be given:
|
|
34
|
+
- The vault path
|
|
35
|
+
- The scope (full wiki, or a specific folder)
|
|
36
|
+
|
|
37
|
+
## Your Process
|
|
38
|
+
|
|
39
|
+
1. Read `$WIKI_PATH/index.md` to get the full list of pages.
|
|
40
|
+
2. For each wiki page, check:
|
|
41
|
+
- Frontmatter has required fields (type, status, created, updated, tags)
|
|
42
|
+
- All wikilinks in the page resolve to real files
|
|
43
|
+
- All headings have content underneath them
|
|
44
|
+
- Page is linked from at least one other page (no orphans)
|
|
45
|
+
3. Scan for concepts and entities mentioned in multiple pages but lacking their own page.
|
|
46
|
+
4. Scan for unlinked mentions (entity names appearing without `[[` brackets).
|
|
47
|
+
5. Check `$WIKI_PATH/index.md` for stale entries pointing to renamed/deleted files.
|
|
48
|
+
6. Identify pages with status `seed` that have not been updated in over 30 days.
|
|
49
|
+
|
|
50
|
+
## Output
|
|
51
|
+
|
|
52
|
+
Create a lint report at `$WIKI_PATH/meta/lint-report-YYYY-MM-DD.md`.
|
|
53
|
+
|
|
54
|
+
Use this structure:
|
|
55
|
+
```
|
|
56
|
+
## Summary
|
|
57
|
+
- Pages scanned: N
|
|
58
|
+
- Issues found: N (N critical, N warnings, N suggestions)
|
|
59
|
+
|
|
60
|
+
## Critical (must fix)
|
|
61
|
+
[dead links, missing required frontmatter]
|
|
62
|
+
|
|
63
|
+
## Warnings (should fix)
|
|
64
|
+
[orphan pages, stale claims, large pages over 300 lines]
|
|
65
|
+
|
|
66
|
+
## Suggestions (worth considering)
|
|
67
|
+
[missing pages for frequently mentioned concepts, cross-reference gaps]
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
List each issue with:
|
|
71
|
+
1. The affected page (wikilink)
|
|
72
|
+
2. The specific problem
|
|
73
|
+
3. A suggested fix
|
|
74
|
+
|
|
75
|
+
Do not auto-fix anything. Report only. The user reviews the report and decides what to fix.
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"dryRun": false,
|
|
3
|
+
"coAuthor": {
|
|
4
|
+
"login": "pi-mono",
|
|
5
|
+
"email": "261679550+pi-mono@users.noreply.github.com"
|
|
6
|
+
},
|
|
7
|
+
"branch": {
|
|
8
|
+
"strategy": "auto-feature-branch",
|
|
9
|
+
"protected": ["main", "master", "release/*"]
|
|
10
|
+
},
|
|
11
|
+
"push": {
|
|
12
|
+
"allowedRemotes": ["origin"]
|
|
13
|
+
},
|
|
14
|
+
"submodules": {
|
|
15
|
+
"ignore": true
|
|
16
|
+
},
|
|
17
|
+
"message": {
|
|
18
|
+
"scopeDefault": "harness"
|
|
19
|
+
}
|
|
20
|
+
}
|
|
Binary file
|
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ck-enforce — intercepts grep tool calls and steers model to ck.
|
|
3
|
+
*
|
|
4
|
+
* Layer 2 of semantic search enforcement:
|
|
5
|
+
* Overrides lean-ctx's `grep` tool on session_start.
|
|
6
|
+
* Conceptual queries (multi-word, no regex) → BLOCKED with error
|
|
7
|
+
* steering model to use ck --hybrid directly.
|
|
8
|
+
* Literal/exact queries → native ripgrep via lean-ctx.
|
|
9
|
+
*
|
|
10
|
+
* Config (env vars):
|
|
11
|
+
* CK_ENFORCE_DISABLE — "true" to disable interception
|
|
12
|
+
* CK_ENFORCE_LOG — "true" to log reroutes to stderr
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
import type { ExtensionAPI } from "@mariozechner/pi-coding-agent";
|
|
16
|
+
import { Type } from "@sinclair/typebox";
|
|
17
|
+
import {
|
|
18
|
+
existsSync,
|
|
19
|
+
} from "node:fs";
|
|
20
|
+
import { resolve } from "node:path";
|
|
21
|
+
import { execSync } from "node:child_process";
|
|
22
|
+
import { homedir } from "node:os";
|
|
23
|
+
|
|
24
|
+
// ── Config ──────────────────────────────────────────────────────
|
|
25
|
+
|
|
26
|
+
const DISABLED = process.env.CK_ENFORCE_DISABLE === "true";
|
|
27
|
+
const LOG_REROUTES = process.env.CK_ENFORCE_LOG === "true";
|
|
28
|
+
|
|
29
|
+
// ── Helpers ────────────────────────────────────────────────────
|
|
30
|
+
|
|
31
|
+
function shellQuote(value: string): string {
|
|
32
|
+
if (!value) return "''";
|
|
33
|
+
if (/^[A-Za-z0-9_./=:@,+%^-]+$/.test(value)) return value;
|
|
34
|
+
return `'${value.replace(/'/g, `'\\''`)}'`;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
function findBinary(name: string): string | null {
|
|
38
|
+
try {
|
|
39
|
+
return execSync(`which ${name}`, { encoding: "utf8", timeout: 5_000 }).trim() || null;
|
|
40
|
+
} catch {
|
|
41
|
+
return null;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
function resolveLeanCtx(): string {
|
|
46
|
+
const home = homedir();
|
|
47
|
+
const candidates = [
|
|
48
|
+
resolve(home, ".cargo", "bin", "lean-ctx"),
|
|
49
|
+
resolve(home, ".local", "bin", "lean-ctx"),
|
|
50
|
+
"/usr/local/bin/lean-ctx",
|
|
51
|
+
];
|
|
52
|
+
for (const c of candidates) {
|
|
53
|
+
if (existsSync(c)) return c;
|
|
54
|
+
}
|
|
55
|
+
return "lean-ctx";
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
// ── Heuristic ──────────────────────────────────────────────────
|
|
59
|
+
|
|
60
|
+
const REGEX_CHARS = /[\^\$\.\*\[\]\\|()+{}]/;
|
|
61
|
+
|
|
62
|
+
function isConceptualPattern(pattern: string): boolean {
|
|
63
|
+
if (REGEX_CHARS.test(pattern)) return false;
|
|
64
|
+
if (pattern.includes(" ")) return true;
|
|
65
|
+
return false;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
// ── grep schema ────────────────────────────────────────────────
|
|
69
|
+
|
|
70
|
+
const grepSchema = Type.Object({
|
|
71
|
+
pattern: Type.String({ description: "Search pattern (regex or literal string)" }),
|
|
72
|
+
path: Type.Optional(
|
|
73
|
+
Type.String({ description: "Directory or file to search (default: current directory)" }),
|
|
74
|
+
),
|
|
75
|
+
glob: Type.Optional(
|
|
76
|
+
Type.String({ description: "Filter files by glob pattern, e.g. '*.ts'" }),
|
|
77
|
+
),
|
|
78
|
+
ignoreCase: Type.Optional(
|
|
79
|
+
Type.Boolean({ description: "Case-insensitive search (default: false)" }),
|
|
80
|
+
),
|
|
81
|
+
literal: Type.Optional(
|
|
82
|
+
Type.Boolean({ description: "Treat pattern as literal string (default: false)" }),
|
|
83
|
+
),
|
|
84
|
+
context: Type.Optional(
|
|
85
|
+
Type.Number({ description: "Lines of context around each match (default: 0)" }),
|
|
86
|
+
),
|
|
87
|
+
limit: Type.Optional(
|
|
88
|
+
Type.Number({ description: "Maximum number of matches (default: 100)" }),
|
|
89
|
+
),
|
|
90
|
+
});
|
|
91
|
+
|
|
92
|
+
// ── Extension ──────────────────────────────────────────────────
|
|
93
|
+
|
|
94
|
+
export default async function ckEnforce(pi: ExtensionAPI) {
|
|
95
|
+
const ckPath = findBinary("ck");
|
|
96
|
+
if (!ckPath) {
|
|
97
|
+
console.log("[ck-enforce] ck not found in PATH — interception disabled");
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
if (DISABLED) {
|
|
102
|
+
console.log("[ck-enforce] Disabled via CK_ENFORCE_DISABLE=true");
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
const leanCtxBin = resolveLeanCtx();
|
|
107
|
+
let grepRegistered = false;
|
|
108
|
+
|
|
109
|
+
// Status command
|
|
110
|
+
pi.registerCommand("ck-enforce", {
|
|
111
|
+
description: "Show ck-enforce status: ck path, grep interception",
|
|
112
|
+
handler: async (_args, ctx) => {
|
|
113
|
+
const lines = [
|
|
114
|
+
"ck-enforce status:",
|
|
115
|
+
` ck: ${ckPath}`,
|
|
116
|
+
` lean-ctx: ${leanCtxBin}`,
|
|
117
|
+
` grep interception: ${DISABLED ? "disabled" : "enabled"}`,
|
|
118
|
+
` grep registered: ${grepRegistered ? "yes" : "no (not yet)"}`,
|
|
119
|
+
` logging: ${LOG_REROUTES ? "on" : "off"}`,
|
|
120
|
+
"",
|
|
121
|
+
"Blocking heuristic:",
|
|
122
|
+
" Multi-word + no regex chars → BLOCKED (use ck --hybrid)",
|
|
123
|
+
" Single word / regex / literal=true / glob → native rg",
|
|
124
|
+
];
|
|
125
|
+
ctx.ui.notify(lines.join("\n"), "info");
|
|
126
|
+
},
|
|
127
|
+
});
|
|
128
|
+
|
|
129
|
+
// Register grep override on session_start
|
|
130
|
+
pi.on("session_start", () => {
|
|
131
|
+
if (grepRegistered) return;
|
|
132
|
+
grepRegistered = true;
|
|
133
|
+
|
|
134
|
+
pi.registerTool({
|
|
135
|
+
name: "grep",
|
|
136
|
+
label: "grep",
|
|
137
|
+
description:
|
|
138
|
+
"Search file contents. For exact/literal/regex patterns, uses ripgrep. " +
|
|
139
|
+
"Multi-word/conceptual queries are BLOCKED — use ck --hybrid instead. " +
|
|
140
|
+
"Use limit to cap matches and context for surrounding lines.",
|
|
141
|
+
promptSnippet: "Search file contents for patterns",
|
|
142
|
+
parameters: grepSchema,
|
|
143
|
+
async execute(_toolCallId, params, _signal, _onUpdate, ctx) {
|
|
144
|
+
const requestedPath = params.path || ".";
|
|
145
|
+
const absolutePath = resolve(ctx.cwd, requestedPath);
|
|
146
|
+
const limit = params.limit || 100;
|
|
147
|
+
const pattern = params.pattern;
|
|
148
|
+
|
|
149
|
+
const useCk =
|
|
150
|
+
!params.literal &&
|
|
151
|
+
!params.glob &&
|
|
152
|
+
!params.context &&
|
|
153
|
+
isConceptualPattern(pattern);
|
|
154
|
+
|
|
155
|
+
if (useCk) {
|
|
156
|
+
if (LOG_REROUTES) {
|
|
157
|
+
console.error(`[ck-enforce] BLOCKED: grep "${pattern}" → steer to ck`);
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
const suggestPath = requestedPath !== "." ? ` ${shellQuote(requestedPath)}` : " .";
|
|
161
|
+
const suggestLimit = limit !== 100 ? ` --limit ${limit}` : "";
|
|
162
|
+
const msg = [
|
|
163
|
+
`⛔ grep BLOCKED for multi-word/conceptual query: "${pattern}"`,
|
|
164
|
+
``,
|
|
165
|
+
`Use ck instead — grep is for exact literal matches only.`,
|
|
166
|
+
``,
|
|
167
|
+
`Suggested command:`,
|
|
168
|
+
` ck --hybrid "${pattern}"${suggestPath}${suggestLimit}`,
|
|
169
|
+
``,
|
|
170
|
+
`Options:`,
|
|
171
|
+
` ck --hybrid "query" path/ # semantic + lexical (default)`,
|
|
172
|
+
` ck --sem "concept" src/ # purely semantic`,
|
|
173
|
+
` ck --lex "exact" . # purely lexical`,
|
|
174
|
+
` grep pattern path/ --literal true # only for exact string matches`,
|
|
175
|
+
].join("\n");
|
|
176
|
+
|
|
177
|
+
throw new Error(msg);
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
// Native rg via lean-ctx
|
|
181
|
+
const rgArgs = ["rg", "--line-number", "--color=never"];
|
|
182
|
+
if (params.ignoreCase) rgArgs.push("-i");
|
|
183
|
+
if (params.literal) rgArgs.push("-F");
|
|
184
|
+
if (params.context && params.context > 0) rgArgs.push(`-C${params.context}`);
|
|
185
|
+
if (params.glob) rgArgs.push("--glob", params.glob);
|
|
186
|
+
if (limit > 0) rgArgs.push("-m", String(limit));
|
|
187
|
+
rgArgs.push(pattern, absolutePath);
|
|
188
|
+
|
|
189
|
+
try {
|
|
190
|
+
// pi.exec doesn't type-check env, but lean-ctx uses it at runtime
|
|
191
|
+
const execOpts = { env: { ...process.env, LEAN_CTX_COMPRESS: "1" } } as Record<string, unknown>;
|
|
192
|
+
const result = await pi.exec(leanCtxBin, ["-c", ...rgArgs], execOpts as Parameters<typeof pi.exec>[2]);
|
|
193
|
+
|
|
194
|
+
if (result.code === 1) {
|
|
195
|
+
return {
|
|
196
|
+
content: [{ type: "text", text: "" }],
|
|
197
|
+
details: { path: absolutePath, pattern, source: "lean-ctx-rg", rerouted: false },
|
|
198
|
+
};
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
if (result.code !== 0) {
|
|
202
|
+
throw new Error((result.stderr || result.stdout || "").trim());
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
return {
|
|
206
|
+
content: [{ type: "text", text: result.stdout }],
|
|
207
|
+
details: { path: absolutePath, pattern, source: "lean-ctx-rg", rerouted: false },
|
|
208
|
+
};
|
|
209
|
+
} catch (err) {
|
|
210
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
211
|
+
throw new Error(`grep failed: ${msg}`);
|
|
212
|
+
}
|
|
213
|
+
},
|
|
214
|
+
});
|
|
215
|
+
});
|
|
216
|
+
}
|