Pre-Flight Check Skill
Before writing code, run through these checklists to validate your approach and catch potential issues early.
⚠️ MANDATORY: Git Workflow Check (DO THIS FIRST)
STOP! Before ANY code changes, complete this checklist:
1. Issue Check
# What issue are you working on?
bd show <issue-id>
# If no issue exists, create one first:
bd create --title="..." --type=feature|bug|task --priority=2
2. Branch Check
# What branch are you on?
git branch --show-current
# Are you on main? CREATE A FEATURE BRANCH:
git checkout -b feature/<issue-id>-short-description
3. Worklog Check
# Does a worklog entry exist for this issue?
ls .worklog/*<issue-id>*
Red Flags - STOP if any are true:
| Situation | Action Required |
|---|
| No issue for this work | Run bd create first |
| On main branch | Run git checkout -b feature/... |
| Issue not claimed | Run bd update <id> --status=in_progress |
Only proceed to code changes after ALL boxes are checked.
When to Use This Skill
Activate pre-flight checks when:
- Starting work on any issue (git workflow check FIRST)
- Creating a new file
- Making significant edits to existing code
- Implementing a new feature
- Uncertain about the right approach
Quick Decision Tree
What are you creating?
│
├─ HTML page/component
│ └─ Use: HTML Pre-Flight Checklist
│ └─ Check: xhtml-author, accessibility-checker, metadata skills
│
├─ CSS file
│ └─ Use: CSS Pre-Flight Checklist
│ └─ Check: css-author, design-tokens skills
│
├─ JavaScript file
│ └─ Use: JavaScript Pre-Flight Checklist
│ └─ Check: javascript-author skill
│
├─ Form
│ └─ Use: Forms Pre-Flight Checklist
│ └─ Check: forms skill
│
├─ Image addition
│ └─ Use: Images Pre-Flight Checklist
│ └─ Check: responsive-images skill
│
└─ New site/project
└─ Use: Site Essentials Pre-Flight Checklist
└─ Check: site-scaffold skill
Auto-Invoke Rules
These skills should be invoked automatically based on context:
| Context | Auto-invoke Skills |
|---|
| Any code change | pre-flight-check (this skill) - ALWAYS FIRST |
| Creating/editing .html | xhtml-author, accessibility-checker |
| Creating/editing .css | css-author |
| Creating/editing .js | javascript-author |
| Adding icons/visual indicators | icons - NEVER use inline SVGs |
| Adding images | responsive-images, placeholder-images |
| Creating forms | forms - Use <form-field> pattern |
| API calls in code | api-client - Retry logic, error handling |
| Web Components | custom-elements, state-management |
Common Multi-Skill Patterns
When building these features, invoke ALL listed skills:
| Feature | Skills to Invoke |
|---|
| Theme toggle (dark/light) | css-author, javascript-author, data-storage, icons, progressive-enhancement |
| Contact form | xhtml-author, forms, accessibility-checker, javascript-author |
| Product card grid | xhtml-author, css-author, responsive-images, icons |
| Navigation menu | xhtml-author, css-author, icons, accessibility-checker |
| API integration | javascript-author, api-client, error-handling, state-management |
| User authentication | authentication, security, forms, javascript-author |
Critical: Icons
ALWAYS invoke the icons skill when adding visual indicators. Theme toggles, buttons with icons, navigation icons, status indicators - ALL should use <x-icon>, never inline SVGs.
See COMPOSITIONS.md for more multi-skill patterns.
HTML Pre-Flight Checklist
Before writing HTML, verify:
Structure
Patterns to Consider
Metadata
Accessibility
Potential Issues
| Issue | Check For |
|---|
Multiple <h1> | Only one per page allowed |
| Missing landmarks | Every page needs <main> |
| Div soup | Use semantic elements instead |
| Inline styles | Will fail validation |
| Missing lang | <html lang="..."> required |
CSS Pre-Flight Checklist
Before writing CSS, verify:
Architecture
Patterns to Consider
Selectors
Potential Issues
| Issue | Check For |
|---|
| Nesting > 3 levels | Will trigger stylelint warning |
| Magic numbers | Use tokens for spacing, colors |
| Class-based state | Use data-* attributes |
| Missing layer | CSS should use @layer |
| Duplicate properties | Same property twice in block |
JavaScript Pre-Flight Checklist
Before writing JavaScript, verify:
Architecture
File Structure
Patterns to Consider
Potential Issues
| Issue | Check For |
|---|
var usage | Use const or let |
| Default exports | Use named exports only |
| Missing cleanup | Memory leaks from listeners |
| No JSDoc | Document classes and public methods |
| Complexity > 10 | Refactor into smaller functions |
Forms Pre-Flight Checklist
Before building forms, verify:
Structure
Accessibility
Patterns to Consider
Potential Issues
| Issue | Check For |
|---|
| Unlabeled inputs | Major accessibility violation |
| Missing autocomplete | Hurts user experience |
| No error containers | Where will errors display? |
| Hidden labels | Use .visually-hidden, not display: none |
Images Pre-Flight Checklist
Before adding images, verify:
Files
HTML Attributes
Patterns to Consider
Potential Issues
| Issue | Check For |
|---|
| Missing alt | Accessibility violation |
| No modern formats | Large file sizes |
| Missing dimensions | Layout shift |
| No lazy loading | Performance impact |
Site Essentials Pre-Flight Checklist
Before launching or when setting up a new site, verify these essentials exist:
Core Files
Error & Fallback Pages
Security
Favicon Set
Quick Check Command
# Check for essential files in site root
ls -la robots.txt sitemap.xml humans.txt manifest.json 404.html 500.html 2>/dev/null
ls -la .well-known/security.txt 2>/dev/null
When to Create These
| File | When Required |
|---|
| robots.txt | All public sites |
| sitemap.xml | All public sites with multiple pages |
| 404.html | All sites |
| 500.html | All sites with server-side processing |
| offline.html | Sites with service workers |
| noscript.html | JS-required applications only |
| security.txt | Production sites accepting security reports |
| humans.txt | Optional, but good practice |
See site-scaffold skill for templates.
Pattern Matching Guide
When the user says... suggest this pattern:
| User Intent | Suggested Pattern/Skill |
|---|
| "add a page" | patterns skill, page templates |
| "create a form" | forms skill, <form-field> pattern |
| "add navigation" | <nav> with aria-label |
| "make it accessible" | accessibility-checker skill |
| "add an image" | responsive-images skill, <picture> |
| "style this" | css-architecture skill, layers |
| "add interactivity" | First check progressive-enhancement for CSS-only |
| "create a component" | javascript-author skill, Web Component |
| "add metadata" | metadata skill, profiles |
| "add dark mode" | design-tokens skill, color-scheme |
Red Flags to Watch For
Stop and reconsider if you notice:
- "Just add a div" - There's almost always a semantic element
- "Add a class for state" - Use
data-* attributes instead
- "Quick inline style" - Will fail validation
- "Just copy this code" - Check if a pattern/skill exists first
- "Add JavaScript for..." - Check if CSS can do it first
- "Skip the alt text" - Never acceptable
- "We'll fix it later" - Validation catches issues now
Verification Commands
After writing, verify with:
# HTML validation
npm run lint
# CSS validation
npm run lint:css
# JavaScript validation
npm run lint:js
# Accessibility check
npm run a11y
# Full validation
npm run lint:all
⚠️ MANDATORY: Completion Checklist (DO THIS LAST)
Before saying "done", complete this checklist:
1. Tests Pass
npm test
npm run lint:all
npm run test:coverage # Check for missing tests
2. Worklog Updated
3. Commit Changes
git add <files>
git commit -m "type(scope): description"
4. Request UAT
/uat request <feature-name>
# This adds uat:requested label to the issue
5. Wait for Approval
# Check UAT status
/uat status <feature-name>
# Or check issue labels
bd show <issue-id>
Completion Red Flags:
| Situation | Action Required |
|---|
| Tests failing | Fix before proceeding |
| No worklog entry | Create one now |
| On main branch | Should have been on feature branch |
| No UAT requested | Run /uat request <feature-name> |
| Closing without approval | STOP - check bd show <id> for uat:approved label |
uat:denied label present | Address feedback, then /uat request again |
Related Skills
- git-workflow - Enforce structured git workflow with conventional commits
- unit-testing - Write unit tests for JavaScript files
- xhtml-author - Write valid XHTML-strict HTML5 markup
- css-author - Modern CSS organization with @layer
- javascript-author - Vanilla JavaScript for Web Components
- icons - Lucide icon library with
<x-icon> Web Component
- forms - HTML-first form patterns with CSS-only validation
- accessibility-checker - Ensure WCAG2AA accessibility compliance