@captain_z/zsk 1.7.0 → 1.8.2

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.
Files changed (93) hide show
  1. package/dist/bin.js +196 -12
  2. package/dist/bin.js.map +1 -1
  3. package/dist/commands/check.js +107 -16
  4. package/dist/commands/check.js.map +1 -1
  5. package/dist/commands/config.d.ts +11 -0
  6. package/dist/commands/config.js +132 -3
  7. package/dist/commands/config.js.map +1 -1
  8. package/dist/commands/demo.js +2 -2
  9. package/dist/commands/demo.js.map +1 -1
  10. package/dist/commands/dispatch.d.ts +11 -0
  11. package/dist/commands/dispatch.js +69 -0
  12. package/dist/commands/dispatch.js.map +1 -0
  13. package/dist/commands/doctor.d.ts +4 -0
  14. package/dist/commands/doctor.js +102 -0
  15. package/dist/commands/doctor.js.map +1 -0
  16. package/dist/commands/gate.d.ts +9 -0
  17. package/dist/commands/gate.js +48 -0
  18. package/dist/commands/gate.js.map +1 -0
  19. package/dist/commands/issue.d.ts +2 -1
  20. package/dist/commands/issue.js +72 -27
  21. package/dist/commands/issue.js.map +1 -1
  22. package/dist/commands/module.js +32 -0
  23. package/dist/commands/module.js.map +1 -1
  24. package/dist/commands/prep.d.ts +2 -4
  25. package/dist/commands/prep.js +1 -37
  26. package/dist/commands/prep.js.map +1 -1
  27. package/dist/commands/prepare.d.ts +17 -0
  28. package/dist/commands/prepare.js +259 -0
  29. package/dist/commands/prepare.js.map +1 -0
  30. package/dist/commands/project-init.d.ts +1 -0
  31. package/dist/commands/project-init.js +28 -24
  32. package/dist/commands/project-init.js.map +1 -1
  33. package/dist/commands/template.d.ts +2 -0
  34. package/dist/commands/template.js +34 -0
  35. package/dist/commands/template.js.map +1 -0
  36. package/dist/core/config.d.ts +86 -1
  37. package/dist/core/config.js +181 -21
  38. package/dist/core/config.js.map +1 -1
  39. package/dist/core/origin-detection.d.ts +10 -0
  40. package/dist/core/origin-detection.js +135 -0
  41. package/dist/core/origin-detection.js.map +1 -0
  42. package/dist/core/prepare-lifecycle.d.ts +54 -0
  43. package/dist/core/prepare-lifecycle.js +302 -0
  44. package/dist/core/prepare-lifecycle.js.map +1 -0
  45. package/dist/core/prepare-sync.d.ts +82 -0
  46. package/dist/core/prepare-sync.js +1499 -0
  47. package/dist/core/prepare-sync.js.map +1 -0
  48. package/dist/core/raw-manifest.d.ts +20 -0
  49. package/dist/core/raw-manifest.js +105 -4
  50. package/dist/core/raw-manifest.js.map +1 -1
  51. package/dist/core/source-draft.d.ts +14 -0
  52. package/dist/core/source-draft.js +251 -0
  53. package/dist/core/source-draft.js.map +1 -0
  54. package/dist/core/staffing-plan.d.ts +206 -0
  55. package/dist/core/staffing-plan.js +1115 -0
  56. package/dist/core/staffing-plan.js.map +1 -0
  57. package/dist/core/stage-quality.d.ts +56 -0
  58. package/dist/core/stage-quality.js +487 -0
  59. package/dist/core/stage-quality.js.map +1 -0
  60. package/dist/core/template-registry.d.ts +29 -0
  61. package/dist/core/template-registry.js +289 -0
  62. package/dist/core/template-registry.js.map +1 -0
  63. package/dist/core/workspace-layout.d.ts +5 -3
  64. package/dist/core/workspace-layout.js +34 -20
  65. package/dist/core/workspace-layout.js.map +1 -1
  66. package/package.json +2 -2
  67. package/schemas/zsk-config.schema.json +257 -111
  68. package/templates/issue/default/issue.md +5 -1
  69. package/templates/module/frontend-module/design.md +93 -0
  70. package/templates/module/frontend-module/proposal.md +43 -1
  71. package/templates/module/frontend-module/spec.md +30 -0
  72. package/templates/module/frontend-module/tasks.md +43 -0
  73. package/templates/project-init/.zsk/config.yaml +8 -94
  74. package/templates/project-init/.zsk/docs/PROJECT-CONFIG.md +34 -11
  75. package/templates/project-init/.zsk/docs/SYSTEM-SPEC.md +37 -5
  76. package/templates/project-init/.zsk/modules/index.md +7 -0
  77. package/templates/project-init/.zsk/raws/index.md +15 -0
  78. package/templates/project-init/.zsk/raws/manifest.json +4 -0
  79. package/templates/project-init/.zsk/raws/prepare/backend/index.md +4 -0
  80. package/templates/project-init/.zsk/raws/prepare/design/index.md +3 -0
  81. package/templates/project-init/.zsk/raws/prepare/index.md +4 -0
  82. package/templates/project-init/.zsk/raws/prepare/product/index.md +4 -0
  83. package/templates/project-init/.zsk/raws/prepare/qa/index.md +4 -0
  84. package/templates/project-init/.zsk/raws/prepare/ux/index.md +3 -0
  85. package/templates/project-init/.zsk/roles.yaml +129 -0
  86. package/templates/project-init/.zsk/evidence/.gitkeep +0 -1
  87. package/templates/project-init/.zsk/issues/README.md +0 -58
  88. package/templates/project-init/.zsk/issues/_taxonomy.md +0 -35
  89. package/templates/project-init/.zsk/issues/index.md +0 -7
  90. package/templates/project-init/.zsk/modules/.gitkeep +0 -1
  91. package/templates/project-init/.zsk/plans/.gitkeep +0 -1
  92. package/templates/project-init/.zsk/playwright/.gitkeep +0 -1
  93. package/templates/project-init/.zsk/resources/.gitkeep +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"staffing-plan.js","sourceRoot":"","sources":["../../src/core/staffing-plan.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ import type { ProjectConfig } from "./config.js";
2
+ export type GateAssessmentOptions = {
3
+ stage: string;
4
+ module?: string;
5
+ threshold?: number;
6
+ acceptRisk?: string;
7
+ };
8
+ export type GateStatus = "READY" | "NEEDS_CONFIRMATION" | "BLOCKED" | "WAIVED";
9
+ export type GateCriterion = {
10
+ id: string;
11
+ label: string;
12
+ weight: number;
13
+ passed: boolean;
14
+ required: boolean;
15
+ evidence: string[];
16
+ gap?: string;
17
+ };
18
+ export type GateArtifact = {
19
+ key: string;
20
+ path: string;
21
+ exists: boolean;
22
+ bytes: number;
23
+ };
24
+ export type GateAssessment = {
25
+ version: 1;
26
+ runId: string;
27
+ stage: string;
28
+ module?: string;
29
+ threshold: number;
30
+ score: number;
31
+ status: GateStatus;
32
+ decision: "proceed" | "human-confirmation-required" | "blocked";
33
+ artifacts: GateArtifact[];
34
+ criteria: GateCriterion[];
35
+ blockers: string[];
36
+ gaps: string[];
37
+ waiver?: {
38
+ reason: string;
39
+ appliedAt: string;
40
+ };
41
+ nextAction: string;
42
+ };
43
+ export type GateAssessmentBundle = {
44
+ assessment: GateAssessment;
45
+ artifacts: {
46
+ dir: string;
47
+ jsonPath: string;
48
+ markdownPath: string;
49
+ waiverPath?: string;
50
+ };
51
+ markdown: string;
52
+ waiverMarkdown?: string;
53
+ };
54
+ export declare function writeGateAssessment(target: string, config: ProjectConfig, opts: GateAssessmentOptions): Promise<GateAssessmentBundle>;
55
+ export declare function gateThresholdForStage(config: ProjectConfig, stage: string): number | undefined;
56
+ export declare function buildGateAssessment(target: string, config: ProjectConfig, opts: GateAssessmentOptions): Promise<GateAssessmentBundle>;
@@ -0,0 +1,487 @@
1
+ import { mkdir, readFile, readdir, writeFile } from "node:fs/promises";
2
+ import { existsSync } from "node:fs";
3
+ import { dirname, join, resolve } from "node:path";
4
+ import { getWorkspacePath } from "./workspace-layout.js";
5
+ const DEFAULT_THRESHOLD = 9;
6
+ const MODULE_STAGES = new Set(["proposal", "spec", "design", "task", "coding", "smoke", "review", "ready", "verify", "acceptance", "archive"]);
7
+ const STAGE_INPUTS = {
8
+ prepare: [
9
+ { key: "project-config", path: (config) => getWorkspacePath(config, "projectConfig") },
10
+ { key: "system-spec", path: (config) => getWorkspacePath(config, "systemSpec") },
11
+ ],
12
+ proposal: [
13
+ { key: "project-config", path: (config) => getWorkspacePath(config, "projectConfig") },
14
+ { key: "system-spec", path: (config) => getWorkspacePath(config, "systemSpec") },
15
+ { key: "raw-manifest", path: (config) => getWorkspacePath(config, "rawsManifest") },
16
+ ],
17
+ spec: [
18
+ { key: "project-config", path: (config) => getWorkspacePath(config, "projectConfig") },
19
+ { key: "system-spec", path: (config) => getWorkspacePath(config, "systemSpec") },
20
+ { key: "proposal", moduleStage: "proposal" },
21
+ ],
22
+ design: [
23
+ { key: "project-config", path: (config) => getWorkspacePath(config, "projectConfig") },
24
+ { key: "system-spec", path: (config) => getWorkspacePath(config, "systemSpec") },
25
+ { key: "spec", moduleStage: "spec" },
26
+ ],
27
+ task: [
28
+ { key: "project-config", path: (config) => getWorkspacePath(config, "projectConfig") },
29
+ { key: "system-spec", path: (config) => getWorkspacePath(config, "systemSpec") },
30
+ { key: "proposal", moduleStage: "proposal" },
31
+ { key: "spec", moduleStage: "spec" },
32
+ { key: "design", moduleStage: "design" },
33
+ ],
34
+ coding: [
35
+ { key: "tasks", moduleStage: "tasks" },
36
+ ],
37
+ smoke: [
38
+ { key: "tasks", moduleStage: "tasks" },
39
+ ],
40
+ review: [
41
+ { key: "spec", moduleStage: "spec" },
42
+ { key: "design", moduleStage: "design" },
43
+ { key: "tasks", moduleStage: "tasks" },
44
+ { key: "smoke", moduleStage: "smoke" },
45
+ ],
46
+ ready: [
47
+ { key: "review", moduleStage: "review" },
48
+ ],
49
+ verify: [
50
+ { key: "ready", moduleStage: "ready" },
51
+ ],
52
+ acceptance: [
53
+ { key: "verify", moduleStage: "verify" },
54
+ ],
55
+ archive: [
56
+ { key: "acceptance", moduleStage: "acceptance" },
57
+ ],
58
+ };
59
+ const COMMON_CRITERIA = [
60
+ {
61
+ id: "GATE-INPUT-01",
62
+ label: "Required upstream artifacts exist and are non-empty.",
63
+ weight: 2,
64
+ required: true,
65
+ test: (ctx) => ctx.artifacts.every((artifact) => artifact.exists && artifact.bytes > 0),
66
+ evidence: (ctx) => ctx.artifacts.map((artifact) => `${artifact.key}: ${artifact.exists ? `${artifact.bytes} bytes` : "missing"} (${artifact.path})`),
67
+ gap: "One or more required upstream artifacts are missing or empty.",
68
+ },
69
+ {
70
+ id: "GATE-RULES-01",
71
+ label: "PROJECT-CONFIG.md and SYSTEM-SPEC.md constraints are available or explicitly not required for this stage.",
72
+ weight: 1,
73
+ required: true,
74
+ test: (ctx) => {
75
+ if (["coding", "smoke", "review", "ready", "verify", "acceptance", "archive"].includes(ctx.stage))
76
+ return true;
77
+ return hasContent(ctx, "project-config") && hasContent(ctx, "system-spec");
78
+ },
79
+ evidence: (ctx) => ["project-config", "system-spec"].map((key) => `${key}: ${hasContent(ctx, key) ? "present" : "missing"}`),
80
+ gap: "Project/system rules are not available for a stage that must obey them before handoff.",
81
+ },
82
+ {
83
+ id: "GATE-TEMPLATE-01",
84
+ label: "Upstream content is not placeholder-only or template filler.",
85
+ weight: 1,
86
+ required: true,
87
+ test: (ctx) => allPrimaryContent(ctx, (content) => {
88
+ const text = content.toLowerCase();
89
+ const placeholders = ["<fill-me>", "<project", "<module", "todo:", "tbd", "lorem ipsum"];
90
+ return !placeholders.some((placeholder) => text.includes(placeholder));
91
+ }),
92
+ evidence: (ctx) => primaryArtifacts(ctx).map((artifact) => `${artifact.key}: ${artifact.bytes} bytes`),
93
+ gap: "At least one upstream artifact still looks like a placeholder or template filler.",
94
+ },
95
+ {
96
+ id: "GATE-CONTENT-01",
97
+ label: "Upstream content has enough detail for reliable handoff.",
98
+ weight: 1,
99
+ test: (ctx) => {
100
+ const artifacts = primaryArtifacts(ctx);
101
+ if (artifacts.length === 0)
102
+ return true;
103
+ return artifacts.every((artifact) => wordCount(ctx.contentByKey.get(artifact.key) ?? "") >= 40);
104
+ },
105
+ evidence: (ctx) => primaryArtifacts(ctx).map((artifact) => `${artifact.key}: ${wordCount(ctx.contentByKey.get(artifact.key) ?? "")} words`),
106
+ gap: "At least one upstream artifact is very short; treat this as a quality gap unless the project explicitly accepts the risk.",
107
+ },
108
+ {
109
+ id: "GATE-TRACE-01",
110
+ label: "Claims trace to source, requirement, acceptance, design, task, issue, or evidence identifiers.",
111
+ weight: 1,
112
+ test: (ctx) => combinedContent(ctx).match(/\b(FR|NFR|AC|SPEC|DES|TASK|ISSUE|EVIDENCE|ADR|REQ)-?\d+\b/i) !== null ||
113
+ /traceability|source|evidence|acceptance|scenario/i.test(combinedContent(ctx)),
114
+ evidence: (ctx) => [`trace terms found: ${/traceability|source|evidence|acceptance|scenario/i.test(combinedContent(ctx)) ? "yes" : "no"}`],
115
+ gap: "Traceability is weak; the next stage may rely on chat memory instead of source-backed IDs or evidence.",
116
+ },
117
+ {
118
+ id: "GATE-UNCERTAINTY-01",
119
+ label: "Open questions, assumptions, risks, or blockers are explicit instead of silently resolved.",
120
+ weight: 1,
121
+ test: (ctx) => /open questions?|assumptions?|risks?|blockers?|constraints?|unknowns?|n\/a|none/i.test(combinedContent(ctx)),
122
+ evidence: (ctx) => [`uncertainty section marker found: ${/open questions?|assumptions?|risks?|blockers?|constraints?|unknowns?/i.test(combinedContent(ctx)) ? "yes" : "n/a or none marker required"}`],
123
+ gap: "Uncertainty handling is not explicit enough for a downstream stage to decide whether to continue or ask.",
124
+ },
125
+ ];
126
+ const STAGE_CRITERIA = {
127
+ design: [
128
+ {
129
+ id: "DESIGN-ENTRY-SPEC-01",
130
+ label: "Spec contains observable acceptance criteria.",
131
+ weight: 1,
132
+ required: true,
133
+ artifactKeys: ["spec"],
134
+ test: (ctx) => hasPattern(ctx, ["spec"], /acceptance criteria|验收|given\s+.*when\s+.*then|AC-?\d+/is),
135
+ evidence: () => ["spec acceptance marker required"],
136
+ gap: "Design cannot safely start until the spec exposes observable acceptance criteria.",
137
+ },
138
+ {
139
+ id: "DESIGN-ENTRY-SPEC-02",
140
+ label: "Spec covers edge, negative, boundary, or error scenarios.",
141
+ weight: 1,
142
+ artifactKeys: ["spec"],
143
+ test: (ctx) => hasPattern(ctx, ["spec"], /edge cases?|negative|boundary|error|failure|异常|边界/is),
144
+ evidence: () => ["spec edge/negative/boundary marker required"],
145
+ gap: "Spec lacks explicit non-happy-path coverage.",
146
+ },
147
+ {
148
+ id: "DESIGN-ENTRY-SPEC-03",
149
+ label: "Spec names NFR or quality attributes, with missing thresholds marked as 未指定 when needed.",
150
+ weight: 1,
151
+ artifactKeys: ["spec"],
152
+ test: (ctx) => hasPattern(ctx, ["spec"], /NFR|non-functional|performance|security|reliability|accessibility|observability|未指定|质量/is),
153
+ evidence: () => ["spec NFR/quality marker required"],
154
+ gap: "Spec does not expose quality attributes enough for design tradeoffs.",
155
+ },
156
+ ],
157
+ task: [
158
+ {
159
+ id: "TASK-ENTRY-DES-01",
160
+ label: "Design includes useful diagrams or explicitly states why diagrams are N/A.",
161
+ weight: 1,
162
+ artifactKeys: ["design"],
163
+ test: (ctx) => hasPattern(ctx, ["design"], /```mermaid|diagram|C4|sequence|state|data flow|flowchart|图|N\/A/is),
164
+ evidence: () => ["design diagram or N/A rationale marker required"],
165
+ gap: "Task breakdown needs a reviewable design view or explicit diagram N/A rationale.",
166
+ },
167
+ {
168
+ id: "TASK-ENTRY-DES-02",
169
+ label: "Design records decisions, tradeoffs, alternatives, or ADR references.",
170
+ weight: 1,
171
+ artifactKeys: ["design"],
172
+ test: (ctx) => hasPattern(ctx, ["design"], /trade-?offs?|alternatives?|ADR|decision|rationale|consequences|权衡|替代/is),
173
+ evidence: () => ["design decision/tradeoff marker required"],
174
+ gap: "Design lacks decision rationale for task planning.",
175
+ },
176
+ ],
177
+ coding: [
178
+ {
179
+ id: "CODING-ENTRY-TASK-01",
180
+ label: "Tasks use Kiro-style nested checkbox groups and subtasks.",
181
+ weight: 2,
182
+ required: true,
183
+ artifactKeys: ["tasks"],
184
+ test: (ctx) => hasPattern(ctx, ["tasks"], /^- \[ \] \d+\. .+$/m) && hasPattern(ctx, ["tasks"], /^\s+- \[ \] \d+\.\d+ .+$/m),
185
+ evidence: () => ["task list must contain '- [ ] 1.' and indented '- [ ] 1.1' items"],
186
+ gap: "Coding should not start from flat or vague tasks; use Kiro-style groups and subtasks.",
187
+ },
188
+ {
189
+ id: "CODING-ENTRY-TASK-02",
190
+ label: "Each implementation slice has verification or evidence hooks.",
191
+ weight: 1,
192
+ required: true,
193
+ artifactKeys: ["tasks"],
194
+ test: (ctx) => hasPattern(ctx, ["tasks"], /verification|evidence|test command|pnpm|npm|pytest|vitest|playwright|验证|证据/is),
195
+ evidence: () => ["task verification/evidence marker required"],
196
+ gap: "Tasks do not define how each slice proves completion.",
197
+ },
198
+ ],
199
+ smoke: [
200
+ {
201
+ id: "SMOKE-ENTRY-TEST-01",
202
+ label: "Test basis is traceable before local smoke claims pass.",
203
+ weight: 2,
204
+ required: true,
205
+ artifactKeys: ["tasks"],
206
+ test: (ctx) => hasPattern(ctx, ["tasks"], /test basis|acceptance|AC-?\d+|FR-?\d+|scenario|regression|验收|回归/is),
207
+ evidence: () => ["tasks must link tests to acceptance/scenario/regression basis"],
208
+ gap: "Smoke cannot treat passing commands as meaningful without a traceable test basis.",
209
+ },
210
+ ],
211
+ review: [
212
+ {
213
+ id: "REVIEW-ENTRY-TEST-01",
214
+ label: "Smoke evidence distinguishes passed, failed, skipped, and unrun checks.",
215
+ weight: 1,
216
+ required: true,
217
+ artifactKeys: ["smoke"],
218
+ test: (ctx) => hasPattern(ctx, ["smoke"], /passed|failed|skipped|unrun|exit status|command|evidence|通过|失败|跳过/is),
219
+ evidence: () => ["smoke pass/fail/skipped/unrun markers required"],
220
+ gap: "Review needs precise test result status, not only a generic all-passed claim.",
221
+ },
222
+ ],
223
+ };
224
+ function unknownStageCriterion(stage) {
225
+ return {
226
+ id: "GATE-STAGE-00",
227
+ label: `Stage '${stage}' is known to the gate assessment contract.`,
228
+ weight: 2,
229
+ required: true,
230
+ test: () => false,
231
+ evidence: () => [`known stages: ${Object.keys(STAGE_INPUTS).join(", ")}`],
232
+ gap: "Unknown stage; define its required inputs before using gate assessment.",
233
+ };
234
+ }
235
+ export async function writeGateAssessment(target, config, opts) {
236
+ const bundle = await buildGateAssessment(target, config, opts);
237
+ await mkdir(bundle.artifacts.dir, { recursive: true });
238
+ await writeFile(bundle.artifacts.jsonPath, `${JSON.stringify(bundle.assessment, null, 2)}\n`, "utf8");
239
+ await writeFile(bundle.artifacts.markdownPath, bundle.markdown, "utf8");
240
+ if (bundle.artifacts.waiverPath && bundle.waiverMarkdown) {
241
+ await mkdir(dirname(bundle.artifacts.waiverPath), { recursive: true });
242
+ await writeFile(bundle.artifacts.waiverPath, bundle.waiverMarkdown, "utf8");
243
+ }
244
+ return bundle;
245
+ }
246
+ export function gateThresholdForStage(config, stage) {
247
+ const key = safeSlug(stage);
248
+ const stageThreshold = config.gates?.thresholds?.[key] ?? config.gates?.thresholds?.[stage];
249
+ if (typeof stageThreshold === "number")
250
+ return stageThreshold;
251
+ return config.gates?.defaultThreshold;
252
+ }
253
+ export async function buildGateAssessment(target, config, opts) {
254
+ const stage = safeSlug(opts.stage || "design");
255
+ const threshold = normalizeThreshold(opts.threshold);
256
+ const moduleId = await resolveModuleId(target, config, stage, opts.module);
257
+ const runId = createGateRunId();
258
+ const artifacts = await readGateArtifacts(target, config, stage, moduleId);
259
+ const contentByKey = new Map();
260
+ for (const artifact of artifacts) {
261
+ if (!artifact.exists)
262
+ continue;
263
+ contentByKey.set(artifact.key, await readFile(resolve(target, artifact.path), "utf8"));
264
+ }
265
+ const ctx = { stage, artifacts, contentByKey };
266
+ const specs = [
267
+ ...(!STAGE_INPUTS[stage] ? [unknownStageCriterion(stage)] : []),
268
+ ...COMMON_CRITERIA,
269
+ ...(STAGE_CRITERIA[stage] ?? []),
270
+ ];
271
+ const criteria = specs.map((spec) => {
272
+ const passed = spec.test(ctx);
273
+ return {
274
+ id: spec.id,
275
+ label: spec.label,
276
+ weight: spec.weight,
277
+ passed,
278
+ required: spec.required === true,
279
+ evidence: spec.evidence(ctx),
280
+ ...(passed ? {} : { gap: spec.gap }),
281
+ };
282
+ });
283
+ const total = criteria.reduce((sum, criterion) => sum + criterion.weight, 0);
284
+ const earned = criteria.filter((criterion) => criterion.passed).reduce((sum, criterion) => sum + criterion.weight, 0);
285
+ const score = total === 0 ? 10 : roundScore((earned / total) * 10);
286
+ const blockers = criteria
287
+ .filter((criterion) => criterion.required && !criterion.passed)
288
+ .map((criterion) => `${criterion.id}: ${criterion.gap ?? criterion.label}`);
289
+ const gaps = criteria.filter((criterion) => !criterion.passed).map((criterion) => `${criterion.id}: ${criterion.gap ?? criterion.label}`);
290
+ const belowThreshold = score < threshold;
291
+ const waiverAllowed = blockers.length === 0 && belowThreshold && Boolean(opts.acceptRisk);
292
+ const status = blockers.length > 0
293
+ ? "BLOCKED"
294
+ : waiverAllowed
295
+ ? "WAIVED"
296
+ : belowThreshold
297
+ ? "NEEDS_CONFIRMATION"
298
+ : "READY";
299
+ const decision = status === "READY" || status === "WAIVED"
300
+ ? "proceed"
301
+ : status === "NEEDS_CONFIRMATION"
302
+ ? "human-confirmation-required"
303
+ : "blocked";
304
+ const waiver = waiverAllowed ? { reason: opts.acceptRisk, appliedAt: new Date().toISOString() } : undefined;
305
+ const assessment = {
306
+ version: 1,
307
+ runId,
308
+ stage,
309
+ ...(moduleId ? { module: moduleId } : {}),
310
+ threshold,
311
+ score,
312
+ status,
313
+ decision,
314
+ artifacts,
315
+ criteria,
316
+ blockers,
317
+ gaps,
318
+ ...(waiver ? { waiver } : {}),
319
+ nextAction: nextActionFor(status),
320
+ };
321
+ const dir = resolve(target, getWorkspacePath(config, "evidenceRoot"), "gates", runId);
322
+ const waiverPath = waiver ? join(dir, "risk-acceptance.md") : undefined;
323
+ return {
324
+ assessment,
325
+ artifacts: {
326
+ dir,
327
+ jsonPath: join(dir, "gate-assessment.json"),
328
+ markdownPath: join(dir, "gate-assessment.md"),
329
+ ...(waiverPath ? { waiverPath } : {}),
330
+ },
331
+ markdown: renderGateAssessmentMarkdown(assessment),
332
+ ...(waiver ? { waiverMarkdown: renderWaiverMarkdown(assessment) } : {}),
333
+ };
334
+ }
335
+ async function resolveModuleId(target, config, stage, requested) {
336
+ if (!MODULE_STAGES.has(stage))
337
+ return undefined;
338
+ if (requested)
339
+ return requested;
340
+ const modulesRoot = resolve(target, getWorkspacePath(config, "modulesRoot"));
341
+ try {
342
+ const entries = (await readdir(modulesRoot, { withFileTypes: true }))
343
+ .filter((entry) => entry.isDirectory() && !entry.name.startsWith("_"))
344
+ .map((entry) => entry.name);
345
+ if (entries.length === 1)
346
+ return entries[0];
347
+ }
348
+ catch {
349
+ // Missing modules root is handled as missing artifacts by the assessment.
350
+ }
351
+ return undefined;
352
+ }
353
+ async function readGateArtifacts(target, config, stage, moduleId) {
354
+ const specs = STAGE_INPUTS[stage] ?? [];
355
+ const artifacts = [];
356
+ for (const spec of specs) {
357
+ const path = spec.moduleStage
358
+ ? moduleStagePath(config, spec.moduleStage, moduleId)
359
+ : spec.path?.(config, moduleId);
360
+ if (!path) {
361
+ artifacts.push({ key: spec.key, path: "<module-required>", exists: false, bytes: 0 });
362
+ continue;
363
+ }
364
+ const abs = resolve(target, path);
365
+ const exists = existsSync(abs);
366
+ artifacts.push({
367
+ key: spec.key,
368
+ path,
369
+ exists,
370
+ bytes: exists ? Buffer.byteLength(await readFile(abs, "utf8")) : 0,
371
+ });
372
+ }
373
+ return artifacts;
374
+ }
375
+ function moduleStagePath(config, stage, moduleId) {
376
+ if (!moduleId)
377
+ return undefined;
378
+ return join(getWorkspacePath(config, "modulesRoot"), moduleId, `${stage}.md`);
379
+ }
380
+ function hasContent(ctx, key) {
381
+ return (ctx.contentByKey.get(key)?.trim().length ?? 0) > 0;
382
+ }
383
+ function primaryArtifacts(ctx) {
384
+ return ctx.artifacts.filter((artifact) => !["project-config", "system-spec", "raw-manifest"].includes(artifact.key));
385
+ }
386
+ function allPrimaryContent(ctx, test) {
387
+ const artifacts = primaryArtifacts(ctx);
388
+ if (artifacts.length === 0)
389
+ return ctx.artifacts.every((artifact) => artifact.exists && artifact.bytes > 0);
390
+ return artifacts.every((artifact) => {
391
+ const content = ctx.contentByKey.get(artifact.key);
392
+ return typeof content === "string" && test(content);
393
+ });
394
+ }
395
+ function combinedContent(ctx) {
396
+ return [...ctx.contentByKey.values()].join("\n\n");
397
+ }
398
+ function hasPattern(ctx, keys, pattern) {
399
+ return keys.some((key) => pattern.test(ctx.contentByKey.get(key) ?? ""));
400
+ }
401
+ function wordCount(content) {
402
+ return content.split(/\s+/).filter(Boolean).length;
403
+ }
404
+ function normalizeThreshold(value) {
405
+ if (typeof value !== "number" || Number.isNaN(value))
406
+ return DEFAULT_THRESHOLD;
407
+ return Math.min(10, Math.max(0, value));
408
+ }
409
+ function roundScore(value) {
410
+ return Math.round(value * 10) / 10;
411
+ }
412
+ function nextActionFor(status) {
413
+ if (status === "READY")
414
+ return "Proceed to the requested stage with the recorded assessment evidence.";
415
+ if (status === "WAIVED")
416
+ return "Proceed with the accepted risk and carry the gaps into the next stage output.";
417
+ if (status === "NEEDS_CONFIRMATION")
418
+ return "Ask for human confirmation, improve upstream artifacts, or rerun with --accept-risk and a concrete reason.";
419
+ return "Do not start the stage; fix missing required artifacts or required criteria first.";
420
+ }
421
+ function renderGateAssessmentMarkdown(assessment) {
422
+ return [
423
+ "# Stage Gate Assessment",
424
+ "",
425
+ `- Stage: \`${assessment.stage}\``,
426
+ ...(assessment.module ? [`- Module: \`${assessment.module}\``] : []),
427
+ `- Score: ${assessment.score}/10`,
428
+ `- Threshold: ${assessment.threshold}/10`,
429
+ `- Status: \`${assessment.status}\``,
430
+ `- Decision: \`${assessment.decision}\``,
431
+ `- Next action: ${assessment.nextAction}`,
432
+ "",
433
+ "## Artifacts",
434
+ "",
435
+ "| Key | Path | Status | Bytes |",
436
+ "| --- | --- | --- | --- |",
437
+ ...assessment.artifacts.map((artifact) => `| ${artifact.key} | \`${artifact.path}\` | ${artifact.exists ? "present" : "missing"} | ${artifact.bytes} |`),
438
+ "",
439
+ "## Criteria",
440
+ "",
441
+ "| ID | Result | Required | Weight | Gap | Evidence |",
442
+ "| --- | --- | --- | --- | --- | --- |",
443
+ ...assessment.criteria.map((criterion) => `| ${criterion.id} | ${criterion.passed ? "PASS" : "FAIL"} | ${criterion.required ? "yes" : "no"} | ${criterion.weight} | ${criterion.gap ?? ""} | ${criterion.evidence.join("<br>")} |`),
444
+ "",
445
+ "## Blockers",
446
+ "",
447
+ ...(assessment.blockers.length > 0 ? assessment.blockers.map((blocker) => `- ${blocker}`) : ["- none"]),
448
+ "",
449
+ "## Gaps",
450
+ "",
451
+ ...(assessment.gaps.length > 0 ? assessment.gaps.map((gap) => `- ${gap}`) : ["- none"]),
452
+ ...(assessment.waiver ? [
453
+ "",
454
+ "## Risk Acceptance",
455
+ "",
456
+ `- Reason: ${assessment.waiver.reason}`,
457
+ `- Applied at: ${assessment.waiver.appliedAt}`,
458
+ ] : []),
459
+ "",
460
+ ].join("\n");
461
+ }
462
+ function renderWaiverMarkdown(assessment) {
463
+ return [
464
+ "# Risk Acceptance",
465
+ "",
466
+ `- Stage: \`${assessment.stage}\``,
467
+ ...(assessment.module ? [`- Module: \`${assessment.module}\``] : []),
468
+ `- Score: ${assessment.score}/10`,
469
+ `- Threshold: ${assessment.threshold}/10`,
470
+ `- Reason: ${assessment.waiver?.reason ?? ""}`,
471
+ `- Applied at: ${assessment.waiver?.appliedAt ?? ""}`,
472
+ "",
473
+ "## Accepted Gaps",
474
+ "",
475
+ ...(assessment.gaps.length > 0 ? assessment.gaps.map((gap) => `- ${gap}`) : ["- none"]),
476
+ "",
477
+ "This waiver does not convert missing required artifacts into PASS. It only records an explicit human risk decision for quality gaps that are below the configured threshold.",
478
+ "",
479
+ ].join("\n");
480
+ }
481
+ function createGateRunId(now = new Date()) {
482
+ return now.toISOString().replace(/[:.]/g, "-");
483
+ }
484
+ function safeSlug(value) {
485
+ return value.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "");
486
+ }
487
+ //# sourceMappingURL=stage-quality.js.map