Closing the intent-to-code chasm - specification-driven development with BDD verification chain
92
92%
Does it follow best practices?
Impact
92%
1.53xAverage score across 14 eval scenarios
Advisory
Suggest reviewing before use
Process steps in order. Do not skip ahead.
Generate executable Gherkin .feature files from requirement artifacts before implementation. Enables TDD by creating hash-locked BDD scenarios that serve as acceptance criteria.
OS convention: All commands are shown in bash. PowerShell equivalents exist at the same path with a
.ps1extension (e.g.,scripts/powershell/check-prerequisites.ps1) and accept the same flags in PascalCase (e.g.,-Phase 04 -Json).
Load constitution per constitution-loading.md (basic mode), then perform TDD assessment:
Scan for TDD indicators:
Report per formatting-guide.md (TDD Assessment section).
Run:
bash .tessl/plugins/tessl-labs/intent-integrity-kit/skills/iikit-04-testify/scripts/bash/check-prerequisites.sh --phase 04 --jsonWindows: pwsh .tessl/plugins/tessl-labs/intent-integrity-kit/skills/iikit-04-testify/scripts/powershell/check-prerequisites.ps1 -Phase 04 -Json
Parse for FEATURE_DIR and AVAILABLE_DOCS. Require plan.md and spec.md (ERROR if missing).
If JSON contains 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/plugins/tessl-labs/intent-integrity-kit/skills/iikit-04-testify/scripts/bash/set-active-feature.sh --json <selection>Windows: pwsh .tessl/plugins/tessl-labs/intent-integrity-kit/skills/iikit-04-testify/scripts/powershell/set-active-feature.ps1 -Json <selection>
Then re-run the prerequisites check (item 1 of this section).
Checklist gate per checklist-gate.md.
Search spec.md for Given/When/Then patterns. If none found: ERROR with Run: /iikit-clarify.
spec.md (acceptance scenarios), plan.md (API contracts, tech stack)data-model.md (validation rules)Proceed immediately to Step 2.
Create .feature files in FEATURE_DIR/tests/features/:
Output directory: FEATURE_DIR/tests/features/ (create if it does not exist)
File organization: Generate one .feature file per user story or logical grouping. Use descriptive filenames (e.g., login.feature, user-management.feature).
Gherkin Tag Conventions
Every scenario MUST include traceability tags:
@TS-XXX — test spec ID (sequential, unique across all .feature files)@FR-XXX — functional requirement from spec.md@SC-XXX — success criteria from spec.md@US-XXX — user story reference@P1 / @P2 / @P3 — priority level@acceptance / @contract / @validation — test typeSC-XXX coverage rule: For each SC-XXX in spec.md, ensure at least one scenario carries the corresponding @SC-XXX tag. If an existing FR scenario already covers the criterion, add the tag there rather than creating a duplicate.
Feature-level tags for shared metadata:
@US-XXX on the Feature line for the parent user storyTransformation Rules
From spec.md — Acceptance Tests: For each Given/When/Then scenario, generate a Gherkin scenario.
Use testspec-template.md as the Gherkin file template. For transformation examples, advanced constructs (Background, Scenario Outline, Rule), and syntax validation rules, see gherkin-reference.md.
Proceed immediately to Step 3.
Add an HTML comment at the top of each .feature file:
# DO NOT MODIFY SCENARIOS
# Derived from requirements. Fix code to pass tests; re-run /iikit-04-testify if requirements change.Proceed immediately to Step 4.
If tests/features/ already contains .feature files:
# DEPRECATED:)Proceed immediately to Step 5.
CRITICAL: Store SHA256 hash in both context.json and git note in a single call:
bash .tessl/plugins/tessl-labs/intent-integrity-kit/skills/iikit-04-testify/scripts/bash/testify-tdd.sh store-all "FEATURE_DIR/tests/features"Returns JSON with hash and git_note status. The implement skill verifies this hash before proceeding.
Proceed immediately to Step 6.
Output: TDD determination, scenario counts by source (acceptance/contract/validation), output directory path, number of .feature files generated, hash status (LOCKED).
Finish here.
| Condition | Response |
|---|---|
| No constitution | ERROR: Run /iikit-00-constitution |
| TDD forbidden | ERROR with evidence |
| No plan.md | ERROR: Run /iikit-02-plan |
| No spec.md | ERROR: Run /iikit-01-specify |
| No acceptance scenarios | ERROR: Run /iikit-clarify |
| .feature syntax error | FIX: Auto-correct and report |
Run post-phase to commit, refresh dashboard, and compute next step in a single call:
bash .tessl/plugins/tessl-labs/intent-integrity-kit/skills/iikit-04-testify/scripts/bash/post-phase.sh --phase 04 --commit-files "specs/*/tests/features/,specs/*/context.json,.specify/context.json" --commit-msg "testify: <feature-short-name> BDD scenarios"Parse next_step from JSON. Present per model-recommendations.md:
Feature files generated!
Next: [/clear → ] <next_step> (model: <tier>)
[- <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
scripts
bash
dashboard
powershell
templates