Skip to content
Development
Skill

/preflight

Use before starting delivery work. Pre-implementation validation checklist to ensure readiness.

From plugin
mycelium
5263 skills

Claude Code

$ npx -y skills add haabe/mycelium --skill preflight --agent claude-code

SKILL.md

preflight.SKILL.md
name: preflight
description: "Use before starting delivery work. Pre-implementation validation checklist to ensure readiness."
metadata:
  instruction_budget: "45"
  framework_dependency: "mycelium"
  framework_dependency_note: "This skill is designed to run within the Mycelium framework (https://github.com/haabe/mycelium). Standalone use will skip the canvas state, theory gates, and harness behavior the skill assumes. Install: /plugin install mycelium@haabe-mycelium."

Preflight Skill

Pre-delivery validation checklist. Run before every implementation task.

Checklist

Constraints (ALWAYS FIRST)

Before scoping any delivery work, establish constraints. Do not propose a plan before knowing the budget.

  • [ ] **Time budget**: "How much time do you have for this?" (hours, days, sprint length)
  • [ ] **Resource constraints**: Solo? Team? What skills are available?
  • [ ] **Fidelity**: Demo/prototype vs. production? Who is the audience?
  • [ ] **Dependencies**: Waiting on anything external?

If time budget < 8 hours, scope aggressively — one vertical slice, no polish. If the initial plan exceeds the time budget, cut scope before presenting it to the user.

**Re-forecast trigger (audit-triggered / emergent work).** Work that opens as "just address the recommendations", "quick fix", or any audit/assessment follow-up still gets a constraint pass — set an explicit estimate even when no one asked for one. Then, mid-session, **re-forecast when the work crosses ~2× the estimate or when no estimate was ever set**: stop, state actual-so-far vs estimate, and re-scope or re-confirm the budget before continuing. The failure this catches: emergent cycles that bypass preflight and balloon silently (dogfood `cycle-history.yml` — a "~2h" audit cycle ran ~9h; a "session-scope" one ran ~14h). The re-forecast becomes the `calibration.effort_accuracy` data point at `/retrospective`.

*Source: Hoskins transcript (2026-04-25) — agent proposed 20-hour plan before learning user had 8 hours. Goldratt (Theory of Constraints — identify the constraint before optimizing). Corrections.md: "Over-scope before constraints." Re-forecast trigger from the 2026-06-15 `/framework-health` effort-calibration finding (audit-triggered cycles balloon past estimate).*

Context

  • [ ] corrections.md reviewed for relevant past mistakes
  • [ ] patterns.md reviewed for applicable patterns
  • [ ] Current diamond phase is Develop or Deliver
  • [ ] Acceptance criteria are clear and measurable
  • [ ] Scenarios linked: `.claude/canvas/scenarios.yml` has scenarios for this solution, and acceptance criteria trace back to scenario success/failure states (Hoskins)

Scope

  • [ ] Scope fits within the time budget declared above
  • [ ] This is the smallest vertical slice that delivers value
  • [ ] Scope is explicitly bounded (what is NOT included)
  • [ ] No speculative features (YAGNI check)
  • [ ] Dependencies identified and available

Technical / Production Readiness

**Software/AI tool:**

  • [ ] Tech stack detected and understood
  • [ ] Build/test/lint commands confirmed working
  • [ ] Development environment functional
  • [ ] Existing code patterns reviewed

**Content:**

  • [ ] Production tools ready (editor, recording, hosting)
  • [ ] Style guide / editorial standards available
  • [ ] Existing content patterns reviewed

**Service:**

  • [ ] Delivery tools ready (templates, scheduling, communication)
  • [ ] Existing service patterns reviewed

Security (software, ai_tool, service with digital infra)

  • [ ] Data classification understood for this feature
  • [ ] Security requirements identified (auth, input validation, etc.)
  • [ ] No secrets will be hardcoded
  • [ ] Dependencies checked for known vulnerabilities

Accessibility

**Software:**

  • [ ] Accessibility requirements identified
  • [ ] Semantic HTML approach planned
  • [ ] Keyboard interaction model defined
  • [ ] Color contrast requirements noted

**Content:**

  • [ ] Captions/transcripts planned for audio/video
  • [ ] Alt text planned for images
  • [ ] Readable typography confirmed

Validation Strategy

**Software:** Test approach defined (unit, integration, e2e), edge cases and error scenarios identified. **Content:** Review process defined (SME, self-checklist, fact-check), learning objectives mapped. **AI tool:** Eval test cases defined, red-team scenarios planned, bias testing approach chosen. **Service:** Walkthrough planned, client feedback mechanism defined.

Success Criteria (G-V11)

  • [ ] Declare what will be true after this delivery increment (1-3 measurable statements)
  • [ ] Declare how each criterion will be verified (test, manual check, metric)
  • [ ] Record criteria in .claude/harness/decision-log.md alongside the delivery decision

Example:

Success criteria:
1. "Users can complete onboarding in < 5 min" — verified by usability test
2. "API responds in < 200ms at p95" — verified by load test
3. "No new lint or type errors introduced" — verified by CI

Definition of Done

  • [ ] DoD criteria reviewed and understood
  • [ ] All criteria are achievable within this task

Before anything meets real people (v0.246.0)

A pilot is real people. Before the increment is deployed, published or sent to anyone, an exposure record on the diamond carrying it covers it, with **Security, Privacy and Service Quality passed** for that exposure (since v0.306.0 there is no fallback to the diamond's phase): `python3 "${CLAUDE_PLUGIN_ROOT}/scripts/scale_locks.py" --exposure-state`. If it prints what is missing, that is the next step, before any "pull and restart" instruction to the user. The exposure gate blocks the deploys the agent runs; this line is the guard on the ones the user runs.

**And record who it reaches** (v0.294.0): an entry in the carrying diamond's `exposures`, with the audience, channel, data class, end date, consent and the gates passed for it. `python3 "${CLAUDE_PLUGIN_ROOT}/scripts/scale_locks.py" --exposures` says what is missing. Report only until stage 2 of th

Read more
@haabe
Ships withmycelium

Mycelium won't make your idea good. It keeps you and your agent honest about whether it is, from first idea to market. Built on Claude Code, where the gates are structural. The files and skills port to opencode, Codex and Cursor. Outcome over output.

Stars on GitHub

Momentum

stars in total
52
Star history of haabe/mycelium on GitHub, a chart by star-history.com

Other skills on mycelium.

a11y-check

a11y-check

Accessibility audit, scoped to the surfaces a product actually has. Detects web / rendered_markdown / terminal / native_app /…

@haabe@haabeInstall Skill
adopt

adopt

Bring Mycelium into a project that already has code. Detects that the repo predates the framework, asks before touching anything,…

@haabe@haabeInstall Skill
assumption-test

assumption-test

Design the smallest viable test to validate or invalidate a critical assumption. Based on Torres's assumption testing framework,…

@haabe@haabeInstall Skill
bias-check

bias-check

Use before any research activity or significant decision. Reviews cognitive biases relevant to the current stage.

@haabe@haabeInstall Skill
bvssh-check

bvssh-check

Use to evaluate whether current work aligns with Better Value Sooner Safer Happier. Run at diamond completion and periodically.

@haabe@haabeInstall Skill
canvas-health

canvas-health

Lint canvas files for staleness, missing fields, inconsistent evidence types, and orphaned references. Run periodically or before…

@haabe@haabeInstall Skill

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills11d309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc13d293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react2d252k
@facebook@facebookInstall Skill

Questions about preflight.

Which coding agents can use preflight?
preflight installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.