@einja/dev-cli 0.1.9 → 0.1.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +30 -2
- package/dist/cli.js +3 -6
- package/dist/cli.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +11 -6
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/list.js +1 -1
- package/dist/commands/list.js.map +1 -1
- package/dist/commands/sync.d.ts.map +1 -1
- package/dist/commands/sync.js +69 -7
- package/dist/commands/sync.js.map +1 -1
- package/dist/commands/sync.test.js +11 -25
- package/dist/commands/sync.test.js.map +1 -1
- package/dist/commands/task-loop/index.d.ts.map +1 -1
- package/dist/commands/task-loop/index.js +5 -2
- package/dist/commands/task-loop/index.js.map +1 -1
- package/dist/commands/task-loop/lib/__mocks__/child-process.mock.d.ts +227 -0
- package/dist/commands/task-loop/lib/__mocks__/child-process.mock.d.ts.map +1 -0
- package/dist/commands/task-loop/lib/__mocks__/child-process.mock.js +351 -0
- package/dist/commands/task-loop/lib/__mocks__/child-process.mock.js.map +1 -0
- package/dist/commands/task-loop/lib/__mocks__/sample-issues.d.ts +46 -0
- package/dist/commands/task-loop/lib/__mocks__/sample-issues.d.ts.map +1 -0
- package/dist/commands/task-loop/lib/__mocks__/sample-issues.js +224 -0
- package/dist/commands/task-loop/lib/__mocks__/sample-issues.js.map +1 -0
- package/dist/commands/task-loop/lib/branch-manager.d.ts.map +1 -1
- package/dist/commands/task-loop/lib/branch-manager.js +14 -8
- package/dist/commands/task-loop/lib/branch-manager.js.map +1 -1
- package/dist/commands/task-loop/lib/branch-manager.test.d.ts +2 -0
- package/dist/commands/task-loop/lib/branch-manager.test.d.ts.map +1 -0
- package/dist/commands/task-loop/lib/branch-manager.test.js +539 -0
- package/dist/commands/task-loop/lib/branch-manager.test.js.map +1 -0
- package/dist/commands/task-loop/lib/conflict-handler.js +1 -1
- package/dist/commands/task-loop/lib/conflict-handler.js.map +1 -1
- package/dist/commands/task-loop/lib/dependency-resolver.test.d.ts +2 -0
- package/dist/commands/task-loop/lib/dependency-resolver.test.d.ts.map +1 -0
- package/dist/commands/task-loop/lib/dependency-resolver.test.js +1129 -0
- package/dist/commands/task-loop/lib/dependency-resolver.test.js.map +1 -0
- package/dist/commands/task-loop/lib/gh-setup.d.ts.map +1 -1
- package/dist/commands/task-loop/lib/gh-setup.js.map +1 -1
- package/dist/commands/task-loop/lib/github-client.d.ts.map +1 -1
- package/dist/commands/task-loop/lib/github-client.js +3 -3
- package/dist/commands/task-loop/lib/github-client.js.map +1 -1
- package/dist/commands/task-loop/lib/github-client.test.d.ts +2 -0
- package/dist/commands/task-loop/lib/github-client.test.d.ts.map +1 -0
- package/dist/commands/task-loop/lib/github-client.test.js +377 -0
- package/dist/commands/task-loop/lib/github-client.test.js.map +1 -0
- package/dist/commands/task-loop/lib/issue-parser.js +4 -4
- package/dist/commands/task-loop/lib/issue-parser.js.map +1 -1
- package/dist/commands/task-loop/lib/issue-parser.test.d.ts +2 -0
- package/dist/commands/task-loop/lib/issue-parser.test.d.ts.map +1 -0
- package/dist/commands/task-loop/lib/issue-parser.test.js +854 -0
- package/dist/commands/task-loop/lib/issue-parser.test.js.map +1 -0
- package/dist/commands/task-loop/lib/pull-request-manager.d.ts +35 -0
- package/dist/commands/task-loop/lib/pull-request-manager.d.ts.map +1 -0
- package/dist/commands/task-loop/lib/pull-request-manager.js +150 -0
- package/dist/commands/task-loop/lib/pull-request-manager.js.map +1 -0
- package/dist/commands/task-loop/lib/task-number-utils.d.ts +10 -4
- package/dist/commands/task-loop/lib/task-number-utils.d.ts.map +1 -1
- package/dist/commands/task-loop/lib/task-number-utils.js +19 -10
- package/dist/commands/task-loop/lib/task-number-utils.js.map +1 -1
- package/dist/commands/task-loop/lib/task-number-utils.test.d.ts +2 -0
- package/dist/commands/task-loop/lib/task-number-utils.test.d.ts.map +1 -0
- package/dist/commands/task-loop/lib/task-number-utils.test.js +379 -0
- package/dist/commands/task-loop/lib/task-number-utils.test.js.map +1 -0
- package/dist/commands/task-loop/lib/task-state-manager.d.ts.map +1 -1
- package/dist/commands/task-loop/lib/task-state-manager.js +1 -1
- package/dist/commands/task-loop/lib/task-state-manager.js.map +1 -1
- package/dist/commands/task-loop/lib/task-state-manager.test.d.ts +2 -0
- package/dist/commands/task-loop/lib/task-state-manager.test.d.ts.map +1 -0
- package/dist/commands/task-loop/lib/task-state-manager.test.js +541 -0
- package/dist/commands/task-loop/lib/task-state-manager.test.js.map +1 -0
- package/dist/lib/file-system.js +1 -1
- package/dist/lib/file-system.js.map +1 -1
- package/dist/lib/mcp-config.d.ts.map +1 -1
- package/dist/lib/mcp-config.js +8 -4
- package/dist/lib/mcp-config.js.map +1 -1
- package/dist/lib/mcp-config.test.js +2 -2
- package/dist/lib/mcp-config.test.js.map +1 -1
- package/dist/lib/merger.d.ts.map +1 -1
- package/dist/lib/merger.js.map +1 -1
- package/dist/lib/preset-update/cli-repo-detector.test.js.map +1 -1
- package/dist/lib/preset-update/file-copier.d.ts +2 -0
- package/dist/lib/preset-update/file-copier.d.ts.map +1 -1
- package/dist/lib/preset-update/file-copier.js +12 -8
- package/dist/lib/preset-update/file-copier.js.map +1 -1
- package/dist/lib/preset-update/file-copier.test.js +36 -5
- package/dist/lib/preset-update/file-copier.test.js.map +1 -1
- package/dist/lib/preset-update/preset-finder.d.ts +1 -1
- package/dist/lib/preset-update/preset-finder.d.ts.map +1 -1
- package/dist/lib/preset-update/preset-finder.js +1 -1
- package/dist/lib/preset-update/preset-finder.js.map +1 -1
- package/dist/lib/preset-update/preset-finder.test.js +11 -11
- package/dist/lib/preset-update/preset-finder.test.js.map +1 -1
- package/dist/lib/preset.js +3 -3
- package/dist/lib/preset.js.map +1 -1
- package/dist/lib/sync/backup-manager.d.ts.map +1 -1
- package/dist/lib/sync/backup-manager.js +1 -1
- package/dist/lib/sync/backup-manager.js.map +1 -1
- package/dist/lib/sync/backup-manager.test.js +2 -2
- package/dist/lib/sync/backup-manager.test.js.map +1 -1
- package/dist/lib/sync/batch-processor.d.ts.map +1 -1
- package/dist/lib/sync/batch-processor.js.map +1 -1
- package/dist/lib/sync/batch-processor.test.js.map +1 -1
- package/dist/lib/sync/category-validator.d.ts.map +1 -1
- package/dist/lib/sync/category-validator.js.map +1 -1
- package/dist/lib/sync/category-validator.test.js +2 -11
- package/dist/lib/sync/category-validator.test.js.map +1 -1
- package/dist/lib/sync/conflict-reporter.d.ts.map +1 -1
- package/dist/lib/sync/conflict-reporter.js +1 -2
- package/dist/lib/sync/conflict-reporter.js.map +1 -1
- package/dist/lib/sync/conflict-reporter.test.js +2 -7
- package/dist/lib/sync/conflict-reporter.test.js.map +1 -1
- package/dist/lib/sync/diff-engine.d.ts.map +1 -1
- package/dist/lib/sync/diff-engine.js +2 -4
- package/dist/lib/sync/diff-engine.js.map +1 -1
- package/dist/lib/sync/diff-engine.test.js.map +1 -1
- package/dist/lib/sync/file-filter.d.ts.map +1 -1
- package/dist/lib/sync/file-filter.js +26 -3
- package/dist/lib/sync/file-filter.js.map +1 -1
- package/dist/lib/sync/file-filter.test.js +26 -2
- package/dist/lib/sync/file-filter.test.js.map +1 -1
- package/dist/lib/sync/hash-cache.d.ts.map +1 -1
- package/dist/lib/sync/hash-cache.js.map +1 -1
- package/dist/lib/sync/hash-cache.test.js +2 -2
- package/dist/lib/sync/hash-cache.test.js.map +1 -1
- package/dist/lib/sync/integration.test.js +289 -2
- package/dist/lib/sync/integration.test.js.map +1 -1
- package/dist/lib/sync/marker-processor.d.ts +34 -10
- package/dist/lib/sync/marker-processor.d.ts.map +1 -1
- package/dist/lib/sync/marker-processor.js +142 -41
- package/dist/lib/sync/marker-processor.js.map +1 -1
- package/dist/lib/sync/marker-processor.test.js +134 -1
- package/dist/lib/sync/marker-processor.test.js.map +1 -1
- package/dist/lib/sync/metadata-manager.d.ts.map +1 -1
- package/dist/lib/sync/metadata-manager.js.map +1 -1
- package/dist/lib/sync/metadata-manager.test.js +4 -6
- package/dist/lib/sync/metadata-manager.test.js.map +1 -1
- package/dist/lib/sync/performance.test.js +2 -2
- package/dist/lib/sync/performance.test.js.map +1 -1
- package/dist/lib/sync/seed-synchronizer.d.ts +27 -0
- package/dist/lib/sync/seed-synchronizer.d.ts.map +1 -0
- package/dist/lib/sync/seed-synchronizer.js +72 -0
- package/dist/lib/sync/seed-synchronizer.js.map +1 -0
- package/dist/lib/sync/seed-synchronizer.test.d.ts +2 -0
- package/dist/lib/sync/seed-synchronizer.test.d.ts.map +1 -0
- package/dist/lib/sync/seed-synchronizer.test.js +147 -0
- package/dist/lib/sync/seed-synchronizer.test.js.map +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/preset-update.d.ts +1 -1
- package/dist/types/sync.d.ts +4 -2
- package/dist/types/sync.d.ts.map +1 -1
- package/dist/types/sync.js.map +1 -1
- package/package.json +1 -2
- package/presets/default/.claude/agents/einja/backend-architect.md +1131 -0
- package/presets/{minimal/.claude/agents/einja/frontend → default/.claude/agents/einja}/design-engineer.md +1 -1
- package/presets/{minimal/.claude/agents/einja/frontend → default/.claude/agents/einja}/frontend-architect.md +1 -1
- package/presets/{minimal/.claude/agents/einja/frontend → default/.claude/agents/einja}/frontend-coder.md +1 -37
- package/presets/{minimal → default}/.claude/agents/einja/task/task-committer.md +12 -6
- package/presets/{minimal → default}/.claude/agents/einja/task/task-executer.md +9 -9
- package/presets/{minimal → default}/.claude/commands/einja/frontend-implement.md +1 -1
- package/presets/{minimal → default}/.claude/commands/einja/update-docs-by-task-specs.md +6 -6
- package/presets/{minimal/.claude/skills/einja/api-development → default/.claude/skills/einja-api-development}/SKILL.md +5 -5
- package/presets/{minimal/.claude/skills/einja/backend-architecture → default/.claude/skills/einja-backend-architecture}/SKILL.md +5 -5
- package/presets/{minimal/.claude/skills/einja/coding-standards → default/.claude/skills/einja-coding-standards}/SKILL.md +6 -6
- package/presets/{minimal/.claude/skills/einja/component-design → default/.claude/skills/einja-component-design}/SKILL.md +6 -6
- package/presets/{minimal/.claude/skills/einja/frontend-development → default/.claude/skills/einja-frontend-development}/SKILL.md +5 -5
- package/presets/{minimal/.claude/skills/einja/output-format → default/.claude/skills/einja-output-format}/SKILL.md +54 -5
- package/presets/{minimal → default}/preset.yaml +1 -1
- package/presets/{minimal → default}/symlinks.json +10 -10
- package/scaffolds/cli/preset.yaml +110 -0
- package/scaffolds/example/README.md +35 -0
- package/scaffolds/example/specs/issues/issue999-example-task/design.md +879 -0
- package/scaffolds/example/specs/issues/issue999-example-task/qa-tests/README.md +150 -0
- package/scaffolds/example/specs/issues/issue999-example-task/qa-tests/phase1/1-1.md +268 -0
- package/scaffolds/example/specs/issues/issue999-example-task/qa-tests/phase1/1-2.md +179 -0
- package/scaffolds/example/specs/issues/issue999-example-task/qa-tests/phase1/1-3.md +392 -0
- package/scaffolds/example/specs/issues/issue999-example-task/qa-tests/phase1/evidence/.gitkeep +0 -0
- package/scaffolds/example/specs/issues/issue999-example-task/qa-tests/phase2/2-1.md +459 -0
- package/scaffolds/example/specs/issues/issue999-example-task/qa-tests/phase2/evidence/.gitkeep +0 -0
- package/scaffolds/example/specs/issues/issue999-example-task/qa-tests/scenarios.md +125 -0
- package/scaffolds/example/specs/issues/issue999-example-task/requirements.md +494 -0
- package/scaffolds/example/specs/issues/issue999-example-task/tasks.md +212 -0
- package/scaffolds/instructions/deployment-setup.md +458 -0
- package/scaffolds/instructions/environment-setup.md +509 -0
- package/scaffolds/instructions/local-server-environment-and-worktree.md +539 -0
- package/scaffolds/instructions/task-execute.md +649 -0
- package/scaffolds/instructions/task-vibe-kanban-loop.md +495 -0
- package/scaffolds/memory/archive/.gitkeep +0 -0
- package/scaffolds/memory/decisions.md +35 -0
- package/scaffolds/memory/patterns.md +37 -0
- package/scaffolds/steering/README.md +42 -0
- package/scaffolds/steering/acceptance-criteria-and-qa-guide.md +11 -0
- package/scaffolds/steering/architecture.md +11 -0
- package/scaffolds/steering/branch-strategy.md +11 -0
- package/scaffolds/steering/commit-rules.md +12 -1
- package/scaffolds/steering/db-schema-design.md +11 -0
- package/scaffolds/steering/development/api-development.md +15 -4
- package/scaffolds/steering/development/backend-architecture.md +11 -0
- package/scaffolds/steering/development/frontend-development.md +11 -0
- package/scaffolds/steering/development/review-guidelines.md +11 -0
- package/scaffolds/steering/development/testing-strategy.md +85 -0
- package/scaffolds/steering/development-workflow.md +11 -0
- package/scaffolds/steering/infrastructure/deployment.md +11 -0
- package/scaffolds/steering/infrastructure/environment-variables.md +11 -0
- package/scaffolds/steering/product.md +11 -0
- package/scaffolds/steering/task-management.md +11 -0
- package/scaffolds/CLAUDE.md.template +0 -386
- /package/presets/{minimal → default}/.claude/agents/einja/docs/docs-updater.md +0 -0
- /package/presets/{minimal → default}/.claude/agents/einja/git/conflict-resolver.md +0 -0
- /package/presets/{minimal → default}/.claude/agents/einja/specs/spec-design-generator.md +0 -0
- /package/presets/{minimal → default}/.claude/agents/einja/specs/spec-qa-generator.md +0 -0
- /package/presets/{minimal → default}/.claude/agents/einja/specs/spec-requirements-generator.md +0 -0
- /package/presets/{minimal → default}/.claude/agents/einja/specs/spec-tasks-generator.md +0 -0
- /package/presets/{minimal → default}/.claude/agents/einja/task/task-modification-analyzer.md +0 -0
- /package/presets/{minimal → default}/.claude/agents/einja/task/task-qa.md +0 -0
- /package/presets/{minimal → default}/.claude/agents/einja/task/task-reviewer.md +0 -0
- /package/presets/{minimal → default}/.claude/commands/einja/spec-create.md +0 -0
- /package/presets/{minimal → default}/.claude/commands/einja/start-dev.md +0 -0
- /package/presets/{minimal → default}/.claude/commands/einja/sync-cursor-commands.md +0 -0
- /package/presets/{minimal → default}/.claude/commands/einja/task-exec.md +0 -0
- /package/presets/{minimal → default}/.claude/hooks/einja/biome-format.sh +0 -0
- /package/presets/{minimal → default}/.claude/hooks/einja/design-doc-check.sh +0 -0
- /package/presets/{minimal → default}/.claude/hooks/einja/detect-secrets.sh +0 -0
- /package/presets/{minimal → default}/.claude/hooks/einja/large-file-warning.sh +0 -0
- /package/presets/{minimal → default}/.claude/hooks/einja/playwright-resize.sh +0 -0
- /package/presets/{minimal → default}/.claude/hooks/einja/typecheck.sh +0 -0
- /package/presets/{minimal → default}/.claude/hooks/einja/unset-volta-recursion.sh +0 -0
- /package/presets/{minimal → default}/.claude/hooks/einja/validate-git-commit.sh +0 -0
- /package/presets/{minimal → default}/.claude/hooks/einja/warn-index-ts.sh +0 -0
- /package/presets/{minimal → default}/.claude/hooks/einja/warn-relative-import.sh +0 -0
- /package/presets/{minimal → default}/.claude/settings.json +0 -0
- /package/presets/{minimal/.claude/skills/einja/coding-standards → default/.claude/skills/einja-coding-standards}/reference/naming-conventions.md +0 -0
- /package/presets/{minimal/.claude/skills/einja/coding-standards → default/.claude/skills/einja-coding-standards}/reference/prohibited-patterns.md +0 -0
- /package/presets/{minimal/.claude/skills/einja/coding-standards → default/.claude/skills/einja-coding-standards}/reference/typescript-rules.md +0 -0
- /package/presets/{minimal/.claude/skills/einja/component-design → default/.claude/skills/einja-component-design}/reference/directory-structure.md +0 -0
- /package/presets/{minimal/.claude/skills/einja/component-design → default/.claude/skills/einja-component-design}/reference/props-patterns.md +0 -0
- /package/presets/{minimal/.claude/skills/einja/component-design → default/.claude/skills/einja-component-design}/reference/styling-guide.md +0 -0
- /package/presets/{minimal/.claude/skills/einja/conflict-resolver → default/.claude/skills/einja-conflict-resolver}/SKILL.md +0 -0
- /package/presets/{minimal/.claude/skills/einja/general-context-loader → default/.claude/skills/einja-general-context-loader}/SKILL.md +0 -0
- /package/presets/{minimal/.claude/skills/einja/spec-context-loader → default/.claude/skills/einja-spec-context-loader}/SKILL.md +0 -0
- /package/presets/{minimal/.claude/skills/einja/task-commit → default/.claude/skills/einja-task-commit}/SKILL.md +0 -0
- /package/presets/{minimal/.claude/skills/einja/task-qa → default/.claude/skills/einja-task-qa}/SKILL.md +0 -0
- /package/presets/{minimal/.claude/skills/einja/task-qa → default/.claude/skills/einja-task-qa}/reference/failure-patterns.md +0 -0
- /package/presets/{minimal/.claude/skills/einja/task-qa → default/.claude/skills/einja-task-qa}/reference/troubleshooting.md +0 -0
- /package/presets/{minimal/.claude/skills/einja/task-qa → default/.claude/skills/einja-task-qa}/reference/usage-patterns.md +0 -0
- /package/presets/{minimal/.claude/skills/einja/task-qa → default/.claude/skills/einja-task-qa}/templates/qa-test-template.md +0 -0
- /package/{templates → scaffolds/templates}/README.md +0 -0
- /package/{templates → scaffolds/templates}/design-simple.md.template +0 -0
- /package/{templates → scaffolds/templates}/design.md.template +0 -0
- /package/{templates → scaffolds/templates}/qa-test.md.template +0 -0
- /package/{templates → scaffolds/templates}/requirements.md.template +0 -0
|
@@ -7,7 +7,7 @@ color: blue
|
|
|
7
7
|
|
|
8
8
|
## ✅ 最重要: 出力形式
|
|
9
9
|
|
|
10
|
-
**@.claude/skills/einja
|
|
10
|
+
**@.claude/skills/einja-output-format/SKILL.md の「frontend-coder」テンプレートに従って報告すること。この形式から逸脱しないこと。**
|
|
11
11
|
|
|
12
12
|
---
|
|
13
13
|
|
|
@@ -48,44 +48,8 @@ color: blue
|
|
|
48
48
|
- 再利用可能なコンポーネントを特定
|
|
49
49
|
- 命名規則とディレクトリ構造を把握
|
|
50
50
|
|
|
51
|
-
3. **既存パターンとの整合性確認**:
|
|
52
|
-
|
|
53
|
-
既存実装の分析後、既存パターンと異なる実装が必要な場合はAskUserQuestionで方針承認を得ます。
|
|
54
|
-
|
|
55
|
-
```yaml
|
|
56
|
-
AskUserQuestion:
|
|
57
|
-
question: "既存パターンと異なる実装方針が必要です。どのように進めますか?"
|
|
58
|
-
header: "実装方針"
|
|
59
|
-
options:
|
|
60
|
-
- label: "新パターンで実装(推奨)"
|
|
61
|
-
description: "推奨理由: 既存パターンでは要件を満たせない。メリット: 要件を完全に満たせる。デメリット: 新パターンが今後の標準となる可能性、学習コスト"
|
|
62
|
-
- label: "既存パターンに合わせて要件調整"
|
|
63
|
-
description: "メリット: プロジェクトの一貫性を維持。デメリット: 機能制限が発生し、ビジネス要件を満たせない可能性"
|
|
64
|
-
- label: "両パターンの折衷案"
|
|
65
|
-
description: "メリット: 既存との互換性を保ちつつ新機能を実現。デメリット: 実装が複雑化し、保守コストが増加する可能性"
|
|
66
|
-
```
|
|
67
|
-
|
|
68
51
|
### 2. コンポーネント実装
|
|
69
52
|
|
|
70
|
-
#### 状態管理方法の確認
|
|
71
|
-
|
|
72
|
-
コンポーネント実装前に、複数の状態管理方法が選択可能な場合はAskUserQuestionで確認します。
|
|
73
|
-
|
|
74
|
-
```yaml
|
|
75
|
-
AskUserQuestion:
|
|
76
|
-
question: "状態管理の方法を選択してください"
|
|
77
|
-
header: "状態管理"
|
|
78
|
-
options:
|
|
79
|
-
- label: "TanStack Query(推奨)"
|
|
80
|
-
description: "推奨理由: サーバー状態管理に最適。メリット: キャッシュ・再取得が自動化、宣言的なデータフェッチ。デメリット: 学習コスト、ライブラリ依存"
|
|
81
|
-
- label: "Context API"
|
|
82
|
-
description: "メリット: 外部依存なし、シンプル。デメリット: 大規模な状態には不向き、再レンダリングの最適化が必要"
|
|
83
|
-
- label: "useReducer"
|
|
84
|
-
description: "メリット: 状態遷移が明確、テストしやすい。デメリット: ボイラープレートが増える、グローバル状態には不向き"
|
|
85
|
-
- label: "useState(複数)"
|
|
86
|
-
description: "メリット: 最もシンプル、学習コストなし。デメリット: 状態が増えると管理が複雑化、状態間の連携が困難"
|
|
87
|
-
```
|
|
88
|
-
|
|
89
53
|
#### ディレクトリ構造(モノレポ対応)
|
|
90
54
|
```
|
|
91
55
|
apps/web/src/
|
|
@@ -19,16 +19,22 @@ QA合格後の変更をコミット・プッシュします。
|
|
|
19
19
|
|
|
20
20
|
## 処理
|
|
21
21
|
|
|
22
|
-
task-commit Skill
|
|
22
|
+
task-commit Skillを実行し、結果を返却します。
|
|
23
23
|
|
|
24
|
-
###
|
|
24
|
+
### コミット分割案の確認
|
|
25
25
|
|
|
26
|
-
|
|
26
|
+
呼び出し時の指示に**明示的なコミット分割の指定がない場合**は、**AskUserQuestionツールを使用**してコミット分割案の承認を得ます。
|
|
27
27
|
|
|
28
|
-
1
|
|
29
|
-
|
|
28
|
+
- ✅ 「この分割でお願い」「1コミットで」等の指定がある → 指定に従って実行
|
|
29
|
+
- ✅ 分割指定がない → AskUserQuestionで確認を取る
|
|
30
30
|
|
|
31
|
-
|
|
31
|
+
### task-exec経由での呼び出し
|
|
32
|
+
|
|
33
|
+
task-exec経由で呼び出される場合、以下のみスキップします:
|
|
34
|
+
|
|
35
|
+
- **品質チェック(prepush)**: QAフェーズで既に lint/typecheck/test が実行済みのため、重複実行は不要
|
|
36
|
+
|
|
37
|
+
**注意**: コミット分割案の確認はスキップしません。
|
|
32
38
|
|
|
33
39
|
## 出力形式
|
|
34
40
|
|
|
@@ -103,17 +103,17 @@ Skill: general-context-loader
|
|
|
103
103
|
|
|
104
104
|
| 実装種別 | 読み込むSkill |
|
|
105
105
|
|---------|--------------|
|
|
106
|
-
| **API実装** | `.claude/skills/einja
|
|
107
|
-
| **フロントエンド実装** | `.claude/skills/einja
|
|
108
|
-
| **バックエンド実装** | `.claude/skills/einja
|
|
109
|
-
| **コード全般** | `.claude/skills/einja
|
|
110
|
-
| **コンポーネント設計** | `.claude/skills/einja
|
|
106
|
+
| **API実装** | `.claude/skills/einja-api-development/SKILL.md` |
|
|
107
|
+
| **フロントエンド実装** | `.claude/skills/einja-frontend-development/SKILL.md` |
|
|
108
|
+
| **バックエンド実装** | `.claude/skills/einja-backend-architecture/SKILL.md` |
|
|
109
|
+
| **コード全般** | `.claude/skills/einja-coding-standards/SKILL.md` |
|
|
110
|
+
| **コンポーネント設計** | `.claude/skills/einja-component-design/SKILL.md` |
|
|
111
111
|
|
|
112
112
|
**詳細規約が必要な場合**:
|
|
113
|
-
- 命名規則: `.claude/skills/einja
|
|
114
|
-
- 禁止パターン: `.claude/skills/einja
|
|
115
|
-
- TypeScript規約: `.claude/skills/einja
|
|
116
|
-
- スタイリング: `.claude/skills/einja
|
|
113
|
+
- 命名規則: `.claude/skills/einja-coding-standards/reference/naming-conventions.md`
|
|
114
|
+
- 禁止パターン: `.claude/skills/einja-coding-standards/reference/prohibited-patterns.md`
|
|
115
|
+
- TypeScript規約: `.claude/skills/einja-coding-standards/reference/typescript-rules.md`
|
|
116
|
+
- スタイリング: `.claude/skills/einja-component-design/reference/styling-guide.md`
|
|
117
117
|
|
|
118
118
|
### 2. 実装方針の策定
|
|
119
119
|
|
|
@@ -332,9 +332,9 @@ allowed-tools: Read, Write, Edit, Bash, Grep, Glob
|
|
|
332
332
|
- features/login/design.md: 5セクション追加
|
|
333
333
|
|
|
334
334
|
### Steering仕様書
|
|
335
|
-
-
|
|
336
|
-
-
|
|
337
|
-
-
|
|
335
|
+
- steering/architecture.md: 7セクション追加
|
|
336
|
+
- steering/db-design.md: 4セクション追加
|
|
337
|
+
- steering/product.md: 3セクション追加
|
|
338
338
|
```
|
|
339
339
|
|
|
340
340
|
2. **各ファイルの詳細プレビュー**(オプション):
|
|
@@ -420,9 +420,9 @@ allowed-tools: Read, Write, Edit, Bash, Grep, Glob
|
|
|
420
420
|
- **features/login/tasks.md**: 1セクション追加(156行)
|
|
421
421
|
|
|
422
422
|
### Steering仕様書
|
|
423
|
-
- **
|
|
424
|
-
- **
|
|
425
|
-
- **
|
|
423
|
+
- **steering/architecture.md**: 7セクション追加(1,245行)
|
|
424
|
+
- **steering/db-design.md**: 4セクション追加(567行)
|
|
425
|
+
- **steering/product.md**: 3セクション追加(334行)
|
|
426
426
|
|
|
427
427
|
## 次のステップ
|
|
428
428
|
- 反映された内容を確認してください
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
name: "coding-standards"
|
|
1
|
+
---
|
|
2
|
+
name: coding-standards
|
|
4
3
|
description: "TypeScript/React/Next.jsのコーディング規約とベストプラクティス"
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Coding Standards Skill
|
|
7
7
|
|
|
8
8
|
## 概要
|
|
9
9
|
|
|
@@ -114,7 +114,7 @@ const customStyles = css({
|
|
|
114
114
|
|
|
115
115
|
## 関連Skill・ドキュメント
|
|
116
116
|
|
|
117
|
-
- [component-design](../component-design/SKILL.md) - コンポーネント設計ガイドライン
|
|
117
|
+
- [component-design](../einja-component-design/SKILL.md) - コンポーネント設計ガイドライン
|
|
118
118
|
- `docs/einja/steering/development/testing-strategy.md` - テスト戦略
|
|
119
119
|
- `docs/einja/steering/development/review-guidelines.md` - コードレビューガイドライン
|
|
120
120
|
- `docs/einja/steering/commit-rules.md` - コミットルール
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
name: "component-design"
|
|
1
|
+
---
|
|
2
|
+
name: component-design
|
|
4
3
|
description: "Reactコンポーネントの設計原則と実装ガイドライン"
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Component Design Skill
|
|
7
7
|
|
|
8
8
|
## 概要
|
|
9
9
|
|
|
@@ -98,7 +98,7 @@ interface ButtonProps {
|
|
|
98
98
|
|
|
99
99
|
## 関連Skill・ドキュメント
|
|
100
100
|
|
|
101
|
-
- [coding-standards](../coding-standards/SKILL.md) - コーディング規約
|
|
101
|
+
- [coding-standards](../einja-coding-standards/SKILL.md) - コーディング規約
|
|
102
102
|
- `docs/einja/steering/development/testing-strategy.md` - テスト戦略
|
|
103
103
|
- `docs/einja/steering/development/frontend-development.md` - フロントエンド開発ガイド
|
|
104
104
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
name: "output-format"
|
|
1
|
+
---
|
|
2
|
+
name: output-format
|
|
4
3
|
description: "サブエージェントの統一出力形式を定義"
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# サブエージェント出力形式 Skill
|
|
7
7
|
|
|
8
8
|
## 概要
|
|
9
9
|
|
|
@@ -113,6 +113,55 @@ version: "1.0.0"
|
|
|
113
113
|
[後続処理の説明]
|
|
114
114
|
```
|
|
115
115
|
|
|
116
|
+
### backend-architect
|
|
117
|
+
|
|
118
|
+
```markdown
|
|
119
|
+
## 🔧 バックエンドアーキテクチャ設計完了
|
|
120
|
+
|
|
121
|
+
### タスク: [機能名/API名]
|
|
122
|
+
|
|
123
|
+
### 設計結果: [✅ SUCCESS / ⚠️ PARTIAL / ❌ FAILURE]
|
|
124
|
+
|
|
125
|
+
### 設計サマリー
|
|
126
|
+
- **API数**: N個
|
|
127
|
+
- **Repository数**: M個
|
|
128
|
+
- **UseCase数**: K個
|
|
129
|
+
- **新規Entity数**: L個
|
|
130
|
+
- **テーブル数**: P個
|
|
131
|
+
|
|
132
|
+
### アーキテクチャ構造
|
|
133
|
+
```
|
|
134
|
+
[ディレクトリ構造図]
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
### 層間の依存関係
|
|
138
|
+
| 層 | 依存先 | 主なコンポーネント |
|
|
139
|
+
|---|-------|-----------------|
|
|
140
|
+
|
|
141
|
+
### デザインパターン適用
|
|
142
|
+
- **Repositoryパターン**: [適用状況]
|
|
143
|
+
- **Mapperパターン**: [適用状況]
|
|
144
|
+
- **Result型パターン**: [適用状況]
|
|
145
|
+
|
|
146
|
+
### DB設計
|
|
147
|
+
| テーブル名 | 主なカラム | インデックス |
|
|
148
|
+
|----------|----------|------------|
|
|
149
|
+
|
|
150
|
+
### API設計
|
|
151
|
+
| エンドポイント | メソッド | 説明 |
|
|
152
|
+
|--------------|--------|------|
|
|
153
|
+
|
|
154
|
+
### テスト設計方針
|
|
155
|
+
- **ユニットテスト対象**: [対象コンポーネント]
|
|
156
|
+
- **統合テスト対象**: [対象フロー]
|
|
157
|
+
|
|
158
|
+
### 技術選定
|
|
159
|
+
- **[決定1]**: [選定理由]
|
|
160
|
+
|
|
161
|
+
### 次のステップ
|
|
162
|
+
[後続処理の説明]
|
|
163
|
+
```
|
|
164
|
+
|
|
116
165
|
## 長い出力の取り扱い
|
|
117
166
|
|
|
118
167
|
出力が50行を超える場合、以下の形式で表示:
|
|
@@ -2,43 +2,43 @@
|
|
|
2
2
|
"version": 1,
|
|
3
3
|
"symlinks": [
|
|
4
4
|
{
|
|
5
|
-
"link": ".claude/skills/einja
|
|
5
|
+
"link": ".claude/skills/einja-api-development/reference/api-development.md",
|
|
6
6
|
"target": "docs/einja/steering/development/api-development.md"
|
|
7
7
|
},
|
|
8
8
|
{
|
|
9
|
-
"link": ".claude/skills/einja
|
|
9
|
+
"link": ".claude/skills/einja-backend-architecture/reference/backend-architecture.md",
|
|
10
10
|
"target": "docs/einja/steering/development/backend-architecture.md"
|
|
11
11
|
},
|
|
12
12
|
{
|
|
13
|
-
"link": ".claude/skills/einja
|
|
13
|
+
"link": ".claude/skills/einja-coding-standards/reference/commit-rules.md",
|
|
14
14
|
"target": "docs/einja/steering/commit-rules.md"
|
|
15
15
|
},
|
|
16
16
|
{
|
|
17
|
-
"link": ".claude/skills/einja
|
|
17
|
+
"link": ".claude/skills/einja-coding-standards/reference/review-guidelines.md",
|
|
18
18
|
"target": "docs/einja/steering/development/review-guidelines.md"
|
|
19
19
|
},
|
|
20
20
|
{
|
|
21
|
-
"link": ".claude/skills/einja
|
|
21
|
+
"link": ".claude/skills/einja-coding-standards/reference/testing-strategy.md",
|
|
22
22
|
"target": "docs/einja/steering/development/testing-strategy.md"
|
|
23
23
|
},
|
|
24
24
|
{
|
|
25
|
-
"link": ".claude/skills/einja
|
|
25
|
+
"link": ".claude/skills/einja-component-design/reference/frontend-development.md",
|
|
26
26
|
"target": "docs/einja/steering/development/frontend-development.md"
|
|
27
27
|
},
|
|
28
28
|
{
|
|
29
|
-
"link": ".claude/skills/einja
|
|
29
|
+
"link": ".claude/skills/einja-component-design/reference/testing-strategy.md",
|
|
30
30
|
"target": "docs/einja/steering/development/testing-strategy.md"
|
|
31
31
|
},
|
|
32
32
|
{
|
|
33
|
-
"link": ".claude/skills/einja
|
|
33
|
+
"link": ".claude/skills/einja-frontend-development/reference/frontend-development.md",
|
|
34
34
|
"target": "docs/einja/steering/development/frontend-development.md"
|
|
35
35
|
},
|
|
36
36
|
{
|
|
37
|
-
"link": ".claude/skills/einja
|
|
37
|
+
"link": ".claude/skills/einja-task-commit/reference/commit-rules.md",
|
|
38
38
|
"target": "docs/einja/steering/commit-rules.md"
|
|
39
39
|
},
|
|
40
40
|
{
|
|
41
|
-
"link": ".claude/skills/einja
|
|
41
|
+
"link": ".claude/skills/einja-task-qa/reference/acceptance-criteria-and-qa-guide.md",
|
|
42
42
|
"target": "docs/einja/steering/acceptance-criteria-and-qa-guide.md"
|
|
43
43
|
}
|
|
44
44
|
]
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
name: default
|
|
2
|
+
displayName: "Einja ATDD Workflow"
|
|
3
|
+
description: "ATDDワークフロー構成(Next.js、Vibe-Kanban統合)"
|
|
4
|
+
version: "1.0.0"
|
|
5
|
+
|
|
6
|
+
# 変数定義(ユーザーがカスタマイズ可能)
|
|
7
|
+
variables:
|
|
8
|
+
# CLAUDE.mdテンプレート用
|
|
9
|
+
PROJECT_NAME: "my-project"
|
|
10
|
+
INSTALL_COMMAND: "pnpm install"
|
|
11
|
+
DEV_COMMAND: "pnpm dev"
|
|
12
|
+
START_COMMAND: "pnpm start"
|
|
13
|
+
FORMAT_COMMAND: "pnpm format"
|
|
14
|
+
# 既存の変数
|
|
15
|
+
BUILD_COMMAND: "pnpm build"
|
|
16
|
+
TEST_COMMAND: "pnpm test"
|
|
17
|
+
LINT_COMMAND: "pnpm lint"
|
|
18
|
+
TYPE_CHECK_COMMAND: "pnpm typecheck"
|
|
19
|
+
PROJECT_STRUCTURE: |
|
|
20
|
+
src/ # ソースコード
|
|
21
|
+
tests/ # テストコード
|
|
22
|
+
CODING_STANDARDS_PATH: "README.md"
|
|
23
|
+
MCP_TOOLS: |
|
|
24
|
+
- Serena MCP: コード分析・編集
|
|
25
|
+
- Playwright MCP: ブラウザテスト
|
|
26
|
+
- GitHub MCP: Issue・PR操作
|
|
27
|
+
- Vibe-Kanban MCP: タスク自動化
|
|
28
|
+
|
|
29
|
+
# MCP設定
|
|
30
|
+
mcpServers:
|
|
31
|
+
- codex
|
|
32
|
+
- context7
|
|
33
|
+
- playwright
|
|
34
|
+
- serena
|
|
35
|
+
- github
|
|
36
|
+
- vibe_kanban
|
|
37
|
+
|
|
38
|
+
# 追加パーミッション
|
|
39
|
+
additionalPermissions:
|
|
40
|
+
- "Bash(npm:*)"
|
|
41
|
+
- "Bash(pnpm:*)"
|
|
42
|
+
- "Bash(npx:*)"
|
|
43
|
+
- "Bash(node:*)"
|
|
44
|
+
- "Bash(yarn:*)"
|
|
45
|
+
- "Bash(bun:*)"
|
|
46
|
+
- "Bash(python3:*)"
|
|
47
|
+
- "Bash(curl:*)"
|
|
48
|
+
- "Bash(wget:*)"
|
|
49
|
+
- "Bash(unzip:*)"
|
|
50
|
+
- "Bash(docker-compose :*)"
|
|
51
|
+
- "Bash(jq:*)"
|
|
52
|
+
- "mcp__codex__codex"
|
|
53
|
+
- "mcp__github__get_pull_request"
|
|
54
|
+
- "mcp__github__get_pull_request_files"
|
|
55
|
+
- "mcp__github__update_pull_request"
|
|
56
|
+
- "mcp__github__list_commits"
|
|
57
|
+
- "mcp__github__get_commit"
|
|
58
|
+
- "mcp__github__get_file_contents"
|
|
59
|
+
- "mcp__github__search_code"
|
|
60
|
+
- "mcp__playwright"
|
|
61
|
+
- "mcp__playwright__browser_navigate"
|
|
62
|
+
- "mcp__playwright__browser_click"
|
|
63
|
+
- "mcp__playwright__browser_wait_for"
|
|
64
|
+
- "mcp__playwright__browser_evaluate"
|
|
65
|
+
- "mcp__playwright__browser_snapshot"
|
|
66
|
+
- "mcp__playwright__browser_console_messages"
|
|
67
|
+
- "mcp__playwright__browser_handle_dialog"
|
|
68
|
+
- "mcp__playwright__browser_type"
|
|
69
|
+
- "mcp__serena"
|
|
70
|
+
- "mcp__serena__activate_project"
|
|
71
|
+
- "mcp__serena__check_onboarding_performed"
|
|
72
|
+
- "mcp__serena__find_file"
|
|
73
|
+
- "mcp__serena__find_referencing_symbols"
|
|
74
|
+
- "mcp__serena__find_symbol"
|
|
75
|
+
- "mcp__serena__get_symbols_overview"
|
|
76
|
+
- "mcp__serena__insert_before_symbol"
|
|
77
|
+
- "mcp__serena__list_dir"
|
|
78
|
+
- "mcp__serena__replace_symbol_body"
|
|
79
|
+
- "mcp__serena__search_for_pattern"
|
|
80
|
+
- "mcp__serena__think_about_collected_information"
|
|
81
|
+
- "mcp__serena__think_about_whether_you_are_done"
|
|
82
|
+
- "Bash(test:*)"
|
|
83
|
+
- "mcp__vibe_kanban__list_projects"
|
|
84
|
+
- "mcp__vibe_kanban__list_tasks"
|
|
85
|
+
- "mcp__vibe_kanban__get_task"
|
|
86
|
+
- "mcp__vibe_kanban__create_task"
|
|
87
|
+
- "mcp__vibe_kanban__update_task"
|
|
88
|
+
- "mcp__vibe_kanban__delete_task"
|
|
89
|
+
- "mcp__vibe_kanban__start_task_attempt"
|
|
90
|
+
- "Bash(gh pr view:*)"
|
|
91
|
+
- "Bash(gh pr close:*)"
|
|
92
|
+
- "Bash(gh pr create:*)"
|
|
93
|
+
- "Bash(gh pr list:*)"
|
|
94
|
+
- "Bash(tree:*)"
|
|
95
|
+
- "Bash(bash:*)"
|
|
96
|
+
- "Bash(./verify.sh:*)"
|
|
97
|
+
- "Bash(gh issue create:*)"
|
|
98
|
+
- "Skill(task-exec)"
|
|
99
|
+
- "Skill(task-qa)"
|
|
100
|
+
|
|
101
|
+
# 追加エージェント
|
|
102
|
+
additionalAgents:
|
|
103
|
+
- frontend-architect
|
|
104
|
+
- design-engineer
|
|
105
|
+
- frontend-coder
|
|
106
|
+
|
|
107
|
+
# 追加コマンド
|
|
108
|
+
additionalCommands:
|
|
109
|
+
- frontend-implement
|
|
110
|
+
- start-dev
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# 実装例ディレクトリ
|
|
2
|
+
|
|
3
|
+
このディレクトリには、完全に実装されたタスクの例が含まれています。
|
|
4
|
+
|
|
5
|
+
## 収録例
|
|
6
|
+
|
|
7
|
+
### issue999-example-task: マジックリンク認証機能
|
|
8
|
+
|
|
9
|
+
**学習ポイント**:
|
|
10
|
+
- 包括的な要件定義(requirements.md)
|
|
11
|
+
- AC 番号体系と検証レベルの使い方
|
|
12
|
+
- 詳細な設計書(design.md)
|
|
13
|
+
- 段階的なタスク分解(tasks.md)
|
|
14
|
+
- Integration/E2E テストを含む QA 仕様書(qa-tests/)
|
|
15
|
+
|
|
16
|
+
## 活用方法
|
|
17
|
+
|
|
18
|
+
### 1. 全体の流れを理解する
|
|
19
|
+
- requirements.md → design.md → tasks.md → qa-tests/ の順で読む
|
|
20
|
+
- 各フェーズでどのような内容を記述すべきか確認
|
|
21
|
+
|
|
22
|
+
### 2. テンプレート記述の参考にする
|
|
23
|
+
- `../templates/` のテンプレートと照らし合わせる
|
|
24
|
+
- 各セクションの具体的な記述例を確認
|
|
25
|
+
|
|
26
|
+
### 3. QA 仕様書の構造を理解する
|
|
27
|
+
- qa-tests/phaseN/X-Y.md の形式を確認
|
|
28
|
+
- 失敗時の報告方法を参考にする
|
|
29
|
+
|
|
30
|
+
## 次のステップ
|
|
31
|
+
|
|
32
|
+
実装例を確認したら:
|
|
33
|
+
1. [テンプレート](../templates/) を使用して新規タスクを作成
|
|
34
|
+
2. task-exec コマンドで自動化されたワークフローを実行
|
|
35
|
+
3. [受け入れ基準とQAガイド](../steering/acceptance-criteria-and-qa-guide.md) で詳細を確認
|