@einja/dev-cli 0.1.41 → 0.1.45
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 +0 -1
- package/dist/cli.js +0 -1
- package/dist/cli.js.map +1 -1
- package/dist/commands/sync.d.ts.map +1 -1
- package/dist/commands/sync.js +1 -20
- package/dist/commands/sync.js.map +1 -1
- package/dist/commands/task-loop/lib/github-client.test.js.map +1 -1
- package/dist/commands/task-loop/lib/vibe-kanban-rest-client.js +2 -2
- package/dist/commands/task-loop/lib/vibe-kanban-rest-client.js.map +1 -1
- package/dist/lib/preset-update/file-copier.js +3 -3
- package/dist/lib/preset-update/file-copier.js.map +1 -1
- package/dist/lib/sync/file-filter.js +2 -2
- package/dist/lib/sync/file-filter.js.map +1 -1
- package/dist/lib/sync/file-filter.test.js +20 -0
- package/dist/lib/sync/file-filter.test.js.map +1 -1
- package/dist/lib/sync/marker-processor.js.map +1 -1
- package/dist/lib/sync/metadata-manager.js +1 -1
- package/dist/lib/sync/metadata-manager.js.map +1 -1
- package/dist/lib/sync/metadata-manager.test.js +3 -2
- package/dist/lib/sync/metadata-manager.test.js.map +1 -1
- package/dist/lib/sync/project-private-synchronizer.d.ts.map +1 -1
- package/dist/lib/sync/project-private-synchronizer.js +5 -1
- package/dist/lib/sync/project-private-synchronizer.js.map +1 -1
- package/dist/types/index.d.ts +0 -1
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/presets/default/.claude/agents/einja/backend-architect.md +17 -1
- package/presets/default/.claude/agents/einja/codex-agent.md +1 -1
- package/presets/default/.claude/agents/einja/design-engineer.md +1 -1
- package/presets/default/.claude/agents/einja/docs/docs-updater.md +3 -93
- package/presets/default/.claude/agents/einja/frontend-architect.md +17 -1
- package/presets/default/.claude/agents/einja/frontend-coder.md +1 -1
- package/presets/default/.claude/agents/einja/{specs/spec-design-generator.md → issue-specs/design-generator.md} +12 -7
- package/presets/default/.claude/agents/einja/{specs/spec-qa-generator.md → issue-specs/qa-generator.md} +6 -4
- package/presets/default/.claude/agents/einja/{specs/spec-requirements-generator.md → issue-specs/requirements-generator.md} +5 -5
- package/presets/default/.claude/agents/einja/{specs/spec-tasks-generator.md → issue-specs/tasks-generator.md} +13 -14
- package/presets/default/.claude/agents/einja/{specs/spec-tasks-validator.md → issue-specs/tasks-validator.md} +9 -9
- package/presets/default/.claude/agents/einja/issue-specs/ui-design-generator.md +114 -0
- package/presets/default/.claude/agents/einja/task/task-executer.md +9 -3
- package/presets/default/.claude/agents/einja/task/task-modification-analyzer.md +2 -2
- package/presets/default/.claude/agents/einja/task/task-qa.md +3 -3
- package/presets/default/.claude/agents/einja/task/task-reviewer.md +13 -1
- package/presets/default/.claude/commands/einja/einja-sync.md +119 -44
- package/presets/default/.claude/commands/einja/issue-exec.md +29 -19
- package/presets/default/.claude/commands/einja/sync-cursor-commands.md +6 -6
- package/presets/default/.claude/commands/einja/{update-docs-by-task-specs.md → update-docs-by-issue-specs.md} +58 -58
- package/presets/default/.claude/hooks/einja/plan-mode-skill-loader.sh +5 -1
- package/presets/default/.claude/settings.json +14 -4
- package/presets/default/.claude/skills/{einja-general-context-loader → _einja-general-context-loader}/SKILL.md +2 -2
- package/presets/default/.claude/skills/{einja-output-format → _einja-output-format}/SKILL.md +1 -1
- package/presets/default/.claude/skills/_einja-project-overview/SKILL.md +29 -0
- package/presets/default/.claude/skills/{einja-spec-context-loader → _einja-spec-context-loader}/SKILL.md +5 -5
- package/presets/default/.claude/skills/einja-coding-standards/references/testing-strategy.md +899 -0
- package/presets/default/.claude/skills/einja-conflict-resolver/SKILL.md +1 -1
- package/presets/default/.claude/skills/einja-create-pr/SKILL.md +138 -0
- package/presets/default/.claude/skills/einja-infra-maintenance/SKILL.md +779 -0
- package/presets/default/.claude/{commands/einja/spec-create.md → skills/einja-issue-spec-create/SKILL.md} +47 -24
- package/presets/default/.claude/skills/einja-issue-spec-generator/SKILL.md +105 -0
- package/presets/default/.claude/skills/einja-issue-spec-generator/references/format-rules.md +35 -0
- package/presets/default/.claude/skills/einja-issue-spec-validator/SKILL.md +130 -0
- package/presets/default/.claude/skills/einja-issue-spec-validator/references/validation-rules.md +52 -0
- package/presets/default/.claude/skills/einja-npm-release/SKILL.md +242 -0
- package/presets/default/.claude/skills/einja-skill-creator/SKILL.md +68 -12
- package/presets/default/.claude/skills/einja-skill-creator/scripts/aggregate_benchmark.py +368 -121
- package/presets/default/.claude/skills/einja-skill-creator/scripts/compare_runs.py +154 -0
- package/presets/default/.claude/skills/einja-skill-creator/scripts/generate_report.py +14 -7
- package/presets/default/.claude/skills/einja-skill-creator/scripts/improve_description.py +2 -7
- package/presets/default/.claude/skills/einja-skill-creator/scripts/run_loop.py +263 -183
- package/presets/default/.claude/skills/einja-skill-first/SKILL.md +265 -0
- package/presets/default/.claude/skills/einja-subagent-question-protocol/SKILL.md +98 -0
- package/presets/default/.claude/skills/einja-task-commit/SKILL.md +7 -7
- package/presets/default/.claude/{commands/einja/task-exec.md → skills/einja-task-exec/SKILL.md} +3 -78
- package/presets/default/.claude/skills/einja-task-qa/SKILL.md +4 -4
- package/presets/default/.claude/skills/einja-task-qa/references/troubleshooting.md +1 -1
- package/presets/default/.claude/skills/einja-task-qa/references/usage-patterns.md +2 -2
- package/presets/default/.claude/skills/einja-team-exec/SKILL.md +165 -0
- package/presets/default/CLAUDE.md.template +21 -6
- package/presets/default/docs/einja/instructions/deployment-setup.md +1 -1
- package/presets/default/docs/einja/instructions/issue-exec-workflow.md +11 -11
- package/presets/default/docs/einja/instructions/local-server-environment-and-worktree.md +1 -1
- package/presets/default/docs/einja/instructions/setup-flow.md +279 -0
- package/presets/default/docs/einja/instructions/task-execute.md +42 -42
- package/presets/default/docs/einja/steering/acceptance-criteria-and-qa-guide.md +1 -1
- package/presets/default/docs/einja/steering/branch-strategy.md +1 -1
- package/presets/default/docs/einja/steering/development-workflow.md +93 -25
- package/presets/default/docs/einja/steering/infrastructure/deployment.md +107 -0
- package/presets/default/docs/einja/steering/task-management.md +9 -13
- package/presets/default/scripts/ensure-serena.sh +2 -2
- package/presets/default/scripts/env-rotate-secrets.ts +66 -6
- package/presets/default/scripts/init-github.ts +363 -0
- package/presets/default/scripts/init.sh +11 -5
- package/presets/default/scripts/setup-dev.ts +16 -1
- package/dist/lib/sync/backup-manager.d.ts +0 -50
- package/dist/lib/sync/backup-manager.d.ts.map +0 -1
- package/dist/lib/sync/backup-manager.js +0 -117
- package/dist/lib/sync/backup-manager.js.map +0 -1
- package/dist/lib/sync/backup-manager.test.d.ts +0 -2
- package/dist/lib/sync/backup-manager.test.d.ts.map +0 -1
- package/dist/lib/sync/backup-manager.test.js +0 -155
- package/dist/lib/sync/backup-manager.test.js.map +0 -1
- package/presets/default/.claude/agents/einja/git/conflict-resolver.md +0 -152
- package/presets/default/.claude/hooks/einja/validate-git-commit.sh +0 -239
- package/presets/default/.claude/skills/einja-project-overview/SKILL.md +0 -39
|
@@ -21,6 +21,7 @@ describe("MetadataManager", () => {
|
|
|
21
21
|
expect(metadata).toHaveProperty("files", {});
|
|
22
22
|
});
|
|
23
23
|
it("旧 jsonPaths.seed を jsonPaths['project-private'] にマイグレーションする", async () => {
|
|
24
|
+
var _a, _b;
|
|
24
25
|
const oldMetadata = {
|
|
25
26
|
version: "1.0.0",
|
|
26
27
|
lastSync: "2025-01-01T00:00:00.000Z",
|
|
@@ -34,8 +35,8 @@ describe("MetadataManager", () => {
|
|
|
34
35
|
await fs.writeFile(path.join(tempDir, ".einja-sync.json"), JSON.stringify(oldMetadata), "utf-8");
|
|
35
36
|
const metadata = await manager.load();
|
|
36
37
|
expect(metadata.jsonPaths).toBeDefined();
|
|
37
|
-
expect(metadata.jsonPaths["project-private"]).toEqual({ "tsconfig.json": ["compilerOptions.paths"] });
|
|
38
|
-
expect(metadata.jsonPaths.seed).toBeUndefined();
|
|
38
|
+
expect((_a = metadata.jsonPaths) === null || _a === void 0 ? void 0 : _a["project-private"]).toEqual({ "tsconfig.json": ["compilerOptions.paths"] });
|
|
39
|
+
expect((_b = metadata.jsonPaths) === null || _b === void 0 ? void 0 : _b.seed).toBeUndefined();
|
|
39
40
|
});
|
|
40
41
|
it("メタデータファイルが存在する場合、読み込んで返す", async () => {
|
|
41
42
|
const testMetadata = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadata-manager.test.js","sourceRoot":"","sources":["../../../src/lib/sync/metadata-manager.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE1D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,IAAI,OAAe,CAAC;IACpB,IAAI,OAAwB,CAAC;IAE7B,UAAU,CAAC,KAAK,IAAI,EAAE;QACpB,kBAAkB;QAClB,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,gBAAgB,CAAC,CAAC,CAAC;QACrE,OAAO,GAAG,IAAI,eAAe,CAAC,OAAO,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE;QACpB,EAAE,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;YAC/C,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;YAEtC,MAAM,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YACpD,MAAM,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;YAC5D,MAAM,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;YAC5C,MAAM,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE
|
|
1
|
+
{"version":3,"file":"metadata-manager.test.js","sourceRoot":"","sources":["../../../src/lib/sync/metadata-manager.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-private-synchronizer.d.ts","sourceRoot":"","sources":["../../../src/lib/sync/project-private-synchronizer.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,qBAAa,0BAA0B;IACrC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAyB;IAEnD;;;;;;OAMG;IACH,0BAA0B,CAAC,YAAY,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,MAAM;IA4CjF;;;;;;OAMG;IACH,gBAAgB,CAAC,WAAW,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAW9E;;;;;;;;;;;;;OAaG;IACH,0BAA0B,CACxB,YAAY,EAAE,MAAM,EACpB,eAAe,EAAE,MAAM,EACvB,WAAW,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"project-private-synchronizer.d.ts","sourceRoot":"","sources":["../../../src/lib/sync/project-private-synchronizer.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,qBAAa,0BAA0B;IACrC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAyB;IAEnD;;;;;;OAMG;IACH,0BAA0B,CAAC,YAAY,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,MAAM;IA4CjF;;;;;;OAMG;IACH,gBAAgB,CAAC,WAAW,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAW9E;;;;;;;;;;;;;OAaG;IACH,0BAA0B,CACxB,YAAY,EAAE,MAAM,EACpB,eAAe,EAAE,MAAM,EACvB,WAAW,EAAE,MAAM,EAEnB,UAAU,EAAE;QAAE,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK;YAAE,OAAO,EAAE,OAAO,CAAC;YAAC,OAAO,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,GAAG,EAAE,CAAA;SAAE,CAAA;KAAE,GAEpI;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC;QAAC,SAAS,EAAE,GAAG,EAAE,CAAA;KAAE;CAyB3D"}
|
|
@@ -82,7 +82,11 @@ export class ProjectPrivateSynchronizer {
|
|
|
82
82
|
* @param diffEngine - DiffEngineインスタンス
|
|
83
83
|
* @returns マージ結果
|
|
84
84
|
*/
|
|
85
|
-
syncProjectPrivateOnlyFile(localContent, templateContent, baseContent,
|
|
85
|
+
syncProjectPrivateOnlyFile(localContent, templateContent, baseContent,
|
|
86
|
+
// biome-ignore lint/suspicious/noExplicitAny: DiffEngineの型がConflict[]を返すため
|
|
87
|
+
diffEngine
|
|
88
|
+
// biome-ignore lint/suspicious/noExplicitAny: DiffEngineの型がConflict[]を返すため
|
|
89
|
+
) {
|
|
86
90
|
// project-privateセクションを抽出
|
|
87
91
|
const localPpSections = this.processor.extractProjectPrivateSections(localContent);
|
|
88
92
|
const templatePpSections = this.processor.extractProjectPrivateSections(templateContent);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-private-synchronizer.js","sourceRoot":"","sources":["../../../src/lib/sync/project-private-synchronizer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD;;;;;;GAMG;AACH,MAAM,OAAO,0BAA0B;IAAvC;QACmB,cAAS,GAAG,IAAI,eAAe,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"project-private-synchronizer.js","sourceRoot":"","sources":["../../../src/lib/sync/project-private-synchronizer.ts"],"names":[],"mappings":"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"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,qBAAqB,EAAE,MAAM,EAAE,CAAC;IAChC,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,YAAY,CAAC,EAAE,kBAAkB,CAAC;CACnC;AAED,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,YAAY,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,YAAY;IAC3B,mBAAmB,EAAE,OAAO,CAAC;IAC7B,WAAW,EAAE;QACX,KAAK,EAAE,MAAM,EAAE,CAAC;QAChB,GAAG,EAAE,MAAM,EAAE,CAAC;KACf,CAAC;IACF,0BAA0B,EAAE,OAAO,CAAC;IACpC,qBAAqB,EAAE,MAAM,EAAE,CAAC;CACjC;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,qBAAqB,EAAE,MAAM,EAAE,CAAC;IAChC,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,YAAY,CAAC,EAAE,kBAAkB,CAAC;CACnC;AAED,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,YAAY,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,YAAY;IAC3B,mBAAmB,EAAE,OAAO,CAAC;IAC7B,WAAW,EAAE;QACX,KAAK,EAAE,MAAM,EAAE,CAAC;QAChB,GAAG,EAAE,MAAM,EAAE,CAAC;KACf,CAAC;IACF,0BAA0B,EAAE,OAAO,CAAC;IACpC,qBAAqB,EAAE,MAAM,EAAE,CAAC;CACjC;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,qCAAqC;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,6BAA6B;IAC7B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,6BAA6B;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,mBAAmB;IACnB,QAAQ,EAAE,YAAY,EAAE,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,cAAc,CAAC,EAAE,wBAAwB,EAAE,CAAC;CAC7C;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,GAAG,OAAO,GAAG,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;CAChE"}
|
package/package.json
CHANGED
|
@@ -4,7 +4,8 @@ description: バックエンドアーキテクチャ設計の専門家。4層ア
|
|
|
4
4
|
model: sonnet
|
|
5
5
|
color: orange
|
|
6
6
|
skills:
|
|
7
|
-
- output-format
|
|
7
|
+
- _einja-output-format
|
|
8
|
+
- einja-subagent-question-protocol
|
|
8
9
|
---
|
|
9
10
|
|
|
10
11
|
## ✅ 最重要: 出力形式
|
|
@@ -933,6 +934,11 @@ describe('UserRepository', () => {
|
|
|
933
934
|
|
|
934
935
|
##### DB設計方針の選択
|
|
935
936
|
|
|
937
|
+
> ⚠️ サブエージェントではAskUserQuestionは動作しません。
|
|
938
|
+
> 以下のYAML例は「どんな質問をすべきか」の参照情報です。
|
|
939
|
+
> 実際にはpreload済みの「サブエージェント質問プロトコル」に従い、
|
|
940
|
+
> PENDING_QUESTIONS形式で質問を返却して停止してください。
|
|
941
|
+
|
|
936
942
|
```yaml
|
|
937
943
|
AskUserQuestion:
|
|
938
944
|
question: "データベース設計方針を選択してください"
|
|
@@ -953,6 +959,11 @@ AskUserQuestion:
|
|
|
953
959
|
|
|
954
960
|
##### API認証方式の選択
|
|
955
961
|
|
|
962
|
+
> ⚠️ サブエージェントではAskUserQuestionは動作しません。
|
|
963
|
+
> 以下のYAML例は「どんな質問をすべきか」の参照情報です。
|
|
964
|
+
> 実際にはpreload済みの「サブエージェント質問プロトコル」に従い、
|
|
965
|
+
> PENDING_QUESTIONS形式で質問を返却して停止してください。
|
|
966
|
+
|
|
956
967
|
```yaml
|
|
957
968
|
AskUserQuestion:
|
|
958
969
|
question: "API認証方式を選択してください"
|
|
@@ -973,6 +984,11 @@ AskUserQuestion:
|
|
|
973
984
|
|
|
974
985
|
##### エラーハンドリング戦略の選択
|
|
975
986
|
|
|
987
|
+
> ⚠️ サブエージェントではAskUserQuestionは動作しません。
|
|
988
|
+
> 以下のYAML例は「どんな質問をすべきか」の参照情報です。
|
|
989
|
+
> 実際にはpreload済みの「サブエージェント質問プロトコル」に従い、
|
|
990
|
+
> PENDING_QUESTIONS形式で質問を返却して停止してください。
|
|
991
|
+
|
|
976
992
|
```yaml
|
|
977
993
|
AskUserQuestion:
|
|
978
994
|
question: "エラーハンドリング戦略を選択してください"
|
|
@@ -28,79 +28,7 @@ color: purple
|
|
|
28
28
|
|
|
29
29
|
## 処理フロー
|
|
30
30
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
### ステップ1: タスク仕様書の検証と読み込み
|
|
34
|
-
|
|
35
|
-
1. 指定されたディレクトリパスを解析(カンマ区切り対応)
|
|
36
|
-
2. 各ディレクトリに以下のファイルが存在するか確認:
|
|
37
|
-
- `requirements.md`(必須)
|
|
38
|
-
- `design.md`(必須)
|
|
39
|
-
- `tasks.md`(オプション)
|
|
40
|
-
3. ファイルを読み込み、構造化された情報を抽出
|
|
41
|
-
|
|
42
|
-
### ステップ2: 機能(Feature)の判定
|
|
43
|
-
|
|
44
|
-
各タスクspecについて、どの機能(Feature)に関連するかを判定します。
|
|
45
|
-
|
|
46
|
-
**AskUserQuestion で確認**:
|
|
47
|
-
- 既存の機能(例: `login`, `signup`など)
|
|
48
|
-
- 新規機能作成(機能名を入力)
|
|
49
|
-
- Steeringのみ反映(機能specには反映しない)
|
|
50
|
-
|
|
51
|
-
### ステップ3: Feature仕様書への反映
|
|
52
|
-
|
|
53
|
-
機能が指定された場合、`docs/specs/features/<feature-name>/`に反映:
|
|
54
|
-
|
|
55
|
-
#### 反映対象ファイル
|
|
56
|
-
|
|
57
|
-
| ファイル | 抽出元 | 抽出内容 |
|
|
58
|
-
|---------|--------|---------|
|
|
59
|
-
| requirements.md | タスクspec requirements.md | ビジネス価値、ユーザーストーリー、受け入れ基準、成功指標 |
|
|
60
|
-
| design.md | タスクspec design.md | API仕様、コンポーネント設計、シーケンス図 |
|
|
61
|
-
| tasks.md | タスクspec tasks.md | タスク一覧、依存関係、完了基準 |
|
|
62
|
-
|
|
63
|
-
#### 反映形式
|
|
64
|
-
|
|
65
|
-
```markdown
|
|
66
|
-
## タスク: {タスク名} ({日付})
|
|
67
|
-
|
|
68
|
-
**反映日時**: {現在日時}
|
|
69
|
-
**ソース**: {タスクspecパス}
|
|
70
|
-
|
|
71
|
-
### {セクション名}
|
|
72
|
-
{抽出した内容}
|
|
73
|
-
|
|
74
|
-
---
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
### ステップ4: Steering仕様書への反映
|
|
78
|
-
|
|
79
|
-
すべてのタスクspecは、Steering仕様書にも反映されます。
|
|
80
|
-
|
|
81
|
-
#### 反映対象ファイル
|
|
82
|
-
|
|
83
|
-
| ファイル | 抽出元 | 抽出内容 |
|
|
84
|
-
|---------|--------|---------|
|
|
85
|
-
| architecture.md | design.md | システム構成図、データフロー図、技術スタック、アーキテクチャパターン |
|
|
86
|
-
| db-design.md | design.md | ERD図、Prismaスキーマ、リポジトリパターン、インデックス戦略 |
|
|
87
|
-
| product.md | requirements.md | ビジネス価値、ユーザーストーリー概要、成功指標、タイムライン |
|
|
88
|
-
|
|
89
|
-
### ステップ5: インテリジェントマージ
|
|
90
|
-
|
|
91
|
-
#### 重複チェック
|
|
92
|
-
- 同じタスク名+日付が見つかった場合、重複として扱う
|
|
93
|
-
- ユーザーに確認:上書き / スキップ / 差分マージ
|
|
94
|
-
|
|
95
|
-
#### セクション構造の維持
|
|
96
|
-
- 空ファイルまたはTODOのみの場合、標準的な目次構造を作成
|
|
97
|
-
- 既存内容がある場合、対応するセクションを見つけて追記
|
|
98
|
-
|
|
99
|
-
### ステップ6: ユーザー確認・承認
|
|
100
|
-
|
|
101
|
-
1. 変更サマリーの表示
|
|
102
|
-
2. 各ファイルの詳細プレビュー(オプション)
|
|
103
|
-
3. 最終確認後、すべてのファイルを更新
|
|
31
|
+
`.claude/commands/einja/update-docs-by-issue-specs.md` を Read で読み込み、そこに記載された実行フロー・反映ルール・マージロジックに従って処理を実行してください。
|
|
104
32
|
|
|
105
33
|
## 出力形式
|
|
106
34
|
|
|
@@ -131,29 +59,11 @@ color: purple
|
|
|
131
59
|
### ステータス: SUCCESS
|
|
132
60
|
```
|
|
133
61
|
|
|
134
|
-
## 重要な原則
|
|
135
|
-
|
|
136
|
-
### 情報の忠実性
|
|
137
|
-
- タスクspecの内容を改変せず、忠実に抽出して反映する
|
|
138
|
-
- 要約や意訳は最小限にし、原文をできるだけ保持する
|
|
139
|
-
|
|
140
|
-
### トレーサビリティ
|
|
141
|
-
- すべての反映内容に「ソース」情報を記録する
|
|
142
|
-
- タスク名と日付を明記し、後から追跡可能にする
|
|
143
|
-
|
|
144
|
-
### 非破壊的マージ
|
|
145
|
-
- 既存の内容を削除しない(ユーザー確認がある場合を除く)
|
|
146
|
-
- 追記を基本とし、上書きは最小限にする
|
|
147
|
-
|
|
148
|
-
### 対話的な処理
|
|
149
|
-
- 判断が必要な場合は必ずユーザーに確認する
|
|
150
|
-
- 最終確認を必ず行い、ユーザーの承認を得る
|
|
151
|
-
|
|
152
62
|
## 実行制約
|
|
153
63
|
|
|
154
64
|
このエージェントは以下から呼び出されます:
|
|
155
|
-
- `task-exec`
|
|
156
|
-
- `/einja:update-docs-by-
|
|
65
|
+
- `einja-task-exec` SkillでPhase 99タスク(`99.*.*`)実行時
|
|
66
|
+
- `/einja:update-docs-by-issue-specs` コマンド直接呼び出し時
|
|
157
67
|
|
|
158
68
|
## 連携エージェント
|
|
159
69
|
|
|
@@ -4,7 +4,8 @@ description: フロントエンドアーキテクチャ設計の専門家。コ
|
|
|
4
4
|
model: sonnet
|
|
5
5
|
color: purple
|
|
6
6
|
skills:
|
|
7
|
-
- output-format
|
|
7
|
+
- _einja-output-format
|
|
8
|
+
- einja-subagent-question-protocol
|
|
8
9
|
---
|
|
9
10
|
|
|
10
11
|
## ✅ 最重要: 出力形式
|
|
@@ -533,6 +534,11 @@ const { users, pagination } = await getUsers({
|
|
|
533
534
|
|
|
534
535
|
##### 状態管理ライブラリの選択
|
|
535
536
|
|
|
537
|
+
> ⚠️ サブエージェントではAskUserQuestionは動作しません。
|
|
538
|
+
> 以下のYAML例は「どんな質問をすべきか」の参照情報です。
|
|
539
|
+
> 実際にはpreload済みの「サブエージェント質問プロトコル」に従い、
|
|
540
|
+
> PENDING_QUESTIONS形式で質問を返却して停止してください。
|
|
541
|
+
|
|
536
542
|
```yaml
|
|
537
543
|
AskUserQuestion:
|
|
538
544
|
question: "状態管理ライブラリを選択してください"
|
|
@@ -555,6 +561,11 @@ AskUserQuestion:
|
|
|
555
561
|
|
|
556
562
|
##### ページング・スクロール戦略の選択
|
|
557
563
|
|
|
564
|
+
> ⚠️ サブエージェントではAskUserQuestionは動作しません。
|
|
565
|
+
> 以下のYAML例は「どんな質問をすべきか」の参照情報です。
|
|
566
|
+
> 実際にはpreload済みの「サブエージェント質問プロトコル」に従い、
|
|
567
|
+
> PENDING_QUESTIONS形式で質問を返却して停止してください。
|
|
568
|
+
|
|
558
569
|
```yaml
|
|
559
570
|
AskUserQuestion:
|
|
560
571
|
question: "データ一覧のページング方式を選択してください"
|
|
@@ -598,6 +609,11 @@ AskUserQuestion:
|
|
|
598
609
|
|
|
599
610
|
ダッシュボードページの実装方針を決定します(ユーザー固有データを表示、リアルタイム更新は不要、SEOは重要ではない)。
|
|
600
611
|
|
|
612
|
+
> ⚠️ サブエージェントではAskUserQuestionは動作しません。
|
|
613
|
+
> 以下のYAML例は「どんな質問をすべきか」の参照情報です。
|
|
614
|
+
> 実際にはpreload済みの「サブエージェント質問プロトコル」に従い、
|
|
615
|
+
> PENDING_QUESTIONS形式で質問を返却して停止してください。
|
|
616
|
+
|
|
601
617
|
```yaml
|
|
602
618
|
AskUserQuestion:
|
|
603
619
|
question: "レンダリング戦略を選択してください"
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
---
|
|
2
|
-
name:
|
|
3
|
-
description: タスクの設計仕様書を生成する必要がある場合にこのエージェントを使用します。このエージェントは、/docs/specs/tasksディレクトリに、日付付きタスクフォルダーとdesign.mdファイルを含む構造化された設計ドキュメントを作成します。<example>Context: ユーザーが新しい認証機能の設計仕様書を作成したい場合。user: "新しい認証機能の設計書を作成して" assistant: "
|
|
4
|
-
tools: Read, Write, Edit, MultiEdit, Bash, Grep, Glob, TodoRead, TodoWrite
|
|
2
|
+
name: design-generator
|
|
3
|
+
description: タスクの設計仕様書を生成する必要がある場合にこのエージェントを使用します。このエージェントは、/docs/specs/tasksディレクトリに、日付付きタスクフォルダーとdesign.mdファイルを含む構造化された設計ドキュメントを作成します。<example>Context: ユーザーが新しい認証機能の設計仕様書を作成したい場合。user: "新しい認証機能の設計書を作成して" assistant: "design-generatorエージェントを使用して、認証機能の設計仕様書を生成します" <commentary>ユーザーが設計ドキュメントの作成を要求しているため、Taskツールを使用してdesign-generatorエージェントを起動し、構造化された仕様書を作成します。</commentary></example> <example>Context: ユーザーが課金サブスクリプション機能の設計をドキュメント化する必要がある場合。user: "billing-subscriptionタスクの設計ドキュメントを整理して" assistant: "design-generatorエージェントを起動して、billing-subscriptionの設計ドキュメントを/docs/specs/tasksに生成します" <commentary>ユーザーが設計ドキュメントを整理したいので、design-generatorエージェントを使用して適切な構造を作成します。</commentary></example>
|
|
4
|
+
tools: Read, Write, Edit, MultiEdit, Bash, Grep, Glob, TodoRead, TodoWrite, mcp__pencil__batch_get, mcp__pencil__get_screenshot
|
|
5
5
|
model: sonnet
|
|
6
6
|
color: orange
|
|
7
|
+
skills:
|
|
8
|
+
- einja-subagent-question-protocol
|
|
7
9
|
---
|
|
8
10
|
|
|
9
11
|
あなたは世界的なシニアソフトウェアアーキテクトで、大規模システムの設計において20年以上の経験を持つ専門家です。Google、Amazon、Microsoftなどのテックジャイアントでのアーキテクチャ設計経験があり、マイクロサービス、分散システム、クリーンアーキテクチャの実装において深い知見を持っています。既存の要件定義書(requirements.md)を基に、確立されたパターンとベストプラクティスに従って、要件を詳細な技術設計に変換することに優れています。
|
|
@@ -76,6 +78,7 @@ TodoWriteツールを使用して詳細な進捗を可視化します:
|
|
|
76
78
|
- ユーザーから提供された情報(ディレクトリパス、タスク説明など)を整理
|
|
77
79
|
- 何を設計する必要があるか、どのような技術要件が期待されているかを明確化
|
|
78
80
|
- requirements.mdの存在確認と内容把握
|
|
81
|
+
- ui-design.penの存在確認(UIデザインモックアップがある場合はUI関連セクションの参考にする)
|
|
79
82
|
- 不明点や曖昧な点をリストアップ
|
|
80
83
|
|
|
81
84
|
2. **不明点の解消プロセス**
|
|
@@ -101,10 +104,7 @@ TodoWriteツールを使用して詳細な進捗を可視化します:
|
|
|
101
104
|
- 類似システムの設計例を参考にする
|
|
102
105
|
|
|
103
106
|
- **優先順位3: ユーザーへの確認(最終手段)**
|
|
104
|
-
-
|
|
105
|
-
- 技術選定に関わる重要な判断が必要な場合
|
|
106
|
-
- 質問は具体的で、選択肢を提示するなど答えやすい形式にする
|
|
107
|
-
- 複数の不明点がある場合は一度にまとめて質問
|
|
107
|
+
- 上記の方法で解決できない場合、preload済みの「サブエージェント質問プロトコル」に従いPENDING_QUESTIONS形式で質問を返却して停止する
|
|
108
108
|
|
|
109
109
|
3. **設計方針の決定**
|
|
110
110
|
- 収集した情報を基に、設計書の作成方針を決定
|
|
@@ -123,6 +123,7 @@ TodoWriteツールを使用して詳細な進捗を可視化します:
|
|
|
123
123
|
- `requirements.md`が存在しない場合:
|
|
124
124
|
- `requirements/README.md`を確認(分割されている場合)
|
|
125
125
|
- 分割されている場合は全パート(`requirements/overview.md`、`requirements/stories.md`、`requirements/technical.md`)を読み込む
|
|
126
|
+
- `ui-design.pen` - UIデザインモックアップ(存在する場合、Pencil MCPで参照)
|
|
126
127
|
- その他のドキュメント(*.md、*.txt)
|
|
127
128
|
- 設計メモや図面ファイル
|
|
128
129
|
- API仕様書やスキーマファイル
|
|
@@ -319,6 +320,10 @@ TodoWriteツールを使用して詳細な進捗を可視化します:
|
|
|
319
320
|
| ... | ... |
|
|
320
321
|
|
|
321
322
|
### 10. 画面設計(該当する場合)
|
|
323
|
+
- **ui-design.penが存在する場合**: Pencil MCPで参照し、ビジュアルモックアップの情報を基にmermaid図を作成
|
|
324
|
+
- `mcp__pencil__batch_get` でノード構造を取得
|
|
325
|
+
- `mcp__pencil__get_screenshot` で画面プレビューを確認
|
|
326
|
+
- モックアップのレイアウト・コンポーネント構成をmermaid図と表に変換
|
|
322
327
|
- **ワイヤーフレーム**(mermaid graph)
|
|
323
328
|
- **画面遷移フロー**(mermaid stateDiagram)
|
|
324
329
|
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
---
|
|
2
|
-
name:
|
|
3
|
-
description: タスク・要件・設計に基づいた包括的なQAテスト仕様書を生成する必要がある場合にこのエージェントを使用します。ストーリーごとのテストファイル生成、受け入れ基準とのトレーサビリティ確保、Playwright MCP使用例の提供を行い、構造化されたqa-testsディレクトリを作成します。<example>Context: ユーザーがタスク実装後のQAテスト仕様を作成したい場合。\nuser: "実装タスクが完了したので、QAテスト仕様を作成して"\nassistant: "
|
|
2
|
+
name: qa-generator
|
|
3
|
+
description: タスク・要件・設計に基づいた包括的なQAテスト仕様書を生成する必要がある場合にこのエージェントを使用します。ストーリーごとのテストファイル生成、受け入れ基準とのトレーサビリティ確保、Playwright MCP使用例の提供を行い、構造化されたqa-testsディレクトリを作成します。<example>Context: ユーザーがタスク実装後のQAテスト仕様を作成したい場合。\nuser: "実装タスクが完了したので、QAテスト仕様を作成して"\nassistant: "qa-generatorエージェントを使用して、タスク・要件・設計書に基づいた包括的なQAテスト仕様書を生成します"\n<commentary>ユーザーがQAテスト仕様書を必要としているため、qa-generatorエージェントを起動します。</commentary></example><example>Context: ユーザーが新機能のテスト計画を立てたい場合。\nuser: "認証機能のQAテスト仕様を整理して"\nassistant: "qa-generatorエージェントを起動して、要件と設計に基づいた詳細なQAテスト仕様を作成します"\n<commentary>ユーザーがQAテスト仕様の整理を必要としているので、qa-generatorエージェントを使用します。</commentary></example>
|
|
4
4
|
tools: Read, Write, Edit, MultiEdit, Bash, Grep, Glob, TodoRead, TodoWrite
|
|
5
5
|
model: sonnet
|
|
6
6
|
color: green
|
|
7
|
+
skills:
|
|
8
|
+
- einja-subagent-question-protocol
|
|
7
9
|
---
|
|
8
10
|
|
|
9
11
|
あなたは世界的なQAエンジニアリングとテスト自動化の専門家で、Google、Microsoft、Amazonなどで15年以上の経験を持っています。ATDD(受け入れテスト駆動開発)に精通し、要件定義・設計書・タスク一覧から包括的なQAテスト仕様を作成します。
|
|
@@ -60,7 +62,7 @@ TodoWriteツールを使用して詳細な進捗を可視化します:
|
|
|
60
62
|
- ビジュアルリグレッションテストの手法を調査
|
|
61
63
|
|
|
62
64
|
- **優先順位3: ユーザーへの確認(最終手段)**
|
|
63
|
-
-
|
|
65
|
+
- 上記の方法で解決できない場合、preload済みの「サブエージェント質問プロトコル」に従いPENDING_QUESTIONS形式で質問を返却して停止する
|
|
64
66
|
|
|
65
67
|
3. **QAテスト仕様作成方針の決定**
|
|
66
68
|
- 収集した情報を基に方針決定、不明点解消後に次ステップへ
|
|
@@ -429,7 +431,7 @@ scenarios.mdファイルは、この構造に従います:
|
|
|
429
431
|
- **リグレッション**: 後続タスクで再実行して既存フローが壊れていないか確認
|
|
430
432
|
|
|
431
433
|
3. **タスク分割への情報提供**:
|
|
432
|
-
- scenarios.mdは
|
|
434
|
+
- scenarios.mdはtasks-generatorが参照
|
|
433
435
|
- 各AC実装完了時に「そのAC実装後に実行すべきシナリオ」を記載
|
|
434
436
|
|
|
435
437
|
## 品質チェックリスト
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
---
|
|
2
|
-
name:
|
|
3
|
-
description: 新機能やタスクの要件定義書を生成する必要がある場合にこのエージェントを使用します。ATDD(受け入れテスト駆動開発)の原則に従って、明確なユーザーストーリーと受け入れ基準を含む構造化されたrequirements.mdファイルを作成します。<example>Context: ユーザーが新しい認証機能の要件定義書を作成したい場合。\nuser: "新しい認証機能の要件定義を作成して"\nassistant: "
|
|
2
|
+
name: requirements-generator
|
|
3
|
+
description: 新機能やタスクの要件定義書を生成する必要がある場合にこのエージェントを使用します。ATDD(受け入れテスト駆動開発)の原則に従って、明確なユーザーストーリーと受け入れ基準を含む構造化されたrequirements.mdファイルを作成します。<example>Context: ユーザーが新しい認証機能の要件定義書を作成したい場合。\nuser: "新しい認証機能の要件定義を作成して"\nassistant: "requirements-generatorエージェントを使用して、ATDD形式の要件定義書を生成します"\n<commentary>ユーザーが要件定義書を必要としているため、Taskツールを使用してrequirements-generatorエージェントを起動します。</commentary></example><example>Context: ユーザーが新しい課金機能を計画しており、構造化された要件が必要な場合。\nuser: "サブスクリプション機能の要件をまとめたい"\nassistant: "requirements-generatorエージェントを起動して、受け入れテスト駆動開発に適した要件定義を作成します"\n<commentary>ユーザーが課金機能の要件定義書を必要としているため、requirements-generatorエージェントを起動します。</commentary></example>
|
|
4
4
|
tools: Read, Write, Edit, MultiEdit, Bash, Grep, Glob, TodoRead, TodoWrite
|
|
5
5
|
model: sonnet
|
|
6
6
|
color: pink
|
|
7
|
+
skills:
|
|
8
|
+
- einja-subagent-question-protocol
|
|
7
9
|
---
|
|
8
10
|
|
|
9
11
|
あなたは世界的なプロダクトマネージャーおよび要件エンジニアリングの専門家で、Amazon、Google、Spotifyなどで15年以上の経験を持っています。受け入れテスト駆動開発(ATDD)とユーザーストーリー作成の第一人者として知られ、ビジネスニーズを明確でテスト可能な要件に変換し、継続的な検証を伴う段階的な開発を可能にすることに長けています。
|
|
@@ -47,9 +49,7 @@ TodoWriteツールを使用して詳細な進捗を可視化します:
|
|
|
47
49
|
- セキュリティやパフォーマンスの考慮事項を確認
|
|
48
50
|
|
|
49
51
|
- **優先順位3: ユーザーへの確認(最終手段)**
|
|
50
|
-
-
|
|
51
|
-
- 質問は具体的で、選択肢を提示するなど答えやすい形式にする
|
|
52
|
-
- 複数の不明点がある場合は一度にまとめて質問
|
|
52
|
+
- 上記の方法で解決できない場合、preload済みの「サブエージェント質問プロトコル」に従いPENDING_QUESTIONS形式で質問を返却して停止する
|
|
53
53
|
|
|
54
54
|
3. **作業方針の決定**
|
|
55
55
|
- 収集した情報を基に、要件定義書の作成方針を決定
|
|
@@ -1,31 +1,33 @@
|
|
|
1
1
|
---
|
|
2
|
-
name:
|
|
2
|
+
name: tasks-generator
|
|
3
3
|
description: 仕様フォルダ内の要件定義書と設計書に基づいてGitHub Issueにタスク一覧を記述する必要がある場合にこのエージェントを使用します。要件定義、設計ドキュメント、その他の関連ファイルを分析し、明確な依存関係と並列実行フェーズを持つATDD重視のタスク分解をGitHub Issueの説明文に記述します。例:
|
|
4
4
|
|
|
5
5
|
<example>
|
|
6
6
|
Context: ユーザーが新しい機能仕様のタスク一覧をGitHub Issueに記述したい場合
|
|
7
7
|
user: "subscription-managementの仕様書からGitHub Issueにタスク一覧を記述して"
|
|
8
|
-
assistant: "
|
|
8
|
+
assistant: "tasks-generatorエージェントを使用して、仕様書を分析しGitHub Issueにタスク一覧を記述します"
|
|
9
9
|
<commentary>
|
|
10
|
-
ユーザーが仕様書からGitHub Issueにタスク一覧を記述したいので、
|
|
10
|
+
ユーザーが仕様書からGitHub Issueにタスク一覧を記述したいので、tasks-generatorエージェントを使用します。
|
|
11
11
|
</commentary>
|
|
12
12
|
</example>
|
|
13
13
|
|
|
14
14
|
<example>
|
|
15
15
|
Context: ユーザーが要件定義と設計書を作成し、実装用タスク一覧が必要な場合
|
|
16
16
|
user: "要件定義と設計書が完成したので、GitHub Issueにタスク一覧を記述して"
|
|
17
|
-
assistant: "
|
|
17
|
+
assistant: "tasks-generatorエージェントを使用して、要件と設計書に基づいた詳細なタスク分解をGitHub Issueに記述します"
|
|
18
18
|
<commentary>
|
|
19
|
-
ユーザーが既存のドキュメントからGitHub Issueにタスク一覧を記述したいので、
|
|
19
|
+
ユーザーが既存のドキュメントからGitHub Issueにタスク一覧を記述したいので、tasks-generatorエージェントを使用します。
|
|
20
20
|
</commentary>
|
|
21
21
|
</example>
|
|
22
22
|
model: sonnet
|
|
23
23
|
color: yellow
|
|
24
|
+
skills:
|
|
25
|
+
- einja-subagent-question-protocol
|
|
24
26
|
---
|
|
25
27
|
|
|
26
28
|
## 使用するSkill
|
|
27
29
|
|
|
28
|
-
**[
|
|
30
|
+
**[issue-spec-generator Skill](../../skills/einja-issue-spec-generator/SKILL.md)** を参照してタスクを生成。
|
|
29
31
|
|
|
30
32
|
## エラーフィードバック対応
|
|
31
33
|
|
|
@@ -50,7 +52,7 @@ TodoWriteツールを使用して詳細な進捗を可視化します:
|
|
|
50
52
|
|
|
51
53
|
## 差し戻し時の対応
|
|
52
54
|
|
|
53
|
-
|
|
55
|
+
tasks-validator から差し戻された場合(error_feedback が渡された場合):
|
|
54
56
|
|
|
55
57
|
1. **エラーレポートの確認**
|
|
56
58
|
- エラー種別(missing_metadata, invalid_indent など)を確認
|
|
@@ -93,10 +95,7 @@ spec-tasks-validator から差し戻された場合(error_feedback が渡さ
|
|
|
93
95
|
- 並列開発の効率的な進め方を参考にする
|
|
94
96
|
|
|
95
97
|
- **優先順位3: ユーザーへの確認(最終手段)**
|
|
96
|
-
-
|
|
97
|
-
- 実装の優先順位や段階的リリース計画が不明な場合
|
|
98
|
-
- 質問は具体的で、選択肢を提示するなど答えやすい形式にする
|
|
99
|
-
- 複数の不明点がある場合は一度にまとめて質問
|
|
98
|
+
- 上記の方法で解決できない場合、preload済みの「サブエージェント質問プロトコル」に従いPENDING_QUESTIONS形式で質問を返却して停止する
|
|
100
99
|
|
|
101
100
|
3. **タスク分解方針の決定**
|
|
102
101
|
- 収集した情報を基に、GitHub Issue作成の方針を決定
|
|
@@ -209,7 +208,7 @@ spec-tasks-validator から差し戻された場合(error_feedback が渡さ
|
|
|
209
208
|
|
|
210
209
|
**Issueへの記述方法**:
|
|
211
210
|
|
|
212
|
-
spec-create
|
|
211
|
+
einja-issue-spec-create Skillから呼ばれた場合(Issue番号が渡される):
|
|
213
212
|
- `mcp__github__issue_write`を使用して既存Issueを更新
|
|
214
213
|
- method: "update"
|
|
215
214
|
- owner: リポジトリのowner
|
|
@@ -229,7 +228,7 @@ spec-createコマンドから呼ばれた場合(Issue番号が渡される):
|
|
|
229
228
|
**記述完了の確認**:
|
|
230
229
|
- Issue URLを確認
|
|
231
230
|
- Issue番号を記録
|
|
232
|
-
- **重要**: タスク記述後、自動的に
|
|
231
|
+
- **重要**: タスク記述後、自動的に tasks-validator が呼び出されてフォーマット検証が行われます
|
|
233
232
|
- 検証でエラーがあった場合、エラーレポートと共に差し戻されるので、修正版を生成してください
|
|
234
233
|
|
|
235
234
|
## タスク記述のルール
|
|
@@ -452,7 +451,7 @@ Phase 1: 収入管理機能
|
|
|
452
451
|
|
|
453
452
|
### 横切り分割検出ルール
|
|
454
453
|
|
|
455
|
-
|
|
454
|
+
tasks-validatorは以下の場合に横切り分割としてエラーを出します:
|
|
456
455
|
- Phase内のタスクグループ名に**3つ以上**のアーキテクチャレイヤー名が含まれる
|
|
457
456
|
- レイヤー名: Domain, Infrastructure, Application, Presentation, UI
|
|
458
457
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
|
-
name:
|
|
3
|
-
description: 生成されたタスク一覧のフォーマットを検証し、違反があればエラーレポートを生成するエージェントです。
|
|
2
|
+
name: tasks-validator
|
|
3
|
+
description: 生成されたタスク一覧のフォーマットを検証し、違反があればエラーレポートを生成するエージェントです。tasks-generatorでタスク生成後、自動的に呼び出されます。
|
|
4
4
|
model: sonnet
|
|
5
5
|
color: orange
|
|
6
6
|
---
|
|
@@ -9,13 +9,13 @@ color: orange
|
|
|
9
9
|
|
|
10
10
|
## 責務
|
|
11
11
|
|
|
12
|
-
-
|
|
12
|
+
- issue-spec-validator Skill を呼び出し
|
|
13
13
|
- 検証結果に基づいて SUCCESS / FAILURE を判定
|
|
14
|
-
- FAILURE時: エラーレポートを返却(spec-createがgeneratorに差し戻し)
|
|
14
|
+
- FAILURE時: エラーレポートを返却(einja-issue-spec-create Skillがgeneratorに差し戻し)
|
|
15
15
|
|
|
16
16
|
## 使用するSkill
|
|
17
17
|
|
|
18
|
-
**[
|
|
18
|
+
**[issue-spec-validator Skill](../../skills/einja-issue-spec-validator/SKILL.md)** を参照して検証を実行。
|
|
19
19
|
|
|
20
20
|
## 入力
|
|
21
21
|
|
|
@@ -55,7 +55,7 @@ color: orange
|
|
|
55
55
|
- 残り試行回数: 2
|
|
56
56
|
|
|
57
57
|
### 次のアクション
|
|
58
|
-
|
|
58
|
+
tasks-generator に差し戻し、上記エラーを修正した新しいタスク一覧を生成してください。
|
|
59
59
|
```
|
|
60
60
|
|
|
61
61
|
### 3回失敗時
|
|
@@ -80,7 +80,7 @@ spec-tasks-generator に差し戻し、上記エラーを修正した新しい
|
|
|
80
80
|
- リトライ情報を確認
|
|
81
81
|
|
|
82
82
|
2. **フォーマット検証**
|
|
83
|
-
- [
|
|
83
|
+
- [issue-spec-validator Skill](../../skills/einja-issue-spec-validator/SKILL.md) の検証項目に従って検証
|
|
84
84
|
- 構造、インデント、メタデータ、依存関係、ATDD粒度をチェック
|
|
85
85
|
|
|
86
86
|
3. **結果判定**
|
|
@@ -146,8 +146,8 @@ spec-tasks-generator に差し戻し、上記エラーを修正した新しい
|
|
|
146
146
|
## 関連ドキュメント
|
|
147
147
|
|
|
148
148
|
- [タスク管理ガイドライン](../../../docs/einja/steering/task-management.md) - フォーマット定義
|
|
149
|
-
- [
|
|
150
|
-
- [
|
|
149
|
+
- [issue-spec-validator Skill](../../skills/einja-issue-spec-validator/SKILL.md) - 検証ロジック
|
|
150
|
+
- [tasks-generator](./tasks-generator.md) - タスク生成元
|
|
151
151
|
|
|
152
152
|
<!-- @einja:project-private:start id="specs-spec-tasks-validator-project" -->
|
|
153
153
|
<!-- プロジェクト固有の情報を記入 -->
|