goalbuddy 0.2.20 → 0.2.22

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 (47) hide show
  1. package/README.md +16 -9
  2. package/goalbuddy/SKILL.md +77 -10
  3. package/goalbuddy/extend/github-projects/README.md +105 -0
  4. package/goalbuddy/extend/github-projects/examples/goal-board-sync/state.yaml +63 -0
  5. package/goalbuddy/extend/github-projects/extension.yaml +43 -0
  6. package/goalbuddy/extend/github-projects/scripts/lib/github-projects.mjs +728 -0
  7. package/goalbuddy/extend/github-projects/scripts/lib/goal-state.mjs +362 -0
  8. package/goalbuddy/extend/github-projects/scripts/sync-github-project.mjs +193 -0
  9. package/goalbuddy/extend/github-projects/test/github-projects.test.mjs +267 -0
  10. package/goalbuddy/extend/local-goal-board/README.md +75 -0
  11. package/goalbuddy/extend/local-goal-board/assets/goalbuddy-mark.png +0 -0
  12. package/goalbuddy/extend/local-goal-board/examples/sample-goal/notes/T001-scout.md +3 -0
  13. package/goalbuddy/extend/local-goal-board/examples/sample-goal/state.yaml +124 -0
  14. package/goalbuddy/extend/local-goal-board/extension.yaml +37 -0
  15. package/goalbuddy/extend/local-goal-board/scripts/lib/goal-board.mjs +1225 -0
  16. package/goalbuddy/extend/local-goal-board/scripts/local-goal-board.mjs +258 -0
  17. package/goalbuddy/extend/local-goal-board/test/local-goal-board.test.mjs +146 -0
  18. package/goalbuddy/scripts/check-goal-state.mjs +24 -9
  19. package/goalbuddy/scripts/check-update.mjs +102 -0
  20. package/goalbuddy/templates/goal.md +12 -8
  21. package/goalbuddy/templates/state.yaml +18 -3
  22. package/internal/assets/goalbuddy-og.png +0 -0
  23. package/internal/assets/goalbuddy-readme-hero.png +0 -0
  24. package/internal/cli/goal-maker.mjs +191 -13
  25. package/package.json +3 -2
  26. package/plugins/goalbuddy/.codex-plugin/plugin.json +3 -3
  27. package/plugins/goalbuddy/README.md +2 -5
  28. package/plugins/goalbuddy/skills/goalbuddy/SKILL.md +77 -10
  29. package/plugins/goalbuddy/skills/goalbuddy/extend/github-projects/README.md +105 -0
  30. package/plugins/goalbuddy/skills/goalbuddy/extend/github-projects/examples/goal-board-sync/state.yaml +63 -0
  31. package/plugins/goalbuddy/skills/goalbuddy/extend/github-projects/extension.yaml +43 -0
  32. package/plugins/goalbuddy/skills/goalbuddy/extend/github-projects/scripts/lib/github-projects.mjs +728 -0
  33. package/plugins/goalbuddy/skills/goalbuddy/extend/github-projects/scripts/lib/goal-state.mjs +362 -0
  34. package/plugins/goalbuddy/skills/goalbuddy/extend/github-projects/scripts/sync-github-project.mjs +193 -0
  35. package/plugins/goalbuddy/skills/goalbuddy/extend/github-projects/test/github-projects.test.mjs +267 -0
  36. package/plugins/goalbuddy/skills/goalbuddy/extend/local-goal-board/README.md +75 -0
  37. package/plugins/goalbuddy/skills/goalbuddy/extend/local-goal-board/assets/goalbuddy-mark.png +0 -0
  38. package/plugins/goalbuddy/skills/goalbuddy/extend/local-goal-board/examples/sample-goal/notes/T001-scout.md +3 -0
  39. package/plugins/goalbuddy/skills/goalbuddy/extend/local-goal-board/examples/sample-goal/state.yaml +124 -0
  40. package/plugins/goalbuddy/skills/goalbuddy/extend/local-goal-board/extension.yaml +37 -0
  41. package/plugins/goalbuddy/skills/goalbuddy/extend/local-goal-board/scripts/lib/goal-board.mjs +1225 -0
  42. package/plugins/goalbuddy/skills/goalbuddy/extend/local-goal-board/scripts/local-goal-board.mjs +258 -0
  43. package/plugins/goalbuddy/skills/goalbuddy/extend/local-goal-board/test/local-goal-board.test.mjs +146 -0
  44. package/plugins/goalbuddy/skills/goalbuddy/scripts/check-goal-state.mjs +24 -9
  45. package/plugins/goalbuddy/skills/goalbuddy/scripts/check-update.mjs +102 -0
  46. package/plugins/goalbuddy/skills/goalbuddy/templates/goal.md +12 -8
  47. package/plugins/goalbuddy/skills/goalbuddy/templates/state.yaml +18 -3
