@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.
Files changed (243) hide show
  1. package/README.md +179 -0
  2. package/dist/cli.d.ts +2 -0
  3. package/dist/cli.d.ts.map +1 -0
  4. package/dist/cli.js +49 -0
  5. package/dist/cli.js.map +1 -0
  6. package/dist/commands/init.d.ts +3 -0
  7. package/dist/commands/init.d.ts.map +1 -0
  8. package/dist/commands/init.js +243 -0
  9. package/dist/commands/init.js.map +1 -0
  10. package/dist/commands/list.d.ts +2 -0
  11. package/dist/commands/list.d.ts.map +1 -0
  12. package/dist/commands/list.js +23 -0
  13. package/dist/commands/list.js.map +1 -0
  14. package/dist/commands/sync.d.ts +7 -0
  15. package/dist/commands/sync.d.ts.map +1 -0
  16. package/dist/commands/sync.js +294 -0
  17. package/dist/commands/sync.js.map +1 -0
  18. package/dist/commands/sync.test.d.ts +2 -0
  19. package/dist/commands/sync.test.d.ts.map +1 -0
  20. package/dist/commands/sync.test.js +593 -0
  21. package/dist/commands/sync.test.js.map +1 -0
  22. package/dist/commands/task-loop.d.ts +11 -0
  23. package/dist/commands/task-loop.d.ts.map +1 -0
  24. package/dist/commands/task-loop.js +81 -0
  25. package/dist/commands/task-loop.js.map +1 -0
  26. package/dist/index.d.ts +4 -0
  27. package/dist/index.d.ts.map +1 -0
  28. package/dist/index.js +3 -0
  29. package/dist/index.js.map +1 -0
  30. package/dist/lib/file-system.d.ts +39 -0
  31. package/dist/lib/file-system.d.ts.map +1 -0
  32. package/dist/lib/file-system.js +79 -0
  33. package/dist/lib/file-system.js.map +1 -0
  34. package/dist/lib/mcp-config.d.ts +43 -0
  35. package/dist/lib/mcp-config.d.ts.map +1 -0
  36. package/dist/lib/mcp-config.js +109 -0
  37. package/dist/lib/mcp-config.js.map +1 -0
  38. package/dist/lib/mcp-config.test.d.ts +2 -0
  39. package/dist/lib/mcp-config.test.d.ts.map +1 -0
  40. package/dist/lib/mcp-config.test.js +285 -0
  41. package/dist/lib/mcp-config.test.js.map +1 -0
  42. package/dist/lib/merger.d.ts +41 -0
  43. package/dist/lib/merger.d.ts.map +1 -0
  44. package/dist/lib/merger.js +164 -0
  45. package/dist/lib/merger.js.map +1 -0
  46. package/dist/lib/preset-update/cli-repo-detector.d.ts +35 -0
  47. package/dist/lib/preset-update/cli-repo-detector.d.ts.map +1 -0
  48. package/dist/lib/preset-update/cli-repo-detector.js +83 -0
  49. package/dist/lib/preset-update/cli-repo-detector.js.map +1 -0
  50. package/dist/lib/preset-update/cli-repo-detector.test.d.ts +2 -0
  51. package/dist/lib/preset-update/cli-repo-detector.test.d.ts.map +1 -0
  52. package/dist/lib/preset-update/cli-repo-detector.test.js +120 -0
  53. package/dist/lib/preset-update/cli-repo-detector.test.js.map +1 -0
  54. package/dist/lib/preset-update/file-copier.d.ts +59 -0
  55. package/dist/lib/preset-update/file-copier.d.ts.map +1 -0
  56. package/dist/lib/preset-update/file-copier.js +220 -0
  57. package/dist/lib/preset-update/file-copier.js.map +1 -0
  58. package/dist/lib/preset-update/file-copier.test.d.ts +2 -0
  59. package/dist/lib/preset-update/file-copier.test.d.ts.map +1 -0
  60. package/dist/lib/preset-update/file-copier.test.js +297 -0
  61. package/dist/lib/preset-update/file-copier.test.js.map +1 -0
  62. package/dist/lib/preset-update/preset-finder.d.ts +39 -0
  63. package/dist/lib/preset-update/preset-finder.d.ts.map +1 -0
  64. package/dist/lib/preset-update/preset-finder.js +92 -0
  65. package/dist/lib/preset-update/preset-finder.js.map +1 -0
  66. package/dist/lib/preset-update/preset-finder.test.d.ts +2 -0
  67. package/dist/lib/preset-update/preset-finder.test.d.ts.map +1 -0
  68. package/dist/lib/preset-update/preset-finder.test.js +128 -0
  69. package/dist/lib/preset-update/preset-finder.test.js.map +1 -0
  70. package/dist/lib/preset.d.ts +14 -0
  71. package/dist/lib/preset.d.ts.map +1 -0
  72. package/dist/lib/preset.js +52 -0
  73. package/dist/lib/preset.js.map +1 -0
  74. package/dist/lib/sync/backup-manager.d.ts +50 -0
  75. package/dist/lib/sync/backup-manager.d.ts.map +1 -0
  76. package/dist/lib/sync/backup-manager.js +117 -0
  77. package/dist/lib/sync/backup-manager.js.map +1 -0
  78. package/dist/lib/sync/backup-manager.test.d.ts +2 -0
  79. package/dist/lib/sync/backup-manager.test.d.ts.map +1 -0
  80. package/dist/lib/sync/backup-manager.test.js +155 -0
  81. package/dist/lib/sync/backup-manager.test.js.map +1 -0
  82. package/dist/lib/sync/batch-processor.d.ts +27 -0
  83. package/dist/lib/sync/batch-processor.d.ts.map +1 -0
  84. package/dist/lib/sync/batch-processor.js +46 -0
  85. package/dist/lib/sync/batch-processor.js.map +1 -0
  86. package/dist/lib/sync/batch-processor.test.d.ts +2 -0
  87. package/dist/lib/sync/batch-processor.test.d.ts.map +1 -0
  88. package/dist/lib/sync/batch-processor.test.js +110 -0
  89. package/dist/lib/sync/batch-processor.test.js.map +1 -0
  90. package/dist/lib/sync/category-validator.d.ts +36 -0
  91. package/dist/lib/sync/category-validator.d.ts.map +1 -0
  92. package/dist/lib/sync/category-validator.js +46 -0
  93. package/dist/lib/sync/category-validator.js.map +1 -0
  94. package/dist/lib/sync/category-validator.test.d.ts +2 -0
  95. package/dist/lib/sync/category-validator.test.d.ts.map +1 -0
  96. package/dist/lib/sync/category-validator.test.js +89 -0
  97. package/dist/lib/sync/category-validator.test.js.map +1 -0
  98. package/dist/lib/sync/conflict-reporter.d.ts +57 -0
  99. package/dist/lib/sync/conflict-reporter.d.ts.map +1 -0
  100. package/dist/lib/sync/conflict-reporter.js +81 -0
  101. package/dist/lib/sync/conflict-reporter.js.map +1 -0
  102. package/dist/lib/sync/conflict-reporter.test.d.ts +2 -0
  103. package/dist/lib/sync/conflict-reporter.test.d.ts.map +1 -0
  104. package/dist/lib/sync/conflict-reporter.test.js +132 -0
  105. package/dist/lib/sync/conflict-reporter.test.js.map +1 -0
  106. package/dist/lib/sync/diff-engine.d.ts +28 -0
  107. package/dist/lib/sync/diff-engine.d.ts.map +1 -0
  108. package/dist/lib/sync/diff-engine.js +118 -0
  109. package/dist/lib/sync/diff-engine.js.map +1 -0
  110. package/dist/lib/sync/diff-engine.test.d.ts +2 -0
  111. package/dist/lib/sync/diff-engine.test.d.ts.map +1 -0
  112. package/dist/lib/sync/diff-engine.test.js +133 -0
  113. package/dist/lib/sync/diff-engine.test.js.map +1 -0
  114. package/dist/lib/sync/file-filter.d.ts +40 -0
  115. package/dist/lib/sync/file-filter.d.ts.map +1 -0
  116. package/dist/lib/sync/file-filter.js +171 -0
  117. package/dist/lib/sync/file-filter.js.map +1 -0
  118. package/dist/lib/sync/file-filter.test.d.ts +2 -0
  119. package/dist/lib/sync/file-filter.test.d.ts.map +1 -0
  120. package/dist/lib/sync/file-filter.test.js +179 -0
  121. package/dist/lib/sync/file-filter.test.js.map +1 -0
  122. package/dist/lib/sync/hash-cache.d.ts +34 -0
  123. package/dist/lib/sync/hash-cache.d.ts.map +1 -0
  124. package/dist/lib/sync/hash-cache.js +51 -0
  125. package/dist/lib/sync/hash-cache.js.map +1 -0
  126. package/dist/lib/sync/hash-cache.test.d.ts +2 -0
  127. package/dist/lib/sync/hash-cache.test.d.ts.map +1 -0
  128. package/dist/lib/sync/hash-cache.test.js +110 -0
  129. package/dist/lib/sync/hash-cache.test.js.map +1 -0
  130. package/dist/lib/sync/integration.test.d.ts +2 -0
  131. package/dist/lib/sync/integration.test.d.ts.map +1 -0
  132. package/dist/lib/sync/integration.test.js +317 -0
  133. package/dist/lib/sync/integration.test.js.map +1 -0
  134. package/dist/lib/sync/marker-processor.d.ts +54 -0
  135. package/dist/lib/sync/marker-processor.d.ts.map +1 -0
  136. package/dist/lib/sync/marker-processor.js +208 -0
  137. package/dist/lib/sync/marker-processor.js.map +1 -0
  138. package/dist/lib/sync/marker-processor.test.d.ts +2 -0
  139. package/dist/lib/sync/marker-processor.test.d.ts.map +1 -0
  140. package/dist/lib/sync/marker-processor.test.js +245 -0
  141. package/dist/lib/sync/marker-processor.test.js.map +1 -0
  142. package/dist/lib/sync/metadata-manager.d.ts +46 -0
  143. package/dist/lib/sync/metadata-manager.d.ts.map +1 -0
  144. package/dist/lib/sync/metadata-manager.js +129 -0
  145. package/dist/lib/sync/metadata-manager.js.map +1 -0
  146. package/dist/lib/sync/metadata-manager.test.d.ts +2 -0
  147. package/dist/lib/sync/metadata-manager.test.d.ts.map +1 -0
  148. package/dist/lib/sync/metadata-manager.test.js +137 -0
  149. package/dist/lib/sync/metadata-manager.test.js.map +1 -0
  150. package/dist/lib/sync/performance.test.d.ts +2 -0
  151. package/dist/lib/sync/performance.test.d.ts.map +1 -0
  152. package/dist/lib/sync/performance.test.js +126 -0
  153. package/dist/lib/sync/performance.test.js.map +1 -0
  154. package/dist/types/index.d.ts +59 -0
  155. package/dist/types/index.d.ts.map +1 -0
  156. package/dist/types/index.js +2 -0
  157. package/dist/types/index.js.map +1 -0
  158. package/dist/types/preset-update.d.ts +106 -0
  159. package/dist/types/preset-update.d.ts.map +1 -0
  160. package/dist/types/preset-update.js +5 -0
  161. package/dist/types/preset-update.js.map +1 -0
  162. package/dist/types/sync.d.ts +169 -0
  163. package/dist/types/sync.d.ts.map +1 -0
  164. package/dist/types/sync.js +19 -0
  165. package/dist/types/sync.js.map +1 -0
  166. package/package.json +72 -0
  167. package/presets/minimal/.claude/agents/einja/docs/docs-updater.md +161 -0
  168. package/presets/minimal/.claude/agents/einja/frontend/design-engineer.md +685 -0
  169. package/presets/minimal/.claude/agents/einja/frontend/frontend-architect.md +747 -0
  170. package/presets/minimal/.claude/agents/einja/frontend/frontend-coder.md +441 -0
  171. package/presets/minimal/.claude/agents/einja/git/conflict-resolver.md +148 -0
  172. package/presets/minimal/.claude/agents/einja/specs/spec-design-generator.md +462 -0
  173. package/presets/minimal/.claude/agents/einja/specs/spec-qa-generator.md +466 -0
  174. package/presets/minimal/.claude/agents/einja/specs/spec-requirements-generator.md +416 -0
  175. package/presets/minimal/.claude/agents/einja/specs/spec-tasks-generator.md +608 -0
  176. package/presets/minimal/.claude/agents/einja/task/task-committer.md +82 -0
  177. package/presets/minimal/.claude/agents/einja/task/task-executer.md +352 -0
  178. package/presets/minimal/.claude/agents/einja/task/task-modification-analyzer.md +369 -0
  179. package/presets/minimal/.claude/agents/einja/task/task-qa.md +74 -0
  180. package/presets/minimal/.claude/agents/einja/task/task-reviewer.md +169 -0
  181. package/presets/minimal/.claude/commands/einja/frontend-implement.md +322 -0
  182. package/presets/minimal/.claude/commands/einja/spec-create.md +254 -0
  183. package/presets/minimal/.claude/commands/einja/start-dev.md +98 -0
  184. package/presets/minimal/.claude/commands/einja/sync-cursor-commands.md +203 -0
  185. package/presets/minimal/.claude/commands/einja/task-exec.md +390 -0
  186. package/presets/minimal/.claude/commands/einja/update-docs-by-task-specs.md +448 -0
  187. package/presets/minimal/.claude/hooks/einja/biome-format.sh +49 -0
  188. package/presets/minimal/.claude/hooks/einja/design-doc-check.sh +61 -0
  189. package/presets/minimal/.claude/hooks/einja/detect-secrets.sh +62 -0
  190. package/presets/minimal/.claude/hooks/einja/large-file-warning.sh +42 -0
  191. package/presets/minimal/.claude/hooks/einja/playwright-resize.sh +36 -0
  192. package/presets/minimal/.claude/hooks/einja/typecheck.sh +37 -0
  193. package/presets/minimal/.claude/hooks/einja/unset-volta-recursion.sh +32 -0
  194. package/presets/minimal/.claude/hooks/einja/validate-git-commit.sh +239 -0
  195. package/presets/minimal/.claude/hooks/einja/warn-index-ts.sh +34 -0
  196. package/presets/minimal/.claude/hooks/einja/warn-relative-import.sh +48 -0
  197. package/presets/minimal/.claude/settings.json +174 -0
  198. package/presets/minimal/.claude/skills/einja/api-development/SKILL.md +14 -0
  199. package/presets/minimal/.claude/skills/einja/backend-architecture/SKILL.md +14 -0
  200. package/presets/minimal/.claude/skills/einja/coding-standards/SKILL.md +120 -0
  201. package/presets/minimal/.claude/skills/einja/coding-standards/reference/naming-conventions.md +107 -0
  202. package/presets/minimal/.claude/skills/einja/coding-standards/reference/prohibited-patterns.md +169 -0
  203. package/presets/minimal/.claude/skills/einja/coding-standards/reference/typescript-rules.md +247 -0
  204. package/presets/minimal/.claude/skills/einja/component-design/SKILL.md +109 -0
  205. package/presets/minimal/.claude/skills/einja/component-design/reference/directory-structure.md +117 -0
  206. package/presets/minimal/.claude/skills/einja/component-design/reference/props-patterns.md +159 -0
  207. package/presets/minimal/.claude/skills/einja/component-design/reference/styling-guide.md +200 -0
  208. package/presets/minimal/.claude/skills/einja/conflict-resolver/SKILL.md +190 -0
  209. package/presets/minimal/.claude/skills/einja/frontend-development/SKILL.md +14 -0
  210. package/presets/minimal/.claude/skills/einja/general-context-loader/SKILL.md +254 -0
  211. package/presets/minimal/.claude/skills/einja/output-format/SKILL.md +137 -0
  212. package/presets/minimal/.claude/skills/einja/spec-context-loader/SKILL.md +177 -0
  213. package/presets/minimal/.claude/skills/einja/task-commit/SKILL.md +269 -0
  214. package/presets/minimal/.claude/skills/einja/task-qa/SKILL.md +306 -0
  215. package/presets/minimal/.claude/skills/einja/task-qa/reference/failure-patterns.md +69 -0
  216. package/presets/minimal/.claude/skills/einja/task-qa/reference/troubleshooting.md +65 -0
  217. package/presets/minimal/.claude/skills/einja/task-qa/reference/usage-patterns.md +52 -0
  218. package/presets/minimal/.claude/skills/einja/task-qa/templates/qa-test-template.md +128 -0
  219. package/presets/minimal/preset.yaml +111 -0
  220. package/presets/minimal/symlinks.json +45 -0
  221. package/scaffolds/.mcp.json +45 -0
  222. package/scaffolds/CLAUDE.md.template +318 -0
  223. package/scaffolds/steering/README.md +170 -0
  224. package/scaffolds/steering/acceptance-criteria-and-qa-guide.md +415 -0
  225. package/scaffolds/steering/architecture.md +481 -0
  226. package/scaffolds/steering/branch-strategy.md +362 -0
  227. package/scaffolds/steering/commit-rules.md +217 -0
  228. package/scaffolds/steering/db-schema-design.md +609 -0
  229. package/scaffolds/steering/development/api-development.md +783 -0
  230. package/scaffolds/steering/development/backend-architecture.md +731 -0
  231. package/scaffolds/steering/development/frontend-development.md +1537 -0
  232. package/scaffolds/steering/development/review-guidelines.md +365 -0
  233. package/scaffolds/steering/development/testing-strategy.md +819 -0
  234. package/scaffolds/steering/development-workflow.md +429 -0
  235. package/scaffolds/steering/infrastructure/deployment.md +277 -0
  236. package/scaffolds/steering/infrastructure/environment-variables.md +298 -0
  237. package/scaffolds/steering/product.md +540 -0
  238. package/scaffolds/steering/task-management.md +367 -0
  239. package/templates/README.md +159 -0
  240. package/templates/design-simple.md.template +172 -0
  241. package/templates/design.md.template +327 -0
  242. package/templates/qa-test.md.template +125 -0
  243. 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` - ドキュメント変更のコミット