Closing the intent-to-code chasm - specification-driven development with BDD verification chain
95
Does it follow best practices?
Validation for skill structure
Generate executable Gherkin .feature files from requirement artifacts before implementation. Enables TDD by creating hash-locked BDD scenarios that serve as acceptance criteria.
$ARGUMENTSThis skill accepts no user input parameters — it reads artifacts automatically.
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/tiles/tessl-labs/intent-integrity-kit/skills/iikit-04-testify/scripts/bash/check-prerequisites.sh --phase 04 --json
Windows: pwsh .tessl/tiles/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/tiles/tessl-labs/intent-integrity-kit/skills/iikit-04-testify/scripts/bash/set-active-feature.sh --json <selection>Windows: pwsh .tessl/tiles/tessl-labs/intent-integrity-kit/skills/iikit-04-testify/scripts/powershell/set-active-feature.ps1 -Json <selection>
Then re-run the prerequisites check from step 1.
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)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).
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 is tagged with the corresponding @SC-XXX. If an FR scenario already covers the success criterion, add the @SC-XXX tag to that scenario rather than creating a duplicate.
Feature-level tags for shared metadata:
@US-XXX on the Feature line for the parent user storyFrom 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.
Add an HTML comment at the top of each .feature file:
# DO NOT MODIFY SCENARIOS
# These .feature files define expected behavior derived from requirements.
# During implementation:
# - Write step definitions to match these scenarios
# - Fix code to pass tests, don't modify .feature files
# - If requirements change, re-run /iikit-04-testifyIf tests/features/ already contains .feature files:
# DEPRECATED:)CRITICAL: Store SHA256 hash of assertion content in both locations:
# Context.json (auto-derived from features directory path)
bash .tessl/tiles/tessl-labs/intent-integrity-kit/skills/iikit-04-testify/scripts/bash/testify-tdd.sh store-hash "FEATURE_DIR/tests/features"
# Git note (tamper-resistant backup — uses first .feature file for note attachment)
bash .tessl/tiles/tessl-labs/intent-integrity-kit/skills/iikit-04-testify/scripts/bash/testify-tdd.sh store-git-note "FEATURE_DIR/tests/features"Windows (PowerShell):
pwsh .tessl/tiles/tessl-labs/intent-integrity-kit/skills/iikit-04-testify/scripts/powershell/testify-tdd.ps1 store-hash "FEATURE_DIR/tests/features"
pwsh .tessl/tiles/tessl-labs/intent-integrity-kit/skills/iikit-04-testify/scripts/powershell/testify-tdd.ps1 store-git-note "FEATURE_DIR/tests/features"The implement skill verifies this hash before proceeding, blocking if .feature file assertions were tampered with.
Output: TDD determination, scenario counts by source (acceptance/contract/validation), output directory path, number of .feature files generated, hash status (LOCKED).
| 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 |
Regenerate the dashboard so the pipeline reflects the new testify artifacts:
bash .tessl/tiles/tessl-labs/intent-integrity-kit/skills/iikit-04-testify/scripts/bash/generate-dashboard-safe.shWindows: pwsh .tessl/tiles/tessl-labs/intent-integrity-kit/skills/iikit-04-testify/scripts/powershell/generate-dashboard-safe.ps1
Run: bash .tessl/tiles/tessl-labs/intent-integrity-kit/skills/iikit-04-testify/scripts/bash/next-step.sh --phase 04 --json
Windows: pwsh .tessl/tiles/tessl-labs/intent-integrity-kit/skills/iikit-04-testify/scripts/powershell/next-step.ps1 -Phase 04 -Json
Parse the JSON and present:
clear_after is true: suggest /clear before proceedingnext_step as the primary recommendationalt_steps non-empty: list as alternativesnext_step and each alt_step, include the model_tier from the JSON so the user knows which model is best for each option. Look up tiers in model-recommendations.md for agent-specific switch commands.Format:
Feature files generated!
Next: [/clear → ] <next_step> (model: <tier>)
[- <alt_step> — <reason> (model: <tier>)]
- Dashboard: file://$(pwd)/.specify/dashboard.html (resolve the path)Install with Tessl CLI
npx tessl i tessl-labs/intent-integrity-kit@2.7.12rules
skills
iikit-00-constitution
scripts
iikit-01-specify
iikit-02-plan
iikit-03-checklist
scripts
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