diff --git a/CHANGELOG.md b/CHANGELOG.md index ca320790..84fe5775 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -21,6 +21,19 @@ Overview: Added M-TRANSLATE.md workflow for sync from upstream GSD, updated gsd- - Updated agent call syntax from `task()` to `@subagent_type prompt` format in discuss-phase workflow in `gsd-opencode/get-shit-done/workflows/discuss-phase.md` - Enhanced discovery-phase workflow with improved formatting for library resolution in `gsd-opencode/get-shit-done/workflows/discovery-phase.md` +## [1.33.2] - 2026-04-12 + +Overview: Added regex translation rule for Agent() background task calls in autonomous workflows, converting OpenCode-incompatible Agent() syntax to @gsd-xxx shorthand with dynamic agent name extraction. + +### Added + +- Translation rule 21 in `assets/configs/remove-task.json` for converting `Agent(description=..., run_in_background=true, prompt=...)` calls to `@gsd-` shorthand syntax, extracting agent name from `skill="gsd:"` patterns + +### Changed + +- Converted `Agent()` background task dispatch calls to `@gsd-plan-phase` and `@gsd-execute-phase` shorthand in `gsd-opencode/get-shit-done/workflows/autonomous.md` for OpenCode compatibility +- Updated skill invocation syntax from `skill="gsd:plan-phase"` to `skill="gsd-plan-phase"` (colon to dash) in autonomous workflow agent prompts + ## [1.33.0] - 2026-04-06 Overview: Major upstream sync from GSD v1.33.0 introducing security auditing pipeline, automated documentation generation with codebase verification, dependency analysis, and discuss-phase power mode. Enhanced planner with scope reduction prohibition and decision coverage matrices. Added response language support, worktree isolation control, Kilo runtime support, and schema drift detection across 150 files. diff --git a/README.md b/README.md index 4e999f86..2c4bcad6 100644 --- a/README.md +++ b/README.md @@ -87,6 +87,10 @@ I just love both GSD and OpenCode. I felt like having GSD available only for Cla — **Roman** +## Version 1.33.2 + +Added support for translating `Agent()` background task calls to OpenCode-compatible `@gsd-` shorthand syntax. The new translation rule 21 in `assets/configs/remove-task.json` dynamically extracts agent names from `skill="gsd-"` patterns and converts them to the OpenCode format. This update fixes two `Agent()` calls in `autonomous.md` workflow for plan and execute phase dispatch, ensuring full OpenCode compatibility. + ## Version 1.33.0 Again we keep up with the original GSDv1 [v1.33.0](https://github.com/gsd-build/get-shit-done/releases/tag/v1.33.0) (2026-04-04). diff --git a/assets/configs/remove-task.json b/assets/configs/remove-task.json index 6c568af7..1ea347d3 100644 --- a/assets/configs/remove-task.json +++ b/assets/configs/remove-task.json @@ -208,6 +208,14 @@ "isRegex": true, "caseSensitive": true, "description": "Replace task(subagent_type=general, prompt=triple-quoted) with @general shorthand" + }, + { + "_comment": "21. Agent() with skill(skill=\"gsd:xxx\", ...) in prompt → @gsd-xxx shorthand", + "pattern": "Agent\\(\\s*\\r?\\n\\s*description=\"[^\"]*\",\\s*\\r?\\n\\s*run_in_background=true,\\s*\\r?\\n\\s*prompt=\"Run ([^\"]+) for phase \\$\\{PHASE_NUM\\}: skill\\(skill=\\\\\"gsd:([^\\\\\"]+)\\\\\", args=\\\\\"([^\\\\\"]+)\\\\\"\\)\"\\s*\\r?\\n\\s*\\)", + "replacement": "@gsd-$2 \"Run $1 for phase ${PHASE_NUM}: skill(skill=\\\"gsd-$2\\\", args=\\\"$3\\\")\"", + "isRegex": true, + "caseSensitive": true, + "description": "Replace Agent() with gsd skill reference to @gsd-xxx shorthand, extracting agent name from skill=\"gsd:xxx\" and converting to gsd-xxx" } ] } diff --git a/gsd-opencode/get-shit-done/workflows/autonomous.md b/gsd-opencode/get-shit-done/workflows/autonomous.md index e60e10de..1a26f41d 100644 --- a/gsd-opencode/get-shit-done/workflows/autonomous.md +++ b/gsd-opencode/get-shit-done/workflows/autonomous.md @@ -319,11 +319,7 @@ UI_SPEC_FILE=$(ls "${PHASE_DIR}"/*-UI-SPEC.md 2>/dev/null | head -1) **If `INTERACTIVE` is set:** Dispatch plan as a background agent to keep the main context lean. While plan runs, the workflow can immediately start discussing the next phase (see step 4). ``` -Agent( - description="Plan phase ${PHASE_NUM}: ${PHASE_NAME}", - run_in_background=true, - prompt="Run plan-phase for phase ${PHASE_NUM}: skill(skill=\"gsd:plan-phase\", args=\"${PHASE_NUM}\")" -) +@gsd-plan-phase "Run plan-phase for phase ${PHASE_NUM}: skill(skill=\"gsd-plan-phase\", args=\"${PHASE_NUM}\")" ``` Store the agent task_id. After discuss for the next phase completes (or if no next phase), wait for the plan agent to finish before proceeding to execute. @@ -341,11 +337,7 @@ Verify plan produced output — re-run `init phase-op` and check `has_plans`. If **If `INTERACTIVE` is set:** Wait for the plan agent to complete (if not already), verify plans exist, then dispatch execute as a background agent: ``` -Agent( - description="Execute phase ${PHASE_NUM}: ${PHASE_NAME}", - run_in_background=true, - prompt="Run execute-phase for phase ${PHASE_NUM}: skill(skill=\"gsd:execute-phase\", args=\"${PHASE_NUM} --no-transition\")" -) +@gsd-execute-phase "Run execute-phase for phase ${PHASE_NUM}: skill(skill=\"gsd-execute-phase\", args=\"${PHASE_NUM} --no-transition\")" ``` Store the agent task_id. The workflow can now start discussing the next phase while this phase executes in the background. Before starting post-execution routing for this phase, wait for the execute agent to complete.