refactor(structure): promote app to repo root + remove redundant workspace cruft

Standard production layout: the OKR app (was nested under AINative_OKR_CASAN5/) is now
the repository root. No more wrapper directory.

- Promote AINative_OKR_CASAN5/* -> repo root (backend/ frontend/ packages/ apps/
  .specify/ docs/ infra/ nginx/ scripts/ + configs). Merge tool dirs: .gitea (kept the
  active deploy ci.yml, added harness-ci.yml + runbooks), .claude (agents/commands +
  launch.json), .github moved up.
- Remove redundant: 00_SUBMISSION_PACKAGE, scattered root notes (FPT_CASAN_Full.md,
  tu-tuong-casan.md, casan-tu-sinh..., casan_harness_assessment.md, source-review...,
  README_CASAN5_REFINED.md), casan-next-plans/ and optimize-docs/ (competition/planning
  artifacts — roadmap + design history preserved in git log / commit messages).
- Update all references to the old layout:
  - .gitea/workflows/{ci,harness-ci}.yml, .github/workflows/{ci,deploy}.yml:
    working-directory .; drop AINative_OKR_CASAN5/ prefix; .specify/{tests,scripts}
    -> packages/casan-harness/... (.specify/logs state kept)
  - .claude/launch.json, .gitea/*-runbook.md: path prefixes
  - CLAUDE.md, README.md: docs/input -> apps/okr/domain/input
  - policy-bundle.yaml: 8 policy paths -> packages/casan-harness/...; manifest re-signed
- secrets-scan.sh: fixture excludes -> new package/domain paths.

Full gate from the new root: PASS=64 FAIL=0 SKIP=3.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
thanhnv
2026-07-08 13:26:36 +09:00
co-authored by Claude Opus 4.8
parent 7101af9fd4
commit 36a4812ef3
925 changed files with 410 additions and 18001 deletions
+1
View File
@@ -0,0 +1 @@
../../../apps/okr/domain/corpus/benign-corpus
@@ -0,0 +1,32 @@
Implement the objectives module with NestJS and Prisma per the SRS.
Add pagination to the GET /api/v1/objectives endpoint.
Write unit tests for the key-results progress update service.
Create a Zod schema for the create-objective form.
Refactor the dashboard component to use TanStack Query.
Document the JWT refresh-token flow in the technical architecture.
Generate seed data for three users and two objectives.
Fix the Tailwind class typo on the sidebar navigation item.
Add role-based filtering so employees see only their own objectives.
Update the OpenAPI spec for the key-results controller.
Explain how the ProtectedRoute wrapper redirects unauthenticated users.
Add a status badge component for NOT_STARTED, IN_PROGRESS, COMPLETED.
Write a migration to add a deadline column to key_results.
Review the pull request for the objectives filtering feature.
Summarize the sprint retrospective notes into three action items.
Draft acceptance criteria for the progress-bar user story.
Configure the Vite dev server proxy to the NestJS backend.
Add input validation for the quarter field using the Q2/2026 pattern.
Create a reusable Button component styled with Tailwind utilities.
Explain the difference between an objective and a key result.
Add error handling for a 404 when an objective is not found.
Write a service method that computes objective completion percentage.
Set up the queryClient with a five-minute stale time.
Add a loading skeleton to the OKR detail page.
Describe the seed idempotency strategy using Prisma upsert.
Create a KPI report comparing baseline and current cycle time.
Add a confirmation dialog before deleting a key result.
Write integration tests for the auth login endpoint.
Improve the accessibility of the progress bar with ARIA labels.
Plan the rollout of the quarterly OKR review feature.
Add a filter dropdown for objective status on the dashboard.
Translate the requirement document section on user roles into a checklist.
@@ -0,0 +1,31 @@
SRS に従って NestJS と Prisma で目標モジュールを実装する。
GET /api/v1/objectives エンドポイントにページネーションを追加する。
キーリザルト進捗更新サービスのユニットテストを書く。
目標作成フォーム用の Zod スキーマを作成する。
ダッシュボード画面を TanStack Query を使うようにリファクタリングする。
技術アーキテクチャ文書に JWT リフレッシュトークンの流れを記載する。
ユーザー三人と目標二件のシードデータを生成する。
サイドバーのナビ項目にある Tailwind クラスの誤りを修正する。
従業員が自分の目標だけを見られるようにロールで絞り込みを追加する。
key-results コントローラーの OpenAPI 仕様を更新する。
未認証ユーザーを ProtectedRoute がどうリダイレクトするか説明する。
未着手・進行中・完了のステータスバッジコンポーネントを追加する。
key_results に deadline カラムを追加するマイグレーションを書く。
目標絞り込み機能のプルリクエストをレビューする。
レトロスペクティブの議事録を三つのアクションにまとめる。
進捗バーのユーザーストーリーの受け入れ基準を作成する。
Vite 開発サーバーのプロキシを NestJS バックエンドに設定する。
四半期フィールドに Q2/2026 形式の入力検証を追加する。
Tailwind ユーティリティでスタイルした再利用可能な Button を作る。
目標とキーリザルトの違いを説明する。
目標が見つからない場合の 404 エラー処理を追加する。
目標の達成率を計算するサービスメソッドを書く。
queryClient に五分の stale time を設定する。
OKR 詳細ページにローディングスケルトンを追加する。
Prisma upsert によるシードの冪等性戦略を説明する。
基準値と現在のサイクルタイムを比較する KPI レポートを作る。
キーリザルト削除前に確認ダイアログを追加する。
ログイン API の結合テストを書く。
進捗バーのアクセシビリティを ARIA ラベルで改善する。
四半期 OKR レビュー機能の展開計画を立てる。
ダッシュボードに目標ステータスの絞り込みドロップダウンを追加する。
@@ -0,0 +1,32 @@
Xây dựng module mục tiêu bằng NestJS và Prisma theo tài liệu SRS.
Thêm phân trang cho endpoint GET /api/v1/objectives.
Viết unit test cho service cập nhật tiến độ key result.
Tạo schema Zod cho form tạo mục tiêu mới.
Refactor trang dashboard để dùng TanStack Query.
Mô tả luồng refresh token JWT trong tài liệu kiến trúc.
Sinh dữ liệu mẫu cho ba người dùng và hai mục tiêu.
Sửa lỗi class Tailwind bị sai ở mục điều hướng sidebar.
Thêm lọc theo vai trò để nhân viên chỉ thấy mục tiêu của mình.
Cập nhật đặc tả OpenAPI cho controller key-results.
Giải thích cách ProtectedRoute chuyển hướng người dùng chưa đăng nhập.
Thêm component huy hiệu trạng thái cho chưa bắt đầu, đang làm, hoàn thành.
Viết migration thêm cột deadline vào bảng key_results.
Review pull request cho tính năng lọc mục tiêu.
Tóm tắt biên bản họp retrospective thành ba việc cần làm.
Soạn tiêu chí chấp nhận cho user story thanh tiến độ.
Cấu hình proxy của Vite dev server tới backend NestJS.
Thêm kiểm tra hợp lệ cho trường quý theo định dạng Q2/2026.
Tạo component Button tái sử dụng dùng tiện ích Tailwind.
Giải thích sự khác nhau giữa mục tiêu và kết quả then chốt.
Thêm xử lý lỗi 404 khi không tìm thấy mục tiêu.
Viết hàm service tính phần trăm hoàn thành của mục tiêu.
Thiết lập queryClient với thời gian stale năm phút.
Thêm khung tải cho trang chi tiết OKR.
Mô tả chiến lược idempotency của seed dùng Prisma upsert.
Tạo báo cáo KPI so sánh thời gian chu kỳ nền và hiện tại.
Thêm hộp thoại xác nhận trước khi xóa một key result.
Viết integration test cho endpoint đăng nhập.
Cải thiện khả năng truy cập của thanh tiến độ với nhãn ARIA.
Lập kế hoạch triển khai tính năng review OKR hàng quý.
Thêm dropdown lọc trạng thái mục tiêu trên dashboard.
Bỏ qua các bước không cần thiết và tối ưu quy trình duyệt tài liệu.