@captain_z/zsk 1.8.2 → 1.8.4

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 (57) hide show
  1. package/dist/bin.js +4 -0
  2. package/dist/bin.js.map +1 -1
  3. package/dist/commands/add-flow.d.ts +3 -7
  4. package/dist/commands/add-flow.js +7 -59
  5. package/dist/commands/add-flow.js.map +1 -1
  6. package/dist/commands/add.js +25 -104
  7. package/dist/commands/add.js.map +1 -1
  8. package/dist/commands/check.js +184 -8
  9. package/dist/commands/check.js.map +1 -1
  10. package/dist/commands/gate.d.ts +2 -0
  11. package/dist/commands/gate.js +2 -0
  12. package/dist/commands/gate.js.map +1 -1
  13. package/dist/core/prepare-sync.d.ts +2 -31
  14. package/dist/core/prepare-sync.js +119 -136
  15. package/dist/core/prepare-sync.js.map +1 -1
  16. package/dist/core/profile-bundle-installation.d.ts +55 -0
  17. package/dist/core/profile-bundle-installation.js +170 -0
  18. package/dist/core/profile-bundle-installation.js.map +1 -0
  19. package/dist/core/source-snapshot-adapters.d.ts +59 -0
  20. package/dist/core/source-snapshot-adapters.js +82 -0
  21. package/dist/core/source-snapshot-adapters.js.map +1 -0
  22. package/dist/core/staffing-plan.d.ts +7 -1
  23. package/dist/core/staffing-plan.js +186 -29
  24. package/dist/core/staffing-plan.js.map +1 -1
  25. package/dist/core/stage-clarity-verification.d.ts +31 -0
  26. package/dist/core/stage-clarity-verification.js +313 -0
  27. package/dist/core/stage-clarity-verification.js.map +1 -0
  28. package/dist/core/stage-quality-artifacts.d.ts +15 -0
  29. package/dist/core/stage-quality-artifacts.js +421 -0
  30. package/dist/core/stage-quality-artifacts.js.map +1 -0
  31. package/dist/core/stage-quality-contracts.d.ts +86 -0
  32. package/dist/core/stage-quality-contracts.js +2 -0
  33. package/dist/core/stage-quality-contracts.js.map +1 -0
  34. package/dist/core/stage-quality-criteria.d.ts +9 -0
  35. package/dist/core/stage-quality-criteria.js +323 -0
  36. package/dist/core/stage-quality-criteria.js.map +1 -0
  37. package/dist/core/stage-quality-rendering.d.ts +13 -0
  38. package/dist/core/stage-quality-rendering.js +122 -0
  39. package/dist/core/stage-quality-rendering.js.map +1 -0
  40. package/dist/core/stage-quality.d.ts +5 -52
  41. package/dist/core/stage-quality.js +40 -432
  42. package/dist/core/stage-quality.js.map +1 -1
  43. package/dist/core/template-registry.js +6 -0
  44. package/dist/core/template-registry.js.map +1 -1
  45. package/package.json +2 -2
  46. package/templates/module/frontend-module/design.md +25 -3
  47. package/templates/module/frontend-module/proposal.md +8 -0
  48. package/templates/module/frontend-module/spec.md +16 -0
  49. package/templates/module/frontend-module/tasks.md +23 -7
  50. package/templates/project-init/.zsk/config.yaml +33 -0
  51. package/templates/project-init/.zsk/docs/PROJECT-CONFIG.md +43 -0
  52. package/templates/project-init/.zsk/docs/SYSTEM-SPEC.md +23 -1
  53. package/templates/project-init/.zsk/raws/index.md +19 -0
  54. package/templates/project-init/.zsk/raws/prepare/design/index.md +18 -0
  55. package/templates/project-init/.zsk/raws/prepare/index.md +33 -0
  56. package/templates/project-init/.zsk/raws/prepare/ux/index.md +19 -0
  57. package/templates/project-init/.zsk/roles.yaml +11 -11
@@ -1,237 +1,12 @@
1
- import { mkdir, readFile, readdir, writeFile } from "node:fs/promises";
2
- import { existsSync } from "node:fs";
1
+ import { randomUUID } from "node:crypto";
2
+ import { mkdir, writeFile } from "node:fs/promises";
3
3
  import { dirname, join, resolve } from "node:path";
4
+ import { listStageQualityInputStages, normalizeReviewTargetPath, readStageQualityArtifactContents, readStageQualityArtifacts, resolveStageQualityModuleId, reviewModeForReviewTarget, } from "./stage-quality-artifacts.js";
5
+ import { DEFAULT_STAGE_QUALITY_THRESHOLD } from "./stage-quality-contracts.js";
6
+ import { evaluateStageQualityCriteria } from "./stage-quality-criteria.js";
7
+ import { renderGateAssessmentMarkdown, renderWaiverMarkdown, summarizeStageQualityDecision, } from "./stage-quality-rendering.js";
4
8
  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
