@einja/dev-cli 0.1.40 → 0.1.41

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 (183) hide show
  1. package/README.md +89 -1
  2. package/dist/cli.js +1 -0
  3. package/dist/cli.js.map +1 -1
  4. package/dist/commands/init.d.ts.map +1 -1
  5. package/dist/commands/init.js +71 -1
  6. package/dist/commands/init.js.map +1 -1
  7. package/dist/commands/list.js.map +1 -1
  8. package/dist/commands/sync.d.ts.map +1 -1
  9. package/dist/commands/sync.js +187 -13
  10. package/dist/commands/sync.js.map +1 -1
  11. package/dist/lib/dependency-checker.d.ts.map +1 -1
  12. package/dist/lib/merger.d.ts +12 -0
  13. package/dist/lib/merger.d.ts.map +1 -1
  14. package/dist/lib/merger.js +28 -0
  15. package/dist/lib/merger.js.map +1 -1
  16. package/dist/lib/preset-update/cli-repo-detector.d.ts.map +1 -1
  17. package/dist/lib/preset-update/file-copier.d.ts.map +1 -1
  18. package/dist/lib/preset-update/preset-finder.d.ts.map +1 -1
  19. package/dist/lib/preset.d.ts.map +1 -1
  20. package/dist/lib/sync/category-validator.d.ts +1 -1
  21. package/dist/lib/sync/category-validator.d.ts.map +1 -1
  22. package/dist/lib/sync/category-validator.js +2 -1
  23. package/dist/lib/sync/category-validator.js.map +1 -1
  24. package/dist/lib/sync/category-validator.test.js +3 -1
  25. package/dist/lib/sync/category-validator.test.js.map +1 -1
  26. package/dist/lib/sync/conflict-reporter.d.ts.map +1 -1
  27. package/dist/lib/sync/diff-engine.d.ts.map +1 -1
  28. package/dist/lib/sync/file-filter.d.ts.map +1 -1
  29. package/dist/lib/sync/file-filter.js +1 -0
  30. package/dist/lib/sync/file-filter.js.map +1 -1
  31. package/dist/lib/sync/integration.test.js +255 -69
  32. package/dist/lib/sync/integration.test.js.map +1 -1
  33. package/dist/lib/sync/json-processor.d.ts +4 -4
  34. package/dist/lib/sync/json-processor.d.ts.map +1 -1
  35. package/dist/lib/sync/json-processor.js +11 -11
  36. package/dist/lib/sync/json-processor.js.map +1 -1
  37. package/dist/lib/sync/marker-processor.d.ts +60 -8
  38. package/dist/lib/sync/marker-processor.d.ts.map +1 -1
  39. package/dist/lib/sync/marker-processor.js +117 -26
  40. package/dist/lib/sync/marker-processor.js.map +1 -1
  41. package/dist/lib/sync/marker-processor.test.js +261 -40
  42. package/dist/lib/sync/marker-processor.test.js.map +1 -1
  43. package/dist/lib/sync/metadata-manager.d.ts +4 -0
  44. package/dist/lib/sync/metadata-manager.d.ts.map +1 -1
  45. package/dist/lib/sync/metadata-manager.js +15 -0
  46. package/dist/lib/sync/metadata-manager.js.map +1 -1
  47. package/dist/lib/sync/metadata-manager.test.js +68 -0
  48. package/dist/lib/sync/metadata-manager.test.js.map +1 -1
  49. package/dist/lib/sync/orphan-cleaner.d.ts +29 -0
  50. package/dist/lib/sync/orphan-cleaner.d.ts.map +1 -0
  51. package/dist/lib/sync/orphan-cleaner.js +80 -0
  52. package/dist/lib/sync/orphan-cleaner.js.map +1 -0
  53. package/dist/lib/sync/orphan-cleaner.test.d.ts +2 -0
  54. package/dist/lib/sync/orphan-cleaner.test.d.ts.map +1 -0
  55. package/dist/lib/sync/orphan-cleaner.test.js +169 -0
  56. package/dist/lib/sync/orphan-cleaner.test.js.map +1 -0
  57. package/dist/lib/sync/project-private-synchronizer.d.ts +52 -0
  58. package/dist/lib/sync/project-private-synchronizer.d.ts.map +1 -0
  59. package/dist/lib/sync/project-private-synchronizer.js +106 -0
  60. package/dist/lib/sync/project-private-synchronizer.js.map +1 -0
  61. package/dist/lib/sync/project-private-synchronizer.test.d.ts +2 -0
  62. package/dist/lib/sync/project-private-synchronizer.test.d.ts.map +1 -0
  63. package/dist/lib/sync/project-private-synchronizer.test.js +348 -0
  64. package/dist/lib/sync/project-private-synchronizer.test.js.map +1 -0
  65. package/dist/types/index.d.ts +1 -0
  66. package/dist/types/index.d.ts.map +1 -1
  67. package/dist/types/sync.d.ts +36 -6
  68. package/dist/types/sync.d.ts.map +1 -1
  69. package/dist/types/sync.js +2 -2
  70. package/dist/types/sync.js.map +1 -1
  71. package/package.json +5 -4
  72. package/presets/default/.claude/agents/einja/Explore.md +140 -0
  73. package/presets/default/.claude/agents/einja/backend-architect.md +4 -0
  74. package/presets/default/.claude/agents/einja/codex-agent.md +4 -0
  75. package/presets/default/.claude/agents/einja/design-engineer.md +4 -0
  76. package/presets/default/.claude/agents/einja/docs/docs-updater.md +4 -0
  77. package/presets/default/.claude/agents/einja/frontend-architect.md +4 -0
  78. package/presets/default/.claude/agents/einja/frontend-coder.md +4 -0
  79. package/presets/default/.claude/agents/einja/git/conflict-resolver.md +4 -0
  80. package/presets/default/.claude/agents/einja/specs/spec-design-generator.md +4 -1
  81. package/presets/default/.claude/agents/einja/specs/spec-qa-generator.md +4 -0
  82. package/presets/default/.claude/agents/einja/specs/spec-requirements-generator.md +4 -1
  83. package/presets/default/.claude/agents/einja/specs/spec-tasks-generator.md +6 -2
  84. package/presets/default/.claude/agents/einja/specs/spec-tasks-validator.md +4 -0
  85. package/presets/default/.claude/agents/einja/task/task-executer.md +57 -115
  86. package/presets/default/.claude/agents/einja/task/task-modification-analyzer.md +4 -0
  87. package/presets/default/.claude/agents/einja/task/task-qa.md +4 -0
  88. package/presets/default/.claude/agents/einja/task/task-reviewer.md +4 -0
  89. package/presets/default/.claude/commands/einja/einja-sync.md +5 -1
  90. package/presets/default/.claude/commands/einja/frontend-implement.md +3 -1
  91. package/presets/default/.claude/commands/einja/issue-exec.md +403 -0
  92. package/presets/default/.claude/commands/einja/spec-create.md +15 -1
  93. package/presets/default/.claude/commands/einja/start-dev.md +4 -0
  94. package/presets/default/.claude/commands/einja/sync-cursor-commands.md +4 -0
  95. package/presets/default/.claude/commands/einja/task-exec.md +106 -14
  96. package/presets/default/.claude/commands/einja/update-docs-by-task-specs.md +4 -0
  97. package/presets/default/.claude/hooks/einja/plan-mode-skill-loader.sh +23 -0
  98. package/presets/default/.claude/settings.json +15 -1
  99. package/presets/default/.claude/skills/einja-conflict-resolver/SKILL.md +4 -0
  100. package/presets/default/.claude/skills/einja-general-context-loader/SKILL.md +4 -0
  101. package/presets/default/.claude/skills/einja-output-format/SKILL.md +4 -0
  102. package/presets/default/.claude/skills/einja-project-overview/SKILL.md +7 -3
  103. package/presets/default/.claude/skills/einja-skill-creator/SKILL.md +266 -274
  104. package/presets/default/.claude/skills/einja-skill-creator/agents/analyzer.md +274 -0
  105. package/presets/default/.claude/skills/einja-skill-creator/agents/comparator.md +202 -0
  106. package/presets/default/.claude/skills/einja-skill-creator/agents/grader.md +195 -0
  107. package/presets/default/.claude/skills/einja-skill-creator/assets/eval_review.html +146 -0
  108. package/presets/default/.claude/skills/einja-skill-creator/eval-viewer/generate_review.py +471 -0
  109. package/presets/default/.claude/skills/einja-skill-creator/eval-viewer/viewer.html +1325 -0
  110. package/presets/default/.claude/skills/einja-skill-creator/references/schemas.md +430 -0
  111. package/presets/default/.claude/skills/einja-skill-creator/scripts/aggregate_benchmark.py +154 -0
  112. package/presets/default/.claude/skills/einja-skill-creator/scripts/generate_report.py +265 -0
  113. package/presets/default/.claude/skills/einja-skill-creator/scripts/improve_description.py +252 -0
  114. package/presets/default/.claude/skills/einja-skill-creator/scripts/init_skill.py +13 -19
  115. package/presets/default/.claude/skills/einja-skill-creator/scripts/package_skill.py +36 -7
  116. package/presets/default/.claude/skills/einja-skill-creator/scripts/run_eval.py +310 -0
  117. package/presets/default/.claude/skills/einja-skill-creator/scripts/run_loop.py +295 -0
  118. package/presets/default/.claude/skills/einja-skill-creator/scripts/utils.py +48 -0
  119. package/presets/default/.claude/skills/einja-spec-context-loader/SKILL.md +4 -0
  120. package/presets/default/.claude/skills/einja-task-commit/SKILL.md +4 -0
  121. package/presets/default/.claude/skills/einja-task-qa/SKILL.md +4 -0
  122. package/presets/default/.envrc +5 -0
  123. package/presets/default/.mcp.json +2 -12
  124. package/presets/default/CLAUDE.md.template +26 -4
  125. package/presets/default/docs/einja/example/specs/issues/issue999-example-task/tasks.md +1 -1
  126. package/presets/default/docs/einja/instructions/deployment-setup.md +3 -8
  127. package/presets/default/docs/einja/instructions/environment-setup.md +3 -8
  128. package/presets/default/docs/einja/instructions/issue-exec-workflow.md +276 -0
  129. package/presets/default/docs/einja/instructions/local-server-environment-and-worktree.md +70 -8
  130. package/presets/default/docs/einja/instructions/neon-cli-reference.md +3 -8
  131. package/presets/default/docs/einja/instructions/task-execute.md +23 -28
  132. package/presets/default/docs/einja/instructions/vercel-cli-reference.md +17 -10
  133. package/presets/default/docs/einja/steering/README.md +11 -11
  134. package/presets/default/docs/einja/steering/acceptance-criteria-and-qa-guide.md +3 -8
  135. package/presets/default/docs/einja/steering/architecture.md +3 -8
  136. package/presets/default/docs/einja/steering/branch-strategy.md +63 -70
  137. package/presets/default/docs/einja/steering/commit-rules.md +3 -8
  138. package/presets/default/docs/einja/steering/db-schema-design.md +3 -8
  139. package/presets/default/docs/einja/steering/development/api-development.md +3 -8
  140. package/presets/default/docs/einja/steering/development/backend-architecture.md +3 -8
  141. package/presets/default/docs/einja/steering/development/coding-standards.md +723 -0
  142. package/presets/default/docs/einja/steering/development/component-design.md +502 -0
  143. package/presets/default/docs/einja/steering/development/database-guidelines.md +2 -2
  144. package/presets/default/docs/einja/steering/development/frontend-development.md +3 -8
  145. package/presets/default/docs/einja/steering/development/playwright-guidelines.md +59 -0
  146. package/presets/default/docs/einja/steering/development/review-guidelines.md +3 -8
  147. package/presets/default/docs/einja/steering/development/testing-strategy.md +3 -8
  148. package/presets/default/docs/einja/steering/development-workflow.md +71 -124
  149. package/presets/default/docs/einja/steering/infrastructure/deployment.md +49 -55
  150. package/presets/default/docs/einja/steering/infrastructure/environment-variables.md +4 -8
  151. package/presets/default/docs/einja/steering/product.md +3 -8
  152. package/presets/default/docs/einja/steering/task-management.md +14 -98
  153. package/presets/default/scripts/ensure-serena.sh +75 -0
  154. package/presets/default/scripts/env-rotate-secrets.ts +336 -0
  155. package/presets/default/scripts/env-show.ts +130 -0
  156. package/presets/default/scripts/env.ts +479 -0
  157. package/presets/default/scripts/init.sh +92 -0
  158. package/presets/default/scripts/lib/env-common.ts +108 -0
  159. package/presets/default/scripts/lib/worktree-config.ts +64 -0
  160. package/presets/default/scripts/setup-dev.ts +640 -0
  161. package/presets/default/scripts/stop-serena.sh +25 -0
  162. package/presets/default/scripts/worktree/dev.ts +872 -0
  163. package/dist/lib/sync/seed-synchronizer.d.ts +0 -27
  164. package/dist/lib/sync/seed-synchronizer.d.ts.map +0 -1
  165. package/dist/lib/sync/seed-synchronizer.js +0 -72
  166. package/dist/lib/sync/seed-synchronizer.js.map +0 -1
  167. package/dist/lib/sync/seed-synchronizer.test.d.ts +0 -2
  168. package/dist/lib/sync/seed-synchronizer.test.d.ts.map +0 -1
  169. package/dist/lib/sync/seed-synchronizer.test.js +0 -147
  170. package/dist/lib/sync/seed-synchronizer.test.js.map +0 -1
  171. package/presets/default/.claude/skills/einja-api-development/SKILL.md +0 -14
  172. package/presets/default/.claude/skills/einja-backend-architecture/SKILL.md +0 -18
  173. package/presets/default/.claude/skills/einja-coding-standards/SKILL.md +0 -132
  174. package/presets/default/.claude/skills/einja-coding-standards/references/import-conventions.md +0 -69
  175. package/presets/default/.claude/skills/einja-coding-standards/references/naming-conventions.md +0 -107
  176. package/presets/default/.claude/skills/einja-coding-standards/references/prohibited-patterns.md +0 -169
  177. package/presets/default/.claude/skills/einja-coding-standards/references/typescript-rules.md +0 -247
  178. package/presets/default/.claude/skills/einja-component-design/SKILL.md +0 -109
  179. package/presets/default/.claude/skills/einja-component-design/references/directory-structure.md +0 -117
  180. package/presets/default/.claude/skills/einja-component-design/references/props-patterns.md +0 -159
  181. package/presets/default/.claude/skills/einja-component-design/references/styling-guide.md +0 -122
  182. package/presets/default/.claude/skills/einja-frontend-development/SKILL.md +0 -14
  183. package/presets/default/docs/einja/instructions/task-vibe-kanban-loop.md +0 -565
