goalbuddy 0.2.15 → 0.2.17

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/README.md CHANGED
@@ -31,10 +31,10 @@ npm i -g goalbuddy
31
31
  Then restart Codex and invoke the installed skill:
32
32
 
33
33
  ```text
34
- $goalbuddy
34
+ $goal-prep
35
35
  ```
36
36
 
37
- `$goalbuddy` prepares the board and prints the `/goal` command to run next. It does not start `/goal` automatically.
37
+ `$goal-prep` prepares the GoalBuddy board and prints the `/goal` command to run next. It does not start `/goal` automatically.
38
38
 
39
39
  ## Why GoalBuddy Exists
40
40
 
@@ -122,7 +122,7 @@ npx goalbuddy --codex-home /path/to/.codex
122
122
 
123
123
  ## Run A Goal
124
124
 
125
- After `$goalbuddy` creates or repairs the board, start the run with the printed command:
125
+ After `$goal-prep` creates or repairs the board, start the run with the printed command:
126
126
 
127
127
  ```text
128
128
  /goal Follow docs/goals/<slug>/goal.md.
@@ -172,6 +172,7 @@ npx goalbuddy extend
172
172
  npx goalbuddy extend github-pr-workflow
173
173
  npx goalbuddy extend install github-pr-workflow --dry-run
174
174
  npx goalbuddy extend install --all --dry-run
175
+ npx goalbuddy extend install --all
175
176
  ```
176
177
 
177
178
  `goalbuddy extend` shows available extensions plus local install state, activation state, credential requirements, safe-by-default status, and missing environment variables.
@@ -1,11 +1,11 @@
1
1
  ---
2
- name: goalbuddy
3
- description: Use for broad, long-running, stalled, vague, detailed, planned, or unhealthy Codex work that needs a structured /goal intake, autonomous task discovery, role-tagged Scout/Judge/Worker delegation, one active task, durable receipts, and a PM-owned rolling board that maximizes the chance of a successful goal run.
2
+ name: goal-prep
3
+ description: Goal Prep for GoalBuddy. Use for broad, long-running, stalled, vague, detailed, planned, or unhealthy Codex work that needs a structured /goal intake, autonomous task discovery, role-tagged Scout/Judge/Worker delegation, one active task, durable receipts, and a PM-owned rolling board that maximizes the chance of a successful goal run.
4
4
  ---
5
5
 
6
- # GoalBuddy
6
+ # Goal Prep
7
7
 
8
- `$goalbuddy` prepares a GoalBuddy board. It does not start `/goal` automatically, but the board and starter `/goal` command must be shaped so the next run continues into safe execution by default.
8
+ `$goal-prep` prepares a GoalBuddy board. It does not start `/goal` automatically, but the board and starter `/goal` command must be shaped so the next run continues into safe execution by default.
9
9
 
10
10
  GoalBuddy is for autonomous, long-running Codex work where the PM thread may need to discover the work, define tasks, sequence them, delegate them, execute them, verify them, and keep going without the human decomposing every step.
11
11
 
@@ -19,14 +19,14 @@ raw user intent -> intake compiler -> discovery/plan validation/execution board
19
19
 
20
20
  There are two different modes:
21
21
 
22
- - `$goalbuddy`: prepare intake, `goal.md`, `state.yaml`, and the starter `/goal` command, then stop.
22
+ - `$goal-prep`: prepare intake, `goal.md`, `state.yaml`, and the starter `/goal` command, then stop.
23
23
  - `/goal Follow docs/goals/<slug>/goal.md.`: execute the board, including Scout/Judge/Worker work.
24
24
 
25
- This boundary is strict. `$goalbuddy` is not a lightweight `/goal`; it is a board compiler.
25
+ This boundary is strict. `$goal-prep` is not a lightweight `/goal`; it is a board compiler.
26
26
 
