mcpField
D
doc-bdd-autopilot

doc-bdd-autopilot

github.com/vladm3105Testing & quality1737 installsUpdated 1d ago
Repository

About doc-bdd-autopilot

doc-bdd-autopilot is a skill that generates or reviews BDD suites from EARS documents, prompts, or implementation plans. It validates scenarios, applies audit-driven fixes, and updates the BDD index when quality requirements are met.

Key features

  1. 01Generates BDD scenarios from EARS, prompts, or plans
  2. 02Reviews existing BDDs and applies fixes
  3. 03Audits readiness and repeats the fix cycle
  4. 04Processes single items or batches
  5. 05Updates the BDD index after passing

Use cases

  1. 01Turning EARS requirements into BDD scenarios
  2. 02Reviewing and repairing an existing BDD
  3. 03Generating BDDs for a batch of upstream documents
  4. 04Running a dry run of planned BDD work

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/vladm3105/aidoc-flow-framework --skill doc-bdd-autopilot

After installing, type/doc-bdd-autopilotin Claude Code to confirm it loaded.

Details

From the project README

doc-bdd-autopilot

Purpose

Automated BDD generation pipeline. From upstream EARS (docs/03_EARS/), a user prompt, or an implementation plan (IPLAN-*), it analyzes the source, generates a complete BDD suite of Given-When-Then scenarios, validates readiness, maintains BDD-00_index.md, and drives the audit↔fix cycle to a passing ADR-Ready score — for one BDD or a batch.

Layer: 4. Upstream: EARS (with BRD/PRD trace) / prompt / IPLAN input. Downstream: a validated BDD + index entry.

Skill Dependencies

SkillRole
../doc-bdd/SKILL.mdBDD structure, YAML scenario schema, and authoring rules (generation)
../doc-bdd-audit/SKILL.mdquality gate (ADR-Ready scoring + findings)
../doc-bdd-fixer/SKILL.mdapplies fixes from the audit report
../doc-naming/SKILL.mdelement-ID standards

Input Contract

Accepts: a target BDD id/path; an upstream EARS id/path; a free-text prompt; or an IPLAN path. Optional: score threshold (default 90), max fix iterations (default 3), batch list. With no explicit input, treat the request as a prompt.

Smart Document Detection

For each target, check whether the BDD already exists (nested folder docs/04_BDD/BDD-NN_{slug}/):

  • Missing → generate mode (from EARS / prompt / IPLAN).
  • Exists → review & fix mode (audit, then fix if below threshold).

Determine deliverable_type (code/document/ux/risk/process) from the inherited PRD/BRD chain. Verify the upstream EARS exists before generating.

Model precheck

Advisory, best-effort. Surfaces the model you recommended for this layer; it cannot switch the session model. Before invoking the driver:

  1. If .claude/aidoc-flow.config.yaml is absent, or has no model.* keys, skip this section entirely (no output).
  2. Resolve the recommended model: model.per_layer.BDD if set, else model.default.
  3. Act on model.precheck (warn | silent | block):
    • warn (default) — print one line, then continue to the driver: ℹ BDD recommends model '<rec>'. If you're not on it, run /model <rec> (or set model.precheck: silent to hide this).
    • silent — print nothing; continue.
    • block — print the line above plus precheck=block: confirm you want to draft on the current model, or run /model <rec> first., then wait for the user to confirm before continuing.

Workflow

Saga-driven generation loop (review_mode: team)

Step 1 — Invoke the driver. Period. The harness sets PREV_OUTPUT, ARTIFACT_ID, ARTIFACT_PATH env vars before invoking this SKILL. Your first orchestration action MUST be the Bash tool (the Model precheck above runs first), running exactly:

python3 "${CLAUDE_PLUGIN_ROOT}/tools/saga_driver.py" \
  --layer 04_BDD \
  --allow-skip-permissions

--allow-skip-permissions lets the phases the driver dispatches write files without a permission prompt — unattended autopilot requires it. Drop the flag to run the same loop with Claude Code's normal prompts on.

