Review: Adapt core system prompts for Goose (re-review)

review-1488-2026-07-03-v2 Review

review approved

Verdict: APPROVED

Re-review of board item #1488. Three issues from prior review (review-1488-2026-07-03) have all been resolved.

Prior Issues -- Resolution

  • [x] [LABEL] Add story:groq-pivot label -- FIXED. Label now present on board item.
  • [x] [SCOPE] Create arch-personal-assistant note -- FIXED. Note created with architecture tag, documents Goose + Groq stack, key decisions, and repo layout.
  • [x] [BODY] Clarify prompt loading mechanism -- FIXED. Issue body now specifies tom extension with GOOSE_MOIM_MESSAGE_FILE env var. Added scripts/assemble-prompt.sh and salt/states/goose/files/config.yaml (in pal-e-platform) to file targets.

Template Completeness

  • [x] Type -- Feature
  • [x] Lineage -- references #3 and #5
  • [x] Repo -- ldraney/personal-assistant
  • [x] User Story -- as a developer, want Goose loaded with adapted Claude Code prompts
  • [x] Context -- explains architecture spike, source material, prompt categorization, and tom extension loading mechanism
  • [x] File Targets -- 7 files (5 prompts + assemble script + Salt config)
  • [x] Feature Flag -- None (appropriate for internal tooling)
  • [x] Acceptance Criteria -- 6 criteria
  • [x] Test Expectations -- 3 expectations
  • [x] Constraints -- 3 constraints
  • [x] Checklist -- 4 items (updated to include Salt template)
  • [x] Related -- references project and dependencies

Traceability

  • [x] story:groq-pivot label -- present on board item
  • [x] story note verified -- project-personal-assistant user-stories section has "I can use a Claude Code-like agentic coding experience powered by open-source models" with success metric referencing Goose. Aligns with groq-pivot story.
  • [x] arch:personal-assistant label -- present on board item
  • [x] arch note verified -- arch-personal-assistant note exists in pal-e-docs (created 2026-07-04). Documents Goose CLI + Groq API stack, key decisions, repo layout.
  • [x] Forgejo issue -- ldraney/personal-assistant#6, open

File Targets

  • [x] system-prompts/task-execution.md -- NEW file (directory does not exist yet, expected for feature)
  • [x] system-prompts/safety.md -- NEW file
  • [x] system-prompts/code-style.md -- NEW file
  • [x] system-prompts/tone.md -- NEW file
  • [x] system-prompts/platform-context.md -- NEW file
  • [x] scripts/assemble-prompt.sh -- NEW file (concatenates prompt files into single assembled prompt)
  • [x] salt/states/goose/files/config.yaml in pal-e-platform -- NEW file (cross-repo, explicitly noted in issue body). Salt states dir exists at salt/states/ in pal-e-platform; goose/ subdirectory to be created.

Repo Placement

Issue filed on ldraney/personal-assistant, which is correct for the 6 primary file targets. One file target (salt/states/goose/files/config.yaml) is in ldraney/pal-e-platform -- explicitly acknowledged in the issue body. The Salt change is a single config update (setting GOOSE_MOIM_MESSAGE_FILE env var) and does not warrant a separate Forgejo issue. The arch note confirms Salt config lives in pal-e-platform. Acceptable.

Dependencies

  • depends:3 -- "Spike: Investigate Goose config format and claude-custom compatibility" -- board item #1485, column: done. Satisfied.
  • depends:5 -- "Configure Goose profile for Groq + Kimi K2 backend" -- board item #1487, column: done. Satisfied. (Forgejo issues still open -- cleanup item, not blocking.)
  • Downstream: No items on the board have depends:6 in their labels. Sprint:3-4 items depend on other issues, not directly on #6.
Both upstream dependencies satisfied. No blockers.

Acceptance Criteria

  • [x] AC1: "System prompt files created in system-prompts/" -- verifiable via file existence
  • [x] AC2: "scripts/assemble-prompt.sh assembles prompt files into a single file" -- verifiable by running script
  • [x] AC3: "Goose loads assembled prompt at startup via tom extension (GOOSE_MOIM_MESSAGE_FILE)" -- verifiable by checking env var and Goose startup
  • [x] AC4: "Goose follows tone guidelines" -- subjective, covered by Test Expectations (side-by-side comparison)
  • [x] AC5: "Goose uses tools appropriately" -- subjective, covered by Test Expectations
  • [x] AC6: "Goose shows safety awareness" -- subjective, covered by Test Expectations
All criteria are testable. ACs 4-6 are behavioral and require human judgment, which is inherent for system prompt work.

Blast Radius

Minimal. All primary file targets are new files in new directories. The Salt template creates a new state (goose/) alongside existing states. No existing code or configuration is modified. Prompt content will affect Goose behavior system-wide once loaded, which is the intended effect.

Decomposition Assessment

  • 7 file targets across 2 repos -- exceeds file count threshold (>3) but only 2 repos (not >2)
  • 6 acceptance criteria -- technically exceeds >5 threshold
  • However: ACs 4-6 are behavioral verification criteria, not implementation steps. They cannot be meaningfully decomposed into sub-tickets. Actual implementation work is: 5 independent prompt files + 1 assembly script + 1 config line.
  • Estimated agent work: read source material, create 5 prompt files (parallel), write assembly script, update Salt config. Feasible in a single pass if agent has local access to claude-code-reference/.
  • No decomposition needed. Borderline on AC count, but behavioral ACs are verification, not implementation.

Recommendation

No action needed. All prior review issues resolved. Scope is solid.
Minor observations (non-blocking):
  • The arch-personal-assistant note is not associated with the personal-assistant project in pal-e-docs (project field is null). Consider linking it.
  • Forgejo issues #3 and #5 are still open despite board items being in "done". Consider closing them.