diff --git a/.superpowers/sdd/2026-08-15-techlog-ui-migration/task-11-report.md b/.superpowers/sdd/2026-08-15-techlog-ui-migration/task-11-report.md new file mode 100644 index 0000000..0e47dcc --- /dev/null +++ b/.superpowers/sdd/2026-08-15-techlog-ui-migration/task-11-report.md @@ -0,0 +1,33 @@ +# Task 11 report + +## Mapping + +- Source common, Case, Reference, and Question fields → exact target labels, controls, order, loaded values, conditional resolution fields, and CSS classes. +- Source ordered text/rule/option/relation editors → presentation-owned add, remove, reorder, local IDs, limits, and accessibility names. +- Source document editor/status rail → source tabs, keyboard focus, working-copy status, dirty indicator, version/kind rail, and deferred workflow controls. +- Source instant preview → Content Format v1 `projectWorkingCopy` plus the shared `PublicRecordRenderer`; no gateway preview mutation or parser/renderer duplication. +- Source edit page → registered route input adaptation for the document ID. +- Task 10 provider seam → smallest generic provider-owned editor session (`saved`, `draft`, `status`) retained across editor tabs. + +## TDD evidence + +- RED: `corepack pnpm exec vitest run tests/features/tech-log/studio-editor-smoke.test.tsx` failed at the exact missing `document-editor-screen.tsx` import before test collection. +- First GREEN: the same focused command passed 1 file / 5 tests. +- Focused regression: editor smoke plus `content-format.test.ts` and `public-render.test.tsx` passed 3 files / 41 tests. +- Scope check: `git diff --check` passed. + +## Files + +- Added the 12 Task 11 component/page files under `src/features/tech-log/presentation/studio/`. +- Extended `studio-provider.tsx` and `use-studio.ts` only with presentation-owned editor session state. +- Added `tests/features/tech-log/studio-editor-smoke.test.tsx`. + +## SHA + +- Base: `887f5e6eb1a5ccdf4feab0b27fae1c5823233190`. +- Implementation: the commit containing this report, titled `feat: port TechLog Studio editors` (final SHA recorded in the Task 11 handoff). + +## Deferred + +- Save/conflict resolution, guarded navigation, validation, server preview, publish, and unpublish workflows remain deferred to Tasks 12/13. The source Save control is present but disabled until Task 12 supplies the workflow. +- Broad app/test types, lint, build, architecture, security, visual, and full-suite gates remain deferred to integrated Task 14 by user direction. diff --git a/src/features/tech-log/presentation/studio/components/case-fields.tsx b/src/features/tech-log/presentation/studio/components/case-fields.tsx new file mode 100644 index 0000000..c654e4c --- /dev/null +++ b/src/features/tech-log/presentation/studio/components/case-fields.tsx @@ -0,0 +1,20 @@ +import type { components } from "../../../contracts/studio/generated.ts"; + +type CaseInput = components["schemas"]["CaseInput"]; + +export function CaseFields({ draft, onChange }: { draft: CaseInput; onChange(draft: CaseInput): void }) { + const update = (patch: Partial) => onChange({ ...draft, ...patch }); + return ( +
+

CASE

문제와 검증

+
+