Files
msd-core/docs/ko-KR/INVENTORY.md
0xdhx c61dd49d95 enhance(#2255): blocking catastrophic-shrink guard for curated .planning/ writes (#2301)
* feat(#2255): blocking catastrophic-shrink guard for .planning writes

Adds hooks/gsd-write-guard.js, a PreToolUse hook that hard-blocks
(decision: 'block', exit 2) a whole-file Write collapsing a curated
.planning/ artifact (ROADMAP.md, .planning/milestones/*-ROADMAP.md,
STATE.md) below 40% of its on-disk line count. Files under 40 lines
are exempt; GSD_ALLOW_PLANNING_SHRINK=1 (named in the block message)
bypasses for legitimate milestone resets.

Fix 3 of #973 — the only defense independent of per-agent tool config.
Registered on the Claude plugin surface (hooks.json), settings-json
runtimes (runtime-hooks-surface.cts, self-contained pattern), Kimi
spec, and the OpenCode/Kilo plugin buses. Golden install fixtures and
INVENTORY regenerated; regression tests negative-controlled (16/16
RED with the hook absent, 16/16 GREEN with it present).

* chore(#2255): backfill changeset pr number to 2301

* enhance(#2255): address review — fail-closed reads, typed block output, registration, property test

Review fixes for trek-e's CHANGES_REQUESTED on PR #2301:

- Blocker 2: register gsd-write-guard.js in BUNDLED_GSD_HOOK_FILES
  (no-shipping-drift test).
- Blocker 3: update the always-on hook enumerations in ADR-766 and
  CONTEXT.md from six to seven.
- Major 4: fail CLOSED on non-ENOENT read errors — only a missing file
  (new-file Write) passes; EACCES/EISDIR/ELOOP/etc now block, with a
  typed readError field and the override still honored. Tested, with a
  negative control against the pre-fix hook.
- Major 5: fast-check property test for the SHRINK_RATIO/FLOOR_LINES
  budget contract (blocked ⟺ newLines < oldLines*SHRINK_RATIO above the
  floor; sub-floor always exempt), boundary examples pinned.
- Major 6: block output now carries typed oldLines/newLines/
  overrideEnvVar fields; tests assert on those instead of regexing the
  free-form reason string.
- Minor: CURATED_PATTERNS are case-insensitive (case-insensitive-FS
  bypass on macOS/Windows); limit+1 boundary tests added for both the
  floor and the ratio.

* enhance(#2255): engage the write guard on Kimi's native payload shape

The guard shipped with Claude-vocabulary checks (tool_name 'Write',
tool_input.file_path), which #2304 showed leaves a guard dormant on
Kimi: the [[hooks]] matcher is registered pre-translated but kimi-cli
forwards its native payload verbatim — tool_name 'WriteFile' (bare or
module-qualified) and tool_input.path per its tool schemas
(src/kimi_cli/tools/file/write.py). The guard matched, saw an unknown
name, and exited 0.

Apply the same per-guard normalization PR #2326 gives the three
sibling guards (name + field mapping, inlined — hook scripts stage as
standalone files), and write the block reason to stderr as well as
stdout JSON: Kimi feeds stderr, not stdout, back to the model on
exit 2, so a stdout-only reason blocks without telling the model why
or naming the documented override.

Regression tests pipe Kimi-shaped payloads (engage, qualified-name,
stderr-reason) plus exemption pins (StrReplaceFile stays out of scope
by design; non-curated paths pass) — verified red against the pre-fix
guard, green after.

* enhance(#2255): rebase onto next; regenerate golden-parity fixtures

* enhance(#2255): wire the escape hatch into complete-milestone's reorganize step

Review Blocker 1: the guard hard-blocked /gsd:complete-milestone's ROADMAP
reorganize — the tree's only legitimate milestone reset and the exact caller
GSD_ALLOW_PLANNING_SHRINK was built for. The reorganize step now performs the
rewrite through a shell write with the hatch set on the command (a hook
inherits the runtime env, so a bare Write cannot carry a per-step override),
and a binding test derives the env var name from the guard's typed output and
asserts (a) the workflow step sets it and (b) the guard passes the identical
catastrophic payload under it — so the next complete-milestone.md edit cannot
silently re-break the wiring.

* enhance(#2255): drop dead Edit-class mapping from normalizeKimiPayload

Review Major 1: StrReplaceFile -> 'Edit' and the old_string/new_string
reconstruction were unreachable-by-effect — the guard exits 0 for any
tool_name !== 'Write', so nothing ever read the fields they set, leaving
guaranteed-surviving mutants against the Stryker bar. The map now carries
only WriteFile -> 'Write'; the StrReplaceFile exemption test message states
the fall-through it actually exercises.

* enhance(#2255): review minors — American spellings; writeSync before exit(2)

Minor 1: normalised/normalise -> American house style. Minor 2: the two
block paths wrote stdout+stderr via async pipe writes then exit(2) —
async-on-Windows, unflushed at exit; fs.writeSync(1/2, ...) makes the block
payload durable.

* enhance(#2255): assert stderr equals the typed reason, not raw prose

Minor 3: the last raw-text match in the suite pinned override-name prose on
stderr. The contract is "stderr carries the reason Kimi feeds back" — now
asserted as stderr non-empty and byte-equal to the parsed stdout.reason.

* enhance(#2255): bind the write-guard's Kimi normalization into the parity test

Review Major 2: the guard's normalizeKimiPayload is a 4th inlined copy with
nothing binding it. This extends PR #2326's kimi-guard-normalization-parity
test (same path and helpers, authored as a superset so either merge order
resolves cleanly): sibling byte-parity is existence-gated zero-or-all —
trivially green until #2326 lands, full-strength after — and the write-guard
copy is bound semantically (map is the value-inverse of convertKimiToolName;
the Kimi name for Write must map, or the guard is dormant on Kimi; the
path -> file_path half must be present). Byte-parity is deliberately not
asserted for this copy: it legitimately omits the Edit-class mapping
(Major 1 — dead code in a Write-only guard).

* enhance(#2255): refresh golden-parity fixtures for revised guard + workflow

* chore(#2255): regenerate golden fixtures after rebase onto next

The committed fixture hashes were generated against a tree predating
next's latest 11 commits, which independently modified the same
install-parity surface. Rebased onto next and regenerated with
`npm run gen:golden`.

Verified: against upstream/next the regenerated fixtures differ by
exactly this PR's own entries -- hooks/gsd-write-guard.js (new),
hooks/managed-hooks-registry.cjs, plugins/gsd-core.js, and
gsd-core/workflows/complete-milestone.md. No unrelated drift.

* fix(#2255): regenerate workflow size baseline for complete-milestone

`complete-milestone.md` grew 31071 -> 32061 (+990) when the round-2
review fix bound GSD_ALLOW_PLANNING_SHRINK=1 into the reorganize step,
but tests/workflow-size-baseline.json was never regenerated. The
per-file workflow baseline test (issue #1074) failed on
ubuntu-latest/22 and both macOS shard 1/3 jobs.

The growth is justified: it is the escape-hatch binding requested in
review round 2 (the guard must not hard-block the tree's only
legitimate milestone reset), not incidental bloat.

Regenerated via `npm run size:baseline`; the diff is exactly the one
entry.

* chore(#2255): regenerate golden fixtures and size baseline after rebase onto next

* enhance(#2255): bind the shrink escape hatch mechanically — single-use sentinel the guard consumes

Round-5 M1: the per-step `GSD_ALLOW_PLANNING_SHRINK=1 tee` prefix was inert
(no PreToolUse hook exists on Bash in this family; the write succeeded by
dodging the guard, not by the override firing) and the protection was prose.
The hatch is now a transport code consults: complete-milestone's reorganize
step arms `.planning/.gsd-allow-shrink` with the target's path, keeps the
Write tool as the sanctioned path, and the guard — at the block point only —
verifies the sentinel is fresh (15 min) and names the pending target, then
CONSUMES it and allows that one write. Path-bound + single-use + freshness
keep it from becoming a standing unlock. The env var remains as the
interactive transport, where it can actually reach the hook.

Regression tests written first (negative control: 3 failed pre-fix): the
armed-sentinel Write passes and consumes; stale does not exempt; a token for
a different file neither exempts nor is consumed; the binding test now takes
the sentinel name from the guard's typed output (overrideSentinel), asserts
the step arms it, and asserts the step no longer routes the rewrite around
Write via a shell pipe.

Also in this commit, same file:
- m2: block emission is exception-safe — emitBlock() wraps both writeSync
  sites in their own try/catch that still exits 2, so an EPIPE can no longer
  convert fail-closed into the outer catch's fail-open.
- Header discloses the two reviewed design limits (cumulative sequential
  shrink; lexical match vs symlinked paths) per round-5 scoping.

* docs(#2255): document the sentinel transport across guard surfaces; changeset ends with the (#2255) parenthetical (m4)

USER-GUIDE bullet, INVENTORY row (en + ja/ko/pt/zh), the
runtime-hooks-surface registration comment, and the changeset now describe
both hatches — the single-use sentinel for workflow steps and the env var
for interactive use — instead of implying a per-step env can reach a hook.
The changeset's trailing `Resolves #2255.` prose becomes the `(#2255)`
parenthetical the repo's fragments use (round-5 m4).

* chore(#2255): regenerate derived families on the rebased tree (full sweep)

Full generator sweep after rebasing onto next @ the body-parser-patched
lockfile: build, gen-inventory-manifest, gen:golden, size:baseline. Every
regen delta verified to be either a PR-owned entry (gsd-write-guard.js,
complete-milestone.md, INVENTORY/USER-GUIDE) or exact convergence to next's
committed value for entries our arbitrary-side conflict resolution had left
stale (all 18 runtime fixtures checked mechanically).

* test(#2255): use helpers.cleanup for sentinel teardown, not raw fs.rmSync

The repo's local/no-raw-rmsync-in-tests rule exists for the Windows-EBUSY
retry budget; the sentinel disarm now rides it like every other teardown.

* chore(#2255): regenerate derived families after rebase onto next

Full sweep on the rebased tree (build -> gen-inventory-manifest ->
gen:golden -> size:baseline). Every delta is either a PR-owned entry
(hooks/gsd-write-guard.js, its registration surfaces
hooks/managed-hooks-registry.cjs and the two plugin buses,
gsd-core/workflows/complete-milestone.md) or exact convergence to
next's committed value across all 18 runtime fixtures.

* chore(#2255): regenerate derived families after rebase onto next @ a5180d96

Rebase onto current `next` (a5180d96) resolved 12 conflicting
golden-install-parity fixtures; all regenerated via the full generator
sweep (build, gen:golden, size:baseline) rather than a single generator.

`lint:generated-sync` reports every generated artifact in sync. All 45
differing fixture keys and the single workflow-size-baseline entry map
to files this PR actually touches; no foreign drift.

* fix(#2255): remove the stale unguarded reorganize_roadmap step (round-8 blocker)

complete-milestone.md carried a second ROADMAP-collapsing step,
`reorganize_roadmap`, distinct from the sentinel-armed
`reorganize_roadmap_and_delete_originals` this PR wired. It is a vestige
of the pre-archive-then-reorganize design: it sits BEFORE
archive_milestone, so executing it as written would collapse ROADMAP.md
before the archive snapshots the full phase detail — and its Write is
exactly the shape gsd-write-guard hard-blocks, with no hatch armed. The
file's own success criteria describe only one reorganize outcome
(Backlog-preserving, overwrite-in-place — the later step's properties),
and archive_milestone points forward to "the reorganize step".

Removed rather than wired, per the round-8 review's confirm-and-remove
option. A new binding test asserts the sentinel-armed step is the ONLY
reorganize step in the workflow, so an unguarded collapse step cannot be
silently reintroduced (negative-controlled: fails against the pre-fix
tree). Golden-parity fixtures and the size baseline regenerate for the
shrunk file; every changed fixture key is complete-milestone.md's own.

* test(#2255): document why the read-error injection is a path collision, not an fs monkeypatch

Round-8 nit: the non-ENOENT tests inject via a directory-at-target-path
collision instead of the repo's fs-method monkeypatch pattern. That is
deliberate, not drift — runHook exercises the hook as a spawnSync child
process, so an in-process fs.readFileSync patch (the pattern the cited
siblings use on require'd, in-process code) can never reach the code
under test. Record the reasoning at the injection site.

* chore(#2255): regenerate derived families after rebase onto next @ 0d08c320

Rebase onto current next (0d08c320) for the CONFLICTING/DIRTY state. All 32
conflicts were generated artifacts (19 golden-install-parity, 12 install-tree,
workflow-size-baseline); resolved arbitrarily and regenerated via a full
generator sweep (build, gen:golden, size:baseline, gen-inventory-manifest)
rather than hand-merged. No source conflicts.

Regen diff verified against the PR's changed-file set: 7 distinct differing
keys, all PR-owned (gsd-write-guard.js, managed-hooks-registry.cjs,
plugins/gsd-core.js, complete-milestone.md, and their .kimi mirrors).
lint:generated-sync clean.

* chore(#2255): regenerate derived families after rebase onto next @ 9138271b

Conflict set was 20 paths, every one a generated artifact, zero source
conflicts — resolved arbitrarily during the replay and regenerated here,
per the maintainer's round-9 recipe (never hand-merged).

Generator sweep (not just gen:golden): npm run build, gen:golden,
size:baseline, gen-inventory-manifest, gen:registry. INVENTORY-MANIFEST
came back byte-identical, so the merged value was already correct.

Regen diff verified == PR-touched entries: every differing leaf key
attributes to a file this PR changes (complete-milestone.md, the guard,
managed-hooks-registry.cjs, both plugin buses) — derived from the
changed-file set, not a feature-name filter.

* fix(#2255): port the #2595 Kimi-payload hardening the base landed for the sibling guards

Self-found via the round-10 base sweep: a8b40fa5 (#2547/PR #2595) hardened
gsd-prompt/read/worktree-path-guard's normalizeKimiPayload after this PR was
authored, and this guard carried all three pre-fix shapes:

- `path` now wins outright over a model-supplied `file_path` — kimi-cli's
  WriteFile schema carries no `file_path`, so a payload pairing a curated
  `path` with a spurious `file_path: ""` had the guard reading '' and
  exiting 0 while kimi-cli wrote to `path` (one-key bypass, no crash needed).
- null/primitive payloads pass through deliberately instead of throwing into
  the fail-open catch.
- the `file_path` read is typed (`typeof === 'string'`), closing the
  crash-to-allow on `[]`/`{}` — this is what the base-added
  kimi-guard-typed-payload-reads scan flags.

Negative-controlled: the shadowing payload exits 0 against the pre-fix guard
and 2 against this one.

* fix(#2255): round 9 Major 2 — stop printing the sentinel recipe in the agent-facing denial

The block message ended by telling the blocked agent exactly how to arm the
single-use sentinel — handing the #973 actor a mechanical self-authorization
in the moment it is blocked. The recipe is gone from the prose; the
corrective advice and the env override's name stay (the latter is a #2255
acceptance criterion, and a per-step env prefix cannot reach a hook anyway),
and the typed overrideSentinel field stays for the binding tests. The hatch
remains documented in USER-GUIDE.md and complete-milestone.md, where humans
and the workflow engine read.

* fix(#2255): round 9 Minors 1-2 — realpath-resolve the target before the curated match; disclose the /i Linux cost

Minor 1: a Write to a non-curated path that symlinks into a curated file was
not matched while writeFileSync followed the link — the target is now
realpath-resolved before the curated match (ENOENT keeps the lexical
resolution so new-file Writes still pass; any other realpath error falls
through to the read, which fails closed). Negative-controlled: the symlink
payload exits 0 against the pre-fix guard, 2 against this one. Test skips on
win32, where symlink creation needs privilege.

Minor 2: the header's design-limits block now names the unconditional /i
cost on case-sensitive Linux (a genuinely distinct .planning/roadmap.md is
also treated as curated) next to the stateless limit, and drops the closed
symlink limit.

* test(#2255): round 9 Minors 3-4 — CRLF counting pin + a passing Write leaves a fresh sentinel unburned

Minor 3: countLines' split('\n') is CRLF-safe for a count (the \r rides
along), confirmed by trace in the review — this pins it against this repo's
recurring CRLF regressions, on both sides of the compare and at the 40%
boundary.

Minor 4: consumeSentinelFor runs only after the ratio check would block, so
a within-tolerance Write never burns the workflow's token — true by
construction, previously un-asserted.

* fix(#2255): round 9 Major 3 — correct the stale env-var line in archive_milestone's summary

complete-milestone.md's "After archival" bullet still said the reorganize
happens "under GSD_ALLOW_PLANNING_SHRINK=1" — the wording from the round-2
design this PR's own history rejected in round 5 (a per-step env var cannot
reach a hook; setting it in a Bash step silently does nothing). It now points
at the sentinel mechanics the reorganize step actually documents, matching
that step and USER-GUIDE.md.

* docs(#2255): round 9 Major 1 — user-facing docs state the stateless per-Write limit

The changeset and USER-GUIDE described the guard as covering "catastrophically
shrinks" with no caveat, while the stateless design was disclosed only in the
hook header — an operator reading the shipped docs would conclude iterative
erosion is covered. Both surfaces now state the per-Write comparison and the
erosion non-goal explicitly, in line with what the guard does.

* fix(#2255): round 10 Blocker 1 — arm the hatch in the roadmapper's curated writes

gsd-roadmapper Step 7 Writes both .planning/ROADMAP.md and .planning/STATE.md
wholesale, and /gsd:new-milestone spawns it against the OUTGOING milestone's
files. new-milestone's `phases.clear` archives phase DIRECTORIES, never
ROADMAP.md, so nothing compacts it first, and no ordering rule forces
/gsd:complete-milestone to run before /gsd:new-milestone.

Measured against the shipped hook at the #973 file size (292 lines): a new
4-phase roadmap lands at 18.2% and an 8-phase one at 31.8% — both blocked; only
a 12-phase replacement (45.5%) clears. So the collapse is reachable on a
first-party flow, which is the failure mode #2255 para 4 says the guard must not
have.

Arms the single-use sentinel immediately before each Write, one per target
(the token is path-bound and single-use, so one arming cannot cover both), and
gates each arming on `[ -f ]` so the /gsd:new-project path — where the guard
already exempts via ENOENT — strands no unconsumed token.

Binding test derives the sentinel name from the guard's own typed output, so a
rename on either side fails the suite instead of silently unwiring the hatch.
Negative-controlled: 2 assertions fail against the pre-fix roadmapper.

* docs(#2255): round 10 Major 2 — scope the claim to the guarantee that ships

The sentinel is a plain file, so an agent that would reason past an advisory
can arm one with a single Bash call it is already permitted to make. The
"only defense independent of per-agent tool config" framing outran that, and
the changeset was on its way into CHANGELOG.md.

Retitles the claim on all three surfaces (changeset, guard header, USER-GUIDE)
to what the guard actually delivers: it blocks accidental and single-shot
collapse and is not a defense against a determined agent; what it converts is
"ignore a sentence" into "take one deliberate, path-bound, single-use,
auditable action".

Pinned by test on the DURABLE surfaces only — the guard header and USER-GUIDE.
The changeset fragment is deliberately not pinned: it is consumed at release,
so a test reading it would start failing the moment the release lands. The
bound-statement assertion normalizes comment markers and whitespace first, so
it pins the claim rather than the paragraph's line wrapping.

Negative-controlled: both assertions fail against the pre-fix surfaces.

* test(#2255): acknowledge the roadmapper growth from the round 10 Blocker 1 wiring

The emitted-attribution gate (#2719/#2767) flags gsd-roadmapper.md growing 1130
bytes without an acknowledgment. The growth is the Blocker 1 sentinel wiring
plus the rationale a future editor needs to keep it, so it gets an ack fragment
rather than a silencing regen — the gate's own message is explicit that there is
nothing left to regenerate.

Fragment is PR-scoped (2301-…) per the gate's naming instruction, and uses the
plain-string reason form the shipped fragments use.

Verified against the TRUE upstream tip, not the fork's origin/next: a stale
origin made this same gate report unrelated phantom drift (1 emitted path + 6
grown files + 5 stale acks) that vanishes when GSD_EMITTED_BASE is pinned.

* test(#2255): renumber the roadmapper PROSE_ALLOWLIST pin after the Step 7 wiring

CI red on shard 2/3, all four platforms. The #2751 gate keys PROSE_ALLOWLIST on
{file, line}; the Blocker 1 wiring added 18 lines above the allowlisted
parenthetical in agents/gsd-roadmapper.md, moving it 624 -> 642. Both halves of
the gate then fired: the moved line reads as a new offender, and the stale
entry no longer matches anything.

Line content at 642 is byte-identical to what the entry describes — a
descriptive "e.g." naming SDK queries a user could run — so this is a
renumber, not a re-classification.

Swept the defect class rather than the instance: agents/gsd-roadmapper.md is
the only line-pinned reference to any file this round changed.

Negative-controlled: both assertions fail against the un-renumbered allowlist.

---------

Co-authored-by: Tom Boucher <trekkie@nomorestars.com>
2026-08-01 21:19:49 -04:00

56 KiB
Raw Blame History

GSD 출시된 표면 인벤토리

출시된 모든 GSD 표면의 공식 목록: 명령어, 에이전트, 워크플로우, 레퍼런스, CLI 모듈, 훅. 광범위 문서(AGENTS.md, COMMANDS.md, ARCHITECTURE.md, CLI-TOOLS.md)와 파일시스템이 다를 경우, 이 파일과 저장소 트리를 진실의 원천으로 취급합니다.

이 파일 사용 방법

  • 여기의 수량은 v1.36.0 핀 기준 파일시스템에서 도출된 것으로, 릴리스 사이에 변동될 수 있습니다. 최신 수량을 확인하려면 체크아웃에서 ls commands/gsd/*.md | wc -l, ls agents/gsd-*.md | wc -l 등을 실행하세요.
  • 이 파일은 6개 패밀리(에이전트, 명령어, 워크플로우, 레퍼런스, CLI 모듈, 훅) 전반에 걸쳐 출시된 모든 표면을 열거합니다. 광범위 문서는 내러티브 또는 엄선된 하위 집합을 렌더링할 수 있습니다. 파일시스템과 불일치할 경우 이 파일과 디렉터리 목록이 권위 있는 출처입니다.
  • v1.36.0 이후 추가된 새 표면은 먼저 여기에 기록된 후 광범위 문서로 전파되어야 합니다. tests/inventory-counts.test.cjs, tests/commands-doc-parity.test.cjs, tests/agents-doc-parity.test.cjs, tests/cli-modules-doc-parity.test.cjs, tests/hooks-doc-parity.test.cjs, tests/architecture-counts.test.cjs, tests/command-count-sync.test.cjs의 드리프트 제어 테스트가 파일시스템 대비 수량 및 목록 내용을 고정합니다.

이것은 출시된 모든 GSD Core 표면의 공식 목록입니다. 주제별 탐색은 문서 색인을 참조하세요.


에이전트 (33개 출시)

전체 목록은 agents/gsd-*.md에 있습니다. "주요 문서" 열은 docs/AGENTS.md에서 전체 역할 카드(primary), "고급 및 특수 에이전트" 섹션의 짧은 스텁(advanced stub), 또는 다루지 않음(inventory only)을 표시합니다.

에이전트 역할 (한 줄) 생성자 주요 문서
gsd-project-researcher 로드맵 생성 전 도메인 에코시스템 조사 (스택, 기능, 아키텍처, 함정). /gsd-new-project, /gsd-new-milestone primary
gsd-phase-researcher 계획 전 특정 단계의 구현 방식 조사. /gsd-plan-phase primary
gsd-ui-researcher 프론트엔드 단계용 UI 설계 계약 생성. /gsd-ui-phase primary
gsd-assumptions-analyzer discuss-phase (가정 모드)를 위한 근거 기반 가정 생성. discuss-phase-assumptions 워크플로우 primary
gsd-advisor-researcher discuss-phase 어드바이저 모드에서 단일 회색 지대 결정을 조사. discuss-phase 워크플로우 (어드바이저 모드) primary
gsd-research-synthesizer 병렬 조사 결과를 통합 SUMMARY.md로 결합. /gsd-new-project primary
gsd-planner 태스크 분해 및 목표 역방향 검증이 포함된 실행 가능한 단계 계획 생성. /gsd-plan-phase, /gsd-quick primary
gsd-roadmapper 단계 분해 및 요구사항 매핑이 포함된 프로젝트 로드맵 생성. /gsd-new-project primary
gsd-executor 원자적 커밋과 편차 처리로 GSD 계획 실행. /gsd-execute-phase, /gsd-quick primary
gsd-plan-checker 계획이 단계 목표를 달성할지 검증 (8개 검증 차원). /gsd-plan-phase (검증 루프) primary
gsd-integration-checker 단계 간 통합 및 엔드투엔드 플로우 검증. /gsd-audit-milestone primary
gsd-ui-checker 품질 차원에 대한 UI-SPEC.md 설계 계약 검증. /gsd-ui-phase (검증 루프) primary
gsd-verifier 목표 역방향 분석을 통한 단계 목표 달성 검증. /gsd-execute-phase primary
gsd-nyquist-auditor 테스트 생성으로 나이퀴스트 검증 공백 채움. /gsd-validate-phase primary
gsd-ui-auditor 구현된 프론트엔드 코드의 소급 6-기둥 시각 감사. /gsd-ui-review primary
gsd-codebase-mapper 코드베이스 탐색 및 구조화된 분석 문서 작성. /gsd-map-codebase primary
gsd-debugger 영속 상태를 사용하는 과학적 방법론으로 버그 조사. /gsd-debug, /gsd-verify-work primary
gsd-user-profiler 8개 차원에서 개발자 행동 점수 산정. /gsd-profile-user primary
gsd-doc-writer 프로젝트 문서 작성 및 업데이트. /gsd-docs-update primary
gsd-doc-verifier 생성된 문서의 사실적 주장 검증. /gsd-docs-update primary
gsd-security-auditor PLAN.md 위협 모델의 위협 완화 검증. /gsd-secure-phase primary
gsd-pattern-mapper 새 파일을 가장 가까운 기존 유사체에 매핑; 플래너를 위한 PATTERNS.md 작성. /gsd-plan-phase (조사와 계획 사이) advanced stub
gsd-debug-session-manager 격리된 컨텍스트에서 전체 /gsd-debug 체크포인트-및-연속 루프를 실행하여 메인 컨텍스트를 가볍게 유지. /gsd-debug advanced stub
gsd-code-reviewer 버그, 보안 문제, 코드 품질 문제에 대해 소스 파일 검토; REVIEW.md 생성. /gsd-code-review advanced stub
gsd-code-fixer REVIEW.md 결과에 수정 사항을 원자적 수정별 커밋으로 적용; REVIEW-FIX.md 생성. /gsd-code-review --fix advanced stub
gsd-ai-researcher 선택한 AI 프레임워크의 공식 문서를 구현 준비 가이드로 조사 (AI-SPEC.md §3–§4b). /gsd-ai-integration-phase advanced stub
gsd-domain-researcher AI 시스템을 위한 도메인 전문가 평가 기준 및 실패 모드 표면화 (AI-SPEC.md §1b). /gsd-ai-integration-phase advanced stub
gsd-eval-planner AI 단계를 위한 구조화된 평가 전략 설계 (AI-SPEC.md §5–§7). /gsd-ai-integration-phase advanced stub
gsd-eval-auditor AI 단계 평가 범위의 소급 감사; EVAL-REVIEW.md 생성 (COVERED/PARTIAL/MISSING). /gsd-eval-review advanced stub
gsd-framework-selector AI/LLM 프레임워크를 점수 산정하고 추천하는 ≤6개 질문의 인터랙티브 결정 매트릭스. /gsd-ai-integration-phase advanced stub
gsd-intel-updater 쿼리 가능한 코드베이스 지식 베이스로 사용되는 구조화된 인텔 파일(.planning/intel/*.json) 작성. /gsd-map-codebase --query advanced stub
gsd-doc-classifier 단일 계획 문서를 ADR, PRD, SPEC, DOC, UNKNOWN으로 분류; 병렬로 생성되어 문서 코퍼스 처리. /gsd-ingest-docs advanced stub
gsd-doc-synthesizer 분류된 계획 문서를 우선순위 규칙, 순환 감지, 세 버킷 충돌 보고서로 단일 통합 컨텍스트로 합성. /gsd-ingest-docs advanced stub

커버리지 참고. docs/AGENTS.md는 21개 주요 에이전트에 대한 전체 역할 카드와 12개 고급 에이전트에 대한 간결한 스텁을 제공합니다. 해당 파일의 에이전트 도구 권한 요약은 주요 21개 에이전트만 다루며; 고급 에이전트의 도구 목록은 agents/gsd-*.md의 에이전트별 프론트매터에 기록됩니다.


명령어 (67개 출시)

전체 목록은 commands/gsd/*.md에 있습니다. 아래 그룹화는 docs/COMMANDS.md 섹션 순서를 반영합니다. 각 행은 명령어 이름, 명령어의 프론트매터 description:에서 도출된 한 줄 역할, 소스 파일 링크를 포함합니다. tests/command-count-sync.test.cjs가 파일시스템 대비 수량을 고정합니다.

네임스페이스 메타 스킬

이 6개의 라우터는 모델이 먼저 선택하는 설명자 전용 항목입니다. 각각의 본문에는 올바른 구체적 하위 스킬을 가리키는 라우팅 테이블이 포함되어 있습니다. 이는 전체 표면에 접근 가능하게 유지하면서 즉시 스킬 목록 토큰 비용을 낮게 유지하기 위한 것입니다. 근거는 #2792 참조; 라우팅 테이블은 #2790 이후 통합된 표면을 대상으로 합니다.

명령어 역할 소스
/gsd-workflow 단계 파이프라인 라우터 — discuss / plan / execute / verify / phase / progress. commands/gsd/ns-workflow.md
/gsd-project 프로젝트 라이프사이클 라우터 — 마일스톤, 감사, 요약. commands/gsd/ns-project.md
/gsd-quality 품질 게이트 라우터 — 코드 리뷰, 디버그, 감사, 보안, 평가, UI. commands/gsd/ns-review.md
/gsd-context 코드베이스 인텔리전스 라우터 — 맵, 그래프화, 문서, 학습. commands/gsd/ns-context.md
/gsd-manage 관리 라우터 — 설정, 워크스페이스, 워크스트림, 스레드, 업데이트, 출시, 인박스. commands/gsd/ns-manage.md
/gsd-ideate 탐색 및 캡처 라우터 — 탐색, 스케치, 스파이크, 스펙, 캡처. commands/gsd/ns-ideate.md

핵심 워크플로우

명령어 역할 소스
/gsd-new-project 심층 컨텍스트 수집 및 PROJECT.md로 새 프로젝트 초기화. commands/gsd/new-project.md
/gsd-onboard 기존 코드베이스를 매핑, 문서 수집, 프로젝트 설정, onboarding summary로 안내합니다. commands/gsd/onboard.md
/gsd-workspace GSD 워크스페이스 관리 — 격리된 워크스페이스 환경을 생성(--new), 목록(--list), 또는 제거(--remove). commands/gsd/workspace.md
/gsd-discuss-phase 계획 전 적응형 질문을 통한 단계 컨텍스트 수집. commands/gsd/discuss-phase.md
/gsd-mvp-phase 수직 MVP 슬라이스로 단계 계획 — 사용자 스토리, SPIDR 분할, 이후 plan-phase. commands/gsd/mvp-phase.md
/gsd-spec-phase 반증 가능한 요구사항을 담은 SPEC.md를 생성하는 소크라테스식 스펙 정제. commands/gsd/spec-phase.md
/gsd-ui-phase 프론트엔드 단계용 UI 설계 계약(UI-SPEC.md) 생성. commands/gsd/ui-phase.md
/gsd-ai-integration-phase 프레임워크 선택, 조사, 평가 계획을 통한 AI 설계 계약(AI-SPEC.md) 생성. commands/gsd/ai-integration-phase.md
/gsd-plan-phase 검증 루프가 포함된 상세 단계 계획(PLAN.md) 생성. commands/gsd/plan-phase.md
/gsd-plan-review-convergence 교차 AI 계획 수렴 루프 — HIGH 우려사항이 없을 때까지 리뷰 피드백으로 재계획 (최대 3사이클). commands/gsd/plan-review-convergence.md
/gsd-ultraplan-phase [BETA] 계획 단계를 Claude Code의 ultraplan 클라우드에 오프로드 — 원격으로 초안 작성, 브라우저에서 검토, /gsd-import로 가져오기. Claude Code 전용. commands/gsd/ultraplan-phase.md
/gsd-spike 일회성 실험으로 아이디어를 빠르게 스파이크; --wrap-up으로 결과를 영구 스킬로 패키징. commands/gsd/spike.md
/gsd-sketch 일회성 HTML 목업을 사용한 UI/설계 아이디어 빠른 스케치; --wrap-up으로 결과 패키징. commands/gsd/sketch.md
/gsd-execute-phase 웨이브 기반 병렬화로 단계의 모든 계획 실행. commands/gsd/execute-phase.md
/gsd-verify-work 자동 진단을 포함한 대화형 UAT로 구축된 기능 검증. commands/gsd/verify-work.md
/gsd-ship 검증 후 PR 생성, 리뷰 실행, 병합 준비. commands/gsd/ship.md
/gsd-fast 하위 에이전트 없이, 계획 오버헤드 없이 인라인으로 사소한 태스크 실행. commands/gsd/fast.md
/gsd-quick GSD 보장(원자적 커밋, 상태 추적)으로 빠른 태스크 실행, 선택적 에이전트는 생략. commands/gsd/quick.md
/gsd-ui-review 구현된 프론트엔드 코드의 소급 6-기둥 시각 감사. commands/gsd/ui-review.md
/gsd-code-review 단계에서 변경된 소스 파일을 버그, 보안, 코드 품질 문제에 대해 검토; --fix로 결과 자동 적용. commands/gsd/code-review.md
/gsd-eval-review 실행된 AI 단계의 평가 범위를 소급 감사; EVAL-REVIEW.md 생성. commands/gsd/eval-review.md

단계 및 마일스톤 관리

명령어 역할 소스
/gsd-phase 단계 CRUD — ROADMAP.md에서 단계 추가(기본값), 삽입(--insert), 제거(--remove), 편집(--edit). commands/gsd/phase.md
/gsd-add-tests UAT 기준 및 구현에 기반한 완료된 단계의 테스트 생성. commands/gsd/add-tests.md
/gsd-validate-phase 완료된 단계의 나이퀴스트 검증 공백을 소급 감사 및 채움. commands/gsd/validate-phase.md
/gsd-secure-phase 완료된 단계의 위협 완화를 소급 검증. commands/gsd/secure-phase.md
/gsd-audit-milestone 아카이브 전 원래 의도 대비 마일스톤 완료 감사. commands/gsd/audit-milestone.md
/gsd-audit-uat 미완료된 모든 UAT 및 검증 항목의 단계 간 감사. commands/gsd/audit-uat.md
/gsd-audit-fix 자율 감사-수정 파이프라인 — 문제 찾기, 분류, 수정, 테스트, 커밋. commands/gsd/audit-fix.md
/gsd-complete-milestone 완료된 마일스톤 아카이브 및 다음 버전 준비. commands/gsd/complete-milestone.md
/gsd-new-milestone 새 마일스톤 사이클 시작 — PROJECT.md 업데이트 및 요구사항으로 라우팅. commands/gsd/new-milestone.md
/gsd-milestone-summary 마일스톤 아티팩트로부터 포괄적인 프로젝트 요약 생성. commands/gsd/milestone-summary.md
/gsd-cleanup 완료된 마일스톤에서 누적된 단계 디렉터리 아카이브. commands/gsd/cleanup.md
/gsd-manager 하나의 터미널에서 여러 단계를 관리하는 인터랙티브 커맨드 센터. commands/gsd/manager.md
/gsd-workstreams 병렬 워크스트림 관리 — 목록, 생성, 전환, 상태, 진행도, 완료, 재개. commands/gsd/workstreams.md
/gsd-autonomous 나머지 모든 단계를 자율적으로 실행 — 단계별 discuss → plan → execute. commands/gsd/autonomous.md
/gsd-undo 안전한 git 되돌리기 — 단계 매니페스트를 사용하여 단계 또는 계획 커밋 롤백. commands/gsd/undo.md

세션 및 탐색

명령어 역할 소스
/gsd-progress 프로젝트 진행도 확인, 컨텍스트 표시, 다음 액션으로 라우팅; --next로 자동 진행 또는 --do로 자유 형식 태스크 실행. commands/gsd/progress.md
/gsd-capture 아이디어, 태스크, 메모, 씨앗 캡처 — todo(기본값), --note, --backlog, --seed, 또는 --list 미완료 todo. commands/gsd/capture.md
/gsd-stats 프로젝트 통계 표시 — 단계, 계획, 요구사항, git 메트릭, 타임라인. commands/gsd/stats.md
/gsd-pause-work 단계 중간에 작업을 일시 중지할 때 컨텍스트 핸드오프 생성. commands/gsd/pause-work.md
/gsd-resume-work 이전 세션에서 전체 컨텍스트 복원으로 작업 재개. commands/gsd/resume-work.md
/gsd-explore 소크라테스식 아이디어 발상 및 라우팅 — 커밋 전 아이디어 심화 검토. commands/gsd/explore.md
/gsd-review-backlog 백로그 항목 검토 및 활성 마일스톤으로 승격. commands/gsd/review-backlog.md
/gsd-thread 세션 간 작업을 위한 영속 컨텍스트 스레드 관리. commands/gsd/thread.md

코드베이스 인텔리전스

명령어 역할 소스
/gsd-map-codebase 병렬 매퍼 에이전트로 코드베이스 분석; 경량 스캔은 --fast, 인텔 쿼리는 --query. commands/gsd/map-codebase.md
/gsd-graphify .planning/graphs/의 프로젝트 지식 그래프 구축, 쿼리, 검사. commands/gsd/graphify.md
/gsd-extract-learnings 완료된 단계 아티팩트에서 결정, 교훈, 패턴, 놀라운 점 추출. commands/gsd/extract-learnings.md

리뷰, 디버그 및 복구

명령어 역할 소스
/gsd-review 외부 AI CLI에서 단계 계획의 교차 AI 피어 리뷰 요청. commands/gsd/review.md
/gsd-debug 컨텍스트 재설정 전반에 걸쳐 영속 상태를 사용하는 체계적 디버깅. commands/gsd/debug.md
/gsd-forensics 실패한 GSD 워크플로우의 사후 조사 — git, 아티팩트, 상태 분석. commands/gsd/forensics.md
/gsd-health 계획 디렉터리 상태를 진단하고 선택적으로 문제 수정. commands/gsd/health.md
/gsd-import 프로젝트 결정에 대한 충돌 감지로 외부 계획 수집. commands/gsd/import.md
/gsd-inbox 프로젝트 템플릿에 대한 모든 열린 GitHub 이슈 및 PR 분류 및 검토. commands/gsd/inbox.md

문서, 프로필 및 유틸리티

명령어 역할 소스
/gsd-docs-update 코드베이스에 대해 검증된 프로젝트 문서 생성 또는 업데이트. commands/gsd/docs-update.md
/gsd-ingest-docs 혼합 ADR/PRD/SPEC/DOC가 있는 저장소를 스캔하고 분류, 합성, 충돌 보고서로 전체 .planning/ 설정을 부트스트랩 또는 병합. commands/gsd/ingest-docs.md
/gsd-profile-user 개발자 행동 프로필 및 Claude 검색 가능한 아티팩트 생성. commands/gsd/profile-user.md
/gsd-settings GSD 워크플로우 토글 및 모델 프로필 구성. commands/gsd/settings.md
/gsd-config GSD 설정 구성 — 워크플로우 토글(기본값), 고급 설정(--advanced), 통합(--integrations), 또는 모델 프로필(--profile). commands/gsd/config.md
/gsd-pr-branch .planning/ 커밋을 필터링하여 깔끔한 PR 브랜치 생성. commands/gsd/pr-branch.md
/gsd-surface 표면화할 스킬 토글 — 재설치 없이 프로필 적용, 목록 보기, 클러스터 비활성화. commands/gsd/surface.md
/gsd-update GSD를 최신 버전으로 업데이트; --sync로 런타임 간 스킬 동기화 또는 --reapply로 로컬 패치 재적용. commands/gsd/update.md
/gsd-help 사용 가능한 GSD 명령어 및 사용 가이드 표시. commands/gsd/help.md

워크플로우 (88개 출시)

전체 목록은 gsd-core/workflows/*.md에 있습니다. 워크플로우는 명령어가 내부적으로 참조하는 얇은 오케스트레이터입니다; 대부분은 최종 사용자가 직접 읽지 않습니다. 아래 행은 각 워크플로우 파일을 역할(<purpose> 블록에서 도출)과, 해당하는 경우 호출 명령어에 매핑합니다.

워크플로우 역할 호출자
add-backlog.md 999.x 번호 체계를 사용하여 ROADMAP.md에 백로그 항목 추가. /gsd-capture --backlog
add-phase.md 로드맵의 현재 마일스톤 끝에 새 정수 단계 추가. /gsd-phase (기본값)
add-tests.md 완료된 단계의 아티팩트를 기반으로 단위 및 E2E 테스트 생성. /gsd-add-tests
add-todo.md 세션 중 발생하는 아이디어나 태스크를 구조화된 todo로 캡처. /gsd-capture (기본값)
ai-integration-phase.md 프레임워크 선택 → AI 조사 → 도메인 조사 → 평가 계획을 AI-SPEC.md로 오케스트레이션. /gsd-ai-integration-phase
analyze-dependencies.md 파일 겹침 및 의미론적 의존성에 대한 ROADMAP.md 단계 분석; Depends on 엣지 제안. /gsd-manager --analyze-deps
audit-fix.md 자율 감사-수정 파이프라인 — 감사 실행, 파싱, 분류, 수정, 테스트, 커밋. /gsd-audit-fix
audit-milestone.md 단계 검증을 집계하여 마일스톤이 완료 정의를 충족했는지 확인. /gsd-audit-milestone
audit-uat.md UAT 및 검증 파일의 단계 간 감사; 우선순위화된 미완료 항목 목록 생성. /gsd-audit-uat
autonomous.md 마일스톤 단계를 자율적으로 구동 — 나머지 모두, 범위, 또는 단일 단계. /gsd-autonomous
check-todos.md 미완료 todo 목록, 선택 허용, 컨텍스트 로드, 적절한 액션으로 라우팅. /gsd-capture --list
cleanup.md 완료된 마일스톤에서 누적된 단계 디렉터리 아카이브. /gsd-cleanup
code-review-fix.md gsd-code-fixer를 통해 수정별 원자적 커밋으로 REVIEW.md의 문제 자동 수정. /gsd-code-review --fix
code-review.md gsd-code-reviewer를 통한 단계 소스 변경 검토; REVIEW.md 생성. /gsd-code-review
complete-milestone.md 출시된 버전을 완료로 표시 — MILESTONES.md 항목, PROJECT.md 발전, 태그. /gsd-complete-milestone
diagnose-issues.md UAT 공백 조사 및 근본 원인 찾기를 위한 병렬 디버그 에이전트 오케스트레이션. /gsd-verify-work (자동 진단)
discovery-phase.md 적절한 깊이 수준에서 탐색 실행. /gsd-new-project (탐색 경로)
discuss-phase-assumptions.md 가정 모드 discuss — 코드베이스 우선 분석을 통한 구현 결정 추출. /gsd-discuss-phase (discuss_mode=assumptions일 때)
discuss-phase-power.md 파워 유저 discuss — 모든 질문을 JSON 상태 파일 + HTML UI로 사전 생성. /gsd-discuss-phase --power
discuss-phase.md 반복적인 회색 지대 토론을 통한 구현 결정 추출. /gsd-discuss-phase
mvp-phase.md 수직 MVP 슬라이스로 단계 계획 — 사용자 스토리, SPIDR 분할, 이후 plan-phase. /gsd-mvp-phase
do.md 사용자의 자유 형식 텍스트를 가장 적합한 GSD 명령어로 라우팅. /gsd-progress --do
docs-update.md 표준 및 수작업 프로젝트 문서 생성, 업데이트, 검증. /gsd-docs-update
edit-phase.md ROADMAP.md에서 기존 단계의 임의 필드를 번호와 위치를 유지한 채 인플레이스 편집. /gsd-phase --edit
eval-review.md 구현된 AI 단계의 평가 범위에 대한 소급 감사. /gsd-eval-review
execute-phase.md 웨이브 기반 병렬 실행으로 단계의 모든 계획 실행. /gsd-execute-phase
execute-plan.md 단계 프롬프트(PLAN.md)를 실행하고 결과 요약(SUMMARY.md) 생성. execute-phase.md (계획별 하위 에이전트)
explore.md 소크라테스식 아이디어 발상 — 탐색적 질문으로 개발자 안내. /gsd-explore
debug.md 체계적 디버깅 — 하위 명령어 라우팅, 세션 생성, gsd-debug-session-manager 위임. /gsd-debug
extract-learnings.md 완료된 단계 아티팩트에서 결정, 교훈, 패턴, 놀라운 점 추출. /gsd-extract-learnings
fast.md 하위 에이전트 오버헤드 없이 사소한 태스크 인라인 실행. /gsd-fast
forensics.md 실패한 워크플로우의 포렌식 조사 — git, 아티팩트, 상태 분석. /gsd-forensics
graduation.md 단계 간 반복되는 LEARNINGS.md 항목을 클러스터링하고 HITL 승격 후보 표면화. transition.md (graduation_scan 단계)
health.md .planning/ 디렉터리 무결성 검증 및 실행 가능한 문제 보고. /gsd-health
help.md 전체 GSD Core 명령어 참조 표시. /gsd-help
import.md 기존 프로젝트 결정에 대한 충돌 감지로 외부 계획 수집. /gsd-import
inbox.md 프로젝트 기여 템플릿에 대한 열린 GitHub 이슈 및 PR 분류. /gsd-inbox
ingest-docs.md 혼합 계획 문서에 대한 저장소 스캔; 분류, 합성, 충돌 보고서로 .planning/에 부트스트랩 또는 병합. /gsd-ingest-docs
insert-phase.md 마일스톤 중간에 발견된 긴급 작업을 위한 소수점 단계 삽입. /gsd-phase --insert
list-phase-assumptions.md 계획 전 Claude의 단계에 대한 가정 표면화. /gsd-discuss-phase --assumptions
list-workspaces.md ~/gsd-workspaces/에서 찾은 모든 GSD 워크스페이스를 상태와 함께 목록. /gsd-workspace --list
manager.md 인터랙티브 마일스톤 커맨드 센터 — 대시보드, 인라인 discuss, 백그라운드 plan/execute. /gsd-manager
map-codebase.md 병렬 코드베이스 매퍼 에이전트를 오케스트레이션하여 .planning/codebase/ 문서 생성. /gsd-map-codebase
milestone-summary.md 마일스톤 아티팩트에서 온보딩 및 검토용 마일스톤 요약 합성. /gsd-milestone-summary
new-milestone.md 새 마일스톤 사이클 시작 — 프로젝트 컨텍스트 로드, 목표 수집, PROJECT.md/STATE.md 업데이트. /gsd-new-milestone
new-project.md 통합 새 프로젝트 플로우 — 질문, 조사(선택), 요구사항, 로드맵. /gsd-new-project
onboard.md Brownfield 온보딩 오케스트레이션 — 코드베이스 매핑, 문서 수집, planning 초기화, 다음 단계 요약. /gsd-onboard
new-workspace.md 저장소 워크트리/클론과 독립적인 .planning/이 포함된 격리된 워크스페이스 생성. /gsd-workspace --new
next.md 현재 프로젝트 상태를 감지하고 다음 논리적 단계로 자동 진행. /gsd-progress --next
node-repair.md 실패한 태스크 검증을 위한 자율 수리 오퍼레이터; execute-plan에 의해 호출. execute-plan.md (복구)
note.md 마찰 없는 아이디어 캡처 — 단일 Write 호출, 단일 확인 줄. /gsd-capture --note
pause-work.md 구조화된 .planning/HANDOFF.json 및 .continue-here.md 핸드오프 파일 생성. /gsd-pause-work
plan-phase.md 통합 조사 및 검증 루프로 실행 가능한 PLAN.md 파일 생성. /gsd-plan-phase, /gsd-quick
plan-review-convergence.md 교차 AI 계획 수렴 루프 — HIGH 우려사항이 없을 때까지 리뷰 피드백으로 재계획. /gsd-plan-review-convergence
plant-seed.md 트리거 조건이 포함된 구조화된 씨앗 파일로 미래 지향적인 아이디어 캡처. /gsd-capture --seed
pr-branch.md .planning/ 커밋을 필터링하여 풀 리퀘스트를 위한 깔끔한 브랜치 생성. /gsd-pr-branch
profile-user.md 전체 개발자 프로파일링 플로우 오케스트레이션 — 동의, 세션 스캔, 프로필 생성. /gsd-profile-user
progress.md 진행도 렌더링 — 프로젝트 컨텍스트, 위치, 다음 액션 라우팅. /gsd-progress
quick.md GSD 보장(원자적 커밋, 상태 추적)으로 빠른 태스크 실행. /gsd-quick
reapply-patches.md GSD 업데이트 후 로컬 수정 사항 재적용. /gsd-update --reapply
remove-phase.md 로드맵에서 미래 단계를 제거하고 후속 단계 번호 재지정. /gsd-phase --remove
remove-workspace.md GSD 워크스페이스 제거 및 워크트리 정리. /gsd-workspace --remove
resume-project.md 작업 재개 — STATE.md, HANDOFF.json, 아티팩트에서 전체 컨텍스트 복원. /gsd-resume-work
review.md 외부 CLI를 통한 교차 AI 계획 리뷰; REVIEWS.md 생성. /gsd-review
scan.md 신속한 단일 포커스 코드베이스 스캔 — map-codebase의 경량 대안. /gsd-map-codebase --fast
secure-phase.md 완료된 단계에 대한 소급 위협 완화 감사. /gsd-secure-phase
session-report.md 세션 보고서 — 토큰 사용량, 작업 요약, 결과. /gsd-pause-work --report
settings.md GSD 워크플로우 토글 및 모델 프로필 구성. /gsd-settings, /gsd-config --profile
settings-advanced.md GSD 파워 유저 설정 구성 — 계획 바운스, 타임아웃, 브랜치 템플릿, 교차 AI 실행, 런타임 설정. /gsd-config --advanced
settings-integrations.md 타사 API 키(Brave/Firecrawl/Exa), review.models.<cli> CLI 라우팅, 마스킹된(****<last-4>) 표시로 agent_skills.<agent-type> 주입 구성. /gsd-config --integrations
ship.md 검증 후 PR 생성, 리뷰 실행, 병합 준비. /gsd-ship
sketch.md 스케치당 2-3개 변형으로 일회성 HTML 목업을 통한 설계 방향 탐색. /gsd-sketch
sketch-wrap-up.md 스케치 결과를 큐레이션하고 영구 sketch-findings-[project] 스킬로 패키징. /gsd-sketch --wrap-up
spec-phase.md 모호성 점수가 포함된 소크라테스식 스펙 정제; SPEC.md 생성. /gsd-spec-phase
spike.md 포커스된 일회성 실험을 통한 빠른 실현 가능성 검증. /gsd-spike
spike-wrap-up.md 스파이크 결과를 큐레이션하고 영구 spike-findings-[project] 스킬로 패키징. /gsd-spike --wrap-up
stats.md 프로젝트 통계 렌더링 — 단계, 계획, 요구사항, git 메트릭. /gsd-stats
sync-skills.md 교차 런타임 GSD 스킬 동기화 — 런타임 루트 간 gsd-* 스킬 디렉터리 비교 및 적용. /gsd-update --sync
transition.md 단계 경계 전환 워크플로우 — 워크스트림 확인, 상태 진행. execute-phase.md, /gsd-progress --next
ui-phase.md gsd-ui-researcher를 통한 UI-SPEC.md 설계 계약 생성. /gsd-ui-phase
ui-review.md gsd-ui-auditor를 통한 소급 6-기둥 시각 감사. /gsd-ui-review
ultraplan-phase.md [BETA] 계획을 Claude Code의 ultraplan 클라우드에 오프로드; 원격으로 초안 작성 후 /gsd-import로 가져오기. /gsd-ultraplan-phase
undo.md 안전한 git 되돌리기 — 단계 매니페스트를 사용한 단계 또는 계획 커밋. /gsd-undo
thread.md 세션 간 작업을 위한 영속 컨텍스트 스레드 생성, 목록, 닫기, 재개. /gsd-thread
update.md 체인지로그 표시와 함께 GSD를 최신 버전으로 업데이트. /gsd-update
validate-phase.md 완료된 단계의 나이퀴스트 검증 공백을 소급 감사 및 채움. /gsd-validate-phase
verify-phase.md 목표 역방향 분석을 통한 단계 목표 달성 검증. execute-phase.md (실행 후)
verify-work.md 자동 진단이 포함된 대화형 UAT — UAT.md 및 수정 계획 생성. /gsd-verify-work

참고: 일부 워크플로우는 직접적인 사용자 대면 명령어가 없습니다(예: execute-plan.md, verify-phase.md, transition.md, node-repair.md, diagnose-issues.md) — 이들은 오케스트레이터 워크플로우에 의해 내부적으로 호출됩니다. discovery-phase.md는 /gsd-new-project의 대체 진입점입니다.


레퍼런스 (62개 출시)

전체 목록은 gsd-core/references/*.md에 있습니다. 레퍼런스는 워크플로우와 에이전트가 @-참조하는 공유 지식 문서입니다. 아래 그룹화는 docs/ARCHITECTURE.md — 코어, 워크플로우, 씽킹 모델 클러스터, 모듈식 플래너 분해에 일치합니다.

코어 레퍼런스

레퍼런스 역할
checkpoints.md 체크포인트 유형 정의 및 상호작용 패턴.
gates.md plan-checker 및 verifier에 연결된 4개 표준 게이트 유형(Confirm, Quality, Safety, Transition).
model-profiles.md 에이전트별 모델 티어 할당.
model-profile-resolution.md 모델 해석 알고리즘 문서.
verification-patterns.md 다양한 아티팩트 유형 검증 방법.
verification-overrides.md 아티팩트별 검증 재정의 규칙.
planning-config.md 전체 설정 스키마 및 동작.
git-integration.md Git 커밋, 브랜칭, 히스토리 패턴.
git-planning-commit.md 계획 디렉터리 커밋 관례.
questioning.md 프로젝트 초기화를 위한 꿈 추출 철학.
tdd.md 테스트 주도 개발 통합 패턴.
ui-brand.md 시각적 출력 포매팅 패턴.
common-bug-patterns.md 코드 리뷰 및 검증을 위한 일반적인 버그 패턴.
debugger-philosophy.md gsd-debugger가 로드하는 상시 디버깅 원칙.
mandatory-initial-read.md 에이전트 프롬프트에 주입되는 공유 필수 읽기 상용구.
project-skills-discovery.md 에이전트 프롬프트에 주입되는 공유 프로젝트 스킬 발견 상용구.

워크플로우 레퍼런스

레퍼런스 역할
agent-contracts.md 오케스트레이터와 에이전트 간의 공식 인터페이스.
context-budget.md 컨텍스트 윈도우 예산 할당 규칙.
continuation-format.md 세션 연속/재개 포맷.
domain-probes.md discuss-phase를 위한 도메인별 탐색 질문.
gate-prompts.md 게이트/체크포인트 프롬프트 템플릿.
scout-codebase.md discuss-phase 스카우트 단계를 위한 단계 유형→코드베이스 맵 선택 테이블(discuss-phase/modes 프로그레시브 디스클로저 분할을 통해 추출, #717).
revision-loop.md 계획 수정 반복 패턴.
universal-anti-patterns.md 감지하고 피해야 할 보편적인 안티패턴.
worktree-path-safety.md 워크트리 가드 스위트: HEAD 어설션, cwd-드리프트 센티널(0a단계, #3097), 절대 경로 가드(0b단계, #3099) — <execution_context>를 통해 executor 스폰 프롬프트에 로드됨.
artifact-types.md 계획 아티팩트 유형 정의.
phase-argument-parsing.md 단계 인수 파싱 관례.
decimal-phase-calculation.md 소수점 하위 단계 번호 규칙.
workstream-flag.md 워크스트림 활성 포인터 관례(--ws).
user-profiling.md 사용자 행동 프로파일링 감지 휴리스틱.
thinking-partner.md 결정 시점에서의 조건부 씽킹 파트너 활성화.
autonomous-smart-discuss.md 자율 모드를 위한 스마트 discuss 로직.
ios-scaffold.md iOS 애플리케이션 스캐폴딩 패턴.
ai-evals.md /gsd-ai-integration-phase를 위한 AI 평가 설계 레퍼런스.
ai-frameworks.md gsd-framework-selector를 위한 AI 프레임워크 결정 매트릭스 레퍼런스.
executor-examples.md gsd-executor 에이전트를 위한 작업 예시.
doc-conflict-engine.md ingest/import 워크플로우를 위한 공유 충돌 감지 계약.
execute-mvp-tdd.md MVP+TDD 하의 execute-phase 런타임 게이트 시맨틱 — 태스크 전 실패 테스트 검증, 단계 말 차단 리뷰.
mvp-concepts.md 6개 MVP 관련 레퍼런스 파일에 대한 교차 참조 색인; 각 파일의 목적과 어떤 워크플로우가 로드하는지 매핑.
verify-mvp-mode.md MVP 모드 단계를 위한 UAT 프레이밍 규칙 — 사용자 플로우 우선 순서, 지연된 기술적 확인, 사용자 스토리 형식 가드.

스케치 레퍼런스

/gsd-sketch 워크플로우 및 그 wrap-up 동반자에 의해 사용되는 레퍼런스.

레퍼런스 역할
sketch-interactivity.md HTML 스케치를 인터랙티브하고 생생하게 만드는 규칙.
sketch-theme-system.md 스케치 간 일관성을 위한 공유 CSS 테마 변수 시스템.
sketch-tooling.md 모든 스케치에 포함된 플로팅 툴바 유틸리티.
sketch-variant-patterns.md 다중 변형 HTML 패턴(탭, 나란히, 오버레이).

씽킹 모델 레퍼런스

씽킹 클래스 모델(o3, o4-mini, Gemini 2.5 Pro)을 GSD 워크플로우에 통합하기 위한 레퍼런스.

레퍼런스 역할
thinking-models-debug.md 디버그 워크플로우를 위한 씽킹 모델 패턴.
thinking-models-execution.md 실행 에이전트를 위한 씽킹 모델 패턴.
thinking-models-planning.md 계획 에이전트를 위한 씽킹 모델 패턴.
thinking-models-research.md 조사 에이전트를 위한 씽킹 모델 패턴.
thinking-models-verification.md 검증 에이전트를 위한 씽킹 모델 패턴.

모듈식 플래너 분해

gsd-planner 에이전트는 런타임 문자 제한에 맞추기 위해 코어 에이전트와 레퍼런스 모듈로 분해됩니다.

레퍼런스 역할
planner-antipatterns.md 플래너 안티패턴 및 구체성 예시.
planner-chunked.md Windows stdio 멈춤 완화를 위한 청크 모드 반환 형식(## OUTLINE COMPLETE, ## PLAN COMPLETE).
planner-gap-closure.md 공백 채움 모드 동작(VERIFICATION.md 읽기, 타겟 재계획).
planner-reviews.md 교차 AI 리뷰 통합(/gsd-review에서 REVIEWS.md 읽기).
planner-revision.md 반복적 정제를 위한 계획 수정 패턴.
planner-source-audit.md 플래너 소스 감사 및 권한 제한 규칙.
planner-mvp-mode.md MVP 모드를 위한 수직 슬라이스 계획 규칙.
planner-human-verify-mode.md workflow.human_verify_mode = end-of-phase에 대한 규칙: checkpoint:human-verify 태스크 방출 억제 및 <verify><human-check>를 통한 지연 항목 라우팅.
planner-graphify-auto-update.md load_graph_context가 기존 부실 주석과 함께 .last-build-status.json 자동 업데이트 상태(실행 중 / 실패 / 부실 HEAD)를 표면화하는 방법. graphify.auto_update를 통해 옵트인 (#3347).
planner-interface-context.md executor를 위한 인터페이스 컨텍스트 규칙 — 기존 코드에서 핵심 인터페이스/타입/익스포트 추출 방법과 다운스트림 계획이 사용할 새 인터페이스 문서화.
skeleton-template.md 새 프로젝트 Walking Skeleton(Phase 1 + --mvp)을 위해 방출되는 SKELETON.md 템플릿.
user-story-template.md MVP 계획을 위한 사용자 스토리 형식 — "As a / I want to / So that" 구조화된 필드.
spidr-splitting.md MVP 모드에서 큰 사용자 스토리 처리를 위한 SPIDR 분할 분해 규칙.

하위 디렉터리: gsd-core/references/few-shot-examples/에는 특정 에이전트에서 참조되는 추가 퓨샷 예시(plan-checker.md, verifier.md)가 포함되어 있습니다. 이들은 62개 최상위 레퍼런스 수에 포함되지 않습니다.


CLI 모듈 (81개 출시)

전체 목록: gsd-core/bin/lib/*.cjs.

모듈 책임
active-workstream-store.cjs 워크스트림 소스 우선순위 및 선택(CLI --ws > GSD_WORKSTREAM 환경 변수 > 저장된 포인터); 이름 검증 및 환경 전파
adr-parser.cjs plan-phase 수집 익스프레스 경로를 위한 ADR 결정 파서; 섹션 동의어 정규화, 상태/결정/범위 펜스 파싱, 상태 거부 게이트 적용
agent-command-router.cjs gsd-tools agent를 위한 얇은 CJS 하위 명령어 라우터 어댑터
artifacts.cjs 표준 아티팩트 레지스트리 — 알려진 .planning/ 루트 파일 이름; gsd-health W019 린트에 사용
audit.cjs 감사 디스패치, 열린 감사 세션, 감사 스토리지 헬퍼
check-command-router.cjs gsd-tools check를 위한 얇은 CJS 하위 명령어 라우터 어댑터
cjs-command-router-adapter.cjs 매니페스트 기반 CJS 명령어 패밀리 라우터를 위한 공유 호환성 어댑터
clock.cjs 결정론적 잠금 테스트를 위한 주입 가능한 클록 심(now/sleep)
clusters.cjs 런타임 표면 모듈을 위한 스킬 클러스터 정의(ADR-0011 Phase 2)
code-review-flags.cjs /gsd:code-review를 위한 타입 플래그 파서; parseCodeReviewFlags(argv) (→ { fix, all, auto, depth, files }) 및 resolveCodeReviewWorkflow(flags) (→ 'code-review.md' | 'code-review-fix.md') 내보내기; --fix/--all/--auto 라우팅을 위한 표준 디스패치 심
command-aliases.cjs 매니페스트 기반 패밀리 라우터를 위한 별칭/하위 명령어 메타데이터
command-arg-projection.cjs 명령어 패밀리 라우터 전반에 공유되는 타입 플래그 및 위치 인수 프로젝션 헬퍼
command-routing-hub.cjs 모든 명령어 패밀리 라우터를 위한 모드 결정(SDK vs CJS), 오류 분류, 예외 없음 계약을 집중화하는 순수 결과 디스패치 허브(#3788)
commands.cjs 기타 CLI 명령어(슬러그, 타임스탬프, todo, 스캐폴딩, 통계)
config-schema.cjs VALID_CONFIG_KEYS 및 동적 키 패턴의 단일 진실 소스; 유효성 검사기와 config-schema-docs 패리티 테스트 모두에서 가져옴
config.cjs config.json 읽기/쓰기, 섹션 초기화; config-schema.cjs에서 유효성 검사기 가져옴
config-types.cjs model_policy 설정 블록을 위한 TypeScript 타입 정의 — ModelPolicyConfig, TierEntry, RuntimeTiers; 게시 시 src/config-types.cts에서 컴파일됨(ADR-457)
configuration.cjs 설정 모듈 — 표준 설정 로딩, 레거시 키 정규화, 기본값 병합, 명시적 온디스크 마이그레이션; SDK 및 CJS 소비자 모두를 위한 진실 소스
context-utilization.cjs gsd-health --context를 위한 순수 분류기 — (tokensUsed, contextWindow)를 60%/70% 파단점 임계값에 대한 { percent, state } 트리아지 결과로 변환(#2792)
core.cjs 오류 처리, 출력 포매팅, 공유 유틸리티, 런타임 폴백; 계획 워크스페이스 헬퍼를 위한 호환성 재내보내기
decisions.cjs CONTEXT.md <decisions> 블록 파싱; 숫자형(D-42) 및 영숫자형(D-INFRA-01) ID 허용; {id, text, category, tags, trackable} 반환
docs.cjs 문서 업데이트 워크플로우 초기화, 마크다운 스캔, 모노레포 감지
drift.cjs 실행 후 코드베이스 구조 드리프트 감지기(#2003): 파일 변경을 new-dir/barrel/migration/route 카테고리로 분류하고 last_mapped_commit 프론트매터를 왕복 처리
fallow-runner.cjs /gsd-code-review를 위한 Fallow 감사 어댑터: 바이너리 해석(PATH 이후 node_modules/.bin), 실행 가능한 누락 바이너리 오류, 구조적 결과 정규화
frontmatter.cjs YAML 프론트매터 CRUD 작업
gap-checker.cjs 계획 후 공백 분석(#2493): REQUIREMENTS.md + CONTEXT.md 결정 대 PLAN.md 커버리지 보고서(gsd-tools gap-analysis)
graphify.cjs /gsd-graphify를 위한 지식 그래프 빌드/쿼리/상태/비교
gsd2-import.cjs /gsd-import --from-gsd2를 위한 외부 계획 수집
init-command-router.cjs gsd-tools init을 위한 얇은 CJS 하위 명령어 라우터 어댑터
init.cjs 각 워크플로우 유형을 위한 복합 컨텍스트 로딩
install-profiles.cjs --minimal 설치를 위한 설치 프로필 허용 목록 + 스킬 스테이징(#2762); 런타임 설정 디렉터리에 어떤 gsd-* 스킬/에이전트가 배치되는지에 대한 단일 진실 소스
installer-migration-authoring.cjs 레코드 메타데이터, 명시적 범위, 소유권 증거, 런타임 계약 인용을 위한 설치 마이그레이션 저작 가드레일
installer-migration-report.cjs 설치/업데이트 통합을 위한 설치 마이그레이션 보고서 프로젝션 및 차단 액션 가드
installer-migrations.cjs 설치 마이그레이션 계획, 아티팩트 분류, 설치 상태 지속성, 저널 적용, 롤백 헬퍼
intel.cjs /gsd-map-codebase --query 및 gsd-intel-updater를 지원하는 코드베이스 인텔 스토어
learnings.cjs /gsd-extract-learnings를 위한 단계 간 학습 추출
milestone.cjs 마일스톤 아카이브, 요구사항 마킹
model-catalog.cjs 공유 모델 카탈로그 JSON에 대한 CJS 어댑터; 모든 CLI 소비자를 위한 표준 런타임 티어 기본값, 에이전트 프로필 맵, 별칭 맵, 라우팅 메타데이터 내보내기
model-profiles.cjs model-catalog.cjs에서 파생된 하위 호환 프로필 헬퍼; 더 이상 자체 모델 테이블을 소유하지 않음
package-identity.cjs GSD의 게시된 패키지 좌표(npm 이름, bin 이름, 저장소 슬러그, 체인지로그 URL, 수동 설치 명령어)를 위한 생성된 단일 소스, package.json에서 파생; 업데이트 워커, check-latest-version, 설치 프로그램에서 읽음(#498)
phase-command-router.cjs gsd-tools phase를 위한 얇은 CJS 하위 명령어 라우터 어댑터
phase-lifecycle.cjs 단계 라이프사이클 SDK 핸들러에서 추출된 순수 계산 단계 라이프사이클 헬퍼
phase.cjs 단계 디렉터리 작업, 소수점 번호 체계, 계획 인덱싱
phases-command-router.cjs gsd-tools phases를 위한 얇은 CJS 하위 명령어 라우터 어댑터
plan-scan.cjs 플랫 및 중첩 레이아웃에서 계획 및 요약 파일을 감지하는 표준 단계 계획 스캐너(k014)
planning-workspace.cjs 계획 경로/워크스트림 심(planningDir, planningPaths, 활성 워크스트림 라우팅, .planning/.lock 오케스트레이션)
project-root.cjs 4가지 휴리스틱(자체 .planning/ 가드, sub_repos 설정, multiRepo 플래그, .git 휴리스틱)을 사용하여 시작 디렉터리에서 프로젝트 루트 해석
profile-output.cjs 프로필 렌더링, USER-PROFILE.md 및 dev-preferences.md 생성
profile-pipeline.cjs 사용자 행동 프로파일링 데이터 파이프라인, 세션 파일 스캔
prompt-budget.cjs 리뷰 프롬프트를 위한 순수 토큰 예산 계산 — 토큰 추정, 결정론적 트림 우선순위 적용(헤드 수축 PROJECT.md, 비례 계획 잘라내기, 컨텍스트/조사/요구사항 삭제, 하드 실패 가드), review.max_prompt_tokens를 위한 구조화된 메타데이터 반환(#3081)
review-reviewer-selection.cjs /gsd-review 기본 리뷰어 정책 및 우선순위를 위한 리뷰어 선택/정규화 헬퍼
roadmap-command-router.cjs gsd-tools roadmap을 위한 얇은 CJS 하위 명령어 라우터 어댑터
roadmap-upgrade.cjs 레거시 Phase N 항목을 마일스톤 접두사 Phase M-NN 관례로 변환하는 마이그레이션 도구; 드라이런 기본값 및 원자적 롤백이 있는 computeMigrationPlan + applyMigration
roadmap.cjs ROADMAP.md 파싱, 단계 추출, 계획 진행도
runtime-artifact-layout.cjs 런타임 아티팩트 레이아웃 모듈 — 지원되는 각 런타임의 아티팩트 디렉터리 형태(명령어, 에이전트, 스킬) 해석; 런타임별 아티팩트 배치를 위한 단일 진실 소스(#3663)
runtime-name-policy.cjs 런타임 이름 정규화 정책 — 경로 구성 및 표시에 사용되는 런타임 식별자를 위한 표준 토큰 위생 처리
runtime-homes.cjs 표준 런타임 → 전역 설정/스킬 디렉터리 매핑; Hermes 중첩 레이아웃 및 Cline 규칙 기반 제외를 포함한 15개 런타임에 대한 일급 지원(#3126)
runtime-slash.cjs 런타임 인식 슬래시 명령어 포매터 — 사용자 대면 출력 및 영속 아티팩트에서 /gsd-<cmd>(스킬 기반 런타임) 및 $gsd-<cmd>(codex) 내보내기를 위한 단일 진실 소스(#3584)
schema-detect.cjs ORM 패턴 스키마 드리프트 감지(Prisma, Drizzle, Supabase, TypeORM, Payload); detectSchemaFiles, detectSchemaOrm, checkSchemaDrift, SCHEMA_PATTERNS, ORM_INFO 내보내기
secrets.cjs 통합 키를 위한 시크릿 설정 마스킹 관례(****<last-4>); SECRET_CONFIG_KEYS, isSecretKey, maskSecret, maskIfSecret 내보내기
semver-compare.cjs 업데이트 확인 훅, 상태라인 개발 설치 감지, 체인지셋 추출 범위 로직에서 사용되는 공유 semver 비교 정책 헬퍼(compareSemverCore, 안정적인 트리플릿 검증, 정규화된 튜플 파싱)(#10)
security.cjs 경로 순회 방지, 프롬프트 주입 감지, 안전한 JSON/셸 헬퍼
shell-command-projection.cjs 관리형 훅 직렬화를 위한 런타임 인식 셸 명령어 프로젝션: 런타임/플랫폼별 PowerShell 호출 연산자 사용 결정 및 Windows 스크립트 경로 토큰 정규화
state-command-router.cjs gsd-tools state를 위한 얇은 CJS 하위 명령어 라우터 어댑터
state.cjs STATE.md 파싱, 업데이트, 진행, 메트릭
state-document.cjs 순수 STATE.md 필드 추출, 교체, 상태 정규화, 진행도 계산 변환
surface.cjs 런타임 표면 모듈 — 설치 시 프로필 마커와 독립적으로 런타임 활성화/비활성화 표면 상태 관리(ADR-0011 Phase 2)
task-command-router.cjs gsd-tools task를 위한 얇은 CJS 하위 명령어 라우터 어댑터
template.cjs 변수 치환을 통한 템플릿 선택 및 채우기
uat.cjs UAT 파일 파싱, 검증 부채 추적, audit-uat 지원
ui-safety-gate.cjs 셸 없는 단어 경계 UI 토큰 감지기(#3706, #3718); stdin에서 단계 섹션 텍스트를 읽어 0(UI 발견) 또는 1(UI 없음) 종료; GSD 설치 프로그램이 $RUNTIME_DIR에 배포하도록 gsd-core/bin/lib/에도 배포
update-context.cjs /gsd:update를 위한 순수 설치 컨텍스트 해석기 — update.md bash에서 포팅된 런타임/범위/설정 디렉터리/버전 감지(LOCAL/GLOBAL/UNKNOWN); gsd-tools update-context 지원(#498)
validate-command-router.cjs gsd-tools validate를 위한 얇은 CJS 하위 명령어 라우터 어댑터
validate.cjs 순수 단계 변형 정규화 헬퍼(phaseVariants, buildRoadmapPhaseVariants, buildNotStartedPhaseVariants), W006/W007 확인을 위해 verify.cjs에서 사용; I/O 없음, 비동기 없음
verify-command-router.cjs gsd-tools verify를 위한 얇은 CJS 하위 명령어 라우터 어댑터
verify.cjs 계획 구조, 단계 완전성, 레퍼런스, 커밋 검증
workstream-inventory-builder.cjs 순수 워크스트림 인벤토리 프로젝션 빌더
workstream-inventory.cjs 공유 워크스트림 인벤토리 프로젝션: 상태 필드, 단계/계획/요약 수, 로드맵 단계 수, 활성 마커 — workstream-inventory-builder.cjs에 순수 프로젝션을 위임하는 얇은 오케스트레이터
workstream-name-policy.cjs 표준 워크스트림 이름 검증(isValidActiveWorkstreamName, hasInvalidPathSegment, validateWorkstreamName) 및 슬러그 정규화(toWorkstreamSlug)
workstream.cjs 워크스트림 CRUD, 마이그레이션, 세션 범위 활성 포인터
worktree-safety.cjs 워크트리 루트 해석 및 비파괴적 가지치기 정책 결정; W017 상태 확인 로직 소유

docs/CLI-TOOLS.md는 이러한 모듈의 하위 집합을 설명할 수 있습니다. 파일시스템과 불일치할 경우 이 테이블과 디렉터리 목록이 권위 있는 출처입니다.


훅 (14개 출시)

전체 목록: hooks/.

훅 이벤트 목적
gsd-statusline.js statusLine 모델, 태스크, 디렉터리, 컨텍스트 사용량 표시
gsd-context-monitor.js PostToolUse / AfterTool 35%/25% 남은 시점에 에이전트 대면 컨텍스트 경고 주입
gsd-check-update.js SessionStart 새 GSD 버전 백그라운드 확인
gsd-check-update-worker.js (worker) check-update를 위한 백그라운드 워커 헬퍼
gsd-update-banner.js SessionStart GSD 상태라인을 사용하지 않을 때 업데이트 가용성을 표면화하는 옵트인 배너(PR #2795)
gsd-prompt-guard.js PreToolUse .planning/ 쓰기에서 프롬프트 주입 패턴 스캔 (어드바이저리)
gsd-workflow-guard.js PreToolUse GSD 워크플로우 컨텍스트 외부의 파일 편집 감지 (어드바이저리, 옵트인)
gsd-read-guard.js PreToolUse 읽지 않은 파일에 대한 Edit/Write를 방지하는 어드바이저리 가드
gsd-read-injection-scanner.js PostToolUse 도구 Read 결과에서 프롬프트 주입 패턴 스캔 (v1.36+, PR #2201)
gsd-worktree-path-guard.js PreToolUse 워크트리 루트 외부의 절대 경로로 Edit/Write/MultiEdit를 하드 차단 (PR #579, #260)
gsd-write-guard.js PreToolUse 큐레이션된 .planning/ 아티팩트(ROADMAP.md, 마일스톤 로드맵, STATE.md)를 치명적으로 축소하는 전체 파일 Write를 하드 차단. 일회용 센티널 .planning/.gsd-allow-shrink(워크플로 단계) 또는 GSD_ALLOW_PLANNING_SHRINK=1(대화형)로 우회 가능 (#2255, #973의 수정 3)
gsd-session-state.sh PostToolUse 셸 기반 런타임을 위한 세션 상태 추적
gsd-validate-commit.sh PostToolUse 컨벤셔널 커밋 적용을 위한 커밋 검증
gsd-phase-boundary.sh PostToolUse 워크플로우 전환을 위한 단계 경계 감지
gsd-graphify-update.sh PostToolUse 메인 HEAD 진행 후 지식 그래프 자동 재빌드 (옵트인, 기본 비활성화 — #3347)

유지 관리

  • 새 명령어, 에이전트, 워크플로우, 레퍼런스, CLI 모듈, 또는 훅이 출시될 때, 릴리스가 잘리기 전에 해당 섹션을 여기에 업데이트하세요.
  • tests/ 아래의 드리프트 가드 테스트(위의 "이 파일 사용 방법" 참조)는 출시된 모든 파일이 이 인벤토리에 열거되어 있음을 어설트합니다. 일치하는 행이 없는 새 파일은 CI를 실패시킵니다.
  • 파일시스템이 docs/ARCHITECTURE.md 수량 또는 엄선된 하위 집합 문서(예: docs/AGENTS.md의 주요 목록)와 다를 경우, 이 파일이 진실의 원천입니다.

관련 문서