@ktpartners/dgs-platform 2.9.0 → 3.3.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/CHANGELOG.md +197 -0
- package/README.md +34 -2
- package/agents/dgs-executor.md +124 -3
- package/agents/dgs-idea-researcher.md +447 -0
- package/agents/dgs-plan-checker.md +61 -3
- package/agents/dgs-planner.md +51 -8
- package/bin/install.js +44 -0
- package/commands/dgs/abandon-quick.md +28 -0
- package/commands/dgs/add-tests.md +2 -2
- package/commands/dgs/audit-milestone.md +4 -3
- package/commands/dgs/capture-principle.md +11 -11
- package/commands/dgs/cleanup.md +2 -2
- package/commands/dgs/complete-milestone.md +11 -11
- package/commands/dgs/complete-quick.md +28 -0
- package/commands/dgs/create-milestone-job.md +2 -2
- package/commands/dgs/debug.md +3 -3
- package/commands/dgs/develop-idea.md +1 -1
- package/commands/dgs/diff-report.md +124 -0
- package/commands/dgs/fast.md +3 -1
- package/commands/dgs/health.md +1 -1
- package/commands/dgs/map-codebase.md +6 -6
- package/commands/dgs/new-milestone.md +5 -5
- package/commands/dgs/new-project.md +8 -21
- package/commands/dgs/package-scan.md +43 -0
- package/commands/dgs/plan-milestone-gaps.md +1 -1
- package/commands/dgs/progress.md +3 -3
- package/commands/dgs/quick-abandon.md +8 -0
- package/commands/dgs/quick-complete.md +8 -0
- package/commands/dgs/quick.md +10 -3
- package/commands/dgs/research-idea.md +3 -2
- package/commands/dgs/research-phase.md +3 -3
- package/commands/dgs/switch-project.md +14 -1
- package/commands/dgs/write-spec.md +3 -3
- package/deliver-great-systems/bin/dgs-tools.cjs +401 -32
- package/deliver-great-systems/bin/lib/audit-tolerance.cjs +77 -0
- package/deliver-great-systems/bin/lib/audit-tolerance.test.cjs +101 -0
- package/deliver-great-systems/bin/lib/commands.cjs +626 -46
- package/deliver-great-systems/bin/lib/commands.test.cjs +451 -0
- package/deliver-great-systems/bin/lib/commit-verify.test.cjs +236 -0
- package/deliver-great-systems/bin/lib/config.cjs +80 -6
- package/deliver-great-systems/bin/lib/config.test.cjs +309 -0
- package/deliver-great-systems/bin/lib/context.cjs +120 -0
- package/deliver-great-systems/bin/lib/core.cjs +35 -14
- package/deliver-great-systems/bin/lib/core.test.cjs +79 -1
- package/deliver-great-systems/bin/lib/execution.cjs +49 -17
- package/deliver-great-systems/bin/lib/fast-routing.cjs +199 -0
- package/deliver-great-systems/bin/lib/fast-routing.test.cjs +108 -0
- package/deliver-great-systems/bin/lib/final-commit-precondition.test.cjs +87 -0
- package/deliver-great-systems/bin/lib/fixtures/package-scan/bundler-audit-gemfile.json +21 -0
- package/deliver-great-systems/bin/lib/fixtures/package-scan/gate-parity-expected.md +186 -0
- package/deliver-great-systems/bin/lib/fixtures/package-scan/gate-parity-runresult.json +235 -0
- package/deliver-great-systems/bin/lib/fixtures/package-scan/govulncheck-import.json +3 -0
- package/deliver-great-systems/bin/lib/fixtures/package-scan/npm-audit-v10.json +37 -0
- package/deliver-great-systems/bin/lib/fixtures/package-scan/osv-clean.json +3 -0
- package/deliver-great-systems/bin/lib/fixtures/package-scan/osv-vulns.json +77 -0
- package/deliver-great-systems/bin/lib/fixtures/package-scan/pip-audit-requirements.json +28 -0
- package/deliver-great-systems/bin/lib/fixtures/package-scan/snyk-lodash.json +30 -0
- package/deliver-great-systems/bin/lib/fixtures/package-scan/snyk-workspaces.json +55 -0
- package/deliver-great-systems/bin/lib/flat-migration.test.cjs +396 -0
- package/deliver-great-systems/bin/lib/frontmatter.cjs +1 -1
- package/deliver-great-systems/bin/lib/governance.cjs +211 -0
- package/deliver-great-systems/bin/lib/governance.test.cjs +339 -0
- package/deliver-great-systems/bin/lib/health-untracked-phase.test.cjs +269 -0
- package/deliver-great-systems/bin/lib/ideas.cjs +206 -91
- package/deliver-great-systems/bin/lib/ideas.test.cjs +244 -1
- package/deliver-great-systems/bin/lib/init.cjs +357 -61
- package/deliver-great-systems/bin/lib/init.test.cjs +625 -8
- package/deliver-great-systems/bin/lib/jobs.cjs +131 -25
- package/deliver-great-systems/bin/lib/jobs.test.cjs +193 -74
- package/deliver-great-systems/bin/lib/migration.cjs +409 -1
- package/deliver-great-systems/bin/lib/migration.test.cjs +158 -1
- package/deliver-great-systems/bin/lib/milestone.cjs +154 -31
- package/deliver-great-systems/bin/lib/milestone.test.cjs +203 -0
- package/deliver-great-systems/bin/lib/package-adapters.cjs +530 -0
- package/deliver-great-systems/bin/lib/package-adapters.test.cjs +618 -0
- package/deliver-great-systems/bin/lib/package-ecosystems.cjs +350 -0
- package/deliver-great-systems/bin/lib/package-ecosystems.test.cjs +348 -0
- package/deliver-great-systems/bin/lib/package-runner.cjs +199 -0
- package/deliver-great-systems/bin/lib/package-runner.test.cjs +198 -0
- package/deliver-great-systems/bin/lib/package-scan-provenance.cjs +56 -0
- package/deliver-great-systems/bin/lib/package-scan-provenance.test.cjs +103 -0
- package/deliver-great-systems/bin/lib/package-scan-report.cjs +1140 -0
- package/deliver-great-systems/bin/lib/package-scan-report.test.cjs +1963 -0
- package/deliver-great-systems/bin/lib/package-scan-skill.cjs +96 -0
- package/deliver-great-systems/bin/lib/package-scan-skill.test.cjs +136 -0
- package/deliver-great-systems/bin/lib/package-scan.cjs +919 -0
- package/deliver-great-systems/bin/lib/package-scan.test.cjs +2147 -0
- package/deliver-great-systems/bin/lib/phase.cjs +146 -3
- package/deliver-great-systems/bin/lib/phase.test.cjs +420 -0
- package/deliver-great-systems/bin/lib/plan-number-validity.test.cjs +48 -0
- package/deliver-great-systems/bin/lib/projects.cjs +65 -10
- package/deliver-great-systems/bin/lib/projects.test.cjs +198 -2
- package/deliver-great-systems/bin/lib/quick.cjs +739 -0
- package/deliver-great-systems/bin/lib/quick.test.cjs +730 -0
- package/deliver-great-systems/bin/lib/repos.cjs +37 -13
- package/deliver-great-systems/bin/lib/review.cjs +1821 -0
- package/deliver-great-systems/bin/lib/roadmap.cjs +34 -13
- package/deliver-great-systems/bin/lib/specs.cjs +3 -81
- package/deliver-great-systems/bin/lib/state-transition-gate.test.cjs +160 -0
- package/deliver-great-systems/bin/lib/state.cjs +147 -55
- package/deliver-great-systems/bin/lib/summary-frontmatter.cjs +54 -0
- package/deliver-great-systems/bin/lib/summary-frontmatter.test.cjs +78 -0
- package/deliver-great-systems/bin/lib/sweep-scope.test.cjs +263 -0
- package/deliver-great-systems/bin/lib/sync.cjs +75 -0
- package/deliver-great-systems/bin/lib/verify.cjs +198 -7
- package/deliver-great-systems/bin/lib/verify.test.cjs +82 -0
- package/deliver-great-systems/bin/lib/wave-0-template-rename.test.cjs +40 -0
- package/deliver-great-systems/bin/lib/worktrees.cjs +790 -0
- package/deliver-great-systems/bin/lib/worktrees.test.cjs +963 -0
- package/deliver-great-systems/references/agent-step-reliability.md +60 -0
- package/deliver-great-systems/references/conflict-resolution.md +4 -0
- package/deliver-great-systems/references/context-tiers.md +4 -0
- package/deliver-great-systems/references/package-scan-config.md +151 -0
- package/deliver-great-systems/references/questioning.md +0 -30
- package/deliver-great-systems/references/spec-review-loop.md +1 -2
- package/deliver-great-systems/references/workflow-conventions.md +29 -0
- package/deliver-great-systems/skills/dgs-tests/package-scan.md +44 -0
- package/deliver-great-systems/templates/REVIEW.md +35 -0
- package/deliver-great-systems/templates/VALIDATION.md +1 -1
- package/deliver-great-systems/templates/claude-md.md +27 -0
- package/deliver-great-systems/templates/package-scan-report.md +108 -0
- package/deliver-great-systems/templates/project.md +6 -170
- package/deliver-great-systems/templates/summary.md +3 -1
- package/deliver-great-systems/workflows/abandon-quick.md +89 -0
- package/deliver-great-systems/workflows/add-idea.md +3 -3
- package/deliver-great-systems/workflows/add-phase.md +5 -0
- package/deliver-great-systems/workflows/add-tests.md +14 -0
- package/deliver-great-systems/workflows/add-todo.md +1 -0
- package/deliver-great-systems/workflows/approve-spec.md +25 -4
- package/deliver-great-systems/workflows/audit-milestone.md +66 -10
- package/deliver-great-systems/workflows/audit-phase.md +15 -5
- package/deliver-great-systems/workflows/cancel-job.md +2 -2
- package/deliver-great-systems/workflows/check-todos.md +2 -3
- package/deliver-great-systems/workflows/codereview.md +103 -9
- package/deliver-great-systems/workflows/complete-milestone.md +218 -24
- package/deliver-great-systems/workflows/complete-quick.md +106 -0
- package/deliver-great-systems/workflows/consolidate-ideas.md +1 -1
- package/deliver-great-systems/workflows/create-milestone-job.md +4 -4
- package/deliver-great-systems/workflows/develop-idea.md +11 -11
- package/deliver-great-systems/workflows/diagnose-issues.md +14 -0
- package/deliver-great-systems/workflows/discuss-idea.md +1 -1
- package/deliver-great-systems/workflows/discuss-phase.md +3 -2
- package/deliver-great-systems/workflows/execute-phase.md +209 -33
- package/deliver-great-systems/workflows/execute-plan.md +22 -22
- package/deliver-great-systems/workflows/help.md +53 -20
- package/deliver-great-systems/workflows/import-spec.md +65 -7
- package/deliver-great-systems/workflows/init-product.md +45 -167
- package/deliver-great-systems/workflows/new-milestone.md +140 -33
- package/deliver-great-systems/workflows/new-project.md +60 -331
- package/deliver-great-systems/workflows/package-scan.md +59 -0
- package/deliver-great-systems/workflows/plan-phase.md +79 -1
- package/deliver-great-systems/workflows/progress-all.md +133 -0
- package/deliver-great-systems/workflows/quick-abandon.md +89 -0
- package/deliver-great-systems/workflows/quick-complete.md +106 -0
- package/deliver-great-systems/workflows/quick.md +328 -26
- package/deliver-great-systems/workflows/refine-spec.md +1 -1
- package/deliver-great-systems/workflows/research-idea.md +77 -139
- package/deliver-great-systems/workflows/resume-project.md +2 -2
- package/deliver-great-systems/workflows/run-job.md +29 -43
- package/deliver-great-systems/workflows/settings.md +13 -77
- package/deliver-great-systems/workflows/validate-phase.md +39 -1
- package/deliver-great-systems/workflows/verify-work.md +14 -0
- package/deliver-great-systems/workflows/write-spec.md +11 -13
- package/hooks/dist/dgs-enforce-discipline.js +196 -0
- package/package.json +1 -1
- package/scripts/build-hooks.js +1 -0
|
@@ -63,6 +63,7 @@ function parseReposMd(cwd) {
|
|
|
63
63
|
path: cells[2] || '',
|
|
64
64
|
url: cells[3] || '',
|
|
65
65
|
description: cells[4] || '',
|
|
66
|
+
setup: (cells[5] || '').trim(),
|
|
66
67
|
});
|
|
67
68
|
}
|
|
68
69
|
|
|
@@ -1100,38 +1101,40 @@ function cmdReposInitProduct(cwd, options, raw) {
|
|
|
1100
1101
|
// Check if already initialized (idempotency)
|
|
1101
1102
|
if (isV2Install(cwd)) {
|
|
1102
1103
|
// Silently ensure v3.0 directories exist (backfill for upgrades)
|
|
1103
|
-
const ideasStates = ['pending', 'rejected', 'done'];
|
|
1104
|
-
for (const st of ideasStates) {
|
|
1105
|
-
fs.mkdirSync(path.join(getPlanningRoot(cwd), 'ideas', st), { recursive: true });
|
|
1106
|
-
}
|
|
1107
1104
|
fs.mkdirSync(path.join(getPlanningRoot(cwd), 'specs'), { recursive: true });
|
|
1108
1105
|
fs.mkdirSync(path.join(getPlanningRoot(cwd), 'docs', 'product'), { recursive: true });
|
|
1106
|
+
fs.mkdirSync(path.join(getPlanningRoot(cwd), 'quick'), { recursive: true });
|
|
1109
1107
|
error('Product already initialized. Use /dgs:progress to see status.');
|
|
1110
1108
|
}
|
|
1111
1109
|
|
|
1112
1110
|
// Planning root is cwd (root layout)
|
|
1113
1111
|
fs.mkdirSync(getPlanningRoot(cwd), { recursive: true });
|
|
1114
1112
|
|
|
1115
|
-
// Create
|
|
1116
|
-
|
|
1117
|
-
for (const state of ideasStates) {
|
|
1118
|
-
fs.mkdirSync(path.join(getPlanningRoot(cwd), 'ideas', state), { recursive: true });
|
|
1119
|
-
}
|
|
1113
|
+
// Create specs and docs directories for v3.0 features
|
|
1114
|
+
// (ideas/ is created on demand by `dgs-tools ideas create`; flat-status frontmatter replaces directory-based state per idea #009)
|
|
1120
1115
|
fs.mkdirSync(path.join(getPlanningRoot(cwd), 'specs'), { recursive: true });
|
|
1121
1116
|
fs.mkdirSync(path.join(getPlanningRoot(cwd), 'docs', 'product'), { recursive: true });
|
|
1117
|
+
fs.mkdirSync(path.join(getPlanningRoot(cwd), 'quick'), { recursive: true });
|
|
1122
1118
|
|
|
1123
1119
|
// Add .gitkeep files to empty directories so they survive git commit
|
|
1124
1120
|
const gitkeepPaths = [
|
|
1125
|
-
path.join(getPlanningRoot(cwd), 'ideas', 'pending', '.gitkeep'),
|
|
1126
|
-
path.join(getPlanningRoot(cwd), 'ideas', 'rejected', '.gitkeep'),
|
|
1127
|
-
path.join(getPlanningRoot(cwd), 'ideas', 'done', '.gitkeep'),
|
|
1128
1121
|
path.join(getPlanningRoot(cwd), 'specs', '.gitkeep'),
|
|
1129
1122
|
path.join(getPlanningRoot(cwd), 'docs', 'product', '.gitkeep'),
|
|
1123
|
+
path.join(getPlanningRoot(cwd), 'quick', '.gitkeep'),
|
|
1130
1124
|
];
|
|
1125
|
+
// AGENT-13 contract: scaffolded_files lists all files this command writes/guarantees,
|
|
1126
|
+
// derived from actual write list (never hardcoded). Workflows MUST consume this array
|
|
1127
|
+
// and pass it to a subsequent commit step's --files argument. See
|
|
1128
|
+
// references/workflow-conventions.md and references/agent-step-reliability.md.
|
|
1129
|
+
const scaffoldedFiles = [];
|
|
1131
1130
|
for (const gk of gitkeepPaths) {
|
|
1132
1131
|
if (!fs.existsSync(gk)) {
|
|
1133
1132
|
fs.writeFileSync(gk, '', 'utf-8');
|
|
1134
1133
|
}
|
|
1134
|
+
// Always include in scaffolded_files: contract is "files this command guarantees on
|
|
1135
|
+
// disk that the caller MUST commit", not "files this run newly created" — fresh
|
|
1136
|
+
// clones need them tracked even if a previous local run already wrote them.
|
|
1137
|
+
scaffoldedFiles.push(path.relative(cwd, gk));
|
|
1135
1138
|
}
|
|
1136
1139
|
|
|
1137
1140
|
// Scaffold review-keys.json with empty template
|
|
@@ -1150,6 +1153,25 @@ function cmdReposInitProduct(cwd, options, raw) {
|
|
|
1150
1153
|
const siblingRepos = discoverSiblingRepos(cwd);
|
|
1151
1154
|
const allRepos = [...discoveredRepos, ...siblingRepos];
|
|
1152
1155
|
|
|
1156
|
+
// Bootstrap empty code repos so git worktree creation works later.
|
|
1157
|
+
// git worktree add requires at least one commit (a HEAD to branch from).
|
|
1158
|
+
const bootstrappedRepos = [];
|
|
1159
|
+
for (const repo of allRepos) {
|
|
1160
|
+
const repoPath = path.resolve(cwd, repo.path);
|
|
1161
|
+
if (!fs.existsSync(path.join(repoPath, '.git'))) continue;
|
|
1162
|
+
const logResult = execGit(repoPath, ['rev-parse', 'HEAD']);
|
|
1163
|
+
if (logResult.exitCode !== 0) {
|
|
1164
|
+
// Empty repo — no commits yet
|
|
1165
|
+
const readmePath = path.join(repoPath, 'README.md');
|
|
1166
|
+
if (!fs.existsSync(readmePath)) {
|
|
1167
|
+
fs.writeFileSync(readmePath, `# ${repo.name}\n`, 'utf-8');
|
|
1168
|
+
}
|
|
1169
|
+
execGit(repoPath, ['add', 'README.md']);
|
|
1170
|
+
execGit(repoPath, ['commit', '-m', 'chore: initial commit']);
|
|
1171
|
+
bootstrappedRepos.push(repo.name);
|
|
1172
|
+
}
|
|
1173
|
+
}
|
|
1174
|
+
|
|
1153
1175
|
// Derive product name
|
|
1154
1176
|
const productName = options.productName || path.basename(cwd);
|
|
1155
1177
|
|
|
@@ -1178,7 +1200,9 @@ function cmdReposInitProduct(cwd, options, raw) {
|
|
|
1178
1200
|
ideas_dirs_created: true,
|
|
1179
1201
|
specs_dir_created: true,
|
|
1180
1202
|
docs_dir_created: true,
|
|
1181
|
-
|
|
1203
|
+
bootstrapped_repos: bootstrappedRepos,
|
|
1204
|
+
files_created: ['config.json', 'config.local.json', 'REPOS.md', 'PROJECTS.md', 'ideas/', 'specs/', 'docs/', 'quick/', '.gitignore', 'review-keys.json'],
|
|
1205
|
+
scaffolded_files: scaffoldedFiles,
|
|
1182
1206
|
}, raw);
|
|
1183
1207
|
}
|
|
1184
1208
|
|