add-component
Checklists for adding a new MCP tool, a new Flyway database migration, or a new Gradle dependency to the Task Orchestrator…
Test authoring framework for items carrying the needs-test-author trait. Defines scenario derivation from acceptance criteria, the oracle-derivation and blindness rules that keep test authorship independent of implementation, the adversarial probe catalog, forbidden patterns,
$ npx -y skills add jpicklyk/task-orchestrator --skill test-author --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/test-authorContext preview
The summary Claude sees to decide when to auto-load this skill.
Test authoring framework for items carrying the needs-test-author trait. Defines scenario derivation from acceptance criteria, the oracle-derivation and blindness rules that keep test authorship independent of implementation, the adversarial probe catalog, forbidden patterns,
name: test-author description: Test authoring framework for items carrying the needs-test-author trait. Defines scenario derivation from acceptance criteria, the oracle-derivation and blindness rules that keep test authorship independent of implementation, the adversarial probe catalog, forbidden patterns, and the test-plan/test-manifest note formats. Referenced by trait note guidance during queue-phase test-plan and work-phase test-manifest filling. Use when filling test-plan or test-manifest notes, or when asked to author or review tests independently of an implementation. user-invocable: false
This skill defines how test authorship is separated from implementation. It exists because an agent that writes both the code and its tests has no adversary in the loop — the tests confirm what was built, not what was intended. The trend record backing this trait names the recurring cost directly: vacuous positive assertions with `|| isEmpty()` escapes, a test oracle computed from the implementation's own formula, `assumeTrue` wrapped around three real production bugs so they never turned the suite red, and coverage claimed in notes that didn't exist in the test tree. `review-quality` already names the bias — "the agent that wrote the tests has an inherent bias toward believing they're correct" — this skill is the structural fix upstream of review: an independent authorship step, gated at the point where an oracle can still be frozen before implementation exists to copy from.
Everything below applies whether the test author is a separate dispatch or, in a degraded mode, the same agent operating at a different, declared point in time. The separation is the point — follow it exactly even when it feels redundant with work you can already see.
When `query_rules(get, rootId, key:"test-author")` succeeds, the served text is authoritative for §3–§10; this skill is the fallback and the Claude-specific addendum.
---
The trait `needs-test-author` puts two seats on an item, occupied at different phases:
frozen before any implementation exists. This is the structural lever: an oracle written before code exists cannot be derived from that code, no matter who writes it later.
after implementation has landed so they compile against the real signatures, but without reading the implementation's reasoning or its own tests.
**Same-agent exception (Direct tier, temporal-only):** for a single-item Direct-tier dispatch there is no second agent to send the work to. The same agent may occupy both seats, but only under a *temporal-only* degraded mode — see §11. The gate still applies: `test-plan` must exist and be frozen before implementation begins, and the manifest must declare the single-actor mode explicitly rather than silently reusing the plan author's context. This is a narrower guarantee than true two-agent separation, and `test-independence-audit` records it as such (`independent-degraded`), never as `independent`.
Outside Direct tier — Delegated and Parallel — the two seats are two dispatches. Never collapse them to save a round-trip; the whole value of this trait is in the second agent's blindness.
---
Start from the acceptance criteria in the item's planning note (`task-scope`, `feature-summary`, or `diagnosis`) or the queue-phase spec these criteria live in. Every criterion maps to at least one scenario; a criterion with zero scenarios is a coverage gap, not an implicit pass.
**Partition each criterion into happy / failure / edge**, mirroring the `spec-quality` Test Strategy discipline this note composes with — `test-plan` gives each scenario an oracle and a probe list; `task-scope`'s Test Strategy section should already have named the scenarios themselves, so this step should feel like formalizing, not inventing from scratch. If it feels like inventing from scratch, the queue-phase spec's test strategy was too thin — flag it rather than filling the gap silently.
missing dependency, disallowed state transition).
values, duplicate entries, ordering sensitivity, maximum depth or size.
A criterion that only yields a happy-path scenario has not been fully partitioned — go back and ask what could violate it or sit at its boundary before treating it as covered.
**Name the modules the scenarios touch.** Give `test-plan` a `declarationModules:` line (a comma-separated list of repo-relative paths) covering every module a scenario's oracle or harness depends on, including modules the implementer will not edit. The declarations extractor covers the union of this list and the implementer's changed files; a test-author dispatch naming a module the extractor did not cover is refused with `missingDeclaration:`.
**Stable S-ids.** Number scenarios `S1, S2, S3…` in the `test-plan` note and never renumber once written test code refers to them — the `test-manifest`'s S-id→test mapping is only auditable if the ids are stable across the plan/manifest boundary. If a scenario is dropped, mark it `S4 — dropped: <reason>` rather than closing the numbering gap.
**Label every scenario `EXISTING-SURFACE` or `NEW-SURFACE`.** Red-proof is obtained by reverting the fix and running the item's tests. That works only where the scenario binds to a surface that already existed: when the fix *introduces* the type, parameter, seam or enum constant a test references, reverting it produces a **compile** failure rather than a behavioral red.
Server-enforced workflow discipline for AI agents. Prompt-based frameworks hope the LLM follows instructions. This one blocks the call if it doesn't.
Checklists for adding a new MCP tool, a new Flyway database migration, or a new Gradle dependency to the Task Orchestrator…
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…