## 概要
`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` が正常動作すること
81 lines
2.6 KiB
JSON
81 lines
2.6 KiB
JSON
{
|
|
"name": "takt",
|
|
"version": "0.7.1",
|
|
"description": "TAKT: Task Agent Koordination Tool - AI Agent Piece Orchestration",
|
|
"main": "dist/index.js",
|
|
"types": "dist/index.d.ts",
|
|
"bin": {
|
|
"takt": "./bin/takt",
|
|
"takt-dev": "./bin/takt",
|
|
"takt-cli": "./dist/app/cli/index.js"
|
|
},
|
|
"scripts": {
|
|
"build": "tsc && mkdir -p dist/shared/prompts/en dist/shared/prompts/ja dist/shared/i18n && cp src/shared/prompts/en/*.md dist/shared/prompts/en/ && cp src/shared/prompts/ja/*.md dist/shared/prompts/ja/ && cp src/shared/i18n/labels_en.yaml src/shared/i18n/labels_ja.yaml dist/shared/i18n/",
|
|
"watch": "tsc --watch",
|
|
"test": "vitest run",
|
|
"test:watch": "vitest",
|
|
"test:e2e": "npm run test:e2e:all",
|
|
"test:e2e:mock": "vitest run --config vitest.config.e2e.mock.ts --reporter=verbose",
|
|
"test:e2e:all": "npm run test:e2e:mock && npm run test:e2e:provider",
|
|
"test:e2e:provider": "npm run test:e2e:provider:claude && npm run test:e2e:provider:codex",
|
|
"test:e2e:provider:claude": "TAKT_E2E_PROVIDER=claude vitest run --config vitest.config.e2e.provider.ts --reporter=verbose",
|
|
"test:e2e:provider:codex": "TAKT_E2E_PROVIDER=codex vitest run --config vitest.config.e2e.provider.ts --reporter=verbose",
|
|
"test:e2e:claude": "npm run test:e2e:provider:claude",
|
|
"test:e2e:codex": "npm run test:e2e:provider:codex",
|
|
"lint": "eslint src/",
|
|
"prepublishOnly": "npm run lint && npm run build && npm run test"
|
|
},
|
|
"keywords": [
|
|
"claude",
|
|
"claude-code",
|
|
"codex",
|
|
"ai",
|
|
"agent",
|
|
"orchestration",
|
|
"piece",
|
|
"automation",
|
|
"llm",
|
|
"anthropic"
|
|
],
|
|
"author": "nrslib <38722970+nrslib@users.noreply.github.com>",
|
|
"license": "MIT",
|
|
"repository": {
|
|
"type": "git",
|
|
"url": "git+https://github.com/nrslib/takt.git"
|
|
},
|
|
"bugs": {
|
|
"url": "https://github.com/nrslib/takt/issues"
|
|
},
|
|
"homepage": "https://github.com/nrslib/takt#readme",
|
|
"type": "module",
|
|
"engines": {
|
|
"node": ">=18.0.0"
|
|
},
|
|
"files": [
|
|
"dist/",
|
|
"bin/",
|
|
"builtins/"
|
|
],
|
|
"dependencies": {
|
|
"@anthropic-ai/claude-agent-sdk": "^0.2.19",
|
|
"@openai/codex-sdk": "^0.91.0",
|
|
"chalk": "^5.3.0",
|
|
"commander": "^12.1.0",
|
|
"update-notifier": "^7.3.1",
|
|
"wanakana": "^5.3.1",
|
|
"yaml": "^2.4.5",
|
|
"zod": "^4.3.6"
|
|
},
|
|
"devDependencies": {
|
|
"@eslint/js": "^9.39.2",
|
|
"@types/node": "^20.14.0",
|
|
"@types/wanakana": "^4.0.6",
|
|
"@typescript-eslint/eslint-plugin": "^8.0.0",
|
|
"@typescript-eslint/parser": "^8.0.0",
|
|
"eslint": "^9.0.0",
|
|
"typescript": "^5.5.0",
|
|
"typescript-eslint": "^8.53.1",
|
|
"vitest": "^2.0.0"
|
|
}
|
|
}
|