Skip to content

feat: behavior coverage, pre-mortem levels, Status elimination, disk-evidence selection#146

Merged
nullhack merged 1 commit into
mainfrom
feat/behavior-coverage-status-elimination
May 8, 2026
Merged

feat: behavior coverage, pre-mortem levels, Status elimination, disk-evidence selection#146
nullhack merged 1 commit into
mainfrom
feat/behavior-coverage-status-elimination

Conversation

@nullhack
Copy link
Copy Markdown
Owner

@nullhack nullhack commented May 8, 2026

Summary

  • Behavioral Distinctness + Behavior Pre-Mortem: Adds 4th pre-mortem level (behavior) with per-rule-type prompts. Adds Behavioral Distinctness concept to gherkin knowledge — partition examples by Then outcome, not input value. Structural/invariant rules get one representative example; full coverage deferred to Hypothesis property tests.
  • Invariant Property Tests: Widens property test scope from @bug only to all invariant/structural rules. Adds Invariant Property Tests concept to test-design knowledge.
  • Status field elimination: Removes Status: ELICITING | BASELINED from feature files entirely. Status is derivable from content (no file = not discovered, description only = discovery, rules but no @ids = breakdown, @id-tagged examples = baselined). Replaces feature-status: ==BASELINED flow condition with baseline-confirmed: ==verified.
  • Disk-evidence feature selection: Rewrites select-feature skill to detect delivery status from disk evidence (diff @id tags vs test functions + test run results) instead of reading Status fields.
  • Template rename: feature.feature.template<feature_name>.feature.template (consistent with <type_id> placeholder convention in AGENTS.md).

Files changed

Knowledge (5 files)

  • gherkin.md — Behavioral Distinctness concept + common mistake + key takeaway
  • pre-mortem.md — 4th level Behavior Pre-Mortem with prompts for action/behavioural/structural rules
  • test-design.md — Invariant Property Tests concept, widened property test table scope
  • feature-discovery.md — content-based lifecycle instead of Status enum
  • wsjf.md — @id-tagged Examples eligibility instead of Status: BASELINED

Skills (4 files)

  • write-bdd-features/SKILL.md — step 5: group by Then, discard duplicates, behavior pre-mortem
  • write-test/SKILL.md — step 1: structural rules also get Hypothesis property tests
  • select-feature/SKILL.md — rewrite: detect delivery status from disk evidence
  • discover-features/SKILL.md — remove Status: ELICITING from file creation
  • confirm-baseline/SKILL.md — remove redundant Status check

Flow (1 file)

  • planning-flow.yamlfeature-status: ==BASELINEDbaseline-confirmed: ==verified

Template (1 file)

  • feature.feature.template<feature_name>.feature.template, Status line removed

AGENTS.md — template path example updated

…evidence selection

Knowledge:
- gherkin: add Behavioral Distinctness concept (Wynne/Adzic) + common mistake
- pre-mortem: add 4th level (Behavior Pre-Mortem) with per-rule-type prompts
- test-design: add Invariant Property Tests concept, widen property test scope
- feature-discovery: replace Status enum with content-based lifecycle indicators
- wsjf: replace Status: BASELINED with @id-tagged Examples eligibility

Skills:
- write-bdd-features: insert step 5 for behavior coverage verification + pre-mortem
- write-test: amend step 1 for structural rule property tests
- select-feature: rewrite to detect delivery status from disk evidence (diff @id vs tests)
- discover-features: remove Status: ELICITING from file creation
- confirm-baseline: remove redundant Status check (step 1 already verifies @ids)

Flow:
- planning-flow: replace feature-status: ==BASELINED with baseline-confirmed: ==verified

Template:
- rename feature.feature.template → <feature_name>.feature.template
- remove Status: ELICITING | BASELINED line from template

AGENTS.md: update template path reference
@nullhack nullhack merged commit adb1b5b into main May 8, 2026
10 checks passed
@nullhack nullhack deleted the feat/behavior-coverage-status-elimination branch May 8, 2026 13:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant