fix: /gsd-run uses hardcoded ~/.pi/ path instead of GSD_WORKFLOW_PATH (#38)
* feat: /gsd migrate — .planning to .gsd migration tool Add `/gsd migrate [path]` command that reads old get-shit-done .planning directories and writes complete .gsd directory trees for GSD-2. Pipeline: validate → parse → transform → preview → confirm → write → review Parser (S01): - 7 per-file parsers: roadmap, plan, summary, requirements, project, state, config - Handles flat, milestone-sectioned, and <details>-block roadmap formats - Bold phase entries, "Phase N:" format, decimal numbering, duplicate phase numbers - Bullet-format requirements (- [x] **ID**: Description) - Graceful null returns for missing files, severity-classified validation Transformer (S02): - Phases → slices, plans → tasks, milestones → milestones - Float-sorted decimal phases renumbered sequentially (S01, S02, ...) - Completion state preserved (roadmap [x] → slice done, summary → task done) - Research consolidated with fixed file-type ordering - Requirements classified with complete/done/shipped → validated normalization - Vision derived from PROJECT.md with three-level fallback - Duplicate phase numbers disambiguated by title similarity Writer (S03): - Format functions for all GSD-2 file types with round-trip verification - writeGSDDirectory produces tree that deriveState() reads correctly - generatePreview computes milestone/slice/task counts + completion % - Null research and empty requirements silently skipped Command (S04): - Default to cwd when no args given; ~/path expansion - Validation gating (fatal issues block pipeline) - Preview with showNextAction confirmation - Post-write agent review via prompts/review-migration.md template - Wired into commands.ts with tab completion Also: - .gitignore: replace granular .gsd/* entries with .gsd/ catch-all - README: add /gsd migrate to commands table + "Migrating from v1" section - files.ts: widen parseRequirementCounts regex for non-R prefixed IDs 478 assertions across 6 test suites, all passing. UAT against blade/bladeai (28 phases, 8 milestones) and aire (10 phases, 2 milestones). * fix: persist skipped API keys so wizard doesn't repeat on every launch When users skip optional API keys (Brave, Context7, Jina) by pressing Enter, the wizard stores nothing. On next launch, authStorage.has() returns false for those providers, so the wizard prompts again. Fix: store an empty-key sentinel for skipped providers. Also guard loadStoredEnvKeys against injecting empty strings into process.env. * fix: respect GSD_WORKFLOW_PATH in /gsd-run command --------- Co-authored-by: Jonathan Costin <jonathan.costin@outlook.com> Co-authored-by: vp275 <vedantp42@gmail.com>
This commit is contained in:
parent
a5fcc3964a
commit
8e1ddd51f2
1 changed files with 1 additions and 1 deletions
|
|
@ -6,7 +6,7 @@ export default function gsdRun(pi: ExtensionAPI) {
|
|||
pi.registerCommand("gsd-run", {
|
||||
description: "Read GSD-WORKFLOW.md and execute — lightweight protocol-driven GSD",
|
||||
async handler(args: string, ctx: ExtensionCommandContext) {
|
||||
const workflowPath = join(process.env.HOME ?? "~", ".pi", "GSD-WORKFLOW.md");
|
||||
const workflowPath = process.env.GSD_WORKFLOW_PATH ?? join(process.env.HOME ?? "~", ".pi", "GSD-WORKFLOW.md");
|
||||
|
||||
let workflow: string;
|
||||
try {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue