Solo Design
This Skill uses a decision -> load -> preflight -> dispatch -> validate -> readiness routing chain. SKILL.md only classifies the request, writes the resolved lane into working notes / summary when a project exists, and loads exactly one intent-workflows/<selected>/INTENT_WORKFLOW.md.
Do not scan all workflow folders. After a lane is selected, read only that lane's INTENT_WORKFLOW.md and the files declared in its Context Requirements. Before any dispatch, the selected lane's declared context files must be recorded with body-read evidence in runtime-orchestration-summary.json.project.contextRequirementsLoaded[].
Top-Level Skill Handoffs
Evaluate these handoffs in order before Route Priority and before reading any intent workflow.
Immediately invoke the Skill tool with name: "solo-image-edit" and stop applying this Skill when either condition matches:
- Current-turn context contains an image-region annotation whose parsed payload type is
design-image-annotation. Match this semantically across available envelopes such as a web-element record or a selected_browser_item; do not require one exact wrapper or field layout.
- The user explicitly asks to edit, retouch, remove, replace, recolor, restyle, extend, or otherwise change pixels in an existing bitmap image, and an original image is available as a local file or current-turn attachment.
The structured design-image-annotation marker is authoritative even when the visible user text is only a short instruction such as "按评论改一下" or only names the selected image-region. Do not route ordinary HTML/DOM/CSS/page-component edits merely because the page contains images. Do not route text-to-image creation without an original bitmap; keep those requests in the graphic lanes below.
After the image-edit handoff does not match, immediately invoke the Skill tool with name: "solo-graphic-generation" and stop applying this Skill when the generated bitmap itself is the deliverable: poster, banner, KV/key visual, cover, invitation, social card, illustration, portrait, product image, transparent-background asset, cutout, or an image batch without editable HTML requirements.
The graphic-generation handoff also applies when the user asks to generate and append a new image asset to an existing canvas. solo-graphic-generation owns the required pre-generation size confirmation, image generation, canvas registration, and image-only validation. Keep text-critical static layouts in this Skill when exact readable/editable copy, DOM typography, tables, schedules, prices, legal copy, PPT, one-pager, or manual/document structure is required.
Global Invariants
- Output is canvas-first: every produced page or kept image asset must be represented in the
.design file.
.design validity is blocking: valid JSON, non-empty data, existing devMetadata.htmlSrc / imageSrc, unique node ids, and registered image assets.
- Explicit user instructions win for design direction and optional process choices, but cannot override canvas validity, rendering correctness, safety, or required validation gates.
- Existing page/project changes create a new comparison page by default. In-place edit is allowed only when the user explicitly asks to overwrite, replace, or modify in place.
- New dispatches must never target
shared-runtime/blocked-legacy-entrypoints/blocked-legacy-page-template.md.
shared-runtime/agent-dispatch-runtime/shared-page-rendering-kernel.md is a Declared Load only; it is not an Always Load file.
visual-experience/ and delivery-quality/ are loaded only when the selected INTENT_WORKFLOW.md declares them.
- Flow-control rules are model-agnostic. Do not add model-specific branches, model names, or per-model instructions to this Skill.
- Production visual stability is a generation-time gate for layout-risk pages. Page Sub-Agents must build layout-critical structure with responsive-safe static CSS in the page, not rely only on Tailwind browser runtime compilation, late validation, or repair passes. If first-screen frame, density, overflow, or overlap checks cannot pass during generation, return
qualityGate: "failed|blocked" instead of producing a low-fidelity page for later repair.
Route Priority
After no top-level handoff matches, evaluate from P1 to P9 and stop at the first match.
| Priority |
Condition |
resolvedLane |
Load |
| P1 |
Existing project/page/selection edit, add state, add comparison page, navigation add, delete/adopt/refresh operation |
existing_edit_add_comparison |
intent-workflows/intent-project-mutation/INTENT_WORKFLOW.md |
| P2 |
Redesign duplicate project or convert an existing project to another device/view |
redesign_duplicate_project |
intent-workflows/intent-project-mutation/INTENT_WORKFLOW.md |
| P3 |
Generate variants, alternatives, multi-scheme comparison for existing pages |
variants_multi_scheme |
intent-workflows/intent-project-mutation/INTENT_WORKFLOW.md |
| P4 |
Project-wide theme, token, color, typography, or head refresh customization |
theme_customize |
intent-workflows/intent-project-mutation/INTENT_WORKFLOW.md |
| P5 |
Explicit 1:1, clone, replicate, pixel-perfect, exact restoration, or restore eval metadata |
restore_1to1 |
intent-workflows/intent-page-restore-1to1/INTENT_WORKFLOW.md |
| P6 |
Active Design Library identity, Library path, componentPlan, or actualTokenNameReference |
library_bound |
intent-workflows/intent-page-library-bound/INTENT_WORKFLOW.md |
| P7 |
graphicStrategyGate = "layout-static": long copy, PPT/one-pager/manual, exact editable text, table/schedule/legal/brand copy |
graphic_layout_static |
intent-workflows/intent-project-complex-build/INTENT_WORKFLOW.md |
| P8 |
Long PRD, multi-page or multi-device project, generation tree, complex interaction/state expansion, fragment mode |
complex_html_page |
intent-workflows/intent-project-complex-build/INTENT_WORKFLOW.md |
| P9 |
No Library, no restore target, open-ended page/UI/site/app creation |
free_exploration |
intent-workflows/intent-page-free-exploration/INTENT_WORKFLOW.md |
Conflict rule: earlier priorities win. Example: explicit restore wins over active Library; existing project mutation wins over new-project creation unless the user explicitly asks for a separate new project.
Dispatch Discipline
- Main Agent owns routing,
.design writes, image-node registration, interaction registration, and validation.
- Before any dispatch, Main Agent must record a Step 0 lane gate in
runtime-orchestration-summary.json.project: resolvedLane, selectedIntentWorkflowRead: true, contextRequirementsLoaded[], contextReadScope, validationRunDiscipline, and lowValueCallWatchdog. Each contextRequirementsLoaded[] row must include { path, readStatus: "loaded", bodyRead: true }. If this evidence cannot be written, do not dispatch.
- Page Sub-Agents consume only the selected lane page runtime guide, the selected lane dispatch contract, and the packet fields provided by Main Agent.
- Page Sub-Agents do not write
.design, run project validators, start preview servers, create helper scripts, or generate images.
- Page Sub-Agent packets must include
allowedWritePaths[]; completions must report changedFiles[]. The Main Agent owns .design, runtime-orchestration-summary.json, validation reports, readiness evidence, and final delivery text.
- Cross-lane collaboration uses
runtime-orchestration-summary.json, dispatchPreflightManifest[], and sourceProjectLaneHeritage; do not make one intent workflow read another intent workflow's runbook.
supplementaryReads[] entries must be explicit { path, reason, ownerLane }. Free lane may keep implementationEscalationReason only as a compatibility alias.
- Restore dispatches must lock
project.sourceAuthorityLock before page generation. Screenshot/user-provided imagery is visual authority when present; URL/browser evidence may supplement content but must not override the locked visual authority.
- Static graphic / layout-heavy page dispatches must write
project.visualQualityCheckpoints[] before generation. These checkpoints lock visual anchor, information hierarchy, composition structure, and implementation strategy without adding open-ended exploration.
- Layout-risk page dispatches must include a compact production stability target: target device/frame, viewport mode, first-screen content regions, responsive breakpoints, and high-risk compression/overlap risks. Page Sub-Agents must report
staticRenderingEvidence and viewportIntegrityEvidence; missing evidence blocks that layout-risk dispatch before project validation.
- Long reasoning without tool calls, artifact diffs, or structured decisions must follow
project.lowValueCallWatchdog.noProgressNextAction and move to readiness or a minimal blocked summary; do not continue thinking loops.
Allowed Scripts
Only Skill-provided deterministic scripts below are allowed during execution or maintenance:
| Script |
Caller |
When |
node {SKILL_DIR}/shared-runtime/deterministic-tooling/apply-html-head-contract.mjs |
Page Sub-Agent / Main Agent fallback |
Generate or replace approved HTML <head> |
node {SKILL_DIR}/shared-runtime/deterministic-tooling/validate-restore-contract.mjs |
Main Agent |
Restore-only pre-dispatch contract gate; validates source identity, page state, measured facts, region groups, CSS aliases, and packet readiness |
node {SKILL_DIR}/shared-runtime/deterministic-tooling/validate-design-workspace.mjs |
Main Agent |
Final validation for HTML/page projects |
node {SKILL_DIR}/shared-runtime/deterministic-tooling/record-validation-repair-entry.mjs |
Main Agent |
Required first action after a failed validate-design-workspace.mjs report; records lightweight script-owned repair evidence. Do not hand-write hashes or validation history |
node {SKILL_DIR}/shared-runtime/deterministic-tooling/record-dispatch-completion.mjs |
Main Agent |
Records Page Sub-Agent completion evidence into expectedDispatches[] and main-agent mutation evidence. Do not hand-edit dispatch completion JSON |
node {SKILL_DIR}/shared-runtime/deterministic-tooling/validate-finish-readiness.mjs |
Main Agent |
Design artifact readiness gate after validation-report.json success=true; run --check=all for final delivery; checks validation report integrity, .design registration, page/image paths, interactions, post-validation mutation, and restore final-response text policy when provided |
node {SKILL_DIR}/shared-runtime/deterministic-tooling/validate-design-file-format.mjs |
Internal only |
Called by workspace validation |
node {SKILL_DIR}/shared-runtime/deterministic-tooling/validate-lane-runtime-contract.mjs |
Main Agent / maintainer |
Lane contract preflight and audit |
node {SKILL_DIR}/shared-runtime/deterministic-tooling/build-page-dispatch-manifest.mjs |
Main Agent |
Build page dispatch preflight manifest for page-dispatch lanes |
node {SKILL_DIR}/shared-runtime/deterministic-tooling/repair-mobile-navigation-flow.mjs |
Main Agent |
One-time repair after mobile navigation validation issue |
node {SKILL_DIR}/shared-runtime/deterministic-tooling/check-intent-workflow-boundaries.mjs |
Maintainer |
Validate lane isolation and declared visual-quality loading |
node {SKILL_DIR}/shared-runtime/deterministic-tooling/check-skill-runtime-read-scope.mjs |
Maintainer |
Validate agent-readable runbook file-size and read-scope limits |
node {SKILL_DIR}/shared-runtime/deterministic-tooling/check-solo-design-contract-regressions.mjs |
Maintainer |
Run fixture-based regressions for dispatch, repair ledger, version, and readiness contract failures |
Out-Of-Scope Routing
- Pixel-level edits of an existing bitmap, including structured Design image comments, go to
solo-image-edit.
- Bitmap-first poster/banner/KV/cover/card/illustration/image-batch generation goes to
solo-graphic-generation.
- Professional reusable Design Library / Design System / token architecture creation goes to
design-library-creator.
- Legacy runtime templates are blocked. If any dispatch packet or task query names
blocked-legacy-page-template.md, stop and re-route to the lane-owned page runtime guide.
create-design-system style requests inside page creation are treated as page styling requirements only; they must not self-create a reusable Design Library.
Completion Gate
Before final delivery, run the validation required by the selected INTENT_WORKFLOW.md. For restore_1to1 workflows, skip validate-design-workspace.mjs entirely and proceed directly to validate-finish-readiness.mjs <designProjectPath> --check=all --final-response-file=<draft.md>; ensure the draft is link-free and path-free. For other HTML/page workflows, after validate-design-workspace.mjs --report-json=<designProjectPath>/validation-report.json succeeds, run validate-finish-readiness.mjs <designProjectPath> --check=all as the Design artifact readiness gate. Do not claim completion while validation has blocking errors, artifact readiness fails, validation report integrity fails, or restore final-response text policy fails.
If validate-design-workspace.mjs reports only repair-ledger metadata warnings, do not rerun full validation or inspect validator source. Repair-ledger metadata is diagnostic; continue only when validation-report.json success=true and validate-finish-readiness.mjs <designProjectPath> --check=all passes. If validation-report.json.terminalState is present, stop and report the blocking summary instead of starting another repair loop.
1---2name: solo-design3description: Design website pages, UI screens, prototypes, page-level visual systems, and existing `.design` project mutations. Use for websites, landing pages, UI prototypes, redesigns, theme changes, 1:1 restoration, editable static layouts, and complex canvas projects. Route bitmap image edits to solo-image-edit, bitmap-first poster/banner/KV/cover generation to solo-graphic-generation, and reusable Design Library / Design System / token architecture creation to design-library-creator.4---56# Solo Design78This Skill uses a **decision -> load -> preflight -> dispatch -> validate -> readiness** routing chain. `SKILL.md` only classifies the request, writes the resolved lane into working notes / summary when a project exists, and loads exactly one `intent-workflows/<selected>/INTENT_WORKFLOW.md`.910Do not scan all workflow folders. After a lane is selected, read only that lane's `INTENT_WORKFLOW.md` and the files declared in its `Context Requirements`. Before any dispatch, the selected lane's declared context files must be recorded with body-read evidence in `runtime-orchestration-summary.json.project.contextRequirementsLoaded[]`.1112## Top-Level Skill Handoffs1314Evaluate these handoffs in order before `Route Priority` and before reading any intent workflow.1516Immediately invoke the `Skill` tool with `name: "solo-image-edit"` and stop applying this Skill when either condition matches:17181. Current-turn context contains an image-region annotation whose parsed payload type is `design-image-annotation`. Match this semantically across available envelopes such as a `web-element` record or a `selected_browser_item`; do not require one exact wrapper or field layout.192. The user explicitly asks to edit, retouch, remove, replace, recolor, restyle, extend, or otherwise change pixels in an existing bitmap image, and an original image is available as a local file or current-turn attachment.2021The structured `design-image-annotation` marker is authoritative even when the visible user text is only a short instruction such as "按评论改一下" or only names the selected `image-region`. Do not route ordinary HTML/DOM/CSS/page-component edits merely because the page contains images. Do not route text-to-image creation without an original bitmap; keep those requests in the graphic lanes below.2223After the image-edit handoff does not match, immediately invoke the `Skill` tool with `name: "solo-graphic-generation"` and stop applying this Skill when the generated bitmap itself is the deliverable: poster, banner, KV/key visual, cover, invitation, social card, illustration, portrait, product image, transparent-background asset, cutout, or an image batch without editable HTML requirements.2425The graphic-generation handoff also applies when the user asks to generate and append a new image asset to an existing canvas. `solo-graphic-generation` owns the required pre-generation size confirmation, image generation, canvas registration, and image-only validation. Keep text-critical static layouts in this Skill when exact readable/editable copy, DOM typography, tables, schedules, prices, legal copy, PPT, one-pager, or manual/document structure is required.2627## Global Invariants2829- Output is canvas-first: every produced page or kept image asset must be represented in the `.design` file.30- `.design` validity is blocking: valid JSON, non-empty `data`, existing `devMetadata.htmlSrc` / `imageSrc`, unique node ids, and registered image assets.31- Explicit user instructions win for design direction and optional process choices, but cannot override canvas validity, rendering correctness, safety, or required validation gates.32- Existing page/project changes create a new comparison page by default. In-place edit is allowed only when the user explicitly asks to overwrite, replace, or modify in place.33- New dispatches must never target `shared-runtime/blocked-legacy-entrypoints/blocked-legacy-page-template.md`.34- `shared-runtime/agent-dispatch-runtime/shared-page-rendering-kernel.md` is a Declared Load only; it is not an Always Load file.35- `visual-experience/` and `delivery-quality/` are loaded only when the selected `INTENT_WORKFLOW.md` declares them.36- Flow-control rules are model-agnostic. Do not add model-specific branches, model names, or per-model instructions to this Skill.37- Production visual stability is a generation-time gate for layout-risk pages. Page Sub-Agents must build layout-critical structure with responsive-safe static CSS in the page, not rely only on Tailwind browser runtime compilation, late validation, or repair passes. If first-screen frame, density, overflow, or overlap checks cannot pass during generation, return `qualityGate: "failed|blocked"` instead of producing a low-fidelity page for later repair.3839## Route Priority4041After no top-level handoff matches, evaluate from P1 to P9 and stop at the first match.4243| Priority | Condition | `resolvedLane` | Load |44| --- | --- | --- | --- |45| P1 | Existing project/page/selection edit, add state, add comparison page, navigation add, delete/adopt/refresh operation | `existing_edit_add_comparison` | `intent-workflows/intent-project-mutation/INTENT_WORKFLOW.md` |46| P2 | Redesign duplicate project or convert an existing project to another device/view | `redesign_duplicate_project` | `intent-workflows/intent-project-mutation/INTENT_WORKFLOW.md` |47| P3 | Generate variants, alternatives, multi-scheme comparison for existing pages | `variants_multi_scheme` | `intent-workflows/intent-project-mutation/INTENT_WORKFLOW.md` |48| P4 | Project-wide theme, token, color, typography, or head refresh customization | `theme_customize` | `intent-workflows/intent-project-mutation/INTENT_WORKFLOW.md` |49| P5 | Explicit 1:1, clone, replicate, pixel-perfect, exact restoration, or restore eval metadata | `restore_1to1` | `intent-workflows/intent-page-restore-1to1/INTENT_WORKFLOW.md` |50| P6 | Active Design Library identity, Library path, `componentPlan`, or `actualTokenNameReference` | `library_bound` | `intent-workflows/intent-page-library-bound/INTENT_WORKFLOW.md` |51| P7 | `graphicStrategyGate = "layout-static"`: long copy, PPT/one-pager/manual, exact editable text, table/schedule/legal/brand copy | `graphic_layout_static` | `intent-workflows/intent-project-complex-build/INTENT_WORKFLOW.md` |52| P8 | Long PRD, multi-page or multi-device project, generation tree, complex interaction/state expansion, fragment mode | `complex_html_page` | `intent-workflows/intent-project-complex-build/INTENT_WORKFLOW.md` |53| P9 | No Library, no restore target, open-ended page/UI/site/app creation | `free_exploration` | `intent-workflows/intent-page-free-exploration/INTENT_WORKFLOW.md` |5455Conflict rule: earlier priorities win. Example: explicit restore wins over active Library; existing project mutation wins over new-project creation unless the user explicitly asks for a separate new project.5657## Dispatch Discipline5859- Main Agent owns routing, `.design` writes, image-node registration, interaction registration, and validation.60- Before any dispatch, Main Agent must record a Step 0 lane gate in `runtime-orchestration-summary.json.project`: `resolvedLane`, `selectedIntentWorkflowRead: true`, `contextRequirementsLoaded[]`, `contextReadScope`, `validationRunDiscipline`, and `lowValueCallWatchdog`. Each `contextRequirementsLoaded[]` row must include `{ path, readStatus: "loaded", bodyRead: true }`. If this evidence cannot be written, do not dispatch.61- Page Sub-Agents consume only the selected lane page runtime guide, the selected lane dispatch contract, and the packet fields provided by Main Agent.62- Page Sub-Agents do not write `.design`, run project validators, start preview servers, create helper scripts, or generate images.63- Page Sub-Agent packets must include `allowedWritePaths[]`; completions must report `changedFiles[]`. The Main Agent owns `.design`, `runtime-orchestration-summary.json`, validation reports, readiness evidence, and final delivery text.64- Cross-lane collaboration uses `runtime-orchestration-summary.json`, `dispatchPreflightManifest[]`, and `sourceProjectLaneHeritage`; do not make one intent workflow read another intent workflow's runbook.65- `supplementaryReads[]` entries must be explicit `{ path, reason, ownerLane }`. Free lane may keep `implementationEscalationReason` only as a compatibility alias.66- Restore dispatches must lock `project.sourceAuthorityLock` before page generation. Screenshot/user-provided imagery is visual authority when present; URL/browser evidence may supplement content but must not override the locked visual authority.67- Static graphic / layout-heavy page dispatches must write `project.visualQualityCheckpoints[]` before generation. These checkpoints lock visual anchor, information hierarchy, composition structure, and implementation strategy without adding open-ended exploration.68- Layout-risk page dispatches must include a compact production stability target: target device/frame, viewport mode, first-screen content regions, responsive breakpoints, and high-risk compression/overlap risks. Page Sub-Agents must report `staticRenderingEvidence` and `viewportIntegrityEvidence`; missing evidence blocks that layout-risk dispatch before project validation.69- Long reasoning without tool calls, artifact diffs, or structured decisions must follow `project.lowValueCallWatchdog.noProgressNextAction` and move to readiness or a minimal blocked summary; do not continue thinking loops.7071## Allowed Scripts7273Only Skill-provided deterministic scripts below are allowed during execution or maintenance:7475| Script | Caller | When |76| --- | --- | --- |77| `node {SKILL_DIR}/shared-runtime/deterministic-tooling/apply-html-head-contract.mjs` | Page Sub-Agent / Main Agent fallback | Generate or replace approved HTML `<head>` |78| `node {SKILL_DIR}/shared-runtime/deterministic-tooling/validate-restore-contract.mjs` | Main Agent | Restore-only pre-dispatch contract gate; validates source identity, page state, measured facts, region groups, CSS aliases, and packet readiness |79| `node {SKILL_DIR}/shared-runtime/deterministic-tooling/validate-design-workspace.mjs` | Main Agent | Final validation for HTML/page projects |80| `node {SKILL_DIR}/shared-runtime/deterministic-tooling/record-validation-repair-entry.mjs` | Main Agent | Required first action after a failed `validate-design-workspace.mjs` report; records lightweight script-owned repair evidence. Do not hand-write hashes or validation history |81| `node {SKILL_DIR}/shared-runtime/deterministic-tooling/record-dispatch-completion.mjs` | Main Agent | Records Page Sub-Agent completion evidence into `expectedDispatches[]` and main-agent mutation evidence. Do not hand-edit dispatch completion JSON |82| `node {SKILL_DIR}/shared-runtime/deterministic-tooling/validate-finish-readiness.mjs` | Main Agent | Design artifact readiness gate after `validation-report.json success=true`; run `--check=all` for final delivery; checks validation report integrity, `.design` registration, page/image paths, interactions, post-validation mutation, and restore final-response text policy when provided |83| `node {SKILL_DIR}/shared-runtime/deterministic-tooling/validate-design-file-format.mjs` | Internal only | Called by workspace validation |84| `node {SKILL_DIR}/shared-runtime/deterministic-tooling/validate-lane-runtime-contract.mjs` | Main Agent / maintainer | Lane contract preflight and audit |85| `node {SKILL_DIR}/shared-runtime/deterministic-tooling/build-page-dispatch-manifest.mjs` | Main Agent | Build page dispatch preflight manifest for page-dispatch lanes |86| `node {SKILL_DIR}/shared-runtime/deterministic-tooling/repair-mobile-navigation-flow.mjs` | Main Agent | One-time repair after mobile navigation validation issue |87| `node {SKILL_DIR}/shared-runtime/deterministic-tooling/check-intent-workflow-boundaries.mjs` | Maintainer | Validate lane isolation and declared visual-quality loading |88| `node {SKILL_DIR}/shared-runtime/deterministic-tooling/check-skill-runtime-read-scope.mjs` | Maintainer | Validate agent-readable runbook file-size and read-scope limits |89| `node {SKILL_DIR}/shared-runtime/deterministic-tooling/check-solo-design-contract-regressions.mjs` | Maintainer | Run fixture-based regressions for dispatch, repair ledger, version, and readiness contract failures |9091## Out-Of-Scope Routing9293- Pixel-level edits of an existing bitmap, including structured Design image comments, go to `solo-image-edit`.94- Bitmap-first poster/banner/KV/cover/card/illustration/image-batch generation goes to `solo-graphic-generation`.95- Professional reusable Design Library / Design System / token architecture creation goes to `design-library-creator`.96- Legacy runtime templates are blocked. If any dispatch packet or task query names `blocked-legacy-page-template.md`, stop and re-route to the lane-owned page runtime guide.97- `create-design-system` style requests inside page creation are treated as page styling requirements only; they must not self-create a reusable Design Library.9899## Completion Gate100101Before final delivery, run the validation required by the selected `INTENT_WORKFLOW.md`. For **restore_1to1 workflows**, skip `validate-design-workspace.mjs` entirely and proceed directly to `validate-finish-readiness.mjs <designProjectPath> --check=all --final-response-file=<draft.md>`; ensure the draft is link-free and path-free. For **other HTML/page workflows**, after `validate-design-workspace.mjs --report-json=<designProjectPath>/validation-report.json` succeeds, run `validate-finish-readiness.mjs <designProjectPath> --check=all` as the Design artifact readiness gate. Do not claim completion while validation has blocking errors, artifact readiness fails, validation report integrity fails, or restore final-response text policy fails.102103If `validate-design-workspace.mjs` reports only repair-ledger metadata warnings, do not rerun full validation or inspect validator source. Repair-ledger metadata is diagnostic; continue only when `validation-report.json success=true` and `validate-finish-readiness.mjs <designProjectPath> --check=all` passes. If `validation-report.json.terminalState` is present, stop and report the blocking summary instead of starting another repair loop.