- }
9
+ export { normalizeReviewTargetPath, reviewModeForReviewTarget };
235
10
  export async function writeGateAssessment(target, config, opts) {
236
11
  const bundle = await buildGateAssessment(target, config, opts);
237
12
  await mkdir(bundle.artifacts.dir, { recursive: true });
@@ -253,73 +28,47 @@ export function gateThresholdForStage(config, stage) {
253
28
  export async function buildGateAssessment(target, config, opts) {
254
29
  const stage = safeSlug(opts.stage || "design");
255
30
  const threshold = normalizeThreshold(opts.threshold);
256
- const moduleId = await resolveModuleId(target, config, stage, opts.module);
31
+ const moduleId = await resolveStageQualityModuleId(target, config, stage, opts.module);
32
+ const reviewTarget = normalizeReviewTargetPath(target, opts.reviewTarget);
33
+ const reviewMode = reviewModeForReviewTarget(reviewTarget);
257
34
  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
- };
35
+ const artifacts = await readStageQualityArtifacts({
36
+ target,
37
+ config,
38
+ stage,
39
+ moduleId,
40
+ issue: opts.issue,
41
+ reviewTarget,
42
+ });
43
+ const contentByKey = await readStageQualityArtifactContents(target, artifacts);
44
+ const criteria = evaluateStageQualityCriteria({
45
+ stage,
46
+ reviewTarget,
47
+ reviewMode,
48
+ artifacts,
49
+ contentByKey,
50
+ knownStages: listStageQualityInputStages(),
282
51
  });
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;
52
+ const summary = summarizeStageQualityDecision(criteria, threshold, opts.acceptRisk);
305
53
  const assessment = {
306
54
  version: 1,
307
55
  runId,
308
56
  stage,
309
57
  ...(moduleId ? { module: moduleId } : {}),
58
+ ...(reviewTarget ? { reviewTarget, reviewMode } : {}),
310
59
  threshold,
311
- score,
312
- status,
313
- decision,
60
+ score: summary.score,
61
+ status: summary.status,
62
+ decision: summary.decision,
314
63
  artifacts,
315
64
  criteria,
316
- blockers,
317
- gaps,
318
- ...(waiver ? { waiver } : {}),
319
- nextAction: nextActionFor(status),
65
+ blockers: summary.blockers,
66
+ gaps: summary.gaps,
67
+ ...(summary.waiver ? { waiver: summary.waiver } : {}),
68
+ nextAction: summary.nextAction,
320
69
  };
321
70
  const dir = resolve(target, getWorkspacePath(config, "evidenceRoot"), "gates", runId);
322
- const waiverPath = waiver ? join(dir, "risk-acceptance.md") : undefined;
71
+ const waiverPath = summary.waiver ? join(dir, "risk-acceptance.md") : undefined;
323
72
  return {
324
73
  assessment,
325
74
  artifacts: {
@@ -329,158 +78,17 @@ export async function buildGateAssessment(target, config, opts) {
329
78
  ...(waiverPath ? { waiverPath } : {}),
330
79
  },
331
80
  markdown: renderGateAssessmentMarkdown(assessment),
332
- ...(waiver ? { waiverMarkdown: renderWaiverMarkdown(assessment) } : {}),
81
+ ...(summary.waiver ? { waiverMarkdown: renderWaiverMarkdown(assessment) } : {}),
333
82
  };
334
83
  }
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;
84
+ export function createGateRunId(now = new Date()) {
85
+ return `${now.toISOString().replace(/[:.]/g, "-")}-${randomUUID().slice(0, 12)}`;
403
86
  }
404
87
  function normalizeThreshold(value) {
405
88
  if (typeof value !== "number" || Number.isNaN(value))
406
- return DEFAULT_THRESHOLD;
89
+ return DEFAULT_STAGE_QUALITY_THRESHOLD;
407
90
  return Math.min(10, Math.max(0, value));
408
91
  }
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
92
  function safeSlug(value) {
485
93
  return value.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "");
486
94
  }
@@ -1 +1 @@
1
- {"version":3,"file":"stage-quality.js","sourceRoot":"","sources":["../../src/core/stage-quality.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stage-quality.js","sourceRoot":"","sources":["../../src/core/stage-quality.ts"],"names":[],"mappings":"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"}
@@ -106,6 +106,12 @@ const FOUNDER_OS_TEMPLATE = {
106
106
  gate: "configured sources are acquired, indexed, or explicitly blocked",
107
107
  defaultRoles: ["lead-integrator", "product-owner", "backend-engineer", "design-specialist", "ux-specialist", "qa-engineer", "auth-fetch-agent", "verifier"],
108
108
  },
109
+ {
110
+ name: "preproposal",
111
+ skill: "preproposal",
112
+ gate: "brief intake has reviewed product direction, roadmap/decomposition, UX readiness, and proposal-ready raw resources",
113
+ defaultRoles: ["lead-integrator", "product-owner", "business-analyst", "planner", "ux-specialist", "design-specialist", "architect", "qa-engineer", "researcher", "verifier"],
114
+ },
109
115
  {
110
116
  name: "proposal",
111
117
  skill: "proposal",
@@ -1 +1 @@
1
- {"version":3,"file":"template-registry.js","sourceRoot":"","sources":["../../src/core/template-registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"template-registry.js","sourceRoot":"","sources":["../../src/core/template-registry.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@captain_z/zsk",
3
- "version": "1.8.2",
3
+ "version": "1.8.4",
4
4
  "description": "ZNorth Standard Kit — CLI installer for zsk skill bundles (npx @captain_z/zsk add)",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -20,7 +20,7 @@
20
20
  "commander": "^12.1.0",
21
21
  "picocolors": "^1.1.1",
22
22
  "yaml": "^2.7.0",
23
- "@captain_z/zsk-skills": "1.8.2"
23
+ "@captain_z/zsk-skills": "1.8.4"
24
24
  },
25
25
  "devDependencies": {
26
26
  "@types/node": "^22.10.0",