gsd-remix 1.0.2 → 1.1.0
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.md +13 -81
- package/README.zh-CN.md +13 -57
- package/agents/gsd-debugger.md +0 -3
- package/agents/gsd-executor.md +5 -11
- package/agents/gsd-phase-researcher.md +3 -107
- package/agents/gsd-plan-checker.md +0 -61
- package/agents/gsd-planner.md +4 -63
- package/agents/gsd-roadmapper.md +0 -29
- package/agents/gsd-security-auditor.md +62 -114
- package/agents/gsd-verifier.md +0 -3
- package/bin/install.js +20 -118
- package/commands/gsd/complete-milestone.md +0 -22
- package/commands/gsd/plan-phase.md +1 -2
- package/get-shit-done/bin/gsd-tools.cjs +5 -224
- package/get-shit-done/bin/lib/claude-md.cjs +427 -0
- package/get-shit-done/bin/lib/config-schema.cjs +2 -12
- package/get-shit-done/bin/lib/config.cjs +3 -12
- package/get-shit-done/bin/lib/core.cjs +4 -5
- package/get-shit-done/bin/lib/init.cjs +0 -163
- package/get-shit-done/bin/lib/model-profiles.cjs +12 -18
- package/get-shit-done/bin/lib/verify.cjs +0 -66
- package/get-shit-done/references/agent-contracts.md +0 -6
- package/get-shit-done/references/artifact-types.md +0 -30
- package/get-shit-done/references/continuation-format.md +0 -1
- package/get-shit-done/references/model-profiles.md +39 -37
- package/get-shit-done/references/planning-config.md +7 -12
- package/get-shit-done/references/verification-overrides.md +1 -1
- package/get-shit-done/templates/README.md +2 -9
- package/get-shit-done/templates/claude-md.md +0 -14
- package/get-shit-done/templates/config.json +5 -19
- package/get-shit-done/workflows/autonomous.md +9 -141
- package/get-shit-done/workflows/complete-milestone.md +3 -4
- package/get-shit-done/workflows/discuss-phase-assumptions.md +1 -18
- package/get-shit-done/workflows/discuss-phase.md +10 -104
- package/get-shit-done/workflows/do.md +1 -5
- package/get-shit-done/workflows/execute-phase.md +53 -103
- package/get-shit-done/workflows/execute-plan.md +4 -4
- package/get-shit-done/workflows/health.md +2 -5
- package/get-shit-done/workflows/help.md +0 -165
- package/get-shit-done/workflows/new-milestone.md +0 -51
- package/get-shit-done/workflows/new-project.md +2 -63
- package/get-shit-done/workflows/next.md +0 -23
- package/get-shit-done/workflows/pause-work.md +7 -15
- package/get-shit-done/workflows/plan-phase.md +20 -304
- package/get-shit-done/workflows/pr-branch.md +0 -1
- package/get-shit-done/workflows/progress.md +1 -68
- package/get-shit-done/workflows/quick.md +0 -3
- package/get-shit-done/workflows/research-phase.md +0 -1
- package/get-shit-done/workflows/settings.md +1 -57
- package/get-shit-done/workflows/transition.md +3 -86
- package/get-shit-done/workflows/verify-work.md +0 -64
- package/package.json +1 -1
- package/scripts/build-hooks.js +0 -2
- package/sdk/prompts/agents/gsd-executor.md +2 -0
- package/sdk/prompts/agents/gsd-plan-checker.md +0 -3
- package/sdk/prompts/agents/gsd-roadmapper.md +0 -29
- package/sdk/src/config.ts +4 -5
- package/sdk/src/golden/golden-integration-covered.ts +0 -2
- package/sdk/src/golden/golden-policy.ts +1 -1
- package/sdk/src/golden/golden.integration.test.ts +0 -27
- package/sdk/src/golden/read-only-golden-rows.ts +0 -15
- package/sdk/src/query/QUERY-HANDLERS.md +3 -34
- package/sdk/src/query/claude-md.ts +421 -0
- package/sdk/src/query/commit.test.ts +155 -1
- package/sdk/src/query/commit.ts +71 -17
- package/sdk/src/query/config-gates.test.ts +1 -2
- package/sdk/src/query/config-gates.ts +1 -5
- package/sdk/src/query/config-mutation.test.ts +0 -1
- package/sdk/src/query/config-mutation.ts +5 -6
- package/sdk/src/query/config-query.test.ts +2 -2
- package/sdk/src/query/config-query.ts +12 -18
- package/sdk/src/query/decomposed-handlers.test.ts +0 -64
- package/sdk/src/query/index.ts +4 -68
- package/sdk/src/query/init.test.ts +0 -64
- package/sdk/src/query/init.ts +0 -189
- package/sdk/src/query/normalize-query-command.ts +0 -2
- package/sdk/src/query/profile.test.ts +0 -43
- package/sdk/src/query/profile.ts +1 -141
- package/sdk/src/query/state-mutation.ts +18 -0
- package/sdk/src/runtime-health.ts +3 -3
- package/agents/gsd-ai-researcher.md +0 -133
- package/agents/gsd-doc-classifier.md +0 -168
- package/agents/gsd-doc-synthesizer.md +0 -204
- package/agents/gsd-doc-verifier.md +0 -217
- package/agents/gsd-doc-writer.md +0 -615
- package/agents/gsd-domain-researcher.md +0 -153
- package/agents/gsd-eval-auditor.md +0 -191
- package/agents/gsd-eval-planner.md +0 -154
- package/agents/gsd-framework-selector.md +0 -160
- package/agents/gsd-intel-updater.md +0 -334
- package/agents/gsd-nyquist-auditor.md +0 -203
- package/agents/gsd-ui-auditor.md +0 -495
- package/agents/gsd-ui-checker.md +0 -309
- package/agents/gsd-ui-researcher.md +0 -380
- package/agents/gsd-user-profiler.md +0 -171
- package/commands/gsd/ai-integration-phase.md +0 -36
- package/commands/gsd/analyze-dependencies.md +0 -34
- package/commands/gsd/audit-fix.md +0 -33
- package/commands/gsd/audit-milestone.md +0 -36
- package/commands/gsd/audit-uat.md +0 -24
- package/commands/gsd/docs-update.md +0 -48
- package/commands/gsd/eval-review.md +0 -32
- package/commands/gsd/explore.md +0 -27
- package/commands/gsd/extract_learnings.md +0 -22
- package/commands/gsd/forensics.md +0 -56
- package/commands/gsd/from-gsd2.md +0 -47
- package/commands/gsd/graphify.md +0 -201
- package/commands/gsd/import.md +0 -37
- package/commands/gsd/inbox.md +0 -38
- package/commands/gsd/ingest-docs.md +0 -42
- package/commands/gsd/intel.md +0 -179
- package/commands/gsd/join-discord.md +0 -19
- package/commands/gsd/list-phase-assumptions.md +0 -46
- package/commands/gsd/list-workspaces.md +0 -19
- package/commands/gsd/manager.md +0 -40
- package/commands/gsd/milestone-summary.md +0 -51
- package/commands/gsd/new-workspace.md +0 -44
- package/commands/gsd/plan-milestone-gaps.md +0 -34
- package/commands/gsd/plan-review-convergence.md +0 -52
- package/commands/gsd/plant-seed.md +0 -28
- package/commands/gsd/profile-user.md +0 -46
- package/commands/gsd/reapply-patches.md +0 -331
- package/commands/gsd/remove-workspace.md +0 -26
- package/commands/gsd/review.md +0 -40
- package/commands/gsd/scan.md +0 -26
- package/commands/gsd/secure-phase.md +0 -35
- package/commands/gsd/session-report.md +0 -19
- package/commands/gsd/set-profile.md +0 -12
- package/commands/gsd/ship.md +0 -23
- package/commands/gsd/sketch-wrap-up.md +0 -31
- package/commands/gsd/sketch.md +0 -49
- package/commands/gsd/spec-phase.md +0 -62
- package/commands/gsd/spike-wrap-up.md +0 -31
- package/commands/gsd/spike.md +0 -46
- package/commands/gsd/stats.md +0 -18
- package/commands/gsd/sync-skills.md +0 -19
- package/commands/gsd/thread.md +0 -227
- package/commands/gsd/ui-phase.md +0 -34
- package/commands/gsd/ui-review.md +0 -32
- package/commands/gsd/ultraplan-phase.md +0 -33
- package/commands/gsd/update.md +0 -37
- package/commands/gsd/validate-phase.md +0 -35
- package/commands/gsd/workstreams.md +0 -69
- package/get-shit-done/bin/lib/docs.cjs +0 -267
- package/get-shit-done/bin/lib/graphify.cjs +0 -494
- package/get-shit-done/bin/lib/gsd2-import.cjs +0 -511
- package/get-shit-done/bin/lib/intel.cjs +0 -639
- package/get-shit-done/bin/lib/profile-output.cjs +0 -1080
- package/get-shit-done/bin/lib/profile-pipeline.cjs +0 -539
- package/get-shit-done/bin/lib/workstream.cjs +0 -495
- package/get-shit-done/references/ai-evals.md +0 -156
- package/get-shit-done/references/ai-frameworks.md +0 -186
- package/get-shit-done/references/doc-conflict-engine.md +0 -91
- package/get-shit-done/references/model-profile-resolution.md +0 -38
- package/get-shit-done/references/planner-reviews.md +0 -39
- package/get-shit-done/references/sketch-interactivity.md +0 -41
- package/get-shit-done/references/sketch-theme-system.md +0 -94
- package/get-shit-done/references/sketch-tooling.md +0 -45
- package/get-shit-done/references/sketch-variant-patterns.md +0 -81
- package/get-shit-done/references/thinking-models-debug.md +0 -44
- package/get-shit-done/references/thinking-models-execution.md +0 -50
- package/get-shit-done/references/thinking-models-planning.md +0 -62
- package/get-shit-done/references/thinking-models-research.md +0 -50
- package/get-shit-done/references/thinking-models-verification.md +0 -55
- package/get-shit-done/references/thinking-partner.md +0 -96
- package/get-shit-done/references/user-profiling.md +0 -681
- package/get-shit-done/references/workstream-flag.md +0 -111
- package/get-shit-done/templates/AI-SPEC.md +0 -246
- package/get-shit-done/templates/SECURITY.md +0 -61
- package/get-shit-done/templates/UI-SPEC.md +0 -100
- package/get-shit-done/templates/VALIDATION.md +0 -76
- package/get-shit-done/templates/dev-preferences.md +0 -21
- package/get-shit-done/templates/user-profile.md +0 -146
- package/get-shit-done/workflows/ai-integration-phase.md +0 -284
- package/get-shit-done/workflows/analyze-dependencies.md +0 -96
- package/get-shit-done/workflows/audit-fix.md +0 -175
- package/get-shit-done/workflows/audit-milestone.md +0 -340
- package/get-shit-done/workflows/audit-uat.md +0 -109
- package/get-shit-done/workflows/docs-update.md +0 -1155
- package/get-shit-done/workflows/eval-review.md +0 -155
- package/get-shit-done/workflows/explore.md +0 -141
- package/get-shit-done/workflows/extract_learnings.md +0 -242
- package/get-shit-done/workflows/forensics.md +0 -265
- package/get-shit-done/workflows/import.md +0 -246
- package/get-shit-done/workflows/inbox.md +0 -387
- package/get-shit-done/workflows/ingest-docs.md +0 -328
- package/get-shit-done/workflows/list-phase-assumptions.md +0 -178
- package/get-shit-done/workflows/list-workspaces.md +0 -56
- package/get-shit-done/workflows/manager.md +0 -365
- package/get-shit-done/workflows/milestone-summary.md +0 -223
- package/get-shit-done/workflows/new-workspace.md +0 -239
- package/get-shit-done/workflows/plan-milestone-gaps.md +0 -273
- package/get-shit-done/workflows/plan-review-convergence.md +0 -254
- package/get-shit-done/workflows/plant-seed.md +0 -172
- package/get-shit-done/workflows/profile-user.md +0 -452
- package/get-shit-done/workflows/remove-workspace.md +0 -92
- package/get-shit-done/workflows/review.md +0 -344
- package/get-shit-done/workflows/scan.md +0 -102
- package/get-shit-done/workflows/secure-phase.md +0 -166
- package/get-shit-done/workflows/session-report.md +0 -146
- package/get-shit-done/workflows/ship.md +0 -302
- package/get-shit-done/workflows/sketch-wrap-up.md +0 -283
- package/get-shit-done/workflows/sketch.md +0 -286
- package/get-shit-done/workflows/spec-phase.md +0 -262
- package/get-shit-done/workflows/spike-wrap-up.md +0 -281
- package/get-shit-done/workflows/spike.md +0 -362
- package/get-shit-done/workflows/stats.md +0 -60
- package/get-shit-done/workflows/sync-skills.md +0 -182
- package/get-shit-done/workflows/ui-phase.md +0 -323
- package/get-shit-done/workflows/ui-review.md +0 -190
- package/get-shit-done/workflows/ultraplan-phase.md +0 -189
- package/get-shit-done/workflows/update.md +0 -587
- package/get-shit-done/workflows/validate-phase.md +0 -176
- package/hooks/dist/gsd-check-update-worker.js +0 -108
- package/hooks/dist/gsd-check-update.js +0 -63
- package/hooks/gsd-check-update-worker.js +0 -108
- package/hooks/gsd-check-update.js +0 -63
- package/sdk/src/golden/fixtures/profile-sample-sessions/demo-project/sample.jsonl +0 -3
- package/sdk/src/query/docs-init.ts +0 -257
- package/sdk/src/query/intel.test.ts +0 -90
- package/sdk/src/query/intel.ts +0 -404
- package/sdk/src/query/profile-extract-messages.ts +0 -247
- package/sdk/src/query/profile-output.ts +0 -908
- package/sdk/src/query/profile-questionnaire-data.ts +0 -181
- package/sdk/src/query/profile-sample.ts +0 -184
- package/sdk/src/query/profile-scan-sessions.ts +0 -174
- package/sdk/src/query/workspace.test.ts +0 -119
- package/sdk/src/query/workspace.ts +0 -131
- package/sdk/src/query/workstream.test.ts +0 -51
- package/sdk/src/query/workstream.ts +0 -434
|
@@ -1,111 +0,0 @@
|
|
|
1
|
-
# Workstream Flag (`--ws`)
|
|
2
|
-
|
|
3
|
-
## Overview
|
|
4
|
-
|
|
5
|
-
The `--ws <name>` flag scopes GSD operations to a specific workstream, enabling
|
|
6
|
-
parallel milestone work by multiple Claude Code instances on the same codebase.
|
|
7
|
-
|
|
8
|
-
## Resolution Priority
|
|
9
|
-
|
|
10
|
-
1. `--ws <name>` flag (explicit, highest priority)
|
|
11
|
-
2. `GSD_WORKSTREAM` environment variable (per-instance)
|
|
12
|
-
3. Session-scoped active workstream pointer in temp storage (per runtime session / terminal)
|
|
13
|
-
4. `.planning/active-workstream` file (legacy shared fallback when no session key exists)
|
|
14
|
-
5. `null` — flat mode (no workstreams)
|
|
15
|
-
|
|
16
|
-
## Why session-scoped pointers exist
|
|
17
|
-
|
|
18
|
-
The shared `.planning/active-workstream` file is fundamentally unsafe when multiple
|
|
19
|
-
Claude/Codex instances are active on the same repo at the same time. One session can
|
|
20
|
-
silently repoint another session's `STATE.md`, `ROADMAP.md`, and phase paths.
|
|
21
|
-
|
|
22
|
-
GSD now prefers a session-scoped pointer keyed by runtime/session identity
|
|
23
|
-
(`GSD_SESSION_KEY`, `CODEX_THREAD_ID`, `CLAUDE_CODE_SSE_PORT`, terminal session IDs,
|
|
24
|
-
or the controlling TTY). This keeps concurrent sessions isolated while preserving
|
|
25
|
-
legacy compatibility for runtimes that do not expose a stable session key.
|
|
26
|
-
|
|
27
|
-
## Session Identity Resolution
|
|
28
|
-
|
|
29
|
-
When GSD resolves the session-scoped pointer in step 3 above, it uses this order:
|
|
30
|
-
|
|
31
|
-
1. Explicit runtime/session env vars such as `GSD_SESSION_KEY`, `CODEX_THREAD_ID`,
|
|
32
|
-
`CLAUDE_SESSION_ID`, `CLAUDE_CODE_SSE_PORT`, `OPENCODE_SESSION_ID`,
|
|
33
|
-
`GEMINI_SESSION_ID`, `CURSOR_SESSION_ID`, `WINDSURF_SESSION_ID`,
|
|
34
|
-
`TERM_SESSION_ID`, `WT_SESSION`, `TMUX_PANE`, and `ZELLIJ_SESSION_NAME`
|
|
35
|
-
2. `TTY` or `SSH_TTY` if the shell/runtime already exposes the terminal path
|
|
36
|
-
3. A single best-effort `tty` probe, but only when stdin is interactive
|
|
37
|
-
|
|
38
|
-
If none of those produce a stable identity, GSD does not keep probing. It falls
|
|
39
|
-
back directly to the legacy shared `.planning/active-workstream` file.
|
|
40
|
-
|
|
41
|
-
This matters in headless or stripped environments: when stdin is already
|
|
42
|
-
non-interactive, GSD intentionally skips shelling out to `tty` because that path
|
|
43
|
-
cannot discover a stable session identity and only adds avoidable failures on the
|
|
44
|
-
routing hot path.
|
|
45
|
-
|
|
46
|
-
## Pointer Lifecycle
|
|
47
|
-
|
|
48
|
-
Session-scoped pointers are intentionally lightweight and best-effort:
|
|
49
|
-
|
|
50
|
-
- Clearing a workstream for one session removes only that session's pointer file
|
|
51
|
-
- If that was the last pointer for the repo, GSD also removes the now-empty
|
|
52
|
-
per-project temp directory
|
|
53
|
-
- If sibling session pointers still exist, the temp directory is left in place
|
|
54
|
-
- When a pointer refers to a workstream directory that no longer exists, GSD
|
|
55
|
-
treats it as stale state: it removes that pointer file and resolves to `null`
|
|
56
|
-
until the session explicitly sets a new active workstream again
|
|
57
|
-
|
|
58
|
-
GSD does not currently run a background garbage collector for historical temp
|
|
59
|
-
directories. Cleanup is opportunistic at the pointer being cleared or self-healed,
|
|
60
|
-
and broader temp hygiene is left to OS temp cleanup or future maintenance work.
|
|
61
|
-
|
|
62
|
-
## Routing Propagation
|
|
63
|
-
|
|
64
|
-
All workflow routing commands include `${GSD_WS}` which:
|
|
65
|
-
- Expands to `--ws <name>` when a workstream is active
|
|
66
|
-
- Expands to empty string in flat mode (backward compatible)
|
|
67
|
-
|
|
68
|
-
This ensures workstream scope chains automatically through the workflow:
|
|
69
|
-
`new-milestone → discuss-phase → plan-phase → execute-phase → transition`
|
|
70
|
-
|
|
71
|
-
## Directory Structure
|
|
72
|
-
|
|
73
|
-
```
|
|
74
|
-
.planning/
|
|
75
|
-
├── PROJECT.md # Shared
|
|
76
|
-
├── config.json # Shared
|
|
77
|
-
├── milestones/ # Shared
|
|
78
|
-
├── codebase/ # Shared
|
|
79
|
-
├── active-workstream # Legacy shared fallback only
|
|
80
|
-
└── workstreams/
|
|
81
|
-
├── feature-a/ # Workstream A
|
|
82
|
-
│ ├── STATE.md
|
|
83
|
-
│ ├── ROADMAP.md
|
|
84
|
-
│ ├── REQUIREMENTS.md
|
|
85
|
-
│ └── phases/
|
|
86
|
-
└── feature-b/ # Workstream B
|
|
87
|
-
├── STATE.md
|
|
88
|
-
├── ROADMAP.md
|
|
89
|
-
├── REQUIREMENTS.md
|
|
90
|
-
└── phases/
|
|
91
|
-
```
|
|
92
|
-
|
|
93
|
-
## CLI Usage
|
|
94
|
-
|
|
95
|
-
```bash
|
|
96
|
-
# All gsd-remix-sdk query commands accept --ws
|
|
97
|
-
gsd-remix-sdk query state.json --ws feature-a
|
|
98
|
-
gsd-remix-sdk query find-phase 3 --ws feature-b
|
|
99
|
-
|
|
100
|
-
# Session-local switching without --ws on every command
|
|
101
|
-
GSD_SESSION_KEY=my-terminal-a gsd-remix-sdk query workstream.set feature-a
|
|
102
|
-
GSD_SESSION_KEY=my-terminal-a gsd-remix-sdk query state.json
|
|
103
|
-
GSD_SESSION_KEY=my-terminal-b gsd-remix-sdk query workstream.set feature-b
|
|
104
|
-
GSD_SESSION_KEY=my-terminal-b gsd-remix-sdk query state.json
|
|
105
|
-
|
|
106
|
-
# Workstream CRUD
|
|
107
|
-
gsd-remix-sdk query workstream.create <name>
|
|
108
|
-
gsd-remix-sdk query workstream.list
|
|
109
|
-
gsd-remix-sdk query workstream.status <name>
|
|
110
|
-
gsd-remix-sdk query workstream.complete <name>
|
|
111
|
-
```
|
|
@@ -1,246 +0,0 @@
|
|
|
1
|
-
# AI-SPEC — Phase {N}: {phase_name}
|
|
2
|
-
|
|
3
|
-
> AI design contract generated by `/gsd-ai-integration-phase`. Consumed by `gsd-planner` and `gsd-eval-auditor`.
|
|
4
|
-
> Locks framework selection, implementation guidance, and evaluation strategy before planning begins.
|
|
5
|
-
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
## 1. System Classification
|
|
9
|
-
|
|
10
|
-
**System Type:** <!-- RAG | Multi-Agent | Conversational | Extraction | Autonomous Agent | Content Generation | Code Automation | Hybrid -->
|
|
11
|
-
|
|
12
|
-
**Description:**
|
|
13
|
-
<!-- One-paragraph description of what this AI system does, who uses it, and what "good" looks like -->
|
|
14
|
-
|
|
15
|
-
**Critical Failure Modes:**
|
|
16
|
-
<!-- The 3-5 behaviors that absolutely cannot go wrong in this system -->
|
|
17
|
-
1.
|
|
18
|
-
2.
|
|
19
|
-
3.
|
|
20
|
-
|
|
21
|
-
---
|
|
22
|
-
|
|
23
|
-
## 1b. Domain Context
|
|
24
|
-
|
|
25
|
-
> Researched by `gsd-domain-researcher`. Grounds the evaluation strategy in domain expert knowledge.
|
|
26
|
-
|
|
27
|
-
**Industry Vertical:** <!-- healthcare | legal | finance | customer service | education | developer tooling | e-commerce | etc. -->
|
|
28
|
-
|
|
29
|
-
**User Population:** <!-- who uses this system and in what context -->
|
|
30
|
-
|
|
31
|
-
**Stakes Level:** <!-- Low | Medium | High | Critical -->
|
|
32
|
-
|
|
33
|
-
**Output Consequence:** <!-- what happens downstream when the AI output is acted on -->
|
|
34
|
-
|
|
35
|
-
### What Domain Experts Evaluate Against
|
|
36
|
-
|
|
37
|
-
<!-- Domain-specific rubric ingredients — in practitioner language, not AI jargon -->
|
|
38
|
-
<!-- Format: Dimension / Good (expert accepts) / Bad (expert flags) / Stakes / Source -->
|
|
39
|
-
|
|
40
|
-
### Known Failure Modes in This Domain
|
|
41
|
-
|
|
42
|
-
<!-- Domain-specific failure modes from research — not generic hallucination, but how it manifests here -->
|
|
43
|
-
|
|
44
|
-
### Regulatory / Compliance Context
|
|
45
|
-
|
|
46
|
-
<!-- Relevant regulations or constraints — or "None identified" if genuinely none apply -->
|
|
47
|
-
|
|
48
|
-
### Domain Expert Roles for Evaluation
|
|
49
|
-
|
|
50
|
-
| Role | Responsibility |
|
|
51
|
-
|------|---------------|
|
|
52
|
-
| <!-- e.g., Senior practitioner --> | <!-- Dataset labeling / rubric calibration / production sampling --> |
|
|
53
|
-
|
|
54
|
-
---
|
|
55
|
-
|
|
56
|
-
## 2. Framework Decision
|
|
57
|
-
|
|
58
|
-
**Selected Framework:** <!-- e.g., LlamaIndex v0.10.x -->
|
|
59
|
-
|
|
60
|
-
**Version:** <!-- Pin the version -->
|
|
61
|
-
|
|
62
|
-
**Rationale:**
|
|
63
|
-
<!-- Why this framework fits this system type, team context, and production requirements -->
|
|
64
|
-
|
|
65
|
-
**Alternatives Considered:**
|
|
66
|
-
|
|
67
|
-
| Framework | Ruled Out Because |
|
|
68
|
-
|-----------|------------------|
|
|
69
|
-
| | |
|
|
70
|
-
|
|
71
|
-
**Vendor Lock-In Accepted:** <!-- Yes / No / Partial — document the trade-off consciously -->
|
|
72
|
-
|
|
73
|
-
---
|
|
74
|
-
|
|
75
|
-
## 3. Framework Quick Reference
|
|
76
|
-
|
|
77
|
-
> Fetched from official docs by `gsd-ai-researcher`. Distilled for this specific use case.
|
|
78
|
-
|
|
79
|
-
### Installation
|
|
80
|
-
```bash
|
|
81
|
-
# Install command(s)
|
|
82
|
-
```
|
|
83
|
-
|
|
84
|
-
### Core Imports
|
|
85
|
-
```python
|
|
86
|
-
# Key imports for this use case
|
|
87
|
-
```
|
|
88
|
-
|
|
89
|
-
### Entry Point Pattern
|
|
90
|
-
```python
|
|
91
|
-
# Minimal working example for this system type
|
|
92
|
-
```
|
|
93
|
-
|
|
94
|
-
### Key Abstractions
|
|
95
|
-
<!-- Framework-specific concepts the developer must understand before coding -->
|
|
96
|
-
| Concept | What It Is | When You Use It |
|
|
97
|
-
|---------|-----------|-----------------|
|
|
98
|
-
| | | |
|
|
99
|
-
|
|
100
|
-
### Common Pitfalls
|
|
101
|
-
<!-- Gotchas specific to this framework and system type — from docs, issues, and community reports -->
|
|
102
|
-
1.
|
|
103
|
-
2.
|
|
104
|
-
3.
|
|
105
|
-
|
|
106
|
-
### Recommended Project Structure
|
|
107
|
-
```
|
|
108
|
-
project/
|
|
109
|
-
├── # Framework-specific folder layout
|
|
110
|
-
```
|
|
111
|
-
|
|
112
|
-
---
|
|
113
|
-
|
|
114
|
-
## 4. Implementation Guidance
|
|
115
|
-
|
|
116
|
-
**Model Configuration:**
|
|
117
|
-
<!-- Which model(s), temperature, max tokens, and other key parameters -->
|
|
118
|
-
|
|
119
|
-
**Core Pattern:**
|
|
120
|
-
<!-- The primary implementation pattern for this system type in this framework -->
|
|
121
|
-
|
|
122
|
-
**Tool Use:**
|
|
123
|
-
<!-- Tools/integrations needed and how to configure them -->
|
|
124
|
-
|
|
125
|
-
**State Management:**
|
|
126
|
-
<!-- How state is persisted, retrieved, and updated -->
|
|
127
|
-
|
|
128
|
-
**Context Window Strategy:**
|
|
129
|
-
<!-- How to manage context limits for this system type -->
|
|
130
|
-
|
|
131
|
-
---
|
|
132
|
-
|
|
133
|
-
## 4b. AI Systems Best Practices
|
|
134
|
-
|
|
135
|
-
> Written by `gsd-ai-researcher`. Cross-cutting patterns every developer building AI systems needs — independent of framework choice.
|
|
136
|
-
|
|
137
|
-
### Structured Outputs with Pydantic
|
|
138
|
-
|
|
139
|
-
<!-- Framework-specific Pydantic integration pattern for this use case -->
|
|
140
|
-
<!-- Include: output model definition, how the framework uses it, retry logic on validation failure -->
|
|
141
|
-
|
|
142
|
-
```python
|
|
143
|
-
# Pydantic output model for this system type
|
|
144
|
-
```
|
|
145
|
-
|
|
146
|
-
### Async-First Design
|
|
147
|
-
|
|
148
|
-
<!-- How async is handled in this framework, the one common mistake, and when to stream vs. await -->
|
|
149
|
-
|
|
150
|
-
### Prompt Engineering Discipline
|
|
151
|
-
|
|
152
|
-
<!-- System vs. user prompt separation, few-shot guidance, token budget strategy -->
|
|
153
|
-
|
|
154
|
-
### Context Window Management
|
|
155
|
-
|
|
156
|
-
<!-- Strategy specific to this system type: RAG chunking / conversation summarisation / agent compaction -->
|
|
157
|
-
|
|
158
|
-
### Cost and Latency Budget
|
|
159
|
-
|
|
160
|
-
<!-- Per-call cost estimate, caching strategy, sub-task model routing -->
|
|
161
|
-
|
|
162
|
-
---
|
|
163
|
-
|
|
164
|
-
## 5. Evaluation Strategy
|
|
165
|
-
|
|
166
|
-
### Dimensions
|
|
167
|
-
|
|
168
|
-
| Dimension | Rubric (Pass/Fail or 1-5) | Measurement Approach | Priority |
|
|
169
|
-
|-----------|--------------------------|---------------------|----------|
|
|
170
|
-
| | | Code / LLM Judge / Human | Critical / High / Medium |
|
|
171
|
-
|
|
172
|
-
### Eval Tooling
|
|
173
|
-
|
|
174
|
-
**Primary Tool:** <!-- e.g., RAGAS + Langfuse -->
|
|
175
|
-
|
|
176
|
-
**Setup:**
|
|
177
|
-
```bash
|
|
178
|
-
# Install and configure
|
|
179
|
-
```
|
|
180
|
-
|
|
181
|
-
**CI/CD Integration:**
|
|
182
|
-
```bash
|
|
183
|
-
# Command to run evals in CI/CD pipeline
|
|
184
|
-
```
|
|
185
|
-
|
|
186
|
-
### Reference Dataset
|
|
187
|
-
|
|
188
|
-
**Size:** <!-- e.g., 20 examples to start -->
|
|
189
|
-
|
|
190
|
-
**Composition:**
|
|
191
|
-
<!-- What scenario types the dataset covers: critical paths, edge cases, failure modes -->
|
|
192
|
-
|
|
193
|
-
**Labeling:**
|
|
194
|
-
<!-- Who labels examples and how (domain expert, LLM judge with calibration, etc.) -->
|
|
195
|
-
|
|
196
|
-
---
|
|
197
|
-
|
|
198
|
-
## 6. Guardrails
|
|
199
|
-
|
|
200
|
-
### Online (Real-Time)
|
|
201
|
-
|
|
202
|
-
| Guardrail | Trigger | Intervention |
|
|
203
|
-
|-----------|---------|--------------|
|
|
204
|
-
| | | Block / Escalate / Flag |
|
|
205
|
-
|
|
206
|
-
### Offline (Flywheel)
|
|
207
|
-
|
|
208
|
-
| Metric | Sampling Strategy | Action on Degradation |
|
|
209
|
-
|--------|------------------|----------------------|
|
|
210
|
-
| | | |
|
|
211
|
-
|
|
212
|
-
---
|
|
213
|
-
|
|
214
|
-
## 7. Production Monitoring
|
|
215
|
-
|
|
216
|
-
**Tracing Tool:** <!-- e.g., Langfuse self-hosted -->
|
|
217
|
-
|
|
218
|
-
**Key Metrics to Track:**
|
|
219
|
-
<!-- 3-5 metrics that will be monitored in production -->
|
|
220
|
-
|
|
221
|
-
**Alert Thresholds:**
|
|
222
|
-
<!-- When to page/alert -->
|
|
223
|
-
|
|
224
|
-
**Smart Sampling Strategy:**
|
|
225
|
-
<!-- How to select interactions for human review — signal-based filters -->
|
|
226
|
-
|
|
227
|
-
---
|
|
228
|
-
|
|
229
|
-
## Checklist
|
|
230
|
-
|
|
231
|
-
- [ ] System type classified
|
|
232
|
-
- [ ] Critical failure modes identified (≥ 3)
|
|
233
|
-
- [ ] Domain context researched (Section 1b: vertical, stakes, expert criteria, failure modes)
|
|
234
|
-
- [ ] Regulatory/compliance context identified or explicitly noted as none
|
|
235
|
-
- [ ] Domain expert roles defined for evaluation involvement
|
|
236
|
-
- [ ] Framework selected with rationale documented
|
|
237
|
-
- [ ] Alternatives considered and ruled out
|
|
238
|
-
- [ ] Framework quick reference written (install, imports, pattern, pitfalls)
|
|
239
|
-
- [ ] AI systems best practices written (Section 4b: Pydantic, async, prompt discipline, context)
|
|
240
|
-
- [ ] Evaluation dimensions grounded in domain rubric ingredients
|
|
241
|
-
- [ ] Each eval dimension has a concrete rubric (Good/Bad in domain language)
|
|
242
|
-
- [ ] Eval tooling selected — Arize Phoenix default confirmed or override noted
|
|
243
|
-
- [ ] Reference dataset spec written (size ≥ 10, composition + labeling defined)
|
|
244
|
-
- [ ] CI/CD eval integration specified
|
|
245
|
-
- [ ] Online guardrails defined
|
|
246
|
-
- [ ] Production monitoring configured (tracing tool + sampling strategy)
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
phase: {N}
|
|
3
|
-
slug: {phase-slug}
|
|
4
|
-
status: draft
|
|
5
|
-
threats_open: 0
|
|
6
|
-
asvs_level: 1
|
|
7
|
-
created: {date}
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
# Phase {N} — Security
|
|
11
|
-
|
|
12
|
-
> Per-phase security contract: threat register, accepted risks, and audit trail.
|
|
13
|
-
|
|
14
|
-
---
|
|
15
|
-
|
|
16
|
-
## Trust Boundaries
|
|
17
|
-
|
|
18
|
-
| Boundary | Description | Data Crossing |
|
|
19
|
-
|----------|-------------|---------------|
|
|
20
|
-
| {boundary} | {description} | {data type / sensitivity} |
|
|
21
|
-
|
|
22
|
-
---
|
|
23
|
-
|
|
24
|
-
## Threat Register
|
|
25
|
-
|
|
26
|
-
| Threat ID | Category | Component | Disposition | Mitigation | Status |
|
|
27
|
-
|-----------|----------|-----------|-------------|------------|--------|
|
|
28
|
-
| T-{N}-01 | {STRIDE category} | {component} | {mitigate / accept / transfer} | {control or reference} | open |
|
|
29
|
-
|
|
30
|
-
*Status: open · closed*
|
|
31
|
-
*Disposition: mitigate (implementation required) · accept (documented risk) · transfer (third-party)*
|
|
32
|
-
|
|
33
|
-
---
|
|
34
|
-
|
|
35
|
-
## Accepted Risks Log
|
|
36
|
-
|
|
37
|
-
| Risk ID | Threat Ref | Rationale | Accepted By | Date |
|
|
38
|
-
|---------|------------|-----------|-------------|------|
|
|
39
|
-
|
|
40
|
-
*Accepted risks do not resurface in future audit runs.*
|
|
41
|
-
|
|
42
|
-
*If none: "No accepted risks."*
|
|
43
|
-
|
|
44
|
-
---
|
|
45
|
-
|
|
46
|
-
## Security Audit Trail
|
|
47
|
-
|
|
48
|
-
| Audit Date | Threats Total | Closed | Open | Run By |
|
|
49
|
-
|------------|---------------|--------|------|--------|
|
|
50
|
-
| {YYYY-MM-DD} | {N} | {N} | {N} | {name / agent} |
|
|
51
|
-
|
|
52
|
-
---
|
|
53
|
-
|
|
54
|
-
## Sign-Off
|
|
55
|
-
|
|
56
|
-
- [ ] All threats have a disposition (mitigate / accept / transfer)
|
|
57
|
-
- [ ] Accepted risks documented in Accepted Risks Log
|
|
58
|
-
- [ ] `threats_open: 0` confirmed
|
|
59
|
-
- [ ] `status: verified` set in frontmatter
|
|
60
|
-
|
|
61
|
-
**Approval:** {pending / verified YYYY-MM-DD}
|
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
phase: {N}
|
|
3
|
-
slug: {phase-slug}
|
|
4
|
-
status: draft
|
|
5
|
-
shadcn_initialized: false
|
|
6
|
-
preset: none
|
|
7
|
-
created: {date}
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
# Phase {N} — UI Design Contract
|
|
11
|
-
|
|
12
|
-
> Visual and interaction contract for frontend phases. Generated by gsd-ui-researcher, verified by gsd-ui-checker.
|
|
13
|
-
|
|
14
|
-
---
|
|
15
|
-
|
|
16
|
-
## Design System
|
|
17
|
-
|
|
18
|
-
| Property | Value |
|
|
19
|
-
|----------|-------|
|
|
20
|
-
| Tool | {shadcn / none} |
|
|
21
|
-
| Preset | {preset string or "not applicable"} |
|
|
22
|
-
| Component library | {radix / base-ui / none} |
|
|
23
|
-
| Icon library | {library} |
|
|
24
|
-
| Font | {font} |
|
|
25
|
-
|
|
26
|
-
---
|
|
27
|
-
|
|
28
|
-
## Spacing Scale
|
|
29
|
-
|
|
30
|
-
Declared values (must be multiples of 4):
|
|
31
|
-
|
|
32
|
-
| Token | Value | Usage |
|
|
33
|
-
|-------|-------|-------|
|
|
34
|
-
| xs | 4px | Icon gaps, inline padding |
|
|
35
|
-
| sm | 8px | Compact element spacing |
|
|
36
|
-
| md | 16px | Default element spacing |
|
|
37
|
-
| lg | 24px | Section padding |
|
|
38
|
-
| xl | 32px | Layout gaps |
|
|
39
|
-
| 2xl | 48px | Major section breaks |
|
|
40
|
-
| 3xl | 64px | Page-level spacing |
|
|
41
|
-
|
|
42
|
-
Exceptions: {list any, or "none"}
|
|
43
|
-
|
|
44
|
-
---
|
|
45
|
-
|
|
46
|
-
## Typography
|
|
47
|
-
|
|
48
|
-
| Role | Size | Weight | Line Height |
|
|
49
|
-
|------|------|--------|-------------|
|
|
50
|
-
| Body | {px} | {weight} | {ratio} |
|
|
51
|
-
| Label | {px} | {weight} | {ratio} |
|
|
52
|
-
| Heading | {px} | {weight} | {ratio} |
|
|
53
|
-
| Display | {px} | {weight} | {ratio} |
|
|
54
|
-
|
|
55
|
-
---
|
|
56
|
-
|
|
57
|
-
## Color
|
|
58
|
-
|
|
59
|
-
| Role | Value | Usage |
|
|
60
|
-
|------|-------|-------|
|
|
61
|
-
| Dominant (60%) | {hex} | Background, surfaces |
|
|
62
|
-
| Secondary (30%) | {hex} | Cards, sidebar, nav |
|
|
63
|
-
| Accent (10%) | {hex} | {list specific elements only} |
|
|
64
|
-
| Destructive | {hex} | Destructive actions only |
|
|
65
|
-
|
|
66
|
-
Accent reserved for: {explicit list — never "all interactive elements"}
|
|
67
|
-
|
|
68
|
-
---
|
|
69
|
-
|
|
70
|
-
## Copywriting Contract
|
|
71
|
-
|
|
72
|
-
| Element | Copy |
|
|
73
|
-
|---------|------|
|
|
74
|
-
| Primary CTA | {specific verb + noun} |
|
|
75
|
-
| Empty state heading | {copy} |
|
|
76
|
-
| Empty state body | {copy + next step} |
|
|
77
|
-
| Error state | {problem + solution path} |
|
|
78
|
-
| Destructive confirmation | {action name}: {confirmation copy} |
|
|
79
|
-
|
|
80
|
-
---
|
|
81
|
-
|
|
82
|
-
## Registry Safety
|
|
83
|
-
|
|
84
|
-
| Registry | Blocks Used | Safety Gate |
|
|
85
|
-
|----------|-------------|-------------|
|
|
86
|
-
| shadcn official | {list} | not required |
|
|
87
|
-
| {third-party name} | {list} | shadcn view + diff required |
|
|
88
|
-
|
|
89
|
-
---
|
|
90
|
-
|
|
91
|
-
## Checker Sign-Off
|
|
92
|
-
|
|
93
|
-
- [ ] Dimension 1 Copywriting: PASS
|
|
94
|
-
- [ ] Dimension 2 Visuals: PASS
|
|
95
|
-
- [ ] Dimension 3 Color: PASS
|
|
96
|
-
- [ ] Dimension 4 Typography: PASS
|
|
97
|
-
- [ ] Dimension 5 Spacing: PASS
|
|
98
|
-
- [ ] Dimension 6 Registry Safety: PASS
|
|
99
|
-
|
|
100
|
-
**Approval:** {pending / approved YYYY-MM-DD}
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
phase: {N}
|
|
3
|
-
slug: {phase-slug}
|
|
4
|
-
status: draft
|
|
5
|
-
nyquist_compliant: false
|
|
6
|
-
wave_0_complete: false
|
|
7
|
-
created: {date}
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
# Phase {N} — Validation Strategy
|
|
11
|
-
|
|
12
|
-
> Per-phase validation contract for feedback sampling during execution.
|
|
13
|
-
|
|
14
|
-
---
|
|
15
|
-
|
|
16
|
-
## Test Infrastructure
|
|
17
|
-
|
|
18
|
-
| Property | Value |
|
|
19
|
-
|----------|-------|
|
|
20
|
-
| **Framework** | {pytest 7.x / jest 29.x / vitest / go test / other} |
|
|
21
|
-
| **Config file** | {path or "none — Wave 0 installs"} |
|
|
22
|
-
| **Quick run command** | `{quick command}` |
|
|
23
|
-
| **Full suite command** | `{full command}` |
|
|
24
|
-
| **Estimated runtime** | ~{N} seconds |
|
|
25
|
-
|
|
26
|
-
---
|
|
27
|
-
|
|
28
|
-
## Sampling Rate
|
|
29
|
-
|
|
30
|
-
- **After every task commit:** Run `{quick run command}`
|
|
31
|
-
- **After every plan wave:** Run `{full suite command}`
|
|
32
|
-
- **Before `/gsd-verify-work`:** Full suite must be green
|
|
33
|
-
- **Max feedback latency:** {N} seconds
|
|
34
|
-
|
|
35
|
-
---
|
|
36
|
-
|
|
37
|
-
## Per-Task Verification Map
|
|
38
|
-
|
|
39
|
-
| Task ID | Plan | Wave | Requirement | Threat Ref | Secure Behavior | Test Type | Automated Command | File Exists | Status |
|
|
40
|
-
|---------|------|------|-------------|------------|-----------------|-----------|-------------------|-------------|--------|
|
|
41
|
-
| {N}-01-01 | 01 | 1 | REQ-{XX} | T-{N}-01 / — | {expected secure behavior or "N/A"} | unit | `{command}` | ✅ / ❌ W0 | ⬜ pending |
|
|
42
|
-
|
|
43
|
-
*Status: ⬜ pending · ✅ green · ❌ red · ⚠️ flaky*
|
|
44
|
-
|
|
45
|
-
---
|
|
46
|
-
|
|
47
|
-
## Wave 0 Requirements
|
|
48
|
-
|
|
49
|
-
- [ ] `{tests/test_file.py}` — stubs for REQ-{XX}
|
|
50
|
-
- [ ] `{tests/conftest.py}` — shared fixtures
|
|
51
|
-
- [ ] `{framework install}` — if no framework detected
|
|
52
|
-
|
|
53
|
-
*If none: "Existing infrastructure covers all phase requirements."*
|
|
54
|
-
|
|
55
|
-
---
|
|
56
|
-
|
|
57
|
-
## Manual-Only Verifications
|
|
58
|
-
|
|
59
|
-
| Behavior | Requirement | Why Manual | Test Instructions |
|
|
60
|
-
|----------|-------------|------------|-------------------|
|
|
61
|
-
| {behavior} | REQ-{XX} | {reason} | {steps} |
|
|
62
|
-
|
|
63
|
-
*If none: "All phase behaviors have automated verification."*
|
|
64
|
-
|
|
65
|
-
---
|
|
66
|
-
|
|
67
|
-
## Validation Sign-Off
|
|
68
|
-
|
|
69
|
-
- [ ] All tasks have `<automated>` verify or Wave 0 dependencies
|
|
70
|
-
- [ ] Sampling continuity: no 3 consecutive tasks without automated verify
|
|
71
|
-
- [ ] Wave 0 covers all MISSING references
|
|
72
|
-
- [ ] No watch-mode flags
|
|
73
|
-
- [ ] Feedback latency < {N}s
|
|
74
|
-
- [ ] `nyquist_compliant: true` set in frontmatter
|
|
75
|
-
|
|
76
|
-
**Approval:** {pending / approved YYYY-MM-DD}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Load developer preferences into this session
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# Developer Preferences
|
|
6
|
-
|
|
7
|
-
> Generated by GSD on {{generated_at}} from {{data_source}}.
|
|
8
|
-
> Run `/gsd-profile-user --refresh` to regenerate.
|
|
9
|
-
|
|
10
|
-
## Behavioral Directives
|
|
11
|
-
|
|
12
|
-
Follow these directives when working with this developer. Higher confidence
|
|
13
|
-
directives should be applied directly. Lower confidence directives should be
|
|
14
|
-
tried with hedging ("Based on your profile, I'll try X -- let me know if
|
|
15
|
-
that's off").
|
|
16
|
-
|
|
17
|
-
{{behavioral_directives}}
|
|
18
|
-
|
|
19
|
-
## Stack Preferences
|
|
20
|
-
|
|
21
|
-
{{stack_preferences}}
|