@softspark/ai-toolkit 2.11.0 → 3.0.0

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.
Files changed (108) hide show
  1. package/AGENTS.md +21 -21
  2. package/CHANGELOG.md +62 -0
  3. package/README.md +16 -9
  4. package/app/.claude-plugin/plugin.json +1 -1
  5. package/app/agents/meta-architect.md +44 -0
  6. package/app/skills/agent-creator/SKILL.md +22 -6
  7. package/app/skills/analyze/SKILL.md +21 -1
  8. package/app/skills/api-patterns/SKILL.md +27 -0
  9. package/app/skills/app-builder/SKILL.md +24 -0
  10. package/app/skills/architecture-audit/SKILL.md +24 -0
  11. package/app/skills/architecture-decision/SKILL.md +24 -0
  12. package/app/skills/biz-scan/SKILL.md +24 -0
  13. package/app/skills/brand-voice/SKILL.md +36 -0
  14. package/app/skills/briefing/SKILL.md +41 -1
  15. package/app/skills/build/SKILL.md +24 -1
  16. package/app/skills/chaos/SKILL.md +22 -1
  17. package/app/skills/ci/SKILL.md +22 -1
  18. package/app/skills/ci-cd-patterns/SKILL.md +25 -0
  19. package/app/skills/command-creator/SKILL.md +31 -2
  20. package/app/skills/content-moderation-patterns/SKILL.md +25 -0
  21. package/app/skills/database-patterns/SKILL.md +25 -0
  22. package/app/skills/debug/SKILL.md +23 -1
  23. package/app/skills/design-engineering/SKILL.md +25 -0
  24. package/app/skills/docker-devops/SKILL.md +26 -0
  25. package/app/skills/ecommerce-patterns/SKILL.md +26 -0
  26. package/app/skills/evaluate/SKILL.md +22 -1
  27. package/app/skills/evolve/SKILL.md +25 -0
  28. package/app/skills/explain/SKILL.md +26 -1
  29. package/app/skills/explore/SKILL.md +25 -0
  30. package/app/skills/fix/SKILL.md +26 -1
  31. package/app/skills/git-mastery/SKILL.md +26 -0
  32. package/app/skills/grill-me/SKILL.md +22 -7
  33. package/app/skills/health/SKILL.md +22 -1
  34. package/app/skills/hipaa-validate/SKILL.md +25 -8
  35. package/app/skills/hook-creator/SKILL.md +107 -14
  36. package/app/skills/index/SKILL.md +22 -1
  37. package/app/skills/instinct-review/SKILL.md +25 -1
  38. package/app/skills/introspect/SKILL.md +26 -1
  39. package/app/skills/lint/SKILL.md +27 -1
  40. package/app/skills/mcp-builder/SKILL.md +27 -0
  41. package/app/skills/mem-search/SKILL.md +40 -0
  42. package/app/skills/migrate/SKILL.md +27 -1
  43. package/app/skills/migration-patterns/SKILL.md +26 -0
  44. package/app/skills/night-watch/SKILL.md +22 -1
  45. package/app/skills/observability-patterns/SKILL.md +26 -0
  46. package/app/skills/onboard/SKILL.md +22 -1
  47. package/app/skills/panic/SKILL.md +21 -1
  48. package/app/skills/performance-profiling/SKILL.md +34 -0
  49. package/app/skills/persona/SKILL.md +21 -4
  50. package/app/skills/plan/SKILL.md +26 -0
  51. package/app/skills/plan-writing/SKILL.md +26 -0
  52. package/app/skills/plugin-creator/SKILL.md +23 -6
  53. package/app/skills/pr/SKILL.md +24 -1
  54. package/app/skills/prd-to-issues/SKILL.md +22 -6
  55. package/app/skills/prd-to-plan/SKILL.md +22 -4
  56. package/app/skills/predict/SKILL.md +25 -0
  57. package/app/skills/qa-session/SKILL.md +23 -7
  58. package/app/skills/rag-patterns/SKILL.md +26 -0
  59. package/app/skills/refactor/SKILL.md +26 -0
  60. package/app/skills/refactor-plan/SKILL.md +23 -6
  61. package/app/skills/rollback/SKILL.md +27 -1
  62. package/app/skills/security-patterns/SKILL.md +27 -0
  63. package/app/skills/skill-audit/SKILL.md +22 -5
  64. package/app/skills/skill-creator/SKILL.md +58 -13
  65. package/app/skills/swift-patterns/SKILL.md +27 -107
  66. package/app/skills/swift-patterns/reference/frameworks.md +111 -0
  67. package/app/skills/test/SKILL.md +23 -1
  68. package/app/skills/testing-patterns/SKILL.md +26 -0
  69. package/app/skills/triage-issue/SKILL.md +22 -4
  70. package/app/skills/ubiquitous-language/SKILL.md +23 -8
  71. package/benchmarks/ecosystem-doctor-snapshot.json +395 -0
  72. package/kb/history/completed/deep-coverage-v3-20260423.md +160 -0
  73. package/kb/history/completed/ecosystem-deep-sweep-20260423.md +273 -0
  74. package/kb/procedures/ecosystem-sync-sop.md +255 -0
  75. package/kb/procedures/maintenance-sop.md +13 -2
  76. package/kb/procedures/release-preparation-sop.md +91 -12
  77. package/kb/procedures/release-verification-sop.md +24 -6
  78. package/kb/reference/global-install-model.md +15 -2
  79. package/kb/reference/supported-tools-registry.md +229 -0
  80. package/llms-full.txt +1105 -43
  81. package/llms.txt +4 -0
  82. package/manifest.json +1 -1
  83. package/package.json +4 -1
  84. package/scripts/ecosystem_doctor.py +348 -0
  85. package/scripts/ecosystem_tools.json +500 -0
  86. package/scripts/evaluate_skills.py +84 -0
  87. package/scripts/generate_aider_conf.py +26 -1
  88. package/scripts/generate_antigravity.py +77 -8
  89. package/scripts/generate_augment_agents.py +161 -0
  90. package/scripts/generate_augment_commands.py +160 -0
  91. package/scripts/generate_augment_hooks.py +162 -0
  92. package/scripts/generate_augment_skills.py +98 -0
  93. package/scripts/generate_cline_rules.py +96 -9
  94. package/scripts/generate_codex_hooks.py +13 -2
  95. package/scripts/generate_codex_skills.py +195 -0
  96. package/scripts/generate_copilot.py +296 -18
  97. package/scripts/generate_cursor_agents.py +144 -0
  98. package/scripts/generate_cursor_hooks.py +155 -0
  99. package/scripts/generate_cursor_mdc.py +20 -8
  100. package/scripts/generate_gemini_commands.py +158 -0
  101. package/scripts/generate_gemini_hooks.py +159 -0
  102. package/scripts/generate_gemini_skills.py +98 -0
  103. package/scripts/generate_roo_modes.py +42 -1
  104. package/scripts/generate_windsurf_hooks.py +143 -0
  105. package/scripts/generate_windsurf_rules.py +162 -10
  106. package/scripts/install.py +11 -2
  107. package/scripts/install_steps/ai_tools.py +120 -5
  108. package/scripts/validate.py +20 -3
package/llms-full.txt CHANGED
@@ -13,10 +13,13 @@
13
13
 
14
14
  - [Best Practices](kb/best-practices/README.md)
15
15
  - [No Hardcoded Counts in Secondary Docs](kb/best-practices/no-hardcoded-counts.md)
16
+ - [Plan: Deep Coverage v3.0 — 100% Native Surface Utilization](kb/history/completed/deep-coverage-v3-20260423.md)
17
+ - [Plan: Ecosystem Deep Sweep — All 12 Supported Tools](kb/history/completed/ecosystem-deep-sweep-20260423.md)
16
18
  - [Plan: Enterprise Config Inheritance — Multi-Repo Governance with `extends`](kb/history/completed/enterprise-config-inheritance-plan-20260412.md)
17
19
  - [Plan: Offline-First SLM Profile — Lightweight Mode for Local Models](kb/history/completed/offline-slm-profile-plan-20260411.md)
18
20
  - [How-To Guides](kb/howto/README.md)
19
21
  - [Plan: Cloud Security Pack — Multi-Cloud Audit](kb/planning/cloud-security-pack-plan.md)
22
+ - [SOP: Ecosystem Sync](kb/procedures/ecosystem-sync-sop.md)
20
23
  - [SOP: Claude Toolkit Maintenance](kb/procedures/maintenance-sop.md)
21
24
  - [SOP: Release Preparation](kb/procedures/release-preparation-sop.md)
22
25
  - [SOP: Release Verification](kb/procedures/release-verification-sop.md)
@@ -52,6 +55,7 @@
52
55
  - [Skills Catalog](kb/reference/skills-catalog.md)
53
56
  - [Skills Unification Model](kb/reference/skills-unification.md)
54
57
  - [Usage Statistics](kb/reference/stats.md)
58
+ - [Supported Tools Registry](kb/reference/supported-tools-registry.md)
55
59
  - [Config Sync](kb/reference/sync.md)
56
60
  - [Unique Features & Differentiators](kb/reference/unique-features.md)
57
61
  - [Troubleshooting](kb/troubleshooting/README.md)
@@ -60,17 +64,17 @@
60
64
 
61
65
  - **a11y-validate**: Validate code against accessibility standards: WCAG 2.1 Level AA, EN 301 549, and the European Accessibility Act (EAA / Directive EU 2019/882). Covers semantics, text alternatives, keyboard/focus, color/contrast, forms, media, ARIA, motion, mobile, and EAA documentation requirements. Framework-aware (React/Next/Nuxt/Astro/Gatsby/SvelteKit/Remix/Angular/Vue/React Native/Flutter/static HTML).
62
66
  - **agent-creator**: Creates new specialized agents with frontmatter, tool selection, and delegation guidance
63
- - **analyze**: Analyze code quality, complexity, and patterns
67
+ - **analyze**: Analyze code quality, complexity, and patterns across a codebase. Use when the user asks for a quality report, hotspot scan, or systemic architecture signal — not for fixing bugs or reviewing a single PR.
64
68
  - **api-patterns**: REST and GraphQL API design patterns: resource naming, versioning, pagination, error contracts, idempotency, HATEOAS, OpenAPI. Triggers: API design, REST, GraphQL, endpoint, route, OpenAPI, Swagger, pagination, rate limit, versioning, idempotency key. Load when designing or reviewing any HTTP API surface.
65
69
  - **app-builder**: Full-stack app scaffolding with stack-selection matrix: Next.js, React+Vite, Nuxt, Astro, FastAPI, Django, Laravel, React Native, Flutter, Unity. Triggers: scaffold, bootstrap, new project, starter template, build app, landing page, dashboard, API, mobile app, CLI, e-commerce, game. Load when user wants to start a new project from scratch.
66
70
  - **architecture-audit**: Explore codebase organically for architectural friction, discover shallow modules, and propose module-deepening refactors as GitHub issue RFCs using parallel sub-agent interface designs. Use when user wants to improve architecture, find shallow modules, deepen modules, or reduce coupling.
67
71
  - **architecture-decision**: Architecture decision making via trade-off analysis in RFC/RFD/ADR format: context, constraints, 3+ options, comparison, recommendation. Triggers: architecture decision, ADR, RFC, RFD, trade-offs, options comparison, design choice, pick between, should we use, evaluate approach. Load when weighing 2+ architectural options or writing decision records.
68
72
  - **biz-scan**: Scans codebase for business opportunities by analyzing database schemas, API endpoints, tracking events, and feature flags to surface underutilized capabilities, missing KPIs, and monetization gaps. Use when the user asks about revenue opportunities, business metrics, KPI coverage, analytics gaps, or monetization analysis of a codebase.
69
73
  - **brand-voice**: Loaded when writing documentation, content, README, or user-facing text. Prevents generic LLM rhetoric and enforces direct, technical voice.
70
- - **briefing**: Generate executive daily briefing across all agents
71
- - **build**: Build the project with auto-detected toolchain
72
- - **chaos**: Inject controlled faults for resilience testing
73
- - **ci**: Detect and run CI pipeline with status reporting
74
+ - **briefing**: Generate an executive daily briefing that aggregates reports from all agents into a short, decision-focused summary. Use when the user asks for a status update across the whole system — not for one-agent activity reports.
75
+ - **build**: Build the project with auto-detected toolchain (npm, poetry, cargo, go, flutter, Docker). Use when the user asks to compile, bundle, or produce artifacts — not to run tests or deploy.
76
+ - **chaos**: Inject controlled faults for resilience testing on non-production targets. Use when the user explicitly asks for a chaos experiment, latency injection, or dependency kill — never implicit.
77
+ - **ci**: Detect, generate, or troubleshoot CI/CD pipeline configuration for the current project type (GitHub Actions, GitLab CI). Use when the user asks to set up, update, or debug a build pipeline — not for running tests locally.
74
78
  - **ci-cd-patterns**: CI/CD pipeline and deployment automation: GitHub Actions, GitLab CI, Jenkins, build stages, caching, artifact promotion, blue-green, canary, rollback gates. Triggers: CI, CD, pipeline, GitHub Actions, workflow YAML, deploy automation, release, artifact, rollout, canary, blue-green. Load when designing or fixing a build/release pipeline.
75
79
  - **clean-code**: Code quality principles: meaningful names, single responsibility, DRY, small functions, clear intent, guard clauses, refactoring rules. Triggers: clean code, naming, refactor for clarity, code smell, SRP, DRY, long function, god class, magic number, dead code. Load when reviewing or writing any production code.
76
80
  - **command-creator**: Creates new Claude Code slash commands with frontmatter, workflow guidance, and validation
@@ -80,7 +84,7 @@
80
84
  - **csharp-patterns**: C# and .NET development patterns: LINQ, async/await, dependency injection, records, nullable reference types, ASP.NET Core minimal APIs, EF Core, MediatR. Triggers: C#, .NET, dotnet, ASP.NET, EF Core, LINQ, IServiceCollection, record type, async C#, nullable reference types. Load when writing or reviewing C#/.NET code.
