بنقرة واحدة
speckit-implement
Execute all tasks from the task breakdown to build the feature.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Execute all tasks from the task breakdown to build the feature.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
Create or update project governing principles and development guidelines.
Merge-gate audit: synthetic propagation + diff-scan. Hard-blocks on either.
Validate and render the task DAG; compute synthetic propagation.
Break down implementation plans into actionable task lists.
استنادا إلى تصنيف SOC المهني
| name | speckit-implement |
| description | Execute all tasks from the task breakdown to build the feature. |
| compatibility | Requires spec-kit project structure with .specify/ directory |
| metadata | {"author":"github-spec-kit","source":"preset:fsharp-opinionated"} |
Execute the feature's tasks against the plan. Update tasks.md as you go.
Use the status legend from the template exactly:
[ ] — not started.[X] — done with real evidence. The code paths that will run in
production were exercised. Tests used real dependencies (real DB, real
filesystem, real network) or a previously-approved synthetic fixture
that is itself listed in the Synthetic-Evidence Inventory as acceptable.[S] — done with synthetic evidence only. Use this whenever the
task's "pass" depends on ANY of:
NotImplementedException, failwith "TODO", raise (), or
equivalent placeholder[S] task whose synthetic nature propagates
(you do not need to detect this manually — the evidence audit
computes [S*] propagation — but BE HONEST about the direct cases).[F] — failed. Implementation attempted and did not pass. Leave the
diagnostics in place; do not quietly retry.[-] — skipped. Requires written rationale either in the task line
or in the Synthetic-Evidence Inventory / Deferral Notes section.Never mark a task [X] if any of the [S] conditions apply. The
evidence audit will catch many such cases via diff-scan, but the agent is
expected to be honest about direct declarations. Dishonesty undermines the
whole synthetic-evidence regime (Principle V).
A task tagged [US*] may only be marked [X] when the user-facing
surface was actually exercised end-to-end. "Exercised" means one of:
readiness/ that drives the new
behavior through its public entry point — not through internal helpers.readiness/.A diff that touches only Domain/, Core/, Models/, or equivalent
internal layers is never sufficient evidence for [X] on a [US*]
task. The story isn't done when the model compiles; it's done when the
user can reach it. If wire-up to the UI / CLI / API surface is missing,
the honest status is [ ] (continue working) or [S] (disclose the
gap and create a tracking issue for the real wire-up).
This rule is in addition to the synthetic-evidence checks above. A task can fail the vertical-slice rule without involving any mocks at all — domain code that nothing calls is its own failure mode.
For any task whose spec, plan, or task line identifies stateful workflow or I/O, implement through the Elmish/MVU boundary:
Model captures owned workflow state.Msg captures user actions, external responses, and internal transitions.Effect or Cmd<Msg> captures requested I/O.init returns initial state plus startup effects.update is pure: it may inspect Msg and Model, but it MUST NOT touch
filesystem, network, database, process state, wall clock, random source, or
mutable global state.Msg.Before marking an MVU-bearing [US*] task [X], verify all of the following:
init / update paths.Model and emitted effects for representative
messages.[S] and disclose it.Simple pure functions do not need an MVU shell. If a task does not involve stateful workflow or I/O, note that Principle IV is not applicable and use the ordinary spec → FSI → semantic tests → implementation path.
When you emit an [S] task, you MUST also:
// SYNTHETIC: comment at the use
site, naming the reason and (if known) the real-evidence path. Example:
let userRepo = InMemoryUserRepo() // SYNTHETIC: staging DB not provisioned; real repo in US-17
Synthetic. Example:
[<Test>] let ``Signup.createUser_Synthetic_persists in-memory`` () = ...
For whole test files that are synthetic-only, open with a banner:
(* SYNTHETIC FIXTURE: all tests in this file use canned SMTP responses. *)
tasks.md:
in_progress in your own head (not in tasks.md — the
file uses the five-state legend only).tasks.deps.yml; confirm all deps are [X]
or [S]. If any dep is [ ], [F], or [-], stop and raise it.[US*], the verification MUST
include a user-reachable exercise — see the Vertical-slice rule
above. For MVU-bearing tasks, include transition/effect assertions and
interpreter evidence. A green unit test on the domain layer is not enough.tasks.md. Before writing [X] on a [US*]
task, confirm the vertical-slice rule is satisfied; if not, the
honest status is [ ] or [S]. If [S], add the code-level,
test-level, and inventory disclosures before moving on.speckit.evidence.graph after every status change. This
refreshes readiness/task-graph.json and recomputes [S*]
propagation. It's cheap (milliseconds).private, internal, or public on a top-level F#
binding. Visibility lives in the .fsi signature file..fsi update is part
of the same task — not a follow-up.Before reaching for a "clever" F# feature (custom operators, SRTP, reflection, non-trivial computation expressions, type providers, non- obvious active patterns), confirm the feature is justified in the spec or plan. If it isn't, either simplify or stop and raise the justification gap.
Stop and ask the user when:
[<Skip>] to pass. Never weaken; surface the failure.tasks.deps.yml points to a task that doesn't exist.
Fix the yml before proceeding.