nrslib ea7ce54912 takt: # タスク指示書: resources/ → builtins/ リネーム + export-cc 修正
## 概要
`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` が正常動作すること
2026-02-07 14:46:20 +09:00

2.5 KiB

implement -- Implementation Instruction Template

Purpose: Coding and test execution Agent: coder Reports: Scope + Decisions (format embedded in template)


Template

{Customize: Adjust based on the source movement}
Implement according to the plan from the plan movement.

**Reports to reference:**
- Plan: {report:plan.md}
{Customize: Add if architect movement exists}
- Design: {report:architecture.md} (if exists)

Only reference files within the Report Directory shown in Piece Context.
Do not search or reference other report directories.

{Customize: Add if architect exists}
**Important:** Do not make design decisions; follow the design determined in the architect movement.
Report any unclear points or need for design changes.

**Important**: Add unit tests alongside implementation.
- Add unit tests for newly created classes/functions
- Update relevant tests when modifying existing code
- Test file placement: follow the project's conventions
- Running tests is mandatory. After implementation, always run tests and verify results

**Scope report format (create at implementation start):**
```markdown
# Change Scope Declaration

## Task
{One-line task summary}

## Planned Changes
| Type | File |
|------|------|
| Create | `src/example.ts` |
| Modify | `src/routes.ts` |

## Estimated Size
Small / Medium / Large

## Impact Area
- {Affected modules or features}

Decisions report format (at implementation end, only when decisions were made):

# Decision Log

## 1. {Decision}
- **Background**: {Why the decision was needed}
- **Options considered**: {List of options}
- **Rationale**: {Why this was chosen}

Required output (include headings)

Work results

  • {Summary of work performed}

Changes made

  • {Summary of changes}

Test results

  • {Command and results}

---

## Typical rules

```yaml
rules:
  - condition: Implementation complete
    next: {ai_review or reviewers}
  - condition: Implementation not started (report only)
    next: {ai_review or reviewers}
  - condition: Cannot determine, insufficient information
    next: {ai_review or reviewers}
  - condition: User input needed
    next: implement
    requires_user_input: true
    interactive_only: true

Report settings

report:
  - Scope: coder-scope.md
  - Decisions: coder-decisions.md

Note: Do not add sequence numbers to report filenames. Use coder-scope.md, not 02-coder-scope.md. Sequence numbers depend on piece structure and hinder template reuse.