| name | flutter-project-harness |
| description | Plan, implement, resume, revise, validate, package, and finalize work in this Flutter repository with durable file-backed state and deterministic gates. Use for new features, bug fixes, refactors, continuation of interrupted work, targeted revisions, verification, release preparation, or any request that changes project artifacts. |
Flutter Project Harness
Use _workspace/ as the durable source of truth and
.harness/config.json as the machine contract.
Start or resume
- Read
AGENTS.md.
- Run
python3 .codex/skills/flutter-project-harness/scripts/harness.py status.
- If no work exists, initialize it with
init --work-id <slug> --title <title>.
- If work exists, inspect its current stage and required files. Do not create a
second work item over it.
- Read production-contract.md before
changing stage state or workspace layout.
Execute
- Keep user intent in
00_input/request.md.
- Put scope and observable acceptance criteria in
01_specification/requirements.md.
- Put architecture, affected files, tests, risks, and rollback notes in
02_plan/implementation-plan.md.
- Change source only after the planned stage.
- Summarize observable changes in
03_output/change-summary.md.
- Register material files with
register; never edit manifest.json directly.
- Move stages with
advance; never edit state.json directly.
Read flutter-architecture.md when adding a
feature, dependency, repository, provider, route, or persistence mechanism.
Validate
- Run
validate --profile quick for normal source changes.
- Run
validate --profile release for dependency, platform, routing,
initialization, or release preparation changes.
- Preserve failure output in
04_validation/validation.json.
- Fix the earliest failing stage. Do not weaken gates.
- Record semantic, UX, accessibility, localization, and risk review in
04_validation/quality-review.md.
Read validation-rules.md when choosing a
profile or writing quality review.
Revise, package, and finalize
- For a partial revision, run
revise <earliest-stage> --reason <reason>.
- Re-run that stage and every invalidated downstream gate.
- Package only after machine and quality validation.
- Treat packaging as a local candidate, not deployment.
- Never set human approval. Finalize only when the user has supplied a valid
approval record.
- After finalization, run
archive before initializing the next work item.
Run harness.py --help for the complete command interface.