@opellen/opengoal 1.0.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 (101) hide show
  1. package/LICENSE +21 -0
  2. package/README.ja.md +400 -0
  3. package/README.ko.md +409 -0
  4. package/README.md +416 -0
  5. package/README.zh-CN.md +436 -0
  6. package/dist/cli.d.ts +2 -0
  7. package/dist/cli.js +298 -0
  8. package/dist/extend.d.ts +13 -0
  9. package/dist/extend.js +286 -0
  10. package/dist/hook-parser.d.ts +15 -0
  11. package/dist/hook-parser.js +95 -0
  12. package/dist/i18n/index.d.ts +5 -0
  13. package/dist/i18n/index.js +20 -0
  14. package/dist/i18n/messages.d.ts +28 -0
  15. package/dist/i18n/messages.js +49 -0
  16. package/dist/index.d.ts +4 -0
  17. package/dist/index.js +4 -0
  18. package/dist/installer.d.ts +30 -0
  19. package/dist/installer.js +165 -0
  20. package/dist/marker.d.ts +11 -0
  21. package/dist/marker.js +25 -0
  22. package/dist/platforms/amazon-q.d.ts +2 -0
  23. package/dist/platforms/amazon-q.js +12 -0
  24. package/dist/platforms/antigravity.d.ts +2 -0
  25. package/dist/platforms/antigravity.js +12 -0
  26. package/dist/platforms/auggie.d.ts +2 -0
  27. package/dist/platforms/auggie.js +15 -0
  28. package/dist/platforms/claude.d.ts +2 -0
  29. package/dist/platforms/claude.js +7 -0
  30. package/dist/platforms/cline.d.ts +2 -0
  31. package/dist/platforms/cline.js +11 -0
  32. package/dist/platforms/codebuddy.d.ts +2 -0
  33. package/dist/platforms/codebuddy.js +16 -0
  34. package/dist/platforms/codex.d.ts +2 -0
  35. package/dist/platforms/codex.js +7 -0
  36. package/dist/platforms/continue.d.ts +2 -0
  37. package/dist/platforms/continue.js +16 -0
  38. package/dist/platforms/costrict.d.ts +2 -0
  39. package/dist/platforms/costrict.js +15 -0
  40. package/dist/platforms/crush.d.ts +2 -0
  41. package/dist/platforms/crush.js +19 -0
  42. package/dist/platforms/cursor.d.ts +2 -0
  43. package/dist/platforms/cursor.js +18 -0
  44. package/dist/platforms/factory.d.ts +2 -0
  45. package/dist/platforms/factory.js +15 -0
  46. package/dist/platforms/gemini.d.ts +2 -0
  47. package/dist/platforms/gemini.js +14 -0
  48. package/dist/platforms/github-copilot.d.ts +2 -0
  49. package/dist/platforms/github-copilot.js +12 -0
  50. package/dist/platforms/iflow.d.ts +2 -0
  51. package/dist/platforms/iflow.js +18 -0
  52. package/dist/platforms/index.d.ts +10 -0
  53. package/dist/platforms/index.js +68 -0
  54. package/dist/platforms/kilocode.d.ts +2 -0
  55. package/dist/platforms/kilocode.js +8 -0
  56. package/dist/platforms/kiro.d.ts +2 -0
  57. package/dist/platforms/kiro.js +12 -0
  58. package/dist/platforms/opencode.d.ts +2 -0
  59. package/dist/platforms/opencode.js +12 -0
  60. package/dist/platforms/pi.d.ts +2 -0
  61. package/dist/platforms/pi.js +12 -0
  62. package/dist/platforms/qoder.d.ts +2 -0
  63. package/dist/platforms/qoder.js +19 -0
  64. package/dist/platforms/qwen.d.ts +2 -0
  65. package/dist/platforms/qwen.js +14 -0
  66. package/dist/platforms/roocode.d.ts +2 -0
  67. package/dist/platforms/roocode.js +11 -0
  68. package/dist/platforms/toml.d.ts +9 -0
  69. package/dist/platforms/toml.js +18 -0
  70. package/dist/platforms/trae.d.ts +2 -0
  71. package/dist/platforms/trae.js +11 -0
  72. package/dist/platforms/types.d.ts +19 -0
  73. package/dist/platforms/types.js +1 -0
  74. package/dist/platforms/windsurf.d.ts +2 -0
  75. package/dist/platforms/windsurf.js +19 -0
  76. package/dist/platforms/yaml.d.ts +10 -0
  77. package/dist/platforms/yaml.js +30 -0
  78. package/dist/prompts/platform-select.d.ts +1 -0
  79. package/dist/prompts/platform-select.js +174 -0
  80. package/dist/skills/generate.d.ts +13 -0
  81. package/dist/skills/generate.js +16 -0
  82. package/dist/templates.d.ts +20 -0
  83. package/dist/templates.js +98 -0
  84. package/dist/ui/ascii-logo.d.ts +6 -0
  85. package/dist/ui/ascii-logo.js +45 -0
  86. package/dist/ui/colors.d.ts +6 -0
  87. package/dist/ui/colors.js +17 -0
  88. package/dist/ui/welcome.d.ts +1 -0
  89. package/dist/ui/welcome.js +77 -0
  90. package/package.json +51 -0
  91. package/templates/commands/context.md +92 -0
  92. package/templates/commands/design.md +113 -0
  93. package/templates/commands/go.md +84 -0
  94. package/templates/commands/goal.md +360 -0
  95. package/templates/commands/overview.md +78 -0
  96. package/templates/commands/recap.md +77 -0
  97. package/templates/commands/roadmap.md +99 -0
  98. package/templates/commands/scout.md +89 -0
  99. package/templates/commands/verify.md +140 -0
  100. package/templates/skills/opengoal-flow/SKILL.md +169 -0
  101. package/templates/skills/opengoal-subagent/SKILL.md +159 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 San
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.ja.md ADDED
@@ -0,0 +1,400 @@
1
+ <div align="center">
2
+ <picture>
3
+ <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/opellen/opengoal/main/assets/opengoal-logo-wordmark-dark.webp"/>
4
+ <img src="https://raw.githubusercontent.com/opellen/opengoal/main/assets/opengoal-logo-wordmark.webp" alt="OpenGoal" width="180"/>
5
+ </picture>
6
+ <p><strong>ゴール中心のAIハーネス。開かれた構造、明確な現在。</strong></p>
7
+ <p>ひとつの問い、ひとつのファイル — <code>CONTEXT.md</code>、<code>GOAL.md</code>、<code>ROADMAP.md</code></p>
8
+ <p>
9
+ <code>GOAL.md</code> を開けば<b>今何をすべきか</b>がわかります。<br/>
10
+ <code>CONTEXT.md</code> を開けば<b>今の文脈</b>がわかります。<br/>
11
+ <code>ROADMAP.md</code> を開けば<b>今の全体像</b>がわかります。
12
+ </p>
13
+ <p><a href="README.md">English</a> · <a href="README.ko.md">한국어</a> · <a href="README.zh-CN.md">简体中文</a> · <strong>日本語</strong></p>
14
+ </div>
15
+
16
+ > このドキュメントは英語版の翻訳であり、英語版より古い場合があります。正本は英語版です。翻訳の修正 PR を歓迎します。
17
+
18
+ ## これは何か
19
+
20
+ OpenGoalは、現在のゴールをプレーンなMarkdownで可視化し、あなたとAIエージェントの双方がいつでも確認できるようにします。
21
+
22
+ npxコマンドひとつで、Markdownのスラッシュコマンドとエージェントスキルがプロジェクトにインストールされます。その後はランタイムを必要としません — CLIが処理に介在することも、フックがあなたの操作を横取りすることも、MCPサーバーがツール定義を保持し続けることもありません。ディスク上に残るのは、エージェントが読み込み、あなたが好きなエディタで編集できるMarkdownだけです。
23
+
24
+ ## 何を解決するか
25
+
26
+ **今すぐやるべきことが見えない。**
27
+ 現在のゴールは、状態ファイルやタスクリスト、設計文書のあちこちに散らばってしまいます。
28
+ ひとつのファイルを開くだけでは次に何をすべきか一目でわからず、それはAIエージェントにとっても同じです。
29
+ むしろエージェントの方が厄介です。最後に読んだ断片だけを頼りに、自信満々で作業を進めてしまうからです。
30
+
31
+ OpenGoalでは、ひとつの問いがひとつのファイルに対応します。
32
+
33
+ ```text
34
+ ROADMAP.md ───────── where am I in the big picture?
35
+ CONTEXT.md ────── what is this project?
36
+ ● GOAL.md ── what do I do now?
37
+ ```
38
+
39
+ **コンテキストを保つコストが、コンテキストそのものより高くついてはいけない。**
40
+ セッションをまたいで状態を維持しようとするフレームワークは、CLI・フック・MCPサーバーに頼りがちです。
41
+ ちょっとした調査のたびにCLIが起動し、あらゆる操作をフックが横取りし、設定済みのMCPサーバーはツール定義のためだけに、それを一度も呼ばないセッションでもトークンを消費します。永続性には払う価値がありますが、その代償には見合いません。
42
+
43
+ ## クイックスタート
44
+
45
+ ```bash
46
+ npx @opellen/opengoal init
47
+ ```
48
+
49
+ Markdownコマンドがプロジェクトにインストールされます。これ以降はCLIを必要としません。
50
+
51
+ ```
52
+ /opgl:scout # Start session — just remember this
53
+ ```
54
+
55
+ 新規プロジェクトでも既存のコードベースでも、scoutが現在の状態を読み取り、次の一歩へ導いてくれます。
56
+ 既存のコードがある場合はコンテキストのセットアップ(`/opgl:context`)から始まります。空のプロジェクトの場合は、会話を通じてアイデアを掘り下げるところから始まります。
57
+
58
+ ほとんどのコマンドは初回利用時に`init`を自動実行します — `/opgl:goal "my goal"`は`init`と入力しなくてもそのまま動作します。
59
+
60
+ ### オプション
61
+
62
+ ```bash
63
+ opengoal init --docs .planning # Use a different path instead of docs/
64
+ opengoal init --codebase src # Point templates at a sub-directory codebase (default: .)
65
+ opengoal init --tools cursor # Install for a specific tool
66
+ opengoal init --tools cursor,windsurf # Multiple tools
67
+ opengoal init --no-subagent # Disable subagent delegation (enabled by default)
68
+ opengoal init --root path/to/proj # Install into a different project directory
69
+ opengoal init --force # Overwrite existing files
70
+ opengoal init --dry-run # Preview files to install
71
+ opengoal init --prefix <name> # Slash-command prefix (default: opgl)
72
+ opengoal init --from-prefix <name> # Clean up command files left by a previous prefix
73
+ ```
74
+
75
+ `--tools`は`Claude Code`、`Cursor`、`Windsurf`など[20以上のツール](docs/supported-tools.md)を対象にできます。
76
+
77
+ ## ドキュメント構成
78
+
79
+ ```
80
+ docs/
81
+ ├── CONTEXT.md ← Project context, principles, workflow
82
+ ├── GOAL.md ← Current objective and checklist
83
+ ├── CHECKPOINT.md ← Last session progress
84
+ ├── DESIGN.md ← Implementation design (as needed)
85
+ ├── PLAN.md ← Implementation plan (auto-generated for complex tasks)
86
+ ├── ROADMAP.md ← Milestone-based overall plan
87
+ ├── BACKLOG.md ← Deferred out-of-scope discoveries
88
+ ├── OVERVIEW.md ← Full project overview (as needed)
89
+ └── suspended/ ← Suspended goals and parked sub-goals
90
+ ```
91
+
92
+ | ドキュメント | 答える問い | 寿命 |
93
+ |----------|-------------------|----------|
94
+ | `CONTEXT.md` | このプロジェクトは何で、どう作業すればいいか? | プロジェクトの存続期間 |
95
+ | `GOAL.md` | 今何をすべきか? | ゴール達成まで |
96
+ | `CHECKPOINT.md` | 前回のセッションはどこで終わったか? | セッションごと(上書き) |
97
+ | `DESIGN.md` | どう実装するか? | ゴール達成まで |
98
+ | `PLAN.md` | このタスクをどう実装するか? | 自動生成 → 自動アーカイブ |
99
+ | `ROADMAP.md` | 全体の中で今どこにいるか? | プロジェクトの存続期間 |
100
+ | `BACKLOG.md` | 発見したが後回しにしたことは何か? | プロジェクトの存続期間 |
101
+ | `OVERVIEW.md` | プロジェクト全体はどんな姿か? | プロジェクトの存続期間 |
102
+
103
+ `GOAL.md`だけから始めて`ROADMAP.md`へ広げていくのでも、`ROADMAP.md`で全体像を描いてから`GOAL.md`へ落とし込んでいくのでも構いません。どちらの進め方でも、OpenGoalは「今何をすべきか」をMarkdown上に見える状態に保ちます。
104
+
105
+ <details>
106
+ <summary>GOAL.mdの例</summary>
107
+
108
+ ```markdown
109
+ ---
110
+ id: session-auth
111
+ goal: Migrate auth from JWT to session-based
112
+ status: in-progress
113
+ started: 2026-04-04
114
+ ---
115
+
116
+ ## Tasks
117
+
118
+ - [x] 1. Set up session store
119
+ - [ ] 2. Replace middleware — Step 1/2 (session middleware in progress)
120
+ - [x] 2.1. Implement session middleware
121
+ - [ ] 2.2. Remove legacy JWT code
122
+ - [ ] 3. DB schema migration
123
+ - [ ] 4. Integration tests
124
+ ```
125
+
126
+ </details>
127
+
128
+ <details>
129
+ <summary>CONTEXT.mdの例</summary>
130
+
131
+ ```markdown
132
+ # Project Overview
133
+ Express + PostgreSQL REST API server.
134
+ Auth migration from JWT to session-based in progress.
135
+
136
+ # Architecture
137
+ - src/server/ — HTTP routing (Express)
138
+ - src/auth/ — Auth middleware
139
+ - src/db/ — Database access layer
140
+
141
+ # Principles
142
+ - Zero downtime during migration
143
+ - Backward compatibility with existing clients
144
+
145
+ # Resources
146
+ - DB: PostgreSQL 14, migrations via prisma
147
+ - Auth: express-session + connect-pg-simple
148
+ ```
149
+
150
+ </details>
151
+
152
+ <details>
153
+ <summary>ROADMAP.mdの例</summary>
154
+
155
+ ```markdown
156
+ ---
157
+ id: api-v2
158
+ title: API v2 migration
159
+ status: active
160
+ started: 2026-03-01
161
+ ---
162
+
163
+ - [x] **M1: Auth migration**
164
+ - [ ] **M2: Rate limiting**
165
+ - [ ] **M3: API versioning**
166
+ ```
167
+
168
+ </details>
169
+
170
+ ## コマンド
171
+
172
+ | | コマンド | 説明 |
173
+ |---|---------|-------------|
174
+ | <picture><source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/opellen/opengoal/main/assets/icons/opengoal-icon-scout-dark.webp"><img src="https://raw.githubusercontent.com/opellen/opengoal/main/assets/icons/opengoal-icon-scout.webp" alt="" width="20"/></picture> | `/opgl:scout` | セッションを開始 — ドキュメントを読み、現在の状態を評価し、次のアクションを提案します |
175
+ | <picture><source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/opellen/opengoal/main/assets/icons/opengoal-icon-go-dark.webp"><img src="https://raw.githubusercontent.com/opellen/opengoal/main/assets/icons/opengoal-icon-go.webp" alt="" width="20"/></picture> | `/opgl:go` | ゴールを実行 — `GOAL.md`のタスクを順番に進めます |
176
+ | <picture><source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/opellen/opengoal/main/assets/icons/opengoal-icon-context-dark.webp"><img src="https://raw.githubusercontent.com/opellen/opengoal/main/assets/icons/opengoal-icon-context.webp" alt="" width="20"/></picture> | `/opgl:context` | `CONTEXT.md`の作成と同期 |
177
+ | <picture><source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/opellen/opengoal/main/assets/icons/opengoal-icon-goal-dark.webp"><img src="https://raw.githubusercontent.com/opellen/opengoal/main/assets/icons/opengoal-icon-goal.webp" alt="" width="20"/></picture> | `/opgl:goal` | `GOAL.md`の管理(init、breakdown、checkpoint、suspend、resume、subgoal、archive) |
178
+ | <picture><source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/opellen/opengoal/main/assets/icons/opengoal-icon-design-dark.webp"><img src="https://raw.githubusercontent.com/opellen/opengoal/main/assets/icons/opengoal-icon-design.webp" alt="" width="20"/></picture> | `/opgl:design` | `DESIGN.md`の管理(init、sync、archive) |
179
+ | <picture><source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/opellen/opengoal/main/assets/icons/opengoal-icon-roadmap-dark.webp"><img src="https://raw.githubusercontent.com/opellen/opengoal/main/assets/icons/opengoal-icon-roadmap.webp" alt="" width="20"/></picture> | `/opgl:roadmap` | `ROADMAP.md`のマイルストーン管理(init、add、archive) |
180
+ | <picture><source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/opellen/opengoal/main/assets/icons/opengoal-icon-overview-dark.webp"><img src="https://raw.githubusercontent.com/opellen/opengoal/main/assets/icons/opengoal-icon-overview.webp" alt="" width="20"/></picture> | `/opgl:overview` | `OVERVIEW.md`によるプロジェクト全体の概観 |
181
+ | <picture><source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/opellen/opengoal/main/assets/icons/opengoal-icon-verify-dark.webp"><img src="https://raw.githubusercontent.com/opellen/opengoal/main/assets/icons/opengoal-icon-verify.webp" alt="" width="20"/></picture> | `/opgl:verify` | ゴール・設計・実装の整合性を検証 |
182
+ | <picture><source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/opellen/opengoal/main/assets/icons/opengoal-icon-recap-dark.webp"><img src="https://raw.githubusercontent.com/opellen/opengoal/main/assets/icons/opengoal-icon-recap.webp" alt="" width="20"/></picture> | `/opgl:recap` | セッションの締めくくり — 決定事項を生きたドキュメントに同期 |
183
+
184
+ これらに加えて2つのスキルもインストールされます — `opengoal-flow`(いつ記録し、いつcheckpointを取り、いつ発見事項がそれ自体のゴールになるか)と`opengoal-subagent`(作業をどう分割し、メインエージェントが決して委譲しないものは何か)です。
185
+ スキルを直接呼び出すことはなく、必要なタイミングでコマンドがそれらを読み込みます。
186
+
187
+ ### 呼び出し方
188
+
189
+ 常に`/opgl:`と入力する必要はありません — 文脈から意図が明確な場合は、自然言語でも動作します。
190
+
191
+ | パターン | `/opgl`は必須か? | 例 |
192
+ |------|-------------------|---------|
193
+ | **明示的な呼び出し** | 必須 | `/opgl goal init`、`/opgl:goal init & design init` |
194
+ | **直前の提案への同意** | 不要 | AI: 「`/opgl:goal init`を推奨」→ You: "ok" / "go" |
195
+ | **アクティブなフロー中の継続** | 不要 | (goal init後) You: "breakdown now" |
196
+ | **タスク実行の意図** | 不要 | "proceed with task 6" → `/opgl:go`、"save progress" → `/opgl:goal checkpoint` |
197
+
198
+ 文脈が明確であれば、自然言語だけで実行がトリガーされます。`/opgl`は、文脈が曖昧なときのエスケープハッチとして機能します。
199
+
200
+ ## 利用の流れ
201
+
202
+ ### 既存プロジェクトへの適用
203
+
204
+ ```
205
+ You: /opgl:scout
206
+ AI: 既存のコードベースが見つかりました。CONTEXT.mdはまだありません。
207
+ `/opgl:context`でプロジェクトコンテキストをセットアップしますか?
208
+
209
+ You: /opgl:context init
210
+ AI: ✓ docs/CONTEXT.md を作成しました
211
+ ゴールを設定するには: `/opgl:goal init`
212
+
213
+ You: /opgl:goal Migrate auth module from JWT to session-based
214
+ AI: ✓ docs/GOAL.md を作成しました(5タスク)
215
+ `/opgl:design init`を推奨します — ファイルレベルの意思決定を伴う実装タスクです。
216
+
217
+ You: /opgl:design init
218
+ AI: ✓ docs/DESIGN.md を作成しました
219
+ セッションストアの選定、移行戦略、ロールバックプランを含みます
220
+
221
+ You: /opgl:go
222
+ AI: タスク1/5: セッションストアのセットアップ... ✓ 完了
223
+ タスク2/5: ミドルウェアの置き換え... ✓ 完了
224
+ タスク3/5にはDBスキーマの変更が必要です。進めますか?
225
+ ```
226
+
227
+ ### 新規プロジェクト
228
+
229
+ ```
230
+ You: /opgl:scout Let's discuss building a real-time collaborative editor
231
+ AI: (Discovery Mode — 技術スタック、要件、制約を検討中)
232
+ ...
233
+ ✓ docs/CONTEXT.md を作成しました
234
+
235
+ You: /opgl:roadmap init
236
+ AI: ✓ docs/ROADMAP.md を作成しました
237
+ ├── M1: コアエディタエンジン
238
+ ├── M2: リアルタイム同期(CRDT)
239
+ └── M3: デプロイとインフラ
240
+
241
+ You: /opgl:goal
242
+ AI: ROADMAP.mdからM1を選択しています。
243
+ ✓ docs/GOAL.md を作成しました
244
+
245
+ You: /opgl:goal breakdown
246
+ AI: 7つのサブタスクに分解しました
247
+
248
+ You: /opgl:goal breakdown 3
249
+ AI: タスク3を4つのサブタスクに分解しました(3.1–3.4)
250
+
251
+ You: /opgl:go
252
+ AI: タスク1/7: プロジェクト初期化... ✓ 完了
253
+ タスク2/7: エディタコアの実装... ✓ 完了
254
+ タスク3/7: CRDT同期エンジン... ✓ 完了
255
+
256
+ You: /opgl:goal checkpoint
257
+ AI: ✓ docs/CHECKPOINT.md を保存しました
258
+ (セッションが切れても、次のセッションで続きから再開できます)
259
+
260
+ ... (次のセッションに続き、全タスク完了)
261
+
262
+ You: /opgl:goal archive
263
+ AI: ✓ docs/archive/goals/2026-04-04-editor-core/ に4ファイルをアーカイブしました
264
+ (GOAL.md、DESIGN.md、PLAN.md、CHECKPOINT.md)
265
+ ROADMAP.mdでM1を完了にマークしました。
266
+ ```
267
+
268
+ ### 作業の再開
269
+
270
+ ```
271
+ You: /opgl:scout
272
+ AI: CONTEXT.md ✓ | GOAL.md ✓ (3/5完了)
273
+ 前回のセッションではAPIエンドポイントに取り組んでいました。
274
+ `/opgl:go`で再開しますか?
275
+ ```
276
+
277
+ ### コンテキストの圧縮後
278
+
279
+ 作業の途中で会話がコンパクション(圧縮)された場合は、コマンドを再度呼び出すだけで構いません。
280
+
281
+ ```
282
+ You: /opgl:go
283
+ AI: GOAL.md ✓ (3/7完了) — タスク4、ステップ2/3
284
+ 再開中: CRDT同期エンジンの競合解決。
285
+ ```
286
+
287
+ コマンドひとつですべてが復元されます — `GOAL.md`、そしてcheckpointを取っていればそれも — 作業は最初からではなく、`— Step N/M`の注記から再開されます。まず状態レポートが欲しい場合は`/opgl:scout`を使ってください。
288
+
289
+ ### ブロッカーへの対応
290
+
291
+ ゴールの途中で、先に対応しなければならない問題が発生した場合。
292
+
293
+ ```
294
+ You: (during Goal A) Let's fix this dependency bug first.
295
+ AI: 提案: /opgl:goal suspend + /opgl:goal init "Fix dependency bug"
296
+ You: ok
297
+ AI: ✓ Goal Aをdocs/suspended/goal-a/にサスペンドしました
298
+ ✓ ブロッカー用の新しいGOAL.mdを作成しました。
299
+
300
+ ... (ブロッカーに対応し、完了したらアーカイブ)
301
+
302
+ You: /opgl:goal resume
303
+ AI: 再開: Goal A。`/opgl:go`で続けますか?
304
+ ```
305
+
306
+ 入れ子になったブロッカーも同じパターンに従います — suspendは積み重なり、複数のゴールが一時停止中であればresumeが一覧を提示します。サブゴールが有効な場合は、まず`/opgl:goal subgoal pause`でそれを保留してください — サブゴールが有効な間は`suspend`と`init`は拒否されます。
307
+
308
+ ### サブゴールへの対応
309
+
310
+ 時には、発生した事柄がブロッカーではない場合もあります — ゴール自体は前進できます — しかしタスクよりも大きく、今すぐ必要で、ゴール自体とは種類の異なる作業であるため、`BACKLOG.md`に入れて先送りにするわけにもいきません。
311
+
312
+ ```
313
+ You: (during Goal A: job-application pipeline) I need a YAML→PDF portfolio builder for this — it needs its own architecture decisions first.
314
+ AI: Goal Aをブロックするものではありませんが、そのままインラインでやるには大きすぎます。提案: /opgl:goal subgoal init "Portfolio PDF builder"
315
+ You: ok
316
+ AI: ✓ Goal Aをdocs/suspended/job-application-pipeline/に保留しました
317
+ ✓ Goal Aにリンクした新しいGOAL.mdを作成しました。
318
+
319
+ ... (ポートフォリオツールを設計・構築し、完了したらアーカイブ)
320
+
321
+ AI: ✓ サブゴールをアーカイブしました。Goal Aに戻ります — ポインタータスクにチェックを入れました。
322
+ ```
323
+
324
+ それなしではゴールが前進できない場合は、代わりにブロッカーとして保留してください — 前述を参照。
325
+
326
+ ## 実際の現場では
327
+
328
+ 同じゴールドキュメントが、複数年がかりのアプリケーション開発から週末プロジェクトのプラグインまでを支えます。その幅の広さこそが要点です。
329
+
330
+ **長期にわたるビルド**
331
+
332
+ - [Planura](https://github.com/opellen/Planura) — ネイティブなダイレクトモデリング3Dアプリケーション(C++20 / Qt 6 / OpenGL): half-edgeジオメトリカーネル、CSGソリッドモデリング、推論駆動の描画を、専用フレームワーク [Ordo](https://github.com/opellen/Ordo) の上に実装。
333
+ - [Ordo](https://github.com/opellen/Ordo) — Planura から切り出された C++20 の型付きイベント・アプリケーションフレームワークです。イベントはただの構造体で、型がアイデンティティ、フィールドがペイロードです。
334
+ - リバースエンジニアリングのキャンペーン — OpenGoalが設計された本来の領域であり、ゴールは大きく、道筋は不明で、進捗が細かく分割できるかどうかにかかっています。
335
+
336
+ **アプリケーションとツール**
337
+
338
+ - [SeedNote](https://github.com/opellen/Seed-Note) — Android向けの構造化ブロックエディタ(Kotlin / Jetpack Compose)
339
+ - [ScreenUse](https://github.com/opellen/Screen-Use) — 実際のアプリを操作・記録する、シナリオ駆動のUIリプレイ&検証ツール
340
+ - [OpenIllust](https://github.com/opellen/OpenIllust) — Claude Code と Codex のためのキャンペーン駆動型 AI ベクター素材制作ツールです。このリポジトリのロゴ一式も OpenIllust で制作しました。
341
+
342
+ **特化ツール**
343
+
344
+ - [Hilo](https://github.com/opellen/Hilo) — Obsidian用ハイライトプラグイン
345
+ - [Loft](https://github.com/opellen/Loft) — Obsidian用画像アップロードプラグイン
346
+
347
+ ## **ギャップ**から
348
+
349
+ > **アプリケーション開発から始まったわけではありません。**
350
+ >
351
+ > OpenGoalは、ゴールが大きく、道筋が見えず、未知を検証可能な小さなステップへと分割し続けることでしか進捗を生めない仕事のために作られました。人間とエージェントが長い時間をかけてそれを手渡し合っていく — 元々は、長期にわたるリバースエンジニアリングのキャンペーンがその原型でした。それ以外の用途は、すべてこの形を受け継いでいます。
352
+ >
353
+ > **重厚なワークフローが常に必要だったわけではありません。**
354
+ >
355
+ > ちょっとした修正がしたいだけなのに、本当にここまで必要なのか? そう思うことがありました。
356
+ > 質問攻めと隙のない仕様書による徹底的な議論が、いつも必要だったわけではありません。
357
+ > 綿密なプロセスには魅力があります。ですがAIは吸収する量を増やし続け、私たちが寄りかかろうとしているセーフティネットこそが、実は行き過ぎた足かせになりつつあるのではないかと思うようになりました。
358
+ > それでも、コンテキストは残り続ける必要がありました。
359
+ >
360
+ > **「今」に集中したかった。**
361
+ >
362
+ > 仕様書やタスクリストの下敷きになっている「現在のゴール」を、そこから引っ張り出したかったのです。
363
+ > 自分にとってもAIにとっても、すぐに理解でき、集中できる「現在」を作りたかった。
364
+ > 小さく始めて大きく育てるのでも、全体像から降りてくるのでも構いません —
365
+ > どちらの方向であっても、「今何をすべきか」がすぐに見える構造が欲しかったのです。
366
+ >
367
+ > **このギャップを埋めたかった。**
368
+ >
369
+ > 私はときどきOpenSpecから始めてOpenGoalへ乗り換えたり、その逆をしたりします。
370
+ > Superpowersを組み合わせることもあります。
371
+ > うまく機能しているものは、そのままうまく使えばいい。
372
+ > 私に必要だったのは、完全性とパワーの手前に — あるいはその間に — 立てる何かでした。
373
+
374
+ ## 記法
375
+
376
+ OpenGoalのコマンドとスキルは、普通の散文としては書かれていません。`## Constraints`、`(condition) => action`形式のディスパッチルール、`for each`、`loop until`といった、小さなMarkdown記法に従っています。
377
+
378
+ この形式は、疑似コードプロンプティングに関する既発表の研究に基づいています。CodeAgents(2025)は、エージェントのワークフローを散文ではなく疑似コードとして記述することで、トークン使用量を55–87%削減しつつ、タスク性能を3–36ポイント向上させたと報告しています。
379
+
380
+ 構文と優先順位のルールは[docs/NOTATION.md](docs/NOTATION.md)にまとめられています — インストールしたコマンドを自分のプロジェクトで調整する際に役立ちます。この記法の背景にある根拠と研究については、[docs/notation-guide.md](docs/notation-guide.md)を参照してください。
381
+
382
+ ## コントリビュート
383
+
384
+ Issueは歓迎します — バグ、質問、アイデア、異論、何でも構いません。
385
+
386
+ プラットフォームアダプター(`src/platforms/`)についてはプルリクエストを受け付けています。プロンプトテンプレートは私自身がメンテナンスしています。詳しくは[CONTRIBUTING.md](CONTRIBUTING.md)を参照してください。
387
+
388
+ ### 開発
389
+
390
+ ```bash
391
+ git clone https://github.com/opellen/OpenGoal.git
392
+ cd OpenGoal
393
+ npm install
394
+ npm run build
395
+ npm test
396
+ ```
397
+
398
+ ## ライセンス
399
+
400
+ MITライセンス — 詳細は[LICENSE](LICENSE)を参照してください。