27
- During a `$goalbuddy` turn, do not perform the user's requested work, even if the work looks read-only, preparatory, or obviously useful. Do not refresh or load named skills, inspect implementation files, browse reference repos, research design inspiration, generate design plans, generate images/assets, run app-specific checks, start servers, or edit product files. Put those actions into Scout, Judge, Worker, or PM tasks for the later `/goal` run.
27
+ During a `$goal-prep` turn, do not perform the user's requested work, even if the work looks read-only, preparatory, or obviously useful. Do not refresh or load named skills, inspect implementation files, browse reference repos, research design inspiration, generate design plans, generate images/assets, run app-specific checks, start servers, or edit product files. Put those actions into Scout, Judge, Worker, or PM tasks for the later `/goal` run.
28
28
 
29
- Allowed `$goalbuddy` actions:
29
+ Allowed `$goal-prep` actions:
30
30
 
31
31
  - ask diagnostic intake questions and wait when required;
32
32
  - create or repair only `docs/goals/<slug>/goal.md`, `docs/goals/<slug>/state.yaml`, and `docs/goals/<slug>/notes/`;
@@ -35,7 +35,7 @@ Allowed `$goalbuddy` actions:
35
35
  - print exactly `/goal Follow docs/goals/<slug>/goal.md.`;
36
36
  - ask whether to start `/goal`, refine the board, or stop.
37
37
 
38
- If the prompt names another skill or tool, such as "use the taste skill", "refresh the taste skill", "look at this repo", "use browser", or "generate assets", record that requirement in the charter and seed tasks. Do not load that skill, browse that repo, or generate those assets during `$goalbuddy`.
38
+ If the prompt names another skill or tool, such as "use the taste skill", "refresh the taste skill", "look at this repo", "use browser", or "generate assets", record that requirement in the charter and seed tasks. Do not load that skill, browse that repo, or generate those assets during `$goal-prep`.
39
39
 
40
40
  ## Intake Compiler
41
41
 
@@ -125,7 +125,7 @@ If the raw input is detailed and already contains a plan, the first board task s
125
125
 
126
126
  The target is not literal certainty. It is the highest practical likelihood of a successful goal run: preserve the user's intent, avoid the likely misfire, pick the earliest responsible phase, require proof, and keep advancing safe work until a final audit proves the full outcome.
127
127
 
128
- ## What `$goalbuddy` Does
128
+ ## What `$goal-prep` Does
129
129
 
130
130
  When invoked directly, run intake first. For vague, strategic, improvement-oriented, or open-ended input, run the diagnostic intake and stop before creating or repairing the board until enough material answers are known. For sufficiently clear, planned, recovery, audit, or explicitly-defaulted input, prepare or repair the board and stop for user choice.
131
131
 
@@ -157,7 +157,7 @@ Do not:
157
157
 
158
158
  ## `/goal` Default Bias: Users Want Work Done
159
159
 
160
- This section applies after the user starts `/goal Follow docs/goals/<slug>/goal.md.` It does not apply to the initial `$goalbuddy` board-preparation turn.
160
+ This section applies after the user starts `/goal Follow docs/goals/<slug>/goal.md.` It does not apply to the initial `$goal-prep` board-preparation turn.
161
161
 
162
162
  Unless the user explicitly asks for planning only, treat a `/goal` run as a request for work to happen.
163
163
 
@@ -1,6 +1,6 @@
1
1
  interface:
2
- display_name: "GoalBuddy"
3
- short_description: "Diagnose intent before making reliable goal boards."
4
- default_prompt: "Use goalbuddy 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."
2
+ display_name: "Goal Prep"
3
+ short_description: "Prepare GoalBuddy boards before running /goal."
4
+ default_prompt: "Use goal-prep 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
5
  policy:
6
6
  allow_implicit_invocation: true
@@ -19,10 +19,12 @@ const __dirname = dirname(fileURLToPath(import.meta.url));
19
19
  const packageRoot = resolve(__dirname, "../..");
20
20
  const canonicalProductName = "GoalBuddy";
