gsd-lite 0.6.5 → 0.6.7
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/.claude-plugin/marketplace.json +1 -1
- package/.claude-plugin/plugin.json +1 -1
- package/.mcp.json +0 -0
- package/README.md +0 -0
- package/agents/debugger.md +0 -0
- package/agents/executor.md +0 -0
- package/agents/researcher.md +0 -0
- package/agents/reviewer.md +0 -0
- package/commands/doctor.md +0 -0
- package/commands/prd.md +0 -0
- package/commands/resume.md +0 -0
- package/commands/start.md +0 -0
- package/commands/status.md +0 -0
- package/commands/stop.md +0 -0
- package/hooks/context-monitor.js +0 -0
- package/hooks/gsd-auto-update.cjs +0 -0
- package/hooks/gsd-context-monitor.cjs +0 -0
- package/hooks/gsd-session-init.cjs +1 -0
- package/hooks/gsd-session-stop.cjs +0 -0
- package/hooks/gsd-statusline.cjs +0 -0
- package/hooks/hooks.json +0 -0
- package/hooks/lib/gsd-finder.cjs +0 -0
- package/hooks/lib/semver-sort.cjs +0 -0
- package/hooks/lib/statusline-composite.cjs +0 -0
- package/install.js +0 -0
- package/launcher.js +0 -0
- package/package.json +2 -1
- package/references/anti-rationalization-full.md +0 -0
- package/references/evidence-spec.md +0 -0
- package/references/execution-loop.md +0 -0
- package/references/git-worktrees.md +0 -0
- package/references/questioning.md +0 -0
- package/references/review-classification.md +0 -0
- package/references/state-diagram.md +0 -0
- package/references/testing-patterns.md +0 -0
- package/src/schema.js +0 -0
- package/src/server.js +0 -0
- package/src/tools/orchestrator/debugger.js +0 -0
- package/src/tools/orchestrator/executor.js +0 -0
- package/src/tools/orchestrator/helpers.js +0 -0
- package/src/tools/orchestrator/index.js +0 -0
- package/src/tools/orchestrator/researcher.js +0 -0
- package/src/tools/orchestrator/resume.js +3 -2
- package/src/tools/orchestrator/reviewer.js +0 -0
- package/src/tools/state/constants.js +0 -0
- package/src/tools/state/crud.js +19 -5
- package/src/tools/state/index.js +0 -0
- package/src/tools/state/logic.js +0 -0
- package/src/tools/verify.js +0 -0
- package/src/utils.js +0 -0
- package/uninstall.js +0 -0
- package/workflows/debugging.md +0 -0
- package/workflows/deviation-rules.md +0 -0
- package/workflows/execution-flow.md +0 -0
- package/workflows/research.md +0 -0
- package/workflows/review-cycle.md +0 -0
- package/workflows/tdd-cycle.md +0 -0
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"name": "gsd",
|
|
14
14
|
"source": "./",
|
|
15
15
|
"description": "AI orchestration tool — GSD management shell + Superpowers quality core. 5 commands, 4 agents, 5 workflows, MCP server, context monitoring.",
|
|
16
|
-
"version": "0.6.
|
|
16
|
+
"version": "0.6.7",
|
|
17
17
|
"keywords": [
|
|
18
18
|
"orchestration",
|
|
19
19
|
"mcp",
|
package/.mcp.json
CHANGED
|
File without changes
|
package/README.md
CHANGED
|
File without changes
|
package/agents/debugger.md
CHANGED
|
File without changes
|
package/agents/executor.md
CHANGED
|
File without changes
|
package/agents/researcher.md
CHANGED
|
File without changes
|
package/agents/reviewer.md
CHANGED
|
File without changes
|
package/commands/doctor.md
CHANGED
|
File without changes
|
package/commands/prd.md
CHANGED
|
File without changes
|
package/commands/resume.md
CHANGED
|
File without changes
|
package/commands/start.md
CHANGED
|
File without changes
|
package/commands/status.md
CHANGED
|
File without changes
|
package/commands/stop.md
CHANGED
|
File without changes
|
package/hooks/context-monitor.js
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -94,6 +94,7 @@ setTimeout(() => process.exit(0), 4000).unref();
|
|
|
94
94
|
if (gsdEntry) {
|
|
95
95
|
const mcpContent = JSON.stringify({
|
|
96
96
|
mcpServers: {
|
|
97
|
+
// biome-ignore lint/suspicious/noTemplateCurlyInString: intentional — Claude plugin system substitutes this at runtime
|
|
97
98
|
gsd: { command: 'node', args: ['${CLAUDE_PLUGIN_ROOT}/launcher.js'] },
|
|
98
99
|
},
|
|
99
100
|
}, null, 2) + '\n';
|
|
File without changes
|
package/hooks/gsd-statusline.cjs
CHANGED
|
File without changes
|
package/hooks/hooks.json
CHANGED
|
File without changes
|
package/hooks/lib/gsd-finder.cjs
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/install.js
CHANGED
|
File without changes
|
package/launcher.js
CHANGED
|
File without changes
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "gsd-lite",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.7",
|
|
4
4
|
"description": "AI orchestration tool for Claude Code — GSD management shell + Superpowers quality core",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
"lint:fix": "biome check --write src/ tests/ hooks/",
|
|
14
14
|
"start": "node src/server.js",
|
|
15
15
|
"version": "node scripts/sync-versions.js && git add .claude-plugin/plugin.json .claude-plugin/marketplace.json",
|
|
16
|
+
"prepare": "[ -d .git ] && ln -sf ../../scripts/pre-commit.sh .git/hooks/pre-commit || true",
|
|
16
17
|
"prepublishOnly": "node scripts/sync-versions.js && npm run lint && npm test"
|
|
17
18
|
},
|
|
18
19
|
"repository": {
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/src/schema.js
CHANGED
|
File without changes
|
package/src/server.js
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -216,7 +216,8 @@ async function resumeExecutingTask(state, basePath) {
|
|
|
216
216
|
// signal complete_phase instead of going idle
|
|
217
217
|
const allAccepted = phase.todo.length > 0 && phase.todo.every(t => t.lifecycle === 'accepted');
|
|
218
218
|
const reviewPassed = phase.phase_review?.status === 'accepted'
|
|
219
|
-
|| phase.phase_handoff?.required_reviews_passed === true
|
|
219
|
+
|| phase.phase_handoff?.required_reviews_passed === true
|
|
220
|
+
|| allAccepted;
|
|
220
221
|
if (allAccepted && reviewPassed) {
|
|
221
222
|
// Auto-advance phase lifecycle to 'reviewing' if currently 'active'
|
|
222
223
|
// (mirrors trigger_review path at line 480-482)
|
|
@@ -531,7 +532,7 @@ export async function resumeWorkflow({ basePath = process.cwd(), _depth = 0, unb
|
|
|
531
532
|
}
|
|
532
533
|
|
|
533
534
|
// Attach display-ready summary to all successful responses
|
|
534
|
-
if (result
|
|
535
|
+
if (result?.success && !result.summary) {
|
|
535
536
|
const summary = _buildResumeSummary(state, result);
|
|
536
537
|
// Use the response's workflow_mode if it differs from state (e.g., preflight override)
|
|
537
538
|
if (result.workflow_mode && result.workflow_mode !== state.workflow_mode) {
|
|
File without changes
|
|
File without changes
|
package/src/tools/state/crud.js
CHANGED
|
@@ -486,8 +486,11 @@ export async function phaseComplete({
|
|
|
486
486
|
};
|
|
487
487
|
}
|
|
488
488
|
|
|
489
|
+
const allTasksAutoAccepted = phase.lifecycle === 'active'
|
|
490
|
+
&& phase.todo?.length > 0 && phase.todo.every(t => t.lifecycle === 'accepted');
|
|
489
491
|
const reviewPassed = phase.phase_review?.status === 'accepted'
|
|
490
|
-
|| phase.phase_handoff.required_reviews_passed === true
|
|
492
|
+
|| phase.phase_handoff.required_reviews_passed === true
|
|
493
|
+
|| allTasksAutoAccepted;
|
|
491
494
|
if (!reviewPassed) {
|
|
492
495
|
return {
|
|
493
496
|
error: true,
|
|
@@ -579,7 +582,16 @@ export async function phaseComplete({
|
|
|
579
582
|
}
|
|
580
583
|
state._version = (state._version ?? 0) + 1;
|
|
581
584
|
await writeJson(statePath, state);
|
|
582
|
-
|
|
585
|
+
const isCompleted = state.workflow_mode === 'completed';
|
|
586
|
+
const nextPhaseInfo = !isCompleted && state.phases.find(p => p.id === state.current_phase);
|
|
587
|
+
return {
|
|
588
|
+
success: true,
|
|
589
|
+
phase_id,
|
|
590
|
+
phase_name: phase.name,
|
|
591
|
+
next_phase: nextPhaseInfo ? { id: nextPhaseInfo.id, name: nextPhaseInfo.name, tasks: nextPhaseInfo.todo?.length || 0 } : null,
|
|
592
|
+
workflow_mode: state.workflow_mode,
|
|
593
|
+
...(isCompleted ? { message: 'All phases completed — project finished' } : {}),
|
|
594
|
+
};
|
|
583
595
|
});
|
|
584
596
|
}
|
|
585
597
|
|
|
@@ -894,7 +906,7 @@ function _applyPatchOp(state, op) {
|
|
|
894
906
|
}
|
|
895
907
|
|
|
896
908
|
case 'update_task': {
|
|
897
|
-
const { task_id, ...fields } = op;
|
|
909
|
+
const { task_id, task: taskObj, ...fields } = op;
|
|
898
910
|
if (typeof task_id !== 'string') return { error: true, message: 'task_id must be a string' };
|
|
899
911
|
|
|
900
912
|
const phase = state.phases.find(p => p.todo?.some(t => t.id === task_id));
|
|
@@ -902,10 +914,12 @@ function _applyPatchOp(state, op) {
|
|
|
902
914
|
|
|
903
915
|
const task = phase.todo.find(t => t.id === task_id);
|
|
904
916
|
const allowedFields = ['name', 'level', 'review_required', 'verification_required', 'research_basis'];
|
|
917
|
+
// Support both flat fields and nested task object (consistent with add_task API)
|
|
918
|
+
const source = (taskObj && typeof taskObj === 'object') ? { ...taskObj, ...fields } : fields;
|
|
905
919
|
const updates = {};
|
|
906
920
|
for (const key of allowedFields) {
|
|
907
|
-
if (key in
|
|
908
|
-
updates[key] =
|
|
921
|
+
if (key in source) {
|
|
922
|
+
updates[key] = source[key];
|
|
909
923
|
}
|
|
910
924
|
}
|
|
911
925
|
|
package/src/tools/state/index.js
CHANGED
|
File without changes
|
package/src/tools/state/logic.js
CHANGED
|
File without changes
|
package/src/tools/verify.js
CHANGED
|
File without changes
|
package/src/utils.js
CHANGED
|
File without changes
|
package/uninstall.js
CHANGED
|
File without changes
|
package/workflows/debugging.md
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/workflows/research.md
CHANGED
|
File without changes
|
|
File without changes
|
package/workflows/tdd-cycle.md
CHANGED
|
File without changes
|