feat: gather defense discussion topics

This commit is contained in:
lda
2026-07-10 18:57:33 +07:00 Verified
parent 6b78ce819b
commit 0a02c23be2
9 changed files with 309 additions and 6 deletions
+67
View File
@@ -0,0 +1,67 @@
# Task 3 Report
## Files
- `web/apps/console/src/presentation/discussion/defense-discussion-index.ts`
- `web/apps/console/src/presentation/discussion/defense-discussion-index.test.ts`
- `web/apps/console/src/presentation/discussion/DefenseDiscussionIndex.tsx`
- `web/apps/console/src/presentation/discussion/DefenseDiscussionIndex.test.tsx`
- `web/apps/console/src/presentation/storyboard.ts`
- `web/apps/console/src/presentation/storyboard.test.ts`
- `web/apps/console/src/presentation/storyboard-navigation.test.ts`
- `web/apps/console/src/presentation/presentation.css`
- `.superpowers/sdd/task-3-report.md`
## TDD Evidence
### RED
Projection command:
```text
pnpm --dir web --filter @lda/console test -- src/presentation/discussion/defense-discussion-index.test.ts
```
Result: failed before tests ran because `./defense-discussion-index.js` did not exist.
Component/storyboard command:
```text
pnpm --dir web --filter @lda/console test -- src/presentation/discussion/DefenseDiscussionIndex.test.tsx src/presentation/storyboard.test.ts src/presentation/storyboard-navigation.test.ts
```
Result: failed with the missing component module, one missing Questions beat assertion, and one missing Questions navigation assertion. Existing storyboard/navigation coverage had 17 passing tests.
### GREEN
Focused combined run passed: 4 test files and 23 tests.
## Verification
- `pnpm --dir web --filter @lda/console test -- src/presentation/discussion/defense-discussion-index.test.ts src/presentation/discussion/DefenseDiscussionIndex.test.tsx src/presentation/storyboard.test.ts src/presentation/storyboard-navigation.test.ts` passed: 23 tests.
- `pnpm --dir web --filter @lda/console test -- src/presentation/discussion/defense-discussion-index.test.ts` passed: 2 tests.
- `pnpm --dir web --filter @lda/console typecheck` passed.
- `pnpm --dir web --filter @lda/console build` passed; Vite emitted the existing chunk-size warning for the 788 kB JavaScript bundle.
- `git diff --check` passed.
## Deviations
- The report file is included because the task explicitly requires it.
- The index remains a standalone component because the task file list excludes `SceneBody.tsx` and route integration files; no files outside the Task 3 surface were changed.
- The canonical branch title `Live demo reliability` is used in the component test; its question and answer remain sourced from the canonical branch object.
## Concerns
- `DefenseDiscussionIndex` is not wired into the scene renderer by this task. A later integration task must render it for the Questions beat.
- The CSS intentionally uses a two-column ledger and one-column narrow layout; it does not use pill styling.
- The production build retains the existing Vite warning about a JavaScript chunk larger than 500 kB.
## Self-review
- Confirmed all 22 canonical branch IDs occur exactly once in the seven groups and all mapping keys match `discussionBranches`.
- Confirmed group branch objects are derived by filtering canonical `discussionBranches`, without duplicated titles or answer content.
- Confirmed the required Lucide icons appear beside visible group labels.
- Confirmed branch buttons pass canonical IDs to `openDiscussion`.
- Confirmed Evaluation and every Conclusion beat, including Questions, explicitly use hidden chat.
- Confirmed Questions navigation resolves to `#scene/conclusion/questions` with an empty focus path.
- Confirmed only Task 3 files and this required report were changed.