81
85
  - **cve-scan**: Scan project dependencies for known CVEs using native audit tools (npm, pip, composer, cargo, go, bundler, dart)
82
86
  - **database-patterns**: Database schema design and query optimization: normalization, indexing strategies, joins, N+1, transactions, isolation levels, partitioning, EXPLAIN plans. Triggers: schema, table design, index, slow query, N+1, PostgreSQL, MySQL, SQL Server, SQL, EXPLAIN, query plan, transaction, deadlock. Load when designing tables or tuning queries.
83
- - **debug**: Debug errors and trace root causes systematically
87
+ - **debug**: Debug errors and trace root causes systematically using logs, health checks, and hypothesis-driven investigation. Use when a bug or error message is in hand — not for architectural questions or when there is no reproducible symptom.
84
88
  - **debugging-tactics**: Root-cause debugging with 4-phase method: investigation, hypothesis, validation, fix. No fix without RCA. Triggers: bug, error, exception, stack trace, not working, intermittent, flaky, crash, regression, fails sometimes, why is X happening, broken after. Load when user reports a bug or asks to investigate failing code.
85
89
  - **deploy**: Deploy with pre-flight checks and health verification
86
90
  - **design-an-interface**: Generate multiple radically different interface designs using parallel sub-agents, then compare on simplicity, depth, and correctness. Based on 'Design It Twice' from Ousterhout. Use when user wants to design an API, explore interface options, compare module shapes, or mentions 'design it twice'.
@@ -89,42 +93,42 @@
89
93
  - **docs**: Generate and update README, API docs, and architecture notes
90
94
  - **documentation-standards**: KB document conventions: YAML frontmatter (7 required fields), 5-category taxonomy (reference/howto/procedures/troubleshooting/best-practices), directory-category matching, validate.sh CI rules. Triggers: kb/, KB document, architecture note, SOP, runbook, howto, frontmatter, knowledge base entry, documentation standard. Load when creating or editing any file under kb/.
91
95
  - **ecommerce-patterns**: E-commerce domain patterns: cart, checkout flow, payment providers (Stripe/Adyen), order state machine, inventory, promotions, tax, B2B vs B2C. Triggers: cart, checkout, product, SKU, inventory, payment, Stripe, Shopify, Medusa, Magento, order status, promotion, tax calculation, coupon, refund. Load when working on any e-commerce feature.
92
- - **evaluate**: Evaluate skill quality and RAG retrieval accuracy
96
+ - **evaluate**: Evaluate RAG retrieval accuracy and LLM-as-a-judge quality metrics (faithfulness, relevancy, context precision) against a golden dataset. Use when the user asks to measure RAG quality or detect knowledge gaps — not for evaluating generic LLM outputs.
93
97
  - **evolve**: Analyzes failure patterns and inefficiencies in agent/skill definitions, then drafts and applies targeted improvements to system prompts, tool permissions, and behavioral rules. Use when the user asks to improve agent behavior, refine skill definitions, update system prompts, or optimize agent configurations based on observed failures.
94
- - **explain**: Explain code, architecture, or concepts with diagrams
98
+ - **explain**: Explain code, architecture, or concepts with Mermaid diagrams and sequence flows. Use when the user asks 'what does X do' or 'how does Y work' — not to critique code quality or implement changes.
95
99
  - **explore**: Explore codebase structure, stack, and architecture
96
- - **fix**: Auto-fix lint errors, type issues, and simple bugs
100
+ - **fix**: Apply a targeted fix to a known bug or lint error and verify it with the same command that surfaced the problem. Use when the root cause is already identified — not for unknown symptoms or open-ended debugging.
97
101
  - **flutter-patterns**: Flutter and Dart development patterns: widget composition, state management (Riverpod/Bloc/Provider), navigation, async, platform channels, performance. Triggers: Flutter, Dart, widget, StatefulWidget, Riverpod, Bloc, Provider, pubspec, Navigator, platform channel, hot reload, StatelessWidget. Load when writing or reviewing Flutter code.
98
102
  - **git-mastery**: Advanced Git workflows: interactive rebase, bisect, reflog, cherry-pick, worktrees, history rewriting, submodules, large-file migration (LFS/filter-repo). Triggers: git rebase, bisect, cherry-pick, reflog, force push, history rewrite, detached HEAD, merge conflict, worktree, squash, fixup, submodule. Load when user needs non-trivial Git operations.
99
103
  - **grill-me**: Stress-test a plan or design through relentless Socratic questioning, walking down each decision branch until reaching shared understanding. Use when user wants to stress-test a plan, get grilled, validate assumptions, or mentions 'grill me'.
100
- - **health**: Report service and infrastructure health status
104
+ - **health**: Report service and infrastructure health status via liveness/readiness checks, resource usage, and quick diagnostics. Use when the user asks whether services are up or degraded — not for deep debugging of a known error.
101
105
  - **hipaa-validate**: Validate code against HIPAA policy: PHI exposure, missing audit logging, unencrypted transmission/storage, access control gaps, temp file exposure, and missing BAA references
102
106
  - **hive-mind**: Multi-agent swarm coordination: consensus voting with confidence scores, output aggregation, file ownership, targeted vs broadcast messaging, map-reduce workflows. Triggers: swarm, hive mind, multi-agent, consensus, parallel agents, team of agents, aggregate results, agent voting, distributed agents. Load when orchestrating 3+ agents working in parallel.
103
- - **hook-creator**: Creates new Claude Code hooks with guided workflow, strict conventions, and validation
104
- - **index**: Index codebase into the knowledge base
105
- - **instinct-review**: Review and manage learned instincts from past sessions
107
+ - **hook-creator**: Create a new Claude Code lifecycle hook (PreToolUse, PostToolUse, Stop, SessionStart, etc.) with a bash script and hooks.json registration. Use when the user wants automated behavior tied to a specific event — not for one-off commands.
108
+ - **index**: Reindex the knowledge base for semantic search via the configured vector store (e.g., Qdrant). Use only when the user explicitly asks to reindex — never trigger speculative rebuilds.
109
+ - **instinct-review**: Review, promote, or remove learned instincts extracted from past sessions (`.claude/instincts/*.md`). Use when the user wants to curate the instinct list — not to extract new instincts or edit memory.
106
110
  - **introspect**: Agent self-debugging and recovery. Use when stuck in loops, making repeated errors, or quality degrades. Triggers: introspect, self-debug, stuck, loop, why failing.
107
111
  - **java-patterns**: Java development patterns: Spring Boot, CompletableFuture, records, sealed types, streams, JPA/Hibernate, Maven/Gradle, virtual threads (Loom). Triggers: Java, Spring, Spring Boot, JPA, Hibernate, Maven, Gradle, CompletableFuture, record type, sealed class, virtual thread. Load when writing or reviewing Java code.
108
112
  - **json-mode-patterns**: Loaded when user needs structured JSON output from Claude. Covers tool-use-as-JSON-mode, schema design, parsing, partial recovery, and validation.
109
113
  - **kotlin-patterns**: Kotlin development patterns: coroutines, Flow, sealed classes, data classes, extension functions, null safety, Ktor, Jetpack Compose, KMP. Triggers: Kotlin, coroutine, Flow, suspend, Ktor, Android Kotlin, Jetpack Compose, sealed class, data class, KMP, kotlinx. Load when writing or reviewing Kotlin code.
110
- - **lint**: Lint code with auto-detected tools and fix suggestions
114
+ - **lint**: Run the project's linter and type-checker with auto-detected toolchain (ruff/mypy, eslint/tsc, phpstan, golangci-lint, clippy, dart analyze). Use when the user asks for static-analysis feedback — not to run tests or refactor.
111
115
  - **mcp-builder**: Build production-grade MCP (Model Context Protocol) servers from scratch using the 4-phase methodology: research, implement, test, evaluate. Use when creating new MCP integrations for external APIs, databases, or internal services.
112
116
  - **mcp-patterns**: MCP (Model Context Protocol) server design: tool schemas, resource patterns, transport selection (stdio/SSE), client configuration, error handling, capability negotiation. Triggers: MCP, Model Context Protocol, MCP server, MCP tool, MCP resource, JSON-RPC, stdio transport, SSE transport, Claude Desktop config, Cursor MCP. Load when building or integrating MCP servers.
113
117
  - **mem-search**: Search past coding sessions using natural language. Finds relevant observations, decisions, and context from previous work.
114
- - **migrate**: Run database migrations with backup verification
118
+ - **migrate**: Run or create database migrations with the detected tool (Alembic, Prisma, Laravel, Django, Flyway, Drizzle) and verify backups exist first. Use when the user asks to apply, roll back, or generate a migration — not for general schema design.
115
119
  - **migration-patterns**: Zero-downtime database migration patterns: expand-contract, double-write, backfill, blue-green schema changes, feature flags, rollback safety, online DDL. Triggers: migration, schema change, zero-downtime, expand-contract, double-write, backfill, ALTER TABLE, column rename, safe deploy, online DDL. Load when planning non-trivial DB schema changes.
116
120
  - **model-routing-patterns**: Loaded when user builds multi-model pipelines (Haiku/Sonnet/Opus). Covers cost-optimized routing, escalation, sub-agent delegation, and fallback chains.
117
- - **night-watch**: Run autonomous maintenance and dependency updates
121
+ - **night-watch**: Run autonomous maintenance tasks (dependency updates, dead code removal, small refactors) in an isolated branch. Use only when the user triggers it explicitly — typically off-hours; never auto-invoked.
118
122
  - **observability-patterns**: Observability: structured logging, metrics (RED/USE/four golden signals), distributed tracing (OpenTelemetry), correlation IDs, log aggregation, SLO/SLI. Triggers: logging, log level, metrics, Prometheus, Grafana, OpenTelemetry, trace, span, structured log, observability, monitoring, SLO, SLI, alerting. Load when adding or reviewing logs, metrics, or traces.
119
- - **onboard**: Generate project onboarding materials
123
+ - **onboard**: Guide setup of ai-toolkit in a new project: install symlinks, create CLAUDE.md, capture undocumented intent via interview. Use when the user starts a fresh project or migrates an existing one to ai-toolkit.
120
124
  - **orchestrate**: Coordinate multiple specialized agents in parallel
121
- - **panic**: Emergency stabilization via system-governor agent
125
+ - **panic**: Emergency kill switch that halts all agent activity via a lockfile gate. Use when agents are looping, misbehaving, or the user wants to stop everything NOW — not for normal workflow interruptions.
122
126
  - **performance-profiling**: Performance measurement and optimization: four golden signals (latency/traffic/errors/saturation), p50/p95/p99, baseline-change-measure loop, flame graphs, load testing. Triggers: performance, slow, latency, p99, flame graph, profile, bottleneck, optimization, load test, benchmark, CPU profiling, memory leak. Load when diagnosing or optimizing slow code or services.
123
127
  - **persona**: Switch engineering persona at runtime: backend-lead, frontend-lead, devops-eng, junior-dev
124
128
  - **plan**: Breaks down feature requests and project goals into phased implementation plans with task lists, agent assignments, dependency graphs, and success criteria. Use when the user asks to plan a feature, create an implementation roadmap, break down a coding task, or outline project phases.
125
129
  - **plan-writing**: Implementation plan and pre-mortem drafting: phase breakdown, success criteria, risks, rollback plan, acceptance tests, estimated effort. Triggers: implementation plan, pre-mortem, phased plan, project plan, task breakdown, success criteria, rollback strategy, risk register. Load when user asks to write a plan or pre-mortem document.
126
130
  - **plugin-creator**: Creates experimental opt-in plugin packs with manifests, conventions, and optional module scaffolding for Claude and Codex runtimes
127
- - **pr**: Create pull requests with pre-flight validation
131
+ - **pr**: Create a GitHub pull request after running pre-flight checks (lint, typecheck, tests) and generating a structured summary from commit history. Use when the branch is ready to merge — not for drafting work-in-progress.
128
132
  - **prd-to-issues**: Break a PRD into independently-grabbable GitHub issues using vertical slices with HITL/AFK tagging and dependency ordering. Use when user wants to convert a PRD to issues, create tickets, or break down a PRD into work items.
129
133
  - **prd-to-plan**: Convert a PRD into a phased implementation plan using tracer-bullet vertical slices. Use when user wants to break down a PRD, create an implementation plan, plan phases from a PRD, or mentions tracer bullets.
130
134
  - **predict**: Analyzes code diffs and file changes to identify potential regressions, maps dependency impact across the codebase, and generates a risk-scored impact report. Use when reviewing pull requests, assessing code change risk, checking for breaking changes, or analyzing the blast radius of a diff.
@@ -136,7 +140,7 @@
136
140
  - **repeat**: Run a prompt or slash command on a recurring interval until task complete or limits reached. Use when user wants to set up a recurring task, poll for status, or run something repeatedly on an interval.
137
141
  - **research-mastery**: Hierarchical information retrieval following strict order: KB first (smart_query/crag_search), then MCP/Context7, then web search, then LLM knowledge as last resort. Triggers: research, find information, verify fact, synthesize sources, fact-check, cross-reference, multi-source, cite sources, investigate topic. Load when any task requires external or cross-source knowledge.
138
142
  - **review**: Review code for quality, security, and correctness
139
- - **rollback**: Roll back a deployment safely with verification
143
+ - **rollback**: Roll back a git commit, database migration, or deployment to a previous known-good state with safety checks and health verification. Use when the user wants to revert recent changes safely — not to undo local edits or halt the whole system.
140
144
  - **ruby-patterns**: Ruby and Rails development patterns: blocks, metaprogramming, ActiveRecord, Sidekiq, RSpec, Sorbet/RBS, Hanami, Roda, Rack middleware. Triggers: Ruby, Rails, ActiveRecord, Sidekiq, RSpec, gem, Gemfile, bundler, rake, Hanami, Sorbet. Load when writing or reviewing Ruby code.
