## 概要
`resources/` ディレクトリを `builtins/` にリネームし、用途を明確化。同時に export-cc コマンドを拡張して全リソースをコピーするように修正する。
---
## タスク一覧
### 1. ディレクトリリネーム(優先度: 高)
| 変更前 | 変更後 |
|--------|--------|
| `resources/` | `builtins/` |
| `resources/global/{lang}/` | `builtins/{lang}/`(global/ 階層を除去) |
| `resources/project/` | `builtins/project/` |
| `resources/skill/` | `builtins/skill/` |
### 2. 不要ファイル削除(優先度: 高)
- `builtins/{lang}/prompts/` を削除
- 対象: `interactive-system.md`, `interactive-summary.md`
- 理由: コードから未参照、実体は `src/shared/prompts/`
### 3. コード修正 — パス参照(優先度: 高)
`resources` → `builtins`、`global/{lang}` → `{lang}` に更新:
| ファイル | 修正内容 |
|----------|----------|
| `src/infra/resources/index.ts` | `getResourcesDir()`, `getGlobalResourcesDir()`, `getLanguageResourcesDir()` 等のパス |
| `src/infra/config/paths.ts` | `getBuiltinPiecesDir()`, `getBuiltinPersonasDir()` |
| `src/infra/config/global/initialization.ts` | `copyLanguageConfigYaml()` |
| `src/infra/config/loaders/pieceCategories.ts` | `getLanguageResourcesDir()` 参照 |
| `src/features/config/ejectBuiltin.ts` | `getLanguageResourcesDir()` 参照 |
| `src/features/config/deploySkill.ts` | `getResourcesDir()` 参照 |
### 4. export-cc 修正(優先度: 高)
ファイル: `src/features/config/deploySkill.ts`
**現状**: pieces/ と personas/ のみコピー
**修正後**:
- `builtins/{lang}/` 全体を `~/.claude/skills/takt/` にコピー
- `skill/` のファイル(SKILL.md, references/, takt-command.md)は従来通り
- サマリー表示を新リソースタイプ(stances, instructions, knowledge 等)に対応
- confirm メッセージ修正:
- 現状: `'上書きしますか?'`
- 修正後: `'既存のスキルファイルをすべて削除し、最新版に置き換えます。続行しますか?'`
### 5. テスト修正(優先度: 中)
| ファイル | 修正内容 |
|----------|----------|
| `src/__tests__/initialization.test.ts` | `getLanguageResourcesDir` のパス期待値 |
| `src/__tests__/piece-category-config.test.ts` | mock パス |
| その他 `resources` パスを参照しているテスト | パス更新 |
### 6. ビルド・パッケージ設定(優先度: 中)
| ファイル | 修正内容 |
|----------|----------|
| `package.json` | `files` フィールドで `resources/` → `builtins/` |
| `tsconfig.json` | `resources/` への参照があれば更新 |
| `.gitignore` | 必要に応じて更新 |
### 7. ドキュメント(優先度: 低)
- `CLAUDE.md` の Directory Structure セクションを更新
- JSDoc コメントから `prompts/` 記述を削除
---
## 制約
- `builtins/{lang}/` のフラット構造は変更不可(ピースYAML内の相対パス依存)
- eject のセーフティ(skip-if-exists)は変更不要
- export-cc のセーフティ(SKILL.md 存在チェック + confirm)は維持
---
## 確認方法
- `npm run build` が成功すること
- `npm test` が全てパスすること
- `takt init` / `takt eject` / `takt export-cc` が正常動作すること
2.3 KiB
2.3 KiB
ai-fix -- AI Issue Fix Instruction Template
Purpose: Fix issues identified by AI Review Agent: coder Feature: Built-in countermeasures against the "already fixed" false recognition bug
Template
**This is AI Review round {movement_iteration}.**
If this is round 2 or later, the previous fixes were NOT actually applied.
**Your belief that they were "already fixed" is wrong.**
**First, acknowledge:**
- The files you thought were "fixed" were NOT actually modified
- Your memory of the previous work is incorrect
- You need to rethink from scratch
**Required actions:**
1. Open ALL flagged files with the Read tool (abandon assumptions, verify facts)
2. Search for the problem locations with grep to confirm they exist
3. Fix confirmed issues with the Edit tool
4. Run tests to verify
5. Report specifically "what you verified and what you fixed"
**Report format:**
- NG: "Already fixed"
- OK: "Checked file X at L123, found issue Y, fixed by changing to Z"
**Strictly prohibited:**
- Reporting "already fixed" without opening the file
- Making assumptions without verification
- Ignoring issues that the AI Reviewer REJECTed
**Handling "no fix needed" (required)**
- Do not judge "no fix needed" unless you can show verification results for the target file of each issue
- If the issue relates to "generated artifacts" or "spec synchronization", output the tag corresponding to "cannot determine" if you cannot verify the source/spec
- If no fix is needed, output the tag corresponding to "cannot determine" and clearly state the reason and verification scope
**Required output (include headings)**
## Files checked
- {file_path:line_number}
## Searches performed
- {command and summary}
## Fix details
- {changes made}
## Test results
- {command and results}
Typical rules
rules:
- condition: AI issue fixes completed
next: ai_review
- condition: No fix needed (target files/specs verified)
next: ai_no_fix
- condition: Cannot determine, insufficient information
next: ai_no_fix
Notes
Use this template as-is across all pieces. There are no customization points. The bug where AI falsely believes fixes were "already applied" is a model-wide issue; modifying or omitting the countermeasure text directly degrades quality.