@@ -0,0 +1,63 @@
1
+ version: 2
2
+
3
+ goal:
4
+ title: "Goal board sync MVP"
5
+ slug: "goal-board-sync-mvp"
6
+ kind: specific
7
+ tranche: "Mirror a GoalBuddy board into an external Kanban surface."
8
+ status: active
9
+
10
+ rules:
11
+ pm_owns_state: true
12
+ one_active_task: true
13
+ max_write_workers: 1
14
+ no_implementation_without_worker_or_pm_task: true
15
+ no_completion_without_judge_or_pm_audit: true
16
+
17
+ active_task: T002
18
+
19
+ tasks:
20
+ - id: T001
21
+ type: scout
22
+ assignee: Scout
23
+ status: done
24
+ priority: P3
25
+ objective: "Map external board API requirements."
26
+ inputs:
27
+ - "Board API docs"
28
+ constraints:
29
+ - "Read-only."
30
+ expected_output:
31
+ - "Required scopes"
32
+ - "Field mapping"
33
+ receipt:
34
+ result: done
35
+ summary: "The board sync can read GoalBuddy state.yaml and mirror tasks into an external board."
36
+ - id: T002
37
+ type: worker
38
+ assignee: Worker
39
+ status: active
40
+ priority: P1
41
+ objective: "Implement one-way external board sync."
42
+ parent: T001
43
+ depends_on:
44
+ - T001
45
+ allowed_files:
46
+ - "extend/github-projects/scripts/**"
47
+ - "README.md"
48
+ verify:
49
+ - "node --test extend/github-projects/test/*.test.mjs"
50
+ - "node extend/github-projects/scripts/sync-github-project.mjs --state extend/github-projects/examples/goal-board-sync/state.yaml --dry-run"
51
+ stop_if:
52
+ - "Board API credentials are unavailable."
53
+ receipt: null
54
+ - id: T003
55
+ type: judge
56
+ assignee: Judge
57
+ status: queued
58
+ priority: P2
59
+ objective: "Audit whether the board sync MVP is ready to document."
60
+ parent: T002
61
+ depends_on:
62
+ - T002
63
+ receipt: null
@@ -0,0 +1,43 @@
1
+ id: github-projects
2
+ name: GitHub Projects
3
+ kind: integration
4
+ version: 0.1.1
5
+ source_of_truth: local
6
+ description: Mirror GoalBuddy state.yaml tasks into GitHub Projects with dry-run planning, ProjectV2 fields, draft issue upserts, and one Goal Board view.
7
+ local_use_prompt: Run the bundled GitHub Projects sync script for docs/goals/<slug>/state.yaml. Use --dry-run first unless the user has approved live GitHub writes, then run the same script with GITHUB_TOKEN or GH_TOKEN and --project-id or --owner plus --project-number. Do not use Computer Use, browser automation, the GitHub web UI, or gh project as a fallback.
8
+ use_when:
9
+ - A long-running GoalBuddy board needs stakeholder visibility in GitHub Projects.
10
+ - The team wants one-way sync from state.yaml into ProjectV2 draft issues.
11
+ - The PM needs a safe dry-run plan before using GitHub credentials.
12
+ - GoalBuddy receipts, verification commands, allowed files, owners, role/agent fields, credential gates, and dependencies should appear in a GitHub board.
13
+ activation: publish_handoff
14
+ outputs:
15
+ - GitHub Projects dry-run plan
16
+ - GitHub ProjectV2 draft issue sync
17
+ - Goal Board ProjectV2 view
18
+ requires_approval: true
19
+ safe_by_default: false
20
+ reads:
21
+ - docs/goals/<slug>/state.yaml
22
+ - GITHUB_PROJECT_ID
23
+ - GITHUB_PROJECT_OWNER
24
+ - GITHUB_PROJECT_NUMBER
25
+ writes:
26
+ - GitHub ProjectV2 draft issues
27
+ - GitHub ProjectV2 fields
28
+ - GitHub ProjectV2 Goal Board view
29
+ side_effects:
30
+ - Live sync creates or updates GitHub Project draft issues, fields, and views.
31
+ agent_instructions:
32
+ - Use the bundled sync script for all live GitHub Projects writes.
33
+ - Do not use Computer Use, browser automation, or the GitHub web UI to create or repair Project views.
34
+ - Do not replace the bundled script with gh project commands; the script uses GraphQL plus the REST Project views endpoint.
35
+ - Do not claim ProjectV2 board views are UI-only; the GitHub REST Project views API supports creating board-layout views.
36
+ auth:
37
+ env:
38
+ - GITHUB_TOKEN
39
+ supports:
40
+ dry_run: true
41
+ live_github_projects: true
42
+ credentials_required: true
43
+ one_way_sync: true