21
21
  const canonicalCliName = "goalbuddy";
22
- const canonicalSkillName = "goalbuddy";
22
+ const pluginName = "goalbuddy";
23
+ const canonicalSkillName = "goal-prep";
24
+ const canonicalSkillDirectory = "goalbuddy";
23
25
  const legacyCliName = "goal-maker";
24
26
  const legacySkillName = "goal-maker";
25
- const skillSource = join(packageRoot, canonicalSkillName);
27
+ const skillSource = join(packageRoot, canonicalSkillDirectory);
26
28
  const packageInfo = JSON.parse(readFileSync(join(packageRoot, "package.json"), "utf8"));
27
29
  const defaultCodexHome = process.env.CODEX_HOME || join(homedir(), ".codex");
28
30
  const defaultCatalogUrl = "https://raw.githubusercontent.com/tolibear/goalbuddy/main/extend/catalog.json";
@@ -364,7 +366,7 @@ Default source:
364
366
 
365
367
  function installPlugin() {
366
368
  const source = optionValue("--source") || "tolibear/goalbuddy";
367
- const pluginSource = join(packageRoot, "plugins", canonicalSkillName);
369
+ const pluginSource = join(packageRoot, "plugins", pluginName);
368
370
  const pluginManifestPath = join(pluginSource, ".codex-plugin", "plugin.json");
369
371
  if (!existsSync(pluginManifestPath)) {
370
372
  throw new Error(`Plugin manifest not found: ${pluginManifestPath}`);
@@ -384,7 +386,7 @@ function installPlugin() {
384
386
 
385
387
  const report = {
386
388
  installed: true,
387
- plugin: `${canonicalSkillName}@${canonicalSkillName}`,
389
+ plugin: `${pluginName}@${pluginName}`,
388
390
  version: pluginManifest.version,
389
391
  codex_home: codexHome(),
390
392
  marketplace_source: source,
@@ -404,16 +406,20 @@ function installPlugin() {
404
406
  console.log("");
405
407
  console.log("Restart Codex, then use:");
406
408
  console.log(` $${canonicalSkillName}`);
409
+ console.log("");
410
+ console.log("Optional extensions:");
411
+ console.log(` npx ${canonicalCliName} extend`);
412
+ console.log(` npx ${canonicalCliName} extend install --all`);
407
413
  }
408
414
 
409
415
  function pluginCacheRoot(version) {
410
- return join(codexHome(), "plugins", "cache", canonicalSkillName, canonicalSkillName, version);
416
+ return join(codexHome(), "plugins", "cache", pluginName, pluginName, version);
411
417
  }
412
418
 
413
419
  function enablePluginConfig() {
414
420
  const configPath = join(codexHome(), "config.toml");
415
421
  mkdirSync(dirname(configPath), { recursive: true });
416
- const header = `[plugins."${canonicalSkillName}@${canonicalSkillName}"]`;
422
+ const header = `[plugins."${pluginName}@${pluginName}"]`;
417
423
  const existing = existsSync(configPath) ? readFileSync(configPath, "utf8") : "";
418
424
  const updated = upsertTomlEnabled(existing, header);
419
425
  writeFileSync(configPath, updated);
@@ -794,7 +800,7 @@ function extendDoctor() {
794
800
  }
795
801
 
796
802
  function installedSkillRoot() {
797
- return join(codexHome(), "skills", canonicalSkillName);
803
+ return join(codexHome(), "skills", canonicalSkillDirectory);
798
804
  }
799
805
 
800
806
  function legacyInstalledSkillRoot() {
@@ -1087,7 +1093,7 @@ function printInstallReport(report) {
1087
1093
 
1088
1094
  console.log("");
1089
1095
  console.log("Next:");
1090
- console.log(" $goalbuddy");
1096
+ console.log(` $${canonicalSkillName}`);
1091
1097
  console.log(` ${canonicalCliName} extend`);
1092
1098
  console.log(` ${legacyCliName} remains a temporary compatibility alias.`);
1093
1099
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "goalbuddy",
3
- "version": "0.2.15",
3
+ "version": "0.2.17",
4
4
  "description": "Turn open-ended Codex goals into a GoalBuddy Scout/Judge/Worker board with receipts, verification, and optional extensions.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "goalbuddy",
3
- "version": "0.2.15",
3
+ "version": "0.2.17",
4
4
  "description": "Turn broad Codex work into verified GoalBuddy boards with Scout, Judge, Worker, receipts, and optional extensions.",
5
5
  "author": {
6
6
  "name": "tolibear",
@@ -36,9 +36,7 @@
36
36
  "privacyPolicyURL": "https://github.com/tolibear/goalbuddy#privacy",
37
37
  "termsOfServiceURL": "https://github.com/tolibear/goalbuddy#license",
38
38
  "defaultPrompt": [
39
- "Prepare a GoalBuddy board for this goal",
40
- "Audit this GoalBuddy board and continue safely",
41
- "Install GoalBuddy extensions and verify setup"
39
+ "$goal-prep prepare a GoalBuddy board for this goal"
42
40
  ],
43
41
  "brandColor": "#2563EB",
44
42
  "composerIcon": "./assets/goalbuddy-icon.svg",
@@ -1,6 +1,6 @@
1
1
  # GoalBuddy Codex Plugin
2
2
 
3
- GoalBuddy packages the canonical `$goalbuddy` skill as a Codex plugin so teams can install the reusable workflow as a plugin while keeping the npm CLI for local setup, doctor checks, and extension management.
3
+ GoalBuddy packages the canonical `$goal-prep` skill as a Codex plugin so teams can install the reusable workflow as a plugin while keeping the npm CLI for local setup, doctor checks, and extension management.
4
4
 
5
5
  ## What It Contains
6
6
 
@@ -1,11 +1,11 @@
1
1
  ---
2
- name: goalbuddy
3
- description: Use for broad, long-running, stalled, vague, detailed, planned, or unhealthy Codex work that needs a structured /goal intake, autonomous task discovery, role-tagged Scout/Judge/Worker delegation, one active task, durable receipts, and a PM-owned rolling board that maximizes the chance of a successful goal run.
2
+ name: goal-prep
3
+ description: Goal Prep for GoalBuddy. Use for broad, long-running, stalled, vague, detailed, planned, or unhealthy Codex work that needs a structured /goal intake, autonomous task discovery, role-tagged Scout/Judge/Worker delegation, one active task, durable receipts, and a PM-owned rolling board that maximizes the chance of a successful goal run.
4
4
  ---
5
5
 
6
- # GoalBuddy
6
+ # Goal Prep
7
7
 
8
- `$goalbuddy` prepares a GoalBuddy board. It does not start `/goal` automatically, but the board and starter `/goal` command must be shaped so the next run continues into safe execution by default.
8
+ `$goal-prep` prepares a GoalBuddy board. It does not start `/goal` automatically, but the board and starter `/goal` command must be shaped so the next run continues into safe execution by default.
9
9
 
10
10
  GoalBuddy is for autonomous, long-running Codex work where the PM thread may need to discover the work, define tasks, sequence them, delegate them, execute them, verify them, and keep going without the human decomposing every step.
11
11
 
@@ -19,14 +19,14 @@ raw user intent -> intake compiler -> discovery/plan validation/execution board
19
19
 
20
20
  There are two different modes:
21
21
 
22
- - `$goalbuddy`: prepare intake, `goal.md`, `state.yaml`, and the starter `/goal` command, then stop.
22
+ - `$goal-prep`: prepare intake, `goal.md`, `state.yaml`, and the starter `/goal` command, then stop.
23
23
  - `/goal Follow docs/goals/<slug>/goal.md.`: execute the board, including Scout/Judge/Worker work.
24
24
 
25
- This boundary is strict. `$goalbuddy` is not a lightweight `/goal`; it is a board compiler.
25
+ This boundary is strict. `$goal-prep` is not a lightweight `/goal`; it is a board compiler.
26
26
 
27
- During a `$goalbuddy` turn, do not perform the user's requested work, even if the work looks read-only, preparatory, or obviously useful. Do not refresh or load named skills, inspect implementation files, browse reference repos, research design inspiration, generate design plans, generate images/assets, run app-specific checks, start servers, or edit product files. Put those actions into Scout, Judge, Worker, or PM tasks for the later `/goal` run.
27
+ During a `$goal-prep` turn, do not perform the user's requested work, even if the work looks read-only, preparatory, or obviously useful. Do not refresh or load named skills, inspect implementation files, browse reference repos, research design inspiration, generate design plans, generate images/assets, run app-specific checks, start servers, or edit product files. Put those actions into Scout, Judge, Worker, or PM tasks for the later `/goal` run.
28
28
 
29
- Allowed `$goalbuddy` actions:
29
+ Allowed `$goal-prep` actions:
30
30
 
31
31
  - ask diagnostic intake questions and wait when required;
32
32
  - create or repair only `docs/goals/<slug>/goal.md`, `docs/goals/<slug>/state.yaml`, and `docs/goals/<slug>/notes/`;
@@ -35,7 +35,7 @@ Allowed `$goalbuddy` actions:
35
35
  - print exactly `/goal Follow docs/goals/<slug>/goal.md.`;
36
36
  - ask whether to start `/goal`, refine the board, or stop.
37
37
 
38
- If the prompt names another skill or tool, such as "use the taste skill", "refresh the taste skill", "look at this repo", "use browser", or "generate assets", record that requirement in the charter and seed tasks. Do not load that skill, browse that repo, or generate those assets during `$goalbuddy`.
38
+ If the prompt names another skill or tool, such as "use the taste skill", "refresh the taste skill", "look at this repo", "use browser", or "generate assets", record that requirement in the charter and seed tasks. Do not load that skill, browse that repo, or generate those assets during `$goal-prep`.
39
39
 
40
40
  ## Intake Compiler
41
41
 
@@ -125,7 +125,7 @@ If the raw input is detailed and already contains a plan, the first board task s
125
125
 
126
126
  The target is not literal certainty. It is the highest practical likelihood of a successful goal run: preserve the user's intent, avoid the likely misfire, pick the earliest responsible phase, require proof, and keep advancing safe work until a final audit proves the full outcome.
127
127
 
128
- ## What `$goalbuddy` Does
128
+ ## What `$goal-prep` Does
129
129
 
130
130
  When invoked directly, run intake first. For vague, strategic, improvement-oriented, or open-ended input, run the diagnostic intake and stop before creating or repairing the board until enough material answers are known. For sufficiently clear, planned, recovery, audit, or explicitly-defaulted input, prepare or repair the board and stop for user choice.
131
131
 
@@ -157,7 +157,7 @@ Do not:
157
157
 
158
158
  ## `/goal` Default Bias: Users Want Work Done
159
159
 
160
- This section applies after the user starts `/goal Follow docs/goals/<slug>/goal.md.` It does not apply to the initial `$goalbuddy` board-preparation turn.
160
+ This section applies after the user starts `/goal Follow docs/goals/<slug>/goal.md.` It does not apply to the initial `$goal-prep` board-preparation turn.
161
161
 
162
162
  Unless the user explicitly asks for planning only, treat a `/goal` run as a request for work to happen.
163
163
 
@@ -1,6 +1,6 @@
1
1
  interface:
2
- display_name: "GoalBuddy"
3
- short_description: "Diagnose intent before making reliable goal boards."
4
- default_prompt: "Use goalbuddy 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."
2
+ display_name: "Goal Prep"
3
+ short_description: "Prepare GoalBuddy boards before running /goal."
4
+ default_prompt: "Use goal-prep 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
5
  policy:
6
6
  allow_implicit_invocation: true