@opengsd/gsd-core 1.2.0 → 1.3.0-rc.1
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.ja-JP.md +6 -5
- package/README.ko-KR.md +6 -5
- package/README.md +10 -45
- package/README.pt-BR.md +5 -4
- package/README.zh-CN.md +6 -5
- package/agents/gsd-ai-researcher.md +1 -1
- package/agents/gsd-debug-session-manager.md +1 -1
- package/agents/gsd-doc-writer.md +7 -6
- package/agents/gsd-domain-researcher.md +1 -1
- package/agents/gsd-eval-planner.md +1 -1
- package/agents/gsd-phase-researcher.md +1 -1
- package/agents/gsd-ui-researcher.md +1 -1
- package/agents/gsd-verifier.md +1 -1
- package/assets/gsd-logo-2000-transparent.png +0 -0
- package/assets/gsd-logo-2000-transparent.svg +17 -0
- package/assets/gsd-logo-2000.png +0 -0
- package/assets/gsd-logo-2000.svg +21 -0
- package/assets/terminal.svg +68 -0
- package/bin/install.js +86 -44
- package/commands/gsd/review.md +2 -1
- package/get-shit-done/bin/gsd-tools.cjs +37 -1
- package/get-shit-done/bin/lib/command-aliases.cjs +16 -0
- package/get-shit-done/bin/lib/commands.cjs +109 -5
- package/get-shit-done/bin/lib/config-types.cjs +19 -0
- package/get-shit-done/bin/lib/core.cjs +455 -63
- package/get-shit-done/bin/lib/gap-checker.cjs +56 -7
- package/get-shit-done/bin/lib/installer-migration-report.cjs +1 -0
- package/get-shit-done/bin/lib/milestone.cjs +59 -1
- package/get-shit-done/bin/lib/model-catalog.cjs +17 -0
- package/get-shit-done/bin/lib/phase-lifecycle.cjs +0 -1
- package/get-shit-done/bin/lib/review-reviewer-selection.cjs +1 -0
- package/get-shit-done/bin/lib/roadmap-command-router.cjs +134 -0
- package/get-shit-done/bin/lib/roadmap-upgrade.cjs +569 -0
- package/get-shit-done/bin/lib/roadmap.cjs +6 -5
- package/get-shit-done/bin/lib/semver-compare.cjs +34 -27
- package/get-shit-done/bin/lib/shell-command-projection.cjs +35 -0
- package/get-shit-done/bin/lib/state-document.cjs +0 -4
- package/get-shit-done/bin/lib/state.cjs +41 -6
- package/get-shit-done/bin/lib/ui-safety-gate.cjs +111 -0
- package/get-shit-done/bin/lib/validate.cjs +43 -17
- package/get-shit-done/bin/lib/verify.cjs +107 -4
- package/get-shit-done/bin/shared/config-defaults.manifest.json +1 -0
- package/get-shit-done/bin/shared/config-schema.manifest.json +12 -1
- package/get-shit-done/bin/shared/model-catalog.json +27 -0
- package/get-shit-done/references/checkpoints.md +1 -1
- package/get-shit-done/references/planner-human-verify-mode.md +1 -1
- package/get-shit-done/references/ui-brand.md +4 -2
- package/get-shit-done/workflows/audit-fix.md +1 -1
- package/get-shit-done/workflows/audit-milestone.md +2 -0
- package/get-shit-done/workflows/autonomous.md +7 -5
- package/get-shit-done/workflows/cleanup.md +43 -3
- package/get-shit-done/workflows/code-review-fix.md +3 -3
- package/get-shit-done/workflows/code-review.md +2 -0
- package/get-shit-done/workflows/debug.md +6 -1
- package/get-shit-done/workflows/diagnose-issues.md +2 -0
- package/get-shit-done/workflows/discuss-phase/modes/advisor.md +1 -1
- package/get-shit-done/workflows/discuss-phase-assumptions.md +2 -2
- package/get-shit-done/workflows/docs-update.md +18 -4
- package/get-shit-done/workflows/eval-review.md +1 -1
- package/get-shit-done/workflows/execute-phase/steps/codebase-drift-gate.md +1 -1
- package/get-shit-done/workflows/execute-phase.md +21 -11
- package/get-shit-done/workflows/execute-plan.md +1 -1
- package/get-shit-done/workflows/explore.md +2 -0
- package/get-shit-done/workflows/help/modes/default.md +3 -3
- package/get-shit-done/workflows/help/modes/full.md +5 -5
- package/get-shit-done/workflows/import.md +2 -0
- package/get-shit-done/workflows/ingest-docs.md +2 -2
- package/get-shit-done/workflows/manager.md +2 -2
- package/get-shit-done/workflows/map-codebase.md +2 -0
- package/get-shit-done/workflows/new-milestone.md +2 -2
- package/get-shit-done/workflows/new-project.md +2 -2
- package/get-shit-done/workflows/plan-phase.md +16 -15
- package/get-shit-done/workflows/plan-review-convergence.md +3 -3
- package/get-shit-done/workflows/quick.md +5 -3
- package/get-shit-done/workflows/review.md +109 -1
- package/get-shit-done/workflows/scan.md +2 -0
- package/get-shit-done/workflows/secure-phase.md +2 -0
- package/get-shit-done/workflows/settings-advanced.md +195 -5
- package/get-shit-done/workflows/settings.md +15 -1
- package/get-shit-done/workflows/ui-phase.md +2 -2
- package/get-shit-done/workflows/ui-review.md +1 -1
- package/get-shit-done/workflows/validate-phase.md +2 -0
- package/get-shit-done/workflows/verify-work.md +2 -2
- package/hooks/dist/gsd-worktree-path-guard.js +169 -0
- package/hooks/gsd-worktree-path-guard.js +169 -0
- package/hooks/managed-hooks-registry.cjs +1 -0
- package/package.json +9 -6
- package/scripts/build-hooks.js +1 -0
- package/scripts/ci-test-scope.cjs +10 -0
- package/scripts/run-tests.cjs +25 -1
- package/scripts/lint-shared-module-handsync.cjs +0 -388
- package/scripts/shared-module-handsync-allowlist.json +0 -183
package/README.ja-JP.md
CHANGED
|
@@ -2,7 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
<div align="center">
|
|
4
4
|
|
|
5
|
-
#
|
|
5
|
+
# GSD Core
|
|
6
|
+
|
|
7
|
+
**Git. Ship. Done.**
|
|
6
8
|
|
|
7
9
|
[English](README.md) · [Português](README.pt-BR.md) · [简体中文](README.zh-CN.md) · **日本語**
|
|
8
10
|
|
|
@@ -75,16 +77,15 @@ GSDはそれを解決します。Claude Codeを信頼性の高いものにする
|
|
|
75
77
|
|
|
76
78
|
ビルトインの品質ゲートが本当の問題を検出します:スキーマドリフト検出はマイグレーション漏れのORM変更をフラグし、セキュリティ強制は検証を脅威モデルに紐付け、スコープ削減検出はプランナーが要件を暗黙的に落とすのを防止します。
|
|
77
79
|
|
|
78
|
-
###
|
|
80
|
+
### 機能ハイライト
|
|
79
81
|
|
|
80
|
-
|
|
82
|
+
正規のバージョンは npm に公開された `@opengsd/gsd-core` のバージョンと `package.json` です。`docs/` の古いリリースノートは継続性の履歴として残しているだけで、現在の GSD Core パッケージバージョンではありません。
|
|
81
83
|
|
|
82
84
|
- **`--minimal` インストールプロファイル** — エイリアス `--core-only`。メインループの6スキル(`new-project`、`discuss-phase`、`plan-phase`、`execute-phase`、`help`、`update`)のみをインストールし、`gsd-*` サブエージェントはゼロ。コールドスタート時のシステムプロンプトのオーバーヘッドを ~12kトークンから ~700トークンへ削減(≥94%減)。32K〜128Kコンテキストのローカル LLM やトークン課金 API に有効。
|
|
83
85
|
- **`/gsd-phase --edit`** — `ROADMAP.md` 上の既存フェーズの任意フィールドをその場で編集(番号や位置は変更されない)。`--force` で確認 diff をスキップ、`depends_on` の参照を検証し、書き込み時に `STATE.md` も更新。
|
|
84
86
|
- **マージ後ビルド & テストゲート** — `execute-phase` のステップ 5.6 が `workflow.build_command` の設定を自動検出し、無ければ Xcode(`.xcodeproj`)、Makefile、Justfile、Cargo、Go、Python、npm の順にフォールバック。Xcode/iOS プロジェクトでは `xcodebuild build` と `xcodebuild test` を自動実行。並列・直列両モードで動作。
|
|
85
87
|
- **ランタイム別レビューモデル選択** — `review.models.<cli>` で各外部レビュー CLI(codex、gemini など)が使うモデルをプランナー/実行プロファイルとは独立に指定可能。
|
|
86
88
|
- **ワークストリーム設定の継承** — `GSD_WORKSTREAM` が設定されている場合、ルートの `.planning/config.json` を先に読み込み、ワークストリーム設定をディープマージ(衝突時はワークストリーム側が優先)。ワークストリーム設定で明示的に `null` を指定するとルート値を上書き可能。
|
|
87
|
-
- **手動カナリアリリースワークフロー** — `.github/workflows/canary.yml` が `workflow_dispatch` 経由で `dev` ブランチから `{base}-canary.{N}` ビルドを `@canary` dist-tag に手動公開(`@opengsd/gsd-core` と `@opengsd/gsd-sdk`)。
|
|
88
89
|
- **スキルの統合:86 → 59** — 4つの新しいグループ化スキル(`capture`、`phase`、`config`、`workspace`)が31のマイクロスキルを吸収。既存の親スキル6つはラップアップやサブ操作をフラグ化:`update --sync/--reapply`、`sketch --wrap-up`、`spike --wrap-up`、`map-codebase --fast/--query`、`code-review --fix`、`progress --do/--next`。機能の欠損なし。
|
|
89
90
|
|
|
90
91
|
---
|
|
@@ -181,7 +182,7 @@ npx @opengsd/gsd-core --all --global # すべてのディレクトリにイ
|
|
|
181
182
|
|
|
182
183
|
```bash
|
|
183
184
|
git clone https://github.com/open-gsd/gsd-core.git
|
|
184
|
-
cd
|
|
185
|
+
cd gsd-core
|
|
185
186
|
node bin/install.js --claude --local
|
|
186
187
|
```
|
|
187
188
|
|
package/README.ko-KR.md
CHANGED
|
@@ -2,7 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
<div align="center">
|
|
4
4
|
|
|
5
|
-
#
|
|
5
|
+
# GSD Core
|
|
6
|
+
|
|
7
|
+
**Git. Ship. Done.**
|
|
6
8
|
|
|
7
9
|
[English](README.md) · [Português](README.pt-BR.md) · [简体中文](README.zh-CN.md) · [日本語](README.ja-JP.md) · **한국어**
|
|
8
10
|
|
|
@@ -75,16 +77,15 @@ GSD가 그걸 고칩니다. Claude Code를 신뢰할 수 있게 만드는 컨텍
|
|
|
75
77
|
|
|
76
78
|
내장 품질 게이트가 실제 문제를 잡아냅니다: 스키마 드리프트 감지는 마이그레이션 누락된 ORM 변경을 플래그하고, 보안 강제는 검증을 위협 모델에 고정시키고, 스코프 축소 감지는 플래너가 요구사항을 몰래 빠뜨리는 걸 방지합니다.
|
|
77
79
|
|
|
78
|
-
###
|
|
80
|
+
### 기능 하이라이트
|
|
79
81
|
|
|
80
|
-
|
|
82
|
+
정식 버전은 npm에 게시된 `@opengsd/gsd-core` 버전과 `package.json`을 기준으로 합니다. `docs/`의 예전 릴리스 노트는 연속성 기록으로만 보관되며, 현재 GSD Core 패키지 버전으로 사용하지 않습니다.
|
|
81
83
|
|
|
82
84
|
- **`--minimal` 설치 프로파일** — 별칭 `--core-only`. 메인 루프 6개 스킬(`new-project`, `discuss-phase`, `plan-phase`, `execute-phase`, `help`, `update`)만 설치하고 `gsd-*` 서브에이전트는 설치하지 않음. 콜드 스타트 시스템 프롬프트 오버헤드를 ~12k 토큰에서 ~700 토큰으로 축소(≥94% 감소). 32K–128K 컨텍스트의 로컬 LLM이나 토큰 과금 API에 유용.
|
|
83
85
|
- **`/gsd-phase --edit`** — `ROADMAP.md`에 있는 기존 단계의 임의 필드를 그 자리에서 수정(번호와 위치는 변경되지 않음). `--force`는 확인 diff를 건너뛰고, `depends_on` 참조를 검증하며 쓰기 시 `STATE.md`도 갱신.
|
|
84
86
|
- **머지 후 빌드 & 테스트 게이트** — `execute-phase` 5.6 단계가 `workflow.build_command` 설정을 우선 자동 감지하고, 없으면 Xcode(`.xcodeproj`), Makefile, Justfile, Cargo, Go, Python, npm 순으로 폴백. Xcode/iOS 프로젝트는 `xcodebuild build` 및 `xcodebuild test`를 자동 실행. 병렬·직렬 모드 모두에서 동작.
|
|
85
87
|
- **런타임별 리뷰 모델 선택** — `review.models.<cli>`로 각 외부 리뷰 CLI(codex, gemini 등)가 플래너/실행 프로파일과 독립적으로 자체 모델을 선택할 수 있음.
|
|
86
88
|
- **워크스트림 설정 상속** — `GSD_WORKSTREAM`이 설정되면 루트 `.planning/config.json`을 먼저 로드한 뒤 워크스트림 설정을 딥 머지(충돌 시 워크스트림 우선). 워크스트림 설정에서 명시적 `null`은 루트 값을 덮어씀.
|
|
87
|
-
- **수동 카나리 릴리스 워크플로** — `.github/workflows/canary.yml`이 `workflow_dispatch`로 `dev` 브랜치에서 `{base}-canary.{N}` 빌드를 `@canary` dist-tag로 수동 게시(`@opengsd/gsd-core`와 `@opengsd/gsd-sdk`).
|
|
88
89
|
- **스킬 통합: 86 → 59** — 4개의 새로운 그룹 스킬(`capture`, `phase`, `config`, `workspace`)이 31개의 마이크로 스킬을 흡수. 기존 6개의 부모 스킬은 래퍼업/하위 동작을 플래그로 흡수: `update --sync/--reapply`, `sketch --wrap-up`, `spike --wrap-up`, `map-codebase --fast/--query`, `code-review --fix`, `progress --do/--next`. 기능 손실 없음.
|
|
89
90
|
|
|
90
91
|
---
|
|
@@ -181,7 +182,7 @@ npx @opengsd/gsd-core --all --global # 모든 디렉터리에 설치
|
|
|
181
182
|
|
|
182
183
|
```bash
|
|
183
184
|
git clone https://github.com/open-gsd/gsd-core.git
|
|
184
|
-
cd
|
|
185
|
+
cd gsd-core
|
|
185
186
|
node bin/install.js --claude --local
|
|
186
187
|
```
|
|
187
188
|
|
package/README.md
CHANGED
|
@@ -1,31 +1,8 @@
|
|
|
1
|
-
> # Project Continuity Notice
|
|
2
|
-
>
|
|
3
|
-
> GSD is maintained by the **open-gsd** team at:
|
|
4
|
-
> **`open-gsd/gsd-core`**
|
|
5
|
-
>
|
|
6
|
-
> Use only these package names:
|
|
7
|
-
>
|
|
8
|
-
> - npm (main): `@opengsd/gsd-core`
|
|
9
|
-
> - npm (sdk): `@opengsd/gsd-sdk`
|
|
10
|
-
>
|
|
11
|
-
> The legacy upstream is outside open-gsd control. Based on public transition announcements and repository ownership reality, we strongly recommend removing legacy packages and migrating to `@opengsd/*`.
|
|
12
|
-
>
|
|
13
|
-
> Security status:
|
|
14
|
-
>
|
|
15
|
-
> - maintainers completed an internal security audit
|
|
16
|
-
> - maintainers report an independent review pass
|
|
17
|
-
> - no known active exploit was found in tracked source during those passes
|
|
18
|
-
>
|
|
19
|
-
> See:
|
|
20
|
-
>
|
|
21
|
-
> - continuity announcement: https://github.com/open-gsd/gsd-core/discussions/109
|
|
22
|
-
> - audit transparency report: https://github.com/open-gsd/gsd-core/discussions/119
|
|
23
|
-
>
|
|
24
|
-
> ---
|
|
25
|
-
|
|
26
1
|
<div align="center">
|
|
27
2
|
|
|
28
|
-
#
|
|
3
|
+
# GSD Core
|
|
4
|
+
|
|
5
|
+
**Git. Ship. Done.**
|
|
29
6
|
|
|
30
7
|
**English** · [Português](README.pt-BR.md) · [简体中文](README.zh-CN.md) · [日本語](README.ja-JP.md) · [한국어](README.ko-KR.md)
|
|
31
8
|
|
|
@@ -58,7 +35,7 @@ npx @opengsd/gsd-core@latest
|
|
|
58
35
|
|
|
59
36
|
*"I've done SpecKit, OpenSpec and Taskmaster — this has produced the best results for me."*
|
|
60
37
|
|
|
61
|
-
*"By far the most powerful addition to my Claude Code. Nothing over-engineered.
|
|
38
|
+
*"By far the most powerful addition to my Claude Code. Nothing over-engineered. It just helps me ship."*
|
|
62
39
|
|
|
63
40
|
<br>
|
|
64
41
|
|
|
@@ -69,21 +46,9 @@ npx @opengsd/gsd-core@latest
|
|
|
69
46
|
---
|
|
70
47
|
|
|
71
48
|
> [!IMPORTANT]
|
|
72
|
-
> **Returning to GSD?**
|
|
49
|
+
> **Returning to GSD Core?**
|
|
73
50
|
>
|
|
74
|
-
> Run `/gsd-map-codebase` to re-index your codebase, then `/gsd-new-project` to rebuild GSD's planning context. Your code is fine — GSD just needs its context rebuilt.
|
|
75
|
-
|
|
76
|
-
---
|
|
77
|
-
|
|
78
|
-
## Why We Continue Building GSD
|
|
79
|
-
|
|
80
|
-
GSD exists to help solo builders and small teams ship reliably with AI: clear specs, controlled context, and verification before release.
|
|
81
|
-
|
|
82
|
-
In May 2026, maintainers published a continuity announcement and migrated active development to `open-gsd/gsd-core` after trust and ownership concerns around the former upstream, including a meme-coin rug-pull incident publicly associated with that ecosystem.
|
|
83
|
-
|
|
84
|
-
The former creator and legacy lineage are no longer part of this program. This repository is the maintained continuation under open-gsd governance.
|
|
85
|
-
|
|
86
|
-
The current team continues release operations, triage, and security hardening in public. Audit status and follow-up security work are documented in Discussion #119 and linked issues.
|
|
51
|
+
> Run `/gsd-map-codebase` to re-index your codebase, then `/gsd-new-project` to rebuild GSD's planning context. Your code is fine — GSD just needs its context rebuilt. Use `@opengsd/gsd-core@latest` for the current package line.
|
|
87
52
|
|
|
88
53
|
---
|
|
89
54
|
|
|
@@ -161,11 +126,11 @@ The installer prompts for your runtime (Claude Code, OpenCode, Gemini CLI, Kilo,
|
|
|
161
126
|
claude --dangerously-skip-permissions
|
|
162
127
|
```
|
|
163
128
|
|
|
164
|
-
GSD is built for frictionless automation. Skip-permissions is how it's intended to run.
|
|
129
|
+
GSD Core is built for frictionless automation. Skip-permissions is how it's intended to run.
|
|
165
130
|
|
|
166
131
|
Install only the skills you need with `--profile=core` (six core-loop skills), `--profile=standard` (core + phase management), or the default full install. Profiles compose: `--profile=core,audit`. `--minimal` is an alias for `--profile=core`. See **[docs/USER-GUIDE.md](docs/USER-GUIDE.md)** for the full walkthrough, non-interactive install flags for all 15 runtimes, and permissions configuration. See [ADR-0011](docs/adr/0011-skill-surface-budget-module.md) for the profile model and runtime surface control.
|
|
167
132
|
|
|
168
|
-
|
|
133
|
+
The canonical release version is the `@opengsd/gsd-core` version published on npm and mirrored in `package.json`. Older release-note files under `docs/` are retained as legacy continuity notes; do not use archived release-note numbers as the current GSD Core package version.
|
|
169
134
|
|
|
170
135
|
### Cross-runtime compatibility: installer required
|
|
171
136
|
|
|
@@ -243,7 +208,7 @@ For the full configuration reference — all settings, git branching strategies,
|
|
|
243
208
|
| [Architecture](docs/ARCHITECTURE.md) | How the multi-agent orchestration works |
|
|
244
209
|
| [CLI Tools](docs/CLI-TOOLS.md) | `gsd-sdk query` and programmatic SDK dispatch seams |
|
|
245
210
|
| [Features](docs/FEATURES.md) | Complete feature index |
|
|
246
|
-
| [Changelog](CHANGELOG.md) |
|
|
211
|
+
| [Changelog](CHANGELOG.md) | Release history, including archived legacy continuity notes |
|
|
247
212
|
|
|
248
213
|
---
|
|
249
214
|
|
|
@@ -296,6 +261,6 @@ MIT License. See [LICENSE](LICENSE) for details.
|
|
|
296
261
|
|
|
297
262
|
<div align="center">
|
|
298
263
|
|
|
299
|
-
**Claude Code is powerful. GSD makes it reliable.**
|
|
264
|
+
**Claude Code is powerful. GSD Core makes it reliable.**
|
|
300
265
|
|
|
301
266
|
</div>
|
package/README.pt-BR.md
CHANGED
|
@@ -2,7 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
<div align="center">
|
|
4
4
|
|
|
5
|
-
#
|
|
5
|
+
# GSD Core
|
|
6
|
+
|
|
7
|
+
**Git. Ship. Done.**
|
|
6
8
|
|
|
7
9
|
[English](README.md) · **Português** · [简体中文](README.zh-CN.md) · [日本語](README.ja-JP.md)
|
|
8
10
|
|
|
@@ -73,16 +75,15 @@ Para quem quer descrever o que precisa e receber isso construído do jeito certo
|
|
|
73
75
|
|
|
74
76
|
Quality gates embutidos capturam problemas reais: detecção de schema drift sinaliza mudanças ORM sem migrations, segurança ancora verificação a modelos de ameaça, e detecção de redução de escopo impede o planner de descartar requisitos silenciosamente.
|
|
75
77
|
|
|
76
|
-
### Destaques
|
|
78
|
+
### Destaques de recursos
|
|
77
79
|
|
|
78
|
-
|
|
80
|
+
A versão canônica é a versão de `@opengsd/gsd-core` publicada no npm e espelhada em `package.json`. Arquivos antigos de release notes em `docs/` ficam apenas como histórico de continuidade; não use números arquivados como a versão atual do GSD Core.
|
|
79
81
|
|
|
80
82
|
- **Perfil de instalação `--minimal`** — alias `--core-only`. Instala apenas os 6 skills do loop principal (`new-project`, `discuss-phase`, `plan-phase`, `execute-phase`, `help`, `update`) e nenhum subagente `gsd-*`. Reduz o overhead do system prompt no cold-start de ~12k para ~700 tokens (≥94% de redução). Útil para LLMs locais com contexto de 32K–128K e APIs cobradas por token.
|
|
81
83
|
- **`/gsd-phase --edit`** — edita qualquer campo de uma fase existente em `ROADMAP.md` no lugar, sem alterar o número ou a posição. `--force` pula o diff de confirmação; referências em `depends_on` são validadas e o `STATE.md` é atualizado na escrita.
|
|
82
84
|
- **Build & test gate pós-merge** — o passo 5.6 de `execute-phase` agora detecta automaticamente o comando de build em `workflow.build_command`, com fallback para Xcode (`.xcodeproj`), Makefile, Justfile, Cargo, Go, Python ou npm. Projetos Xcode/iOS rodam `xcodebuild build` e `xcodebuild test` automaticamente. Funciona em modo paralelo e serial.
|
|
83
85
|
- **Modelo de review por runtime** — `review.models.<cli>` permite que cada CLI externa de review (codex, gemini, etc.) escolha seu próprio modelo, independente do perfil de planner/executor.
|
|
84
86
|
- **Herança de configuração de workstream** — quando `GSD_WORKSTREAM` está definido, o `.planning/config.json` raiz é carregado primeiro e merge-deep com o config da workstream (workstream vence em conflito). Um `null` explícito no config da workstream sobrescreve corretamente o valor raiz.
|
|
85
|
-
- **Workflow manual de canary release** — `.github/workflows/canary.yml` publica builds `{base}-canary.{N}` de `@opengsd/gsd-core` e `@opengsd/gsd-sdk` na dist-tag `@canary` a partir de `dev`, sob demanda via `workflow_dispatch`.
|
|
86
87
|
- **Consolidação de skills: 86 → 59** — 4 novos skills agrupados (`capture`, `phase`, `config`, `workspace`) absorvem 31 micro-skills. 6 skills pais existentes absorvem wrap-up e sub-operações como flags: `update --sync/--reapply`, `sketch --wrap-up`, `spike --wrap-up`, `map-codebase --fast/--query`, `code-review --fix`, `progress --do/--next`. Sem perda funcional.
|
|
87
88
|
|
|
88
89
|
---
|
package/README.zh-CN.md
CHANGED
|
@@ -2,7 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
<div align="center">
|
|
4
4
|
|
|
5
|
-
#
|
|
5
|
+
# GSD Core
|
|
6
|
+
|
|
7
|
+
**Git. Ship. Done.**
|
|
6
8
|
|
|
7
9
|
[English](README.md) · [Português](README.pt-BR.md) · **简体中文** · [日本語](README.ja-JP.md) · [한국어](README.ko-KR.md)
|
|
8
10
|
|
|
@@ -73,16 +75,15 @@ GSD 解决的就是这个问题。它是让 Claude Code 变得可靠的上下文
|
|
|
73
75
|
|
|
74
76
|
适合那些想把自己的需求说明白,然后让系统正确构建出来的人,而不是假装自己在运营一个 50 人工程组织的人。
|
|
75
77
|
|
|
76
|
-
###
|
|
78
|
+
### 功能亮点
|
|
77
79
|
|
|
78
|
-
|
|
80
|
+
规范版本以 npm 上发布的 `@opengsd/gsd-core` 版本以及 `package.json` 为准。`docs/` 中旧的发行说明文件仅作为连续性历史保留;不要把归档编号当作当前 GSD Core 包版本。
|
|
79
81
|
|
|
80
82
|
- **`--minimal` 安装档** — 别名 `--core-only`。仅安装主循环的 6 个核心技能(`new-project`、`discuss-phase`、`plan-phase`、`execute-phase`、`help`、`update`),不安装任何 `gsd-*` 子代理。将冷启动系统提示开销从 ~12k token 降至 ~700 token(≥94% 减少)。适合 32K–128K 上下文的本地 LLM 和按 token 计费的 API。
|
|
81
83
|
- **`/gsd-phase --edit`** — 就地修改 `ROADMAP.md` 中已有阶段的任意字段,不改变其编号或位置。`--force` 跳过确认 diff,验证 `depends_on` 引用,并在写入时更新 `STATE.md`。
|
|
82
84
|
- **合并后构建与测试门** — `execute-phase` 步骤 5.6 优先自动检测 `workflow.build_command` 配置,否则按 Xcode(`.xcodeproj`)、Makefile、Justfile、Cargo、Go、Python、npm 顺序回退。Xcode/iOS 项目自动运行 `xcodebuild build` 和 `xcodebuild test`。在并行与串行模式下均生效。
|
|
83
85
|
- **每运行时评审模型选择** — `review.models.<cli>` 让每个外部评审 CLI(codex、gemini 等)独立于规划/执行档选择自己的模型。
|
|
84
86
|
- **工作流设置继承** — 设置 `GSD_WORKSTREAM` 后,先加载根 `.planning/config.json`,再与该工作流的配置进行深合并(冲突时工作流优先)。工作流配置中显式 `null` 会覆盖根值。
|
|
85
|
-
- **手动 canary 发布工作流** — `.github/workflows/canary.yml` 通过 `workflow_dispatch` 从 `dev` 分支按需将 `{base}-canary.{N}` 构建(`@opengsd/gsd-core` 与 `@opengsd/gsd-sdk`)发布到 `@canary` dist-tag。
|
|
86
87
|
- **技能整合:86 → 59** — 4 个新分组技能(`capture`、`phase`、`config`、`workspace`)吸收了 31 个微技能。6 个已有父技能将收尾与子操作合并为标志:`update --sync/--reapply`、`sketch --wrap-up`、`spike --wrap-up`、`map-codebase --fast/--query`、`code-review --fix`、`progress --do/--next`。功能无损失。
|
|
87
88
|
|
|
88
89
|
---
|
|
@@ -183,7 +184,7 @@ npx @opengsd/gsd-core --all --global # 安装到所有目录
|
|
|
183
184
|
|
|
184
185
|
```bash
|
|
185
186
|
git clone https://github.com/open-gsd/gsd-core.git
|
|
186
|
-
cd
|
|
187
|
+
cd gsd-core
|
|
187
188
|
node bin/install.js --claude --local
|
|
188
189
|
```
|
|
189
190
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: gsd-ai-researcher
|
|
3
3
|
description: Researches a chosen AI framework's official docs to produce implementation-ready guidance — best practices, syntax, core patterns, and pitfalls distilled for the specific use case. Writes the Framework Quick Reference and Implementation Guidance sections of AI-SPEC.md. Spawned by /gsd:ai-integration-phase orchestrator.
|
|
4
|
-
tools: Read, Write, Bash, Grep, Glob, WebFetch, WebSearch, mcp__context7__*
|
|
4
|
+
tools: Read, Write, Edit, Bash, Grep, Glob, WebFetch, WebSearch, mcp__context7__*
|
|
5
5
|
color: "#34D399"
|
|
6
6
|
# hooks:
|
|
7
7
|
# PostToolUse:
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: gsd-debug-session-manager
|
|
3
3
|
description: Manages multi-cycle /gsd:debug checkpoint and continuation loop in isolated context. Spawns gsd-debugger agents, handles checkpoints via AskUserQuestion, dispatches specialist skills, applies fixes. Returns compact summary to main context. Spawned by /gsd:debug command.
|
|
4
|
-
tools: Read, Write, Bash, Grep, Glob, Agent, AskUserQuestion
|
|
4
|
+
tools: Read, Write, Edit, Bash, Grep, Glob, Agent, AskUserQuestion
|
|
5
5
|
color: orange
|
|
6
6
|
# hooks:
|
|
7
7
|
# PostToolUse:
|
package/agents/gsd-doc-writer.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: gsd-doc-writer
|
|
3
3
|
description: Writes and updates project documentation. Spawned with a doc_assignment block specifying doc type, mode (create/update/supplement), and project context.
|
|
4
|
-
tools: Read, Bash, Grep, Glob, Write
|
|
4
|
+
tools: Read, Bash, Grep, Glob, Write, Edit
|
|
5
5
|
color: purple
|
|
6
6
|
# hooks:
|
|
7
7
|
# PostToolUse:
|
|
@@ -93,12 +93,12 @@ Correct specific failing claims identified by the gsd-doc-verifier. ONLY modify
|
|
|
93
93
|
1. Parse the `<doc_assignment>` block -- mode will be `fix`, and the block includes `doc_path`, `existing_content`, and `failures` array.
|
|
94
94
|
2. Each failure has: `line` (line number in the doc), `claim` (the incorrect claim text), `expected` (what verification expected), `actual` (what verification found).
|
|
95
95
|
3. For each failure:
|
|
96
|
-
a. Locate the
|
|
96
|
+
a. Locate the exact text of the incorrect claim in `existing_content`.
|
|
97
97
|
b. Explore the codebase using Read, Grep, Glob to find the correct value.
|
|
98
|
-
c.
|
|
99
|
-
d. If the correct value cannot be determined, replace the claim with a `<!-- VERIFY: {claim} -->` marker.
|
|
100
|
-
4. Write the
|
|
101
|
-
5.
|
|
98
|
+
c. Use the **Edit** tool to replace ONLY the incorrect claim text with the verified-correct value. Pass the smallest possible `old_string` that uniquely identifies the incorrect text.
|
|
99
|
+
d. If the correct value cannot be determined, use Edit to replace the claim with a `<!-- VERIFY: {claim} -->` marker.
|
|
100
|
+
4. **NEVER use the Write tool on an existing file in fix mode.** Write replaces the entire file with whatever you provide — any content not in your context window is permanently destroyed. There is no recovery if the file is untracked. Edit makes targeted replacements and is the only safe tool for fix mode.
|
|
101
|
+
5. After all Edit calls, verify the GSD marker `<!-- generated-by: gsd-doc-writer -->` is still present on the first line. If it was removed by an Edit, use Edit to restore it.
|
|
102
102
|
|
|
103
103
|
Fix mode must correct ONLY the lines listed in the failures array. Do not modify, reorder, rephrase, or "improve" any other content in the file. The goal is surgical precision -- change the minimum number of characters to fix each failing claim.
|
|
104
104
|
</fix_mode>
|
|
@@ -597,6 +597,7 @@ change — only location and metadata change.
|
|
|
597
597
|
3. Include the GSD marker `<!-- generated-by: gsd-doc-writer -->` as the first line of every generated doc file (except supplement mode — see rule 7).
|
|
598
598
|
4. Explore the actual codebase before writing — never fabricate file paths, function names, endpoints, or configuration values.
|
|
599
599
|
8. Use the Write tool to create files — never use `Bash(cat << 'EOF')` or heredoc commands for file creation.
|
|
600
|
+
9. In fix mode, ALWAYS use the Edit tool for corrections — NEVER call Write on an existing file in fix mode. Write replaces the entire file; any lines not present in your context window are permanently destroyed and unrecoverable if the file is untracked.
|
|
600
601
|
5. Use `<!-- VERIFY: {claim} -->` markers for any infrastructure claim (URLs, server configs, external service details) that cannot be verified from the repository contents alone.
|
|
601
602
|
6. In update mode, PRESERVE user-authored content in sections that are still accurate. Only rewrite inaccurate or missing sections.
|
|
602
603
|
7. In supplement mode, NEVER modify existing content. Only append missing sections. Do NOT add the GSD marker to hand-written files.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: gsd-domain-researcher
|
|
3
3
|
description: Researches the business domain and real-world application context of the AI system being built. Surfaces domain expert evaluation criteria, industry-specific failure modes, regulatory context, and what "good" looks like for practitioners in this field — before the eval-planner turns it into measurable rubrics. Spawned by /gsd:ai-integration-phase orchestrator.
|
|
4
|
-
tools: Read, Write, Bash, Grep, Glob, WebSearch, WebFetch, mcp__context7__*
|
|
4
|
+
tools: Read, Write, Edit, Bash, Grep, Glob, WebSearch, WebFetch, mcp__context7__*
|
|
5
5
|
color: "#A78BFA"
|
|
6
6
|
# hooks:
|
|
7
7
|
# PostToolUse:
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: gsd-eval-planner
|
|
3
3
|
description: Designs a structured evaluation strategy for an AI phase. Identifies critical failure modes, selects eval dimensions with rubrics, recommends tooling, and specifies the reference dataset. Writes the Evaluation Strategy, Guardrails, and Production Monitoring sections of AI-SPEC.md. Spawned by /gsd:ai-integration-phase orchestrator.
|
|
4
|
-
tools: Read, Write, Bash, Grep, Glob, AskUserQuestion
|
|
4
|
+
tools: Read, Write, Edit, Bash, Grep, Glob, AskUserQuestion
|
|
5
5
|
color: "#F59E0B"
|
|
6
6
|
# hooks:
|
|
7
7
|
# PostToolUse:
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: gsd-phase-researcher
|
|
3
3
|
description: Researches how to implement a phase before planning. Produces RESEARCH.md consumed by gsd-planner. Spawned by /gsd:plan-phase orchestrator.
|
|
4
|
-
tools: Read, Write, Bash, Grep, Glob, WebSearch, WebFetch, mcp__context7__*, mcp__firecrawl__*, mcp__exa__*
|
|
4
|
+
tools: Read, Write, Edit, Bash, Grep, Glob, WebSearch, WebFetch, mcp__context7__*, mcp__firecrawl__*, mcp__exa__*
|
|
5
5
|
color: cyan
|
|
6
6
|
# hooks:
|
|
7
7
|
# PostToolUse:
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: gsd-ui-researcher
|
|
3
3
|
description: Produces UI-SPEC.md design contract for frontend phases. Reads upstream artifacts, detects design system state, asks only unanswered questions. Spawned by /gsd:ui-phase orchestrator.
|
|
4
|
-
tools: Read, Write, Bash, Grep, Glob, WebSearch, WebFetch, mcp__context7__*, mcp__firecrawl__*, mcp__exa__*
|
|
4
|
+
tools: Read, Write, Edit, Bash, Grep, Glob, WebSearch, WebFetch, mcp__context7__*, mcp__firecrawl__*, mcp__exa__*
|
|
5
5
|
color: "#E879F9"
|
|
6
6
|
# hooks:
|
|
7
7
|
# PostToolUse:
|
package/agents/gsd-verifier.md
CHANGED
|
@@ -544,7 +544,7 @@ done
|
|
|
544
544
|
</verify>
|
|
545
545
|
```
|
|
546
546
|
|
|
547
|
-
Merge those harvested items into the same human verification list as your own analysis. Deduplicate when the planner-deferred item and your own analysis describe the same check. The downstream `human_needed` →
|
|
547
|
+
Merge those harvested items into the same human verification list as your own analysis. Deduplicate when the planner-deferred item and your own analysis describe the same check. The downstream `human_needed` → `{phase_num}-UAT.md` path in `workflows/execute-phase.md` is the single sink — no separate file is created.
|
|
548
548
|
|
|
549
549
|
**Format:**
|
|
550
550
|
|
|
Binary file
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 2000 2000" width="2000" height="2000">
|
|
2
|
+
<defs>
|
|
3
|
+
<style>
|
|
4
|
+
.logo { font-family: 'SF Mono', 'Fira Code', 'JetBrains Mono', 'Courier New', monospace; fill: #7dcfff; }
|
|
5
|
+
</style>
|
|
6
|
+
</defs>
|
|
7
|
+
|
|
8
|
+
<!-- GSD ASCII Logo - centered -->
|
|
9
|
+
<g transform="translate(1000, 1000)">
|
|
10
|
+
<text class="logo" font-size="108" text-anchor="middle" y="-225" xml:space="preserve"> ██████╗ ███████╗██████╗ </text>
|
|
11
|
+
<text class="logo" font-size="108" text-anchor="middle" y="-105" xml:space="preserve"> ██╔════╝ ██╔════╝██╔══██╗</text>
|
|
12
|
+
<text class="logo" font-size="108" text-anchor="middle" y="15" xml:space="preserve"> ██║ ███╗███████╗██║ ██║</text>
|
|
13
|
+
<text class="logo" font-size="108" text-anchor="middle" y="135" xml:space="preserve"> ██║ ██║╚════██║██║ ██║</text>
|
|
14
|
+
<text class="logo" font-size="108" text-anchor="middle" y="255" xml:space="preserve"> ╚██████╔╝███████║██████╔╝</text>
|
|
15
|
+
<text class="logo" font-size="108" text-anchor="middle" y="375" xml:space="preserve"> ╚═════╝ ╚══════╝╚═════╝ </text>
|
|
16
|
+
</g>
|
|
17
|
+
</svg>
|
|
Binary file
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 2000 2000" width="2000" height="2000">
|
|
2
|
+
<defs>
|
|
3
|
+
<style>
|
|
4
|
+
.bg { fill: #1a1b26; }
|
|
5
|
+
.logo { font-family: 'SF Mono', 'Fira Code', 'JetBrains Mono', 'Courier New', monospace; fill: #7dcfff; }
|
|
6
|
+
</style>
|
|
7
|
+
</defs>
|
|
8
|
+
|
|
9
|
+
<!-- Background -->
|
|
10
|
+
<rect class="bg" width="2000" height="2000"/>
|
|
11
|
+
|
|
12
|
+
<!-- GSD ASCII Logo - centered -->
|
|
13
|
+
<g transform="translate(1000, 1000)">
|
|
14
|
+
<text class="logo" font-size="108" text-anchor="middle" y="-225" xml:space="preserve"> ██████╗ ███████╗██████╗ </text>
|
|
15
|
+
<text class="logo" font-size="108" text-anchor="middle" y="-105" xml:space="preserve"> ██╔════╝ ██╔════╝██╔══██╗</text>
|
|
16
|
+
<text class="logo" font-size="108" text-anchor="middle" y="15" xml:space="preserve"> ██║ ███╗███████╗██║ ██║</text>
|
|
17
|
+
<text class="logo" font-size="108" text-anchor="middle" y="135" xml:space="preserve"> ██║ ██║╚════██║██║ ██║</text>
|
|
18
|
+
<text class="logo" font-size="108" text-anchor="middle" y="255" xml:space="preserve"> ╚██████╔╝███████║██████╔╝</text>
|
|
19
|
+
<text class="logo" font-size="108" text-anchor="middle" y="375" xml:space="preserve"> ╚═════╝ ╚══════╝╚═════╝ </text>
|
|
20
|
+
</g>
|
|
21
|
+
</svg>
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 960 540">
|
|
2
|
+
<defs>
|
|
3
|
+
<style>
|
|
4
|
+
.terminal-bg { fill: #1a1b26; }
|
|
5
|
+
.terminal-border { fill: #24283b; }
|
|
6
|
+
.title-bar { fill: #1f2335; }
|
|
7
|
+
.btn-red { fill: #f7768e; }
|
|
8
|
+
.btn-yellow { fill: #e0af68; }
|
|
9
|
+
.btn-green { fill: #9ece6a; }
|
|
10
|
+
.text { font-family: 'SF Mono', 'Fira Code', 'JetBrains Mono', Consolas, monospace; }
|
|
11
|
+
.prompt { fill: #7aa2f7; }
|
|
12
|
+
.command { fill: #c0caf5; }
|
|
13
|
+
.cyan { fill: #7dcfff; }
|
|
14
|
+
.green { fill: #9ece6a; }
|
|
15
|
+
.dim { fill: #565f89; }
|
|
16
|
+
.white { fill: #c0caf5; }
|
|
17
|
+
</style>
|
|
18
|
+
</defs>
|
|
19
|
+
|
|
20
|
+
<!-- Window -->
|
|
21
|
+
<rect class="terminal-border" width="960" height="540" rx="12"/>
|
|
22
|
+
<rect class="terminal-bg" x="1" y="1" width="958" height="538" rx="11"/>
|
|
23
|
+
|
|
24
|
+
<!-- Title bar -->
|
|
25
|
+
<rect class="title-bar" x="1" y="1" width="958" height="36" rx="11"/>
|
|
26
|
+
<rect class="terminal-bg" x="1" y="26" width="958" height="12"/>
|
|
27
|
+
|
|
28
|
+
<!-- Window buttons -->
|
|
29
|
+
<circle class="btn-red" cx="24" cy="19" r="7"/>
|
|
30
|
+
<circle class="btn-yellow" cx="48" cy="19" r="7"/>
|
|
31
|
+
<circle class="btn-green" cx="72" cy="19" r="7"/>
|
|
32
|
+
|
|
33
|
+
<!-- Title -->
|
|
34
|
+
<text x="480" y="24" text-anchor="middle" class="text dim" font-size="13">Terminal</text>
|
|
35
|
+
|
|
36
|
+
<!-- Content -->
|
|
37
|
+
<g transform="translate(32, 72)">
|
|
38
|
+
<!-- Prompt line -->
|
|
39
|
+
<text class="text prompt" font-size="15" y="0">~</text>
|
|
40
|
+
<text class="text dim" font-size="15" x="16" y="0">$</text>
|
|
41
|
+
<text class="text command" font-size="15" x="36" y="0">npx @opengsd/gsd-core</text>
|
|
42
|
+
|
|
43
|
+
<!-- Banner -->
|
|
44
|
+
<text class="text cyan" font-size="14" y="48" xml:space="preserve"> ██████╗ ███████╗██████╗</text>
|
|
45
|
+
<text class="text cyan" font-size="14" y="68" xml:space="preserve"> ██╔════╝ ██╔════╝██╔══██╗</text>
|
|
46
|
+
<text class="text cyan" font-size="14" y="88" xml:space="preserve"> ██║ ███╗███████╗██║ ██║</text>
|
|
47
|
+
<text class="text cyan" font-size="14" y="108" xml:space="preserve"> ██║ ██║╚════██║██║ ██║</text>
|
|
48
|
+
<text class="text cyan" font-size="14" y="128" xml:space="preserve"> ╚██████╔╝███████║██████╔╝</text>
|
|
49
|
+
<text class="text cyan" font-size="14" y="148" xml:space="preserve"> ╚═════╝ ╚══════╝╚═════╝</text>
|
|
50
|
+
|
|
51
|
+
<!-- Title and subtitle -->
|
|
52
|
+
<text class="text white" font-size="15" y="188"> GSD Core <tspan class="dim">v1.2.0</tspan></text>
|
|
53
|
+
<text class="text white" font-size="15" y="212"> Git. Ship. Done.</text>
|
|
54
|
+
<text class="text white" font-size="15" y="232"> Meta-prompting, context engineering, and spec-driven workflows.</text>
|
|
55
|
+
|
|
56
|
+
<!-- Install output -->
|
|
57
|
+
<text class="text" font-size="15" y="280"><tspan class="green"> ✓</tspan><tspan class="white"> Installed commands/gsd</tspan></text>
|
|
58
|
+
<text class="text" font-size="15" y="304"><tspan class="green"> ✓</tspan><tspan class="white"> Installed workflow assets</tspan></text>
|
|
59
|
+
|
|
60
|
+
<!-- Done message -->
|
|
61
|
+
<text class="text" font-size="15" y="352"><tspan class="green"> Done!</tspan><tspan class="white"> Run </tspan><tspan class="cyan">/gsd-help</tspan><tspan class="white"> to get started.</tspan></text>
|
|
62
|
+
|
|
63
|
+
<!-- New prompt -->
|
|
64
|
+
<text class="text prompt" font-size="15" y="400">~</text>
|
|
65
|
+
<text class="text dim" font-size="15" x="16" y="400">$</text>
|
|
66
|
+
<text class="text white" font-size="15" x="36" y="400">▌</text>
|
|
67
|
+
</g>
|
|
68
|
+
</svg>
|