loadout-ai 0.9.2 → 0.9.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,181 @@
1
+ # Public Surface, Demo, and 0.9.3 Release Implementation Plan
2
+
3
+ > **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking.
4
+
5
+ **Goal:** Make Loadout's GitHub, npm, README, social preview, and recorded demo tell the same accurate Discover → Curate → Activate → Handoff → Coordinate story.
6
+
7
+ **Architecture:** Codex updates the GitHub repository metadata and produces the social-card variant from the approved unified visual. Claude Code updates README copy and owns the patch release. The release is verified from the public npm registry before the real-provider demo is recorded from an isolated home directory.
8
+
9
+ **Tech Stack:** Markdown, Vitest, GitHub CLI, Loadout coordination/handoff, npm, built-in image generation, macOS `screencapture`, FFmpeg.
10
+
11
+ ## Global Constraints
12
+
13
+ - Keep claims bounded to the currently proven local, same-repository Claude Code/Codex workflow.
14
+ - Explain that `coord discuss start` invokes both providers from one user command and spends provider quota.
15
+ - Remove the personal "Built with Claude and Codex" attribution section.
16
+ - Preserve preview-first, reversible, and audit-trail language.
17
+ - Do not publish over `0.9.2`; create patch release `0.9.3`.
18
+ - Do not include `.handoff/` runtime files in commits or release artifacts.
19
+ - Record only genuine CLI and provider output; remove idle waiting only and label that edit.
20
+
21
+ ---
22
+
23
+ ### Task 1: Align the README collaboration story
24
+
25
+ **Files:**
26
+
27
+ - Modify: `README.md`
28
+ - Test: `tests/readme-product-flow.test.ts`
29
+
30
+ **Interfaces:**
31
+
32
+ - Consumes: existing `loadout coord discuss start` CLI and provider-turn limits.
33
+ - Produces: a prominent README explanation of one-command bounded discussion.
34
+
35
+ - [ ] **Step 1: Add a failing README assertion**
36
+
37
+ Require the collaboration section to include the phrases `prompt once`, `calls both providers`, and `paid provider turns`, and require `## Built with Claude and Codex` to be absent.
38
+
39
+ - [ ] **Step 2: Run the focused test and confirm it fails**
40
+
41
+ Run: `npm test -- --run tests/readme-product-flow.test.ts`
42
+
43
+ Expected: FAIL because the README has only a bare discussion command and still contains the attribution heading.
44
+
45
+ - [ ] **Step 3: Make the minimum README edit**
46
+
47
+ Add a short `Let Claude and Codex debate one decision` subsection immediately after the coordination example. State that the user prompts once, Loadout calls both providers in bounded turns, records the decision, cannot inject into an in-progress turn, and consumes configured provider quota. Remove the complete attribution section; retain any non-duplicated quota warning in the collaboration subsection.
48
+
49
+ - [ ] **Step 4: Run focused README tests**
50
+
51
+ Run: `npm test -- --run tests/readme-product-flow.test.ts tests/readme-claims.test.ts`
52
+
53
+ Expected: PASS.
54
+
55
+ - [ ] **Step 5: Commit the README change**
56
+
57
+ Commit message: `docs: explain one-command agent discussions`
58
+
59
+ ---
60
+
61
+ ### Task 2: Align GitHub metadata and social preview
62
+
63
+ **Files:**
64
+
65
+ - Modify: `docs/assets/loadout-social-preview.png`
66
+
67
+ **Interfaces:**
68
+
69
+ - Consumes: `docs/assets/loadout-unified-workflow-v2.webp` as the approved content and style reference.
70
+ - Produces: a 1280×640 GitHub social card with the same lifecycle and collaboration story.
71
+
72
+ - [ ] **Step 1: Inspect the existing hero and social card**
73
+
74
+ Confirm the hero contains Discover, Curate, Activate, Handoff, and Coordinate and that the existing social card does not.
75
+
76
+ - [ ] **Step 2: Generate the social-card edit non-destructively**
77
+
78
+ Use the built-in image-generation tool with the unified hero as the reference/edit target. Require exact 2:1 composition, high contrast, minimal text, and visible `HANDOFF` and `COORDINATE` labels. Save the approved result as `docs/assets/loadout-social-preview-v2.png`, inspect at full size and at GitHub card size, then replace `docs/assets/loadout-social-preview.png` only after validation.
79
+
80
+ - [ ] **Step 3: Update repository About metadata**
81
+
82
+ Run:
83
+
84
+ ```bash
85
+ gh repo edit VirajMishra1/loadout \
86
+ --description "Discover, curate, and activate skills across 12 coding agents—then hand off and coordinate work between Claude Code and Codex."
87
+ ```
88
+
89
+ Preserve the npm homepage and existing topics.
90
+
91
+ - [ ] **Step 4: Upload the social preview in GitHub Settings**
92
+
93
+ Open `https://github.com/VirajMishra1/loadout/settings` and upload `docs/assets/loadout-social-preview.png` under Social preview. Verify the displayed image matches the new asset. The committed file alone does not change GitHub's link card.
94
+
95
+ - [ ] **Step 5: Commit the social card**
96
+
97
+ Commit message: `docs: align social preview with Loadout workflow`
98
+
99
+ ---
100
+
101
+ ### Task 3: Verify and publish 0.9.3 through Claude Code
102
+
103
+ **Files:**
104
+
105
+ - Modify: `package.json`
106
+ - Modify: `package-lock.json`
107
+ - Modify: `CHANGELOG.md`
108
+
109
+ **Interfaces:**
110
+
111
+ - Consumes: verified documentation commits on `main`.
112
+ - Produces: npm package and GitHub release `0.9.3` whose README matches GitHub main.
113
+
114
+ - [ ] **Step 1: Confirm release state**
115
+
116
+ Verify `main` matches `origin/main`, only `.handoff/` runtime files are dirty, `0.9.2` is the latest registry version, and `v0.9.2` is the latest Git tag.
117
+
118
+ - [ ] **Step 2: Prepare the patch version**
119
+
120
+ Update package metadata to `0.9.3` and add a changelog entry describing the unified README, clearer one-command discussion documentation, and aligned social preview. Do not claim runtime feature changes.
121
+
122
+ - [ ] **Step 3: Run the complete release gate**
123
+
124
+ Run: `npm run verify`
125
+
126
+ Expected: all unit, product-flow, package-smoke, cross-platform simulation, claim, and performance gates pass.
127
+
128
+ - [ ] **Step 4: Publish through the existing release workflow**
129
+
130
+ Commit and push the release preparation, tag the exact verified commit as `v0.9.3`, and use the repository's release workflow so npm provenance can be attached. If GitHub/npm requires a user authentication confirmation, stop only for that confirmation and never record credentials in `.handoff/` or terminal logs.
131
+
132
+ - [ ] **Step 5: Verify public artifacts**
133
+
134
+ Verify `npm view loadout-ai@0.9.3 version dist.attestations --json`, inspect the README inside `npm pack loadout-ai@0.9.3`, perform a clean `npx loadout-ai@0.9.3 --version`, and confirm the GitHub release points to the same commit.
135
+
136
+ ---
137
+
138
+ ### Task 4: Record and encode the real demo
139
+
140
+ **Files:**
141
+
142
+ - Create outside Git: `/tmp/loadout-demo-raw.mov`
143
+ - Create outside Git: `/tmp/loadout-demo-final.mp4`
144
+
145
+ **Interfaces:**
146
+
147
+ - Consumes: public `loadout-ai@0.9.3`, authenticated Claude Code and Codex provider sessions, isolated demo home/project.
148
+ - Produces: a 75–90 second 1920×1080 H.264 demonstration suitable for GitHub and X.
149
+
150
+ - [ ] **Step 1: Prepare an isolated demo environment**
151
+
152
+ Create a disposable home and checkout fixture. Install or invoke exactly `loadout-ai@0.9.3`. Ensure no real user agent configuration is modified.
153
+
154
+ - [ ] **Step 2: Rehearse the genuine sequence**
155
+
156
+ Rehearse Stable setup preview/apply/status, bundled handoff and receiver inbox, backend/frontend coordination and contract snapshot, one three-turn Claude/Codex discussion, and coordination replay.
157
+
158
+ - [ ] **Step 3: Record a native Terminal window**
159
+
160
+ Position a 960×540 logical-point Terminal window in region `276,221,960,540`, then run:
161
+
162
+ ```bash
163
+ /usr/sbin/screencapture -x -v -V240 \
164
+ -R276,221,960,540 /tmp/loadout-demo-raw.mov
165
+ ```
166
+
167
+ - [ ] **Step 4: Trim idle provider waits and encode**
168
+
169
+ Retain all substantive real output. Add the visible caption `Real Claude + Codex turns · waiting time removed`. Encode:
170
+
171
+ ```bash
172
+ ffmpeg -i /tmp/loadout-demo-raw.mov \
173
+ -vf "fps=30,scale=1920:1080" \
174
+ -c:v libx264 -crf 18 -preset medium \
175
+ -pix_fmt yuv420p -movflags +faststart \
176
+ /tmp/loadout-demo-final.mp4
177
+ ```
178
+
179
+ - [ ] **Step 5: Review before public posting**
180
+
181
+ Confirm version consistency, text legibility, absence of secrets and private paths, truthful provider output, 75–90 second duration, and playable H.264/yuv420p output. Show the final video to the user; do not post it automatically.
@@ -0,0 +1,380 @@
1
+ # README and Unified Hero Implementation Plan
2
+
3
+ > **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking.
4
+
5
+ **Goal:** Replace Loadout's two competing product diagrams with one legible hero and rewrite the README so a new user understands the product in 30 seconds and reaches a verified first success in five minutes.
6
+
7
+ **Architecture:** Keep the README as the tutorial-first entry point and move detail into the existing reference guides. Enforce the public story with the existing Vitest README contract and evidence scripts. Store the accepted hero as one versioned WebP asset while retaining the old image files unreferenced.
8
+
9
+ **Tech Stack:** Markdown and HTML, Vitest, Node.js 20+, built-in image generation, WebP.
10
+
11
+ ## Global Constraints
12
+
13
+ - The hero must use a 16:9 white-background hand-drawn infographic and remain legible at 960 pixels wide.
14
+ - Use the headline `YOUR TOOLS. YOUR AGENTS. ONE LOADOUT.`.
15
+ - Use the footer `Preview every change • Roll back anytime • Full audit trail`.
16
+ - Use the README value proposition `Manage skills for 12 coding agents. Hand off and coordinate work between Claude Code and Codex.`.
17
+ - Embed exactly one local product explainer image; badges and the remote YouTube preview are exempt.
18
+ - Keep every generated `loadout:*` marker pair unique, intact, ordered, and evidence-backed.
19
+ - Do not claim shared memory, merged context, continuous agent conversation, universal compatibility, or market uniqueness.
20
+ - Keep the README below 425 lines and aim below 350 lines.
21
+ - Do not modify runtime coordination behavior as part of this work.
22
+
23
+ ---
24
+
25
+ ### Task 1: Change the README contract to the approved story
26
+
27
+ **Files:**
28
+
29
+ - Modify: `tests/readme-product-flow.test.ts`
30
+ - Test: `tests/readme-product-flow.test.ts`
31
+
32
+ **Interfaces:**
33
+
34
+ - Consumes: the existing `webpDimensions()` and `expectOrderedReadmeStructure()` helpers.
35
+ - Produces: a test contract requiring `docs/assets/loadout-unified-workflow-v2.webp`, the new value proposition, tutorial-first headings, one product image, and no abridged transcript.
36
+
37
+ - [ ] **Step 1: Replace the two-image assertions with one-image assertions**
38
+
39
+ Use this test logic inside `presents the approved proof-first product journey`:
40
+
41
+ ```ts
42
+ const productImages =
43
+ readme.match(
44
+ /<img\b[^>]*src="\.\/docs\/assets\/loadout-[^"]+\.webp"[^>]*>/gi,
45
+ ) ?? [];
46
+ expect(productImages).toHaveLength(1);
47
+ expect(productImages[0]).toContain(
48
+ 'src="./docs/assets/loadout-unified-workflow-v2.webp"',
49
+ );
50
+ expect(productImages[0]).toContain("discovers, curates, and activates");
51
+ expect(productImages[0]).toContain("handoff and coordinate");
52
+
53
+ const image = await readFile(
54
+ resolve(repositoryRoot, "docs/assets/loadout-unified-workflow-v2.webp"),
55
+ );
56
+ const { width, height } = webpDimensions(image);
57
+ expect(width / height).toBeGreaterThan(1.7);
58
+ expect(width / height).toBeLessThan(1.9);
59
+ expect(image.byteLength).toBeLessThan(500_000);
60
+ ```
61
+
62
+ - [ ] **Step 2: Replace obsolete copy and order assertions**
63
+
64
+ Require the following copy and ordered headings:
65
+
66
+ ```ts
67
+ expect(readme).toContain(
68
+ "Manage skills for 12 coding agents. Hand off and coordinate work between Claude Code and Codex.",
69
+ );
70
+ expect(readme).toContain("Choose -> Inspect -> Preview -> Apply -> Undo");
71
+ expect(readme).not.toMatch(/abridged terminal transcript/i);
72
+ expect(readme).toContain("npm install --global loadout-ai");
73
+ expect(readme).toContain("loadout coord discuss start");
74
+ expect(readme).toContain("--verify-command npm");
75
+ expect(readme).toMatch(/bounded design discussion/i);
76
+ expect(readme.split(/\r?\n/).length).toBeLessThanOrEqual(425);
77
+
78
+ expectOrderedReadmeStructure(
79
+ readme,
80
+ [
81
+ "## Try it in 30 seconds",
82
+ "## What Loadout does",
83
+ "## Use Claude Code and Codex together",
84
+ "## Try these prompts",
85
+ "## Install and choose your agent",
86
+ "## Safety and trust",
87
+ "## Demo",
88
+ "## Why Loadout",
89
+ "## Profiles",
90
+ "## Catalog and discovery",
91
+ "## Agent support",
92
+ "## Command reference",
93
+ "## Built with Claude and Codex",
94
+ "## Development",
95
+ "## Documentation",
96
+ "## Contributing, security, and attribution",
97
+ "## License",
98
+ ],
99
+ [
100
+ "current-limits",
101
+ "catalog-coverage",
102
+ "evidence-stages",
103
+ "daily-discovery",
104
+ "support-summary",
105
+ "verification-summary",
106
+ ],
107
+ );
108
+ ```
109
+
110
+ - [ ] **Step 3: Update section-slice tests**
111
+
112
+ Change the Why Loadout end boundary from `## Stable workflow` to `## Profiles`.
113
+ Change the first-party skill section boundaries to `## Try these prompts` and
114
+ `## Install and choose your agent`, preserving both skill-install assertions.
115
+
116
+ - [ ] **Step 4: Run the focused contract and confirm it fails for the intended reasons**
117
+
118
+ Run:
119
+
120
+ ```bash
121
+ npx vitest run tests/readme-product-flow.test.ts
122
+ ```
123
+
124
+ Expected: FAIL because the unified asset and new README headings do not exist yet; no TypeScript or helper error should appear.
125
+
126
+ - [ ] **Step 5: Commit the red contract**
127
+
128
+ ```bash
129
+ git add tests/readme-product-flow.test.ts
130
+ git commit -m "test: define unified README product story"
131
+ ```
132
+
133
+ ### Task 2: Generate and validate the unified hero
134
+
135
+ **Files:**
136
+
137
+ - Create: `docs/assets/loadout-unified-workflow-v2.webp`
138
+ - Reference: `docs/assets/loadout-discover-activate.webp`
139
+ - Reference: `docs/assets/loadout-handoff-coordinate.webp`
140
+
141
+ **Interfaces:**
142
+
143
+ - Consumes: the two existing 1672×941 diagrams as visual references only.
144
+ - Produces: a lossy VP8 WebP between 1.7:1 and 1.9:1 and below 500 KB.
145
+
146
+ - [ ] **Step 1: Generate the first candidate with the built-in image tool**
147
+
148
+ Use this exact prompt:
149
+
150
+ ```text
151
+ Use case: infographic-diagram
152
+ Asset type: GitHub README and X social-sharing hero
153
+ Primary request: Create one polished hand-drawn whiteboard infographic that explains the complete Loadout product in two related horizontal lanes.
154
+ Input images: Image 1 and Image 2 are style and composition references only; do not copy them pixel-for-pixel.
155
+ Scene/backdrop: clean white background with generous margins.
156
+ Subject: Top lane is the extension lifecycle, with three large connected panels: DISCOVER, CURATE, ACTIVATE. Bottom lane is agent collaboration, with Claude Code on the left, LOADOUT in the center, and Codex on the right, connected bidirectionally. Show HANDOFF and COORDINATE as two distinct collaboration mechanisms.
157
+ Style/medium: friendly hand-drawn marker illustration, strong dark lettering, rounded boxes, simple icons, restrained purple, blue, orange, and green accents.
158
+ Composition/framing: exact 16:9 landscape composition; readable at 960 px wide; two visually distinct lanes; no crowded microcopy.
159
+ Text (verbatim): "YOUR TOOLS. YOUR AGENTS. ONE LOADOUT."; "DISCOVER"; "skills • tools • MCP"; "CURATE"; "screened • pinned • reversible"; "ACTIVATE"; "right tools for this repo"; "Claude Code"; "LOADOUT"; "Codex"; "HANDOFF"; "durable tasks + bundled context"; "COORDINATE"; "ownership • contracts • decisions"; "Preview every change • Roll back anytime • Full audit trail".
160
+ Constraints: render every quoted phrase exactly once with exact spelling and capitalization; CURATE must visually contain a small curator/filter icon; handoff and coordinate must be visibly distinct; no claims about shared memory or continuous conversation.
161
+ Avoid: gradients, dark background, tiny paragraphs, fake screenshots, star counts, unsupported metrics, logos copied inaccurately, watermarks, third agent, extra text.
162
+ ```
163
+
164
+ - [ ] **Step 2: Inspect the candidate at full resolution**
165
+
166
+ Reject the image if any exact phrase is misspelled, duplicated, missing, visibly clipped, or unreadable. Iterate with one targeted correction per generation.
167
+
168
+ - [ ] **Step 3: Save and convert the accepted candidate**
169
+
170
+ Copy the accepted generated bitmap into the workspace as a versioned source, then convert it without overwriting either historical diagram:
171
+
172
+ ```bash
173
+ cwebp -quiet -q 88 accepted-generated-image.png -o docs/assets/loadout-unified-workflow-v2.webp
174
+ ```
175
+
176
+ If `cwebp` is unavailable, use macOS `sips` to produce WebP and verify that the result uses lossy VP8 encoding before continuing.
177
+
178
+ - [ ] **Step 4: Validate dimensions, encoding, and size**
179
+
180
+ Run:
181
+
182
+ ```bash
183
+ file docs/assets/loadout-unified-workflow-v2.webp
184
+ node -e 'const fs=require("fs");const b=fs.readFileSync("docs/assets/loadout-unified-workflow-v2.webp");if(b.toString("ascii",0,4)!=="RIFF"||b.toString("ascii",8,12)!=="WEBP"||b.toString("ascii",12,16)!=="VP8 ")process.exit(1);const w=b.readUInt16LE(26)&0x3fff,h=b.readUInt16LE(28)&0x3fff;console.log({w,h,ratio:w/h,bytes:b.length});if(w/h<=1.7||w/h>=1.9||b.length>=500000)process.exit(1)'
185
+ ```
186
+
187
+ Expected: a WebP image, ratio strictly between 1.7 and 1.9, and fewer than 500,000 bytes.
188
+
189
+ - [ ] **Step 5: Commit the accepted asset**
190
+
191
+ ```bash
192
+ git add docs/assets/loadout-unified-workflow-v2.webp
193
+ git commit -m "docs: add unified Loadout workflow hero"
194
+ ```
195
+
196
+ ### Task 3: Rewrite the README around one first-time-user path
197
+
198
+ **Files:**
199
+
200
+ - Modify: `README.md`
201
+ - Test: `tests/readme-product-flow.test.ts`
202
+ - Verify: `docs/evidence/readme-claims.json`
203
+
204
+ **Interfaces:**
205
+
206
+ - Consumes: `docs/assets/loadout-unified-workflow-v2.webp` and all existing generated marker blocks.
207
+ - Produces: one tutorial-first README below 425 lines with working commands and compact reference sections.
208
+
209
+ - [ ] **Step 1: Replace the top fold**
210
+
211
+ Use this exact opening copy and image element, retaining the existing badge row:
212
+
213
+ ```html
214
+ <h1 align="center">Loadout</h1>
215
+
216
+ <p align="center">
217
+ <strong
218
+ >Manage skills for 12 coding agents.<br />Hand off and coordinate work
219
+ between Claude Code and Codex.</strong
220
+ >
221
+ </p>
222
+
223
+ <p align="center">
224
+ <img
225
+ src="./docs/assets/loadout-unified-workflow-v2.webp"
226
+ alt="Loadout discovers, curates, and activates skills, tools, and MCP servers for coding agents, then helps Claude Code and Codex handoff and coordinate work through durable tasks, bundled context, ownership, contracts, and decisions."
227
+ width="960"
228
+ />
229
+ </p>
230
+ ```
231
+
232
+ Update the top navigation to link to `#try-it-in-30-seconds`,
233
+ `#use-claude-code-and-codex-together`, `#try-these-prompts`,
234
+ `#safety-and-trust`, and `#command-reference`.
235
+
236
+ - [ ] **Step 2: Write the first-success path**
237
+
238
+ Use this exact core flow:
239
+
240
+ ````markdown
241
+ ## Try it in 30 seconds
242
+
243
+ You need Node.js 20 or newer and Git.
244
+
245
+ ```bash
246
+ npm install --global loadout-ai
247
+ loadout setup --mode stable
248
+ ```
249
+
250
+ The second command detects your coding agents and previews the 30-skill Stable
251
+ loadout. It does not change agent files. Review the plan, then apply it:
252
+
253
+ ```bash
254
+ loadout setup --mode stable --yes
255
+ loadout status
256
+ ```
257
+
258
+ Loadout saves a rollback snapshot before applying changes. Run
259
+ `loadout rollback` to restore the previous managed state.
260
+ ````
261
+
262
+ - [ ] **Step 3: Add the five-capability overview**
263
+
264
+ Use one compact table with these exact rows:
265
+
266
+ ```markdown
267
+ | Capability | What you get |
268
+ | -------------- | --------------------------------------------------------------------- |
269
+ | **Discover** | Find skills, tools, and MCP servers worth reviewing |
270
+ | **Curate** | Inspect, screen, and pin sources before trusting them |
271
+ | **Activate** | Install a focused set for this repository across your agents |
272
+ | **Handoff** | Pass durable tasks with bundled context between Claude Code and Codex |
273
+ | **Coordinate** | Share file ownership, contracts, decisions, and acknowledgements |
274
+ ```
275
+
276
+ - [ ] **Step 4: Consolidate two-agent usage**
277
+
278
+ Under `## Use Claude Code and Codex together`, retain one complete handoff
279
+ command containing `--bundle`, `--verify`, `--verify-command npm`, and
280
+ `--verify-args '["test"]'`. Follow it with one coordination block containing
281
+ `loadout coord start`, `loadout coord snapshot codex`, and one bounded
282
+ `loadout coord discuss start` command. Include this exact clarification:
283
+
284
+ ```markdown
285
+ Coordination is structured shared project state, not shared memory or a merged
286
+ context window. Events reach an agent at safe turn boundaries or when it checks
287
+ its snapshot; Loadout does not interrupt a turn in progress.
288
+ ```
289
+
290
+ - [ ] **Step 5: Put skill installation before pasteable prompts**
291
+
292
+ Under `## Try these prompts`, show both first-party skill installation commands
293
+ before the existing three quoted natural-language prompts. Keep the explanation
294
+ to one sentence before and one sentence after the blockquotes.
295
+
296
+ - [ ] **Step 6: Consolidate installation, trust, demo, and reference detail**
297
+
298
+ Create `## Install and choose your agent` with the pinned 0.9.2 install command,
299
+ the recommended Stable workflow, and links to `docs/REFERENCE.md` and
300
+ `docs/USER_TEST_GUIDE.md`. Create `## Safety and trust` and move the
301
+ `current-limits` marker block into it. Move the existing YouTube thumbnail under
302
+ `## Demo`. Remove `## Stable workflow` and `### Abridged terminal transcript`.
303
+ Preserve the Why Loadout story, profiles table, catalog marker blocks, support
304
+ marker block, command reference, authorship, development marker block,
305
+ documentation links, community links, and license.
306
+
307
+ - [ ] **Step 7: Run formatting and the focused README tests**
308
+
309
+ Run:
310
+
311
+ ```bash
312
+ npx prettier README.md tests/readme-product-flow.test.ts --write
313
+ npx vitest run tests/readme-product-flow.test.ts tests/readme-claims.test.ts tests/readme-facts-script.test.ts
314
+ npm run test:e2e:readme
315
+ npm run check:evidence
316
+ ```
317
+
318
+ Expected: all commands exit 0 and the README journey reports success.
319
+
320
+ - [ ] **Step 8: Commit the README rewrite**
321
+
322
+ ```bash
323
+ git add README.md tests/readme-product-flow.test.ts
324
+ git commit -m "docs: simplify README around one Loadout workflow"
325
+ ```
326
+
327
+ ### Task 4: Final visual and repository verification
328
+
329
+ **Files:**
330
+
331
+ - Verify: `README.md`
332
+ - Verify: `docs/assets/loadout-unified-workflow-v2.webp`
333
+ - Verify: repository test and evidence configuration
334
+
335
+ **Interfaces:**
336
+
337
+ - Consumes: the completed hero, README, and test contract.
338
+ - Produces: evidence that the documentation change is visually legible, truthful, formatted, and regression-free.
339
+
340
+ - [ ] **Step 1: Inspect the hero at README scale**
341
+
342
+ Render or resize a temporary 960-pixel-wide preview and visually confirm all
343
+ required labels remain readable. Do not commit the temporary preview.
344
+
345
+ - [ ] **Step 2: Check documentation integrity**
346
+
347
+ Run:
348
+
349
+ ```bash
350
+ npm run format:check
351
+ npm run readme:check
352
+ npm run check:readme-claims
353
+ npm run test:e2e:readme
354
+ git diff --check
355
+ ```
356
+
357
+ Expected: every command exits 0.
358
+
359
+ - [ ] **Step 3: Run the full verification gate**
360
+
361
+ Run:
362
+
363
+ ```bash
364
+ npm run verify
365
+ ```
366
+
367
+ Expected: exit 0 with formatting, lint, typecheck, audit, evidence, unit,
368
+ integration, package, and performance checks passing.
369
+
370
+ - [ ] **Step 4: Confirm the final diff is scoped**
371
+
372
+ Run:
373
+
374
+ ```bash
375
+ git status --short
376
+ git diff origin/main...HEAD -- README.md tests/readme-product-flow.test.ts docs/assets/loadout-unified-workflow-v2.webp
377
+ ```
378
+
379
+ Expected: implementation changes are limited to the README, its contract test,
380
+ and the new hero asset, in addition to the already committed design and plan.