@softspark/ai-toolkit 3.0.2 → 3.1.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.
- package/AGENTS.md +13 -0
- package/CHANGELOG.md +23 -0
- package/README.md +30 -23
- package/app/.claude-plugin/plugin.json +1 -1
- package/app/skills/cpp-rules/SKILL.md +275 -0
- package/app/skills/csharp-rules/SKILL.md +282 -0
- package/app/skills/dart-rules/SKILL.md +299 -0
- package/app/skills/golang-rules/SKILL.md +262 -0
- package/app/skills/java-rules/SKILL.md +273 -0
- package/app/skills/kotlin-rules/SKILL.md +271 -0
- package/app/skills/medplum-rules/SKILL.md +271 -0
- package/app/skills/php-rules/SKILL.md +292 -0
- package/app/skills/python-rules/SKILL.md +257 -0
- package/app/skills/ruby-rules/SKILL.md +286 -0
- package/app/skills/rust-rules/SKILL.md +276 -0
- package/app/skills/swift-rules/SKILL.md +293 -0
- package/app/skills/typescript-rules/SKILL.md +249 -0
- package/benchmarks/ecosystem-doctor-snapshot.json +14 -14
- package/kb/history/completed/deep-coverage-v3-20260423.md +3 -3
- package/kb/history/completed/ecosystem-deep-sweep-20260423.md +1 -1
- package/kb/procedures/release-preparation-sop.md +4 -4
- package/kb/procedures/release-verification-sop.md +11 -12
- package/kb/reference/architecture-overview.md +1 -1
- package/kb/reference/global-install-model.md +29 -6
- package/kb/reference/language-rules.md +54 -18
- package/kb/reference/mcp-editor-compatibility.md +4 -3
- package/kb/reference/mcp-templates.md +3 -2
- package/kb/reference/supported-tools-registry.md +10 -8
- package/llms-full.txt +133 -58
- package/manifest.json +3 -3
- package/package.json +10 -3
- package/scripts/codex_skill_adapter.py +19 -3
- package/scripts/ecosystem_tools.json +7 -7
- package/scripts/generate_cline_rules.py +17 -8
- package/scripts/generate_codex_skills.py +33 -96
- package/scripts/generate_language_rules_skills.py +232 -0
- package/scripts/generate_roo_rules.py +11 -3
- package/scripts/install.py +6 -1
- package/scripts/install_steps/ai_tools.py +154 -51
- package/scripts/install_steps/install_state.py +14 -2
- package/scripts/mcp_editors.py +7 -0
package/llms-full.txt
CHANGED
|
@@ -82,8 +82,11 @@
|
|
|
82
82
|
- **commit**: Create Conventional Commits with pre-commit validation
|
|
83
83
|
- **content-moderation-patterns**: Loaded when user builds content moderation, safety filters, or policy enforcement with Claude. Covers pre-filter vs LLM-classify, category design, confidence thresholds, and human-in-the-loop.
|
|
84
84
|
- **council**: 4-perspective decision evaluation for architecture choices. Use when user wants multi-angle analysis, needs to decide between alternatives, or mentions 'council', 'evaluate decision', 'pros cons'.
|
|
85
|
+
- **cpp-rules**: C++ coding rules from ai-toolkit: coding-style, frameworks, patterns, security, testing. Triggers: .cpp, .cc, .cxx, .hpp, .h, CMakeLists.txt, Makefile, GoogleTest, clang-tidy. Load when writing, reviewing, or editing C++ code.
|
|
85
86
|
- **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.
|
|
87
|
+
- **csharp-rules**: C#/.NET coding rules from ai-toolkit: coding-style, frameworks, patterns, security, testing. Triggers: .cs, .csproj, .sln, ASP.NET, ASP.NET Core, EF Core, LINQ, NUnit, xUnit, dotnet. Load when writing, reviewing, or editing C#/.NET code.
|
|
86
88
|
- **cve-scan**: Scan project dependencies for known CVEs using native audit tools (npm, pip, composer, cargo, go, bundler, dart)
|
|
89
|
+
- **dart-rules**: Dart/Flutter coding rules from ai-toolkit: coding-style, frameworks, patterns, security, testing. Triggers: .dart, pubspec.yaml, Flutter, Riverpod, Bloc, widget, StatelessWidget, StatefulWidget. Load when writing, reviewing, or editing Dart/Flutter code.
|
|
87
90
|
- **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.
|
|
88
91
|
- **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.
|
|
89
92
|
- **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.
|
|
@@ -101,6 +104,7 @@
|
|
|
101
104
|
- **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.
|
|
102
105
|
- **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.
|
|
103
106
|
- **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.
|
|
107
|
+
- **golang-rules**: Go coding rules from ai-toolkit: coding-style, frameworks, patterns, security, testing. Triggers: .go, go.mod, go.sum, Gin, Echo, Gorilla, testing, gofmt. Load when writing, reviewing, or editing Go code.
|
|
104
108
|
- **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'.
|
|
105
109
|
- **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.
|
|
106
110
|
- **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
|
|
@@ -110,11 +114,14 @@
|
|
|
110
114
|
- **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.
|
|
111
115
|
- **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.
|
|
112
116
|
- **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.
|
|
117
|
+
- **java-rules**: Java coding rules from ai-toolkit: coding-style, frameworks, patterns, security, testing. Triggers: .java, pom.xml, build.gradle, Spring, Spring Boot, JPA, Hibernate, JUnit, Maven, Gradle. Load when writing, reviewing, or editing Java code.
|
|
113
118
|
- **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.
|
|
114
119
|
- **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.
|
|
120
|
+
- **kotlin-rules**: Kotlin coding rules from ai-toolkit: coding-style, frameworks, patterns, security, testing. Triggers: .kt, .kts, build.gradle.kts, Ktor, Jetpack Compose, coroutines, kotlinx. Load when writing, reviewing, or editing Kotlin code.
|
|
115
121
|
- **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.
|
|
116
122
|
- **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.
|
|
117
123
|
- **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.
|
|
124
|
+
- **medplum-rules**: Medplum (FHIR healthcare) coding rules from ai-toolkit: coding-style, frameworks, patterns, security, testing. Triggers: medplum.config.mts, medplum.config.ts, FHIR, Medplum, Bot, Subscription, Questionnaire. Load when writing, reviewing, or editing Medplum (FHIR healthcare) code.
|
|
118
125
|
- **mem-search**: Search past coding sessions using natural language. Finds relevant observations, decisions, and context from previous work.
|
|
119
126
|
- **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.
|
|
120
127
|
- **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.
|
|
@@ -126,6 +133,7 @@
|
|
|
126
133
|
- **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.
|
|
127
134
|
- **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.
|
|
128
135
|
- **persona**: Switch engineering persona at runtime: backend-lead, frontend-lead, devops-eng, junior-dev
|
|
136
|
+
- **php-rules**: PHP coding rules from ai-toolkit: coding-style, frameworks, patterns, security, testing. Triggers: .php, composer.json, Laravel, Symfony, PHPUnit, PSR-12, Composer. Load when writing, reviewing, or editing PHP code.
|
|
129
137
|
- **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.
|
|
130
138
|
- **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.
|
|
131
139
|
- **plugin-creator**: Creates experimental opt-in plugin packs with manifests, conventions, and optional module scaffolding for Claude and Codex runtimes
|
|
@@ -134,6 +142,7 @@
|
|
|
134
142
|
- **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.
|
|
135
143
|
- **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
144
|
- **prompt-caching-patterns**: Loaded when user builds with Anthropic API and needs to cut cost or latency via prompt caching. Covers TTL, cache breakpoints, stacking, invalidation, and measuring hit rate.
|
|
145
|
+
- **python-rules**: Python coding rules from ai-toolkit: coding-style, frameworks, patterns, security, testing. Triggers: .py, .pyi, pyproject.toml, requirements.txt, Pipfile, FastAPI, Django, Flask, pytest, SQLAlchemy, ruff, mypy. Load when writing, reviewing, or editing Python code.
|
|
137
146
|
- **qa-session**: Interactive QA session where user reports bugs conversationally and agent files GitHub issues with domain language. Explores codebase in background for context. Use when user wants to report bugs, do QA, file issues conversationally, or mentions QA session.
|
|
138
147
|
- **rag-patterns**: RAG architecture: embeddings, chunking strategies, hybrid search (BM25 + vector), reranking, CRAG/self-correcting, multi-hop reasoning, evaluation metrics. Triggers: RAG, embedding, vector search, pgvector, Qdrant, Pinecone, Weaviate, chunking, reranker, retrieval, hybrid search, semantic search, knowledge base, cosine similarity. Load when building or tuning RAG systems.
|
|
139
148
|
- **refactor**: Refactor code for quality and maintainability
|
|
@@ -143,7 +152,9 @@
|
|
|
143
152
|
- **review**: Review code for quality, security, and correctness
|
|
144
153
|
- **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.
|
|
145
154
|
- **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.
|
|
155
|
+
- **ruby-rules**: Ruby coding rules from ai-toolkit: coding-style, frameworks, patterns, security, testing. Triggers: .rb, Gemfile, .gemspec, Rails, ActiveRecord, Sidekiq, RSpec, Sorbet, rubocop. Load when writing, reviewing, or editing Ruby code.
|
|
146
156
|
- **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.
|
|
157
|
+
- **rust-rules**: Rust coding rules from ai-toolkit: coding-style, frameworks, patterns, security, testing. Triggers: .rs, Cargo.toml, Cargo.lock, Tokio, Axum, Serde, clippy, cargo test. Load when writing, reviewing, or editing Rust code.
|
|
147
158
|
- **search**: Search the knowledge base with semantic and hybrid modes
|
|
148
159
|
- **security-patterns**: Application security: OWASP Top 10, authN/authZ, input validation, secrets management, TLS, CSRF/XSS/SQLi, session handling, JWT, rate limiting, CSP. Triggers: security, OWASP, auth, JWT, CSRF, XSS, SQL injection, secrets, encryption, TLS, authentication, authorization, CSP, CORS, password hashing. Load when touching auth code, handling user input, or doing security review.
|
|
149
160
|
- **seo-validate**: Validate code against SEO best practices: W3C semantics, meta/OG tags, Schema.org, hreflang, Core Web Vitals (LCP/INP/CLS), resource hints, GEO, SPA/SSG/CSR crawlability, technical SEO, accessibility-for-SEO. Supports React/Next/Nuxt/Astro/Gatsby/SvelteKit/Remix/Angular/Vue/static HTML.
|
|
@@ -152,12 +163,14 @@
|
|
|
152
163
|
- **subagent-development**: Execute implementation plans using fresh subagents per task with two-stage review: spec compliance first, then code quality. Use when executing plans with independent tasks.
|
|
153
164
|
- **swarm**: Execute tasks via Map-Reduce, Consensus, or Relay swarms
|
|
154
165
|
- **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.
|
|
166
|
+
- **swift-rules**: Swift coding rules from ai-toolkit: coding-style, frameworks, patterns, security, testing. Triggers: .swift, Package.swift, .xcodeproj, SwiftUI, Combine, async/await, XCTest. Load when writing, reviewing, or editing Swift code.
|
|
155
167
|
- **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.
|
|
156
168
|
- **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.
|
|
157
169
|
- **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.
|
|
158
170
|
- **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.
|
|
159
171
|
- **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.
|
|
160
172
|
- **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.
|
|
173
|
+
- **typescript-rules**: TypeScript/JavaScript coding rules from ai-toolkit: coding-style, frameworks, patterns, security, testing. Triggers: .ts, .tsx, .js, .jsx, package.json, tsconfig.json, React, Next.js, Vue, Vite, Vitest, Jest, ESLint. Load when writing, reviewing, or editing TypeScript/JavaScript code.
|
|
161
174
|
- **ubiquitous-language**: Extract a DDD-style ubiquitous language glossary from the conversation, flagging ambiguities and proposing canonical terms. Saves to UBIQUITOUS_LANGUAGE.md. Use when user wants to define domain terms, build a glossary, harden terminology, or mentions DDD or domain model.
|
|
162
175
|
- **verification-before-completion**: Loaded when agent is about to claim work is complete, fixed, or passing — requires running verification commands and confirming output before making any success claims. Evidence before assertions, always.
|
|
163
176
|
- **workflow**: Start and manage autonomous agent workflows
|
|
@@ -311,7 +324,7 @@ Definition of "100% coverage" chosen: **each editor works at 100% of its native
|
|
|
311
324
|
|
|
312
325
|
| # | Decision | Rule |
|
|
313
326
|
|---|----------|------|
|
|
314
|
-
| 1 | Skill propagation | `.claude/skills/` canonical. Cursor/Windsurf/opencode → compat-read (nothing). Augment/Gemini/Antigravity → **pointer skill** (1 file per editor). Codex →
|
|
327
|
+
| 1 | Skill propagation | `.claude/skills/` canonical. Cursor/Windsurf/opencode → compat-read (nothing). Augment/Gemini/Antigravity → **pointer skill** (1 file per editor). Codex → native `.agents/skills/` mirror |
|
|
315
328
|
| 2 | Global writes | Only `~/.claude/`. Cursor/Windsurf/opencode get global coverage via compat-read. Augment/Gemini/Roo require `--local` |
|
|
316
329
|
| 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 |
|
|
317
330
|
| 4 | Default behavior | `--editors <name>` alone uses `standard`. Users who want the full stack pass `--profile full` |
|
|
@@ -355,13 +368,13 @@ Definition of "100% coverage" chosen: **each editor works at 100% of its native
|
|
|
355
368
|
**Owned files**
|
|
356
369
|
- New: `scripts/generate_gemini_skills.py` (`.gemini/skills/ai-toolkit-skill-catalogue/SKILL.md` — pointer)
|
|
357
370
|
- New: `scripts/generate_augment_skills.py` (`.augment/skills/ai-toolkit-skill-catalogue/SKILL.md` — pointer)
|
|
358
|
-
- New: `scripts/generate_codex_skills.py` (
|
|
371
|
+
- New: `scripts/generate_codex_skills.py` (Codex-native mirror to `.agents/skills/<name>/SKILL.md`)
|
|
359
372
|
- New: `tests/test_skills_native.bats` (≥15 tests)
|
|
360
373
|
|
|
361
374
|
**Must-haves**
|
|
362
375
|
- Pointer pattern same as Antigravity: 1 file per editor referencing `~/.claude/skills/<name>` and listing the catalogue.
|
|
363
376
|
- Codex mirror respects `user-invocable: false` (knowledge skills stay, task skills stay — Codex reads them all).
|
|
364
|
-
-
|
|
377
|
+
- Codex skills use the upstream `.agents/skills` discovery path.
|
|
365
378
|
|
|
366
379
|
### Bucket 4 — Install wiring + profile full + docs (devops-implementer)
|
|
367
380
|
|
|
@@ -702,7 +715,7 @@ Orchestrator's final output:
|
|
|
702
715
|
|
|
703
716
|
### Open items flagged for future passes
|
|
704
717
|
|
|
705
|
-
1. **Native `.
|
|
718
|
+
1. **Native `.agents/skills/*/SKILL.md` emission** (class B) — writes the Codex skill catalog to the upstream discovery path.
|
|
706
719
|
2. **`.opencode/skills/` duplication** — deferred indefinitely; `.claude/skills/` fallback already works.
|
|
707
720
|
3. **New generators needed**: `generate_gemini_hooks.py`, `generate_augment_agents.py`, `generate_augment_commands.py`, `generate_augment_hooks.py`.
|
|
708
721
|
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.
|
|
@@ -4243,9 +4256,9 @@ title: "SOP: Release Preparation"
|
|
|
4243
4256
|
category: procedures
|
|
4244
4257
|
service: ai-toolkit
|
|
4245
4258
|
tags: [sop, release, version, publish, changelog, semver, provenance, sarif, ecosystem]
|
|
4246
|
-
version: "1.10.
|
|
4259
|
+
version: "1.10.1"
|
|
4247
4260
|
created: "2026-04-10"
|
|
4248
|
-
last_updated: "2026-04-
|
|
4261
|
+
last_updated: "2026-04-28"
|
|
4249
4262
|
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, the ecosystem-sync gate added in v1.9.0, and the registry-vs-generators drift gate added in v1.10.0."
|
|
4250
4263
|
---
|
|
4251
4264
|
|
|
@@ -4519,7 +4532,7 @@ python3 scripts/audit_skills.py --sarif > audit.sarif # MANDATORY — GHAS
|
|
|
4519
4532
|
python3 scripts/audit_skills.py --permissions # review Bash/Write/Edit footprint
|
|
4520
4533
|
|
|
4521
4534
|
# Registry / generator drift (added in 1.10.0). Meta-generators excluded.
|
|
4522
|
-
META="generate_agents_md.py|generate_llms_txt.py"
|
|
4535
|
+
META="generate_agents_md.py|generate_llms_txt.py|generate_language_rules_skills.py"
|
|
4523
4536
|
diff \
|
|
4524
4537
|
<(grep -oE 'scripts/generate_[a-z_]+\.py' kb/reference/supported-tools-registry.md | sort -u) \
|
|
4525
4538
|
<(ls scripts/generate_*.py | grep -vE "$META" | sort -u) \
|
|
@@ -4544,7 +4557,7 @@ echo "ok: $(grep -c '^ok ' /tmp/npm-test.log) | not ok: $(grep -c '^not ok' /tmp
|
|
|
4544
4557
|
|
|
4545
4558
|
**One-liner:**
|
|
4546
4559
|
```bash
|
|
4547
|
-
python3 scripts/validate.py --strict && python3 scripts/audit_skills.py --ci && python3 scripts/audit_skills.py --sarif > audit.sarif && diff <(grep -oE 'scripts/generate_[a-z_]+\.py' kb/reference/supported-tools-registry.md | sort -u) <(ls scripts/generate_*.py | grep -vE 'generate_agents_md\.py|generate_llms_txt\.py' | sort -u) && npm test
|
|
4560
|
+
python3 scripts/validate.py --strict && python3 scripts/audit_skills.py --ci && python3 scripts/audit_skills.py --sarif > audit.sarif && diff <(grep -oE 'scripts/generate_[a-z_]+\.py' kb/reference/supported-tools-registry.md | sort -u) <(ls scripts/generate_*.py | grep -vE 'generate_agents_md\.py|generate_llms_txt\.py|generate_language_rules_skills\.py' | sort -u) && npm test
|
|
4548
4561
|
```
|
|
4549
4562
|
|
|
4550
4563
|
**If tests fail:** Fix the issue, do NOT skip. Common failures:
|
|
@@ -4688,9 +4701,9 @@ title: "SOP: Release Verification"
|
|
|
4688
4701
|
category: procedures
|
|
4689
4702
|
service: ai-toolkit
|
|
4690
4703
|
tags: [sop, verification, release, smoke-test, install, update, qa, provenance, sarif]
|
|
4691
|
-
version: "1.4.
|
|
4704
|
+
version: "1.4.1"
|
|
4692
4705
|
created: "2026-04-08"
|
|
4693
|
-
last_updated: "2026-04-
|
|
4706
|
+
last_updated: "2026-04-28"
|
|
4694
4707
|
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 added the single-run npm test discipline; v1.4.0 adds v3.0.0 deep-coverage checks (--profile full, --codex-skills, breaking-change surfaces, idempotence, registry drift, live-JSON parse) and refreshes stale thresholds."
|
|
4695
4708
|
---
|
|
4696
4709
|
|
|
@@ -4739,7 +4752,7 @@ python3 scripts/audit_skills.py --permissions | head -30 # 12. Broad-access s
|
|
|
4739
4752
|
npm view @softspark/ai-toolkit@X.Y.Z --json | python3 -c "import json,sys; d=json.load(sys.stdin); assert d['dist']['attestations']['provenance']['predicateType']=='https://slsa.dev/provenance/v1'; print('PROVENANCE OK')" # 13. Provenance attested on npm?
|
|
4740
4753
|
|
|
4741
4754
|
# Deep-coverage verification (Phase 9, v3.0.0+)
|
|
4742
|
-
META="generate_agents_md.py|generate_llms_txt.py"
|
|
4755
|
+
META="generate_agents_md.py|generate_llms_txt.py|generate_language_rules_skills.py"
|
|
4743
4756
|
diff <(grep -oE 'scripts/generate_[a-z_]+\.py' kb/reference/supported-tools-registry.md | sort -u) <(ls scripts/generate_*.py | grep -vE "$META" | sort -u) && echo "OK: registry matches" # 14. Registry <-> generators drift?
|
|
4744
4757
|
```
|
|
4745
4758
|
|
|
@@ -4809,7 +4822,7 @@ ai-toolkit status
|
|
|
4809
4822
|
- [ ] Agents >= 44
|
|
4810
4823
|
- [ ] Skills >= 99
|
|
4811
4824
|
- [ ] Hooks merged into settings.json
|
|
4812
|
-
- [ ] "Other AI Tools" section lists
|
|
4825
|
+
- [ ] "Other AI Tools" section lists documented global targets only: aider, augment, cline, codex, gemini, opencode, roo, windsurf (Cursor, Copilot, Antigravity via --local for rules)
|
|
4813
4826
|
|
|
4814
4827
|
**Verify `status`:**
|
|
4815
4828
|
- [ ] Version matches expected
|
|
@@ -5023,7 +5036,7 @@ These verify the native-surface generators shipped in v3.0.0 actually emit the r
|
|
|
5023
5036
|
D=/tmp/aitk-profile-full-${RANDOM} && mkdir -p "$D" && cd "$D" && git init -q
|
|
5024
5037
|
ai-toolkit install --local --editors cursor,windsurf,gemini,augment,codex \
|
|
5025
5038
|
--profile full --codex-skills --dry-run 2>&1 \
|
|
5026
|
-
| grep -E "\\.cursor/(hooks\\.json|agents)|\\.windsurf/hooks\\.json|\\.gemini/(settings\\.json|commands)|\\.augment/(agents|commands)|\\.
|
|
5039
|
+
| grep -E "\\.cursor/(hooks\\.json|agents)|\\.windsurf/hooks\\.json|\\.gemini/(settings\\.json|commands)|\\.augment/(agents|commands)|\\.agents/skills"
|
|
5027
5040
|
```
|
|
5028
5041
|
|
|
5029
5042
|
**Verify** — at least the following lines appear:
|
|
@@ -5031,22 +5044,21 @@ ai-toolkit install --local --editors cursor,windsurf,gemini,augment,codex \
|
|
|
5031
5044
|
- [ ] `.windsurf/hooks.json`
|
|
5032
5045
|
- [ ] `.gemini/settings.json` hooks AND `.gemini/commands/`
|
|
5033
5046
|
- [ ] `.augment/agents/` + `.augment/commands/` + `$HOME/.augment/settings.json`
|
|
5034
|
-
- [ ] `.
|
|
5047
|
+
- [ ] `.agents/skills/` (Codex native discovery path; refreshed by `--codex-skills`)
|
|
5035
5048
|
|
|
5036
5049
|
### 9.2 `--codex-skills` is orthogonal to `--profile`
|
|
5037
5050
|
|
|
5038
5051
|
```bash
|
|
5039
5052
|
D=/tmp/aitk-codex-skills-${RANDOM} && mkdir -p "$D" && cd "$D" && git init -q
|
|
5040
5053
|
ai-toolkit install --local --editors codex --profile standard --codex-skills --dry-run 2>&1 \
|
|
5041
|
-
| grep -q "Would
|
|
5054
|
+
| grep -q "Would refresh: .agents/skills" && echo "OK: --codex-skills refreshes .agents/skills without --profile full"
|
|
5042
5055
|
ai-toolkit install --local --editors codex --profile full --dry-run 2>&1 \
|
|
5043
|
-
| grep -q "Would generate: .
|
|
5044
|
-
|| echo "OK: --profile full alone does not auto-emit .codex/skills (correct — opt-in only)"
|
|
5056
|
+
| grep -q "Would generate: .agents/skills" && echo "OK: Codex skills use .agents/skills at profile full"
|
|
5045
5057
|
```
|
|
5046
5058
|
|
|
5047
5059
|
**Verify:**
|
|
5048
|
-
- [ ] `--codex-skills`
|
|
5049
|
-
- [ ] `--profile full`
|
|
5060
|
+
- [ ] `--codex-skills` refreshes `.agents/skills/` at any profile
|
|
5061
|
+
- [ ] `--profile full` never emits `.codex/skills/`; Codex skills use `.agents/skills/`
|
|
5050
5062
|
|
|
5051
5063
|
### 9.3 Breaking-change surfaces land on `--profile standard`
|
|
5052
5064
|
|
|
@@ -5096,7 +5108,7 @@ done
|
|
|
5096
5108
|
`kb/reference/supported-tools-registry.md` should enumerate every per-editor `scripts/generate_*.py` we ship. Meta-generators (`generate_agents_md.py`, `generate_llms_txt.py`) are excluded — they produce docs/artifacts, not editor configs.
|
|
5097
5109
|
|
|
5098
5110
|
```bash
|
|
5099
|
-
META="generate_agents_md.py|generate_llms_txt.py"
|
|
5111
|
+
META="generate_agents_md.py|generate_llms_txt.py|generate_language_rules_skills.py"
|
|
5100
5112
|
REG=$(grep -oE 'scripts/generate_[a-z_]+\.py' kb/reference/supported-tools-registry.md | sort -u)
|
|
5101
5113
|
FS=$(ls scripts/generate_*.py | grep -vE "$META" | sort -u)
|
|
5102
5114
|
diff <(echo "$REG") <(echo "$FS") && echo "OK: registry matches filesystem" || echo "DRIFT: update supported-tools-registry.md"
|
|
@@ -5711,7 +5723,7 @@ Three tiers determine how to approach a task:
|
|
|
5711
5723
|
|------|-------|-----------|-------|
|
|
5712
5724
|
| Task | `disable-model-invocation: true` | User via `/skill` only | 32 |
|
|
5713
5725
|
| Hybrid | (neither) | User via `/skill` + agent knowledge | 31 |
|
|
5714
|
-
| Knowledge | `user-invocable: false` | Claude auto-loads |
|
|
5726
|
+
| Knowledge | `user-invocable: false` | Claude auto-loads | 49 |
|
|
5715
5727
|
|
|
5716
5728
|
## Multi-Agent Execution
|
|
5717
5729
|
|
|
@@ -7831,9 +7843,9 @@ title: "Global Install Model"
|
|
|
7831
7843
|
category: reference
|
|
7832
7844
|
service: ai-toolkit
|
|
7833
7845
|
tags: [install, global, claude, codex, plugins, local-setup]
|
|
7834
|
-
version: "3.0.
|
|
7846
|
+
version: "3.0.1"
|
|
7835
7847
|
created: "2026-03-26"
|
|
7836
|
-
last_updated: "2026-04-
|
|
7848
|
+
last_updated: "2026-04-28"
|
|
7837
7849
|
description: "Reference description of the global install target, project-local editor setup, global Codex plugin layering, and command responsibilities in ai-toolkit."
|
|
7838
7850
|
---
|
|
7839
7851
|
|
|
@@ -7845,9 +7857,12 @@ description: "Reference description of the global install target, project-local
|
|
|
7845
7857
|
|
|
7846
7858
|
That means one machine-level install provides agents, skills, hooks, and rules to every project without committing toolkit boilerplate into each repository.
|
|
7847
7859
|
|
|
7848
|
-
|
|
7849
|
-
|
|
7850
|
-
|
|
7860
|
+
Other editor targets are opt-in and only use documented file surfaces. Cursor
|
|
7861
|
+
rules stay project-local because Cursor's global user rules are managed through
|
|
7862
|
+
the settings UI, not a stable merge-safe file. Codex remains project-local for
|
|
7863
|
+
the core toolkit install, but experimental plugin packs can layer a global
|
|
7864
|
+
Codex target in `HOME` when explicitly installed with
|
|
7865
|
+
`ai-toolkit plugin install --editor codex`.
|
|
7851
7866
|
|
|
7852
7867
|
## Command Responsibilities
|
|
7853
7868
|
|
|
@@ -7878,7 +7893,25 @@ The `--profile` flag controls how much of each editor's native surface is activa
|
|
|
7878
7893
|
| `strict` | Everything in `standard` plus git-hook wiring for commit-time safety checks. | Solo dev or tight team with zero tolerance for drift. |
|
|
7879
7894
|
| `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. |
|
|
7880
7895
|
|
|
7881
|
-
`--codex-skills` is an independent opt-in flag (not part of profile) that materializes the full
|
|
7896
|
+
`--codex-skills` is an independent opt-in flag (not part of profile) that materializes the full skill catalog under `.agents/skills/` for Codex. Other editors stay on compat-read or the per-editor pointer skill.
|
|
7897
|
+
|
|
7898
|
+
## Global Editor Targets
|
|
7899
|
+
|
|
7900
|
+
`ai-toolkit install --editors <name>` can write global files only for editors
|
|
7901
|
+
with documented, file-based config surfaces:
|
|
7902
|
+
|
|
7903
|
+
- `windsurf`: `~/.codeium/windsurf/memories/global_rules.md`
|
|
7904
|
+
- `gemini`: `~/.gemini/GEMINI.md`
|
|
7905
|
+
- `augment`: `~/.augment/rules/ai-toolkit.md`
|
|
7906
|
+
- `cline`: `~/Documents/Cline/Rules/ai-toolkit-*.md`
|
|
7907
|
+
- `roo`: `~/.roo/rules/ai-toolkit-*.md`
|
|
7908
|
+
- `aider`: `~/.aider.conf.yml` plus `~/.aider-ai-toolkit-CONVENTIONS.md` when the YAML file does not already exist
|
|
7909
|
+
- `codex`: `~/AGENTS.md`, `~/.agents/rules/*`, `~/.agents/skills/*`, `~/.codex/hooks.json`
|
|
7910
|
+
- `opencode`: `~/.config/opencode/*`
|
|
7911
|
+
|
|
7912
|
+
Cursor, GitHub Copilot, and Google Antigravity rule installs stay project-local.
|
|
7913
|
+
Their global MCP support, where available, is handled by `ai-toolkit mcp
|
|
7914
|
+
install`, not by the rule installer.
|
|
7882
7915
|
|
|
7883
7916
|
## Why global install is the default
|
|
7884
7917
|
|
|
@@ -7894,6 +7927,7 @@ These files still stay local to a repository as part of the core install model:
|
|
|
7894
7927
|
- `.claude/settings.local.json`
|
|
7895
7928
|
- `.mcp.json`
|
|
7896
7929
|
- `.cursor/mcp.json`
|
|
7930
|
+
- `.roo/mcp.json`
|
|
7897
7931
|
- `.github/mcp.json`
|
|
7898
7932
|
- `.claude/constitution.md`
|
|
7899
7933
|
- project `AGENTS.md`
|
|
@@ -7947,6 +7981,7 @@ If `.mcp.json` exists in the current project, `ai-toolkit install --local` mirro
|
|
|
7947
7981
|
- `.claude/settings.local.json`
|
|
7948
7982
|
- `.cursor/mcp.json` when `--editors cursor` is selected
|
|
7949
7983
|
- `.github/mcp.json` when `--editors copilot` is selected
|
|
7984
|
+
- `.roo/mcp.json` when `--editors roo` is selected
|
|
7950
7985
|
|
|
7951
7986
|
Global-only editor MCP configs are not written during `install --local`. Use `ai-toolkit mcp install --editor <name...>` for those targets.
|
|
7952
7987
|
|
|
@@ -8723,19 +8758,22 @@ title: "Language Rules System"
|
|
|
8723
8758
|
category: reference
|
|
8724
8759
|
service: ai-toolkit
|
|
8725
8760
|
tags: [rules, languages, coding-style, testing, patterns, security]
|
|
8726
|
-
version: "
|
|
8761
|
+
version: "2.0.0"
|
|
8727
8762
|
created: "2026-04-07"
|
|
8728
|
-
last_updated: "2026-04-
|
|
8729
|
-
description: "Reference for the language-specific rules system:
|
|
8763
|
+
last_updated: "2026-04-28"
|
|
8764
|
+
description: "Reference for the language-specific rules system: 13 per-language rule sets shipped as knowledge skills, plus a common set inlined into CLAUDE.md."
|
|
8730
8765
|
---
|
|
8731
8766
|
|
|
8732
8767
|
# Language Rules System
|
|
8733
8768
|
|
|
8734
8769
|
## Overview
|
|
8735
8770
|
|
|
8736
|
-
ai-toolkit ships
|
|
8771
|
+
ai-toolkit ships rule content for 13 languages/platforms plus a language-agnostic common set. Source files live under `app/rules/` and are split into two delivery channels by `ai-toolkit install --local`:
|
|
8772
|
+
|
|
8773
|
+
- **Common rules** (`app/rules/common/*.md`): full content is inlined into the project's `.claude/CLAUDE.md` under a single `<!-- TOOLKIT:language-rules START -->` marker. They cover coding-style, git-workflow, performance, security, and testing — concerns that apply regardless of language, so they stay always visible.
|
|
8774
|
+
- **Per-language rules** (`app/rules/<lang>/*.md`): emitted at build time as `<lang>-rules` knowledge skills under `app/skills/`. Each skill is `user-invocable: false`, so Claude loads it via the Agent Skills progressive-disclosure mechanism only when its description triggers match (file extensions, framework names, or matching keywords in the prompt).
|
|
8737
8775
|
|
|
8738
|
-
|
|
8776
|
+
The skills are generated from the rule files via `python3 scripts/generate_language_rules_skills.py`, which is idempotent and rerun-safe. Other editors (Cursor, Windsurf, Cline, Roo, Augment, Codex, Copilot, Antigravity, Gemini, opencode) still receive the full per-language rule content via their own generators in `scripts/dir_rules_shared.py::build_language_rules()` — Claude is the only target where the per-language content is now skill-delivered rather than inlined.
|
|
8739
8777
|
|
|
8740
8778
|
## File Structure
|
|
8741
8779
|
|
|
@@ -8772,7 +8810,7 @@ app/rules/
|
|
|
8772
8810
|
└── medplum/
|
|
8773
8811
|
```
|
|
8774
8812
|
|
|
8775
|
-
**Total:
|
|
8813
|
+
**Total: 13 per-language directories × 5 files + 1 common directory × 5 files + 3 standalone files** (see README.md for canonical count). Per-language directories ship as `<lang>-rules` knowledge skills; the common directory is inlined into CLAUDE.md.
|
|
8776
8814
|
|
|
8777
8815
|
## Supported Languages
|
|
8778
8816
|
|
|
@@ -8857,15 +8895,45 @@ ai-toolkit install --local --modules core,agents
|
|
|
8857
8895
|
|
|
8858
8896
|
The `--lang` flag accepts comma-separated language names and converts them to `rules-<lang>` modules. Common aliases are supported: `go` → `golang`, `c++` → `cpp`, `c#`/`cs` → `csharp`. Using `--lang` implies `--local` and disables auto-detection.
|
|
8859
8897
|
|
|
8860
|
-
|
|
8898
|
+
Common rules are injected into the project `CLAUDE.md` between a single named marker (the per-language markers from v1.x are no longer used):
|
|
8899
|
+
|
|
8900
|
+
```
|
|
8901
|
+
<!-- TOOLKIT:language-rules START -->
|
|
8902
|
+
# Language Rules
|
|
8903
|
+
|
|
8904
|
+
Common (language-agnostic) rules apply to every change in this project.
|
|
8905
|
+
Language-specific rules live in `<lang>-rules` knowledge skills (e.g.
|
|
8906
|
+
`python-rules`, `typescript-rules`) and load automatically when their
|
|
8907
|
+
triggers match.
|
|
8861
8908
|
|
|
8909
|
+
Detected languages: `python-rules`, `typescript-rules`.
|
|
8910
|
+
|
|
8911
|
+
---
|
|
8912
|
+
|
|
8913
|
+
... full content of app/rules/common/*.md inlined here ...
|
|
8914
|
+
<!-- TOOLKIT:language-rules END -->
|
|
8862
8915
|
```
|
|
8863
|
-
|
|
8864
|
-
|
|
8865
|
-
|
|
8916
|
+
|
|
8917
|
+
Re-running `install --local` is idempotent — the existing block is replaced, not duplicated. Per-language rules are not injected into `CLAUDE.md` for Claude — they are loaded contextually via their respective `<lang>-rules` knowledge skills.
|
|
8918
|
+
|
|
8919
|
+
### Generating language-rules skills
|
|
8920
|
+
|
|
8921
|
+
The `<lang>-rules` skills under `app/skills/` are produced by:
|
|
8922
|
+
|
|
8923
|
+
```bash
|
|
8924
|
+
python3 scripts/generate_language_rules_skills.py # write all
|
|
8925
|
+
python3 scripts/generate_language_rules_skills.py --check # dry-run, exit 1 on diff
|
|
8926
|
+
python3 scripts/generate_language_rules_skills.py --langs python,rust # subset
|
|
8866
8927
|
```
|
|
8867
8928
|
|
|
8868
|
-
|
|
8929
|
+
The generator reads `app/rules/<lang>/*.md`, strips YAML frontmatter, concatenates the categories, and writes `app/skills/<lang>-rules/SKILL.md` with frontmatter:
|
|
8930
|
+
|
|
8931
|
+
- `name: <lang>-rules`
|
|
8932
|
+
- `description: ...` — language label, rule categories, and concrete trigger keywords (file extensions, framework names) so the skill activates reliably when Claude is working on that language.
|
|
8933
|
+
- `user-invocable: false` — knowledge skill, no slash command.
|
|
8934
|
+
- `allowed-tools: Read` — the skill body is reference content, not an action.
|
|
8935
|
+
|
|
8936
|
+
Rerunning the generator is idempotent. Editing rule files under `app/rules/<lang>/` and rerunning the generator is the canonical way to update a language skill.
|
|
8869
8937
|
|
|
8870
8938
|
## Manifest Module Names
|
|
8871
8939
|
|
|
@@ -8890,13 +8958,16 @@ Language rules are tracked as modules in `manifest.json`:
|
|
|
8890
8958
|
|
|
8891
8959
|
## Rules vs Skills
|
|
8892
8960
|
|
|
8893
|
-
| |
|
|
8894
|
-
|
|
8895
|
-
|
|
|
8896
|
-
| Delivery |
|
|
8897
|
-
| Visibility | Always
|
|
8898
|
-
| Scope | Per-language
|
|
8899
|
-
| Install |
|
|
8961
|
+
| | Common rules | Per-language rules | Other skills |
|
|
8962
|
+
|---|---|---|---|
|
|
8963
|
+
| Source | `app/rules/common/` | `app/rules/<lang>/` | `app/skills/<name>/SKILL.md` |
|
|
8964
|
+
| Delivery to Claude | Inlined into project `CLAUDE.md` (`--local`) | Generated as `<lang>-rules` knowledge skills, loaded contextually | Loaded contextually by description match |
|
|
8965
|
+
| Visibility | Always in context | Loaded when triggers match (file extensions, framework names) | Loaded when triggers match |
|
|
8966
|
+
| Scope | Language-agnostic standards (security, git, testing, perf, style) | Per-language coding-style, frameworks, patterns, security, testing | Domain skills (testing, debugging, RAG, etc.) |
|
|
8967
|
+
| Install | `ai-toolkit install --local` | Global install (skills directory is symlinked) | Global install |
|
|
8968
|
+
| Other editors | Inlined into editor-specific rule files | Inlined into editor-specific rule files (still full content, not skills) | N/A |
|
|
8969
|
+
|
|
8970
|
+
Per-language content delivered as a knowledge skill is the same Markdown that other editors receive inlined. The split exists only for Claude, where the Agent Skills progressive-disclosure mechanism keeps the system prompt small.
|
|
8900
8971
|
|
|
8901
8972
|
## Related Documentation
|
|
8902
8973
|
|
|
@@ -9083,9 +9154,9 @@ title: "AI Toolkit - MCP Editor Compatibility"
|
|
|
9083
9154
|
category: reference
|
|
9084
9155
|
service: ai-toolkit
|
|
9085
9156
|
tags: [mcp, editors, compatibility, codex, cursor]
|
|
9086
|
-
version: "1.
|
|
9157
|
+
version: "1.1.0"
|
|
9087
9158
|
created: "2026-04-12"
|
|
9088
|
-
last_updated: "2026-04-
|
|
9159
|
+
last_updated: "2026-04-28"
|
|
9089
9160
|
description: "Official MCP support matrix and native config targets for editors supported by ai-toolkit."
|
|
9090
9161
|
---
|
|
9091
9162
|
|
|
@@ -9103,6 +9174,7 @@ ai-toolkit keeps `.mcp.json` as the project-level canonical template format and
|
|
|
9103
9174
|
| Cursor | project + global | `.cursor/mcp.json`, `~/.cursor/mcp.json` | Mirrors `mcpServers` directly |
|
|
9104
9175
|
| GitHub Copilot | project + global | `.github/mcp.json`, `~/.copilot/mcp-config.json` | Adds Copilot-required `type` and `tools` fields |
|
|
9105
9176
|
| Gemini CLI | project + global | `.gemini/settings.json`, `~/.gemini/settings.json` | Merges `mcpServers` into settings JSON |
|
|
9177
|
+
| Roo Code | project | `.roo/mcp.json` | Mirrors `mcpServers` into the documented project-level MCP file |
|
|
9106
9178
|
| Windsurf | global | `~/.codeium/windsurf/mcp_config.json` | Global-only JSON config |
|
|
9107
9179
|
| Cline | global | `~/.cline/data/settings/cline_mcp_settings.json` | Global-only JSON config |
|
|
9108
9180
|
| Augment | global | `~/.augment/settings.json` | Global-only JSON settings file |
|
|
@@ -9114,7 +9186,6 @@ These editors are still supported by ai-toolkit for rules and instructions, but
|
|
|
9114
9186
|
|
|
9115
9187
|
| Editor | Reason |
|
|
9116
9188
|
|--------|--------|
|
|
9117
|
-
| Roo Code | MCP support exists, but no verified official file path was adopted in ai-toolkit |
|
|
9118
9189
|
| Aider | No verified native MCP config surface was adopted in ai-toolkit |
|
|
9119
9190
|
| Google Antigravity | MCP can be configured via UI/import flows, but no stable file target was adopted in ai-toolkit |
|
|
9120
9191
|
|
|
@@ -9133,6 +9204,7 @@ When `.mcp.json` exists in a project, `ai-toolkit install --local` mirrors its s
|
|
|
9133
9204
|
- `.claude/settings.local.json`
|
|
9134
9205
|
- `.cursor/mcp.json` when `--editors cursor` is selected
|
|
9135
9206
|
- `.github/mcp.json` when `--editors copilot` is selected
|
|
9207
|
+
- `.roo/mcp.json` when `--editors roo` is selected
|
|
9136
9208
|
|
|
9137
9209
|
Global-only clients are configured explicitly via `ai-toolkit mcp install --editor ...`.
|
|
9138
9210
|
|
|
@@ -9180,7 +9252,7 @@ ai-toolkit mcp remove <name> # Remove from .mcp.json or native editor confi
|
|
|
9180
9252
|
The `add` command merges the `mcpServers` block from the template into `.mcp.json`. If `.mcp.json` does not exist it is created. If the server name already exists in `.mcp.json`, the entry is overwritten with the template version.
|
|
9181
9253
|
|
|
9182
9254
|
The `install` command renders the same canonical template into an editor-native config format:
|
|
9183
|
-
- JSON clients with `mcpServers` blocks: Claude Code, Cursor, Gemini CLI, Windsurf, Cline, Augment
|
|
9255
|
+
- JSON clients with `mcpServers` blocks: Claude Code, Cursor, Gemini CLI, Roo Code, Windsurf, Cline, Augment
|
|
9184
9256
|
- JSON clients with additional transport metadata: GitHub Copilot
|
|
9185
9257
|
- TOML clients: Codex CLI (`[mcp_servers.<name>]`)
|
|
9186
9258
|
|
|
@@ -9194,12 +9266,13 @@ When `install` runs with `--scope project`, ai-toolkit also updates the project'
|
|
|
9194
9266
|
| `cursor` | project + global | `.cursor/mcp.json`, `~/.cursor/mcp.json` | Mirrors canonical `mcpServers` |
|
|
9195
9267
|
| `copilot` | project + global | `.github/mcp.json`, `~/.copilot/mcp-config.json` | Adds `type` and `tools: ["*"]` automatically |
|
|
9196
9268
|
| `gemini` | project + global | `.gemini/settings.json`, `~/.gemini/settings.json` | Uses Gemini CLI `mcpServers` format |
|
|
9269
|
+
| `roo` | project | `.roo/mcp.json` | Mirrors canonical `mcpServers` into Roo's project MCP file |
|
|
9197
9270
|
| `windsurf` | global | `~/.codeium/windsurf/mcp_config.json` | Global-only official config |
|
|
9198
9271
|
| `cline` | global | `~/.cline/data/settings/cline_mcp_settings.json` | Global-only official config |
|
|
9199
9272
|
| `augment` | global | `~/.augment/settings.json` | Global-only settings file |
|
|
9200
9273
|
| `codex` | global | `~/.codex/config.toml` | Rendered as TOML `mcp_servers` tables |
|
|
9201
9274
|
|
|
9202
|
-
Project-local `ai-toolkit install --local` also mirrors `.mcp.json` into Claude project settings plus selected project editors that have official repository/workspace MCP files (`cursor`, `copilot`).
|
|
9275
|
+
Project-local `ai-toolkit install --local` also mirrors `.mcp.json` into Claude project settings plus selected project editors that have official repository/workspace MCP files (`cursor`, `copilot`, `roo`).
|
|
9203
9276
|
|
|
9204
9277
|
## Template List
|
|
9205
9278
|
|
|
@@ -10818,9 +10891,9 @@ title: "Supported Tools Registry"
|
|
|
10818
10891
|
category: reference
|
|
10819
10892
|
service: ai-toolkit
|
|
10820
10893
|
tags: [editors, platforms, generators, integration, ecosystem]
|
|
10821
|
-
version: "1.2.
|
|
10894
|
+
version: "1.2.1"
|
|
10822
10895
|
created: "2026-04-23"
|
|
10823
|
-
last_updated: "2026-04-
|
|
10896
|
+
last_updated: "2026-04-28"
|
|
10824
10897
|
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."
|
|
10825
10898
|
---
|
|
10826
10899
|
|
|
@@ -10862,8 +10935,8 @@ The canonical data lives in **`scripts/ecosystem_tools.json`** and is consumed b
|
|
|
10862
10935
|
| Docs | https://cursor.com/docs |
|
|
10863
10936
|
| Changelog | https://cursor.com/changelog |
|
|
10864
10937
|
| Stable docs mirror | https://cursor.com/llms.txt (all doc pages have .md twins) |
|
|
10865
|
-
| 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
|
|
10866
|
-
| Compat read paths | `.claude/skills/`, `.claude/agents/`, `.
|
|
10938
|
+
| 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` |
|
|
10939
|
+
| Compat read paths | `.claude/skills/`, `.claude/agents/`, `.agents/skills/` (Cursor cross-reads these so ai-toolkit's Claude/Codex installs work automatically) |
|
|
10867
10940
|
| Our generators | `scripts/generate_cursor_rules.py`, `scripts/generate_cursor_mdc.py`, `scripts/generate_cursor_hooks.py` (profile=full), `scripts/generate_cursor_agents.py` (profile=full) |
|
|
10868
10941
|
| Tracked capabilities | `cursorrules`, `.cursor/rules`, `AGENTS.md`, `mcp.json`, Composer, Agent Mode, hooks.json, subagents, skills, plugins |
|
|
10869
10942
|
|
|
@@ -10917,6 +10990,7 @@ The canonical data lives in **`scripts/ecosystem_tools.json`** and is consumed b
|
|
|
10917
10990
|
| Our generators | `scripts/generate_cline.py`, `scripts/generate_cline_rules.py` |
|
|
10918
10991
|
| Tracked capabilities | `clinerules`, Plan Mode, Act Mode, MCP, custom modes, workflows, hooks, skills, subagents, conditional rules |
|
|
10919
10992
|
| 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. |
|
|
10993
|
+
| Global install | `ai-toolkit install --editors cline` writes only documented global rules under `~/Documents/Cline/Rules/`; MCP remains managed by `ai-toolkit mcp install --editor cline`. |
|
|
10920
10994
|
|
|
10921
10995
|
### Roo Code
|
|
10922
10996
|
|
|
@@ -10925,10 +10999,10 @@ The canonical data lives in **`scripts/ecosystem_tools.json`** and is consumed b
|
|
|
10925
10999
|
| ID | `roo-code` |
|
|
10926
11000
|
| Docs | https://docs.roocode.com |
|
|
10927
11001
|
| Release notes | https://github.com/RooCodeInc/Roo-Code/releases |
|
|
10928
|
-
| Config paths | `.roomodes`, `.roo/rules/*.md`, `.roo/rules-{slug}/*.md`, `.roo/mcp.json`, `~/.roo/rules/`, `~/.roo/
|
|
11002
|
+
| Config paths | `.roomodes`, `.roo/rules/*.md`, `.roo/rules-{slug}/*.md`, `.roo/mcp.json`, `~/.roo/rules/`, `~/.roo/custom_modes.yaml`, `mcp_settings.json` (global via Roo settings UI) |
|
|
10929
11003
|
| Our generators | `scripts/generate_roo_modes.py`, `scripts/generate_roo_rules.py` |
|
|
10930
11004
|
| Tracked capabilities | `roomodes`, custom modes, Code Actions, MCP, Orchestrator mode, `whenToUse`, `description`, `roleDefinition`, `groups` |
|
|
10931
|
-
| 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. |
|
|
11005
|
+
| 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. Global install writes only `~/.roo/rules/` because the exact global MCP settings path is UI-managed. |
|
|
10932
11006
|
|
|
10933
11007
|
### Aider
|
|
10934
11008
|
|
|
@@ -10940,6 +11014,7 @@ The canonical data lives in **`scripts/ecosystem_tools.json`** and is consumed b
|
|
|
10940
11014
|
| Config paths | `.aider.conf.yml`, `CONVENTIONS.md`, `~/.aider.conf.yml` |
|
|
10941
11015
|
| Our generators | `scripts/generate_aider_conf.py`, `scripts/generate_conventions.py` |
|
|
10942
11016
|
| 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` |
|
|
11017
|
+
| Global install | `ai-toolkit install --editors aider` creates `~/.aider.conf.yml` only when absent and always refreshes `~/.aider-ai-toolkit-CONVENTIONS.md`; existing YAML is preserved. |
|
|
10943
11018
|
| Version probe | `aider --version` |
|
|
10944
11019
|
| Latest upstream | v0.86.1 (Aug 2025) |
|
|
10945
11020
|
|
|
@@ -10974,11 +11049,11 @@ The canonical data lives in **`scripts/ecosystem_tools.json`** and is consumed b
|
|
|
10974
11049
|
| ID | `codex-cli` |
|
|
10975
11050
|
| Docs | https://github.com/openai/codex (redirects from developers.openai.com/codex) |
|
|
10976
11051
|
| Release notes | https://github.com/openai/codex/releases |
|
|
10977
|
-
| Config paths | `AGENTS.md`, `.agents/rules/*.md`, `.
|
|
11052
|
+
| Config paths | `AGENTS.md`, `.agents/rules/*.md`, `.agents/skills/*/SKILL.md`, `.codex/hooks.json`, `~/.codex/config.toml` |
|
|
10978
11053
|
| Our generators | `scripts/generate_codex.py`, `scripts/generate_codex_rules.py`, `scripts/generate_codex_hooks.py`, `scripts/generate_codex_skills.py` (opt-in via `--codex-skills`) |
|
|
10979
11054
|
| Tracked hook events | `PreToolUse`, `PostToolUse`, `SessionStart`, `UserPromptSubmit`, `Stop`, `PermissionRequest` (6 events supported upstream in `config.toml`) |
|
|
10980
11055
|
| Tracked handler types | `command` (emitted by default); `prompt` and `agent` available upstream but authored by hand |
|
|
10981
|
-
| Other capabilities | `AGENTS.md`, `config.toml`, `mcp_servers`, sandbox policies, `.
|
|
11056
|
+
| Other capabilities | `AGENTS.md`, `config.toml`, `mcp_servers`, sandbox policies, `.agents/skills/*/SKILL.md` (native Codex skill discovery path) |
|
|
10982
11057
|
| Version probe | `codex --version` |
|
|
10983
11058
|
|
|
10984
11059
|
### opencode
|
package/manifest.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "3.0
|
|
2
|
+
"version": "3.1.0",
|
|
3
3
|
"components": {
|
|
4
4
|
"agents": {
|
|
5
5
|
"description": "44 specialized agents (orchestrator, backend, frontend, security, devops, etc.)",
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"tags": ["core", "agents"]
|
|
10
10
|
},
|
|
11
11
|
"skills": {
|
|
12
|
-
"description": "
|
|
12
|
+
"description": "112 skills (32 task + 31 hybrid + 49 knowledge)",
|
|
13
13
|
"path": "app/skills",
|
|
14
14
|
"target": ".claude/skills",
|
|
15
15
|
"type": "symlink",
|
|
@@ -90,7 +90,7 @@
|
|
|
90
90
|
"default": true
|
|
91
91
|
},
|
|
92
92
|
"skills": {
|
|
93
|
-
"description": "
|
|
93
|
+
"description": "112 skills (task, hybrid, knowledge)",
|
|
94
94
|
"default": true
|
|
95
95
|
},
|
|
96
96
|
"rules-common": {
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@softspark/ai-toolkit",
|
|
3
|
-
"version": "3.0
|
|
4
|
-
"description": "AI coding toolkit:
|
|
3
|
+
"version": "3.1.0",
|
|
4
|
+
"description": "AI coding toolkit: 112 skills, 44 agents, 12-editor write-through (Claude, Cursor, Windsurf, Copilot, Gemini, Cline, Roo, Aider, Augment, Antigravity, Codex, opencode), machine-enforced safety constitution, SARIF audit, signed npm provenance.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"claude",
|
|
7
7
|
"claude-code",
|
|
@@ -60,20 +60,27 @@
|
|
|
60
60
|
"generate:roo": "python3 scripts/generate_roo_modes.py > .roomodes",
|
|
61
61
|
"generate:aider": "python3 scripts/generate_aider_conf.py > .aider.conf.yml",
|
|
62
62
|
"generate:codex-rules": "python3 scripts/generate_codex_rules.py .",
|
|
63
|
+
"generate:language-rules": "python3 scripts/generate_language_rules_skills.py",
|
|
63
64
|
"generate:opencode-agents": "python3 scripts/generate_opencode_agents.py .",
|
|
64
65
|
"generate:opencode-commands": "python3 scripts/generate_opencode_commands.py .",
|
|
65
66
|
"generate:cursor-mdc": "python3 scripts/generate_cursor_mdc.py .",
|
|
66
67
|
"generate:windsurf-rules": "python3 scripts/generate_windsurf_rules.py .",
|
|
67
68
|
"generate:roo-rules": "python3 scripts/generate_roo_rules.py .",
|
|
68
69
|
"generate:augment-rules": "python3 scripts/generate_augment_rules.py .",
|
|
69
|
-
"generate:all": "npm run generate:agents && npm run generate:codex-rules && npm run generate:opencode-agents && npm run generate:opencode-commands && npm run generate:cursor && npm run generate:cursor-mdc && npm run generate:windsurf && npm run generate:windsurf-rules && npm run generate:copilot && npm run generate:gemini && npm run generate:cline && npm run generate:roo && npm run generate:roo-rules && npm run generate:aider && npm run generate:augment-rules && npm run generate:llms"
|
|
70
|
+
"generate:all": "npm run generate:language-rules && npm run generate:agents && npm run generate:codex-rules && npm run generate:opencode-agents && npm run generate:opencode-commands && npm run generate:cursor && npm run generate:cursor-mdc && npm run generate:windsurf && npm run generate:windsurf-rules && npm run generate:copilot && npm run generate:gemini && npm run generate:cline && npm run generate:roo && npm run generate:roo-rules && npm run generate:aider && npm run generate:augment-rules && npm run generate:llms"
|
|
70
71
|
},
|
|
71
72
|
"files": [
|
|
72
73
|
"bin/",
|
|
73
74
|
"app/",
|
|
75
|
+
"!app/**/__pycache__",
|
|
76
|
+
"!app/**/*.pyc",
|
|
74
77
|
"scripts/",
|
|
78
|
+
"!scripts/**/__pycache__",
|
|
79
|
+
"!scripts/**/*.pyc",
|
|
75
80
|
"kb/",
|
|
76
81
|
"benchmarks/",
|
|
82
|
+
"!benchmarks/**/__pycache__",
|
|
83
|
+
"!benchmarks/**/*.pyc",
|
|
77
84
|
"action.yml",
|
|
78
85
|
"manifest.json",
|
|
79
86
|
"README.md",
|