141
145
  - **rust-patterns**: Rust development patterns: ownership, borrowing, lifetimes, async (Tokio), error handling (Result/anyhow/thiserror), traits, macros, zero-cost abstractions, unsafe boundaries. Triggers: Rust, borrow checker, lifetime, Tokio, async Rust, cargo, trait, impl, Result, unsafe, lifetime annotation, clippy. Load when writing or reviewing Rust code.
142
146
  - **search**: Search the knowledge base with semantic and hybrid modes
@@ -149,7 +153,7 @@
149
153
  - **swift-patterns**: Swift and iOS development patterns: SwiftUI, Combine, async/await, property wrappers, actors, Swift Package Manager, Core Data, UIKit interop, @MainActor. Triggers: Swift, SwiftUI, Combine, iOS, Xcode, actor, property wrapper, Core Data, SPM, UIKit, @MainActor, @State, @Binding. Load when writing or reviewing Swift code.
150
154
  - **tdd**: Test-driven development with red-green-refactor loop and vertical slices. Use when user wants TDD, test-first development, red-green-refactor, or building features with tests driving the implementation.
151
155
  - **teams**: Launches pre-configured multi-agent teams for code review, debugging, feature development, security audits, and database migrations. Use when the user asks to start a multi-agent workflow, coordinate agent teams, run a team review, or needs parallel agent collaboration on a complex task.
152
- - **test**: Run tests with coverage analysis and reporting
156
+ - **test**: Run the project's test suite with coverage reporting, auto-detecting the framework (pytest, vitest, jest, flutter test, go test, cargo test, phpunit). Use when the user asks to run existing tests — not to author new ones test-first.
153
157
  - **testing-patterns**: Testing strategy and craft: pyramid vs trophy, unit/integration/e2e split, fixtures, mocks vs fakes vs stubs, AAA pattern, flaky test diagnosis, coverage goals, property-based testing. Triggers: test, testing strategy, fixture, mock, stub, AAA, unit test, integration test, e2e, Playwright, Cypress, flaky, coverage, TDD, test pyramid. Load when writing, reviewing, or designing test suites.
154
158
  - **triage-issue**: Triage a bug by deeply exploring the codebase for root cause, then create a GitHub issue with a TDD-based fix plan. Mostly hands-off — minimal user interaction. Use when user reports a bug, wants to investigate an issue, mentions triage, or wants a fix plan.
155
159
  - **typescript-patterns**: TypeScript type safety patterns: strict mode, generics, conditional types, template literals, discriminated unions, branded types, Zod, satisfies operator, const assertions. Triggers: TypeScript, TS, generics, conditional type, utility type, strict, Zod, satisfies, discriminated union, type safety, type narrowing, template literal type. Load when writing or reviewing TypeScript code.
@@ -269,6 +273,449 @@ Shared AI development toolkit with multi-platform support
269
273
 
270
274
  ---
271
275
 
