# Command Checklist

## General Rules (G1-G6)

- **G1**: Run shell scripts (`.sh`) directly. NEVER run Python scripts directly.
- **G2**: Do NOT use ad-hoc commands (cat/ls/find/grep/mkdir/for-loops).
    - *Exception:* The **Read tool** is permitted ONLY for checking `.smbatcher/REGISTRY.md` existence.
- **G3**: NEVER use HEREDOC for ad-hoc file writing.
- **G4**: Use `${TMP}` from `.wdmaker/config.toml` for temp files, NOT `/tmp`.
- **G5**: Use provided scripts for directories; never mkdir; no .gitkeep files.
- **G6**: Do NOT delete generated reports (batch reports, logs, etc.).

## Prohibited Commands

| Prohibited | Use Instead |
|------------|-------------|
| `ls`, `cat`, `less`, `head`, `tail` | `tools/prepare/info.sh --root .` |
| `find`, `wc`, globs | `tools/prepare/info.sh` or specific check scripts |
| `grep` (piping output) | Read full output or use status scripts |
| `mkdir` | `tools/prepare/batch.sh` auto-scaffolds directories |
| `for` loops, ad-hoc python | `tools/prepare/register.sh` or batch scripts |
| HEREDOC (`<<EOF`) | Write tool or Filesystem MCP |
| `python3`, `uv run` | `.sh` wrapper scripts in `tools/` |

## Assist Scripts by Phase

### Prepare
- `tools/prepare/info.sh [--root .]` — config preview, sites.csv check
- `tools/prepare/register.sh --input-file <csv>` — register sites
- `tools/prepare/batch.sh --version <vX> --batch-size <N> --input-file <csv>` — create batch
- `tools/check/site-list.sh <csv>` — CSV validation
- `tools/check/status-report.sh` — status summary
- `tools/check/batch-manage.sh list` — list registry entries

### Design
*Subagent Instructions: `tools/design/SDESIGN.md`*
*Background Mode: See `tools/design/MDESIGN_BG.md`*

| Step | Script |
|------|--------|
| Find Next | `tools/shared/find-next.sh --registry .smbatcher/REGISTRY.md --phase design --format json` |
| Check Dirs | `tools/design/check-dirs.sh --batch-id <ID> --root .` |
| Frequency | `tools/design/frequency.sh --root .` |
| Seeds | `tools/design/analyze-seeds.sh --batch-id <ID>` |
| Mark Start | `tools/design/start.sh <domain> --root .` |
| Read Design | `tools/design/read-design.sh <path>` |
| Validate | `tools/design/check-design.sh <path> [--verbose]` |
| Stamp | `tools/design/write-design.sh <path> --auto` |
| Mark Done | `tools/design/complete.sh <domain> --root .` |
| Verify Wave | `tools/design/verify-post-design.sh --batch-id <ID>` |

### Implement
*Subagent Instructions: `tools/implement/SIMPLEMENT.md`*
*Background Mode: See `tools/implement/MIMPLEMENT_BG.md`*

| Step | Script |
|------|--------|
| Find Next | `tools/shared/find-next.sh --registry .smbatcher/REGISTRY.md --phase implement` |
| Lock Batch | `tools/implement/lock.sh <BATCH>` |
| Status | `tools/implement/status.sh <BATCH_ID>` |
| Mark Start | `tools/implement/start.sh <domain> --root .` |
| Read Design | `tools/design/read-design.sh <path> [--summary]` |
| Check Outputs | `tools/implement/check-outputs.sh sites/<domain-vX>` |
| Verify Site | `tools/check/verify-site.sh sites/<domain-vX>` |
| Compliance | `tools/check/design-compliance.sh sites/<domain-vX>` |
| Mark Done | `tools/implement/complete.sh <domain> --root .` |
| Finish Batch | `tools/implement/finish.sh --batch <BATCH> --root .` |

### Shared / Check
- `tools/shared/validate.sh <file>` — HTML/asset validation
- `tools/shared/similarity.sh <file1> <file2>` — similarity check
- `tools/check/html-check.sh`, `tools/check/js-syntax.sh`, `tools/check/file-stats.sh`

## Parallel Subagent Launch

**CRITICAL**: To launch subagents in parallel, send a **SINGLE message** with **MULTIPLE Task tool calls**.

```
DO:     One message with 10 Task calls = 10 parallel subagents
DO NOT: 10 sequential messages with 1 Task call each
```

## Status Codes

| Phase | Code | Meaning | Set By |
|-------|------|---------|--------|
| Prepare | B | Batched | `tools/prepare/batch.sh` |
| Design | d | Design in-progress | `tools/design/start.sh` |
| Design | D | Design complete | `tools/design/complete.sh` |
| Implement | O | Open for implement | `tools/implement/lock.sh` |
| Implement | i | Implement in-progress | `tools/implement/start.sh` |
| Implement | I | Implement complete | `tools/implement/complete.sh` |
| Implement | Q | Done | `tools/implement/finish.sh` |