/mission-airlock - Validation Gate
Run tests, lint, and type checking before task completion.
Instructions
Step 1: Detect Project Type
Check for these files in project root:
| File | Type |
|------|------|
| package.json | Node.js |
| Cargo.toml | Rust |
| pyproject.toml or setup.py | Python |
| go.mod | Go |
| Makefile | Make |
| build.gradle | Gradle |
| pom.xml | Maven |
Step 2: Run Tests
| Type | Command |
|------|---------|
| Node.js | npm test (if "test" script exists in package.json) |
| Rust | cargo test |
| Python | pytest or python -m unittest discover |
| Go | go test ./... |
| Make | make test (if target exists) |
| Gradle | ./gradlew test |
| Maven | mvn test |
Step 3: Run Lint
| Type | Command |
|------|---------|
| Node.js | npm run lint or npx eslint . or npx biome check . |
| Rust | cargo clippy -- -D warnings |
| Python | ruff check . or flake8 . |
| Go | golangci-lint run or go vet ./... |
| Make | make lint (if target exists) |
| Gradle | ./gradlew spotlessCheck or ./gradlew checkstyleMain |
| Maven | mvn checkstyle:check (if configured) |
Step 4: Run Type Check (if applicable)
| Type | Command |
|------|---------|
| Node.js | npx tsc --noEmit (if tsconfig.json exists) |
| Python | mypy . (if configured) |
Step 5: Report Result
- All pass →
=== RESULT: PASS === - Any fail →
=== RESULT: FAIL ===
Pod Integration
On PASS: Proceed to bd close <task_id>.
On FAIL: Create blocking bug:
bd create -t bug --title="Airlock: [summary]" --priority=1
bd comments <bug-id> --add "[CONTEXT] Task: <task-id>, Failure: <type>, Output: <error>"
bd dep add <task-id> <bug-id>
bd sync
Bug Severity
| Failure | Severity | Blocks? | |---------|----------|---------| | Tests fail | blocker (P1) | Yes | | Build fail | critical (P0) | Yes + halt Ralph | | Lint/Type fail | warning (P2) | No |
Scan to join WeChat group