api-compat-review
Compatibility assessment for items with the needs-api-compat-review trait. Evaluates the MCP tool surface and the REST surface…
Checklists for adding a new MCP tool, a new Flyway database migration, or a new Gradle dependency to the Task Orchestrator server, including the tool-documentation single-source policy (parameterSchema field descriptions vs the prose description string vs api-reference.md). Use
$ npx -y skills add jpicklyk/task-orchestrator --skill add-component --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/add-componentContext preview
The summary Claude sees to decide when to auto-load this skill.
Checklists for adding a new MCP tool, a new Flyway database migration, or a new Gradle dependency to the Task Orchestrator server, including the tool-documentation single-source policy (parameterSchema field descriptions vs the prose description string vs api-reference.md). Use
name: add-component description: Checklists for adding a new MCP tool, a new Flyway database migration, or a new Gradle dependency to the Task Orchestrator server, including the tool-documentation single-source policy (parameterSchema field descriptions vs the prose description string vs api-reference.md). Use when adding or changing an MCP tool or its parameters, creating a migration, or adding a dependency to the version catalog.
Moved from the root `CLAUDE.md` so it loads only when needed. The single-source documentation policy summary stays in `CLAUDE.md`; this file is the full procedure.
1. Extend `BaseToolDefinition` in `current/src/main/kotlin/.../application/tools/` 2. Register in `buildMcpTools()` (`CurrentMcpServer.kt`) — `ToolDocumentationConsistencyTest` and `ToolTokenBudgetTest` derive their tool list from this function, so registering here is sufficient for both guard tests to pick up the new tool automatically 3. Update all three documentation surfaces (see below) 4. Add a `ToolTokenBudgetTest` per-tool ceiling row for the new tool (see that test's "BUDGET PHILOSOPHY" doc comment for how to measure and set it) — its sync check fails loudly if a row is missing 5. Add tests in `current/src/test/kotlin/io/github/jpicklyk/mcptask/current/application/tools/`
Every tool has three documentation surfaces:
| Surface | Location | Audience | |---------|----------|----------| | `description` string | In the tool source file | LLMs — seen via `tools/list` | | `parameterSchema` | In the tool source file | MCP clients — drives validation | | API reference | `current/docs/api-reference.md` | Humans |
**Single source of truth per parameter:** each parameter is documented ONCE, in its own `parameterSchema` field `description` — not duplicated in the tool's prose `description` string. The prose `description` is reserved for what a flat JSON Schema cannot express: operation/mode enum selection, mode-selection rules, trigger effects (e.g. the trigger table in `advance_item`), gate semantics, and mutual-exclusion/XOR constraints across fields. This keeps the `tools/list` payload lean — the MCP Token-Efficiency Program cut the full tool payload substantially by removing exactly this kind of prose/schema duplication; `ToolTokenBudgetTest` guards the result going forward with per-tool ceilings rather than a single aggregate number.
**CI guard:** `ToolDocumentationConsistencyTest` asserts (1) every `parameterSchema` property has a non-blank field-level `description`, and (2) every `operation`/`mode` enum value is still named in the prose `description` (so callers can discover available operations without reading the full schema). It no longer requires every param name to appear in the prose description — that older policy is what produced the bloat this program removed. The `api-reference.md` surface is not machine-checked — update it manually alongside code changes.
**When changing a tool's parameters:**
touch the prose `description` only if the change affects mode-selection/trigger/gate semantics
`parameterSchema` — that's the duplication this program removed
Create `current/src/main/resources/db/migration/V{N}__{Description}.sql`. SQLite has no `ALTER COLUMN` — schema changes require table recreation. New tables in `DirectDatabaseSchemaManager` must be inserted in foreign-key order.
Add to `gradle/libs.versions.toml` (`[versions]` + `[libraries]`), then reference as `libs.{name}` in `build.gradle.kts`. Check Maven Central for the latest version.
Server-enforced workflow discipline for AI agents. Prompt-based frameworks hope the LLM follows instructions. This one blocks the call if it doesn't.
Compatibility assessment for items with the needs-api-compat-review trait. Evaluates the MCP tool surface and the REST surface…
Guides the full lifecycle of a feature-implementation tagged MCP item (the feature container) — from queue through review.…
End-to-end workflow for taking MCP work items from backlog to merged PR. Handles git branching, schema-driven planning,…
SQLite migration assessment for items with the needs-migration-review trait. Evaluates schema changes, table recreation patterns,…
Performance impact assessment for items with the needs-perf-review trait. Evaluates hot paths, query patterns, and measurement…
Assessment of plugin skill and hook changes needed after MCP or config changes. Evaluates skill references, hook context,…