@deltafleet/goalkeeper 0.2.0 → 0.2.1
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/CHANGELOG.md +6 -0
- package/README.ja.md +11 -11
- package/README.ko.md +11 -11
- package/README.md +11 -11
- package/README.zh-CN.md +11 -11
- package/package.json +1 -1
- package/src/goalkeeper/agents/openai.yaml +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,12 @@ All notable changes to Goalkeeper are documented here.
|
|
|
4
4
|
|
|
5
5
|
This project follows [Semantic Versioning](https://semver.org/).
|
|
6
6
|
|
|
7
|
+
## [0.2.1] - 2026-05-18
|
|
8
|
+
|
|
9
|
+
- Simplified public invocation copy to `Use goalkeeper for this goal.`
|
|
10
|
+
- Rewrote the README problem example around a clearer long-session payment bug scenario.
|
|
11
|
+
- Shortened the UI default prompt so users are not asked to spell out Goalkeeper internals.
|
|
12
|
+
|
|
7
13
|
## [0.2.0] - 2026-05-18
|
|
8
14
|
|
|
9
15
|
- Renamed the public project to `goalkeeper`.
|
package/README.ja.md
CHANGED
|
@@ -39,15 +39,15 @@ Skill-compatible agent は、リクエストが metadata と強く一致する i
|
|
|
39
39
|
|
|
40
40
|
そのため、次のような goal だけで有効になることがあります。
|
|
41
41
|
|
|
42
|
-
> `/goal` Harden this release over a long-running session.
|
|
42
|
+
> `/goal` Harden this release over a long-running session. Use goalkeeper.
|
|
43
43
|
|
|
44
44
|
ただし skill activation は routing decision であり、private agent runtime hook ではありません。Goalkeeper がすべての goal に強制的に自分を適用することはできません。
|
|
45
45
|
|
|
46
46
|
重要な長期作業では、goal を作る時点、または goal 作成直後で本格作業に入る前に、明示的に呼び出すのがもっとも安全です。
|
|
47
47
|
|
|
48
|
-
> Use goalkeeper for this
|
|
48
|
+
> Use goalkeeper for this goal.
|
|
49
49
|
|
|
50
|
-
|
|
50
|
+
ユーザーが覚える必要がある文はここまでです。checkpoint、context pack、event log、失敗した試行、検証状態、helper script は、Goalkeeper workflow の中で agent が扱います。
|
|
51
51
|
|
|
52
52
|
## 問題
|
|
53
53
|
|
|
@@ -57,15 +57,15 @@ Skill-compatible agent は、リクエストが metadata と強く一致する i
|
|
|
57
57
|
|
|
58
58
|
実際のセッションを想像してください。
|
|
59
59
|
|
|
60
|
-
1. agent
|
|
61
|
-
2.
|
|
62
|
-
3.
|
|
63
|
-
4.
|
|
64
|
-
5.
|
|
65
|
-
6.
|
|
60
|
+
1. agent に決済バグの修正を任せます。
|
|
61
|
+
2. 早い段階で、`refunds` 周りのコードは legacy なので触るべきではないと分かります。
|
|
62
|
+
3. 最速の patch は `refunds` を直接編集する方法なので、ユーザーはその方針を拒否します。
|
|
63
|
+
4. agent は webhook handler 側に移そうとしますが、duplicate event のケースで失敗します。
|
|
64
|
+
5. 最終的に service layer に idempotency guard を置き、regression test で検証するルートが通ります。
|
|
65
|
+
6. テストが通ります。このルートが維持すべき安全なルートになります。
|
|
66
66
|
7. コンテキストが compact されます。
|
|
67
|
-
8.
|
|
68
|
-
9. goal
|
|
67
|
+
8. 後でエージェントは「決済バグはほぼ修正済み」というきれいな要約で戻ってきます。
|
|
68
|
+
9. goal は残っています。しかし、`refunds` が触ってはいけない場所だったこと、webhook の試行が失敗したこと、service-layer test が安全なルートを証明したことは薄れているかもしれません。
|
|
69
69
|
|
|
70
70
|
ここから drift が始まります。
|
|
71
71
|
|
package/README.ko.md
CHANGED
|
@@ -39,15 +39,15 @@ Skill-compatible agent는 설치된 skill 중 요청과 관련성이 높은 skil
|
|
|
39
39
|
|
|
40
40
|
그래서 아래처럼 goal 자체가 충분히 분명하면 자동으로 붙을 수 있습니다.
|
|
41
41
|
|
|
42
|
-
> `/goal` 이번 릴리스를 장기 세션으로 안정화해줘.
|
|
42
|
+
> `/goal` 이번 릴리스를 장기 세션으로 안정화해줘. goalkeeper를 사용해줘.
|
|
43
43
|
|
|
44
44
|
하지만 skill 활성화는 agent runtime hook이 아니라 routing 판단입니다. Goalkeeper가 모든 goal에 자신을 강제로 붙일 수는 없습니다.
|
|
45
45
|
|
|
46
46
|
중요한 장기 작업이라면 goal을 만들 때, 또는 goal을 만든 직후 본격 작업 전에 명시적으로 호출하는 편이 가장 안전합니다.
|
|
47
47
|
|
|
48
|
-
> 이
|
|
48
|
+
> 이 goal에는 goalkeeper를 사용해줘.
|
|
49
49
|
|
|
50
|
-
|
|
50
|
+
사용자가 기억할 문장은 여기까지입니다. checkpoint, context pack, event log, 실패한 시도, 검증 상태, helper script 같은 것은 Goalkeeper workflow 안에서 agent가 관리합니다.
|
|
51
51
|
|
|
52
52
|
## 문제
|
|
53
53
|
|
|
@@ -57,15 +57,15 @@ Skill-compatible agent는 설치된 skill 중 요청과 관련성이 높은 skil
|
|
|
57
57
|
|
|
58
58
|
실제 세션을 상상해보면 이렇습니다.
|
|
59
59
|
|
|
60
|
-
1. agent에게
|
|
61
|
-
2.
|
|
62
|
-
3.
|
|
63
|
-
4.
|
|
64
|
-
5.
|
|
65
|
-
6.
|
|
60
|
+
1. agent에게 결제 버그 수정을 맡깁니다.
|
|
61
|
+
2. 초반 조사에서 `refunds` 쪽 코드는 레거시라 건드리면 안 된다는 사실이 드러납니다.
|
|
62
|
+
3. 가장 빠른 patch는 `refunds`를 직접 고치는 방식이라, 사용자가 그 경로를 명시적으로 거부합니다.
|
|
63
|
+
4. agent는 webhook handler 쪽으로 옮겨보지만, duplicate event 케이스에서 실패합니다.
|
|
64
|
+
5. 결국 service layer에 idempotency guard를 두고 regression test로 막는 경로를 검증합니다.
|
|
65
|
+
6. 테스트가 통과합니다. 이제 이 경로가 유지되어야 하는 안전한 경로입니다.
|
|
66
66
|
7. 컨텍스트가 compact됩니다.
|
|
67
|
-
8. 나중에 에이전트는
|
|
68
|
-
9. goal은 기억하지만,
|
|
67
|
+
8. 나중에 에이전트는 “결제 버그는 거의 해결됨” 같은 깔끔한 요약으로 돌아옵니다.
|
|
68
|
+
9. goal은 기억하지만, `refunds`를 건드리면 안 된다는 점, webhook 시도가 실패했다는 점, service-layer test가 안전한 경로를 증명했다는 점은 희미해질 수 있습니다.
|
|
69
69
|
|
|
70
70
|
여기서 drift가 시작됩니다.
|
|
71
71
|
|
package/README.md
CHANGED
|
@@ -39,15 +39,15 @@ Skill-compatible agents can automatically load installed skills when a request s
|
|
|
39
39
|
|
|
40
40
|
So this can be enough:
|
|
41
41
|
|
|
42
|
-
> `/goal` Harden this release over a long-running session.
|
|
42
|
+
> `/goal` Harden this release over a long-running session. Use goalkeeper.
|
|
43
43
|
|
|
44
44
|
But skill activation is still a routing decision, not a private runtime hook. Goalkeeper cannot force itself onto every goal.
|
|
45
45
|
|
|
46
46
|
For important long-running work, the safest path is to be explicit when you create the goal, or immediately after creating it:
|
|
47
47
|
|
|
48
|
-
> Use goalkeeper for this
|
|
48
|
+
> Use goalkeeper for this goal.
|
|
49
49
|
|
|
50
|
-
After that, you should not have to
|
|
50
|
+
That is the whole user-facing instruction. After that, you should not have to name the checkpoint, context pack, event log, failed attempts, verification state, or helper scripts yourself. The agent runs Goalkeeper as part of the skill workflow.
|
|
51
51
|
|
|
52
52
|
## The Problem
|
|
53
53
|
|
|
@@ -57,15 +57,15 @@ But long goals are different.
|
|
|
57
57
|
|
|
58
58
|
Imagine a real session:
|
|
59
59
|
|
|
60
|
-
1. You ask an agent to
|
|
61
|
-
2.
|
|
62
|
-
3.
|
|
63
|
-
4.
|
|
64
|
-
5.
|
|
65
|
-
6. The
|
|
60
|
+
1. You ask an agent to fix a payment bug.
|
|
61
|
+
2. Early in the work, it discovers `refunds` is legacy code and should not be touched.
|
|
62
|
+
3. The quickest patch would edit `refunds`, so you reject that path.
|
|
63
|
+
4. The agent tries moving the fix into a webhook handler, but duplicate events break it.
|
|
64
|
+
5. It finally proves the safe route: put an idempotency guard in the service layer and cover it with a regression test.
|
|
65
|
+
6. The test passes. That route is now the one you want preserved.
|
|
66
66
|
7. The context compacts.
|
|
67
|
-
8. Later, the agent resumes from a clean summary: "
|
|
68
|
-
9. It still knows the goal, but may no longer
|
|
67
|
+
8. Later, the agent resumes from a clean summary: "payment bug mostly fixed."
|
|
68
|
+
9. It still knows the goal, but may no longer remember that `refunds` was off-limits, that the webhook attempt failed, or that the service-layer test is what made the route safe.
|
|
69
69
|
|
|
70
70
|
That is where drift starts.
|
|
71
71
|
|
package/README.zh-CN.md
CHANGED
|
@@ -39,15 +39,15 @@ npx skills add deltafleet/goalkeeper --agent claude-code codex
|
|
|
39
39
|
|
|
40
40
|
所以像下面这样的 goal 可能已经足够触发它:
|
|
41
41
|
|
|
42
|
-
> `/goal` Harden this release over a long-running session.
|
|
42
|
+
> `/goal` Harden this release over a long-running session. Use goalkeeper.
|
|
43
43
|
|
|
44
44
|
但 skill activation 仍然是 routing decision,不是私有的 agent runtime hook。Goalkeeper 不能强制自己附着到每一个 goal。
|
|
45
45
|
|
|
46
46
|
对于重要的长期任务,最稳妥的做法是在创建 goal 时,或创建 goal 后正式开始工作前,明确调用它:
|
|
47
47
|
|
|
48
|
-
> Use goalkeeper for this
|
|
48
|
+
> Use goalkeeper for this goal.
|
|
49
49
|
|
|
50
|
-
|
|
50
|
+
用户需要记住的句子到这里就够了。checkpoint、context pack、event log、失败尝试、验证状态和 helper scripts,都由 agent 在 Goalkeeper workflow 中处理。
|
|
51
51
|
|
|
52
52
|
## 问题
|
|
53
53
|
|
|
@@ -57,15 +57,15 @@ npx skills add deltafleet/goalkeeper --agent claude-code codex
|
|
|
57
57
|
|
|
58
58
|
想象一个真实会话:
|
|
59
59
|
|
|
60
|
-
1. 你让 agent
|
|
61
|
-
2.
|
|
62
|
-
3.
|
|
63
|
-
4.
|
|
64
|
-
5.
|
|
65
|
-
6.
|
|
60
|
+
1. 你让 agent 修一个支付 bug。
|
|
61
|
+
2. 早期调查发现,`refunds` 相关代码是 legacy,不能轻易动。
|
|
62
|
+
3. 最快的 patch 是直接改 `refunds`,所以你明确拒绝这条路。
|
|
63
|
+
4. agent 尝试把修复放到 webhook handler,但 duplicate event 场景会失败。
|
|
64
|
+
5. 最后它验证了安全路线:在 service layer 加 idempotency guard,并用 regression test 覆盖。
|
|
65
|
+
6. 测试通过了。这条路线现在是需要保留下来的安全路线。
|
|
66
66
|
7. 上下文被 compact。
|
|
67
|
-
8. 后来 agent
|
|
68
|
-
9. 它还记得 goal
|
|
67
|
+
8. 后来 agent 带着整洁摘要回来:“支付 bug 基本修好了。”
|
|
68
|
+
9. 它还记得 goal,但可能不再清楚 `refunds` 为什么不能动,webhook 尝试为什么失败,以及 service-layer test 为什么证明了正确路线。
|
|
69
69
|
|
|
70
70
|
drift 就从这里开始。
|
|
71
71
|
|
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
interface:
|
|
2
2
|
display_name: "Goalkeeper"
|
|
3
3
|
short_description: "Keep long goals oriented"
|
|
4
|
-
default_prompt: "Use $goalkeeper for this long-running goal
|
|
4
|
+
default_prompt: "Use $goalkeeper for this long-running goal."
|
|
5
5
|
brand_color: "#2563EB"
|