@einja/dev-cli 0.1.6
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 +179 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +49 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/init.d.ts +3 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +243 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/list.d.ts +2 -0
- package/dist/commands/list.d.ts.map +1 -0
- package/dist/commands/list.js +23 -0
- package/dist/commands/list.js.map +1 -0
- package/dist/commands/sync.d.ts +7 -0
- package/dist/commands/sync.d.ts.map +1 -0
- package/dist/commands/sync.js +294 -0
- package/dist/commands/sync.js.map +1 -0
- package/dist/commands/sync.test.d.ts +2 -0
- package/dist/commands/sync.test.d.ts.map +1 -0
- package/dist/commands/sync.test.js +593 -0
- package/dist/commands/sync.test.js.map +1 -0
- package/dist/commands/task-loop.d.ts +11 -0
- package/dist/commands/task-loop.d.ts.map +1 -0
- package/dist/commands/task-loop.js +81 -0
- package/dist/commands/task-loop.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/file-system.d.ts +39 -0
- package/dist/lib/file-system.d.ts.map +1 -0
- package/dist/lib/file-system.js +79 -0
- package/dist/lib/file-system.js.map +1 -0
- package/dist/lib/mcp-config.d.ts +43 -0
- package/dist/lib/mcp-config.d.ts.map +1 -0
- package/dist/lib/mcp-config.js +109 -0
- package/dist/lib/mcp-config.js.map +1 -0
- package/dist/lib/mcp-config.test.d.ts +2 -0
- package/dist/lib/mcp-config.test.d.ts.map +1 -0
- package/dist/lib/mcp-config.test.js +285 -0
- package/dist/lib/mcp-config.test.js.map +1 -0
- package/dist/lib/merger.d.ts +41 -0
- package/dist/lib/merger.d.ts.map +1 -0
- package/dist/lib/merger.js +164 -0
- package/dist/lib/merger.js.map +1 -0
- package/dist/lib/preset-update/cli-repo-detector.d.ts +35 -0
- package/dist/lib/preset-update/cli-repo-detector.d.ts.map +1 -0
- package/dist/lib/preset-update/cli-repo-detector.js +83 -0
- package/dist/lib/preset-update/cli-repo-detector.js.map +1 -0
- package/dist/lib/preset-update/cli-repo-detector.test.d.ts +2 -0
- package/dist/lib/preset-update/cli-repo-detector.test.d.ts.map +1 -0
- package/dist/lib/preset-update/cli-repo-detector.test.js +120 -0
- package/dist/lib/preset-update/cli-repo-detector.test.js.map +1 -0
- package/dist/lib/preset-update/file-copier.d.ts +59 -0
- package/dist/lib/preset-update/file-copier.d.ts.map +1 -0
- package/dist/lib/preset-update/file-copier.js +220 -0
- package/dist/lib/preset-update/file-copier.js.map +1 -0
- package/dist/lib/preset-update/file-copier.test.d.ts +2 -0
- package/dist/lib/preset-update/file-copier.test.d.ts.map +1 -0
- package/dist/lib/preset-update/file-copier.test.js +297 -0
- package/dist/lib/preset-update/file-copier.test.js.map +1 -0
- package/dist/lib/preset-update/preset-finder.d.ts +39 -0
- package/dist/lib/preset-update/preset-finder.d.ts.map +1 -0
- package/dist/lib/preset-update/preset-finder.js +92 -0
- package/dist/lib/preset-update/preset-finder.js.map +1 -0
- package/dist/lib/preset-update/preset-finder.test.d.ts +2 -0
- package/dist/lib/preset-update/preset-finder.test.d.ts.map +1 -0
- package/dist/lib/preset-update/preset-finder.test.js +128 -0
- package/dist/lib/preset-update/preset-finder.test.js.map +1 -0
- package/dist/lib/preset.d.ts +14 -0
- package/dist/lib/preset.d.ts.map +1 -0
- package/dist/lib/preset.js +52 -0
- package/dist/lib/preset.js.map +1 -0
- package/dist/lib/sync/backup-manager.d.ts +50 -0
- package/dist/lib/sync/backup-manager.d.ts.map +1 -0
- package/dist/lib/sync/backup-manager.js +117 -0
- package/dist/lib/sync/backup-manager.js.map +1 -0
- package/dist/lib/sync/backup-manager.test.d.ts +2 -0
- package/dist/lib/sync/backup-manager.test.d.ts.map +1 -0
- package/dist/lib/sync/backup-manager.test.js +155 -0
- package/dist/lib/sync/backup-manager.test.js.map +1 -0
- package/dist/lib/sync/batch-processor.d.ts +27 -0
- package/dist/lib/sync/batch-processor.d.ts.map +1 -0
- package/dist/lib/sync/batch-processor.js +46 -0
- package/dist/lib/sync/batch-processor.js.map +1 -0
- package/dist/lib/sync/batch-processor.test.d.ts +2 -0
- package/dist/lib/sync/batch-processor.test.d.ts.map +1 -0
- package/dist/lib/sync/batch-processor.test.js +110 -0
- package/dist/lib/sync/batch-processor.test.js.map +1 -0
- package/dist/lib/sync/category-validator.d.ts +36 -0
- package/dist/lib/sync/category-validator.d.ts.map +1 -0
- package/dist/lib/sync/category-validator.js +46 -0
- package/dist/lib/sync/category-validator.js.map +1 -0
- package/dist/lib/sync/category-validator.test.d.ts +2 -0
- package/dist/lib/sync/category-validator.test.d.ts.map +1 -0
- package/dist/lib/sync/category-validator.test.js +89 -0
- package/dist/lib/sync/category-validator.test.js.map +1 -0
- package/dist/lib/sync/conflict-reporter.d.ts +57 -0
- package/dist/lib/sync/conflict-reporter.d.ts.map +1 -0
- package/dist/lib/sync/conflict-reporter.js +81 -0
- package/dist/lib/sync/conflict-reporter.js.map +1 -0
- package/dist/lib/sync/conflict-reporter.test.d.ts +2 -0
- package/dist/lib/sync/conflict-reporter.test.d.ts.map +1 -0
- package/dist/lib/sync/conflict-reporter.test.js +132 -0
- package/dist/lib/sync/conflict-reporter.test.js.map +1 -0
- package/dist/lib/sync/diff-engine.d.ts +28 -0
- package/dist/lib/sync/diff-engine.d.ts.map +1 -0
- package/dist/lib/sync/diff-engine.js +118 -0
- package/dist/lib/sync/diff-engine.js.map +1 -0
- package/dist/lib/sync/diff-engine.test.d.ts +2 -0
- package/dist/lib/sync/diff-engine.test.d.ts.map +1 -0
- package/dist/lib/sync/diff-engine.test.js +133 -0
- package/dist/lib/sync/diff-engine.test.js.map +1 -0
- package/dist/lib/sync/file-filter.d.ts +40 -0
- package/dist/lib/sync/file-filter.d.ts.map +1 -0
- package/dist/lib/sync/file-filter.js +171 -0
- package/dist/lib/sync/file-filter.js.map +1 -0
- package/dist/lib/sync/file-filter.test.d.ts +2 -0
- package/dist/lib/sync/file-filter.test.d.ts.map +1 -0
- package/dist/lib/sync/file-filter.test.js +179 -0
- package/dist/lib/sync/file-filter.test.js.map +1 -0
- package/dist/lib/sync/hash-cache.d.ts +34 -0
- package/dist/lib/sync/hash-cache.d.ts.map +1 -0
- package/dist/lib/sync/hash-cache.js +51 -0
- package/dist/lib/sync/hash-cache.js.map +1 -0
- package/dist/lib/sync/hash-cache.test.d.ts +2 -0
- package/dist/lib/sync/hash-cache.test.d.ts.map +1 -0
- package/dist/lib/sync/hash-cache.test.js +110 -0
- package/dist/lib/sync/hash-cache.test.js.map +1 -0
- package/dist/lib/sync/integration.test.d.ts +2 -0
- package/dist/lib/sync/integration.test.d.ts.map +1 -0
- package/dist/lib/sync/integration.test.js +317 -0
- package/dist/lib/sync/integration.test.js.map +1 -0
- package/dist/lib/sync/marker-processor.d.ts +54 -0
- package/dist/lib/sync/marker-processor.d.ts.map +1 -0
- package/dist/lib/sync/marker-processor.js +208 -0
- package/dist/lib/sync/marker-processor.js.map +1 -0
- package/dist/lib/sync/marker-processor.test.d.ts +2 -0
- package/dist/lib/sync/marker-processor.test.d.ts.map +1 -0
- package/dist/lib/sync/marker-processor.test.js +245 -0
- package/dist/lib/sync/marker-processor.test.js.map +1 -0
- package/dist/lib/sync/metadata-manager.d.ts +46 -0
- package/dist/lib/sync/metadata-manager.d.ts.map +1 -0
- package/dist/lib/sync/metadata-manager.js +129 -0
- package/dist/lib/sync/metadata-manager.js.map +1 -0
- package/dist/lib/sync/metadata-manager.test.d.ts +2 -0
- package/dist/lib/sync/metadata-manager.test.d.ts.map +1 -0
- package/dist/lib/sync/metadata-manager.test.js +137 -0
- package/dist/lib/sync/metadata-manager.test.js.map +1 -0
- package/dist/lib/sync/performance.test.d.ts +2 -0
- package/dist/lib/sync/performance.test.d.ts.map +1 -0
- package/dist/lib/sync/performance.test.js +126 -0
- package/dist/lib/sync/performance.test.js.map +1 -0
- package/dist/types/index.d.ts +59 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/preset-update.d.ts +106 -0
- package/dist/types/preset-update.d.ts.map +1 -0
- package/dist/types/preset-update.js +5 -0
- package/dist/types/preset-update.js.map +1 -0
- package/dist/types/sync.d.ts +169 -0
- package/dist/types/sync.d.ts.map +1 -0
- package/dist/types/sync.js +19 -0
- package/dist/types/sync.js.map +1 -0
- package/package.json +72 -0
- package/presets/minimal/.claude/agents/einja/docs/docs-updater.md +161 -0
- package/presets/minimal/.claude/agents/einja/frontend/design-engineer.md +685 -0
- package/presets/minimal/.claude/agents/einja/frontend/frontend-architect.md +747 -0
- package/presets/minimal/.claude/agents/einja/frontend/frontend-coder.md +441 -0
- package/presets/minimal/.claude/agents/einja/git/conflict-resolver.md +148 -0
- package/presets/minimal/.claude/agents/einja/specs/spec-design-generator.md +462 -0
- package/presets/minimal/.claude/agents/einja/specs/spec-qa-generator.md +466 -0
- package/presets/minimal/.claude/agents/einja/specs/spec-requirements-generator.md +416 -0
- package/presets/minimal/.claude/agents/einja/specs/spec-tasks-generator.md +608 -0
- package/presets/minimal/.claude/agents/einja/task/task-committer.md +82 -0
- package/presets/minimal/.claude/agents/einja/task/task-executer.md +352 -0
- package/presets/minimal/.claude/agents/einja/task/task-modification-analyzer.md +369 -0
- package/presets/minimal/.claude/agents/einja/task/task-qa.md +74 -0
- package/presets/minimal/.claude/agents/einja/task/task-reviewer.md +169 -0
- package/presets/minimal/.claude/commands/einja/frontend-implement.md +322 -0
- package/presets/minimal/.claude/commands/einja/spec-create.md +254 -0
- package/presets/minimal/.claude/commands/einja/start-dev.md +98 -0
- package/presets/minimal/.claude/commands/einja/sync-cursor-commands.md +203 -0
- package/presets/minimal/.claude/commands/einja/task-exec.md +390 -0
- package/presets/minimal/.claude/commands/einja/update-docs-by-task-specs.md +448 -0
- package/presets/minimal/.claude/hooks/einja/biome-format.sh +49 -0
- package/presets/minimal/.claude/hooks/einja/design-doc-check.sh +61 -0
- package/presets/minimal/.claude/hooks/einja/detect-secrets.sh +62 -0
- package/presets/minimal/.claude/hooks/einja/large-file-warning.sh +42 -0
- package/presets/minimal/.claude/hooks/einja/playwright-resize.sh +36 -0
- package/presets/minimal/.claude/hooks/einja/typecheck.sh +37 -0
- package/presets/minimal/.claude/hooks/einja/unset-volta-recursion.sh +32 -0
- package/presets/minimal/.claude/hooks/einja/validate-git-commit.sh +239 -0
- package/presets/minimal/.claude/hooks/einja/warn-index-ts.sh +34 -0
- package/presets/minimal/.claude/hooks/einja/warn-relative-import.sh +48 -0
- package/presets/minimal/.claude/settings.json +174 -0
- package/presets/minimal/.claude/skills/einja/api-development/SKILL.md +14 -0
- package/presets/minimal/.claude/skills/einja/backend-architecture/SKILL.md +14 -0
- package/presets/minimal/.claude/skills/einja/coding-standards/SKILL.md +120 -0
- package/presets/minimal/.claude/skills/einja/coding-standards/reference/naming-conventions.md +107 -0
- package/presets/minimal/.claude/skills/einja/coding-standards/reference/prohibited-patterns.md +169 -0
- package/presets/minimal/.claude/skills/einja/coding-standards/reference/typescript-rules.md +247 -0
- package/presets/minimal/.claude/skills/einja/component-design/SKILL.md +109 -0
- package/presets/minimal/.claude/skills/einja/component-design/reference/directory-structure.md +117 -0
- package/presets/minimal/.claude/skills/einja/component-design/reference/props-patterns.md +159 -0
- package/presets/minimal/.claude/skills/einja/component-design/reference/styling-guide.md +200 -0
- package/presets/minimal/.claude/skills/einja/conflict-resolver/SKILL.md +190 -0
- package/presets/minimal/.claude/skills/einja/frontend-development/SKILL.md +14 -0
- package/presets/minimal/.claude/skills/einja/general-context-loader/SKILL.md +254 -0
- package/presets/minimal/.claude/skills/einja/output-format/SKILL.md +137 -0
- package/presets/minimal/.claude/skills/einja/spec-context-loader/SKILL.md +177 -0
- package/presets/minimal/.claude/skills/einja/task-commit/SKILL.md +269 -0
- package/presets/minimal/.claude/skills/einja/task-qa/SKILL.md +306 -0
- package/presets/minimal/.claude/skills/einja/task-qa/reference/failure-patterns.md +69 -0
- package/presets/minimal/.claude/skills/einja/task-qa/reference/troubleshooting.md +65 -0
- package/presets/minimal/.claude/skills/einja/task-qa/reference/usage-patterns.md +52 -0
- package/presets/minimal/.claude/skills/einja/task-qa/templates/qa-test-template.md +128 -0
- package/presets/minimal/preset.yaml +111 -0
- package/presets/minimal/symlinks.json +45 -0
- package/scaffolds/.mcp.json +45 -0
- package/scaffolds/CLAUDE.md.template +318 -0
- package/scaffolds/steering/README.md +170 -0
- package/scaffolds/steering/acceptance-criteria-and-qa-guide.md +415 -0
- package/scaffolds/steering/architecture.md +481 -0
- package/scaffolds/steering/branch-strategy.md +362 -0
- package/scaffolds/steering/commit-rules.md +217 -0
- package/scaffolds/steering/db-schema-design.md +609 -0
- package/scaffolds/steering/development/api-development.md +783 -0
- package/scaffolds/steering/development/backend-architecture.md +731 -0
- package/scaffolds/steering/development/frontend-development.md +1537 -0
- package/scaffolds/steering/development/review-guidelines.md +365 -0
- package/scaffolds/steering/development/testing-strategy.md +819 -0
- package/scaffolds/steering/development-workflow.md +429 -0
- package/scaffolds/steering/infrastructure/deployment.md +277 -0
- package/scaffolds/steering/infrastructure/environment-variables.md +298 -0
- package/scaffolds/steering/product.md +540 -0
- package/scaffolds/steering/task-management.md +367 -0
- package/templates/README.md +159 -0
- package/templates/design-simple.md.template +172 -0
- package/templates/design.md.template +327 -0
- package/templates/qa-test.md.template +125 -0
- package/templates/requirements.md.template +254 -0
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
/**
|
|
3
|
+
* ファイルメタデータのZodスキーマ
|
|
4
|
+
*/
|
|
5
|
+
export declare const FileMetadataSchema: z.ZodObject<{
|
|
6
|
+
hash: z.ZodString;
|
|
7
|
+
syncedAt: z.ZodString;
|
|
8
|
+
conflicts: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
9
|
+
}, z.core.$strip>;
|
|
10
|
+
/**
|
|
11
|
+
* 同期メタデータのZodスキーマ
|
|
12
|
+
*/
|
|
13
|
+
export declare const SyncMetadataSchema: z.ZodObject<{
|
|
14
|
+
version: z.ZodString;
|
|
15
|
+
lastSync: z.ZodString;
|
|
16
|
+
templateVersion: z.ZodString;
|
|
17
|
+
files: z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
18
|
+
hash: z.ZodString;
|
|
19
|
+
syncedAt: z.ZodString;
|
|
20
|
+
conflicts: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
21
|
+
}, z.core.$strip>>;
|
|
22
|
+
}, z.core.$strip>;
|
|
23
|
+
/**
|
|
24
|
+
* ファイルメタデータの型定義
|
|
25
|
+
*/
|
|
26
|
+
export type FileMetadata = z.infer<typeof FileMetadataSchema>;
|
|
27
|
+
/**
|
|
28
|
+
* 同期メタデータの型定義
|
|
29
|
+
*/
|
|
30
|
+
export type SyncMetadata = z.infer<typeof SyncMetadataSchema>;
|
|
31
|
+
/**
|
|
32
|
+
* ベースコンテンツの型定義
|
|
33
|
+
*/
|
|
34
|
+
export interface BaseContent {
|
|
35
|
+
content: string;
|
|
36
|
+
hash: string;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* スキャンオプションの型定義
|
|
40
|
+
*/
|
|
41
|
+
export interface ScanOptions {
|
|
42
|
+
/** フィルタするカテゴリのリスト */
|
|
43
|
+
categories?: string[];
|
|
44
|
+
/** 追加の除外パターンのリスト */
|
|
45
|
+
excludePatterns?: string[];
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* 同期対象ファイルの型定義
|
|
49
|
+
*/
|
|
50
|
+
export interface SyncTarget {
|
|
51
|
+
/** 相対パス */
|
|
52
|
+
path: string;
|
|
53
|
+
/** カテゴリ */
|
|
54
|
+
category: string;
|
|
55
|
+
/** テンプレートファイルパス */
|
|
56
|
+
templatePath: string;
|
|
57
|
+
/** ローカルに存在するか */
|
|
58
|
+
exists: boolean;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* コンフリクト情報の型定義
|
|
62
|
+
*/
|
|
63
|
+
export interface Conflict {
|
|
64
|
+
/** コンフリクトが発生した行番号 */
|
|
65
|
+
line: number;
|
|
66
|
+
/** ローカル版の内容 */
|
|
67
|
+
localContent: string;
|
|
68
|
+
/** テンプレート版の内容 */
|
|
69
|
+
templateContent: string;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* マージ結果の型定義
|
|
73
|
+
*/
|
|
74
|
+
export interface MergeResult {
|
|
75
|
+
/** マージが成功したか(コンフリクトなし) */
|
|
76
|
+
success: boolean;
|
|
77
|
+
/** マージ後の内容 */
|
|
78
|
+
content: string;
|
|
79
|
+
/** コンフリクト一覧 */
|
|
80
|
+
conflicts: Conflict[];
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* マーカーセクションの種別
|
|
84
|
+
*/
|
|
85
|
+
export type MarkerSectionType = "managed" | "unmanaged";
|
|
86
|
+
/**
|
|
87
|
+
* マーカーエラーの種別
|
|
88
|
+
*/
|
|
89
|
+
export type MarkerErrorType = "unpaired_start" | "unpaired_end" | "nested";
|
|
90
|
+
/**
|
|
91
|
+
* マーカーセクションの型定義
|
|
92
|
+
*/
|
|
93
|
+
export interface MarkerSection {
|
|
94
|
+
/** セクション種別 */
|
|
95
|
+
type: MarkerSectionType;
|
|
96
|
+
/** 開始行番号(1始まり) */
|
|
97
|
+
startLine: number;
|
|
98
|
+
/** 終了行番号(1始まり) */
|
|
99
|
+
endLine: number;
|
|
100
|
+
/** セクション内容 */
|
|
101
|
+
content: string;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* マーカーエラーの型定義
|
|
105
|
+
*/
|
|
106
|
+
export interface MarkerError {
|
|
107
|
+
/** エラー行番号(1始まり) */
|
|
108
|
+
line: number;
|
|
109
|
+
/** エラーメッセージ */
|
|
110
|
+
message: string;
|
|
111
|
+
/** エラー種別 */
|
|
112
|
+
type: MarkerErrorType;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* マーカー検証結果の型定義
|
|
116
|
+
*/
|
|
117
|
+
export interface MarkerValidationResult {
|
|
118
|
+
/** 検証結果 */
|
|
119
|
+
valid: boolean;
|
|
120
|
+
/** エラー一覧 */
|
|
121
|
+
errors: MarkerError[];
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* JSON出力用のファイル情報
|
|
125
|
+
*/
|
|
126
|
+
export interface JsonFileInfo {
|
|
127
|
+
/** ファイルパス */
|
|
128
|
+
path: string;
|
|
129
|
+
/** ステータス(success, conflict, skipped) */
|
|
130
|
+
status: "success" | "conflict" | "skipped";
|
|
131
|
+
/** 実行されたアクション */
|
|
132
|
+
action: "merged" | "created" | "marked" | "skipped";
|
|
133
|
+
/** コンフリクト情報(status=conflictの場合のみ) */
|
|
134
|
+
conflicts?: Array<{
|
|
135
|
+
line: number;
|
|
136
|
+
local: string;
|
|
137
|
+
template: string;
|
|
138
|
+
}>;
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* JSON出力の型定義
|
|
142
|
+
*/
|
|
143
|
+
export interface JsonOutput {
|
|
144
|
+
/** ステータス(success, partial_success, error) */
|
|
145
|
+
status: "success" | "partial_success" | "error";
|
|
146
|
+
/** サマリー情報 */
|
|
147
|
+
summary: {
|
|
148
|
+
/** 総ファイル数 */
|
|
149
|
+
total: number;
|
|
150
|
+
/** 変更されたファイル数 */
|
|
151
|
+
changed: number;
|
|
152
|
+
/** 成功したファイル数 */
|
|
153
|
+
succeeded: number;
|
|
154
|
+
/** コンフリクトが発生したファイル数 */
|
|
155
|
+
conflicts: number;
|
|
156
|
+
/** スキップされたファイル数 */
|
|
157
|
+
skipped: number;
|
|
158
|
+
};
|
|
159
|
+
/** ファイル情報の配列 */
|
|
160
|
+
files: JsonFileInfo[];
|
|
161
|
+
/** メタデータ情報 */
|
|
162
|
+
metadata: {
|
|
163
|
+
/** メタデータバージョン */
|
|
164
|
+
version: string;
|
|
165
|
+
/** 同期実行日時 */
|
|
166
|
+
syncedAt: string;
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
//# sourceMappingURL=sync.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/types/sync.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
/**
|
|
3
|
+
* ファイルメタデータのZodスキーマ
|
|
4
|
+
*/
|
|
5
|
+
export const FileMetadataSchema = z.object({
|
|
6
|
+
hash: z.string(),
|
|
7
|
+
syncedAt: z.string(),
|
|
8
|
+
conflicts: z.array(z.string()).optional(),
|
|
9
|
+
});
|
|
10
|
+
/**
|
|
11
|
+
* 同期メタデータのZodスキーマ
|
|
12
|
+
*/
|
|
13
|
+
export const SyncMetadataSchema = z.object({
|
|
14
|
+
version: z.string(),
|
|
15
|
+
lastSync: z.string(),
|
|
16
|
+
templateVersion: z.string(),
|
|
17
|
+
files: z.record(z.string(), FileMetadataSchema),
|
|
18
|
+
});
|
|
19
|
+
//# sourceMappingURL=sync.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/types/sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;CACzC,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE;IAC3B,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,kBAAkB,CAAC;CAC/C,CAAC,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@einja/dev-cli",
|
|
3
|
+
"version": "0.1.6",
|
|
4
|
+
"description": "Einja CLI - .claude設定とテンプレート同期をnpxでインストール",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./dist/index.js",
|
|
7
|
+
"types": "./dist/index.d.ts",
|
|
8
|
+
"bin": {
|
|
9
|
+
"@einja/dev-cli": "./dist/cli.js"
|
|
10
|
+
},
|
|
11
|
+
"files": [
|
|
12
|
+
"dist",
|
|
13
|
+
"presets",
|
|
14
|
+
"templates",
|
|
15
|
+
"scaffolds"
|
|
16
|
+
],
|
|
17
|
+
"exports": {
|
|
18
|
+
".": "./dist/index.js"
|
|
19
|
+
},
|
|
20
|
+
"dependencies": {
|
|
21
|
+
"chalk": "^5.4.1",
|
|
22
|
+
"commander": "^13.1.0",
|
|
23
|
+
"fs-extra": "^11.3.0",
|
|
24
|
+
"glob": "^11.0.0",
|
|
25
|
+
"ignore": "^7.0.3",
|
|
26
|
+
"inquirer": "^12.6.0",
|
|
27
|
+
"js-yaml": "^4.1.0",
|
|
28
|
+
"node-diff3": "^3.2.0",
|
|
29
|
+
"ora": "^8.2.0",
|
|
30
|
+
"zod": "^4.3.5"
|
|
31
|
+
},
|
|
32
|
+
"devDependencies": {
|
|
33
|
+
"@biomejs/biome": "1.9.4",
|
|
34
|
+
"@types/fs-extra": "^11.0.4",
|
|
35
|
+
"@types/js-yaml": "^4.0.9",
|
|
36
|
+
"@types/node": "^22.18.13",
|
|
37
|
+
"typescript": "^5",
|
|
38
|
+
"vitest": "^2.1.9",
|
|
39
|
+
"@repo/config": "0.1.0"
|
|
40
|
+
},
|
|
41
|
+
"engines": {
|
|
42
|
+
"node": ">=20.0.0"
|
|
43
|
+
},
|
|
44
|
+
"publishConfig": {
|
|
45
|
+
"access": "public"
|
|
46
|
+
},
|
|
47
|
+
"repository": {
|
|
48
|
+
"type": "git",
|
|
49
|
+
"url": "https://github.com/einja-inc/einja-management-template.git",
|
|
50
|
+
"directory": "packages/cli"
|
|
51
|
+
},
|
|
52
|
+
"keywords": [
|
|
53
|
+
"claude",
|
|
54
|
+
"claude-code",
|
|
55
|
+
"cli",
|
|
56
|
+
"einja",
|
|
57
|
+
"atdd"
|
|
58
|
+
],
|
|
59
|
+
"license": "MIT",
|
|
60
|
+
"scripts": {
|
|
61
|
+
"clean": "rm -rf dist tsconfig.tsbuildinfo",
|
|
62
|
+
"prebuild": "node ./scripts/generate-template.mjs && node ./scripts/copy-presets.mjs",
|
|
63
|
+
"build": "pnpm clean && tsc",
|
|
64
|
+
"postbuild": "node ./scripts/add-shebang.mjs",
|
|
65
|
+
"dev": "tsc --watch",
|
|
66
|
+
"typecheck": "tsc --noEmit",
|
|
67
|
+
"lint": "biome lint ./src",
|
|
68
|
+
"format": "biome format ./src",
|
|
69
|
+
"test": "vitest run --passWithNoTests",
|
|
70
|
+
"test:watch": "vitest --passWithNoTests"
|
|
71
|
+
}
|
|
72
|
+
}
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: docs-updater
|
|
3
|
+
description: タスク仕様書をfeature/steering仕様書に反映する専用エージェント
|
|
4
|
+
model: sonnet
|
|
5
|
+
color: purple
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# docs-updater エージェント
|
|
9
|
+
|
|
10
|
+
タスク仕様書(`docs/specs/tasks/` 配下)から設計情報を抽出し、feature仕様書とsteering仕様書に反映します。
|
|
11
|
+
|
|
12
|
+
## 役割
|
|
13
|
+
|
|
14
|
+
- タスク仕様書からビジネス価値、ユーザーストーリー、設計情報を抽出
|
|
15
|
+
- Feature仕様書(`docs/specs/features/`)への反映
|
|
16
|
+
- Steering仕様書(`docs/einja/steering/`)への反映
|
|
17
|
+
- 変更サマリーの出力
|
|
18
|
+
|
|
19
|
+
## 入力
|
|
20
|
+
|
|
21
|
+
タスクspecディレクトリのパスリストを受け取ります。
|
|
22
|
+
|
|
23
|
+
```
|
|
24
|
+
入力形式:
|
|
25
|
+
- 単一: docs/specs/tasks/monorepo/20251104-monorepo-turborepo-nextjs-setup
|
|
26
|
+
- 複数: docs/specs/tasks/task1,docs/specs/tasks/task2
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## 処理フロー
|
|
30
|
+
|
|
31
|
+
`update-docs-by-task-specs` コマンドのロジックに従って処理を実行します。
|
|
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. 最終確認後、すべてのファイルを更新
|
|
104
|
+
|
|
105
|
+
## 出力形式
|
|
106
|
+
|
|
107
|
+
処理完了後、以下の形式でレポートを出力:
|
|
108
|
+
|
|
109
|
+
```markdown
|
|
110
|
+
## ドキュメント反映完了
|
|
111
|
+
|
|
112
|
+
### 処理したタスク
|
|
113
|
+
1. Monorepo Setup (20251104)
|
|
114
|
+
- Feature: なし(Steeringのみ)
|
|
115
|
+
- 反映先: architecture.md, db-design.md, product.md
|
|
116
|
+
|
|
117
|
+
2. Login Authentication (20251105)
|
|
118
|
+
- Feature: login
|
|
119
|
+
- 反映先: features/login/*, steering/*
|
|
120
|
+
|
|
121
|
+
### 反映サマリー
|
|
122
|
+
|
|
123
|
+
#### Feature仕様書
|
|
124
|
+
- **features/login/requirements.md**: 3セクション追加(412行)
|
|
125
|
+
- **features/login/design.md**: 5セクション追加(823行)
|
|
126
|
+
|
|
127
|
+
#### Steering仕様書
|
|
128
|
+
- **einja/steering/architecture.md**: 7セクション追加(1,245行)
|
|
129
|
+
- **einja/steering/db-design.md**: 4セクション追加(567行)
|
|
130
|
+
|
|
131
|
+
### ステータス: SUCCESS
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
## 重要な原則
|
|
135
|
+
|
|
136
|
+
### 情報の忠実性
|
|
137
|
+
- タスクspecの内容を改変せず、忠実に抽出して反映する
|
|
138
|
+
- 要約や意訳は最小限にし、原文をできるだけ保持する
|
|
139
|
+
|
|
140
|
+
### トレーサビリティ
|
|
141
|
+
- すべての反映内容に「ソース」情報を記録する
|
|
142
|
+
- タスク名と日付を明記し、後から追跡可能にする
|
|
143
|
+
|
|
144
|
+
### 非破壊的マージ
|
|
145
|
+
- 既存の内容を削除しない(ユーザー確認がある場合を除く)
|
|
146
|
+
- 追記を基本とし、上書きは最小限にする
|
|
147
|
+
|
|
148
|
+
### 対話的な処理
|
|
149
|
+
- 判断が必要な場合は必ずユーザーに確認する
|
|
150
|
+
- 最終確認を必ず行い、ユーザーの承認を得る
|
|
151
|
+
|
|
152
|
+
## 実行制約
|
|
153
|
+
|
|
154
|
+
このエージェントは以下から呼び出されます:
|
|
155
|
+
- `task-exec` コマンドでPhase 99タスク(`99.*.*`)実行時
|
|
156
|
+
- `/update-docs-by-task-specs` コマンド直接呼び出し時
|
|
157
|
+
|
|
158
|
+
## 連携エージェント
|
|
159
|
+
|
|
160
|
+
- **前提**: 全Phaseの実装完了(Phase 1〜N)
|
|
161
|
+
- **後続**: `task-committer` - ドキュメント変更のコミット
|