Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
72fa819
Merge orignial v1.22.4
rokicool Mar 8, 2026
a547cc6
feat(quick-8): enhance path resolver and scope manager to support /Us…
rokicool Mar 8, 2026
cf8d2b5
docs(quick-8): Add support for /Users/roki to installation manager
rokicool Mar 8, 2026
1fa7e40
feat(9-replace-users-roki-with-home-literally-s): replace hardcoded /…
rokicool Mar 8, 2026
c9fdc7a
docs(quick-9): Replace /Users/roki with $HOME in installation manager
rokicool Mar 8, 2026
cb40ce2
Revert "docs(quick-9): Replace /Users/roki with $HOME in installation…
rokicool Mar 8, 2026
b5527d6
Revert "feat(9-replace-users-roki-with-home-literally-s): replace har…
rokicool Mar 8, 2026
312fdfe
Revert "docs(quick-8): Add support for /Users/roki to installation ma…
rokicool Mar 8, 2026
7939485
Revert "feat(quick-8): enhance path resolver and scope manager to sup…
rokicool Mar 8, 2026
6d1901b
Revert quick tasks 8 and 9 (add /Users/roki support and replace with …
rokicool Mar 8, 2026
9d7ff3a
feat: add $HOME/.config/opencode/ path replacement for local installs
rokicool Mar 8, 2026
1684dae
Fix missing name field in gsd-reapply-patches.md
rokicool Mar 8, 2026
c688f20
Add missing objective section to gsd-reapply-patches.md
rokicool Mar 8, 2026
579ccfc
Fix regex backreference substitution in translator
rokicool Mar 8, 2026
4fd98ea
sync: update from TACHES v1.22.4 with OpenCode translations
rokicool Mar 8, 2026
4d83a96
Fix missing name field in gsd-reapply-patches.md
rokicool Mar 8, 2026
1192337
Add missing objective section to gsd-reapply-patches.md
rokicool Mar 8, 2026
18dd4d6
Sync v1.22.4: Copy files and translate Claude Code to OpenCode
rokicool Mar 9, 2026
916475c
Update README to v1.22.0 with wave execution and model profile changes
rokicool Mar 9, 2026
636fbaa
Sync submodule v1.22.4 and translate Claude Code artifacts to OpenCode
rokicool Mar 9, 2026
3b4b9d8
Add CHANGELOG entry for v1.22.0 upstream sync
rokicool Mar 9, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
61 changes: 61 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,67 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [1.22.0] - 2026-03-08

Overview: Synchronized with upstream GSD v1.22.4 to fix agent execution syntax and prevent unexpected stops. Simplified model profile system from quality/balanced/budget to simple/smart/genius with updated configuration file structure. Enhanced copy and translate services for upstream synchronization.

### Added

- gsd-join-discord command definition routing to Discord community link in `gsd-opencode/commands/gsd/gsd-join-discord.md`
- M-COPY-AND-TRANSLATE.md workflow prompt for copying and translating changes from upstream GSD repository in `assets/prompts/M-COPY-AND-TRANSLATE.md`
- h-copy-and-translate.md meta prompt for copy and translate operations in `assets/prompts/completed/h-copy-and-translate.md`
- v1.22.4.json supplemental translation config to fix remaining forbidden strings in `assets/configs/v1.22.4.json`
- skills sections with workflow references to all agent files (gsd-codebase-mapper, gsd-debugger, gsd-executor, gsd-integration-checker, gsd-nyquist-auditor, gsd-phase-researcher, gsd-plan-checker, gsd-planner, gsd-project-researcher, gsd-research-synthesizer, gsd-roadmapper, gsd-verifier) in `gsd-opencode/agents/`
- hooks configuration for ESLint integration to all agent files in `gsd-opencode/agents/`
- awaiting_human_verify status to debug workflow state machine in `gsd-opencode/agents/gsd-executor.md`
- Wave execution diagram explaining parallel/sequential plan execution in `README.md`

### Changed

- Renamed model profiles from quality/balanced/budget to simple/smart/genius across all command and workflow files in `gsd-opencode/commands/gsd/` and `gsd-opencode/get-shit-done/workflows/`
- Changed configuration file from `.planning/config.json` to `.planning/oc-config.json` in `README.md`, command files, and workflow files
- Updated README.md with version 1.22.0 section documenting upstream sync and enhanced wave execution documentation in `README.md`
- Updated model profile examples with new model references (bailian-coding-plan/qwen3.5-plus, bailian-coding-plan/kimi-k2.5, bailian-coding-plan/MiniMax-M2.5) in `README.md`
- Renamed assets/bin scripts: COPY.md to GSD-COPY-FROM-ORIGINAL.md, TRANSLATION.md to GSD-TRANSLATE-IN-PLACE.md, translate.js to gsd-translate-in-place.js in `assets/bin/`
- Enhanced translator.js with improved regex backreference substitution for capture groups in `assets/lib/translator.js`
- Updated cli.js progress bar output and increased path truncation from 40 to 80 characters in `assets/lib/cli.js`
- Added docs/ directory to sync mapping in SyncService.js in `assets/copy-services/SyncService.js`
- Updated gsd-debugger.md with human verification checkpoint before resolving issues in `gsd-opencode/agents/gsd-debugger.md`
- Added explicit write tool instruction for file creation to gsd-codebase-mapper.md in `gsd-opencode/agents/gsd-codebase-mapper.md`
- Updated executor agent to check both .OpenCode/skills/ and .agents/skills/ paths in `gsd-opencode/agents/gsd-executor.md`
- Updated command table in README.md: removed /gsd-whats-new, added /gsd-join-discord in `README.md`
- Changed section heading from "Distribution System" to "Distribution Manager (gsd-opencode specific)" in `README.md`
- Updated output file naming convention from {phase}-{N}-SUMMARY.md to {phase_num}-{N}-SUMMARY.md in `README.md`
- Updated gsd-tools.cjs state management and config handling in `gsd-opencode/get-shit-done/bin/gsd-tools.cjs`
- Updated all library files in bin/lib/ for v1.22.4 compatibility in `gsd-opencode/get-shit-done/bin/lib/`
- Updated reference documentation for model profiles, phase calculation, and verification patterns in `gsd-opencode/get-shit-done/references/`

### Deprecated

- Old model profile names quality/balanced/budget in favor of simple/smart/genius in `README.md` and workflow files
- .planning/config.json replaced by .planning/oc-config.json for OpenCode-specific configuration in multiple files

### Removed

- Removed custom_overrides section from model profile documentation in `README.md`
- Removed /gsd-whats-new command from quick reference command table in `README.md`
- Deleted old version-specific translation configs: 1-20-4.json, 1-20-5.json, 1-20-5-2.json in `assets/configs/`
- Deleted AI-generated translation configs: glm47-made-config.json, glm5-made-config.json, grok-made-config.json, kimi25-made-config.json in `assets/configs/`

### Fixed

- Fixed config path resolution from ~/.claude/ to $HOME/.config/opencode/ for more reliable path handling in `assets/configs/config.json`
- Fixed skill attribute patterns from skill="gsd:plan-phase" to skill="gsd-plan-phase" (colon to dash) in `assets/configs/v1.22.4.json`
- Fixed file creation instructions to explicitly use write tool instead of bash heredoc in `gsd-opencode/agents/gsd-codebase-mapper.md` and `gsd-opencode/agents/gsd-debugger.md`
- Fixed debug workflow to require human verification checkpoint before marking issues as resolved in `gsd-opencode/agents/gsd-debugger.md`
- Fixed state load command to handle @file: prefix properly in `gsd-opencode/agents/gsd-debugger.md`
- Added "gsd:" to forbidden strings list in antipatterns.toml to catch remaining colon-format command references in `assets/antipatterns.toml`

### Security

- Hardened config path resolution by changing ~/.claude/ references to $HOME/.config/opencode/ for more reliable path resolution in multiple files
- Added explicit protection rules for oc-* and -oc-* files during sync operations in `assets/prompts/M-COPY-AND-TRANSLATE.md`

## [1.20.4] - 2026-03-05

Overview: Added allow-read-config command to gsd-oc-tools.cjs for managing external_directory permissions. Introduced automated GSD config folder access configuration with comprehensive test coverage and workflow integration.
Expand Down
119 changes: 81 additions & 38 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<div align="left">

# GET SHIT DONE for OpenCode. (Based on TÂCHES v1.20.5 - 2026-02-19)
# GET SHIT DONE for OpenCode. (Based on TÂCHES v1.22.4 - 2026-03-03)

**A light-weight and powerful meta-prompting, context engineering and spec-driven development system for Claude Code by TÂCHES. (Adapted for OpenCode by rokicool and enthusiasts)**

Expand Down Expand Up @@ -87,6 +87,14 @@ I just love both GSD and OpenCode. I felt like having GSD available only for Cla

— **Roman**

## Vestion 1.22.0 - We are catching up with original v1.22.4 (2026-03-03)

As usual, you can find all changes that TACHES made in the [original CHANGELOG.md v1.20.5 -> v1.22.4](https://github.com/gsd-build/get-shit-done/blob/main/CHANGELOG.md)

The main theme for these changes - the original GSD uses the correct sysntax to execute agents. So, there will be no unexpected stops OR Gsd-Planner remains active after the planning is done.

On our the side of gsd-opencode there are several fixes and a lot of backend changes.

## Version 1.20.3 - New gsd-opencode model profile system

I had to give up on supporting original GSD model profile system. Claude Code uses three different models: Opus, Sonnet, and Haiku. In OpenCode we are blessed with dozens of providers and hundreds of models. GSD model profile system is not suitable for us.
Expand Down Expand Up @@ -177,6 +185,12 @@ People who want to describe what they want and have it built correctly — witho

```bash
npx gsd-opencode

# OR

npm install gsd-opencode -g
gsd-opencode install

```

That's it. Verify with `/gsd-help`.
Expand All @@ -193,6 +207,12 @@ Update with:

```bash
npx gsd-opencode@latest

# OR

npm install gsd-opencode@latest -g
gsd-opencode install

```

<details>
Expand Down Expand Up @@ -270,7 +290,7 @@ If you prefer not to use that flag, add this to your project's `.opencode/settin

---

## Distribution System
## Distribution Manager (gsd-opencode specific)

GSD-OpenCode includes a comprehensive package manager for installing, maintaining, and updating the GSD system. Once installed via npm, you have access to a full CLI for managing your GSD installation.

Expand Down Expand Up @@ -375,7 +395,39 @@ The system:

Walk away, come back to completed work with clean git history.

**Creates:** `{phase}-{N}-SUMMARY.md`, `{phase}-VERIFICATION.md`
**How Wave Execution Works:**

Plans are grouped into "waves" based on dependencies. Within each wave, plans run in parallel. Waves run sequentially.

```
┌─────────────────────────────────────────────────────────────────────┐
│ PHASE EXECUTION │
├─────────────────────────────────────────────────────────────────────┤
│ │
│ WAVE 1 (parallel) WAVE 2 (parallel) WAVE 3 │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│ │ Plan 01 │ │ Plan 02 │ → │ Plan 03 │ │ Plan 04 │ → │ Plan 05 │ │
│ │ │ │ │ │ │ │ │ │ │ │
│ │ User │ │ Product │ │ Orders │ │ Cart │ │ Checkout│ │
│ │ Model │ │ Model │ │ API │ │ API │ │ UI │ │
│ └─────────┘ └─────────┘ └─────────┘ └─────────┘ └─────────┘ │
│ │ │ ↑ ↑ ↑ │
│ └───────────┴──────────────┴───────────┘ │ │
│ Dependencies: Plan 03 needs Plan 01 │ │
│ Plan 04 needs Plan 02 │ │
│ Plan 05 needs Plans 03 + 04 │ │
│ │
└─────────────────────────────────────────────────────────────────────┘
```

**Why waves matter:**
- Independent plans → Same wave → Run in parallel
- Dependent plans → Later wave → Wait for dependencies
- File conflicts → Sequential plans or same plan

This is why "vertical slices" (Plan 01: User feature end-to-end) parallelize better than "horizontal layers" (Plan 01: All models, Plan 02: All APIs).

**Creates:** `{phase_num}-{N}-SUMMARY.md`, `{phase_num}-VERIFICATION.md`

---

Expand Down Expand Up @@ -553,8 +605,8 @@ You're never locked in. The system adapts.
|---------|--------------|
| `/gsd-progress` | Where am I? What's next? |
| `/gsd-help` | Show all commands and usage guide |
| `/gsd-whats-new` | See what changed since your installed version |
| `/gsd-update` | Update GSD with changelog preview |
| `/gsd-join-discord` | Join the GSD Discord community |

### Brownfield

Expand Down Expand Up @@ -606,9 +658,13 @@ GSD stores project settings in `.planning/config.json`. Configure during `/gsd-n
| `mode` | `yolo`, `interactive` | `interactive` | Auto-approve vs confirm at each step |
| `depth` | `quick`, `standard`, `comprehensive` | `standard` | Planning thoroughness (phases × plans) |

### Model Profiles
### Model Profiles (gsd-opencode specific)

Control which OpenCode model each agent uses. Balance quality vs token spend.
| Profile | Planning | Execution | Verification |
|---------|---------|---------|------------------|
| Simple | First model | First model | First model |
| Smart | First model | First model | Second model |
| Genius | First model | Second model | Third model |

#### How It Works

Expand All @@ -626,50 +682,37 @@ Two files manage model assignments:

| File | Purpose |
|------|---------|
| `.planning/config.json` | **Source of truth** — stores profiles, presets, and overrides |
| `.planning/oc-config.json` | **Source of truth** — stores profiles |
| `opencode.json` | **Derived config** — agent-to-model mappings read by OpenCode |

When you change profiles or models, GSD updates both files. OpenCode reads `opencode.json` at startup.

#### Presets vs Overrides
#### Presets

**Presets** define the base models for each profile:

```json
{
"profiles": {
"presets": {
"quality": { "planning": "anthropic/claude-sonnet-4", "execution": "anthropic/claude-sonnet-4", "verification": "anthropic/claude-sonnet-4" },
"balanced": { "planning": "anthropic/claude-sonnet-4", "execution": "openai/gpt-4o-mini", "verification": "openai/gpt-4o-mini" },
"budget": { "planning": "openai/gpt-4o-mini", "execution": "openai/gpt-4o-mini", "verification": "openai/gpt-4o-mini" }
}
}
}
```

**Overrides** let you customize a single stage without changing the preset:

```json
{
"profiles": {
"custom_overrides": {
"balanced": {
"planning": "anthropic/claude-opus-4" // Override just planning stage
"genius": {
"planning": "bailian-coding-plan/qwen3.5-plus",
"execution": "bailian-coding-plan/kimi-k2.5",
"verification": "bailian-coding-plan/MiniMax-M2.5"
}
}
}
},
"current_oc_profile": "genius"
}
```

The **effective model** = override (if set) || preset.

#### First-Run Setup

On first use (or when running `/gsd-settings` → Reset presets), the **Preset Setup Wizard** runs:
On first use (or when running `/gsd-set-profile` → Reset presets), the **Preset Setup Wizard** runs:

1. Queries `opencode models` to discover available models
2. Prompts you to select models for each profile/stage (9 selections total)
3. Saves configuration to `.planning/config.json`
3. Saves configuration to `.planning/oc-config.json`
4. Generates `opencode.json` with agent mappings

This ensures your presets use models actually available in your OpenCode installation.
Expand All @@ -678,18 +721,18 @@ This ensures your presets use models actually available in your OpenCode install

| Command | What it does |
|---------|--------------|
| `/gsd-settings` | Full interactive menu: switch profiles, set/clear overrides, reset presets, toggle workflow agents |
| `/gsd-set-profile <profile>` | Quick switch between quality/balanced/budget profiles |
| `/gsd-set-model [profile]` | Configure which models a profile's presets use |
| `/gsd-set-profile` | Full interactive menu: switch profiles, set/clear overrides, reset presets, toggle workflow agents |
| `/gsd-set-profile <profile>` | Quick switch between simple/smart/genius profiles |


**Examples:**

```bash
# Switch to budget profile
/gsd-set-profile budget
# Switch to simple profile
/gsd-set-profile simple

# Configure balanced profile's models interactively
/gsd-set-model balanced
/gsd-set-profile balanced

# Open full settings menu
/gsd-settings
Expand All @@ -699,9 +742,9 @@ This ensures your presets use models actually available in your OpenCode install

When configuring your presets:

- **quality** — Use your most capable model for all stages. Best for critical architecture work.
- **balanced** — Strong model for planning (decisions matter), mid-tier for execution/verification (follows instructions).
- **budget** — Mid-tier for code writing, lightweight for research/verification. Best for high-volume work.
- **simple** — Use your most capable model for all stages. Best for critical architecture work.
- **smart** — Strong model for planning (decisions matter), mid-tier for execution/verification (follows instructions).
- **genius** — Strong model for planning (decisions matter), mid-tier for execution/verification (follows instructions), lightweight for research/verification. Best for high-volume work.

#### Important: Restart Required

Expand Down
3 changes: 2 additions & 1 deletion assets/antipatterns.toml
Original file line number Diff line number Diff line change
Expand Up @@ -32,5 +32,6 @@ forbidden_strings = [
"name: set-profile",
"websearch, webfetch, mcp__context7__*",
"workflows/set-profile.md",
"quality/balanced/budget"
"quality/balanced/budget",
"gsd:"
]
File renamed without changes.
File renamed without changes.
File renamed without changes.
Loading