ss-implement
GitHubSerial Studio工作流的第4阶段,负责执行已批准的任务清单并编写代码。需按序处理任务,先读后改,验证逻辑与规范,标记完成,最后进行静态审查、自审及清理,确保代码变更严格符合计划且无新增错误。
Trigger Scenarios
Install
npx skills add Serial-Studio/Serial-Studio --skill ss-implement -g -y
SKILL.md
Frontmatter
{
"name": "ss-implement",
"description": "Phase 4 of Serial Studio's spec-driven workflow: execute an approved tasks.md top to bottom, verifying each task and keeping the checklist current. Use after \/ss-tasks is approved, or \"implement the spec\", \"build it\", \"work the tasks\". Honors the hotpath, verify, and trust rules; never commits without explicit permission.",
"argument-hint": "[spec number or slug]"
}
Serial Studio — /ss-implement (phase 4 of 4)
Execute the approved tasks.md one task at a time, verifying as you go. This is the only phase
that writes code. See doc/claude/spec-driven.md.
Preconditions
doc/claude/specs/NNNN-slug/tasks.mdexists and itsstatus:isapproved.- Read
spec.md,plan.md, andtasks.mdin full before touching code. - Set
spec.mdstatus: in-progress.
Per-task loop
For each task in order:
- Read before writing. Read the target files in full this session — hotpath files
(
FrameBuilder,CircularBuffer,FrameReader,Dashboard) and existing signal/slot wiring are mandatory full reads (CLAUDE.md). Invokess-hotpathon any hotpath task,ss-cpp-modernwhen shaping non-trivial new C++. - Name the binding invariants before the first
Edit: restate in chat, in your own words, the invariant(s) the task's Does line carries (plus any the read surfaced). A constraint steers the edit only when named at the point of action, not when it sits in a doc you read earlier (doc/claude/j-space.md). - Make the change with targeted
Editcalls — edit, don't rewrite. Follow code-style.md: header ordering,[[nodiscard]], no in-header init,Q_EMIT, no in-body comments, 100-col, ASCII-only in source. - Verify the task:
python scripts/code-verify.py --check <changed files>. Resolve new errors before moving on (advisories are baseline debt, but new code clears them). Run the task's stated check (atests/scripts/JS unit you can run, or a read-back). - Mark it done — tick the task's box in
tasks.mdso the file stays a live record.
Stay strictly inside the plan's file list. If a needed change falls outside it, stop and name it in chat ("the plan didn't cover X — add it?") rather than widening the diff. Never touch, revert, or restore a working-tree file you did not edit this session.
Finish
When every task is done, run the Definition of Done in tasks.md:
- Static review: invoke
qt-cpp-reviewon the C++ diff; address or note findings. - Hotpath: if touched, confirm the
--benchmark-hotpathplan with the maintainer (you cannot run it — you don't build the app). - Self-review the diff, counterfactually: is this what was asked, and only that? Then
answer out loud: "which rule does this diff most risk violating, and what is the concrete
evidence it doesn't?" Name the rule and the evidence — not a generic pass
(
doc/claude/j-space.md, counterfactual self-check). If either answer is weak, say so before claiming completion. - Sanitize: run
python scripts/sanitize-commit.py(it sanitizes only — never commits). - Identify the
pytesttargets fromplan.mdfor the maintainer to run (the app must be up with the API server enabled). - Set
spec.mdstatus: done.
Rules
- Never build or run the app, and never commit or push without explicit per-turn permission — earlier authorizations do not carry over.
- The spec is the contract: every acceptance criterion must end up satisfied and checked off in
spec.md. If reality diverges from the plan mid-build, stop and amendplan.md/tasks.md(re-confirm) rather than silently improvising. - Keep
tasks.mdhonest as you go — a half-finished feature should be resumable by reading the three spec files alone.
Version History
- cb2f5d2 Current 2026-08-20 08:59