@@ -1,159 +0,0 @@
1
- # Props設計パターン
2
-
3
- ## 型定義
4
-
5
- ### Props インターフェース
6
-
7
- ```typescript
8
- interface ButtonProps {
9
- children: React.ReactNode;
10
- variant?: "primary" | "secondary" | "danger";
11
- size?: "sm" | "md" | "lg";
12
- disabled?: boolean;
13
- onClick?: () => void;
14
- }
15
- ```
16
-
17
- ### デフォルトProps
18
-
19
- ```typescript
20
- const defaultProps: Partial<ButtonProps> = {
21
- variant: "primary",
22
- size: "md",
23
- disabled: false,
24
- };
25
- ```
26
-
27
- ## イベントハンドリング
28
-
29
- ### 命名規則
30
- - `on` + 動詞の命名規則を使用
31
- - 例: `onClick`, `onSubmit`, `onChange`
32
-
33
- ### 型定義
34
-
35
- ```typescript
36
- interface FormProps {
37
- onSubmit: (data: FormData) => void;
38
- onChange: (field: string, value: string) => void;
39
- }
40
- ```
41
-
42
- ## 状態管理
43
-
44
- ### ローカル状態
45
- - `useState` でローカル状態を管理
46
- - 複雑な状態は `useReducer` を検討
47
-
48
- ```typescript
49
- const [isOpen, setIsOpen] = useState(false);
50
-
51
- // 複雑な状態の場合
52
- const [state, dispatch] = useReducer(reducer, initialState);
53
- ```
54
-
55
- ## エラーハンドリング
56
-
57
- ### Error Boundary
58
- - 予期しないエラーをキャッチ
59
- - ユーザーフレンドリーなエラー表示
60
-
61
- ### バリデーション
62
- - フォーム入力のバリデーション
63
- - 適切なエラーメッセージの表示
64
-
65
- ## 実装例
66
-
67
- ### 基本的なButtonコンポーネント
68
-
69
- ```typescript
70
- // index.tsx
71
- export interface ButtonProps {
72
- children: React.ReactNode;
73
- variant?: "primary" | "secondary" | "danger";
74
- size?: "sm" | "md" | "lg";
75
- disabled?: boolean;
76
- onClick?: () => void;
77
- }
78
-
79
- import { button } from "styled-system/recipes";
80
- import type { ButtonProps } from "./types";
81
-
82
- export const Button: React.FC<ButtonProps> = ({
83
- children,
84
- variant = "primary",
85
- size = "md",
86
- disabled = false,
87
- onClick,
88
- }) => {
89
- return (
90
- <button
91
- className={button({ variant, size })}
92
- disabled={disabled}
93
- onClick={onClick}
94
- >
95
- {children}
96
- </button>
97
- );
98
- };
99
- ```
100
-
101
- ## パフォーマンス
102
-
103
- ### メモ化
104
- - `React.memo` で不要な再レンダリングを防止
105
- - `useMemo`, `useCallback` で計算結果をキャッシュ
106
-
107
- ```typescript
108
- const MemoizedComponent = React.memo(({ data, onClick }) => {
109
- return <div onClick={onClick}>{data.name}</div>;
110
- });
111
-
112
- // useCallbackでコールバックをメモ化
113
- const handleClick = useCallback(() => {
114
- // 処理
115
- }, [dependency]);
116
- ```
117
-
118
- ### 遅延読み込み
119
- - `React.lazy` で大きなコンポーネントの遅延読み込み
120
- - `Suspense` で読み込み状態を表示
121
-
122
- ```typescript
123
- const HeavyComponent = React.lazy(() => import('./HeavyComponent'));
124
-
125
- function App() {
126
- return (
127
- <Suspense fallback={<Loading />}>
128
- <HeavyComponent />
129
- </Suspense>
130
- );
131
- }
132
- ```
133
-
134
- ## アクセシビリティ
135
-
136
- ### セマンティックHTML
137
- - 適切なHTMLタグを使用
138
- - `aria-*` 属性の適切な使用
139
-
140
- ```typescript
141
- <button
142
- aria-label="メニューを開く"
143
- aria-expanded={isOpen}
144
- >
145
- <MenuIcon />
146
- </button>
147
- ```
148
-
149
- ### キーボード操作
150
- - キーボードのみでの操作を可能にする
151
- - フォーカス管理の実装
152
-
153
- ```typescript
154
- const handleKeyDown = (e: React.KeyboardEvent) => {
155
- if (e.key === 'Enter' || e.key === ' ') {
156
- handleClick();
157
- }
158
- };
159
- ```
@@ -1,122 +0,0 @@
1
- # スタイリングガイド(Tailwind CSS)
2
-
3
- ## 基本的な使い方
4
-
5
- ### Tailwind CSS の使用
6
- - Tailwind CSS v4 のユーティリティクラスを使用してスタイルを定義
7
- - CSS変数(globals.css)でデザイントークンを管理
8
- - shadcn/ui のコンポーネントを活用
9
-
10
- ```typescript
11
- // ユーティリティクラスの使用
12
- <div className="flex items-center gap-4 rounded-lg bg-white p-6 shadow-md">
13
- <h2 className="text-xl font-bold text-gray-900">Title</h2>
14
- </div>
15
- ```
16
-
17
- ## cva によるバリアント管理
18
-
19
- ### 基本的な使用方法
20
-
21
- ```typescript
22
- import { cva } from "class-variance-authority";
23
- import { cn } from "@repo/ui/utils";
24
-
25
- const buttonVariants = cva(
26
- "inline-flex items-center justify-center rounded-md font-medium transition-colors",
27
- {
28
- variants: {
29
- variant: {
30
- primary: "bg-primary text-primary-foreground hover:bg-primary/90",
31
- secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80",
32
- outline: "border border-input bg-transparent hover:bg-accent",
33
- ghost: "hover:bg-accent hover:text-accent-foreground",
34
- },
35
- size: {
36
- sm: "h-8 px-3 text-sm",
37
- md: "h-10 px-4 text-base",
38
- lg: "h-12 px-6 text-lg",
39
- },
40
- },
41
- defaultVariants: {
42
- variant: "primary",
43
- size: "md",
44
- },
45
- }
46
- );
47
- ```
48
-
49
- ## クラス名の結合
50
-
51
- ### cn(className)ユーティリティの使用
52
-
53
- ```typescript
54
- import { cn } from "@repo/ui/utils";
55
-
56
- export function Card({ className, children }: CardProps) {
57
- return (
58
- <div className={cn("border rounded-lg p-4", className)}>
59
- {children}
60
- </div>
61
- );
62
- }
63
- ```
64
-
65
- ### 条件付きスタイル
66
-
67
- ```typescript
68
- import { cn } from "@repo/ui/utils";
69
-
70
- export function Button({ isActive, className }: ButtonProps) {
71
- return (
72
- <button
73
- className={cn(
74
- "px-4 py-2 rounded-md",
75
- isActive ? "bg-blue-500 text-white" : "bg-gray-200 text-gray-900",
76
- className
77
- )}
78
- >
79
- Click me
80
- </button>
81
- );
82
- }
83
- ```
84
-
85
- ## レスポンシブデザイン
86
-
87
- ### ブレークポイント
88
-
89
- ```typescript
90
- <div className="text-sm p-2 md:text-base md:p-4 lg:text-lg lg:p-6">
91
- レスポンシブコンテンツ
92
- </div>
93
- ```
94
-
95
- ### カスタムブレークポイント
96
- - sm: 640px
97
- - md: 768px
98
- - lg: 1024px
99
- - xl: 1280px
100
- - 2xl: 1440px
101
-
102
- ## ダークモード対応
103
-
104
- ```typescript
105
- <div className="bg-white text-gray-900 dark:bg-gray-900 dark:text-gray-100">
106
- テーマ対応コンテンツ
107
- </div>
108
- ```
109
-
110
- ## ベストプラクティス
111
-
112
- ### 1. デザイントークンの活用
113
- - `globals.css` で定義されたCSS変数を使用
114
- - shadcn/ui のカラートークンを活用(`text-primary`, `bg-muted` 等)
115
-
116
- ### 2. shadcn/ui コンポーネントを優先
117
- - 既存の shadcn/ui コンポーネントを優先的に使用
118
- - カスタムが必要な場合のみ cva で独自バリアントを定義
119
-
120
- ### 3. スタイルの一貫性
121
- - プロジェクト全体で同じTailwindユーティリティパターンを使用
122
- - カラーパレット、スペーシングの統一
@@ -1,14 +0,0 @@
1
- ---
2
- name: frontend-development
3
- description: "Next.js + React + Tanstack Queryを使用したフロントエンド実装のガイドライン"
4
- ---
5
-
6
- # フロントエンド開発ガイド Skill
7
-
8
- ## 概要
9
-
10
- このSkillは、フロントエンド実装時に参照すべきガイドラインを提供します。
11
-
12
- ## 詳細ドキュメント
13
-
14
- @docs/einja/steering/development/frontend-development.md