ralphy-spec 0.1.1 → 0.2.0

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 (176) hide show
  1. package/README.ja.md +74 -130
  2. package/README.ko.md +74 -130
  3. package/README.md +75 -133
  4. package/README.zh.md +74 -130
  5. package/bin/ralphy-spec.js +0 -0
  6. package/dist/cli/checkpoint.d.ts +3 -0
  7. package/dist/cli/checkpoint.d.ts.map +1 -0
  8. package/dist/cli/checkpoint.js +23 -0
  9. package/dist/cli/checkpoint.js.map +1 -0
  10. package/dist/cli/init.d.ts +3 -0
  11. package/dist/cli/init.d.ts.map +1 -0
  12. package/dist/cli/init.js +66 -0
  13. package/dist/cli/init.js.map +1 -0
  14. package/dist/cli/report.d.ts +3 -0
  15. package/dist/cli/report.d.ts.map +1 -0
  16. package/dist/cli/report.js +53 -0
  17. package/dist/cli/report.js.map +1 -0
  18. package/dist/cli/run.d.ts +3 -0
  19. package/dist/cli/run.d.ts.map +1 -0
  20. package/dist/cli/run.js +79 -0
  21. package/dist/cli/run.js.map +1 -0
  22. package/dist/cli/status.d.ts +3 -0
  23. package/dist/cli/status.d.ts.map +1 -0
  24. package/dist/cli/status.js +45 -0
  25. package/dist/cli/status.js.map +1 -0
  26. package/dist/cli/tail.d.ts +3 -0
  27. package/dist/cli/tail.d.ts.map +1 -0
  28. package/dist/cli/tail.js +46 -0
  29. package/dist/cli/tail.js.map +1 -0
  30. package/dist/cli/update.d.ts +3 -0
  31. package/dist/cli/update.d.ts.map +1 -0
  32. package/dist/cli/update.js +62 -0
  33. package/dist/cli/update.js.map +1 -0
  34. package/dist/cli/validate.d.ts +3 -0
  35. package/dist/cli/validate.d.ts.map +1 -0
  36. package/dist/cli/validate.js +83 -0
  37. package/dist/cli/validate.js.map +1 -0
  38. package/dist/core/backends/claude-code.d.ts +17 -0
  39. package/dist/core/backends/claude-code.d.ts.map +1 -0
  40. package/dist/core/backends/claude-code.js +75 -0
  41. package/dist/core/backends/claude-code.js.map +1 -0
  42. package/dist/core/backends/cursor.d.ts +17 -0
  43. package/dist/core/backends/cursor.d.ts.map +1 -0
  44. package/dist/core/backends/cursor.js +75 -0
  45. package/dist/core/backends/cursor.js.map +1 -0
  46. package/dist/core/backends/noop.d.ts +10 -0
  47. package/dist/core/backends/noop.d.ts.map +1 -0
  48. package/dist/core/backends/noop.js +17 -0
  49. package/dist/core/backends/noop.js.map +1 -0
  50. package/dist/core/backends/opencode.d.ts +16 -0
  51. package/dist/core/backends/opencode.d.ts.map +1 -0
  52. package/dist/core/backends/opencode.js +73 -0
  53. package/dist/core/backends/opencode.js.map +1 -0
  54. package/dist/core/backends/types.d.ts +21 -0
  55. package/dist/core/backends/types.d.ts.map +1 -0
  56. package/dist/core/backends/types.js +3 -0
  57. package/dist/core/backends/types.js.map +1 -0
  58. package/dist/core/budgets/manager.d.ts +21 -0
  59. package/dist/core/budgets/manager.d.ts.map +1 -0
  60. package/dist/core/budgets/manager.js +48 -0
  61. package/dist/core/budgets/manager.js.map +1 -0
  62. package/dist/core/budgets/state.d.ts +25 -0
  63. package/dist/core/budgets/state.d.ts.map +1 -0
  64. package/dist/core/budgets/state.js +33 -0
  65. package/dist/core/budgets/state.js.map +1 -0
  66. package/dist/core/budgets/tiers.d.ts +32 -0
  67. package/dist/core/budgets/tiers.d.ts.map +1 -0
  68. package/dist/core/budgets/tiers.js +67 -0
  69. package/dist/core/budgets/tiers.js.map +1 -0
  70. package/dist/core/engine/context-pack.d.ts +12 -0
  71. package/dist/core/engine/context-pack.d.ts.map +1 -0
  72. package/dist/core/engine/context-pack.js +45 -0
  73. package/dist/core/engine/context-pack.js.map +1 -0
  74. package/dist/core/engine/loop.d.ts +28 -0
  75. package/dist/core/engine/loop.d.ts.map +1 -0
  76. package/dist/core/engine/loop.js +366 -0
  77. package/dist/core/engine/loop.js.map +1 -0
  78. package/dist/core/engine/phases.d.ts +2 -0
  79. package/dist/core/engine/phases.d.ts.map +1 -0
  80. package/dist/core/engine/phases.js +3 -0
  81. package/dist/core/engine/phases.js.map +1 -0
  82. package/dist/core/engine/repair.d.ts +6 -0
  83. package/dist/core/engine/repair.d.ts.map +1 -0
  84. package/dist/core/engine/repair.js +23 -0
  85. package/dist/core/engine/repair.js.map +1 -0
  86. package/dist/core/folders.d.ts +26 -0
  87. package/dist/core/folders.d.ts.map +1 -0
  88. package/dist/core/folders.js +58 -0
  89. package/dist/core/folders.js.map +1 -0
  90. package/dist/core/memory/ledger.d.ts +13 -0
  91. package/dist/core/memory/ledger.d.ts.map +1 -0
  92. package/dist/core/memory/ledger.js +24 -0
  93. package/dist/core/memory/ledger.js.map +1 -0
  94. package/dist/core/memory/persistence.d.ts +45 -0
  95. package/dist/core/memory/persistence.d.ts.map +1 -0
  96. package/dist/core/memory/persistence.js +162 -0
  97. package/dist/core/memory/persistence.js.map +1 -0
  98. package/dist/core/reporting/spend.d.ts +40 -0
  99. package/dist/core/reporting/spend.d.ts.map +1 -0
  100. package/dist/core/reporting/spend.js +157 -0
  101. package/dist/core/reporting/spend.js.map +1 -0
  102. package/dist/core/spec/dag.d.ts +7 -0
  103. package/dist/core/spec/dag.d.ts.map +1 -0
  104. package/dist/core/spec/dag.js +65 -0
  105. package/dist/core/spec/dag.js.map +1 -0
  106. package/dist/core/spec/file-contract.d.ts +13 -0
  107. package/dist/core/spec/file-contract.d.ts.map +1 -0
  108. package/dist/core/spec/file-contract.js +29 -0
  109. package/dist/core/spec/file-contract.js.map +1 -0
  110. package/dist/core/spec/loader.d.ts +8 -0
  111. package/dist/core/spec/loader.d.ts.map +1 -0
  112. package/dist/core/spec/loader.js +51 -0
  113. package/dist/core/spec/loader.js.map +1 -0
  114. package/dist/core/spec/schemas.d.ts +278 -0
  115. package/dist/core/spec/schemas.d.ts.map +1 -0
  116. package/dist/core/spec/schemas.js +207 -0
  117. package/dist/core/spec/schemas.js.map +1 -0
  118. package/dist/core/spec/types.d.ts +71 -0
  119. package/dist/core/spec/types.d.ts.map +1 -0
  120. package/dist/core/spec/types.js +3 -0
  121. package/dist/core/spec/types.js.map +1 -0
  122. package/dist/core/validators/parsers/eslint.d.ts +3 -0
  123. package/dist/core/validators/parsers/eslint.d.ts.map +1 -0
  124. package/dist/core/validators/parsers/eslint.js +35 -0
  125. package/dist/core/validators/parsers/eslint.js.map +1 -0
  126. package/dist/core/validators/parsers/jest.d.ts +3 -0
  127. package/dist/core/validators/parsers/jest.d.ts.map +1 -0
  128. package/dist/core/validators/parsers/jest.js +16 -0
  129. package/dist/core/validators/parsers/jest.js.map +1 -0
  130. package/dist/core/validators/parsers/tsc.d.ts +3 -0
  131. package/dist/core/validators/parsers/tsc.d.ts.map +1 -0
  132. package/dist/core/validators/parsers/tsc.js +32 -0
  133. package/dist/core/validators/parsers/tsc.js.map +1 -0
  134. package/dist/core/validators/runner.d.ts +8 -0
  135. package/dist/core/validators/runner.d.ts.map +1 -0
  136. package/dist/core/validators/runner.js +85 -0
  137. package/dist/core/validators/runner.js.map +1 -0
  138. package/dist/core/validators/signatures.d.ts +3 -0
  139. package/dist/core/validators/signatures.d.ts.map +1 -0
  140. package/dist/core/validators/signatures.js +10 -0
  141. package/dist/core/validators/signatures.js.map +1 -0
  142. package/dist/core/validators/types.d.ts +27 -0
  143. package/dist/core/validators/types.d.ts.map +1 -0
  144. package/dist/core/validators/types.js +3 -0
  145. package/dist/core/validators/types.js.map +1 -0
  146. package/dist/core/workspace/contract-enforcer.d.ts +54 -0
  147. package/dist/core/workspace/contract-enforcer.d.ts.map +1 -0
  148. package/dist/core/workspace/contract-enforcer.js +128 -0
  149. package/dist/core/workspace/contract-enforcer.js.map +1 -0
  150. package/dist/core/workspace/manager.d.ts +28 -0
  151. package/dist/core/workspace/manager.d.ts.map +1 -0
  152. package/dist/core/workspace/manager.js +3 -0
  153. package/dist/core/workspace/manager.js.map +1 -0
  154. package/dist/core/workspace/merge.d.ts +38 -0
  155. package/dist/core/workspace/merge.d.ts.map +1 -0
  156. package/dist/core/workspace/merge.js +92 -0
  157. package/dist/core/workspace/merge.js.map +1 -0
  158. package/dist/core/workspace/patch-mode.d.ts +22 -0
  159. package/dist/core/workspace/patch-mode.d.ts.map +1 -0
  160. package/dist/core/workspace/patch-mode.js +91 -0
  161. package/dist/core/workspace/patch-mode.js.map +1 -0
  162. package/dist/core/workspace/worktree-mode.d.ts +28 -0
  163. package/dist/core/workspace/worktree-mode.d.ts.map +1 -0
  164. package/dist/core/workspace/worktree-mode.js +156 -0
  165. package/dist/core/workspace/worktree-mode.js.map +1 -0
  166. package/dist/index.js +14 -4
  167. package/dist/index.js.map +1 -1
  168. package/dist/templates/shared/openspec-tasks-template.md +23 -3
  169. package/dist/templates/shared/project-template.yml +232 -0
  170. package/dist/utils/installer.d.ts.map +1 -1
  171. package/dist/utils/installer.js +31 -1
  172. package/dist/utils/installer.js.map +1 -1
  173. package/dist/utils/validator.d.ts.map +1 -1
  174. package/dist/utils/validator.js +10 -0
  175. package/dist/utils/validator.js.map +1 -1
  176. package/package.json +11 -4
