diff --git a/.superpowers/sdd/task-2-report.md b/.superpowers/sdd/task-2-report.md deleted file mode 100644 index 48a37cf..0000000 --- a/.superpowers/sdd/task-2-report.md +++ /dev/null @@ -1,44 +0,0 @@ -# Task 2 Report: Workbench Types And Project-Scoped Mock Data - -## What changed - -- Added the typed workbench domain model in `apps/web/src/features/workbench/types.ts`. -- Added two project records and project-scoped workspace mock data in `apps/web/src/features/workbench/mockData.ts`. -- Added coverage for dynamic projects, project-specific channels, channel ordering, and custom-link URL shape in `apps/web/src/features/workbench/mockData.test.ts`. -- Kept the implementation scoped to the requested workbench data and test files. No UI components, React dependencies, or shadcn/ui dependencies were changed. - -## Tests - -- Targeted test: `npm test -- --run src/features/workbench/mockData.test.ts` -> 1 file passed, 2 tests passed. -- Full Web test suite: `npm test -- --run` -> 4 files passed, 7 tests passed. -- Web production build: `npm run build` -> successful. -- Formatting/diff validation: `git diff --check` -> no issues. - -## TDD evidence - -1. Created `mockData.test.ts` before production implementation. -2. Ran the targeted test and observed the expected red result: Vitest could not resolve `./mockData` because the implementation files did not exist. -3. Added `types.ts` and `mockData.ts` using the exact task brief values. -4. Re-ran the targeted test and observed green: 2/2 tests passed. -5. Ran the full Web test suite and build successfully. - -## Files changed - -- `apps/web/src/features/workbench/types.ts` -- `apps/web/src/features/workbench/mockData.ts` -- `apps/web/src/features/workbench/mockData.test.ts` -- `.superpowers/sdd/task-2-report.md` - -## Self-review - -- `ChannelType` contains all seven required channel literals in the specified order. -- `ProjectWorkspace` includes all required project-scoped collections. -- Both projects receive distinct channel IDs, item IDs, and custom-link URLs through the project ID interpolation. -- `getProjectWorkspace` returns the requested workspace and preserves the brief's fallback to the first workspace for unknown IDs. -- The test verifies at least two projects, numeric IDs, names, distinct workspace IDs, channel order, and custom-link URL format. -- No unrelated tracked files were changed. - -## Concerns - -- Vitest and Vite report the pre-existing warning that no Svelte config was found in `apps/web`; it did not prevent tests or the build from succeeding. -- The mock data is intentionally static and duplicated across projects via the shared workspace mapper, as required for this MVP task. diff --git a/.superpowers/sdd/task-4-report.md b/.superpowers/sdd/task-4-report.md deleted file mode 100644 index b743d8d..0000000 --- a/.superpowers/sdd/task-4-report.md +++ /dev/null @@ -1,67 +0,0 @@ -# Task 4 Report: Channel Content Templates And Object Inspector - -## Status - -Implemented and committed the Task 4 workbench channel templates and object inspector. - -## What Changed - -- Added `ChannelContent.svelte`, which dispatches `ProjectWorkspace` data to the selected system or custom channel template. -- Added seven channel templates for overview, inbox, tasks, AI sessions, notes and sources, cron plans, and external custom links. -- Made all applicable records selectable through an `Inspect ` action that supplies an `InspectorItem` to the workbench. -- Added `ObjectInspector.svelte` with Discussion, Properties, and More tabs, including empty-state behavior and object properties. -- Wired the selected channel and selected inspector item into `ProjectWorkbench.svelte`. -- Added the required channel dispatcher test, including the task-to-inspector callback assertion. -- Kept visual-system CSS untouched for Task 5. - -## TDD Evidence - -1. Added `apps/web/src/features/workbench/ChannelContent.test.ts` before creating any production channel component. -2. Ran `npm test -- --run src/features/workbench/ChannelContent.test.ts` from `apps/web`. -3. Observed the expected red failure: Vite could not resolve `./ChannelContent.svelte` because it did not exist. -4. Implemented the dispatcher and channel components, then ran the focused channel and workbench tests. -5. Corrected the inspector tab semantics after the green run exposed Svelte accessibility warnings, then reran verification with no warnings. - -## Tests - -- `npm test -- --run src/features/workbench/ChannelContent.test.ts src/features/workbench/ProjectWorkbench.test.ts` - - Passed: 2 test files, 4 tests. -- `npm run build` - - Passed: Vite production build completed successfully. -- `git diff --check` - - Passed: no whitespace errors. - -## Files Changed - -- Created `apps/web/src/features/workbench/ChannelContent.svelte` -- Created `apps/web/src/features/workbench/ChannelContent.test.ts` -- Created `apps/web/src/features/workbench/ObjectInspector.svelte` -- Created `apps/web/src/features/workbench/channels/OverviewChannel.svelte` -- Created `apps/web/src/features/workbench/channels/InboxChannel.svelte` -- Created `apps/web/src/features/workbench/channels/TasksChannel.svelte` -- Created `apps/web/src/features/workbench/channels/AISessionsChannel.svelte` -- Created `apps/web/src/features/workbench/channels/NotesSourcesChannel.svelte` -- Created `apps/web/src/features/workbench/channels/CronChannel.svelte` -- Created `apps/web/src/features/workbench/channels/CustomLinkChannel.svelte` -- Modified `apps/web/src/features/workbench/ProjectWorkbench.svelte` -- Created this report: `.superpowers/sdd/task-4-report.md` - -## Self-Review - -- Confirmed every `WorkbenchChannel` type has a dedicated rendered template through the dispatcher. -- Confirmed the custom link uses the required `Open external channel` text and provides a copy-style action. -- Confirmed task inspection produces the exact task title required by the test. -- Confirmed the inspector remains visible through its existing `aria-label` and exposes semantic tab state using `role="tab"` with `aria-selected`. -- Confirmed no React, shadcn/ui dependency, or index.css modification was introduced. -- Confirmed unrelated existing `.superpowers/sdd` files were not staged. - -## Concerns - -- The copy URL and inspector More-tab actions are present as MVP UI controls; beyond writing the custom URL to the clipboard, they intentionally do not persist or mutate workbench data. -- Visual styling is limited to semantic class hooks by design; Task 5 owns the visual-system CSS work. - -## Review Fixes - -- Replaced the incomplete ARIA tabs pattern in `ObjectInspector.svelte` with ordinary pressed view-switcher buttons, removing tab and tablist roles that required a full tab-panel keyboard interaction model. -- Extended `ProjectWorkbench.test.ts` to select the Work Plan channel, inspect a task, and assert the rendered inspector title plus Properties values within the object inspector. -- Focused workbench coverage passed after the changes: 2 test files, 5 tests. diff --git a/.superpowers/sdd/task-5-report.md b/.superpowers/sdd/task-5-report.md deleted file mode 100644 index d4fc752..0000000 --- a/.superpowers/sdd/task-5-report.md +++ /dev/null @@ -1,43 +0,0 @@ -# Task 5 Report: shadcn/ui-Inspired Visual System In CSS - -## Status - -Implemented and committed the Task 5 workbench visual system. - -## What Changed - -- Replaced `apps/web/src/index.css` with the specified neutral visual tokens, workbench desktop grid, mobile responsive breakpoint, shared component classes, and focus-visible styles. -- Added the active-channel `aria-pressed` assertion to `ProjectWorkbench.test.ts`. - -## Tests - -From `apps/web`: - -- `npm test -- --run src/features/workbench/ProjectWorkbench.test.ts` passed: 1 test file, 4 tests. -- `npm test -- --run` passed: 6 test files, 13 tests. -- `npm run build` passed: Vite production build completed successfully. - -## TDD Evidence - -The requested active-channel assertion was added before CSS changes and run immediately. It passed because `ProjectChannelSidebar` already exposed `aria-pressed` for the selected channel; this task preserves that existing semantic contract while styling the component. - -## Files Changed - -- `apps/web/src/index.css` -- `apps/web/src/features/workbench/ProjectWorkbench.test.ts` - -## Self-Review - -- CSS values and selectors follow the Task 5 brief verbatim. -- The layout uses the required 76px/280px/flexible/320px desktop columns and collapses to one column at 920px. -- Keyboard focus is visibly indicated for buttons and inputs. -- No React or shadcn/ui dependencies were added. -- The commit stages only the two task-owned implementation files; pre-existing untracked `.superpowers/sdd` artifacts remain untouched. - -## Concerns - -The original selector mismatch between `aria-selected` and the inspector's existing `aria-pressed` semantics was corrected in the review fix below. - -## Review Fix - -Updated the inspector active-state selector in `apps/web/src/index.css` from `[aria-selected='true']` to `[aria-pressed='true']` so it matches `ObjectInspector`'s existing accessible state without changing component semantics.