skills/openspec-task-loop/SKILL.md
Execute a spec-first one-task-at-a-time loop using OpenSpec OPSX. Use when asked to implement tasks from a list with single-task scope, spec artifacts, and sequential verification before archiving. Don't use for ad-hoc multi-task implementation, non-OpenSpec task trackers, or writing the specs themselves from scratch.
npx skillsauth add luongnv89/skills openspec-task-loopInstall 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.
This skill uses a strictly sequential pipeline of subagents, where each iteration accumulates context and depends on the previous step. Pattern: E (Staged Pipeline) + C (Review Loop).
| Agent | Role | Trigger | |-------|------|---------| | spec-scaffolder | Create all OpenSpec artifacts (proposal.md, design.md, tasks.md, specs/) | After task selection | | implementer | Implement scoped task, update checkboxes, run validation | After spec scaffolding | | verifier | Independently check quality gate: scope atomicity, acceptance criteria, spec-to-test alignment | After implementation complete | | archiver | Merge spec deltas, move to archive, update parent tasks.md | After verification passed |
Why Sequential: Multiple task iterations (5-10) degrade reasoning quality significantly without this staged approach. Each step builds confidence and catches issues early.
Before executing:
Before creating/updating/deleting files in an existing repository, sync the current branch with remote:
branch="$(git rev-parse --abbrev-ref HEAD)"
git fetch origin
git pull --rebase origin "$branch"
If the working tree is not clean, stash first, sync, then restore:
git stash push -u -m "pre-sync"
branch="$(git rev-parse --abbrev-ref HEAD)"
git fetch origin && git pull --rebase origin "$branch"
git stash pop
If origin is missing, pull is unavailable, or rebase/stash conflicts occur, stop and ask the user before continuing.
Run OpenSpec as one task = one change. Keep scope tight, generate artifacts, implement, verify, and archive before moving to the next task.
/opsx:* commands are supported in the current coding tool: use native OPSX flow.openspec/changes/<change-id>/.For each selected task from tasks.md:
Select exactly one task
Create a task-scoped change
task-<task-id>-<short-slug> (example: task-2-3-pin-crud).Plan with OpenSpec artifacts
proposal.md: intent, scope, acceptance criteria, out-of-scope.specs/.../spec.md: requirements and GIVEN/WHEN/THEN scenarios.design.md: implementation approach and tradeoffs.tasks.md: implementation checklist for this single task.Implement only this task scope
Verify before archive
Archive and sync
Use this sequence per task:
/opsx:new task-<task-id>-<slug>
/opsx:ff <change-id> # or /opsx:continue for stepwise control
/opsx:apply <change-id>
/opsx:verify <change-id>
/opsx:archive <change-id>
Rules:
/opsx:continue when requirements are still unclear./opsx:ff when scope is clear and small.If slash commands are unavailable:
openspec/changes, openspec/specs).proposal.mddesign.mdtasks.mdspecs/<capability>/spec.mdreferences/openspec-task-templates.md before scaffolding task artifacts.openspec/specs/ and move change to openspec/changes/archive/<date>-<change-id>/.tasks.md updated with completion stateWhen reporting progress, use:
Task: <id + title>
Change: <openspec change id>
Status: planning | implementing | verifying | archived
Done:
- ...
Next:
- ...
Risks/Notes:
- ...
For each completed task iteration you should see:
openspec/changes/<change-id>/ containing proposal.md, design.md, tasks.md, and specs/<capability>/spec.mdopenspec/changes/archive/<date>-<change-id>/tasks.md updated with the completed task marked doneStatus: archived/opsx command support: Fall back to manual file scaffolding under openspec/changes/ and follow the Manual Fallback Path steps.references/openspec-task-templates.md: Warn the user and proceed with minimal artifacts; request the templates file to improve scaffold quality.After completing each major step, output a status report in this format:
◆ [Step Name] ([step N of M] — [context])
··································································
[Check 1]: √ pass
[Check 2]: √ pass (note if relevant)
[Check 3]: × fail — [reason]
[Check 4]: √ pass
[Criteria]: √ N/M met
____________________________
Result: PASS | FAIL | PARTIAL
Adapt the check names to match what the step actually validates. Use √ for pass, × for fail, and — to add brief context. The "Criteria" line summarizes how many acceptance criteria were met. The "Result" line gives the overall verdict.
◆ Selection (step 1 of 4 — task scoping)
··································································
Task identified: √ pass — task-2-3-pin-crud selected
Scope bounded: √ pass — 1-3 dev days, atomic unit
Dependencies clear: √ pass — no blockers in tasks.md
[Criteria]: √ 3/3 met
____________________________
Result: PASS
◆ Planning (step 2 of 4 — spec scaffolding)
··································································
Spec artifacts created: √ pass — proposal.md, design.md, tasks.md, spec.md
Implementation planned: √ pass — approach and tradeoffs documented
[Criteria]: √ 2/2 met
____________________________
Result: PASS
◆ Implementation (step 3 of 4 — code delivery)
··································································
Code written: √ pass — all checkboxes updated
Tests pass: × fail — 1 unit test failing
Scope respected: √ pass — no unrelated files changed
[Criteria]: √ 2/3 met
____________________________
Result: PARTIAL
◆ Archive (step 4 of 4 — completion and sync)
··································································
Artifacts synced: √ pass — specs merged into openspec/specs/
Quality gate passed: √ pass — all 6 criteria met
[Criteria]: √ 2/2 met
____________________________
Result: PASS
references/openspec-task-templates.md — proposal/spec/design/tasks templates for manual mode.scripts/new_task_change.sh — optional scaffold script for manual mode.documentation
Manage software releases end-to-end: bump version, generate changelog, tag, push, GitHub release, publish to PyPI/npm. Use when user asks to ship, cut a release, tag a version, or list changes since last tag. Skip routine commits and marketplace publishing.
development
Review UI for usability issues using Steve Krug's principles and produce a scannable report. Use when asked for a usability audit, UX review, or UI feedback on screenshots, URLs, or code. Don't use for visual/brand design critique, accessibility (WCAG) audits, or backend/API review.
development
Validate app/startup ideas with market, feasibility, commercial, and open-source competitor analysis. Use when asked to evaluate, validate, or score a product idea. Don't use for PRDs, go-to-market plans, or investor decks.
testing
Install local-first security hardening: pre-commit secret detection, offline dependency scans, static analysis, reports, and gated free CI. Use when hardening repos or adding security hooks. Don't use for incident response or cloud security reviews.