docs: complete defense speech simplification
This commit is contained in:
@@ -353,13 +353,15 @@ separate activity after these surfaces are stable.
|
|||||||
|
|
||||||
Presentation wishlist / defense readiness:
|
Presentation wishlist / defense readiness:
|
||||||
|
|
||||||
### Next: Simpler Speech
|
### Completed: Simpler Speech
|
||||||
|
|
||||||
1. Planned: give every beat one audience goal and one to three anchor terms,
|
1. Completed: gave every beat one audience goal and one to three anchor terms,
|
||||||
then simplify the timed presenter path through Scenes 1-8 to one suggested
|
then simplified the timed presenter path through Scenes 1-8 to one suggested
|
||||||
sentence per beat. Keep essential vocabulary such as Workflow API and
|
sentence per beat. Keep essential vocabulary such as Workflow API and
|
||||||
lifecycle record names, while moving detailed qualification into optional
|
lifecycle record names, while moving detailed qualification into optional
|
||||||
notes or Q&A.
|
notes or Q&A. The current catalog contains a 9:27 must-say path with a
|
||||||
|
500-700 word budget and a 10:42 complete-deck target. Implementation:
|
||||||
|
[`defense speech simplification`](historical/superpowers/plans/2026-07-13-defense-speech-simplification.md).
|
||||||
|
|
||||||
### Completed: Factual Scene 8 Evidence
|
### Completed: Factual Scene 8 Evidence
|
||||||
|
|
||||||
@@ -439,11 +441,11 @@ Design:
|
|||||||
exact URLs, keyboard controls, live RPC/demo fallback steps, story spine,
|
exact URLs, keyboard controls, live RPC/demo fallback steps, story spine,
|
||||||
timing, and short speaker notes for what to say if the live demo fails.
|
timing, and short speaker notes for what to say if the live demo fails.
|
||||||
[`defense speech and claim audit`](runbooks/defense-speech-and-claim-audit.md)
|
[`defense speech and claim audit`](runbooks/defense-speech-and-claim-audit.md)
|
||||||
provides the current 11-minute speech plus navigation buffer, evidence qualifications, and
|
provides the current 9:27 speech plus navigation buffer, evidence qualifications, and
|
||||||
prioritized 12-minute Q&A.
|
prioritized 12-minute Q&A.
|
||||||
Completed: [`defense story reweighting`](historical/superpowers/plans/2026-07-13-defense-story-reweighting.md)
|
Completed: [`defense story reweighting`](historical/superpowers/plans/2026-07-13-defense-story-reweighting.md)
|
||||||
now provides a typed 39-beat presenter-note catalog, a 650-850-word must-say
|
now provides a typed 39-beat presenter-note catalog, a 500-700-word must-say
|
||||||
path, evidence warnings, and a 12:15 complete-deck timing contract. Completed:
|
path, evidence warnings, and a 10:42 complete-deck timing contract. Completed:
|
||||||
[`interactive graphs and Scenes 3-6 choreography`](historical/superpowers/plans/2026-07-13-scenes-3-6-kernel-choreography.md)
|
[`interactive graphs and Scenes 3-6 choreography`](historical/superpowers/plans/2026-07-13-scenes-3-6-kernel-choreography.md)
|
||||||
adds restrained Scene 3-5 choreography, a semantic-zoom architecture map,
|
adds restrained Scene 3-5 choreography, a semantic-zoom architecture map,
|
||||||
the readable `wf_core` and NodeUse figures, and a factual prepared-run graph
|
the readable `wf_core` and NodeUse figures, and a factual prepared-run graph
|
||||||
|
|||||||
+23
-23
@@ -31,7 +31,7 @@
|
|||||||
- Consumes: `presenterNotes`, `presenterSceneNotes()`, `mainSpeechWordCount()`.
|
- Consumes: `presenterNotes`, `presenterSceneNotes()`, `mainSpeechWordCount()`.
|
||||||
- Produces: regression constraints for the rewritten catalog.
|
- Produces: regression constraints for the rewritten catalog.
|
||||||
|
|
||||||
- [ ] **Step 1: Replace the old timing and word-budget expectations**
|
- [x] **Step 1: Replace the old timing and word-budget expectations**
|
||||||
|
|
||||||
Assert scene totals of `[30, 30, 35, 40, 36, 32, 12, 42, 35, 30, 50, 120, 75]`, a complete-deck target of `642` including the existing 75-second navigation buffer, and a `500-700` word budget. Check every beat has a non-empty `goal` and one to three non-empty `keywords`. Separately check that no suggested `mustSay` value in Scenes 1-8 exceeds 28 words.
|
Assert scene totals of `[30, 30, 35, 40, 36, 32, 12, 42, 35, 30, 50, 120, 75]`, a complete-deck target of `642` including the existing 75-second navigation buffer, and a `500-700` word budget. Check every beat has a non-empty `goal` and one to three non-empty `keywords`. Separately check that no suggested `mustSay` value in Scenes 1-8 exceeds 28 words.
|
||||||
|
|
||||||
@@ -60,7 +60,7 @@ for (const note of presenterNotes.filter((item) => openingSceneIds.has(item.scen
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
- [ ] **Step 2: Replace the obsolete diagnostic assertions**
|
- [x] **Step 2: Replace the obsolete diagnostic assertions**
|
||||||
|
|
||||||
```ts
|
```ts
|
||||||
expect(presenterBeatNoteFor("prepared-lifecycle", "diagnose")?.mustSay)
|
expect(presenterBeatNoteFor("prepared-lifecycle", "diagnose")?.mustSay)
|
||||||
@@ -71,7 +71,7 @@ expect(presenterBeatNoteFor("prepared-lifecycle", "diagnose")?.mustSay)
|
|||||||
.not.toMatch(/output projection/i);
|
.not.toMatch(/output projection/i);
|
||||||
```
|
```
|
||||||
|
|
||||||
- [ ] **Step 3: Run the focused test and verify RED**
|
- [x] **Step 3: Run the focused test and verify RED**
|
||||||
|
|
||||||
Run:
|
Run:
|
||||||
|
|
||||||
@@ -81,7 +81,7 @@ pnpm --dir web --filter @lda/console test -- src/presentation/presenter/presente
|
|||||||
|
|
||||||
Expected: failures for timing, word budget, maximum beat length, and the obsolete diagnostic text.
|
Expected: failures for timing, word budget, maximum beat length, and the obsolete diagnostic text.
|
||||||
|
|
||||||
- [ ] **Step 4: Commit the failing contract**
|
- [x] **Step 4: Commit the failing contract**
|
||||||
|
|
||||||
```powershell
|
```powershell
|
||||||
git add web/apps/console/src/presentation/presenter/presenter-notes.test.ts
|
git add web/apps/console/src/presentation/presenter/presenter-notes.test.ts
|
||||||
@@ -98,7 +98,7 @@ git commit -m "test: define simpler defense speech contract"
|
|||||||
- Consumes: `beatNote()` and the existing note metadata.
|
- Consumes: `beatNote()` and the existing note metadata.
|
||||||
- Produces: presenter goals, anchor terms, and suggested speech rendered by `/presenter`.
|
- Produces: presenter goals, anchor terms, and suggested speech rendered by `/presenter`.
|
||||||
|
|
||||||
- [ ] **Step 1: Set the new target seconds**
|
- [x] **Step 1: Set the new target seconds**
|
||||||
|
|
||||||
Use these per-beat values:
|
Use these per-beat values:
|
||||||
|
|
||||||
@@ -113,7 +113,7 @@ Use these per-beat values:
|
|||||||
// Scene 8: 7, 7, 7, 7, 7, 7
|
// Scene 8: 7, 7, 7, 7, 7, 7
|
||||||
```
|
```
|
||||||
|
|
||||||
- [ ] **Step 2: Extend the presenter note type and constructor**
|
- [x] **Step 2: Extend the presenter note type and constructor**
|
||||||
|
|
||||||
Add these required fields:
|
Add these required fields:
|
||||||
|
|
||||||
@@ -132,7 +132,7 @@ export type PresenterBeatNote = {
|
|||||||
Add `goal` and `keywords` parameters to `beatNote()` before `mustSay`. Keep
|
Add `goal` and `keywords` parameters to `beatNote()` before `mustSay`. Keep
|
||||||
`mustSay` as the existing field name to avoid unrelated navigation churn.
|
`mustSay` as the existing field name to avoid unrelated navigation churn.
|
||||||
|
|
||||||
- [ ] **Step 3: Add exact goals and keywords for every beat**
|
- [x] **Step 3: Add exact goals and keywords for every beat**
|
||||||
|
|
||||||
Use this catalog in storyboard order:
|
Use this catalog in storyboard order:
|
||||||
|
|
||||||
@@ -178,7 +178,7 @@ conclusion/conclusion: Goal "Restate the implemented contribution and planner-ru
|
|||||||
conclusion/questions: Goal "Open structured examiner discussion without introducing new claims." Keywords "defense questions", "evidence"
|
conclusion/questions: Goal "Open structured examiner discussion without introducing new claims." Keywords "defense questions", "evidence"
|
||||||
```
|
```
|
||||||
|
|
||||||
- [ ] **Step 4: Replace the exact `mustSay` values for Scenes 1-8**
|
- [x] **Step 4: Replace the exact `mustSay` values for Scenes 1-8**
|
||||||
|
|
||||||
Use these sentences in storyboard order:
|
Use these sentences in storyboard order:
|
||||||
|
|
||||||
@@ -218,11 +218,11 @@ Finally, a deployment connects it to the three local sources it needs.
|
|||||||
|
|
||||||
Preserve the existing warnings, fallbacks, evidence pointers, and Q&A branch IDs. Move the existing qualification about fixed definitions/provider variability into `optionalDetail` on `planner-runtime/runtime` if it is not already represented by `warning`.
|
Preserve the existing warnings, fallbacks, evidence pointers, and Q&A branch IDs. Move the existing qualification about fixed definitions/provider variability into `optionalDetail` on `planner-runtime/runtime` if it is not already represented by `warning`.
|
||||||
|
|
||||||
- [ ] **Step 5: Run the focused test and verify only UI/runbook synchronization remains RED**
|
- [x] **Step 5: Run the focused test and verify only UI/runbook synchronization remains RED**
|
||||||
|
|
||||||
Run the focused presenter-note test. Expected: catalog/timing/word constraints pass; synchronization fails because the readable runbook still contains the old speech.
|
Run the focused presenter-note test. Expected: catalog/timing/word constraints pass; synchronization fails because the readable runbook still contains the old speech.
|
||||||
|
|
||||||
- [ ] **Step 6: Commit the typed catalog rewrite**
|
- [x] **Step 6: Commit the typed catalog rewrite**
|
||||||
|
|
||||||
```powershell
|
```powershell
|
||||||
git add web/apps/console/src/presentation/presenter/presenter-notes.ts web/apps/console/src/presentation/presenter/presenter-notes.test.ts
|
git add web/apps/console/src/presentation/presenter/presenter-notes.ts web/apps/console/src/presentation/presenter/presenter-notes.test.ts
|
||||||
@@ -240,30 +240,30 @@ git commit -m "docs: simplify opening defense speech"
|
|||||||
- Consumes: `PresenterBeatNote.goal`, `keywords`, and `mustSay`.
|
- Consumes: `PresenterBeatNote.goal`, `keywords`, and `mustSay`.
|
||||||
- Produces: a rehearsal surface that distinguishes the slide goal, anchor terms, and flexible wording.
|
- Produces: a rehearsal surface that distinguishes the slide goal, anchor terms, and flexible wording.
|
||||||
|
|
||||||
- [ ] **Step 1: Write failing presenter-note tests**
|
- [x] **Step 1: Write failing presenter-note tests**
|
||||||
|
|
||||||
Assert the current note renders regions labelled `Beat goal`, `Anchor terms`,
|
Assert the current note renders regions labelled `Beat goal`, `Anchor terms`,
|
||||||
and `Suggested wording`. Assert every keyword is visible and that the old label
|
and `Suggested wording`. Assert every keyword is visible and that the old label
|
||||||
`Must say` is absent.
|
`Must say` is absent.
|
||||||
|
|
||||||
- [ ] **Step 2: Run the focused test and verify RED**
|
- [x] **Step 2: Run the focused test and verify RED**
|
||||||
|
|
||||||
Run `PresenterNote.test.tsx` directly.
|
Run `PresenterNote.test.tsx` directly.
|
||||||
|
|
||||||
- [ ] **Step 3: Render the three-level rehearsal hierarchy**
|
- [x] **Step 3: Render the three-level rehearsal hierarchy**
|
||||||
|
|
||||||
Render the goal first as one concise sentence, keywords second as a plain list
|
Render the goal first as one concise sentence, keywords second as a plain list
|
||||||
of one to three strong terms, and the Markdown sentence under `Suggested
|
of one to three strong terms, and the Markdown sentence under `Suggested
|
||||||
wording`. Do not render keywords as decorative pills; use readable inline text
|
wording`. Do not render keywords as decorative pills; use readable inline text
|
||||||
or a compact list.
|
or a compact list.
|
||||||
|
|
||||||
- [ ] **Step 4: Style for desktop and mobile rehearsal**
|
- [x] **Step 4: Style for desktop and mobile rehearsal**
|
||||||
|
|
||||||
Keep the goal visually strongest, keywords high-contrast and scannable, and
|
Keep the goal visually strongest, keywords high-contrast and scannable, and
|
||||||
suggested wording readable but subordinate. Preserve the stable Previous/Next
|
suggested wording readable but subordinate. Preserve the stable Previous/Next
|
||||||
bar and existing Q&A sidebar.
|
bar and existing Q&A sidebar.
|
||||||
|
|
||||||
- [ ] **Step 5: Run tests and commit**
|
- [x] **Step 5: Run tests and commit**
|
||||||
|
|
||||||
```powershell
|
```powershell
|
||||||
pnpm --dir web --filter @lda/console test -- src/presentation/presenter/PresenterNote.test.tsx
|
pnpm --dir web --filter @lda/console test -- src/presentation/presenter/PresenterNote.test.tsx
|
||||||
@@ -285,15 +285,15 @@ Add each beat's **Goal** and **Anchor terms** throughout the runbook. For Scenes
|
|||||||
1-8, also replace the **Suggested wording** with the exact plain-text version of
|
1-8, also replace the **Suggested wording** with the exact plain-text version of
|
||||||
Task 2's `mustSay` value so the existing synchronization test stays meaningful.
|
Task 2's `mustSay` value so the existing synchronization test stays meaningful.
|
||||||
|
|
||||||
- [ ] **Step 1: Update timing prose and table**
|
- [x] **Step 1: Update timing prose and table**
|
||||||
|
|
||||||
Change the must-say target from `11:00` to `9:27`, retain a `1:15` navigation buffer, and set the complete-deck target to `10:42`. Update the Scenes 1-8 segment times to match Task 2; leave Scenes 9-13 targets unchanged.
|
Change the must-say target from `11:00` to `9:27`, retain a `1:15` navigation buffer, and set the complete-deck target to `10:42`. Update the Scenes 1-8 segment times to match Task 2; leave Scenes 9-13 targets unchanged.
|
||||||
|
|
||||||
- [ ] **Step 2: Replace the Scene 1-8 `Say:` blocks verbatim**
|
- [x] **Step 2: Replace the Scene 1-8 `Say:` blocks verbatim**
|
||||||
|
|
||||||
Use the exact plain-text versions of Task 2's sentences. Keep claim qualifications below each block; do not require the presenter to speak them.
|
Use the exact plain-text versions of Task 2's sentences. Keep claim qualifications below each block; do not require the presenter to speak them.
|
||||||
|
|
||||||
- [ ] **Step 3: Run verification**
|
- [x] **Step 3: Run verification**
|
||||||
|
|
||||||
```powershell
|
```powershell
|
||||||
pnpm --dir web --filter @lda/console test -- src/presentation/presenter/presenter-notes.test.ts
|
pnpm --dir web --filter @lda/console test -- src/presentation/presenter/presenter-notes.test.ts
|
||||||
@@ -303,11 +303,11 @@ git diff --check
|
|||||||
|
|
||||||
Expected: all presenter tests pass, typecheck is clean, and no whitespace errors are reported.
|
Expected: all presenter tests pass, typecheck is clean, and no whitespace errors are reported.
|
||||||
|
|
||||||
- [ ] **Step 4: Verify `/presenter` at desktop and mobile widths**
|
- [x] **Step 4: Verify `/presenter` at desktop and mobile widths**
|
||||||
|
|
||||||
Open `/presenter#scene/planner-runtime/boundary` and `/presenter#scene/architecture/api` at `1280x720` and `390x844`. Confirm bold phrases remain readable, Previous/Next controls stay stable, and the simplified `mustSay` text does not overflow.
|
Open `/presenter#scene/planner-runtime/boundary` and `/presenter#scene/architecture/api` at `1280x720` and `390x844`. Confirm bold phrases remain readable, Previous/Next controls stay stable, and the simplified `mustSay` text does not overflow.
|
||||||
|
|
||||||
- [ ] **Step 5: Commit the synchronized runbook**
|
- [x] **Step 5: Commit the synchronized runbook**
|
||||||
|
|
||||||
```powershell
|
```powershell
|
||||||
git add docs/runbooks/defense-speech-and-claim-audit.md
|
git add docs/runbooks/defense-speech-and-claim-audit.md
|
||||||
@@ -324,15 +324,15 @@ git commit -m "docs: synchronize simplified defense runbook"
|
|||||||
- Consumes: verified implementation from Tasks 1-3.
|
- Consumes: verified implementation from Tasks 1-3.
|
||||||
- Produces: accurate live roadmap status and historical implementation record.
|
- Produces: accurate live roadmap status and historical implementation record.
|
||||||
|
|
||||||
- [ ] **Step 1: Mark only the speech item completed**
|
- [x] **Step 1: Mark only the speech item completed**
|
||||||
|
|
||||||
Leave the Scene 8 evidence item planned until its separate plan is implemented.
|
Leave the Scene 8 evidence item planned until its separate plan is implemented.
|
||||||
|
|
||||||
- [ ] **Step 2: Move this completed plan and verify links**
|
- [x] **Step 2: Move this completed plan and verify links**
|
||||||
|
|
||||||
Update the roadmap link to the historical path, run `git diff --check`, and confirm no live document points to the old active-plan path.
|
Update the roadmap link to the historical path, run `git diff --check`, and confirm no live document points to the old active-plan path.
|
||||||
|
|
||||||
- [ ] **Step 3: Commit docs closure**
|
- [x] **Step 3: Commit docs closure**
|
||||||
|
|
||||||
```powershell
|
```powershell
|
||||||
git add docs/current_roadmap.md docs/superpowers/plans/2026-07-13-defense-speech-simplification.md docs/historical/superpowers/plans/2026-07-13-defense-speech-simplification.md
|
git add docs/current_roadmap.md docs/superpowers/plans/2026-07-13-defense-speech-simplification.md docs/historical/superpowers/plans/2026-07-13-defense-speech-simplification.md
|
||||||
Reference in New Issue
Block a user