goalbuddy 0.2.10

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 (68) hide show
  1. package/CONTRIBUTING.md +45 -0
  2. package/LICENSE +21 -0
  3. package/README.md +215 -0
  4. package/examples/extend-catalog-workflow/goal.md +53 -0
  5. package/examples/extend-catalog-workflow/notes/T001-extension-model-map.md +47 -0
  6. package/examples/extend-catalog-workflow/notes/T002-architecture-decision.md +48 -0
  7. package/examples/extend-catalog-workflow/notes/T003-implementation-summary.md +43 -0
  8. package/examples/extend-catalog-workflow/notes/T004-root-extend-folder.md +24 -0
  9. package/examples/extend-catalog-workflow/notes/T005-layout-cleanup.md +46 -0
  10. package/examples/extend-catalog-workflow/notes/T006-catalog-location.md +50 -0
  11. package/examples/extend-catalog-workflow/notes/T999-completion-audit.md +36 -0
  12. package/examples/extend-catalog-workflow/state.yaml +327 -0
  13. package/examples/github-pr-workflow-extension/pr-handoff.md +46 -0
  14. package/examples/improve-goal-maker/goal.md +51 -0
  15. package/examples/improve-goal-maker/notes/T001-repo-map.md +59 -0
  16. package/examples/improve-goal-maker/notes/T002-risk-map.md +37 -0
  17. package/examples/improve-goal-maker/state.yaml +224 -0
  18. package/goal-maker/SKILL.md +18 -0
  19. package/goal-maker/agents/README.md +23 -0
  20. package/goal-maker/agents/config-snippet.toml +5 -0
  21. package/goal-maker/agents/goal_judge.toml +29 -0
  22. package/goal-maker/agents/goal_scout.toml +26 -0
  23. package/goal-maker/agents/goal_worker.toml +28 -0
  24. package/goal-maker/agents/openai.yaml +6 -0
  25. package/goal-maker/scripts/check-goal-state.mjs +370 -0
  26. package/goal-maker/scripts/install-agents.mjs +28 -0
  27. package/goal-maker/templates/agents.md +48 -0
  28. package/goal-maker/templates/goal-prompt.txt +1 -0
  29. package/goal-maker/templates/goal.md +71 -0
  30. package/goal-maker/templates/note.md +22 -0
  31. package/goal-maker/templates/state.yaml +125 -0
  32. package/goalbuddy/SKILL.md +484 -0
  33. package/goalbuddy/agents/README.md +23 -0
  34. package/goalbuddy/agents/config-snippet.toml +5 -0
  35. package/goalbuddy/agents/goal_judge.toml +29 -0
  36. package/goalbuddy/agents/goal_scout.toml +26 -0
  37. package/goalbuddy/agents/goal_worker.toml +28 -0
  38. package/goalbuddy/agents/openai.yaml +6 -0
  39. package/goalbuddy/scripts/check-goal-state.mjs +370 -0
  40. package/goalbuddy/scripts/install-agents.mjs +28 -0
  41. package/goalbuddy/templates/agents.md +48 -0
  42. package/goalbuddy/templates/goal-prompt.txt +1 -0
  43. package/goalbuddy/templates/goal.md +71 -0
  44. package/goalbuddy/templates/note.md +22 -0
  45. package/goalbuddy/templates/state.yaml +125 -0
  46. package/internal/assets/extend-release.png +0 -0
  47. package/internal/assets/extend-release.svg +83 -0
  48. package/internal/assets/goal-maker-flow.png +0 -0
  49. package/internal/cli/check-publish-version.mjs +86 -0
  50. package/internal/cli/goal-maker.mjs +1061 -0
  51. package/package.json +65 -0
  52. package/plugins/goalbuddy/.codex-plugin/plugin.json +48 -0
  53. package/plugins/goalbuddy/README.md +29 -0
  54. package/plugins/goalbuddy/assets/goalbuddy-icon.svg +8 -0
  55. package/plugins/goalbuddy/skills/goalbuddy/SKILL.md +484 -0
  56. package/plugins/goalbuddy/skills/goalbuddy/agents/README.md +23 -0
  57. package/plugins/goalbuddy/skills/goalbuddy/agents/config-snippet.toml +5 -0
  58. package/plugins/goalbuddy/skills/goalbuddy/agents/goal_judge.toml +29 -0
  59. package/plugins/goalbuddy/skills/goalbuddy/agents/goal_scout.toml +26 -0
  60. package/plugins/goalbuddy/skills/goalbuddy/agents/goal_worker.toml +28 -0
  61. package/plugins/goalbuddy/skills/goalbuddy/agents/openai.yaml +6 -0
  62. package/plugins/goalbuddy/skills/goalbuddy/scripts/check-goal-state.mjs +370 -0
  63. package/plugins/goalbuddy/skills/goalbuddy/scripts/install-agents.mjs +28 -0
  64. package/plugins/goalbuddy/skills/goalbuddy/templates/agents.md +48 -0
  65. package/plugins/goalbuddy/skills/goalbuddy/templates/goal-prompt.txt +1 -0
  66. package/plugins/goalbuddy/skills/goalbuddy/templates/goal.md +71 -0
  67. package/plugins/goalbuddy/skills/goalbuddy/templates/note.md +22 -0
  68. package/plugins/goalbuddy/skills/goalbuddy/templates/state.yaml +125 -0