276
+ ## kb/history/completed/deep-coverage-v3-20260423.md
277
+
278
+ ---
279
+ title: "Plan: Deep Coverage v3.0 — 100% Native Surface Utilization Across 12 Tools"
280
+ category: planning
281
+ service: ai-toolkit
282
+ doc_type: plan
283
+ status: completed
284
+ tags: [v3, deep-coverage, ecosystem, generators, hooks, skills, subagents, commands, profile-full]
285
+ created: "2026-04-23"
286
+ last_updated: "2026-04-23"
287
+ completed: "2026-04-23"
288
+ completion: "100%"
289
+ description: "Ship v3.0.0 where every supported editor exposes the full ai-toolkit surface it is capable of hosting natively: hooks, subagents, custom commands, skill pointers. Introduce --profile full. Skip the 2.13.0 interim release and fold the completed deep sweep into 3.0.0."
290
+ ---
291
+
292
+ # Plan: Deep Coverage v3.0 — 100% Native Surface Utilization
293
+
294
+ **Status:** :yellow_circle: IN PROGRESS
295
+ **Invocation:** continuation of `ecosystem-deep-sweep-2026-04-23` — same orchestration model
296
+ **Estimated effort:** 10-15h orchestrated (~3h wall-clock across 4 parallel buckets + consolidation)
297
+ **Deliverable:** v3.0.0 release where every editor's native surface is fully utilized; `--profile full` available
298
+
299
+ ---
300
+
301
+ ## 1. Objective
302
+
303
+ After the 2026-04-23 deep sweep closed the doc-drift gap, **v3.0.0 closes the capability-utilization gap**: each editor now exposes the full ai-toolkit surface it can host natively.
304
+
305
+ Definition of "100% coverage" chosen: **each editor works at 100% of its native capability** (compat-read counts). No cargo-cult duplication. No writing to `~/.cursor/`, `~/.augment/rules/` etc. globally.
306
+
307
+ ---
308
+
309
+ ## 2. Policy decisions (immutable constraints for all buckets)
310
+
311
+ | # | Decision | Rule |
312
+ |---|----------|------|
313
+ | 1 | Skill propagation | `.claude/skills/` canonical. Cursor/Windsurf/opencode → compat-read (nothing). Augment/Gemini/Antigravity → **pointer skill** (1 file per editor). Codex → opt-in `--codex-skills` flag emits full mirror |
314
+ | 2 | Global writes | Only `~/.claude/`. Cursor/Windsurf/opencode get global coverage via compat-read. Augment/Gemini/Roo require `--local` |
315
+ | 3 | Surface activation | **`--profile full`** turns on every native surface. `standard` stays close to today's defaults but adds niepodważalne wypełnienia (Copilot wiring + Gemini hooks). `minimal` unchanged |
316
+ | 4 | Default behavior | `--editors <name>` alone uses `standard`. Users who want the full stack pass `--profile full` |
317
+ | 5 | Version | Skip 2.13. Ship everything (completed sweep + v3 work) as **3.0.0** with migration notes |
318
+
319
+ ---
320
+
321
+ ## 3. What's missing → what each bucket delivers
322
+
323
+ ### Bucket 1 — Hooks generators (backend-specialist)
324
+
325
+ **Owned files**
326
+ - New: `scripts/generate_gemini_hooks.py` (writes `.gemini/settings.json` hooks merge)
327
+ - New: `scripts/generate_cursor_hooks.py` (writes `.cursor/hooks.json`)
328
+ - New: `scripts/generate_windsurf_hooks.py` (writes `.windsurf/hooks.json`)
329
+ - New: `scripts/generate_augment_hooks.py` (writes `~/.augment/settings.json` hooks merge)
330
+ - New: `tests/test_hooks_per_editor.bats` (≥20 tests covering all 4 generators)
331
+
332
+ **Must-haves**
333
+ - All generators reuse `~/.softspark/ai-toolkit/hooks/*.sh` scripts (no duplicate shell code).
334
+ - Preserve user-authored hook entries; mark our entries with `_source: ai-toolkit`.
335
+ - Idempotent on regeneration.
336
+ - Event mapping informed by each editor's docs (Claude Code events ↔ target editor events).
337
+
338
+ ### Bucket 2 — Native agents + custom commands (ai-engineer)
339
+
340
+ **Owned files**
341
+ - New: `scripts/generate_augment_agents.py` (`.augment/agents/*.md` with YAML frontmatter: name, description, model, color, tools, disabled_tools)
342
+ - New: `scripts/generate_augment_commands.py` (`.augment/commands/*.md` from user-invocable skills)
343
+ - New: `scripts/generate_cursor_agents.py` (`.cursor/agents/*.md` mirroring Claude Code agents)
344
+ - New: `scripts/generate_gemini_commands.py` (`.gemini/commands/*.toml` custom slash commands)
345
+ - New: `tests/test_native_surfaces.bats` (≥25 tests)
346
+
347
+ **Must-haves**
348
+ - Filter: only `user-invocable: true` skills become custom commands.
349
+ - `ai-toolkit-*` prefix everywhere for install/uninstall sweep.
350
+ - Do not touch files without our prefix.
351
+
352
+ ### Bucket 3 — Skill pointers + Codex mirror (ai-engineer)
353
+
354
+ **Owned files**
355
+ - New: `scripts/generate_gemini_skills.py` (`.gemini/skills/ai-toolkit-skill-catalogue/SKILL.md` — pointer)
356
+ - New: `scripts/generate_augment_skills.py` (`.augment/skills/ai-toolkit-skill-catalogue/SKILL.md` — pointer)
357
+ - New: `scripts/generate_codex_skills.py` (full mirror to `.codex/skills/<name>/SKILL.md` — gated by `--codex-skills` flag)
358
+ - New: `tests/test_skills_native.bats` (≥15 tests)
359
+
360
+ **Must-haves**
361
+ - Pointer pattern same as Antigravity: 1 file per editor referencing `~/.claude/skills/<name>` and listing the catalogue.
362
+ - Codex mirror respects `user-invocable: false` (knowledge skills stay, task skills stay — Codex reads them all).
363
+ - `--codex-skills` must be opt-in; default OFF.
364
+
365
+ ### Bucket 4 — Install wiring + profile full + docs (devops-implementer)
366
+
367
+ **Owned files**
368
+ - `scripts/install_steps/ai_tools.py` — wire in all new generators from buckets 1-3
369
+ - `scripts/install.py` — parse `--profile full`, propagate to `_create_local_ai_tool_configs`
370
+ - `scripts/config_validator.py` — ensure `full` profile is accepted (already present, verify)
371
+ - `README.md` — "What's New in v3.0.0" + migration notes
372
+ - `CHANGELOG.md` — v3.0.0 entry
373
+ - `kb/reference/global-install-model.md` — document profile semantics
374
+ - `kb/reference/supported-tools-registry.md` — per-tool "generators by profile" column
375
+ - `kb/procedures/maintenance-sop.md` — profile table update
376
+ - `package.json` version bump → `3.0.0`
377
+ - `package-lock.json` sync
378
+ - `tests/test_install_profiles.bats` (≥15 tests covering minimal/standard/strict/full × 3 editors)
379
+
380
+ **Must-haves**
381
+ - `standard` profile: Copilot directory mode ON, Gemini hooks ON (non-breaking additions).
382
+ - `full` profile: everything from `standard` + all native surfaces from buckets 1-3.
383
+ - Migration note: users on `standard` today get Copilot instructions/prompts and Gemini hooks automatically after upgrading (acceptable breaking for major bump, documented).
384
+
385
+ ---
386
+
387
+ ## 4. Success criteria
388
+
389
+ - [ ] 13 new Python generators (6+4+3, minus wiring)
390
+ - [ ] ≥75 new bats tests across buckets
391
+ - [ ] `npm test` green
392
+ - [ ] `python3 scripts/validate.py --strict` 0/0
393
+ - [ ] `python3 scripts/ecosystem_doctor.py --check` exit 0
394
+ - [ ] `ai-toolkit install --local --editors all --profile full` produces every native surface per editor
395
+ - [ ] `ai-toolkit install --local --editors all --profile standard` is still minimal-invasive (no subagents, no hooks for non-Claude editors) **except** Copilot + Gemini hooks (both documented migration notes)
396
+ - [ ] README test badge bumped
397
+ - [ ] CHANGELOG v3.0.0 entry
398
+ - [ ] All docs updated (registry, install model, maintenance SOP)
399
+ - [ ] Single atomic commit
400
+ - [ ] Tag `v3.0.0` ready (push held for user confirmation)
401
+
402
+ ---
403
+
404
+ ## 5. Safety rails
405
+
406
+ - **Do not commit during bucket work.** Orchestrator consolidates.
407
+ - **Do not touch files outside your bucket's ownership list.**
408
+ - **Preserve user files** via `ai-toolkit-*` prefix on generated artifacts.
409
+ - **Do not write to global editor paths** (`~/.cursor/`, `~/.augment/rules/`, etc.) — policy decision 2.
410
+ - **Do not change `standard` profile in ways that break existing users**, beyond the two documented additions (Copilot directory mode + Gemini hooks).
411
+ - **Test per bucket locally before reporting.** Bucket reports must include a "tests green" line.
412
+
413
+ ---
414
+
415
+ ## 6. Consolidation steps (orchestrator)
416
+
417
+ 1. Merge all 4 bucket registry deltas into `scripts/ecosystem_tools.json`
418
+ 2. Run `python3 scripts/ecosystem_doctor.py --update`
419
+ 3. Run `npm run generate:all`
420
+ 4. Bump `package.json` → `3.0.0`; sync `package-lock.json`
421
+ 5. Update `README.md` badge + "What's New"
422
+ 6. Update `CHANGELOG.md` with v3.0.0 entry (include migration notes)
423
+ 7. Run `python3 scripts/validate.py --strict` (must pass 0/0)
424
+ 8. Run `npm test` (all green)
425
+ 9. Run `python3 scripts/ecosystem_doctor.py --check` (exit 0)
426
+ 10. Move this plan doc to `kb/history/completed/deep-coverage-v3-20260423.md`
427
+ 11. Single commit + tag `v3.0.0`
428
+ 12. Hold push pending user confirmation
429
+
430
+ ---
431
+
432
+ ## 7. Related
433
+
434
+ - `kb/history/completed/ecosystem-deep-sweep-20260423.md` — predecessor plan (doc-drift closure)
435
+ - `kb/reference/global-install-model.md` — install scope semantics
436
+ - `kb/reference/supported-tools-registry.md` — tool registry
437
+ - `scripts/config_validator.py` — `VALID_PROFILES` already includes `full`
438
+
439
+ ---
440
+
441
+ ## kb/history/completed/ecosystem-deep-sweep-20260423.md
442
+
443
+ ---
444
+ title: "Plan: Ecosystem Deep Sweep — All 12 Supported Tools"
445
+ category: planning
446
+ service: ai-toolkit
447
+ doc_type: plan
448
+ status: completed
449
+ tags: [ecosystem, editors, generators, deep-sweep, orchestrate, drift, integration]
450
+ created: "2026-04-23"
451
+ last_updated: "2026-04-23"
452
+ completed: "2026-04-23"
453
+ completion: "100%"
454
+ description: "Orchestrate-ready plan for a deep per-tool documentation sweep across all 12 supported tools (Claude Code + 11 editors). Each agent owns 2-3 tools: fetches docs, diffs against our generators, proposes minimal patches. Consolidation step collects results into a single changeset."
455
+ ---
456
+
457
+ # Plan: Ecosystem Deep Sweep — All 12 Supported Tools
458
+
459
+ **Status:** :yellow_circle: PROPOSED
460
+ **Invocation:** `/orchestrate deep ecosystem sweep per kb/planning/ecosystem-deep-sweep-2026-04-23.md`
461
+ **Estimated effort:** 4-6 hours orchestrated (1-1.5 h per agent in parallel)
462
+ **Deliverable:** Per-tool drift report + concrete generator/skill patches + updated registry
463
+
464
+ ---
465
+
466
+ ## 1. Objective
467
+
468
+ For every supported tool in `scripts/ecosystem_tools.json`:
469
+
470
+ 1. Read the current official documentation end-to-end (not just landing page)
471
+ 2. Identify every feature that ai-toolkit could integrate with but does not currently
472
+ 3. Classify each gap using the ecosystem-sync SOP taxonomy (class A-F)
473
+ 4. Produce minimal, reviewable patches for class B/D/E/F gaps
474
+ 5. Update the registry (`ecosystem_tools.json`) with new capability markers and config paths
475
+ 6. Refresh the snapshot (`benchmarks/ecosystem-doctor-snapshot.json`)
476
+
477
+ **Explicit non-goals:** complete feature parity, deep refactor of generators, adding new editors to the roster.
478
+
479
+ ---
480
+
481
+ ## 2. Parallelization Strategy
482
+
483
+ 12 tools → **4 agents × 3 tools each** by affinity and complexity:
484
+
485
+ | Agent | Role | Tools | Rationale |
486
+ |-------|------|-------|-----------|
487
+ | `backend-specialist` | Deep CLI / config analysis | `claude-code`, `codex-cli`, `opencode` | CLI + config.toml + agents/commands/plugins — backend integration depth |
488
+ | `frontend-specialist` | Editor UI integrations | `cursor`, `windsurf`, `google-antigravity` | Editor-embedded AI, rule files, MCP-via-UI |
489
+ | `devops-implementer` | Pipeline + rules tools | `github-copilot`, `cline`, `roo-code` | Rules directories, MCP JSON variants, mode configs |
490
+ | `ai-engineer` | LLM-native tools | `gemini-cli`, `aider`, `augment` | Pure LLM workflows, minimal IDE coupling |
491
+
492
+ Each agent works **in parallel**, independent file scopes (different generators). Cross-file coordination only at the registry update (single JSON file).
493
+
494
+ ---
495
+
496
+ ## 3. Per-Tool Task Template
497
+
498
+ Every agent applies the **same 7-step protocol** per tool in their bucket:
499
+
500
+ ### Step 1 — Baseline our current integration
501
+
502
+ Read these files (read-only):
503
+ - `scripts/generate_<tool>_*.py` — every generator targeting this tool
504
+ - `scripts/ecosystem_tools.json` — the tool's registry entry
505
+ - `kb/reference/supported-tools-registry.md` — human docs section
506
+ - `benchmarks/ecosystem-doctor-snapshot.json` — last-seen headings/markers/version
507
+
508
+ Produce a 3-line summary: "we currently generate X, Y, Z for this tool".
509
+
510
+ ### Step 2 — Fetch official docs
511
+
512
+ Primary URL is in `ecosystem_tools.json::urls.docs`. Additionally fetch:
513
+ - `urls.release_notes` — recent changes (last 6 months)
514
+ - `urls.changelog` — if distinct from release notes
515
+ - Any deep-link from the docs landing page that corresponds to an integration surface (rules, hooks, MCP, agents, commands, plugins, config schema)
516
+
517
+ Use `WebFetch` (for general) or `gh api` (for GitHub-hosted docs like Codex CLI, opencode).
518
+
519
+ ### Step 3 — Extract the feature surface
520
+
521
+ For the current version of the tool, enumerate:
522
+ - Config file paths (the tool's OWN paths, not ours)
523
+ - Rule / instruction / prompt formats
524
+ - Hook / lifecycle event names (if any)
525
+ - MCP config target path (if supported)
526
+ - Agent / custom-mode / preset concepts (if any)
527
+ - Slash command / CLI subcommand surface
528
+ - Supported model providers (note, do not integrate)
529
+ - Authentication / API-key mechanisms
530
+
531
+ Produce a structured markdown table: `Feature | Since version | Stable? | Our integration?`
532
+
533
+ ### Step 4 — Diff against our output
534
+
535
+ For each feature in the table, compare against:
536
+ - What our `generate_<tool>_*.py` produces
537
+ - What fields are in our registry's `capability_markers`
538
+
539
+ Mark each row with one of:
540
+ - `✅ supported` — we already emit / track it
541
+ - `⚠️ partial` — we emit a subset; specific sub-feature missing
542
+ - `❌ missing` — we do not support at all
543
+ - `➖ out of scope` — tool has it, but not applicable to ai-toolkit's mission
544
+
545
+ ### Step 5 — Classify each gap
546
+
547
+ For each `⚠️` / `❌` row, assign one of the SOP drift classes:
548
+
549
+ | Class | Name | Action |
550
+ |-------|------|--------|
551
+ | A | Cosmetic | No code change; update snapshot only |
552
+ | B | New feature — integrate | Patch generator(s), add tests |
553
+ | C | New feature — not adopted | Note in registry, no code |
554
+ | D | Deprecation | Migration warning in generator + CHANGELOG |
555
+ | E | Feature promoted to default | Simplify generator; keep fallback comment |
556
+ | F | Newly globally available | New generator / extended generator |
557
+
558
+ ### Step 6 — Produce patches (class B/D/E/F only)
559
+
560
+ For every class B/D/E/F gap:
561
+ 1. Edit the relevant generator in `scripts/generate_<tool>_*.py`
562
+ 2. If a new capability marker emerges, add to `ecosystem_tools.json::capability_markers`
563
+ 3. If a new config path emerges, add to `ecosystem_tools.json::config_paths`
564
+ 4. If a hook event or skill frontmatter field emerges (for Claude Code), update:
565
+ - `app/skills/hook-creator/SKILL.md` (hooks table)
566
+ - `app/skills/skill-creator/SKILL.md` (frontmatter reference)
567
+ - `scripts/validate.py` (allowlist)
568
+ 5. Add a bats test under `tests/test_<tool>.bats` covering the new output
569
+ 6. Update the tool's section in `kb/reference/supported-tools-registry.md`
570
+
571
+ **Constraints on patches:**
572
+ - One generator change per logical feature (no "big bang" commits)
573
+ - Preserve existing output format for backward compatibility
574
+ - New output opt-in via flag if it would change existing user-visible state
575
+ - Every new capability marker must pass the doctor's probe on the live docs page
576
+
577
+ ### Step 7 — Report
578
+
579
+ Each agent emits a single markdown report with:
580
+ - Feature matrix table (step 3+4+5 combined)
581
+ - List of patches applied (files changed, bats tests added)
582
+ - List of class B/D/E/F gaps NOT patched (with reason: "out of scope", "requires user decision", "blocker")
583
+ - Registry diff (before/after for the tool's JSON entry)
584
+
585
+ ---
586
+
587
+ ## 4. Consolidation (after all agents finish)
588
+
589
+ Run in order:
590
+
591
+ 1. Merge registry entries — single edit to `ecosystem_tools.json` combining all 12 per-tool updates
592
+ 2. Regenerate human registry doc: manually update `kb/reference/supported-tools-registry.md` from JSON
593
+ 3. `python3 scripts/ecosystem_doctor.py --update` — baseline new capability markers
594
+ 4. `python3 scripts/validate.py --strict` — must pass
595
+ 5. `npm test` — must pass (includes the newly added bats tests per tool)
596
+ 6. `python3 scripts/ecosystem_doctor.py --check` — exit 0
597
+ 7. Regenerate downstream artifacts:
598
+ ```bash
599
+ npm run generate:all
600
+ ```
601
+ 8. Collect all per-agent reports into `kb/learnings/ecosystem-sweep-2026-04-23.md`
602
+
603
+ ---
604
+
605
+ ## 5. Success Criteria
606
+
607
+ - [ ] All 12 tools covered (no "skipped for time" items)
608
+ - [ ] Every class B/D/E/F gap has either a patch OR a documented reason for deferral
609
+ - [ ] Registry `capability_markers` list grew for at least 6 of 12 tools (signals real gap coverage)
610
+ - [ ] `validate.py --strict`: 0 errors, 0 warnings
611
+ - [ ] `npm test`: all green (including new per-tool bats tests)
612
+ - [ ] `ecosystem_doctor.py --check`: exit 0 after snapshot refresh
613
+ - [ ] Single consolidated commit per agent-bucket, plus one final consolidation commit
614
+
615
+ ---
616
+
617
+ ## 6. Known Traps (from prior ecosystem work)
618
+
619
+ - **SPA docs** (Cursor, Antigravity, some Augment pages): `urllib` gets empty HTML skeleton. Agents should note this and do a **manual browser visit** or use a JS-aware fetcher. Do not treat "0 headings" as "nothing new".
620
+ - **GitHub docs** rate-limit aggressively on repeated reads. Space out fetches or use `gh api`.
621
+ - **Feature gates** vary by user plan. Copilot Business vs Individual vs Enterprise have different surface. Integrate with the OSS surface; document gated features as C (not adopted).
622
+ - **Version skew** on config schemas. A setting that existed in v1.x may be deprecated in v2.x. When docs reference "available since v1.5" and we don't know what version users run, default to generating the newer form with a comment.
623
+ - **Markdown vs MDX**: Cursor uses `.mdc`, Claude Code uses `.md`, Cline uses `.md` in `.clinerules/`, Roo uses `.md` in `.roo/rules/`. Don't assume one format fits all.
624
+
625
+ ---
626
+
627
+ ## 7. Orchestrate Invocation
628
+
629
+ In a fresh Claude Code session (to avoid context rot from this session):
630
+
631
+ ```
632
+ /orchestrate deep ecosystem sweep for ai-toolkit per kb/planning/ecosystem-deep-sweep-2026-04-23.md
633
+
634
+ Spawn 4 agents in parallel:
635
+ - backend-specialist: claude-code, codex-cli, opencode
636
+ - frontend-specialist: cursor, windsurf, google-antigravity
637
+ - devops-implementer: github-copilot, cline, roo-code
638
+ - ai-engineer: gemini-cli, aider, augment
639
+
640
+ Each agent follows the 7-step per-tool protocol in section 3.
641
+ After all 4 report, run consolidation (section 4) and produce the sweep summary.
642
+ ```
643
+
644
+ ---
645
+
646
+ ## 8. Deliverables (per agent)
647
+
648
+ Each agent's final output to orchestrator:
649
+ 1. **Feature matrix** — one table per assigned tool (step 3+4+5)
650
+ 2. **Patch log** — list of commits staged (not committed yet — orchestrator consolidates)
651
+ 3. **Registry delta** — proposed JSON diff for `ecosystem_tools.json`
652
+ 4. **Gaps not patched** — with rationale (out-of-scope, blocker, deferred)
653
+ 5. **Test additions** — bats test file names + test count
654
+
655
+ Orchestrator's final output:
656
+ 1. Consolidated commit with message `feat(ecosystem): deep sweep 2026-04-23 — N class B/F integrations`
657
+ 2. Version bump decision (minor if any class B/F, patch if only class A updates)
658
+ 3. `kb/learnings/ecosystem-sweep-2026-04-23.md` — retrospective noting which tools needed most work (informs priority for next sweep)
659
+
660
+ ---
661
+
662
+ ## 9. Safety Rails
663
+
664
+ - **Do not** silently upgrade default behavior — every user-visible change lands behind a flag OR goes through a minor version bump with CHANGELOG mention
665
+ - **Do not** rewrite generators wholesale — incremental additions only
666
+ - **Do not** commit during the sweep — orchestrator consolidates at the end
667
+ - **Do not** modify files outside the tool's scope (e.g., backend-specialist touching frontend-specialist's files requires a handoff)
668
+ - **Do** preserve existing symlinks and file-path expectations — the installer depends on them
669
+
670
+ ---
671
+
672
+ ## 10. Related
673
+
674
+ - [Ecosystem Sync SOP](../procedures/ecosystem-sync-sop.md) — the process this plan instantiates
675
+ - [Supported Tools Registry](../reference/supported-tools-registry.md) — source of truth for tool list
676
+ - `scripts/ecosystem_doctor.py` — drift detector consumed by orchestrator consolidation
677
+ - `scripts/ecosystem_tools.json` — registry file edited by every agent
678
+
679
+ ---
680
+
681
+ ## 11. Retrospective — 2026-04-23
682
+
683
+ ### Execution summary
684
+
685
+ - 4 parallel agents, 3 tools each — full 12/12 coverage, one consolidation pass.
686
+ - 161 new bats tests (679 → 840); validate.py 0 errors / 0 warnings; `ecosystem_doctor --check` exit 0.
687
+ - 14 files modified, 12 new test files, 2 registry docs updated, 1 snapshot rebaselined.
688
+
689
+ ### What worked
690
+
691
+ - **Bucket-level file ownership** eliminated merge conflicts entirely. Agents that flagged cross-bucket edits (`ecosystem_tools.json`, registry markdown) correctly left them for the orchestrator.
692
+ - **The 7-step protocol** caught high-impact bugs we would have shipped otherwise — Windsurf rules missing `trigger:` frontmatter (silent invisibility to Cascade), Aider's default `attribute-co-authored-by: true` violating our own git policy, Roo modes lacking `whenToUse` (invisible to Orchestrator).
693
+ - **SPA-wall compensation patterns** (Antigravity bundle strings, Cursor/Windsurf llms.txt mirrors, GitHub release notes as fallback) were reusable across buckets.
694
+
695
+ ### What surprised us
696
+
697
+ - **Claude Code 2.1.x grew ~14 new hook events** and 3 new handler types since our last sync. Our validate.py allowlist was the bottleneck, not any generator.
698
+ - **Cross-editor compat reads**: Cursor, Windsurf, and opencode now natively read `.claude/skills/` and `.claude/agents/` — we get skill/agent discovery in those editors "for free" without emitting duplicates. Saved ~300 generated files.
699
+ - **Copilot tier-gating is heavy**: half of the upstream surface (custom agents, repo MCP, org instructions) is Business/Enterprise-only and was classified as C (documented non-integration).
700
+ - **Test #755 regression** from the Codex `PermissionRequest` addition: the test counted `guard-destructive.sh` occurrences with `== 1`. Fixed by updating the expected count to 2 with a comment explaining why base hooks legitimately register it twice now.
701
+
702
+ ### Open items flagged for future passes
703
+
704
+ 1. **Native `.codex/skills/*/SKILL.md` emission** (class B) — would write ~99 skill directories. Needs opt-in flag + minor bump.
705
+ 2. **`.opencode/skills/` duplication** — deferred indefinitely; `.claude/skills/` fallback already works.
706
+ 3. **New generators needed**: `generate_gemini_hooks.py`, `generate_augment_agents.py`, `generate_augment_commands.py`, `generate_augment_hooks.py`.
707
+ 4. **Cross-editor hooks unification**: Cursor and Windsurf both shipped `.cursor/hooks.json` and `.windsurf/hooks.json` — worth a dedicated shared-schema pass rather than per-editor copies.
708
+ 5. **Roo `.roomodes` YAML variant** — upstream-preferred; deferred until a YAML multi-line helper is added.
709
+ 6. **Copilot install wiring**: new `.github/instructions/` and `.github/prompts/` directories are emitted when `generate_copilot.py` is called with a target dir, but `install_steps/ai_tools.py` doesn't invoke that path yet. Wire behind minor bump.
710
+
711
+ ### Process refinements for next sweep
712
+
713
+ - **Add a "class B/F deferred" register**: buckets produced these ad-hoc; a structured list in the plan would make prioritization for the next sweep trivial.
714
+ - **Cross-bucket test impact**: adding per-tool bats tests inflates the test count and trips the README badge validator. Next time, bump the badge at the start of consolidation, not at the end.
715
+ - **Search docs via llms.txt first** when the vendor publishes one — bypasses SPA walls with zero fallback logic.
716
+
717
+ ---
718
+
272
719
  ## kb/history/completed/enterprise-config-inheritance-plan-20260412.md
273
720
 
274
721
  ---
@@ -3127,6 +3574,266 @@ Examples:
3127
3574
 
3128
3575
  ---
3129
3576
 
3577
+ ## kb/procedures/ecosystem-sync-sop.md
3578
+
3579
+ ---
3580
+ title: "SOP: Ecosystem Sync"
3581
+ category: procedures
3582
+ service: ai-toolkit
3583
+ tags: [sop, ecosystem, editors, generators, drift-detection, sync]
3584
+ version: "1.0.0"
3585
+ created: "2026-04-23"
3586
+ last_updated: "2026-04-23"
3587
+ description: "Quarterly (or event-triggered) sync procedure that detects documentation and capability drift in supported tools (Claude Code + 11 editors), analyses our generators and skills for missing features, and walks through the migration + generator-update workflow."
3588
+ ---
3589
+
3590
+ # SOP: Ecosystem Sync
3591
+
3592
+ Keeps ai-toolkit aligned with the tools it integrates with. When an editor adds a new hook lifecycle, makes a feature globally available, changes a config path, or deprecates a flag, this SOP surfaces it before it surprises users.
3593
+
3594
+ **When to run:**
3595
+ - **Every quarter** as a baseline health check (calendar reminder)
3596
+ - **Before every minor release** of ai-toolkit (Phase 0 of release prep)
3597
+ - **Whenever an editor ships a major version** (subscribe to their changelogs)
3598
+ - **On demand** if a user reports "feature X exists but toolkit doesn't support it"
3599
+
3600
+ **Time:** 30 minutes for drift review + variable for any generator updates
3601
+
3602
+ ---
3603
+
3604
+ ## Quick Reference
3605
+
3606
+ ```bash
3607
+ # Full check (all 12 tools, online)
3608
+ python3 scripts/ecosystem_doctor.py --format text
3609
+
3610
+ # Single tool
3611
+ python3 scripts/ecosystem_doctor.py --tool cursor --format text
3612
+
3613
+ # First-ever run — baseline the snapshot
3614
+ python3 scripts/ecosystem_doctor.py --update > /dev/null
3615
+
3616
+ # CI / gating mode
3617
+ python3 scripts/ecosystem_doctor.py --check
3618
+
3619
+ # Offline (no network) — validates our side only
3620
+ python3 scripts/ecosystem_doctor.py --offline --format text
3621
+ ```
3622
+
3623
+ ---
3624
+
3625
+ ## Inputs
3626
+
3627
+ | File | Purpose |
3628
+ |------|---------|
3629
+ | `scripts/ecosystem_tools.json` | Authoritative registry: 12 tools with doc URLs, config paths, our generators, capability markers |
3630
+ | `benchmarks/ecosystem-doctor-snapshot.json` | Last-seen state (headings, content hash, markers, version) — updated via `--update` |
3631
+ | `scripts/ecosystem_doctor.py` | Drift detector |
3632
+ | `kb/reference/supported-tools-registry.md` | Human-readable view of the registry |
3633
+
3634
+ ---
3635
+
3636
+ ## Phase 1: Run the Doctor
3637
+
3638
+ ```bash
3639
+ python3 scripts/ecosystem_doctor.py --format text > /tmp/eco-report.txt
3640
+ cat /tmp/eco-report.txt
3641
+ ```
3642
+
3643
+ The report classifies every tool into:
3644
+
3645
+ - **Clean** — doc page, headings, and markers match the last snapshot; no action
3646
+ - **Drift** — something changed upstream. Each drift entry has a `kind`:
3647
+ - `headings_added` — the doc grew new sections (new features? reorg?)
3648
+ - `headings_removed` — a section disappeared (deprecation? renaming?)
3649
+ - `marker_flips` — an expected capability marker appeared (`+`) or vanished (`-`)
3650
+ - `content_changed_no_heading_delta` — prose edits, reorder, minor rewrites, OR HTML churn (timestamps, ads, CSRF nonces). Reported but **not** treated as drift by `--check` — too noisy on dynamic pages.
3651
+ - `version_changed` — the CLI version bumped (for tools that expose `--version`)
3652
+ - **Errored** — couldn't fetch docs (timeout, 404, auth wall). Doctor does not overwrite
3653
+ the snapshot for errored tools; the last-known-good state persists.
3654
+
3655
+ ---
3656
+
3657
+ ## Phase 2: Classify Each Drift
3658
+
3659
+ For every drifting tool, read its docs URL and classify the change into exactly one bucket:
3660
+
3661
+ | Drift class | What it means | Action owner |
3662
+ |-------------|---------------|--------------|
3663
+ | **A. Cosmetic reword** | Prose edited, same feature set | Update snapshot (`--update`), no code change |
3664
+ | **B. New feature — we should integrate** | New hook event, new config key, new CLI flag, new rule surface | Update the relevant generator in `scripts/generate_<tool>_*.py`; extend `app/skills/*` or `app/agents/*` if the feature maps onto our skills; document in `kb/reference/supported-tools-registry.md` |
3665
+ | **C. New feature — not our concern** | Enterprise SSO, billing, proprietary UI-only features | Note in registry `capability_markers` as "not adopted"; update snapshot |
3666
+ | **D. Deprecation** | Flag or path removed / renamed | Open migration issue; coordinate with `ai-toolkit install` and generator output; add deprecation warning to CLAUDE.md rules if user-facing |
3667
+ | **E. Feature promoted to default** | Was behind a flag, now global | Remove the flag from generator output; simplify our installer |
3668
+ | **F. Global availability** | Was editor-only, now also available via CLI / hooks / settings.json | Map new config surface; may require a new generator or extending an existing one |
3669
+
3670
+ Write one line per drift in `/tmp/eco-report.txt` with its class. Example:
3671
+
3672
+ ```
3673
+ cursor: headings_added [AGENTS.md support] -> class B (integrate: extend generate_cursor_mdc.py)
3674
+ aider: version_changed 0.70 -> 0.72 -> class A (cosmetic, --update)
3675
+ windsurf: marker_flips +Cascade -> class B (already supported, verify snapshot)
3676
+ ```
3677
+
3678
+ ---
3679
+
3680
+ ## Phase 3: Execute Changes
3681
+
3682
+ ### For class B (new feature — integrate)
3683
+
3684
+ 1. Read the tool's docs section that introduced the feature. Note the exact config key / hook name / file path.
3685
+ 2. Open the relevant generator (`scripts/generate_<tool>_*.py`) and add output for the new surface.
3686
+ 3. If the feature is a **hook event**, also update:
3687
+ - `app/hooks.json` (if Claude-Code-native)
3688
+ - `app/skills/hook-creator/SKILL.md` — add the event to the Supported Hook Events table
3689
+ - `scripts/inject_hook_cli.py` — if the hook target path differs
3690
+ 4. If the feature is a **skill/agent schema extension**:
3691
+ - Update `app/skills/skill-creator/SKILL.md` and `app/skills/command-creator/SKILL.md` templates
3692
+ - Update `scripts/validate.py` field allowlists
3693
+ - Update `kb/reference/agent-skills-spec.md` (if the change is an upstream spec change)
3694
+ 5. Add a bats test under `tests/test_<tool>.bats` covering the new output.
3695
+ 6. Regenerate artifacts: `npm run generate:all`.
3696
+
3697
+ ### For class D (deprecation)
3698
+
3699
+ 1. Open a migration issue in GitHub with "class: deprecation" and a link to the upstream changelog.
3700
+ 2. In the generator, mark the deprecated output path as emitting a comment: `# DEPRECATED: <link>, removed in <version>`.
3701
+ 3. If deprecation affects `ai-toolkit install --local --editors <tool>`, add a doctor check that warns when a user's repo still contains the deprecated file.
3702
+
3703
+ ### For class E / F (feature promotion)
3704
+
3705
+ 1. Simplify the generator to emit the new-default form; keep a fallback comment for users on older tool versions.
3706
+ 2. Update `kb/reference/supported-tools-registry.md` config-paths column.
3707
+
3708
+ ### For class A / C (no code change)
3709
+
3710
+ 1. Run `python3 scripts/ecosystem_doctor.py --update --tool <id>` to refresh that tool's snapshot.
3711
+
3712
+ ---
3713
+
3714
+ ## Phase 4: Update the Registry
3715
+
3716
+ If new capability markers, config paths, or doc URLs emerged during Phase 3, edit `scripts/ecosystem_tools.json`:
3717
+
3718
+ ```bash
3719
+ ${EDITOR:-nvim} scripts/ecosystem_tools.json
3720
+ ```
3721
+
3722
+ Fields to consider updating:
3723
+ - `urls.docs` — if the vendor moved their docs
3724
+ - `urls.release_notes` — if the changelog location changed
3725
+ - `config_paths` — if new files now ship in our install output
3726
+ - `our_generators` — if a new generator was added
3727
+ - `capability_markers` — if a new feature was adopted
3728
+ - `version_probe.command` — if the CLI binary was renamed
3729
+
3730
+ After editing, increment `last_updated` in the registry and save the snapshot:
3731
+
3732
+ ```bash
3733
+ python3 scripts/ecosystem_doctor.py --update
3734
+ ```
3735
+
3736
+ ---
3737
+
3738
+ ## Phase 5: Validate
3739
+
3740
+ ```bash
3741
+ python3 scripts/validate.py --strict
3742
+ python3 scripts/audit_skills.py --ci
3743
+ python3 scripts/ecosystem_doctor.py --check # exits 0 after --update
3744
+ npm test
3745
+ ```
3746
+
3747
+ All four must pass before committing generator / registry changes.
3748
+
3749
+ ---
3750
+
3751
+ ## Phase 6: Commit
3752
+
3753
+ Use a structured commit per change class:
3754
+
3755
+ ```bash
3756
+ git add scripts/ecosystem_tools.json benchmarks/ecosystem-doctor-snapshot.json
3757
+ git add scripts/generate_<tool>_*.py # if class B/D/E/F
3758
+ git add app/skills/<skill>/SKILL.md # if templates touched
3759
+ git add kb/reference/supported-tools-registry.md
3760
+ git commit -m "chore(ecosystem): sync <tool> — <brief summary>"
3761
+ ```
3762
+
3763
+ Recommended commit messages by class:
3764
+
3765
+ | Class | Template |
3766
+ |-------|----------|
3767
+ | A | `chore(ecosystem): refresh <tool> snapshot (cosmetic docs update)` |
3768
+ | B | `feat(<tool>): add support for <feature>` |
3769
+ | C | `chore(ecosystem): note <tool> <feature> as not-adopted` |
3770
+ | D | `feat(<tool>): deprecation warning for <old-path>` |
3771
+ | E | `refactor(<tool>): remove flag for <feature> (now default)` |
3772
+ | F | `feat(<tool>): add <new-surface> generator` |
3773
+
3774
+ ---
3775
+
3776
+ ## Gotchas
3777
+
3778
+ - **First run has no baseline.** On a machine where `benchmarks/ecosystem-doctor-snapshot.json` does not exist, every tool shows as clean (no prior state to diff against). Run `--update` once to seed, then run again to see real drift.
3779
+ - **Documentation sites use client-side rendering.** Aider, opencode, and Antigravity serve most content via JavaScript. `urllib` fetches the bare HTML skeleton — the doctor only sees a few headings. Combine the automated check with a manual visit to the docs on these tools.
3780
+ - **Release notes pages change structure more often than docs.** Cursor and Windsurf refactor their changelog layouts periodically; a heading delta from a changelog page is often a presentation change, not a feature change. Classify as A when in doubt.
3781
+ - **Version probes require the CLI to be installed locally.** `gemini --version`, `aider --version`, etc. are skipped silently when the binary isn't on `$PATH`. The snapshot therefore omits version drift for tools you haven't installed — that is intentional, not a bug.
3782
+ - **GitHub release pages have anti-scraping.** `github.com/<org>/<repo>/releases` works via `urllib` but rate-limits aggressively. If the doctor errors on repeated runs, wait 10 minutes or manually review the release page.
3783
+ - **Marker list is intentionally small.** Capability markers are a "did we adopt this?" checklist, not a feature coverage map. Adding every sub-feature bloats the JSON and produces noisy flips — keep markers at the top-level-capability tier.
3784
+ - **`--check` only gates on structural drift.** Heading/marker/version changes and fetch errors exit `1`. Pure content-hash differences (`content_changed_no_heading_delta`) exit `0` — otherwise dynamic pages with timestamps or rotating ads would page you every run. If you want the strictest possible gate, grep for `Content changed` in the text report instead.
3785
+
3786
+ ---
3787
+
3788
+ ## Scheduling
3789
+
3790
+ Recommended cadence:
3791
+
3792
+ | Trigger | Action |
3793
+ |---------|--------|
3794
+ | Every Monday morning | `python3 scripts/ecosystem_doctor.py --format text` — scan during coffee |
3795
+ | Before a minor release | Full sync + clean snapshot before tagging |
3796
+ | After any drift report | Act within 1 week or record explicit "ignore, low priority" in the commit message |
3797
+ | New tool added to the registry | Baseline with `--update --tool <id>` |
3798
+ | Tool removed from support | Delete its entry from the registry AND from the snapshot JSON |
3799
+
3800
+ An optional GitHub Action can run `--check` weekly and open an issue on drift. Template:
3801
+
3802
+ ```yaml
3803
+ # .github/workflows/ecosystem-doctor.yml (proposed, not yet committed)
3804
+ on:
3805
+ schedule:
3806
+ - cron: '0 9 * * 1' # Mondays 09:00 UTC
3807
+ workflow_dispatch: {}
3808
+ jobs:
3809
+ doctor:
3810
+ runs-on: ubuntu-latest
3811
+ steps:
3812
+ - uses: actions/checkout@v4
3813
+ - run: python3 scripts/ecosystem_doctor.py --format text | tee /tmp/doctor.txt
3814
+ - run: python3 scripts/ecosystem_doctor.py --check
3815
+ ```
3816
+
3817
+ ---
3818
+
3819
+ ## When NOT to Use
3820
+
3821
+ - For **runtime** user support (user hit a bug with an editor) — use `/debug` or `/triage-issue`
3822
+ - For **picking** an editor to add — that is a product decision, not a sync; use `/architecture-decision`
3823
+ - For **one-off** testing of a specific tool's install flow — use the release-verification SOP
3824
+ - For **scaling up** the supported-tools list — add the new tool to the registry, then run the SOP to baseline it
3825
+
3826
+ ---
3827
+
3828
+ ## Related Documentation
3829
+
3830
+ - [Supported Tools Registry](../reference/supported-tools-registry.md) — human-readable per-tool breakdown
3831
+ - [MCP Editor Compatibility](../reference/mcp-editor-compatibility.md) — MCP-specific adapter table
3832
+ - [Maintenance SOP](maintenance-sop.md) — general toolkit upkeep
3833
+ - [Release Preparation SOP](release-preparation-sop.md) — run the doctor before tagging
3834
+
3835
+ ---
3836
+
3130
3837
  ## kb/procedures/maintenance-sop.md
3131
3838
 
3132
3839
  ---
@@ -3134,9 +3841,9 @@ title: "SOP: Claude Toolkit Maintenance"
3134
3841
  category: procedures
3135
3842
  service: ai-toolkit
3136
3843
  tags: [sop, maintenance, agents, skills, install]
3137
- version: "1.4.4"
3844
+ version: "3.0.0"
3138
3845
  created: "2026-03-23"
3139
- last_updated: "2026-04-13"
3846
+ last_updated: "2026-04-23"
3140
3847
  description: "Standard operating procedures for installing, maintaining, and evolving the ai-toolkit."
3141
3848
  ---
3142
3849
 
@@ -3222,6 +3929,17 @@ What `install` and `update` do (merge-friendly — user content never overwritte
3222
3929
 
3223
3930
  Re-running updates only toolkit content. Old whole-directory symlinks are auto-upgraded to per-file on next run.
3224
3931
 
3932
+ ### Install Profiles (v3.0.0)
3933
+
3934
+ | Profile | Claude Code core | Editor rules | Gemini hooks | Copilot dir layout | Per-editor hooks / sub-agents / commands | Git hooks |
3935
+ |---------|:---------------:|:------------:|:------------:|:------------------:|:---------------------------------------:|:---------:|
3936
+ | `minimal` | yes | pointer only | no | no | no | no |
3937
+ | `standard` (default) | yes | yes | **yes** (new in v3) | **yes** (new in v3) | no | no |
3938
+ | `strict` | yes | yes | yes | yes | no | yes |
3939
+ | `full` | yes | yes | yes | yes | **yes, all editors** | optional |
3940
+
3941
+ `--codex-skills` is orthogonal to `--profile` and materializes the full skill catalog under `.agents/skills/` for Codex. See `kb/reference/global-install-model.md` for the full semantic breakdown.
3942
+
3225
3943
  ---
3226
3944
 
3227
3945
  ## Update Toolkit
@@ -3523,11 +4241,11 @@ What `uninstall` does:
3523
4241
  title: "SOP: Release Preparation"
3524
4242
  category: procedures
3525
4243
  service: ai-toolkit
3526
- tags: [sop, release, version, publish, changelog, semver, provenance, sarif]
3527
- version: "1.7.0"
4244
+ tags: [sop, release, version, publish, changelog, semver, provenance, sarif, ecosystem]
4245
+ version: "1.9.0"
3528
4246
  created: "2026-04-10"
3529
- last_updated: "2026-04-18"
3530
- description: "Step-by-step checklist for preparing a new ai-toolkit release — version sync, changelog, artifact regeneration, validation, and tagging. Run BEFORE every git tag. Includes mandatory Provenance, SARIF, and checksum-pin checks added in v2.8.0."
4247
+ last_updated: "2026-04-23"
4248
+ description: "Step-by-step checklist for preparing a new ai-toolkit release — ecosystem-sync drift check, version sync, changelog, artifact regeneration, validation, and tagging. Run BEFORE every git tag. Includes mandatory Provenance, SARIF, and checksum-pin checks added in v2.8.0, the single-run npm test discipline added in v1.8.0, and the ecosystem-sync gate added in v1.9.0."
3531
4249
  ---
3532
4250
 
3533
4251
  # SOP: Release Preparation
@@ -3538,20 +4256,33 @@ Run this **before** tagging. After tagging and publishing, run the
3538
4256
 
3539
4257
  **Pipeline:**
3540
4258
  ```
3541
- Release Preparation (this SOP) git tag CI publish → Release Verification SOP
4259
+ Ecosystem Sync SOP (drift check + generator updates)
4260
+
4261
+ Release Preparation (this SOP)
4262
+
4263
+ git tag → CI publish → Release Verification SOP
3542
4264
  ```
3543
4265
 
3544
- **Time:** 5-10 minutes
4266
+ **Time:** 10-20 minutes (includes ecosystem sync review)
3545
4267
 
3546
4268
  ---
3547
4269
 
3548
4270
  ## Quick Checklist (TL;DR)
3549
4271
 
3550
4272
  ```bash
4273
+ # 0. Ecosystem sync (mandatory for minor/major releases; optional for patch)
4274
+ # Full procedure: kb/procedures/ecosystem-sync-sop.md
4275
+ python3 scripts/ecosystem_doctor.py --format text > /tmp/eco-report.txt
4276
+ cat /tmp/eco-report.txt
4277
+ # If drift detected: stop here, follow ecosystem-sync-sop.md Phase 2-4 to
4278
+ # classify each drift (A-F), update generators as needed, refresh snapshot,
4279
+ # THEN resume this SOP.
4280
+ python3 scripts/ecosystem_doctor.py --update # after all drift resolved
4281
+
3551
4282
  # 1. Decide version bump
3552
4283
  # patch (1.4.2 → 1.4.3): bugfix, typo, doc fix
3553
- # minor (1.4.2 → 1.5.0): new feature, new skill, new flag
3554
- # major (1.4.2 → 2.0.0): breaking change
4284
+ # minor (1.4.2 → 1.5.0): new feature, new skill, new flag, any ecosystem-class-B/F change
4285
+ # major (1.4.2 → 2.0.0): breaking change, any ecosystem-class-D removed path
3555
4286
 
3556
4287
  # 2. Sync version across all files
3557
4288
  python3 scripts/sync_version.py X.Y.Z # if script exists, else manual
@@ -3563,7 +4294,7 @@ python3 scripts/generate_codex_rules.py .
3563
4294
  python3 scripts/generate_llms_txt.py > llms.txt
3564
4295
  python3 scripts/generate_llms_txt.py --full > llms-full.txt
3565
4296
 
3566
- # 5. Validate + audit + SARIF + test
4297
+ # 5. Validate + audit + SARIF + test + ecosystem check
3567
4298
  python3 scripts/validate.py --strict && python3 scripts/audit_skills.py --ci && python3 scripts/audit_skills.py --sarif > /tmp/audit.sarif && npm test
3568
4299
 
3569
4300
  # 5a. Supply-chain standard (v2.8.0+) — non-negotiable
@@ -3571,6 +4302,9 @@ grep -q -- '--provenance' .github/workflows/publish.yml || { echo "MISSING --pro
3571
4302
  grep -q 'id-token: write' .github/workflows/publish.yml || { echo "MISSING id-token: write"; exit 1; }
3572
4303
  python3 scripts/audit_skills.py --permissions # review Bash/Write/Edit footprint
3573
4304
 
4305
+ # 5b. Ecosystem gate — snapshot must be current before tag
4306
+ python3 scripts/ecosystem_doctor.py --offline --check || { echo "STALE ecosystem snapshot — re-run doctor"; exit 1; }
4307
+
3574
4308
  # 6. Commit + tag + push
3575
4309
  git add -A && git commit -m "chore: release vX.Y.Z"
3576
4310
  git tag vX.Y.Z
@@ -3579,6 +4313,60 @@ git push origin main --tags
3579
4313
 
3580
4314
  ---
3581
4315
 
4316
+ ## Phase 0: Ecosystem Sync (MANDATORY for minor/major)
4317
+
4318
+ Before touching version numbers, confirm the toolkit is aligned with the current state of every editor / platform it integrates with. Skipping this phase ships a release whose generators may lag a month-old CLI refactor, a rename of `.cursorrules` to `.cursor/rules/`, or a new hook event we do not yet emit.
4319
+
4320
+ **When this phase is mandatory:**
4321
+ - Minor release (X.Y.0) — always
4322
+ - Major release (X.0.0) — always
4323
+ - Patch release (X.Y.Z) — only if the patch touches a generator or install flow
4324
+
4325
+ **When to skip:** pure doc-only patches, SOP edits, internal refactors that do not touch `scripts/generate_*` or `app/skills/*/SKILL.md`.
4326
+
4327
+ ### 0.1 Run the doctor
4328
+
4329
+ ```bash
4330
+ python3 scripts/ecosystem_doctor.py --format text | tee /tmp/eco-report.txt
4331
+ ```
4332
+
4333
+ Output classifies every registered tool as **Clean**, **Drift**, or **Errored**.
4334
+
4335
+ ### 0.2 Act on drift
4336
+
4337
+ For each drifting tool, follow [ecosystem-sync-sop.md](ecosystem-sync-sop.md) Phase 2-4:
4338
+
4339
+ | Drift class | Release impact |
4340
+ |-------------|----------------|
4341
+ | A (cosmetic reword) | No version impact — refresh snapshot, continue |
4342
+ | B (new feature — integrate) | **Minor** version bump at minimum; new generator or extended generator |
4343
+ | C (new feature — not adopted) | No impact — note in registry |
4344
+ | D (deprecation) | **Minor** or **major** depending on user impact; add migration warning |
4345
+ | E (feature promoted to default) | **Minor**; simplify generator, keep fallback comment |
4346
+ | F (feature newly globally available) | **Minor**; may require new generator or new config path |
4347
+
4348
+ If any B/D/E/F changes land in this preparation pass, mention them explicitly in the CHANGELOG entry (Phase 3) under a `Ecosystem` subsection.
4349
+
4350
+ ### 0.3 Refresh snapshot
4351
+
4352
+ Once every drift is resolved (either by code change or by re-classifying as acceptable):
4353
+
4354
+ ```bash
4355
+ python3 scripts/ecosystem_doctor.py --update
4356
+ ```
4357
+
4358
+ This writes the new baseline to `benchmarks/ecosystem-doctor-snapshot.json`. Commit it as part of the release commit.
4359
+
4360
+ ### 0.4 Gate
4361
+
4362
+ ```bash
4363
+ python3 scripts/ecosystem_doctor.py --offline --check
4364
+ ```
4365
+
4366
+ Must exit `0`. If it exits `1`, the snapshot is stale — rerun Phase 0.3 or review the remaining drift.
4367
+
4368
+ ---
4369
+
3582
4370
  ## Phase 1: Determine Version Bump
3583
4371
 
3584
4372
  Follow [Semantic Versioning](https://semver.org/):
@@ -3728,7 +4516,13 @@ python3 scripts/validate.py --strict
3728
4516
  python3 scripts/audit_skills.py --ci
3729
4517
  python3 scripts/audit_skills.py --sarif > audit.sarif # MANDATORY — GHAS ingest
3730
4518
  python3 scripts/audit_skills.py --permissions # review Bash/Write/Edit footprint
3731
- npm test
4519
+
4520
+ # Run npm test ONCE, cache output, parse from file. The suite is 669+ bats
4521
+ # cases — rerunning it per check wastes minutes. Do not pipe npm test into
4522
+ # tail/grep multiple times in the same session.
4523
+ npm test > /tmp/npm-test.log 2>&1
4524
+ tail -3 /tmp/npm-test.log
4525
+ echo "ok: $(grep -c '^ok ' /tmp/npm-test.log) | not ok: $(grep -c '^not ok' /tmp/npm-test.log)"
3732
4526
  ```
3733
4527
 
3734
4528
  **Expected results:**
@@ -3736,7 +4530,7 @@ npm test
3736
4530
  - `audit_skills.py --ci`: `HIGH: 0 | WARN: 0` (INFO is acceptable)
3737
4531
  - `audit_skills.py --sarif`: valid JSON, non-empty `runs[0].tool.driver.rules`
3738
4532
  - `audit_skills.py --permissions`: review `Skills with Bash + Write + Edit` list — any newly-added skill with broad access MUST be justified in the CHANGELOG entry
3739
- - `npm test`: `1..N` with zero `not ok`
4533
+ - `npm test`: `1..N` with zero `not ok` (read from the cached `/tmp/npm-test.log`, do not rerun)
3740
4534
 
3741
4535
  **One-liner:**
3742
4536
  ```bash
@@ -3853,13 +4647,16 @@ git push origin --delete vX.Y.Z
3853
4647
 
3854
4648
  | # | Step | Command / Action | Pass Criteria |
3855
4649
  |---|------|-----------------|---------------|
4650
+ | 0a | Ecosystem drift check | `ecosystem_doctor.py --format text` | All tools Clean, or drift classified and resolved |
4651
+ | 0b | Ecosystem snapshot refresh | `ecosystem_doctor.py --update` | `benchmarks/ecosystem-doctor-snapshot.json` updated |
4652
+ | 0c | Ecosystem gate | `ecosystem_doctor.py --offline --check` | Exit 0 |
3856
4653
  | 1 | Version bump type | Decide patch/minor/major | — |
3857
4654
  | 2 | `package.json` version | Edit `"version"` | Matches target |
3858
4655
  | 3 | `manifest.json` version | Edit `"version"` | Matches target |
3859
4656
  | 4 | `plugin.json` version | Edit `"version"` | Matches target |
3860
4657
  | 5 | `package-lock.json` | `npm install --package-lock-only` | Matches target |
3861
4658
  | 6 | Count sync | Check `package.json` description, README | `validate.py` passes |
3862
- | 7 | CHANGELOG.md | Add release entry | Entry exists for vX.Y.Z |
4659
+ | 7 | CHANGELOG.md | Add release entry (incl. `Ecosystem` subsection if any B/D/E/F drift) | Entry exists for vX.Y.Z |
3863
4660
  | 8 | Regenerate artifacts | `generate_agents_md.py`, `generate_codex_rules.py`, `generate_llms_txt.py` | No unexpected diff |
3864
4661
  | 9 | Validate | `validate.py --strict` | 0 errors, 0 warnings |
3865
4662
  | 10 | Security audit (CI mode) | `audit_skills.py --ci` | 0 HIGH |
@@ -3881,10 +4678,10 @@ title: "SOP: Release Verification"
3881
4678
  category: procedures
3882
4679
  service: ai-toolkit
3883
4680
  tags: [sop, verification, release, smoke-test, install, update, qa, provenance, sarif]
3884
- version: "1.2.0"
4681
+ version: "1.3.0"
3885
4682
  created: "2026-04-08"
3886
- last_updated: "2026-04-18"
3887
- description: "End-to-end smoke test after installing or updating @softspark/ai-toolkit — verifies CLI, install, doctor, validation, tests, eject, npm provenance attestation, SARIF audit, and per-skill permissions. Reflects the v2.8.0 supply-chain standard."
4683
+ last_updated: "2026-04-21"
4684
+ description: "End-to-end smoke test after installing or updating @softspark/ai-toolkit — verifies CLI, install, doctor, validation, tests, eject, npm provenance attestation, SARIF audit, and per-skill permissions. Reflects the v2.8.0 supply-chain standard. v1.3.0 adds the single-run npm test discipline (cache to file, parse ok/not-ok once)."
3888
4685
  ---
3889
4686
 
3890
4687
  # SOP: Release Verification
@@ -3917,7 +4714,7 @@ python3 scripts/generate_agents_md.py > AGENTS.md # 1. Regenerate AGEN
3917
4714
  python3 scripts/generate_codex_rules.py . # 2. Refresh standard Codex rules
3918
4715
  python3 scripts/generate_llms_txt.py > llms.txt # 3. Regenerate llms.txt
3919
4716
  python3 scripts/validate.py --strict # 4. Validation passed?
3920
- npm test # 5. All tests passed?
4717
+ npm test > /tmp/npm-test.log 2>&1 && grep -c '^ok ' /tmp/npm-test.log && ! grep -q '^not ok' /tmp/npm-test.log # 5. All tests passed? (single run, cached)
3921
4718
 
3922
4719
  # Post-install verification (Phases 1-7)
3923
4720
  ai-toolkit --version # 6. Version OK?
@@ -4082,15 +4879,33 @@ python3 scripts/audit_skills.py --ci
4082
4879
  ## Phase 6: Tests (3-5 min)
4083
4880
 
4084
4881
  ```bash
4085
- npm test
4882
+ # Run ONCE, capture to file, then parse. Full suite is 669+ bats cases —
4883
+ # re-running it per check (tail / grep ok / grep not ok piped separately)
4884
+ # wastes minutes every release. Always cache the output.
4885
+ npm test > /tmp/npm-test.log 2>&1
4886
+ exit=$?
4887
+ tail -3 /tmp/npm-test.log
4888
+ echo "ok: $(grep -c '^ok ' /tmp/npm-test.log)"
4889
+ echo "not ok: $(grep -c '^not ok' /tmp/npm-test.log)"
4890
+ echo "exit: $exit"
4086
4891
  ```
4087
4892
 
4088
4893
  **Verify:**
4894
+ - [ ] `exit == 0`
4895
+ - [ ] `ok == expected test count` (e.g., 669)
4896
+ - [ ] `not ok == 0`
4089
4897
  - [ ] Bats runs tests in parallel (4 jobs)
4090
- - [ ] All `ok` — zero `not ok`
4091
4898
  - [ ] Groups: agents, autodetect, cli, generators, guards, hooks, inject,
4092
4899
  install, kb, mcp, readme, profiles, uninstall, validate
4093
4900
 
4901
+ **Anti-pattern — do NOT do this:**
4902
+ ```bash
4903
+ # Runs the full suite THREE times. Adds 1-3 min and pressures CI capacity.
4904
+ npm test 2>&1 | tail -3
4905
+ npm test 2>&1 | grep -c '^ok '
4906
+ npm test 2>&1 | grep -c '^not ok'
4907
+ ```
4908
+
4094
4909
  **Key test areas:**
4095
4910
  - Guards: rm -rf, DROP TABLE, git push --force blocked
4096
4911
  - Install: idempotent, profiles, --only/--skip, orphan cleanup
@@ -6891,9 +7706,9 @@ title: "Global Install Model"
6891
7706
  category: reference
6892
7707
  service: ai-toolkit
6893
7708
  tags: [install, global, claude, codex, plugins, local-setup]
6894
- version: "1.4.4"
7709
+ version: "3.0.0"
6895
7710
  created: "2026-03-26"
6896
- last_updated: "2026-04-13"
7711
+ last_updated: "2026-04-23"
6897
7712
  description: "Reference description of the global install target, project-local editor setup, global Codex plugin layering, and command responsibilities in ai-toolkit."
6898
7713
  ---
6899
7714
 
@@ -6927,6 +7742,19 @@ installed with `ai-toolkit plugin install --editor codex`.
6927
7742
  | `ai-toolkit plugin update --editor claude|codex|all <name>` | runtime-native config | re-apply plugin pack after toolkit updates |
6928
7743
  | `ai-toolkit plugin remove --editor claude|codex|all <name>` | runtime-native config | remove plugin pack from selected runtime(s) |
6929
7744
 
7745
+ ## Install Profiles (v3.0.0)
7746
+
7747
+ The `--profile` flag controls how much of each editor's native surface is activated.
7748
+
7749
+ | Profile | What runs | Use when |
7750
+ |---------|-----------|----------|
7751
+ | `minimal` | Agents and skills only. No editor generators beyond pointer skills for editors that require them. | You want the smallest possible footprint, or you manage editor configs by hand. |
7752
+ | `standard` (default) | Claude Code + editor rule files. Includes **Gemini hooks** and the **Copilot directory layout** (v3.0.0 change from prior `standard`). | Day-to-day installs. Most users. |
7753
+ | `strict` | Everything in `standard` plus git-hook wiring for commit-time safety checks. | Solo dev or tight team with zero tolerance for drift. |
7754
+ | `full` | Every native surface across every editor: hooks, sub-agents, custom commands, skill pointers for Cursor / Windsurf / Gemini / Augment / Antigravity. | You want maximum coverage and understand that each editor will carry generated files under its own layout. |
7755
+
7756
+ `--codex-skills` is an independent opt-in flag (not part of profile) that materializes the full `.claude/skills/` catalog under `.agents/skills/` for Codex. Other editors stay on compat-read or the per-editor pointer skill.
7757
+
6930
7758
  ## Why global install is the default
6931
7759
 
6932
7760
  - less setup friction,
@@ -9852,6 +10680,240 @@ Reset: ai-toolkit stats --reset
9852
10680
 
9853
10681
  ---
9854
10682
 
10683
+ ## kb/reference/supported-tools-registry.md
10684
+
10685
+ ---
10686
+ title: "Supported Tools Registry"
10687
+ category: reference
10688
+ service: ai-toolkit
10689
+ tags: [editors, platforms, generators, integration, ecosystem]
10690
+ version: "1.1.0"
10691
+ created: "2026-04-23"
10692
+ last_updated: "2026-04-23"
10693
+ description: "Human-readable view of scripts/ecosystem_tools.json — the canonical list of tools ai-toolkit integrates with (Claude Code + 11 editors), their documentation URLs, config paths, our generators, and tracked capability markers."
10694
+ ---
10695
+
10696
+ # Supported Tools Registry
10697
+
10698
+ The canonical data lives in **`scripts/ecosystem_tools.json`** and is consumed by `scripts/ecosystem_doctor.py`. This document is a derived view — when the JSON changes, update this table too.
10699
+
10700
+ ## Tool Count: 12
10701
+
10702
+ 1 primary runtime (Claude Code) + 11 editor integrations.
10703
+
10704
+ ---
10705
+
10706
+ ## Primary Runtime
10707
+
10708
+ ### Claude Code
10709
+
10710
+ | Field | Value |
10711
+ |-------|-------|
10712
+ | ID | `claude-code` |
10713
+ | Docs | https://platform.claude.com/docs/en/claude-code |
10714
+ | Release notes | https://github.com/anthropics/claude-code/releases |
10715
+ | Config paths | `~/.claude/settings.json`, `.claude/settings.local.json`, `CLAUDE.md`, `.claude/agents/*.md`, `.claude/skills/*/SKILL.md`, `~/.claude/themes/*.json` (v2.1.118+) |
10716
+ | Our generators | — (Claude Code is the primary target; toolkit content ships directly as `.md` files and `settings.json` merges) |
10717
+ | Tracked hook events | Core: `SessionStart`, `SessionEnd`, `UserPromptSubmit`, `Notification`. Tool: `PreToolUse`, `PostToolUse`. Turn: `Stop`, `StopFailure`. Subagent: `SubagentStart`, `SubagentStop`. Compaction: `PreCompact`, `PostCompact`. Permissions: `PermissionRequest`, `PermissionDenied`. Elicitation: `Elicitation`, `ElicitationResult`. Teams: `TaskCreated`, `TaskCompleted`, `TeammateIdle`. Worktrees/env: `WorktreeCreate`, `WorktreeRemove`, `CwdChanged`, `FileChanged`, `ConfigChange`. Setup: `Setup`, `InstructionsLoaded` |
10718
+ | Tracked handler types | `command`, `prompt`, `agent`, `mcp_tool` |
10719
+ | Other capabilities | slash commands, MCP server/client, sub-agent, output style, `SKILL.md` (≥500 lines warn) |
10720
+ | Version probe | `claude --version` |
10721
+
10722
+ ---
10723
+
10724
+ ## Editor Integrations
10725
+
10726
+ ### Cursor
10727
+
10728
+ | Field | Value |
10729
+ |-------|-------|
10730
+ | ID | `cursor` |
10731
+ | Docs | https://cursor.com/docs |
10732
+ | Changelog | https://cursor.com/changelog |
10733
+ | Stable docs mirror | https://cursor.com/llms.txt (all doc pages have .md twins) |
10734
+ | Config paths | `.cursorrules`, `.cursor/rules/*.mdc`, `.cursor/rules/*.md`, `AGENTS.md`, `.cursor/mcp.json`, `~/.cursor/mcp.json`, `.cursor/skills/*/SKILL.md`, `.cursor/agents/*.md`, `.cursor/hooks.json`, `~/.cursor/hooks.json` |
10735
+ | Compat read paths | `.claude/skills/`, `.claude/agents/`, `.codex/skills/`, `.codex/agents/` (Cursor cross-reads these so ai-toolkit's Claude install works automatically) |
10736
+ | Our generators | `scripts/generate_cursor_rules.py`, `scripts/generate_cursor_mdc.py` |
10737
+ | Tracked capabilities | `cursorrules`, `.cursor/rules`, `AGENTS.md`, `mcp.json`, Composer, Agent Mode, hooks.json, subagents, skills, plugins |
10738
+
10739
+ ### Windsurf
10740
+
10741
+ | Field | Value |
10742
+ |-------|-------|
10743
+ | ID | `windsurf` |
10744
+ | Docs | https://docs.windsurf.com |
10745
+ | Changelog | https://windsurf.com/changelog |
10746
+ | Stable docs mirror | https://docs.windsurf.com/llms.txt + per-page .md twins |
10747
+ | Config paths | `.windsurfrules`, `.windsurf/rules/*.md`, `.windsurf/workflows/*.md`, `AGENTS.md`, `~/.codeium/windsurf/memories/global_rules.md`, `~/.codeium/windsurf/mcp_config.json` |
10748
+ | Compat read paths | `.agents/skills/`, `~/.agents/skills/`, (with Claude Code config-reading) `.claude/skills/`, `~/.claude/skills/` |
10749
+ | Our generators | `scripts/generate_windsurf.py`, `scripts/generate_windsurf_rules.py` |
10750
+ | Tracked capabilities | Cascade, `windsurfrules`, `AGENTS.md`, activation triggers (`always_on`/`glob`/`model_decision`), workflows, MCP, memories, hooks |
10751
+ | Activation modes emitted | always_on (agents/security/quality), glob (testing + language rules), model_decision (code-style/workflow) |
10752
+
10753
+ ### GitHub Copilot
10754
+
10755
+ | Field | Value |
10756
+ |-------|-------|
10757
+ | ID | `github-copilot` |
10758
+ | Docs | https://docs.github.com/en/copilot |
10759
+ | Release notes | https://github.blog/changelog/label/copilot/ |
10760
+ | Config paths | `.github/copilot-instructions.md`, `.github/instructions/*.instructions.md`, `.github/prompts/*.prompt.md`, `AGENTS.md` |
10761
+ | Our generators | `scripts/generate_copilot.py` |
10762
+ | Tracked capabilities | `copilot-instructions.md`, Copilot Chat, Copilot Workspace, Copilot cloud agent, `applyTo`, custom agents, prompt files, `instructions.md`, MCP |
10763
+ | Tier notes | Custom agents (`.github/agents/*.agent.md`) and repo-level MCP config are Pro/Pro+/Business/Enterprise only and intentionally not integrated (class C per ecosystem-sync SOP). |
10764
+
10765
+ ### Gemini CLI
10766
+
10767
+ | Field | Value |
10768
+ |-------|-------|
10769
+ | ID | `gemini-cli` |
10770
+ | Docs | https://github.com/google-gemini/gemini-cli/tree/main/docs |
10771
+ | Release notes | https://github.com/google-gemini/gemini-cli/releases |
10772
+ | Config paths | `GEMINI.md`, `.gemini/settings.json`, `~/.gemini/settings.json`, `.gemini/commands/*.toml`, `.gemini/skills/*/SKILL.md`, `.agents/skills/*/SKILL.md`, `.gemini/extensions/gemini-extension.json` |
10773
+ | Our generators | `scripts/generate_gemini.py` |
10774
+ | Tracked capabilities | `GEMINI.md`, `mcpServers`, tools, `settings.json`, `BeforeTool`, `AfterTool`, `BeforeAgent`, `AfterAgent`, `BeforeModel`, `SessionStart`, `SessionEnd`, `Stop`, `SKILL.md`, `activate_skill`, custom commands, `gemini-extension.json` |
10775
+ | Version probe | `gemini --version` |
10776
+ | Latest upstream | v0.39.0 (2026-04-23) |
10777
+
10778
+ ### Cline
10779
+
10780
+ | Field | Value |
10781
+ |-------|-------|
10782
+ | ID | `cline` |
10783
+ | Docs | https://docs.cline.bot |
10784
+ | Release notes | https://github.com/cline/cline/releases |
10785
+ | Config paths | `.clinerules/*.md`, `.clinerules/workflows/*.md`, `.clinerules/hooks/`, `.cline/skills/`, `~/.cline/data/settings/cline_mcp_settings.json`, `~/Documents/Cline/Rules/` |
10786
+ | Our generators | `scripts/generate_cline.py`, `scripts/generate_cline_rules.py` |
10787
+ | Tracked capabilities | `clinerules`, Plan Mode, Act Mode, MCP, custom modes, workflows, hooks, skills, subagents, conditional rules |
10788
+ | Notes | Conditional rules (`paths:` YAML frontmatter) are emitted for testing and language-specific rules since 2026-04. Skills (`.cline/skills/`) and hooks (`.clinerules/hooks/`) remain experimental upstream and are not yet generated. |
10789
+
10790
+ ### Roo Code
10791
+
10792
+ | Field | Value |
10793
+ |-------|-------|
10794
+ | ID | `roo-code` |
10795
+ | Docs | https://docs.roocode.com |
10796
+ | Release notes | https://github.com/RooCodeInc/Roo-Code/releases |
10797
+ | Config paths | `.roomodes`, `.roo/rules/*.md`, `.roo/rules-{slug}/*.md`, `.roo/mcp.json`, `~/.roo/rules/`, `~/.roo/settings/custom_modes.yaml`, `~/.roo/settings/mcp_settings.json` |
10798
+ | Our generators | `scripts/generate_roo_modes.py`, `scripts/generate_roo_rules.py` |
10799
+ | Tracked capabilities | `roomodes`, custom modes, Code Actions, MCP, Orchestrator mode, `whenToUse`, `description`, `roleDefinition`, `groups` |
10800
+ | Notes | `.roomodes` now includes `description` and `whenToUse` for every mode (since 2026-04). YAML `.roomodes` is upstream-preferred but not yet emitted — JSON is still accepted by Roo. |
10801
+
10802
+ ### Aider
10803
+
10804
+ | Field | Value |
10805
+ |-------|-------|
10806
+ | ID | `aider` |
10807
+ | Docs | https://aider.chat/docs |
10808
+ | Changelog | https://aider.chat/HISTORY.html |
10809
+ | Config paths | `.aider.conf.yml`, `CONVENTIONS.md`, `~/.aider.conf.yml` |
10810
+ | Our generators | `scripts/generate_aider_conf.py`, `scripts/generate_conventions.py` |
10811
+ | Tracked capabilities | `.aider.conf.yml`, `CONVENTIONS.md`, `architect`, `auto-accept-architect`, `read`, `lint-cmd`, `test-cmd`, `commit-prompt`, `attribute-co-authored-by`, `chat-language`, `commit-language`, `watch-files`, `auto-commits` |
10812
+ | Version probe | `aider --version` |
10813
+ | Latest upstream | v0.86.1 (Aug 2025) |
10814
+
10815
+ ### Augment
10816
+
10817
+ | Field | Value |
10818
+ |-------|-------|
10819
+ | ID | `augment` |
10820
+ | Docs | https://docs.augmentcode.com |
10821
+ | Changelog | https://www.augmentcode.com/changelog |
10822
+ | Config paths | `.augment/rules/*.md`, `.augment/guidelines.md` (legacy), `.augment/agents/*.md`, `.augment/commands/*.md`, `.augment/skills/*/SKILL.md`, `~/.augment/rules/*.md`, `~/.augment/settings.json`, `/etc/augment/settings.json` |
10823
+ | Our generators | `scripts/generate_augment.py`, `scripts/generate_augment_rules.py` |
10824
+ | Tracked capabilities | `.augment`, Agent mode, Next Edit, MCP, context engine, Auggie CLI, `always_apply`, `agent_requested`, subagents, custom commands, `SKILL.md`, `PreToolUse`, `PostToolUse`, `SessionStart`, `SessionEnd`, `Stop`, ACP Mode |
10825
+ | SPA caveat | Mintlify Next.js SPA; use `https://docs.augmentcode.com/<path>.md` siblings (discoverable via `/llms.txt`) for machine reads |
10826
+
10827
+ ### Google Antigravity
10828
+
10829
+ | Field | Value |
10830
+ |-------|-------|
10831
+ | ID | `google-antigravity` |
10832
+ | Docs | https://antigravity.google/docs (JavaScript SPA — use bundle strings / sitemap to verify) |
10833
+ | Changelog | https://antigravity.google/changelog (SPA; changelog entries embedded in main-*.js) |
10834
+ | Config paths | `.agent/rules/*.md`, `.agent/workflows/*.md`, `.agent/skills/*/SKILL.md`, `AGENTS.md`, `GEMINI.md` |
10835
+ | Our generators | `scripts/generate_antigravity.py` (rules + workflows + skill pointer) |
10836
+ | Tracked capabilities | Antigravity, agent manager, artifacts, MCP, workflows, rules, skills, `AGENTS.md`, `GEMINI.md`, agent permissions |
10837
+ | Doc access note | Docs are JS-SPA — verify via `main-*.js` bundle strings or community skill repos. `WebFetch` returns an empty shell. |
10838
+
10839
+ ### Codex CLI
10840
+
10841
+ | Field | Value |
10842
+ |-------|-------|
10843
+ | ID | `codex-cli` |
10844
+ | Docs | https://github.com/openai/codex (redirects from developers.openai.com/codex) |
10845
+ | Release notes | https://github.com/openai/codex/releases |
10846
+ | Config paths | `AGENTS.md`, `.agents/rules/*.md`, `.codex/hooks.json`, `.codex/skills/*/SKILL.md`, `~/.codex/config.toml` |
10847
+ | Our generators | `scripts/generate_codex.py`, `scripts/generate_codex_rules.py`, `scripts/generate_codex_hooks.py` |
10848
+ | Tracked hook events | `PreToolUse`, `PostToolUse`, `SessionStart`, `UserPromptSubmit`, `Stop`, `PermissionRequest` (6 events supported upstream in `config.toml`) |
10849
+ | Tracked handler types | `command` (emitted by default); `prompt` and `agent` available upstream but authored by hand |
10850
+ | Other capabilities | `AGENTS.md`, `config.toml`, `mcp_servers`, sandbox policies, `.codex/skills/*/SKILL.md` (native discovery, not auto-emitted by ai-toolkit yet) |
10851
+ | Version probe | `codex --version` |
10852
+
10853
+ ### opencode
10854
+
10855
+ | Field | Value |
10856
+ |-------|-------|
10857
+ | ID | `opencode` |
10858
+ | Docs | https://opencode.ai/docs |
10859
+ | Release notes | https://github.com/sst/opencode/releases |
10860
+ | Config paths | `opencode.json`, `.opencode/agents/*.md`, `.opencode/commands/*.md`, `.opencode/plugins/*`, `.opencode/skills/*/SKILL.md` (v1.14+), `AGENTS.md`, `.claude/skills/*/SKILL.md` (fallback discovery) |
10861
+ | Our generators | `scripts/generate_opencode.py`, `scripts/generate_opencode_agents.py`, `scripts/generate_opencode_commands.py`, `scripts/generate_opencode_json.py`, `scripts/generate_opencode_plugin.py` |
10862
+ | Tracked plugin events | `session.created`, `session.compacted`, `session.deleted`, `message.updated`, `tool.execute.before`, `tool.execute.after`, `permission.asked`, `command.executed` |
10863
+ | Other capabilities | `opencode.json` config, primary + subagent modes, `@`-mention subagents, `/`-invocation commands, MCP (local + remote), plugin hooks in JS/TS, native `SKILL.md` discovery with Claude-compatible fallback, `permission.skill.*` matrix |
10864
+ | Version probe | `opencode --version` |
10865
+
10866
+ ---
10867
+
10868
+ ## How the Registry is Consumed
10869
+
10870
+ ```
10871
+ ┌─────────────────────────┐
10872
+ │ ecosystem_tools.json │ ← authoritative config (this doc mirrors it)
10873
+ └──────────┬──────────────┘
10874
+ │ read
10875
+
10876
+ ┌─────────────────────────┐ ┌─────────────────────────────────┐
10877
+ │ ecosystem_doctor.py │◄───►│ ecosystem-doctor-snapshot.json │ (last-seen state)
10878
+ └──────────┬──────────────┘ └─────────────────────────────────┘
10879
+ │ emits
10880
+
10881
+ Drift report (JSON or text) → human review → generator updates → commit
10882
+ ```
10883
+
10884
+ ---
10885
+
10886
+ ## Adding a New Tool
10887
+
10888
+ 1. Append an entry to `scripts/ecosystem_tools.json` with all required fields (schema: `schema_version: 1`).
10889
+ 2. Add a generator under `scripts/generate_<tool>_*.py` (or link to an existing one).
10890
+ 3. Update this registry doc with a new section matching the format above.
10891
+ 4. Baseline the snapshot: `python3 scripts/ecosystem_doctor.py --update --tool <id>`.
10892
+ 5. Run the doctor again to confirm clean state: `python3 scripts/ecosystem_doctor.py --tool <id> --format text`.
10893
+ 6. Update tool count at the top of this document.
10894
+
10895
+ ---
10896
+
10897
+ ## Removing a Tool
10898
+
10899
+ 1. Delete the tool's entry from `scripts/ecosystem_tools.json`.
10900
+ 2. Delete its section from this document.
10901
+ 3. Delete its snapshot entry from `benchmarks/ecosystem-doctor-snapshot.json` (or let the next `--update` prune it — currently not pruned automatically).
10902
+ 4. Decide whether to keep the generator (`scripts/generate_<tool>_*.py`) for backwards compatibility or delete it.
10903
+ 5. Remove references from `README.md`, `manifest.json` `description` field, and `kb/procedures/maintenance-sop.md` `Supported editors` line.
10904
+
10905
+ ---
10906
+
10907
+ ## Related
10908
+
10909
+ - [Ecosystem Sync SOP](../procedures/ecosystem-sync-sop.md) — how to use the doctor
10910
+ - [MCP Editor Compatibility](./mcp-editor-compatibility.md) — MCP-specific subset
10911
+ - `scripts/ecosystem_tools.json` — source of truth
10912
+ - `scripts/ecosystem_doctor.py` — drift detector
10913
+ - `benchmarks/ecosystem-doctor-snapshot.json` — last-seen state
10914
+
10915
+ ---
10916
+
9855
10917
  ## kb/reference/sync.md
9856
10918
 
9857
10919
  ---