Shun Miyazawa 6 дней назад
Родитель
Сommit
f28d1478cf

+ 2 - 1
.claude/settings.json

@@ -31,7 +31,8 @@
       "Skill(kiro:spec-impl)",
       "Skill(kiro:spec-impl:*)",
       "Skill(kiro:spec-init)",
-      "Skill(kiro:spec-init:*)"
+      "Skill(kiro:spec-init:*)",
+      "Bash(node -e ':*)"
     ]
   },
   "enableAllProjectMcpServers": true,

+ 3 - 3
.kiro/specs/sharelink-page-api/spec.json

@@ -1,7 +1,7 @@
 {
   "feature_name": "sharelink-page-api",
   "created_at": "2026-04-13T00:00:00.000Z",
-  "updated_at": "2026-04-13T00:00:00.000Z",
+  "updated_at": "2026-04-13T04:24:13.508Z",
   "language": "ja",
   "phase": "tasks-generated",
   "approvals": {
@@ -15,8 +15,8 @@
     },
     "tasks": {
       "generated": true,
-      "approved": false
+      "approved": true
     }
   },
-  "ready_for_implementation": false
+  "ready_for_implementation": true
 }

+ 4 - 4
.kiro/specs/sharelink-page-api/tasks.md

@@ -1,27 +1,27 @@
 # Implementation Plan
 
 - [ ] 1. (P) ShareLink バリデーションサービスの実装とテスト
-- [ ] 1.1 ShareLink のデータベースバリデーション関数を実装する
+- [ ] 1.1 (P) ShareLink のデータベースバリデーション関数を実装する
   - share link ID とページ ID の両方を照合条件とした単一クエリで ShareLink を取得し、ミドルウェアで行っていた二重クエリを解消する
   - 照合成功・リンク未存在/pageId 不一致・期限切れの 3 パターンを判別可能な結果型(discriminated union)で返す
   - `disableLinkSharing` 設定の確認はハンドラー層に委ねて関数の責務を DB バリデーションのみに限定する
   - `server/service/share-link/` ディレクトリを新規作成してこのサービスを配置し、将来的に他ルートからも再利用できる構造にする
   - _Requirements: 2.1, 2.2, 2.3, 2.4_
 
-- [ ] 1.2 バリデーション関数のユニットテストを実装する
+- [ ] 1.2 (P) バリデーション関数のユニットテストを実装する
   - 有効なリンク(ShareLink が存在・relatedPage が一致・期限内)のとき成功結果を返すことを確認する
   - ShareLink が存在しない、または relatedPage が pageId と不一致のとき "not-found" 結果を返すことを確認する
   - `isExpired()` が true のとき "expired" 結果を返すことを確認する
   - _Requirements: 2.1, 2.2, 2.3, 2.4_
 
 - [ ] 2. (P) ページレスポンスユーティリティの抽出とテスト
-- [ ] 2.1 既存ページ取得ハンドラー内のレスポンス生成ロジックを共有ユーティリティとして抽出する
+- [ ] 2.1 (P) 既存ページ取得ハンドラー内のレスポンス生成ロジックを共有ユーティリティとして抽出する
   - `GET /page` ハンドラー内のインライン関数(ページデータ・meta を受け取って API レスポンスを返す処理)を独立したモジュール関数に変換する
   - レスポンスオブジェクト・ページデータ・オプション(revisionId・disableUserPages)を引数として受け取るよう設計する
   - 既存の `GET /page` ハンドラーがこのユーティリティを import して使用するよう書き換え、動作が変わらないことを確認する
   - _Requirements: 5.3_
 
-- [ ] 2.2 レスポンスユーティリティのユニットテストを実装する
+- [ ] 2.2 (P) レスポンスユーティリティのユニットテストを実装する
   - ページが forbidden(`isForbidden: true`)のとき 403 が返ることを確認する
   - ページが見つからない(`isNotFound: true`)のとき 404 が返ることを確認する
   - `disableUserPages` が有効なユーザーページで 403 が返ることを確認する