@@ -0,0 +1,224 @@
1
+ # Goal Maker v2 state.yaml
2
+ # Board truth lives here. goal.md is the editable charter; notes/ holds long receipts only.
3
+
4
+ version: 2
5
+
6
+ goal:
7
+ title: "Improve Goal Maker"
8
+ slug: "improve-goal-maker"
9
+ kind: open_ended # specific | open_ended | recovery | audit
10
+ tranche: "Discover the highest-leverage local improvements to Goal Maker, complete the first safe implementation tranche, and leave a reviewable handoff for anything larger."
11
+ status: done # active | blocked | done
12
+
13
+ rules:
14
+ pm_owns_state: true
15
+ one_active_task: true
16
+ max_write_workers: 1
17
+ no_implementation_without_worker_or_pm_task: true
18
+ no_completion_without_judge_or_pm_audit: true
19
+
20
+ agents:
21
+ scout: installed
22
+ worker: installed
23
+ judge: installed
24
+
25
+ active_task: null
26
+
27
+ tasks:
28
+ - id: T001
29
+ type: scout
30
+ assignee: Scout
31
+ status: done
32
+ objective: "Map Goal Maker purpose, architecture, templates, scripts, tests, docs, verification commands, health signals, and improvement candidates."
33
+ inputs:
34
+ - README.md
35
+ - CONTRIBUTING.md
36
+ - package.json
37
+ - goal-maker/SKILL.md
38
+ - goal-maker/templates
39
+ - goal-maker/scripts
40
+ - goal-maker/test
41
+ - docs
42
+ constraints:
43
+ - "Read-only."
44
+ - "Do not edit implementation files."
45
+ - "Prefer concrete file-path evidence over generic advice."
46
+ - "Flag any mismatch between the skill contract, templates, checker, tests, and Codex agent behavior."
47
+ expected_output:
48
+ - "Repo map"
49
+ - "Verification commands"
50
+ - "Current failures or unknowns"
51
+ - "Ranked improvement candidates"
52
+ - "Candidate next tasks"
53
+ receipt:
54
+ result: done
55
+ note: notes/T001-repo-map.md
56
+ summary: "Repo map completed; verification is green, install/package checks work, and the top improvement area is Goal Maker workflow reliability around checker blind spots, agent installation assumptions, and template/skill drift."
57
+ evidence:
58
+ - README.md
59
+ - CONTRIBUTING.md
60
+ - package.json
61
+ - goal-maker/SKILL.md
62
+ - goal-maker/bin/goal-maker.mjs
63
+ - goal-maker/scripts/check-goal-state.mjs
64
+ - goal-maker/scripts/install-agents.mjs
65
+ - goal-maker/templates/state.yaml
66
+ - goal-maker/agents/goal_scout.toml
67
+ - goal-maker/agents/goal_worker.toml
68
+ - goal-maker/agents/goal_judge.toml
69
+ - goal-maker/test/check-goal-state.test.mjs
70
+ spawned_tasks:
71
+ - T002
72
+ - T003
73
+ - id: T002
74
+ type: scout
75
+ assignee: Scout
76
+ status: done
77
+ objective: "Investigate Goal Maker workflow risks, stale instructions, checker blind spots, and agent-installation assumptions."
78
+ inputs:
79
+ - "T001 receipt"
80
+ - goal-maker/agents
81
+ - goal-maker/scripts/check-goal-state.mjs
82
+ - goal-maker/scripts/install-agents.mjs
83
+ - goal-maker/templates
84
+ - goal-maker/test
85
+ constraints:
86
+ - "Read-only."
87
+ - "Do not edit implementation files."
88
+ - "Ground every risk in a file path, command result, or missing coverage."
89
+ expected_output:
90
+ - "Risk map"
91
+ - "Checker or template gaps"
92
+ - "Agent setup assumptions"
93
+ - "Small safe implementation candidates"
94
+ receipt:
95
+ result: done
96
+ note: notes/T002-risk-map.md
97
+ summary: "Risk map completed; doctor exits green with missing agents, checker accepts type/assignee mismatches, and update leaves stale agents unless forced."
98
+ evidence:
99
+ - goal-maker/bin/goal-maker.mjs
100
+ - goal-maker/scripts/check-goal-state.mjs
101
+ - goal-maker/scripts/install-agents.mjs
102
+ - goal-maker/test/check-goal-state.test.mjs
103
+ - README.md
104
+ spawned_tasks:
105
+ - T003
106
+ - id: T003
107
+ type: judge
108
+ assignee: Judge
109
+ status: done
110
+ objective: "Choose the first safe implementation tranche by impact, confidence, reversibility, and verification strength."
111
+ inputs:
112
+ - "T001 receipt"
113
+ - "T002 receipt if available"
114
+ - "Current dirty diff"
115
+ constraints:
116
+ - "Do not implement."
117
+ - "Pick small reviewable work."
118
+ - "Prefer changes that improve Goal Maker reliability or clarity without widening scope."
119
+ expected_output:
120
+ - "Decision"
121
+ - "First Worker task with allowed_files and verify commands"
122
+ - "Blocked or deferred tasks"
123
+ receipt:
124
+ result: done
125
+ decision: "Implement the doctor missing-agent reliability fix first; it directly supports the Goal Maker setup contract, is small, reversible, and can be verified with focused CLI tests plus npm run check."
126
+ evidence:
127
+ - examples/improve-goal-maker/notes/T001-repo-map.md
128
+ - examples/improve-goal-maker/notes/T002-risk-map.md
129
+ - goal-maker/bin/goal-maker.mjs
130
+ - package.json
131
+ next_allowed_task: T004
132
+ blocked_tasks:
133
+ - "Checker type/assignee mismatch fix deferred until after doctor reliability tranche."
134
+ - "Agent update overwrite semantics deferred because it may need owner policy on preserving local custom agents."
135
+ required_board_updates:
136
+ - "Set T004 active with allowed_files limited to the CLI and focused CLI test."
137
+ - id: T004
138
+ type: worker
139
+ assignee: Worker
140
+ status: done
141
+ objective: "Make `goal-maker doctor` fail when any required bundled agent definition is missing, with focused CLI test coverage."
142
+ allowed_files:
143
+ - goal-maker/bin/goal-maker.mjs
144
+ - goal-maker/test/goal-maker-cli.test.mjs
145
+ verify:
146
+ - npm run check
147
+ - tmp=$(mktemp -d); node goal-maker/bin/goal-maker.mjs install --codex-home "$tmp" >/dev/null && rm "$tmp/agents/goal_worker.toml" && ! node goal-maker/bin/goal-maker.mjs doctor --codex-home "$tmp"; rc=$?; rm -rf "$tmp"; exit $rc
148
+ stop_if:
149
+ - "Need files outside allowed_files."
150
+ - "Behavior is ambiguous."
151
+ - "Verification fails twice."
152
+ - "Need to touch unrelated asset changes in the dirty worktree."
153
+ receipt:
154
+ result: done
155
+ changed_files:
156
+ - goal-maker/bin/goal-maker.mjs
157
+ - goal-maker/test/goal-maker-cli.test.mjs
158
+ commands:
159
+ - cmd: node --test goal-maker/test/goal-maker-cli.test.mjs
160
+ status: fail_expected_red
161
+ - cmd: node --test goal-maker/test/goal-maker-cli.test.mjs
162
+ status: pass
163
+ - cmd: node --check goal-maker/bin/goal-maker.mjs
164
+ status: pass
165
+ - cmd: npm run check
166
+ status: pass
167
+ - cmd: tmp=$(mktemp -d); node goal-maker/bin/goal-maker.mjs install --codex-home "$tmp" >/dev/null && rm "$tmp/agents/goal_worker.toml" && ! node goal-maker/bin/goal-maker.mjs doctor --codex-home "$tmp"; rc=$?; rm -rf "$tmp"; exit $rc
168
+ status: pass
169
+ - cmd: git diff --check
170
+ status: pass
171
+ summary: "`goal-maker doctor` now reports `missing_agents` and exits non-zero when any required bundled agent definition is absent; focused CLI coverage was added."
172
+ - id: T999
173
+ type: judge
174
+ assignee: Judge
175
+ status: done
176
+ objective: "Audit whether the current tranche is complete."
177
+ inputs:
178
+ - "All done task receipts"
179
+ - "Last verification"
180
+ - "Current dirty diff"
181
+ constraints:
182
+ - "Do not implement."
183
+ - "Completion requires evidence from receipts and verification."
184
+ expected_output:
185
+ - "complete | not_complete"
186
+ - "missing evidence"
187
+ - "next task if not complete"
188
+ receipt:
189
+ result: done
190
+ decision: complete
191
+ summary: "Current tranche is complete: Scout mapped the repo, Scout/Judge selected the doctor missing-agent reliability fix, Worker implemented it inside allowed files, and fresh verification passed."
192
+ evidence:
193
+ - examples/improve-goal-maker/notes/T001-repo-map.md
194
+ - examples/improve-goal-maker/notes/T002-risk-map.md
195
+ - goal-maker/bin/goal-maker.mjs
196
+ - goal-maker/test/goal-maker-cli.test.mjs
197
+ verification:
198
+ - cmd: npm run check
199
+ status: pass
200
+ - cmd: tmp=$(mktemp -d); node goal-maker/bin/goal-maker.mjs install --codex-home "$tmp" >/dev/null && rm "$tmp/agents/goal_worker.toml" && ! node goal-maker/bin/goal-maker.mjs doctor --codex-home "$tmp"; rc=$?; rm -rf "$tmp"; exit $rc
201
+ status: pass
202
+ - cmd: git diff --check
203
+ status: pass
204
+ - cmd: node goal-maker/scripts/check-goal-state.mjs examples/improve-goal-maker/state.yaml
205
+ status: pass
206
+ deferred:
207
+ - "Checker type/assignee mismatch validation."
208
+ - "Agent update overwrite semantics."
209
+ - "Optional checker validation for missing or invalid agents section."
210
+
211
+ checks:
212
+ dirty_fingerprint: unknown
213
+ last_verification:
214
+ result: pass
215
+ task: T999
216
+ commands:
217
+ - cmd: npm run check
218
+ status: pass
219
+ - cmd: tmp=$(mktemp -d); node goal-maker/bin/goal-maker.mjs install --codex-home "$tmp" >/dev/null && rm "$tmp/agents/goal_worker.toml" && ! node goal-maker/bin/goal-maker.mjs doctor --codex-home "$tmp"; rc=$?; rm -rf "$tmp"; exit $rc
220
+ status: pass
221
+ - cmd: git diff --check
222
+ status: pass
223
+ - cmd: node goal-maker/scripts/check-goal-state.mjs examples/improve-goal-maker/state.yaml
224
+ status: pass
@@ -0,0 +1,18 @@
1
+ ---
2
+ name: goal-maker
3
+ description: Compatibility alias for GoalBuddy during the rebrand migration window. Use $goalbuddy as the canonical skill.
4
+ ---
5
+
6
+ # GoalBuddy Compatibility Alias
7
+
8
+ `$goal-maker` is the previous name for `$goalbuddy`.
9
+
10
+ Use `$goalbuddy` for new work. This compatibility skill exists so older prompts and local installs do not fail during the 60-90 day migration window.
11
+
12
+ When invoked through `$goal-maker`:
13
+
14
+ 1. Tell the user Goal Maker has been rebranded to GoalBuddy.
15
+ 2. Show the canonical command: `$goalbuddy`.
16
+ 3. If the user wants to continue immediately, follow the same workflow as `$goalbuddy`: run diagnostic intake, create or repair `docs/goals/<slug>/goal.md` and `state.yaml`, preserve one active task, and print `/goal Follow docs/goals/<slug>/goal.md.` without starting `/goal` automatically.
17
+
18
+ Do not remove support for existing Goal Maker boards. GoalBuddy remains compatible with v2 `state.yaml` boards, existing `goal_*` agent role files, and installed extensions.
@@ -0,0 +1,23 @@
1
+ # Goal Maker Agents
2
+
3
+ This directory contains both skill metadata and bundled agent definitions.
4
+
5
+ - `openai.yaml` stays with the skill as metadata.
6
+ - `goal_*.toml` files can be copied into `.codex/agents/` for project-scoped agents or `~/.codex/agents/` for personal agents.
7
+
8
+ | Agent | File | Reasoning effort | Sandbox |
9
+ |---|---|---:|---|
10
+ | Scout | `goal_scout.toml` | medium | read-only |
11
+ | Worker | `goal_worker.toml` | low | workspace-write |
12
+ | Judge | `goal_judge.toml` | high | read-only |
13
+
14
+ Recommended config:
15
+
16
+ ```toml
17
+ [agents]
18
+ max_threads = 4
19
+ max_depth = 1
20
+ job_max_runtime_seconds = 1800
21
+ ```
22
+
23
+ Only the main `/goal` PM loop may select the active task, mark tasks done, update board truth, or mark the goal complete.
@@ -0,0 +1,5 @@
1
+ # Optional Codex config snippet for Goal Maker subagent runs.
2
+ [agents]
3
+ max_threads = 4
4
+ max_depth = 1
5
+ job_max_runtime_seconds = 1800
@@ -0,0 +1,29 @@
1
+ name = "goal_judge"
2
+ description = "High-thinking strategic reviewer for Goal Maker escalation: ambiguity, risky scope, source/product conflicts, safety/API/live decisions, and tranche completion."
3
+ model_reasoning_effort = "high"
4
+ sandbox_mode = "read-only"
5
+ nickname_candidates = ["Judge", "Reviewer", "Architect"]
6
+
7
+ developer_instructions = """
8
+ You are Judge for Goal Maker.
9
+
10
+ Thinking level: high.
11
+ Mode: strategic reviewer and escalation authority.
12
+
13
+ Think as a skeptical staff engineer and project-management systems designer. You decide and constrain; you do not broadly implement.
14
+
15
+ Use when source, tests, product behavior, API/live strategy, dirty scope, giant-file risk, safety/auth/money/persistence semantics, task priority, or completion readiness is ambiguous.
16
+
17
+ Do not approve based on lots of docs or lots of tests. Require coherent receipts and current verification.
18
+
19
+ Return a compact Judge receipt for the PM to paste into state.yaml:
20
+ - result
21
+ - decision
22
+ - evidence
23
+ - next_allowed_task when work may continue
24
+ - blocked_tasks when work should not proceed
25
+ - completion decision when auditing a tranche
26
+ - required board updates
27
+
28
+ Do not broadly implement, select the active task, or mark the goal complete yourself.
29
+ """
@@ -0,0 +1,26 @@
1
+ name = "goal_scout"
2
+ description = "Read-only evidence mapper for one Goal Maker task. Finds repo/source/spec evidence, verification commands, ambiguities, and candidate next tasks."
3
+ model_reasoning_effort = "medium"
4
+ sandbox_mode = "read-only"
5
+ nickname_candidates = ["Scout", "Mapper", "Tracer"]
6
+
7
+ developer_instructions = """
8
+ You are Scout for Goal Maker.
9
+
10
+ Thinking level: medium.
11
+ Mode: read-only evidence mapping.
12
+
13
+ You are read-only. Do not edit files, stage files, run destructive commands, or claim implementation is complete.
14
+
15
+ Given one active Scout task, map repo/source/spec evidence, verification commands, health signals, improvement candidates, target files, tests, and unresolved ambiguity.
16
+
17
+ Return a compact Scout receipt for the PM to paste into state.yaml:
18
+ - result
19
+ - summary
20
+ - evidence paths
21
+ - note path if findings are too large for the task card
22
+ - spawned_tasks when useful
23
+ - ambiguity requiring Judge
24
+
25
+ Do not select the active task or mark the goal complete.
26
+ """
@@ -0,0 +1,28 @@
1
+ name = "goal_worker"
2
+ description = "Low-thinking bounded implementer for exactly one Goal Maker Worker task with allowed files, verification commands, and stop conditions."
3
+ model_reasoning_effort = "low"
4
+ sandbox_mode = "workspace-write"
5
+ nickname_candidates = ["Worker", "Patch", "Fixer"]
6
+
7
+ developer_instructions = """
8
+ You are Worker for Goal Maker.
9
+
10
+ Thinking level: low.
11
+ Mode: one bounded writer.
12
+
13
+ Execute exactly one active Worker task. Do not broaden scope.
14
+
15
+ You may edit only the task's allowed_files. You may update only explicitly named control files if the PM included them in scope. Do not decide product behavior, retained/excluded scope, API/live/deployment strategy, architecture direction, parity, or completion readiness.
16
+
17
+ Stop immediately if required evidence is missing, files outside scope are needed, source/tests/product conflict, verification fails twice, or the diff exceeds the task budget.
18
+
19
+ Return a compact Worker receipt for the PM to paste into state.yaml:
20
+ - result
21
+ - changed_files
22
+ - commands run with pass/fail
23
+ - summary
24
+ - remaining_blockers
25
+ - needs_judge when strategy or ambiguity remains
26
+
27
+ Do not select the next active task or mark the goal complete.
28
+ """
@@ -0,0 +1,6 @@
1
+ interface:
2
+ display_name: "Goal Maker"
3
+ short_description: "Diagnose intent before making reliable goal boards."
4
+ default_prompt: "Use goal-maker to run diagnostic intake on my rough or detailed goal. If the goal is vague or improvement-oriented, ask one guided question at a time, surface likely blind spots, and do not create files until intent, proof, scope, and board handling are clear or explicitly defaulted. If it is clear or already planned, prepare or repair goal.md, state.yaml, and notes/, then print the /goal Follow command instead of starting /goal automatically."
5
+ policy:
6
+ allow_implicit_invocation: true