@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.
- package/LICENSE +21 -0
- package/README.ja.md +400 -0
- package/README.ko.md +409 -0
- package/README.md +416 -0
- package/README.zh-CN.md +436 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.js +298 -0
- package/dist/extend.d.ts +13 -0
- package/dist/extend.js +286 -0
- package/dist/hook-parser.d.ts +15 -0
- package/dist/hook-parser.js +95 -0
- package/dist/i18n/index.d.ts +5 -0
- package/dist/i18n/index.js +20 -0
- package/dist/i18n/messages.d.ts +28 -0
- package/dist/i18n/messages.js +49 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +4 -0
- package/dist/installer.d.ts +30 -0
- package/dist/installer.js +165 -0
- package/dist/marker.d.ts +11 -0
- package/dist/marker.js +25 -0
- package/dist/platforms/amazon-q.d.ts +2 -0
- package/dist/platforms/amazon-q.js +12 -0
- package/dist/platforms/antigravity.d.ts +2 -0
- package/dist/platforms/antigravity.js +12 -0
- package/dist/platforms/auggie.d.ts +2 -0
- package/dist/platforms/auggie.js +15 -0
- package/dist/platforms/claude.d.ts +2 -0
- package/dist/platforms/claude.js +7 -0
- package/dist/platforms/cline.d.ts +2 -0
- package/dist/platforms/cline.js +11 -0
- package/dist/platforms/codebuddy.d.ts +2 -0
- package/dist/platforms/codebuddy.js +16 -0
- package/dist/platforms/codex.d.ts +2 -0
- package/dist/platforms/codex.js +7 -0
- package/dist/platforms/continue.d.ts +2 -0
- package/dist/platforms/continue.js +16 -0
- package/dist/platforms/costrict.d.ts +2 -0
- package/dist/platforms/costrict.js +15 -0
- package/dist/platforms/crush.d.ts +2 -0
- package/dist/platforms/crush.js +19 -0
- package/dist/platforms/cursor.d.ts +2 -0
- package/dist/platforms/cursor.js +18 -0
- package/dist/platforms/factory.d.ts +2 -0
- package/dist/platforms/factory.js +15 -0
- package/dist/platforms/gemini.d.ts +2 -0
- package/dist/platforms/gemini.js +14 -0
- package/dist/platforms/github-copilot.d.ts +2 -0
- package/dist/platforms/github-copilot.js +12 -0
- package/dist/platforms/iflow.d.ts +2 -0
- package/dist/platforms/iflow.js +18 -0
- package/dist/platforms/index.d.ts +10 -0
- package/dist/platforms/index.js +68 -0
- package/dist/platforms/kilocode.d.ts +2 -0
- package/dist/platforms/kilocode.js +8 -0
- package/dist/platforms/kiro.d.ts +2 -0
- package/dist/platforms/kiro.js +12 -0
- package/dist/platforms/opencode.d.ts +2 -0
- package/dist/platforms/opencode.js +12 -0
- package/dist/platforms/pi.d.ts +2 -0
- package/dist/platforms/pi.js +12 -0
- package/dist/platforms/qoder.d.ts +2 -0
- package/dist/platforms/qoder.js +19 -0
- package/dist/platforms/qwen.d.ts +2 -0
- package/dist/platforms/qwen.js +14 -0
- package/dist/platforms/roocode.d.ts +2 -0
- package/dist/platforms/roocode.js +11 -0
- package/dist/platforms/toml.d.ts +9 -0
- package/dist/platforms/toml.js +18 -0
- package/dist/platforms/trae.d.ts +2 -0
- package/dist/platforms/trae.js +11 -0
- package/dist/platforms/types.d.ts +19 -0
- package/dist/platforms/types.js +1 -0
- package/dist/platforms/windsurf.d.ts +2 -0
- package/dist/platforms/windsurf.js +19 -0
- package/dist/platforms/yaml.d.ts +10 -0
- package/dist/platforms/yaml.js +30 -0
- package/dist/prompts/platform-select.d.ts +1 -0
- package/dist/prompts/platform-select.js +174 -0
- package/dist/skills/generate.d.ts +13 -0
- package/dist/skills/generate.js +16 -0
- package/dist/templates.d.ts +20 -0
- package/dist/templates.js +98 -0
- package/dist/ui/ascii-logo.d.ts +6 -0
- package/dist/ui/ascii-logo.js +45 -0
- package/dist/ui/colors.d.ts +6 -0
- package/dist/ui/colors.js +17 -0
- package/dist/ui/welcome.d.ts +1 -0
- package/dist/ui/welcome.js +77 -0
- package/package.json +51 -0
- package/templates/commands/context.md +92 -0
- package/templates/commands/design.md +113 -0
- package/templates/commands/go.md +84 -0
- package/templates/commands/goal.md +360 -0
- package/templates/commands/overview.md +78 -0
- package/templates/commands/recap.md +77 -0
- package/templates/commands/roadmap.md +99 -0
- package/templates/commands/scout.md +89 -0
- package/templates/commands/verify.md +140 -0
- package/templates/skills/opengoal-flow/SKILL.md +169 -0
- 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)を参照してください。
|