diff --git a/.sira/config.yaml b/.sira/config.yaml index ecf71f4..84ae292 100644 --- a/.sira/config.yaml +++ b/.sira/config.yaml @@ -8,11 +8,3 @@ team: - name: claude role: agent type: ai - github_username: claude-ai - - name: 김민수 - role: member - type: human - github_username: minsu-kim - - name: cursor - role: agent - type: ai diff --git a/apps/cli/tsup.config.ts b/apps/cli/tsup.config.ts index 3a32afc..f5dd13a 100644 --- a/apps/cli/tsup.config.ts +++ b/apps/cli/tsup.config.ts @@ -6,8 +6,7 @@ export default defineConfig({ dts: false, clean: true, platform: "node", - noExternal: ["@sira/core"], - external: ["gray-matter", "js-yaml", "simple-git", "zod", "commander"], + external: ["@sira/core", "gray-matter", "js-yaml", "simple-git", "zod", "commander"], banner: { js: "#!/usr/bin/env node", }, diff --git a/apps/web/src/app/dashboard/page.tsx b/apps/web/src/app/dashboard/page.tsx index 0720820..90537a1 100644 --- a/apps/web/src/app/dashboard/page.tsx +++ b/apps/web/src/app/dashboard/page.tsx @@ -6,7 +6,6 @@ import { useTaskStore, type TaskEntry } from "@/stores/useTaskStore"; import { useTeamStore, type TeamMember } from "@/stores/useTeamStore"; import { getInitials, getAvatarColor } from "@/lib/colors"; import { PixelOffice } from "@/components/pixel-office/PixelOffice"; -import { AISuggestionList } from "@/components/AISuggestionList"; import { NaturalLanguageInput } from "@/components/NaturalLanguageInput"; export default function DashboardPage() { @@ -35,33 +34,6 @@ export default function DashboardPage() { todo: tasks.filter((t) => t.status === "todo").length, }; - const mockSuggestions = [ - { - taskId: "SIRA-003", - currentStatus: "todo", - suggestedStatus: "in_progress", - reason: "관련 파일 src/api/auth.ts가 최근 수정되었고 PR #12가 열려 있습니다. 작업이 이미 시작된 것으로 보입니다.", - }, - { - taskId: "SIRA-007", - currentStatus: "in_progress", - suggestedStatus: "review", - reason: "커밋 로그에 'feat: complete task SIRA-007' 메시지가 있고 관련 파일 변경이 완료된 것으로 보입니다.", - }, - { - taskId: "SIRA-010", - currentStatus: "review", - suggestedStatus: "done", - reason: "PR #15가 머지되었고 관련 테스트가 모두 통과했습니다.", - }, - { - taskId: "SIRA-001", - currentStatus: "backlog", - suggestedStatus: "todo", - reason: "스프린트 계획에 포함되어 있으며 담당자가 배정되었습니다.", - }, - ]; - return (

Dashboard

@@ -76,11 +48,6 @@ export default function DashboardPage() { - {/* AI 상태 제안 */} -
- -
- {/* 픽셀 오피스 (UX8) */} diff --git a/package-lock.json b/package-lock.json index c08fb16..5c5b88b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,6 +9,9 @@ "apps/*", "packages/*" ], + "dependencies": { + "lightningcss-darwin-arm64": "^1.31.1" + }, "devDependencies": { "turbo": "^2" }, @@ -8422,28 +8425,6 @@ "lightningcss-win32-x64-msvc": "1.31.1" } }, - "node_modules/lightningcss-android-arm64": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.31.1.tgz", - "integrity": "sha512-HXJF3x8w9nQ4jbXRiNppBCqeZPIAfUo8zE/kOEGbW5NZvGc/K7nMxbhIr+YlFlHW5mpbg/YFPdbnCh1wAXCKFg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "android" - ], - "peer": true, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, "node_modules/lightningcss-darwin-arm64": { "version": "1.31.1", "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.31.1.tgz", @@ -8451,211 +8432,10 @@ "cpu": [ "arm64" ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "darwin" - ], - "peer": true, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-darwin-x64": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.31.1.tgz", - "integrity": "sha512-1ObhyoCY+tGxtsz1lSx5NXCj3nirk0Y0kB/g8B8DT+sSx4G9djitg9ejFnjb3gJNWo7qXH4DIy2SUHvpoFwfTA==", - "cpu": [ - "x64" - ], - "dev": true, "license": "MPL-2.0", - "optional": true, "os": [ "darwin" ], - "peer": true, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-freebsd-x64": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.31.1.tgz", - "integrity": "sha512-1RINmQKAItO6ISxYgPwszQE1BrsVU5aB45ho6O42mu96UiZBxEXsuQ7cJW4zs4CEodPUioj/QrXW1r9pLUM74A==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "freebsd" - ], - "peer": true, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-arm-gnueabihf": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.31.1.tgz", - "integrity": "sha512-OOCm2//MZJ87CdDK62rZIu+aw9gBv4azMJuA8/KB74wmfS3lnC4yoPHm0uXZ/dvNNHmnZnB8XLAZzObeG0nS1g==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-arm64-gnu": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.31.1.tgz", - "integrity": "sha512-WKyLWztD71rTnou4xAD5kQT+982wvca7E6QoLpoawZ1gP9JM0GJj4Tp5jMUh9B3AitHbRZ2/H3W5xQmdEOUlLg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-arm64-musl": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.31.1.tgz", - "integrity": "sha512-mVZ7Pg2zIbe3XlNbZJdjs86YViQFoJSpc41CbVmKBPiGmC4YrfeOyz65ms2qpAobVd7WQsbW4PdsSJEMymyIMg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-x64-gnu": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.31.1.tgz", - "integrity": "sha512-xGlFWRMl+0KvUhgySdIaReQdB4FNudfUTARn7q0hh/V67PVGCs3ADFjw+6++kG1RNd0zdGRlEKa+T13/tQjPMA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-x64-musl": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.31.1.tgz", - "integrity": "sha512-eowF8PrKHw9LpoZii5tdZwnBcYDxRw2rRCyvAXLi34iyeYfqCQNA9rmUM0ce62NlPhCvof1+9ivRaTY6pSKDaA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-win32-arm64-msvc": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.31.1.tgz", - "integrity": "sha512-aJReEbSEQzx1uBlQizAOBSjcmr9dCdL3XuC/6HLXAxmtErsj2ICo5yYggg1qOODQMtnjNQv2UHb9NpOuFtYe4w==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "win32" - ], - "peer": true, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-win32-x64-msvc": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.31.1.tgz", - "integrity": "sha512-I9aiFrbd7oYHwlnQDqr1Roz+fTz61oDDJX7n9tYF9FJymH1cIN1DtKw3iYt6b8WZgEjoNwVSncwF4wx/ZedMhw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "win32" - ], - "peer": true, "engines": { "node": ">= 12.0.0" }, diff --git a/package.json b/package.json index a5660cb..5a932b6 100644 --- a/package.json +++ b/package.json @@ -18,5 +18,8 @@ "engines": { "node": ">=18" }, - "packageManager": "npm@10.8.2" + "packageManager": "npm@10.8.2", + "dependencies": { + "lightningcss-darwin-arm64": "^1.31.1" + } } diff --git a/tasks/epics/EPIC-001.md b/tasks/epics/EPIC-001.md deleted file mode 100644 index 7db2b05..0000000 --- a/tasks/epics/EPIC-001.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -id: EPIC-001 -title: 프로젝트 초기화 & 코어 엔진 -status: done -created_at: "2026-03-10" -updated_at: "2026-03-15" ---- - -Turborepo 모노레포 셋업, @sira/core 패키지 구현 (스키마, 파서, 인덱서, 쿼리 엔진) diff --git a/tasks/epics/EPIC-002.md b/tasks/epics/EPIC-002.md deleted file mode 100644 index 6c1d8e9..0000000 --- a/tasks/epics/EPIC-002.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -id: EPIC-002 -title: 웹 대시보드 구현 -status: in_progress -created_at: "2026-03-11" -updated_at: "2026-03-17" ---- - -Next.js 16 기반 대시보드 — 태스크 테이블, 칸반, 간트, 멤버 뷰 구현 diff --git a/tasks/epics/EPIC-003.md b/tasks/epics/EPIC-003.md deleted file mode 100644 index 925de0b..0000000 --- a/tasks/epics/EPIC-003.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -id: EPIC-003 -title: AI 인텔리전스 & 태스크 분해 -status: todo -created_at: "2026-03-12" -updated_at: "2026-03-17" ---- - -AI 기반 태스크 자동 분해, 상태 추론, 할당 최적화 구현 diff --git a/tasks/server/SIRA-006.md b/tasks/server/SIRA-006.md deleted file mode 100644 index faa8edb..0000000 --- a/tasks/server/SIRA-006.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -id: SIRA-006 -title: "@sira/core 스키마 & 파서" -status: done -assignee: claude -priority: high -area: server -epic_id: EPIC-001 -tags: [core, parser] -related_files: [packages/core/src/schema/task.schema.ts, packages/core/src/parser/frontmatter.ts] -start_date: "2026-03-10" -due_date: "2026-03-11" -created_at: "2026-03-10" -updated_at: "2026-03-11" ---- - -Zod 스키마 정의, gray-matter 기반 마크다운 파서, YAML frontmatter 파싱/직렬화 diff --git a/tasks/server/SIRA-007.md b/tasks/server/SIRA-007.md deleted file mode 100644 index 3cf2f0c..0000000 --- a/tasks/server/SIRA-007.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -id: SIRA-007 -title: 인덱서 & 쿼리 엔진 -status: done -assignee: claude -priority: high -area: server -epic_id: EPIC-001 -tags: [core, indexer, query] -related_files: [packages/core/src/indexer/builder.ts, packages/core/src/query/engine.ts] -start_date: "2026-03-11" -due_date: "2026-03-12" -created_at: "2026-03-11" -updated_at: "2026-03-12" ---- - -파일 기반 인덱스 빌더, 증분 업데이트, 필터/정렬/그룹 쿼리 엔진 diff --git a/tasks/shared/SIRA-008.md b/tasks/shared/SIRA-008.md deleted file mode 100644 index 4b93956..0000000 --- a/tasks/shared/SIRA-008.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -id: SIRA-008 -title: AI 태스크 자동 분해 -status: todo -assignee: suwon -priority: high -area: shared -epic_id: EPIC-003 -tags: [ai, decompose] -related_files: [apps/cli/src/commands/decompose.ts] -start_date: "2026-03-20" -due_date: "2026-03-25" -created_at: "2026-03-17" -updated_at: "2026-03-17" ---- - -Anthropic SDK 연동, 자연어 입력 → 태스크 자동 분해 및 생성 diff --git a/tasks/shared/SIRA-009.md b/tasks/shared/SIRA-009.md deleted file mode 100644 index bade028..0000000 --- a/tasks/shared/SIRA-009.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: SIRA-009 -title: AI 상태 추론 UI 뱃지 -status: backlog -assignee: claude -priority: medium -area: shared -epic_id: EPIC-003 -tags: [ai, inference, ui] -related_files: [packages/core/src/inference/statusInference.ts] -created_at: "2026-03-17" -updated_at: "2026-03-17" ---- - -core의 statusInference 결과를 대시보드에 뱃지로 표시 — AI 제안 수락/거부 UI diff --git a/tasks/shared/SIRA-010.md b/tasks/shared/SIRA-010.md deleted file mode 100644 index 7334e58..0000000 --- a/tasks/shared/SIRA-010.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -id: SIRA-010 -title: E2E 테스트 (Playwright) -status: backlog -priority: low -area: shared -epic_id: EPIC-002 -tags: [test, e2e] -related_files: [] -created_at: "2026-03-17" -updated_at: "2026-03-17" ---- - -Playwright 기반 E2E 테스트 — 대시보드, 칸반, 태스크 CRUD 시나리오 diff --git a/tasks/web/SIRA-001.md b/tasks/web/SIRA-001.md deleted file mode 100644 index 3a38cc9..0000000 --- a/tasks/web/SIRA-001.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -id: SIRA-001 -title: 대시보드 레이아웃 & 사이드바 -status: done -assignee: claude -priority: high -area: web -epic_id: EPIC-002 -tags: [ui, layout] -related_files: [apps/web/src/components/layout/DashboardLayout.tsx] -start_date: "2026-03-12" -due_date: "2026-03-13" -created_at: "2026-03-11" -updated_at: "2026-03-13" ---- - -대시보드 쉘 레이아웃, 사이드바 네비게이션, 반응형 디자인 구현 diff --git a/tasks/web/SIRA-002.md b/tasks/web/SIRA-002.md deleted file mode 100644 index 50ae2a1..0000000 --- a/tasks/web/SIRA-002.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -id: SIRA-002 -title: 태스크 테이블 뷰 -status: done -assignee: claude -priority: high -area: web -epic_id: EPIC-002 -tags: [ui, tasks] -related_files: [apps/web/src/app/tasks/page.tsx] -start_date: "2026-03-13" -due_date: "2026-03-14" -created_at: "2026-03-12" -updated_at: "2026-03-14" ---- - -필터/정렬/검색 기능이 포함된 태스크 목록 테이블 구현 diff --git a/tasks/web/SIRA-003.md b/tasks/web/SIRA-003.md deleted file mode 100644 index d4ce948..0000000 --- a/tasks/web/SIRA-003.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -id: SIRA-003 -title: 칸반 보드 (드래그앤드롭) -status: done -assignee: claude -priority: high -area: web -epic_id: EPIC-002 -tags: [ui, kanban, dnd] -related_files: [apps/web/src/app/tasks/kanban/page.tsx] -start_date: "2026-03-14" -due_date: "2026-03-15" -created_at: "2026-03-13" -updated_at: "2026-03-15" ---- - -@dnd-kit 기반 칸반 보드, optimistic update, 상태별 컬럼 구현 diff --git a/tasks/web/SIRA-004.md b/tasks/web/SIRA-004.md deleted file mode 100644 index 2f637f7..0000000 --- a/tasks/web/SIRA-004.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -id: SIRA-004 -title: 간트 차트 뷰 -status: done -assignee: suwon -priority: medium -area: web -epic_id: EPIC-002 -tags: [ui, gantt] -related_files: [apps/web/src/app/gantt/page.tsx] -start_date: "2026-03-15" -due_date: "2026-03-16" -created_at: "2026-03-14" -updated_at: "2026-03-16" ---- - -CSS 기반 에픽별 간트 차트 — 날짜 범위 바, 에픽 그룹핑 diff --git a/tasks/web/SIRA-005.md b/tasks/web/SIRA-005.md deleted file mode 100644 index 2f40503..0000000 --- a/tasks/web/SIRA-005.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -id: SIRA-005 -title: Vercel 배포 & GitHub API 연동 -status: in_progress -assignee: suwon -priority: critical -area: web -epic_id: EPIC-002 -tags: [deploy, vercel, github-api] -related_files: [apps/web/src/lib/github.ts] -start_date: "2026-03-17" -due_date: "2026-03-18" -created_at: "2026-03-17" -updated_at: "2026-03-17" ---- - -Vercel 서버리스 환경에서 동작하도록 GitHub Contents API로 태스크 데이터 읽기 전환