Closing the intent-to-code chasm - specification-driven development with BDD verification chain
86
92%
Does it follow best practices?
Impact
86%
1.82xAverage score across 14 eval scenarios
Advisory
Suggest reviewing before use
Execute the implementation plan by processing all tasks in tasks.md.
$ARGUMENTSYou MUST consider the user input before proceeding (if not empty).
Windows: Replace
bash …/iikit-07-implement/scripts/bash/*.shwithpwsh …/iikit-07-implement/scripts/powershell/*.ps1(same flags,-PascalCase).
Load constitution per constitution-loading.md (enforcement mode — extract rules, declare hard gate, validate before every file write).
bash .tessl/tiles/tessl-labs/intent-integrity-kit/skills/iikit-07-implement/scripts/bash/check-prerequisites.sh --phase 07 --jsonFEATURE_DIR and AVAILABLE_DOCS. If missing tasks.md: ERROR.needs_selection: true: present the features array as a numbered table (name and stage columns). Follow the options presentation pattern in conversation-guide.md. After user selects, run:
bash .tessl/tiles/tessl-labs/intent-integrity-kit/skills/iikit-07-implement/scripts/bash/set-active-feature.sh --json <selection>Ask the user to choose a commit strategy before starting:
| Strategy | Description |
|---|---|
| A) Per-task (default) | One git commit per completed task. Clean, bisectable history mapping each commit to a task ID. |
| B) Batch | Commits per phase (Setup, Foundational, each User Story, Polish) — typically 4–6 commits. Faster; commits don't map 1:1 to task IDs. |
Default to A if user doesn't respond. Apply the chosen strategy throughout.
Bugfix detection: if every unchecked task has a T-B prefix, this is a bugfix-only run — relaxed gates below.
Standard mode: Verify artifact completeness (constitution, spec, plan, tasks, checklists), cross-artifact consistency (FR-XXX → tasks, tech stack → file paths), and checklist completion (all 100% or ask user). Report READY or BLOCKED.
Bugfix mode: Only require tasks.md (T-B tasks) and bugs.md (matching BUG-NNN). Skip spec/plan/checklist gates. BDD chain (§2.1–2.4) still applies if .feature files exist.
Suggest the user open the dashboard to watch implementation progress in real time:
Dashboard: file://$(pwd)/.specify/dashboard.html (resolve the path) — updates live as tasks completeRead tasks.md + plan.md (standard) or tasks.md + bugs.md (bugfix). Optional: data-model.md, contracts/, research.md, quickstart.md, tests/features/.
If tests/features/ directory exists (contains .feature files), verify assertion integrity:
bash .tessl/tiles/tessl-labs/intent-integrity-kit/skills/iikit-07-implement/scripts/bash/testify-tdd.sh comprehensive-check "FEATURE_DIR/tests/features" "CONSTITUTION.md"Parse JSON response: PASS (proceed), BLOCKED (halt, show remediation), WARN (proceed with caution).
If TDD mandatory but tests/features/ missing or empty: ERROR with Run: /iikit-04-testify.
When .feature files exist, apply this chain to each implementation task:
tests/step_definitions/ binding Gherkin steps to application calls..feature files.bash .tessl/tiles/tessl-labs/intent-integrity-kit/skills/iikit-07-implement/scripts/bash/verify-bdd.sh --json "FEATURE_DIR/tests/features" "FEATURE_DIR/plan.md" "FEATURE_DIR/tests/step_definitions" "<language>"steps.status (coverage) and quality.status (assertions). Both must be PASS before marking task complete. If BLOCKED: fix the flagged step definitions.CRITICAL: .feature files MUST NOT be modified during implementation. They are generated by /iikit-04-testify and hash-locked. Only step definitions and production code may be modified. If a .feature file needs changes, re-run /iikit-04-testify.
Tests MUST be run, not just written. Run immediately after writing (expect red); run again after implementing (expect green). Fix code, not tests. Never mark a test task [x] without execution output.
bash .tessl/tiles/tessl-labs/intent-integrity-kit/skills/iikit-07-implement/scripts/bash/verify-test-execution.sh verify "FEATURE_DIR/tests/features" "$(cat test-output.log)"Block on any status other than PASS.
A task is NOT complete until:
verify-steps.sh returns PASS (all steps defined)verify-step-quality.sh returns PASS (no empty/trivial assertions)Do NOT mark [x] in tasks.md until all three gates pass.
Before writing source code:
tessl search <pkg> then tessl install <tile>. Query tile docs before writing library code. See tessl-integration.md.6.1 Task extraction: parse tasks.md for phase, completion status ([x] = skip), dependencies, [P] markers, [USn] labels. Build in-memory task graph.
6.2 Execution strategy — read parallel-execution.md BEFORE proceeding:
If tasks.md contains [P] markers, you MUST use the Task tool to dispatch parallel batches as concurrent subagents (one worker per task). Only fall back to sequential execution if the runtime has no subagent dispatch mechanism. Report mode per formatting-guide.md (Execution Mode Header).
6.3 Phase-by-phase:
Task tool subagent per [P] task in the batch; sequential: one at a time[x] in tasks.md per batch, then commit per chosen strategy (§6.6)Cross-story parallelism: independent stories can run as parallel workstreams after Phase 2 (verify no shared file modifications).
6.4 Rules: install dependencies (§3) and Tessl tiles (§4) before writing code, query tiles before library code, tests before code if TDD, run tests after writing them, only orchestrator updates tasks.md.
6.5 Failure handling: let in-flight siblings finish, mark successes, report failures, halt phase. Constitutional violations in workers: worker stops, reports to orchestrator, treated as task failure.
6.6 Task Commits: Apply the user's chosen commit strategy.
Per-task (strategy A): After each task is marked [x], stage its changed files (git add specific files, NOT -A) and commit:
# Subject + trailers template
feat(<feature-id>): <task-id> <task description>
iikit-feature: <feature-id>
iikit-task: <task-id>
# Bugfix tasks use fix(…) instead of feat(…)
# <feature-id> = FEATURE_DIR with specs/ prefix and trailing / stripped (e.g. 001-user-auth)
# Skip if no files changed; for parallel batches commit each task individually after batch completesBatch (strategy B): Write code continuously, mark tasks [x] as they complete, commit once per phase:
# Subject template
feat(<feature-id>): <phase-name>
# e.g. feat(001-user-auth): Phase 3 - User Story 1
# Stage all changed files for the phase at once
# Still mark each task [x] in tasks.md as it completes (for progress tracking)For both strategies, regenerate the dashboard after commits:
bash .tessl/tiles/tessl-labs/intent-integrity-kit/skills/iikit-07-implement/scripts/bash/generate-dashboard-safe.shBefore writing ANY file: review against constitutional principles. On violation: STOP, explain, suggest alternative.
Report after each task/batch. Mark completed [x] in tasks.md. Halt on failure.
After completing bug fix tasks (tasks with T-B prefix pattern):
FEATURE_DIR/bugs.md exists[x]):
GitHub Issue field from the bug's entry in bugs.md#42):
Fixes #<number> in the last task's commit message (§6.6)gh issue comment if available, otherwise curl the GitHub API (POST /repos/{owner}/{repo}/issues/{number}/comments). Comment content: root cause from bugs.md, completed fix tasks, and fix referenceAll tasks [x], features validated against spec, test execution enforcement (§2.1) satisfied, Tessl usage reported.
Missing artifacts: STOP with run instructions. Constitution violations: STOP, explain, suggest alternative. Checklist incomplete: ask user. Task/parallel failure: report + halt (§6.5). Tests not run: STOP. Tests failing: fix code, re-run.
After all tasks are complete (or on halt), refresh the dashboard and compute the next step. The post-phase script handles both in a single call — it runs generate-dashboard-safe.sh to regenerate the HTML dashboard, then runs next-step.sh --phase 07 --json to determine the next workflow step based on feature completion state:
bash .tessl/tiles/tessl-labs/intent-integrity-kit/skills/iikit-07-implement/scripts/bash/post-phase.sh --phase 07Windows: pwsh .tessl/tiles/tessl-labs/intent-integrity-kit/skills/iikit-07-implement/scripts/powershell/post-phase.ps1 -Phase 07
Note: implement handles its own git commits per the chosen strategy (§6.6), so post-phase is called without --commit-files.
Parse next_step from JSON:
next_step is /iikit-07-implement (feature incomplete): suggest resumingnext_step is null (feature complete): congratulate, list alt_stepsmodel_tier per model-recommendations.mdPush commits to remote if available: git push. If on a feature branch, offer to merge:
git checkout main && git merge <branch>gh pr create if available, otherwise provide the GitHub URLImplementation complete!
Next: [/clear → ] <next_step or "All tasks done!">
[- <alt_step> — <reason> (model: <tier>)]
- Dashboard: file://$(pwd)/.specify/dashboard.htmlevals
scenario-1
scenario-2
scenario-3
scenario-4
scenario-5
scenario-6
scenario-7
scenario-8
scenario-9
scenario-10
scenario-11
scenario-12
scenario-13
scenario-14
rules
skills
iikit-00-constitution
scripts
dashboard
iikit-01-specify
iikit-02-plan
iikit-03-checklist
scripts
bash
dashboard
iikit-04-testify
iikit-05-tasks
iikit-06-analyze
iikit-07-implement
iikit-08-taskstoissues
iikit-bugfix
scripts
dashboard
iikit-clarify
iikit-core
references
scripts
bash
dashboard
powershell
templates