Claude
|
c4e86e06ec
|
Phase 6: 통합 · 연합 흐름 · QA & MVP 수용 기준
- 백엔드: test_federation(캡처→분류→확인→tasks 등장→risks 재계산→dashboard 집계,
confirm 멱등, k1 done 후 지연위험 소멸) + test_nplus1(tree≤6/dashboard≤12 쿼리 예산)
+ /api/_test/reset(ARI_ALLOW_TEST_RESET 가드) + confirm 멱등 가드
- 프론트 E2E: federation.spec(7단계 사용자 여정) + a11y.spec(3페이지 라이트/다크/키보드,
color-contrast 제외) + responsive.spec(모바일/태블릿/데스크톱 가로스크롤 0) + seed-reset fixture
- tokens.test(토큰 HEX/px 회귀)
- 반응형 보정: 모바일에서 .ttoolbar/.pagehead 줄바꿈 + 검색창 가변폭(가로 스크롤 제거)
- README 한 장 실행법/데모 스크립트, scripts/dev.sh, frontend/.env.local.example, CI 워크플로
최종 검증(전 phase 누적):
- 백엔드 pytest 63 passed, ruff clean
- 프론트 vitest 69 passed, tsc/eslint clean, build OK
- Playwright E2E 39 passed(연합/a11y/반응형/shell/tasks/inbox/dashboard) — axe 위반 0
- 라이브: Ollama 분류 동작(모델 비종속) + heuristic 폴백, 전 엔드포인트 200, 콘솔 에러 0
- 소스 TODO/FIXME 0
MVP 완료: 작업·인박스·대시보드 3페이지 + 연합 end-to-end.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2 months ago |
Claude
|
1cd1d10243
|
Phase 2: 백엔드 데이터모델·시드·REST API·Ollama 추상화
- models.py: 11개 SQLModel 테이블(person/folder/project/task/task_comment/
inbox_item/inbox_classification/event/approval/goal/briefing), FK·enum·무한중첩 자기참조
- schemas.py: 전 I/O 스키마(types.ts 1:1, snake_case, 재귀 ProjectNode/TaskNode)
- seed.py: 지우의 한 주(REF 4파일 그대로) — 5인/2폴더/14프로젝트/45작업/4인박스/대시보드
- Alembic: init schema 마이그레이션(+sqlmodel import), base↔head 왕복 검증
- 라우터 6종: people/tree(폴더·프로젝트 CRUD·pin)/tasks(CRUD·댓글·scaffold·risks)/
inbox(capture·reclassify·confirm 연합·dismiss)/dashboard(집계)/llm
- services: risk.py(지연/쏠림/의존, TODAY=8), scaffold.py(정규식 4템플릿), classification.py
- LLM 추상화: provider/ollama(format=json, think=false→수초 응답, 모델 비종속)/heuristic 폴백/prompts
- inbox confirm = federation(task 실체화 + materialized_task_id)
검증: pytest 38 passed, ruff clean, 마이그레이션 왕복 OK,
시드 카운트 일치, 골든 분류 4케이스 통과(heuristic),
라이브: Ollama 분류 동작(model:ollama:qwen3.6, 13s) + 폴백 동작, 전 엔드포인트 정상
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2 months ago |