Use a generous timeout (≥1800s). Do not pre-analyze the input. Do not read the upstream. Do not classify type/scope. The driver and its dispatched subprocesses (/aidoc-flow:doc-bdd for draft, /aidoc-flow:doc-bdd-audit for review, /aidoc-flow:doc-bdd-fixer for fixer) handle all of that. The driver enforces the state machine preemptively per ${CLAUDE_PLUGIN_ROOT}/framework/governance/REVIEW_SAGA.md; this SKILL's job is to invoke it and report.

Step 2 — After the driver returns, report. Read .aidoc/review/04_BDD/${ARTIFACT_ID}/saga.json. Final status MUST be one of CLOSED (PASS), ESCALATED (terminal FAIL), or PARTIAL_TIMEOUT (soft-deadline; resumable). Print the status, the final score from verdict.json if present, and a 1-line summary.

Step 3 — Index update (only on CLOSED). Add a row to docs/04_BDD/BDD-00_index.md referencing the new BDD; update the upstream artifact's downstream entry.

That is the entire workflow in team mode. If you find yourself doing anything else here — drafting prose, dispatching Task subagents, invoking other slash commands — STOP, recognize that you are bypassing the driver, and invoke the Bash command above instead.

Linear Pipeline (review_mode: single_pass)

Unchanged legacy behaviour — used when the profile says so, when Task subagent dispatch is unavailable, or at write-time (on_author) where cost is the primary concern. The 5-step in-session pattern below produces the BDD without saga.json; the harness's saga-journal check will then fail the layer, so this mode is only appropriate for manual dry-runs.

  1. Input analysis — classify the input (EARS / prompt / IPLAN), locate the upstream EARS and its BRD/PRD trace elements, and decide generate vs review-and-fix.
  2. Type & scope — confirm the referenced EARS (and its PRD/BRD elements) exist; map EARS statements to scenario categories; reserve the next BDD-NN.
  3. Generation — produce the BDD per ../doc-bdd/SKILL.md: Document Control first, all 5 sections, a feature: block, and a scenarios: YAML list across the five categories — each scenario a mapping with given/when/then phase lists, an element-level ears: list, id BDD.NN.03.xxxx, type/priority, inline @threshold: references, and a spec_trace. Sequence diagrams via ../charts-flow/SKILL.md.
  4. Validation — run ../doc-bdd-audit/SKILL.md from scratch.
  5. Audit ↔ fix cycle — while score < threshold and iterations < max: run ../doc-bdd-fixer/SKILL.md, then re-audit. On pass, update docs/04_BDD/BDD-00_index.md; on exhausting iterations, flag for manual review.

Execution Modes

  • Single — one BDD (generate or review-and-fix).
  • Batch — multiple BDDs, processed in chunks of 3 to bound context; generate in upstream EARS order.
  • Dry-run — report the planned actions (scenarios, categories, IDs) without writing files.

Quality Gates

  • Generation does not complete until the audit passes (ADR-Ready ≥ threshold, 0 Tier-1 errors) or the iteration cap is hit (then: manual-review flag).
  • The BDD index is updated only after a BDD passes.
  • Fresh audit every cycle — no cached scores.

Error Handling

SituationAction
Referenced upstream EARS/PRD/BRD missingstop; report the missing dependency
Max iterations reached below thresholdwrite reports, flag for manual review, continue batch
Source input ambiguousfall back to prompt mode; record assumptions in the BDD
Write/permission errorlog, skip the item, continue the batch

Adaptation

Before applying defaults, read the project adaptation profile (.aidoc/profile.yaml) and apply it in both the generation and the internal audit/fix phases. Honor section_toggles, active_layers, audit_threshold (raise-only — stricter only), and glossary. Ignore any unknown or out-of-surface key; absent a profile, use framework defaults. Authority: ${CLAUDE_PLUGIN_ROOT}/framework/governance/ADAPTATION.md.

Related Resources

  • Create: ../doc-bdd/SKILL.md · Audit: ../doc-bdd-audit/SKILL.md · Fix: ../doc-bdd-fixer/SKILL.md
  • Authority: ${CLAUDE_PLUGIN_ROOT}/framework/layers/04_BDD/BDD-TEMPLATE.yaml, ${CLAUDE_PLUGIN_ROOT}/framework/layers/04_BDD/README.md, ${CLAUDE_PLUGIN_ROOT}/framework/layers/04_BDD/BDD-00_index.TEMPLATE.md

Comments

Markdown supported