Phase 11 — score the completed pipeline against Anthropic's 9 harness principles plus game quality, and write the retrospective.
Scanned 8/31/2026
Install to Claude Code
npx -y skills add tjdrhs90/flutter-flame-harness --skill flame-harness-retro --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Flame Harness Retro?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/tjdrhs90-flame-harness-retro)More formats (shields.io, HTML) on the badges page.
---
name: flame-harness-retro
description: Phase 11 — score the completed pipeline against Anthropic's 9 harness principles plus game quality, and write the retrospective.
argument-hint: ""
allowed-tools: [Read, Write, Bash, Glob, Grep]
---
# flame-harness-retro
Phase 11 (final) of the flutter-flame-harness pipeline. Scores the completed pipeline against
Anthropic's 9 harness-design principles and game quality criteria, then writes the retrospective
report and sets the pipeline to `completed`.
All file schemas (`config.md`, `state.md`, `build-log.md`, `pipeline-log.md`) and the phase
transition table are defined in `docs/harness-protocol.md` — that document is the single source of
truth (§1 `config.md`; §2 `state.md` keys; §3 `contract.md` layout; §4 handoff layout; §5 feedback
layout; §6 log schemas; §7 `retro → complete → status=completed` transition). Do not redefine
schemas here.
**Boundary:** This is the terminal phase. After writing `docs/harness/retro.md` and updating
`state.md`, no further skill dispatch occurs. The pipeline ends.
**Prerequisites:** `flame-harness-resume` dispatched this skill with `next_role: retro`; `state.md`
shows `current_phase: retro`.
---
## Inputs — Read All Harness Artifacts
Before scoring, load all available evidence:
1. `docs/harness/config.md` — extract `app_slug`, `app_name`, `max_rounds`, `strict_mode`,
`skip_research`, `skip_admob` (per protocol §1).
2. `docs/harness/state.md` — confirm `current_phase: retro`; read `current_round`,
`resume_attempts` (per protocol §2).
3. `docs/harness/contract.md` — review the negotiated Hard Gates and Functional Criteria, and the
final `Status: AGREED` line (per protocol §3).
4. `docs/harness/handoff/` — read all `round-N-gen.md` files; note what was built / fixed per
round, and any self-assessment failures (per protocol §4).
5. `docs/harness/feedback/` — read all `round-N-qa.md` files; note PASS/FAIL verdicts, evidence
commands run, and specific failed criteria (per protocol §5).
6. `docs/harness/build-log.md` — read the full build log table (per protocol §6).
7. `docs/harness/pipeline-log.md` — read the full pipeline event log (per protocol §6).
8. Git log: run `git log --oneline` to count commits and identify rework patterns.
---
## 9 Principles Scoring
Score each of the 9 harness-design principles on a **1–5 scale** with evidence drawn from the
harness artifacts loaded above. Cite specific files, round numbers, or log entries as evidence.
### Principle 1 — Generator-Evaluator Separation
> Generator builds; Evaluator judges. Roles must never conflate — the Generator does not approve its
> own work, and the Evaluator does not write code.
**Evidence to check:** handoff files authored by generator; feedback files authored by evaluator;
no code edits in QA feedback files; no self-PASS verdicts in handoff files.
**Score guidance:**
- 5 — All handoffs were authored by the Generator; all QA by the Evaluator; zero role crossover.
- 3 — One instance of the Evaluator proposing a code fix inline rather than filing a failed
criterion.
- 1 — Evaluator wrote code or Generator issued its own PASS.
The generator-evaluator separation principle is the most fundamental harness invariant. A breach
here invalidates all downstream verdicts.
### Principle 2 — Evaluator Skepticism
> Evaluator must run the game and observe actual behaviour before issuing any verdict; code-review-
> only PASS is prohibited.
**Evidence to check:** `feedback/round-N-qa.md` Evidence tables — were `flutter analyze`,
`flutter test`, cold-start iOS, cold-start Android, and FPS check all run? Were screenshots
captured? Did any feedback file issue PASS without running the game?
**Score guidance:**
- 5 — Every QA round shows a complete Evidence table with run commands + actual outputs / screenshot
paths; no PASS issued without running the game.
- 3 — One round shows a partial Evidence table (e.g., FPS check omitted).
- 1 — At least one PASS was issued based on code review alone.
### Principle 3 — Contract Negotiation Quality
> The contract is negotiated (not dictated) before coding begins. Hard Gates are non-negotiable;
> Functional Criteria are game-specific and agreed bilaterally.
**Evidence to check:** `contract.md` — are all 8 Mandatory Hard Gates present (per protocol §3)?
Were Functional Criteria added and marked AGREED? Was there back-and-forth before AGREED, or was
the contract accepted without review?
**Score guidance:**
- 5 — All 8 Hard Gates present; game-specific Functional Criteria added; AGREED status set after
bilateral review.
- 3 — Hard Gates present but Functional Criteria were thin or generic.
- 1 — Contract accepted without review or Hard Gates were missing.
### Principle 4 — File-Based Handoff
> Every inter-phase communication travels through a named file in `docs/harness/`. No out-of-band
> instructions in chat messages or inline code comments.
**Evidence to check:** `handoff/round-N-gen.md` and `feedback/round-N-qa.md` exist for every round
in `build-log.md`; pipeline-log events reference file writes; no phase-to-phase communication
happened only in chat.
**Score guidance:**
- 5 — Every handoff and feedback round has a corresponding file; build-log and pipeline-log are
complete.
- 3 — One round's handoff or feedback file is missing or incomplete.
- 1 — Multiple rounds have no corresponding file.
### Principle 5 — No-Sprints / Single-Build
> The Generator completes the full game in one continuous build session per round. No iterative
> sprint cycles within a round; no partial deliveries labelled "Phase 1 of N".
**Evidence to check:** handoff files — does each `round-N-gen.md` claim a complete, runnable game?
Build-log round count — how many generator rounds were needed? Were any partial deliveries noted?
**Score guidance:**
- 5 — Each generator round delivered a complete, runnable game; no partial deliveries.
- 3 — One round ended with a partial delivery that required a follow-up round for completion rather
than a genuine fix.
- 1 — Multiple partial deliveries across rounds; sprint-like behaviour observed.
### Principle 6 — Screenshot-and-Study
> Evaluator takes screenshots of the running game and studies them before scoring gameplay criteria.
> Visual evidence is mandatory for any visual or UX criterion.
**Evidence to check:** `feedback/round-N-qa.md` Evidence tables — do screenshot path columns
reference actual files under `screenshots/`? Were iOS and Android cold-start screenshots both
captured?
**Score guidance:**
- 5 — Screenshots captured for every QA round on both platforms; screenshot paths recorded in
Evidence tables.
- 3 — Screenshots captured on one platform only, or paths recorded but files not verified to exist.
- 1 — No screenshots taken; visual criteria scored without visual evidence.
### Principle 7 — Simplicity
> Prefer the simplest implementation that satisfies the contract. No premature abstraction, no
> gold-plating, no features beyond the agreed scope.
**Evidence to check:** `contract.md` Functional Criteria vs. `handoff/` What Was Built sections —
did the Generator add features not in the contract? Did build-log show rework caused by over-
engineered code? Code complexity in handoff self-assessments.
**Score guidance:**
- 5 — Implementation matched contract scope exactly; no unrequested features added; no rework
attributed to over-engineering.
- 3 — One or two minor additions beyond scope; or one rework round caused by over-abstraction.
- 1 — Significant scope creep or rework attributed to complexity.
### Principle 8 — Cost-Quality Tradeoff
> Use the cheapest model/tool capable of the task. Reserve expensive calls for decisions that
> require judgment; use cheap calls for grep/read/format tasks.
**Evidence to check:** pipeline-log — did any phase use expensive LLM calls for trivial file
transforms? Were research, design, and contract phases appropriately scoped? Did the evaluator use
`flutter analyze` and `flutter test` (cheap, deterministic) rather than LLM-only review?
**Score guidance:**
- 5 — Deterministic tools (analyze, test, screenshot) used for objective checks; LLM judgment
reserved for qualitative criteria; no expensive calls for grep/format tasks.
- 3 — One or two instances of LLM judgment used where a deterministic check would suffice.
- 1 — LLM used for tasks that could be fully automated with CLI tools.
### Principle 9 — Test Deduplication
> Tests verify contract criteria exactly once. No duplicate assertions across unit tests, widget
> tests, and integration tests. Tests must be additive, not redundant.
**Evidence to check:** `handoff/round-N-gen.md` Test Results sections — are tests clearly
categorised (unit / widget / integration)? Do later-round handoffs add new tests for new criteria
rather than duplicating existing ones? Does `flutter test` output show a growing, non-redundant
test suite?
**Score guidance:**
- 5 — Tests organised by layer; each contract criterion covered by exactly one test layer; no
duplication between unit and widget or widget and integration tests.
- 3 — Some overlap between test layers, but overall suite covers contract criteria without major
gaps.
- 1 — Significant duplication across test layers, or contract criteria untested.
---
## Game Quality Review
Assess the delivered game across three axes using evidence from QA feedback, screenshots, and the
build-log.
### Keep
List what worked well in this pipeline run:
- Criteria that passed on the first generator round (no rework needed).
- Phases that produced complete, well-formed output files on the first attempt.
- Contract Hard Gates that were never violated across any round.
- Any phase where the Generator's self-assessment precisely matched the Evaluator's verdict.
### Improve
List what should be improved in the next pipeline run:
- Rounds that required rework — identify the root cause (ambiguous contract criterion, incomplete
generator self-check, evaluator skipped a command).
- Any `PARTIAL` scores in `build-log.md` — what caused them?
- Phases where file output was missing or malformed (compared to protocol §4 / §5 / §6 schemas).
- Any principle scored 3 or below — explain why and what to change.
### Try
List new approaches to trial in the next pipeline run:
- Contract additions that could prevent the most common rework patterns observed.
- Additional deterministic checks (e.g., FPS measurement script, bundle size gate) that could
replace LLM judgment.
- Structural changes to handoff or feedback schemas that would surface issues earlier.
- Changes to `max_rounds` or `strict_mode` settings based on observed pipeline behaviour.
---
## Output
### Write `docs/harness/retro.md`
Create or overwrite `docs/harness/retro.md` with the following structure:
```markdown
# Retrospective — <app_name>
> Pipeline completed: <ISO-8601 UTC timestamp>
> Rounds: <current_round> / <max_rounds>
> Resume attempts: <resume_attempts>
## 9 Principles Scorecard
| # | Principle | Score (1–5) | Evidence |
|---|---|---|---|
| 1 | Generator-Evaluator separation | N | <one-line evidence citation> |
| 2 | Evaluator skepticism | N | <one-line evidence citation> |
| 3 | Contract negotiation quality | N | <one-line evidence citation> |
| 4 | File-based handoff | N | <one-line evidence citation> |
| 5 | No-sprints / single-build | N | <one-line evidence citation> |
| 6 | Screenshot-and-study | N | <one-line evidence citation> |
| 7 | Simplicity | N | <one-line evidence citation> |
| 8 | Cost-quality tradeoff | N | <one-line evidence citation> |
| 9 | Test deduplication | N | <one-line evidence citation> |
**Overall:** <average score, rounded to one decimal> / 5
## Verification
| Contract Criterion | Final Status | Round Passed |
|---|---|---|
| flutter analyze zero errors | PASS / FAIL | N |
| flutter test zero failures | PASS / FAIL | N |
| Cold-start iOS | PASS / FAIL | N |
| Cold-start Android | PASS / FAIL | N |
| <game-specific criterion> | PASS / FAIL | N |
## Keep / Improve / Try
### Keep
- <bullet>
### Improve
- <bullet>
### Try
- <bullet>
```
### Update `state.md` — Set `completed`
Per `docs/harness-protocol.md` §7 (`retro → complete → status=completed`) and §7 rule 7
(`completed` status is set only after the final phase `retro` exits cleanly), write
`docs/harness/state.md` atomically with **exactly** these field changes (leave `created_at`,
`current_round`, `resume_attempts`, `next_role` unchanged):
```yaml
status: completed
current_phase: retro
pause_reason: ""
updated_at: "<ISO-8601 UTC now>"
```
No `next_role` advance is needed — `completed` is the terminal state. Do not dispatch any further
skill. Do not set `pause_reason` (leave as `""`).
### Append to `pipeline-log.md`
Append one row to `docs/harness/pipeline-log.md` per the schema in `docs/harness-protocol.md` §6:
```
| <ISO-8601 UTC now> | complete | retro | retro.md written; status=completed; overall score <N>/5 |
```
---
## Terminal Notice
After writing `retro.md`, updating `state.md` to `status: completed`, and appending to
`pipeline-log.md`, print the following summary for the developer and stop — do not dispatch any
further skill:
---
**PIPELINE COMPLETE**
`docs/harness/retro.md` has been written.
`state.md` status is now `completed`.
Overall harness score: **<N> / 5**
Review `docs/harness/retro.md` for the full 9-principles scorecard, verification table, and
Keep / Improve / Try action items for the next pipeline run.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!