package/README.ja.md CHANGED
@@ -2,180 +2,124 @@
2
2
 
3
3
  [English](README.md) | [简体中文](README.zh.md) | [한국어](README.ko.md) | [日本語](README.ja.md)
4
4
 
5
- 以下のツール向けに **Ralph ループ + OpenSpec** ワークフローを1つのコマンドでセットアップ:
6
- - Cursor
7
- - OpenCode
8
- - Claude Code
5
+ **スペック駆動AI開発 + 反復実行。** OpenSpecとRalph Loopを組み合わせて、予測可能なAI支援コーディングを実現します。
9
6
 
10
7
  **ウェブサイト:** [https://ralphy-spec.org](https://ralphy-spec.org)
11
8
 
12
- ## Ralphy-Specとは?
13
-
14
- Ralphy-Specは2つの強力なAI開発方法論を組み合わせています:
15
-
16
- ### Ralph Wiggumループ
17
-
18
- Ralph方法論([Geoffrey Huntley](https://ghuntley.com/ralph)が提唱)は、AIエージェントがタスクを完了するまで**同じプロンプトを繰り返し**受け取る開発アプローチです。各イテレーションで、AIはファイルとgit履歴で以前の作業を確認し、自己修正フィードバックループを形成します。
19
-
20
- ```
21
- while true; do
22
- ai_agent "機能Xを構築してください。完了したら<promise>DONE</promise>を出力してください。"
23
- # AIは以前の作業を見て、ミスを修正し、進捗を続けます
24
- done
25
- ```
26
-
27
- ### OpenSpec(スペック駆動開発)
28
-
29
- [OpenSpec](https://github.com/Fission-AI/OpenSpec)は、コードの前にスペックを要求することでAIコーディングに構造をもたらします:
30
- - `openspec/specs/` - 真実の情報源となるスペック
31
- - `openspec/changes/` - 受け入れ基準を含む変更提案
32
- - 完了した変更をマージするアーカイブワークフロー
33
-
34
- ### なぜ組み合わせるのか?
35
-
36
- | 問題 | 解決策 |
37
- |------|--------|
38
- | チャット履歴の曖昧な要件 | OpenSpecが意図を構造化されたスペックに固定 |
39
- | AIが途中で停止したりミスをする | Ralphループが完了するまでリトライ |
40
- | 正確性を検証する方法がない | 受け入れ基準 + テストで出力を検証 |
41
- | ツール固有のセットアップが面倒 | 1つのコマンドでCursor、OpenCode、Claude Codeをセットアップ |
42
-
43
- ## プロジェクトにインストールされるもの
44
-
45
- - `openspec/` スキャフォールド:
46
- - `openspec/specs/`(真実の情報源)
47
- - `openspec/changes/`(アクティブな変更)
48
- - `openspec/archive/`(完了した変更)
49
- - `openspec/project.md`(プロジェクトコンテキスト)
50
- - ツール統合:
51
- - Cursor: `.cursor/prompts/ralphy-*.md`
52
- - Claude Code: `.claude/commands/ralphy-*.md`
53
- - OpenCode: `AGENTS.md`
54
- - Ralphループ状態/設定:
55
- - `.ralphy/config.json`
56
- - `.ralphy/ralph-loop.state.json`
57
-
58
- ## インストール
59
-
60
- ### npm(グローバル)
61
-
62
- ```bash
63
- npm install -g ralphy-spec
64
- ```
65
-
66
- ### npx(インストール不要)
9
+ ## クイックスタート
67
10
 
68
11
  ```bash
69
12
  npx ralphy-spec init
70
13
  ```
71
14
 
72
- ### curlインストールスクリプト
15
+ 次に、AIツールに対応するコマンドを使用します:
73
16
 
74
- ```bash
75
- curl -fsSL https://raw.githubusercontent.com/anthropics/ralphy-openspec/main/scripts/install.sh | sh
76
- ```
17
+ ### Cursor
77
18
 
78
- ## 使用方法
19
+ | コマンド | 機能 |
20
+ |----------|------|
21
+ | `/ralphy:plan` | 要件からスペック作成 |
22
+ | `/ralphy:implement` | 反復ループでビルド |
23
+ | `/ralphy:validate` | 受け入れ基準を検証 |
24
+ | `/ralphy:archive` | 完了してアーカイブ |
79
25
 
80
- ### プロジェクトで初期化
26
+ ### Claude Code
81
27
 
82
- ```bash
83
- cd your-project
84
- ralphy-spec init
85
- ```
28
+ | コマンド | 機能 |
29
+ |----------|------|
30
+ | `/ralphy:plan` | 要件からスペック作成 |
31
+ | `/ralphy:implement` | 反復ループでビルド |
32
+ | `/ralphy:validate` | 受け入れ基準を検証 |
33
+ | `/ralphy:archive` | 完了してアーカイブ |
86
34
 
87
- 非対話的なツール選択:
35
+ ### OpenCode
88
36
 
89
- ```bash
90
- ralphy-spec init --tools cursor,claude-code,opencode
91
- ```
92
-
93
- 既存ファイルの上書き:
37
+ AGENTS.mdと自然言語を使用:
38
+ - `"Follow AGENTS.md to plan [機能]"`
39
+ - `"Follow AGENTS.md to implement [変更]"`
40
+ - `"Follow AGENTS.md to validate"`
41
+ - `"Follow AGENTS.md to archive [変更]"`
94
42
 
43
+ **Ralph Loopランナーと一緒に:**
95
44
  ```bash
96
- ralphy-spec init --force
45
+ npm install -g @th0rgal/ralph-wiggum
46
+ ralph "Follow AGENTS.md to implement add-api. Output <promise>TASK_COMPLETE</promise> when done." --max-iterations 20
97
47
  ```
98
48
 
99
- ### セットアップの検証
49
+ ## ワークフロー例
100
50
 
101
51
  ```bash
102
- ralphy-spec validate
103
- ```
52
+ # 1. 計画: アイデアからスペック作成
53
+ You: /ralphy:plan JWT ユーザー認証を追加
104
54
 
105
- ### テンプレートの更新
55
+ # 2. 実装: AIが反復的にビルド
56
+ You: /ralphy:implement add-user-auth
106
57
 
107
- ```bash
108
- ralphy-spec update --force
58
+ # 3. 検証: テストパスを確認
59
+ You: /ralphy:validate
60
+
61
+ # 4. アーカイブ: 変更を完了
62
+ You: /ralphy:archive add-user-auth
109
63
  ```
110
64
 
111
- ## ワークフロー(PRD -> リリース)
65
+ ## 作成されるファイル
112
66
 
113
67
  ```
114
- PRD/要件 --> OpenSpec(スペック + タスク + 受け入れ基準)
115
- |
116
- v
117
- Ralphループ(テストが通るまで反復)
118
- |
119
- v
120
- アーカイブ(ソーススペックにマージ)
121
- ```
122
-
123
- ### 1) 計画:PRD -> OpenSpec変更
68
+ .cursor/prompts/ # または .claude/commands/
69
+ ├── ralphy-plan.md
70
+ ├── ralphy-implement.md
71
+ ├── ralphy-validate.md
72
+ └── ralphy-archive.md
124
73
 
125
- AIツールで`/ralphy:plan`(Cursor / Claude Code)を使用するか、OpenCodeに`AGENTS.md`に従うよう依頼します。
74
+ AGENTS.md # OpenCode用
126
75
 
127
- リポジトリでの期待される出力:
76
+ openspec/
77
+ ├── specs/ # 真実の情報源
78
+ ├── changes/ # 進行中の作業
79
+ ├── archive/ # 完了
80
+ └── project.md # コンテキスト
128
81
 
129
- ```
130
- openspec/changes/<change-name>/
131
- proposal.md
132
- tasks.md
133
- specs/
134
- <domain>/
135
- spec.md
82
+ .ralphy/
83
+ ├── config.json
84
+ └── ralph-loop.state.json
136
85
  ```
137
86
 
138
- ### 2) 実装:完了するまで反復
87
+ ## 仕組み
139
88
 
140
- `/ralphy:implement`を使用してタスクを実装し、テストを追加します。
89
+ **Ralph Wiggum Loop:** AIがタスク完了まで同じプロンプトを繰り返し受け取ります。各イテレーションで、ファイルの以前の作業を見て自己修正します。
141
90
 
142
- Ralphループランナーで実行する場合、エージェントは**すべてのタスクが完了しテストが通った場合のみ**以下を出力します:
91
+ **OpenSpec:** コードの前にスペック。構造化されたスペックと受け入れ基準により、AIが何をビルドすべきか正確に分かります。
143
92
 
144
- ```
145
- <promise>TASK_COMPLETE</promise>
146
- ```
93
+ **組み合わせる理由:**
147
94
 
148
- ### 3) 検証:テストで受け入れ基準を証明
95
+ | 問題 | 解決策 |
96
+ |------|--------|
97
+ | チャットの曖昧な要件 | スペックが意図を固定 |
98
+ | AIが途中で停止 | 完了するまでループがリトライ |
99
+ | 検証方法がない | テストが出力を検証 |
100
+ | ツール固有のセットアップ | 1つのコマンドですべて解決 |
149
101
 
150
- `/ralphy:validate`を使用してテストを実行し、通過したテストをOpenSpecシナリオにマッピングします。
102
+ ## インストールオプション
151
103
 
152
- ### 4) アーカイブ:変更をスペックにマージ
104
+ ```bash
105
+ # npx(推奨)
106
+ npx ralphy-spec init
153
107
 
154
- `/ralphy:archive`を使用し、利用可能であればOpenSpec CLIを使用します:
108
+ # グローバルインストール
109
+ npm install -g ralphy-spec
110
+ ralphy-spec init
155
111
 
156
- ```bash
157
- openspec archive <change-name> --yes
112
+ # 特定のツールを指定
113
+ ralphy-spec init --tools cursor,claude-code,opencode
158
114
  ```
159
115
 
160
116
  ## 謝辞
161
117
 
162
- Ralphy-Specは巨人の肩の上に立っています:
163
-
164
- - **Ralph Wiggum方法論** - [Geoffrey Huntley](https://ghuntley.com/ralph)が考案。AIエージェントが反復を通じて自己修正できるという洞察は、AI支援開発についての私たちの考え方を変えました。
118
+ 以下のプロジェクトに基づいています:
165
119
 
166
- - **[opencode-ralph-wiggum](https://github.com/Th0rgal/opencode-ralph-wiggum)** by [@Th0rgal](https://github.com/Th0rgal) - 私たちの統合アプローチにインスピレーションを与えたOpenCode用のクリーンなRalphループCLI実装。
167
-
168
- - **[OpenSpec](https://github.com/Fission-AI/OpenSpec)** by [Fission-AI](https://github.com/Fission-AI) - AIコーディングに構造と予測可能性をもたらすスペック駆動開発フレームワーク。
169
-
170
- これらのアプローチを開拓したこれらのプロジェクトとメンテナーに感謝します。
171
-
172
- ## 開発
173
-
174
- ```bash
175
- npm install
176
- npm run build
177
- node bin/ralphy-spec.js --help
178
- ```
120
+ - **[Ralph方法論](https://ghuntley.com/ralph)** by Geoffrey Huntley
121
+ - **[opencode-ralph-wiggum](https://github.com/Th0rgal/opencode-ralph-wiggum)** by @Th0rgal
122
+ - **[OpenSpec](https://github.com/Fission-AI/OpenSpec)** by Fission-AI
179
123
 
180
124
  ## ライセンス
181
125
 
package/README.ko.md CHANGED
@@ -2,180 +2,124 @@
2
2
 
3
3
  [English](README.md) | [简体中文](README.zh.md) | [한국어](README.ko.md) | [日本語](README.ja.md)
4
4
 
5
- 다음 도구를 위한 **Ralph 루프 + OpenSpec** 워크플로우를 번의 명령으로 설정:
6
- - Cursor
7
- - OpenCode
8
- - Claude Code
5
+ **스펙 기반 AI 개발 + 반복 실행.** OpenSpec Ralph Loop를 결합하여 예측 가능한 AI 지원 코딩을 실현합니다.
9
6
 
10
7
  **웹사이트:** [https://ralphy-spec.org](https://ralphy-spec.org)
11
8
 
12
- ## Ralphy-Spec이란?
13
-
14
- Ralphy-Spec은 두 가지 강력한 AI 개발 방법론을 결합합니다:
15
-
16
- ### Ralph Wiggum 루프
17
-
18
- Ralph 방법론([Geoffrey Huntley](https://ghuntley.com/ralph)가 제안)은 AI 에이전트가 작업을 완료할 때까지 **동일한 프롬프트를 반복적으로** 받는 개발 방식입니다. 각 반복에서 AI는 파일과 git 히스토리에서 이전 작업을 보고 자기 수정 피드백 루프를 형성합니다.
19
-
20
- ```
21
- while true; do
22
- ai_agent "기능 X를 구축하세요. 완료되면 <promise>DONE</promise>을 출력하세요."
23
- # AI가 이전 작업을 보고, 실수를 수정하고, 진행을 계속합니다
24
- done
25
- ```
26
-
27
- ### OpenSpec (스펙 기반 개발)
28
-
29
- [OpenSpec](https://github.com/Fission-AI/OpenSpec)은 코드 전에 스펙을 요구하여 AI 코딩에 구조를 부여합니다:
30
- - `openspec/specs/` - 진실의 원천 스펙
31
- - `openspec/changes/` - 인수 기준이 있는 변경 제안
32
- - 완료된 변경을 다시 병합하는 아카이브 워크플로우
33
-
34
- ### 왜 결합하는가?
35
-
36
- | 문제 | 해결책 |
37
- |------|--------|
38
- | 채팅 기록의 모호한 요구사항 | OpenSpec이 의도를 구조화된 스펙에 고정 |
39
- | AI가 중간에 멈추거나 실수함 | Ralph 루프가 완료될 때까지 재시도 |
40
- | 정확성을 검증할 방법 없음 | 인수 기준 + 테스트로 출력 검증 |
41
- | 도구별 설정이 번거로움 | 한 번의 명령으로 Cursor, OpenCode, Claude Code 설정 |
42
-
43
- ## 프로젝트에 설치되는 내용
44
-
45
- - `openspec/` 스캐폴드:
46
- - `openspec/specs/` (진실의 원천)
47
- - `openspec/changes/` (활성 변경)
48
- - `openspec/archive/` (완료된 변경)
49
- - `openspec/project.md` (프로젝트 컨텍스트)
50
- - 도구 통합:
51
- - Cursor: `.cursor/prompts/ralphy-*.md`
52
- - Claude Code: `.claude/commands/ralphy-*.md`
53
- - OpenCode: `AGENTS.md`
54
- - Ralph 루프 상태/설정:
55
- - `.ralphy/config.json`
56
- - `.ralphy/ralph-loop.state.json`
57
-
58
- ## 설치
59
-
60
- ### npm (전역)
61
-
62
- ```bash
63
- npm install -g ralphy-spec
64
- ```
65
-
66
- ### npx (설치 없이)
9
+ ## 빠른 시작
67
10
 
68
11
  ```bash
69
12
  npx ralphy-spec init
70
13
  ```
71
14
 
72
- ### curl 설치 스크립트
15
+ 그런 다음 AI 도구에 맞는 명령을 사용하세요:
73
16
 
74
- ```bash
75
- curl -fsSL https://raw.githubusercontent.com/anthropics/ralphy-openspec/main/scripts/install.sh | sh
76
- ```
17
+ ### Cursor
77
18
 
78
- ## 사용법
19
+ | 명령 | 기능 |
20
+ |------|------|
21
+ | `/ralphy:plan` | 요구사항에서 스펙 생성 |
22
+ | `/ralphy:implement` | 반복 루프로 빌드 |
23
+ | `/ralphy:validate` | 인수 기준 검증 |
24
+ | `/ralphy:archive` | 완료 및 아카이브 |
79
25
 
80
- ### 프로젝트에서 초기화
26
+ ### Claude Code
81
27
 
82
- ```bash
83
- cd your-project
84
- ralphy-spec init
85
- ```
28
+ | 명령 | 기능 |
29
+ |------|------|
30
+ | `/ralphy:plan` | 요구사항에서 스펙 생성 |
31
+ | `/ralphy:implement` | 반복 루프로 빌드 |
32
+ | `/ralphy:validate` | 인수 기준 검증 |
33
+ | `/ralphy:archive` | 완료 및 아카이브 |
86
34
 
87
- 비대화형 도구 선택:
35
+ ### OpenCode
88
36
 
89
- ```bash
90
- ralphy-spec init --tools cursor,claude-code,opencode
91
- ```
92
-
93
- 기존 파일 덮어쓰기:
37
+ AGENTS.md와 함께 자연어 사용:
38
+ - `"Follow AGENTS.md to plan [기능]"`
39
+ - `"Follow AGENTS.md to implement [변경]"`
40
+ - `"Follow AGENTS.md to validate"`
41
+ - `"Follow AGENTS.md to archive [변경]"`
94
42
 
43
+ **Ralph Loop 러너와 함께:**
95
44
  ```bash
96
- ralphy-spec init --force
45
+ npm install -g @th0rgal/ralph-wiggum
46
+ ralph "Follow AGENTS.md to implement add-api. Output <promise>TASK_COMPLETE</promise> when done." --max-iterations 20
97
47
  ```
98
48
 
99
- ### 설정 검증
49
+ ## 워크플로우 예시
100
50
 
101
51
  ```bash
102
- ralphy-spec validate
103
- ```
52
+ # 1. 계획: 아이디어에서 스펙 생성
53
+ You: /ralphy:plan JWT 사용자 인증 추가
104
54
 
105
- ### 템플릿 업데이트
55
+ # 2. 구현: AI가 반복적으로 빌드
56
+ You: /ralphy:implement add-user-auth
106
57
 
107
- ```bash
108
- ralphy-spec update --force
58
+ # 3. 검증: 테스트 통과 확인
59
+ You: /ralphy:validate
60
+
61
+ # 4. 아카이브: 변경 완료
62
+ You: /ralphy:archive add-user-auth
109
63
  ```
110
64
 
111
- ## 워크플로우 (PRD -> 출시)
65
+ ## 생성되는 파일
112
66
 
113
67
  ```
114
- PRD/요구사항 --> OpenSpec (스펙 + 작업 + 인수 기준)
115
- |
116
- v
117
- Ralph 루프 (테스트 통과까지 반복)
118
- |
119
- v
120
- 아카이브 (소스 스펙에 병합)
121
- ```
122
-
123
- ### 1) 계획: PRD -> OpenSpec 변경
68
+ .cursor/prompts/ # 또는 .claude/commands/
69
+ ├── ralphy-plan.md
70
+ ├── ralphy-implement.md
71
+ ├── ralphy-validate.md
72
+ └── ralphy-archive.md
124
73
 
125
- AI 도구에서 `/ralphy:plan` (Cursor / Claude Code)을 사용하거나 OpenCode에 `AGENTS.md`를 따르도록 요청합니다.
74
+ AGENTS.md # OpenCode용
126
75
 
127
- 저장소에 예상되는 출력:
76
+ openspec/
77
+ ├── specs/ # 진실의 원천
78
+ ├── changes/ # 진행 중인 작업
79
+ ├── archive/ # 완료됨
80
+ └── project.md # 컨텍스트
128
81
 
129
- ```
130
- openspec/changes/<change-name>/
131
- proposal.md
132
- tasks.md
133
- specs/
134
- <domain>/
135
- spec.md
82
+ .ralphy/
83
+ ├── config.json
84
+ └── ralph-loop.state.json
136
85
  ```
137
86
 
138
- ### 2) 구현: 완료될 때까지 반복
87
+ ## 작동 방식
139
88
 
140
- `/ralphy:implement`를 사용하여 작업을 구현하고 테스트를 추가합니다.
89
+ **Ralph Wiggum Loop:** AI가 작업 완료까지 동일한 프롬프트를 반복적으로 받습니다. 각 반복에서 파일의 이전 작업을 보고 자기 수정합니다.
141
90
 
142
- Ralph 루프 러너를 통해 실행하는 경우, 에이전트는 **모든 작업이 완료되고 테스트가 통과했을 때만** 다음을 출력해야 합니다:
91
+ **OpenSpec:** 코드 전에 스펙. 구조화된 스펙과 인수 기준으로 AI가 무엇을 빌드해야 하는지 정확히 있습니다.
143
92
 
144
- ```
145
- <promise>TASK_COMPLETE</promise>
146
- ```
93
+ **결합하는 이유:**
147
94
 
148
- ### 3) 검증: 테스트로 인수 기준 증명
95
+ | 문제 | 해결책 |
96
+ |------|--------|
97
+ | 채팅의 모호한 요구사항 | 스펙이 의도를 고정 |
98
+ | AI가 중간에 멈춤 | 완료될 때까지 루프 재시도 |
99
+ | 검증 방법 없음 | 테스트가 출력 검증 |
100
+ | 도구별 설정 | 하나의 명령으로 모두 해결 |
149
101
 
150
- `/ralphy:validate`를 사용하여 테스트를 실행하고 통과한 테스트를 OpenSpec 시나리오에 매핑합니다.
102
+ ## 설치 옵션
151
103
 
152
- ### 4) 아카이브: 변경을 스펙에 병합
104
+ ```bash
105
+ # npx (권장)
106
+ npx ralphy-spec init
153
107
 
154
- `/ralphy:archive`를 사용하고, 가능하다면 OpenSpec CLI를 사용합니다:
108
+ # 전역 설치
109
+ npm install -g ralphy-spec
110
+ ralphy-spec init
155
111
 
156
- ```bash
157
- openspec archive <change-name> --yes
112
+ # 특정 도구 지정
113
+ ralphy-spec init --tools cursor,claude-code,opencode
158
114
  ```
159
115
 
160
116
  ## 감사의 말
161
117
 
162
- Ralphy-Spec은 거인의 어깨 위에 서 있습니다:
163
-
164
- - **Ralph Wiggum 방법론** - [Geoffrey Huntley](https://ghuntley.com/ralph)가 고안. AI 에이전트가 반복을 통해 자기 수정할 수 있다는 통찰력은 AI 지원 개발에 대한 우리의 생각을 바꾸었습니다.
118
+ 다음 프로젝트를 기반으로 합니다:
165
119
 
166
- - **[opencode-ralph-wiggum](https://github.com/Th0rgal/opencode-ralph-wiggum)** by [@Th0rgal](https://github.com/Th0rgal) - 우리의 통합 방식에 영감을 준 OpenCode용 깔끔한 Ralph 루프 CLI 구현.
167
-
168
- - **[OpenSpec](https://github.com/Fission-AI/OpenSpec)** by [Fission-AI](https://github.com/Fission-AI) - AI 코딩에 구조와 예측 가능성을 부여하는 스펙 기반 개발 프레임워크.
169
-
170
- 이러한 접근 방식을 개척한 이 프로젝트들과 유지 관리자들에게 감사드립니다.
171
-
172
- ## 개발
173
-
174
- ```bash
175
- npm install
176
- npm run build
177
- node bin/ralphy-spec.js --help
178
- ```
120
+ - **[Ralph 방법론](https://ghuntley.com/ralph)** by Geoffrey Huntley
121
+ - **[opencode-ralph-wiggum](https://github.com/Th0rgal/opencode-ralph-wiggum)** by @Th0rgal
122
+ - **[OpenSpec](https://github.com/Fission-AI/OpenSpec)** by Fission-AI
179
123
 
180
124
  ## 라이선스
181
125