Input: Design documents from /specs/001-harness-public-site/
Prerequisites: plan.md, spec.md, research.md, data-model.md, contracts/, quickstart.md
Tests: 헌법에 따라 모든 행동 변경은 테스트를 먼저 작성해 RED를 확인한 뒤
GREEN으로 구현한다. 각 task report에는 매뉴얼 영향 또는 manual-impact: none을
기록한다.
Organization: 사용자 스토리별로 독립 구현·검증할 수 있도록 구성한다.
Format: [ID] [P?] [Story] Description
- [P]: 미완료 작업과 파일 충돌 없이 병렬 실행 가능
- [Story]: spec.md의 사용자 스토리 추적 ID
Phase 1: Setup
Purpose: 독립 Next.js 프로젝트와 검증 명령의 골격 준비
- [X] T001 Create package scripts and pinned runtime/dev dependencies in package.json
- [X] T002 Create TypeScript, Next.js standalone, and ESLint configuration in tsconfig.json, next.config.ts, eslint.config.mjs, and next-env.d.ts
- [X] T003 [P] Create test runner and browser project configuration in playwright.config.ts and tests/tsconfig.json
- [X] T004 [P] Create environment and release metadata examples in .env.example and content/release.json
- [X] T005 Install dependencies and record the baseline command results in package-lock.json and docs/implementation-baseline.md
Phase 2: Foundational
Purpose: 모든 사용자 스토리가 공유하는 데이터 계약, 디자인 토큰과 사이트 셸
⚠️ CRITICAL: 이 단계가 끝나기 전에는 사용자 스토리 구현을 시작하지 않는다.
- [X] T006 [P] Write failing unit tests for shared content IDs, references, dates, and duplicate detection in tests/unit/content-schema.test.ts
- [X] T007 [P] Write failing render contract tests for global landmarks, skip link, navigation, metadata, and release label in tests/integration/site-shell.test.tsx
- [X] T008 Implement shared content validation types and helpers in lib/content-schema.ts and lib/release.ts to pass T006
- [X] T009 Implement System Atlas semantic tokens, responsive primitives, dark mode, focus, and reduced-motion rules in app/globals.css to support T007
- [X] T010 Implement accessible global shell, navigation, footer, and SVG icon wrappers in app/layout.tsx, components/SiteHeader.tsx, components/SiteFooter.tsx, and components/ui/Icon.tsx to pass T007
- [X] T011 Create shared route, layer, workflow, and status definitions in content/site.ts and content/harness.ts
- [X] T012 Run the foundational unit/render tests and record RED→GREEN evidence plus
manual-impact: affectedin docs/task-reports/foundation.md
Checkpoint: 공유 셸과 콘텐츠 계약이 독립적으로 렌더되고 검증된다.
Phase 3: User Story 1 - 하네스로 일하는 방법 이해 (Priority: P1) 🎯 MVP
Goal: 하네스 정의, 제작 흐름, 기능정의서 시점, Superpowers와 매뉴얼 게이트를 개발자가 바로 사용할 수 있는 가이드로 제공
Independent Test: /와 /guide만으로 전체 흐름과 네 문서의 역할을 찾고 작업
시작·완료 템플릿을 사용할 수 있다.
Tests for User Story 1
- [X] T013 [P] [US1] Write failing content contract tests for ten ordered workflow steps, four implementation documents, Superpowers mappings, and manual sync gate in tests/unit/guide-content.test.ts
- [X] T014 [P] [US1] Write failing server render tests for landing and guide required headings, links, templates, and no-JavaScript content in tests/integration/guide-pages.test.tsx
- [X] T015 [P] [US1] Write failing browser acceptance for keyboard navigation and 375/768/1024/1440 guide layouts in tests/browser/guide.spec.ts
Implementation for User Story 1
- [X] T016 [P] [US1] Define harness concepts, prompt comparison, document timeline, ten-step playbook, Superpowers mapping, and copyable templates in content/guide.ts
- [X] T017 [P] [US1] Implement lifecycle and document/Superpowers presentation components in components/HarnessFlow.tsx, components/DocumentTimeline.tsx, and components/SuperpowersMap.tsx
- [X] T018 [US1] Implement the System Atlas landing page in app/page.tsx to pass the landing contracts
- [X] T019 [US1] Implement the working guide with local table of contents and manual synchronization gate in app/guide/page.tsx to pass guide contracts
- [X] T020 [US1] Add guide-specific responsive and print-safe styling in app/guide/guide.module.css
- [X] T021 [US1] Run US1 unit, render, and browser tests and record RED→GREEN evidence plus the public-guide manual impact in docs/task-reports/us1-guide.md
Checkpoint: 사용자는 다른 두 페이지 없이 하네스를 이해하고 작업법을 적용할 수 있다.
Phase 4: User Story 2 - 5240lab 적용 근거 검토 (Priority: P2)
Goal: 정책·자동 강제·실행 기록을 구분하는 공개 안전 근거 탐색 제공
Independent Test: /5240lab에서 모든 근거의 상대 경로·행·발췌·검증일을 보고
계층과 증거 유형으로 좁힐 수 있으며, 잘못된 근거는 빌드를 차단한다.
Tests for User Story 2
- [X] T022 [P] [US2] Write failing evidence schema tests for duplicate IDs, invalid types, dates, line limits, path traversal, and referential integrity in tests/unit/evidence-schema.test.ts
- [X] T023 [P] [US2] Write failing source validator tests for missing files, moved excerpts, symlink escape, secret patterns, atomic output, and valid snapshots in tests/unit/evidence-validator.test.ts
- [X] T024 [P] [US2] Write failing render tests for evidence legend, layer coverage, verification metadata, and complete SSR fallback in tests/integration/evidence-page.test.tsx
- [X] T025 [P] [US2] Write failing browser tests for keyboard filters, reset, empty state, JavaScript-disabled visibility, and mobile overflow in tests/browser/evidence.spec.ts
Implementation for User Story 2
- [X] T026 [US2] Implement evidence manifest and public snapshot type validation in lib/evidence-schema.ts to pass T022
- [X] T027 [US2] Implement bounded source resolution, excerpt comparison, public-safe scanning, and atomic snapshot generation in scripts/verify-evidence.ts and lib/evidence-validator.ts to pass T023
- [X] T028 [US2] Curate the initial 5240lab policy, enforced guard, execution record, Superpowers, audit, parity, reverse detection, database isolation, and deployment evidence in content/evidence.json
- [X] T029 [US2] Generate and inspect the first public-safe snapshot in content/generated/evidence.public.json
- [X] T030 [P] [US2] Implement evidence cards, type badges, verification metadata, and progressive filter UI in components/EvidenceCard.tsx and components/EvidenceExplorer.tsx
- [X] T031 [P] [US2] Define eight harness layers and honest applied/partial descriptions in content/layers.ts
- [X] T032 [US2] Implement the evidence atlas page in app/5240lab/page.tsx and app/5240lab/evidence.module.css to pass T024 and T025
- [X] T033 [US2] Write evidence curator instructions, failure recovery, and public-safety review in docs/evidence-maintenance.md
- [X] T034 [US2] Run US2 unit, render, and browser tests and record RED→GREEN evidence plus manual updates in docs/task-reports/us2-evidence.md
Checkpoint: 적용 주장을 원본과 공개 안전성으로 검증하며 근거 페이지가 독립 동작한다.
Phase 5: User Story 3 - 개선 실행과 재판정 (Priority: P3)
Goal: L0~L4, 100점, 기준선-개선-검증-재판정 루프와 매뉴얼 지표 제공
Independent Test: /roadmap에서 초기 평가, 개선 과제, 검증 조건과 전후 판정을
독립적으로 이해할 수 있고 잘못된 점수·참조는 거부된다.
Tests for User Story 3
- [X] T035 [P] [US3] Write failing maturity tests for L0-L4 evidence rules, five 0-20 dimensions, total calculation, invalid references, and negative deltas in tests/unit/maturity.test.ts
- [X] T036 [P] [US3] Write failing roadmap content tests for baseline, horizons, verification conditions, manual synchronization metrics, and reassessment states in tests/unit/roadmap-content.test.ts
- [X] T037 [P] [US3] Write failing server render tests for score rationale, limitations, improvement loop, before/after comparison, and partial status in tests/integration/roadmap-page.test.tsx
- [X] T038 [P] [US3] Write failing browser tests for roadmap keyboard disclosures, status text, dark mode, and responsive score layout in tests/browser/roadmap.spec.ts
Implementation for User Story 3
- [X] T039 [US3] Implement maturity level, dimension score, reference, and reassessment validation in lib/maturity.ts to pass T035
- [X] T040 [P] [US3] Define the 2026-08-13 baseline, immediate/short/mid/long improvements, manual metrics, and sample reassessment in content/roadmap.ts
- [X] T041 [P] [US3] Implement score, level, improvement, verification, and before/after components in components/MaturityScore.tsx, components/MaturityLevels.tsx, and components/ImprovementCard.tsx
- [X] T042 [US3] Implement the roadmap and reassessment page in app/roadmap/page.tsx and app/roadmap/roadmap.module.css to pass T037 and T038
- [X] T043 [US3] Run US3 unit, render, and browser tests and record RED→GREEN evidence plus roadmap manual impact in docs/task-reports/us3-roadmap.md
Checkpoint: 운영자는 동일 기준으로 개선 전후를 재판정할 수 있다.
Phase 6: Cross-Cutting Quality and Public Metadata
Purpose: 네 스토리를 하나의 접근 가능하고 공개 안전한 사이트로 통합
- [X] T044 [P] Write failing whole-content validation tests for cross-page IDs, internal links, required sections, and release dates in tests/integration/content-integrity.test.ts
- [X] T045 [P] Write failing HTTP/browser contracts for health, robots, sitemap, canonical metadata, static assets, and recoverable 404 in tests/integration/public-routes.test.ts and tests/browser/public-routes.spec.ts
- [X] T046 Implement whole-content validation and build gate in scripts/verify-content.ts and package.json to pass T044
- [X] T047 Implement health, robots, sitemap, canonical metadata, and 404 in app/api/health/route.ts, app/robots.ts, app/sitemap.ts, app/not-found.tsx, and app/layout.tsx to pass T045
- [X] T048 Configure public security headers, powered-by removal, release environment, and standalone tracing in next.config.ts
- [X] T049 Add automated axe checks, reduced-motion checks, JavaScript-disabled checks, and viewport matrix in tests/browser/accessibility.spec.ts and tests/browser/responsive.spec.ts
- [X] T050 Run test, typecheck, lint, build, and browser suites; record full gate output in docs/verification-report.md
Phase 7: Manual Synchronization and Release Readiness
Purpose: 사이트 구현과 사용자·개발자·근거 관리자·운영자 매뉴얼을 함께 완료
- [X] T051 Write the developer setup, content architecture, validation, and contribution manual in README.md
- [X] T052 Write versioned release, health, smoke, rollback drill, incident response, and DNS/TLS operations manual in docs/operations.md
- [X] T053 Add a feature-level manual impact matrix and validation results in docs/manual-impact.md covering /guide, README.md, docs/evidence-maintenance.md, and docs/operations.md
- [X] T054 Verify all manual commands, relative links, public URLs, permissions, messages, and claims against implementation in tests/integration/manual-contract.test.ts
- [X] T055 Run link, developer-identifier leak, secret, and manual-to-product route checks in scripts/verify-manual.mjs and attach results to docs/verification-report.md
Phase 8: Versioned Deployment and Rollback
Purpose: 후보 release 검증, 원자적 활성화, 외부 스모크와 자동 복구
- [X] T056 [P] Write failing shell contract tests for release packaging, static/public copy, safe release IDs, and current-link behavior in tests/deploy/build-release.test.sh
- [X] T057 [P] Write failing shell contract tests for candidate health failure, activation, external smoke failure, and previous-release rollback in tests/deploy/deploy.test.sh
- [X] T058 Implement standalone release packaging and manifest creation in deploy/build-release.sh to pass T056
- [X] T059 Implement candidate port health, atomic current switch, systemd restart, external smoke, rollback, and deployment record in deploy/deploy.sh to pass T057
- [X] T060 [P] Create least-privilege systemd unit and environment example in deploy/harness.service and deploy/harness.env.example
- [X] T061 [P] Create Nginx proxy, TLS-ready, security header, and cache configuration in deploy/nginx.conf
- [X] T062 Implement reusable internal/external route and 404 smoke checks in scripts/smoke.mjs
- [X] T063 Run the candidate release and rollback drill from specs/001-harness-public-site/quickstart.md and record results in docs/deployment-report.md
- [X] T064 Configure DNS/TLS and deploy the verified release to https://harness.insapien.co.kr, then run external smoke and record the active release in docs/deployment-report.md
Phase 9: Final Verification and Handoff
Purpose: 완료 주장 전 전체 근거와 매뉴얼을 다시 판정
- [X] T065 Run npm run verify and npm run test:browser with clean results and update docs/verification-report.md
- [X] T066 Re-run evidence verification after all file line changes and confirm 100% verified public snapshot in docs/verification-report.md
- [X] T067 Inspect 375/768/1024/1440 screenshots and keyboard/reduced-motion behavior, documenting any accepted limitations in docs/verification-report.md
- [X] T068 Re-run product-and-manual coordinated release checks and close docs/manual-impact.md only when all affected manuals pass
- [X] T069 Review git diff/status to confirm only lcy_harness files are included and unrelated lcy_try changes remain untouched
- [X] T070 Prepare the implementation summary, verification evidence, remaining risks, and implementation commit-gate request in docs/handoff.md
Dependencies & Execution Order
Phase Dependencies
- Setup: 즉시 시작 가능
- Foundational: Setup 이후, 모든 사용자 스토리를 차단
- US1: Foundational 이후 독립 구현 가능한 MVP
- US2: Foundational 이후 시작 가능, 랜딩 지표 통합만 US1과 조정
- US3: Foundational 이후 시작 가능, 근거 참조 검증은 US2 snapshot을 사용
- Cross-Cutting: 원하는 사용자 스토리 완료 후 통합
- Manual Synchronization: 각 스토리 보고서는 즉시 작성하고 최종 매뉴얼 검증은 Cross-Cutting 이후 수행
- Deployment: 전체 verify와 매뉴얼 준비 이후
- Final Verification: 배포·롤백 연습과 외부 배포 이후
User Story Dependencies
- US1 (P1): Foundational만 필요하며 독립 MVP
- US2 (P2): Foundational만으로 근거 페이지 구현 가능
- US3 (P3): 점수 로직은 독립 가능하나 최종 평가 근거 참조는 US2 이후 검증
Within Each Story
- 테스트 작성 및 예상 이유로 실패 확인
- 콘텐츠·순수 로직 구현
- 컴포넌트·페이지 구현
- 최소 테스트와 스토리 전체 검증
- task report와 매뉴얼 영향 기록
Parallel Opportunities
- T003/T004, T006/T007, 각 스토리의 테스트 파일은 서로 다른 파일이라 병렬 가능
- Foundational 이후 US1 콘텐츠, US2 검증기, US3 점수 로직을 병렬 개발 가능
- 같은 스토리 안에서도 콘텐츠와 프레젠테이션 컴포넌트는 계약 확정 후 병렬 가능
- 배포의 systemd/Nginx 템플릿은 배포 오케스트레이터와 파일 충돌 없이 병렬 가능
Parallel Example: User Story 2
Task T022: evidence schema negative tests
Task T023: source boundary and secret negative tests
Task T024: evidence SSR contract
Task T025: evidence browser acceptance
테스트 계약이 합의된 뒤 다음을 병렬로 진행할 수 있다.
Task T030: evidence presentation components
Task T031: harness layer content
Implementation Strategy
MVP First
- Setup + Foundational 완료
- US1의 랜딩과 가이드 구현
- 기능정의서·Superpowers·매뉴얼 동기화 흐름을 브라우저에서 독립 검증
- 사용자 승인 후 근거와 로드맵을 증분 추가
Incremental Delivery
- US1: 개념과 작업법
- US2: 검증 가능한 5240lab 근거
- US3: 개선과 재판정
- 통합 품질·매뉴얼 게이트
- versioned release·롤백 연습·공개 배포
Notes
- 모든 task는 정확한 파일 경로를 포함한다.
- 테스트 task는 대응 구현보다 앞에 있다.
[P]는 파일 충돌과 선행 의존성이 없을 때만 사용한다.- 매뉴얼은 최종 polish가 아니라 기능별 task report와 별도 릴리스 게이트를 가진다.
- 커밋은 명세 게이트와 구현 게이트에서 사용자 승인을 받은 뒤에만 수행한다.