.agents/skills/openspec-ff-change/SKILL.md
Fast-forward through OpenSpec artifact creation. Use when the user wants to quickly create all artifacts needed for implementation without stepping through each one individually.
npx skillsauth add em-jones/staccato-toolkit openspec-ff-changeInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Fast-forward through artifact creation - generate everything needed to start implementation in one go.
Maintainer note: The audit sections in this skill (Rule-Coverage, Quality Tooling, Radar Prerequisite, Catalog Entity, Skill, Prerequisite Changes) are intentionally kept in sync with
openspec-continue-change. If you update audit logic in one skill, update the other. The canonical descriptions live inopenspec-continue-change; this skill's versions are adapted for inline fast-forward output format.
Input: The user's request should include a change name (kebab-case) OR a description of what they want to build.
Steps
If no clear input provided, ask what they want to build
Use the AskUserQuestion tool (open-ended, no preset options) to ask:
"What change do you want to work on? Describe what you want to build or fix."
From their description, derive a kebab-case name (e.g., "add user authentication" → add-user-auth).
IMPORTANT: Do NOT proceed without understanding what the user wants to build.
Create the change directory
openspec new change "<name>"
This creates a scaffolded change at openspec/changes/<name>/.
Get the artifact build order
openspec status --change "<name>" --json
Parse the JSON to get:
applyRequires: array of artifact IDs needed before implementation (e.g., ["specs", "design"])artifacts: list of all artifacts with their status and dependenciesCreate artifacts in sequence until apply-ready
Use the TodoWrite tool to track progress through the artifacts.
Loop through artifacts in dependency order (artifacts with no pending dependencies first):
a. For each artifact that is ready (dependencies satisfied):
openspec instructions <artifact-id> --change "<name>" --json
context: Project background (constraints for you - do NOT include in output)rules: Artifact-specific rules (constraints for you - do NOT include in output)template: The structure to use for your output fileinstruction: Schema-specific guidance for this artifact typeoutputPath: Where to write the artifactdependencies: Completed artifacts to read for contexttemplate as the structurecontext and rules as constraints - but do NOT copy them into the fileb. After creating the artifact, run the quality tooling audit for that artifact type (see Quality Tooling Audit below).
b2. After creating all requirement tasks for a specs artifact, create the worker epic (follow the same steps as openspec-continue-change — see its Worker Epic section): create worker: <capability> feature under <change-id>, re-parent all requirement tasks under it. For the design artifact, create worker: cross-cutting and re-parent cross-cutting tasks under it. Skip cross-cutting worker epic if no cross-cutting tasks were created. The worker epic is the entry point for a worker subagent spawned by the Task tool (subagent_type: "worker") during execution.
c. Continue until all applyRequires artifacts are complete - After creating each artifact, re-run openspec status --change "<name>" --json - Check if every artifact ID in applyRequires has status: "done" in the artifacts array - Stop when all applyRequires artifacts are done
c. If an artifact requires user input (unclear context):
Show final status
openspec status --change "<name>"
Output
After completing all artifacts, summarize:
/opsx-apply or ask me to implement to start working on the tasks."Logic identical to openspec-continue-change (see SKILL.md lines 329-429). Runs inline after specs and design artifacts.
For the specs phase: audit each capability per the canonical process. De-duplicate research tasks across capabilities in the same fast-forward.
For the design phase: populate component frontmatter in design.md, review Technology Adoption table, and create supplementary research tasks.
✓ Created proposal
✓ Created specs
Rule coverage (capability: user-auth):
✓ code/testing (exists)
⚠ architecture/api-design (missing) → td-xxxxx created, blocks td-yyyyy
Rule coverage (capability: data-export):
✓ code/testing (exists, shared)
✓ Created design
Design-phase supplement:
⚠ delivery/observability (missing) → td-aaaaa created, blocks td-bbbbb
All artifacts created! Ready for implementation.
⚠ 2 research tasks created — run in parallel before starting implementation.
See openspec-continue-change SKILL.md for canonical audit logic:
Fast-forward runs these audits inline during artifact creation. Output format is inline (showing progress per artifact) rather than sequential, but logic and guardrails are identical.
Artifact Creation Guidelines
instruction field from openspec instructions for each artifact typetemplate as the structure for your output file - fill in its sectionscontext and rules are constraints for YOU, not content for the file
<context>, <rules>, <project_context> blocks into the artifactGuardrails
apply.requires)## Technology Adoption & Usage Rules table is populated during design authoring. If docs/tech-radar.json is absent, warn and skip.## Agent Skills table is absent, warn and skip — do not silently omit.## Catalog Entities table is absent, warn and skip — do not silently omit.## Prerequisite Changes table is absent from design.md, warn and skip.openspec-continue-change exactly — td-research feature as sibling to capability nodes under the change rootopenspec-continue-change — same title format, same parent, same bodytools
<!--VITE PLUS START--> # Using Vite+, the Unified Toolchain for the Web This project is using Vite+, a unified toolchain built on top of Vite, Rolldown, Vitest, tsdown, Oxlint, Oxfmt, and Vite Task. Vite+ wraps runtime management, package management, and frontend tooling in a single global CLI called `vp`. Vite+ is distinct from Vite, but it invokes Vite through `vp dev` and `vp build`. ## Vite+ Workflow `vp` is a global binary that handles the full development lifecycle. Run `vp help` to pr
development
Guide for building performant data tables. Uses tanstack-table for table logic (sorting, filtering, pagination) and tanstack-virtual for rendering large datasets efficiently.
development
Expert guidance for building observable, expressive, and fault-tolerant TypeScript applications using the effect-ts/effect ecosystem. Covers Effect<A, E, R> type, error management, dependency injection via Layers, observability (logging, metrics, tracing), concurrency with Fibers, retry/scheduling, Schema validation, Streams, and Sinks.
tools
Complete E2E (end-to-end) and integration testing skill for TypeScript/NestJS projects using Jest, real infrastructure via Docker, and GWT pattern. ALWAYS use this skill when user needs to: **SETUP** - Initialize or configure E2E testing infrastructure: - Set up E2E testing for a new project - Configure docker-compose for testing (Kafka, PostgreSQL, MongoDB, Redis) - Create jest-e2e.config.ts or E2E Jest configuration - Set up test helpers for database, Kafka, or Redis - Configure .env.e2e environment variables - Create test/e2e directory structure **WRITE** - Create or add E2E/integration tests: - Write, create, add, or generate e2e tests or integration tests - Test API endpoints, workflows, or complete features end-to-end - Test with real databases, message brokers, or external services - Test Kafka consumers/producers, event-driven workflows - Working on any file ending in .e2e-spec.ts or in test/e2e/ directory - Use GWT (Given-When-Then) pattern for tests **REVIEW** - Audit or evaluate E2E tests: - Review existing E2E tests for quality - Check test isolation and cleanup patterns - Audit GWT pattern compliance - Evaluate assertion quality and specificity - Check for anti-patterns (multiple WHEN actions, conditional assertions) **RUN** - Execute or analyze E2E test results: - Run E2E tests - Start/stop Docker infrastructure for testing - Analyze E2E test results - Verify Docker services are healthy - Interpret test output and failures **DEBUG** - Fix failing or flaky E2E tests: - Fix failing E2E tests - Debug flaky tests or test isolation issues - Troubleshoot connection errors (database, Kafka, Redis) - Fix timeout issues or async operation failures - Diagnose race conditions or state leakage - Debug Kafka message consumption issues **OPTIMIZE** - Improve E2E test performance: - Speed up slow E2E tests - Optimize Docker infrastructure startup - Replace fixed waits with smart polling - Reduce beforeEach cleanup time - Improve test parallelization where safe Keywords: e2e, end-to-end, integration test, e2e-spec.ts, test/e2e, Jest, supertest, NestJS, Kafka, Redpanda, PostgreSQL, MongoDB, Redis, docker-compose, GWT pattern, Given-When-Then, real infrastructure, test isolation, flaky test, MSW, nock, waitForMessages, fix e2e, debug e2e, run e2e, review e2e, optimize e2e, setup e2e