@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,206 @@
1
+ import { type ProjectConfig } from "./config.js";
2
+ import { type GateAssessment } from "./stage-quality.js";
3
+ export type StaffingPlanOptions = {
4
+ stage?: string;
5
+ skill?: string;
6
+ surface?: string;
7
+ runId?: string;
8
+ module?: string;
9
+ gateThreshold?: number;
10
+ acceptRisk?: string;
11
+ };
12
+ export type StaffingRole = {
13
+ role: string;
14
+ subagentType: string;
15
+ stage: string;
16
+ skill: string;
17
+ active: boolean;
18
+ route: string;
19
+ activation: string;
20
+ reason: string;
21
+ owns: string[];
22
+ doesNotOwn: string[];
23
+ inputs: string[];
24
+ writeScope: string[];
25
+ outputs: string[];
26
+ evidenceRequired: string[];
27
+ forbiddenDecisions: string[];
28
+ handoffTo: string;
29
+ stopCondition: string;
30
+ mustAskWhen: string[];
31
+ };
32
+ export type StaffingOrchestration = {
33
+ requestedSurface: string;
34
+ selectedSurface: "auto" | "native" | "omx" | "sequential";
35
+ mode: string;
36
+ scale: string;
37
+ dispatchRecommended: boolean;
38
+ laneIndependence: "parallel-capable" | "sequential";
39
+ reason: string;
40
+ fallbackOrder: string[];
41
+ maxParallelLanes: number;
42
+ overDispatchGuards: string[];
43
+ };
44
+ export type StaffingEmitPacket = {
45
+ event: "zsk.subagent.request";
46
+ version: 1;
47
+ payload: {
48
+ runId: string;
49
+ packetId: string;
50
+ stage: string;
51
+ skill: string;
52
+ role: string;
53
+ subagentType: string;
54
+ active: boolean;
55
+ route: string;
56
+ activation: string;
57
+ prompt: string;
58
+ inputs: string[];
59
+ writeScope: string[];
60
+ outputs: string[];
61
+ evidenceRequired: string[];
62
+ forbiddenDecisions: string[];
63
+ handoffTo: string;
64
+ stopCondition: string;
65
+ constraints: string[];
66
+ durability: {
67
+ ledgerPath: string;
68
+ statusPath: string;
69
+ status: "pending";
70
+ attempt: number;
71
+ createdAt: string;
72
+ heartbeatIntervalMs: number;
73
+ staleAfterMs: number;
74
+ deadlineAt: string;
75
+ maxAttempts: number;
76
+ onTimeout: "fallback-to-leader-sequential";
77
+ resumeHint: string;
78
+ };
79
+ };
80
+ };
81
+ export type StaffingPacketStatus = {
82
+ packetId: string;
83
+ runId: string;
84
+ stage: string;
85
+ skill: string;
86
+ role: string;
87
+ subagentType: string;
88
+ route: string;
89
+ status: "pending" | "running" | "completed" | "blocked" | "failed" | "waived" | "stale";
90
+ attempt: number;
91
+ createdAt: string;
92
+ updatedAt: string;
93
+ lastHeartbeatAt: string;
94
+ deadlineAt: string;
95
+ staleAfterMs: number;
96
+ maxAttempts: number;
97
+ fallbackRoute: "leader-sequential";
98
+ statusPath: string;
99
+ evidence: string[];
100
+ blocker?: string;
101
+ };
102
+ export type StaffingEmitLedger = {
103
+ version: 1;
104
+ runId: string;
105
+ stage: string;
106
+ skill: string;
107
+ ledgerPath: string;
108
+ packetStatusDir: string;
109
+ timeoutPolicy: {
110
+ heartbeatIntervalMs: number;
111
+ staleAfterMs: number;
112
+ maxAttempts: number;
113
+ onTimeout: "fallback-to-leader-sequential";
114
+ };
115
+ packets: StaffingPacketStatus[];
116
+ };
117
+ export type StaffingStageGate = {
118
+ runId: string;
119
+ stage: string;
120
+ module?: string;
121
+ status: GateAssessment["status"];
122
+ decision: GateAssessment["decision"];
123
+ score: number;
124
+ threshold: number;
125
+ blockers: string[];
126
+ gaps: string[];
127
+ assessmentPath: string;
128
+ markdownPath: string;
129
+ waiverPath?: string;
130
+ };
131
+ export type StaffingPlan = {
132
+ runId: string;
133
+ stage: string;
134
+ skill: string;
135
+ module?: string;
136
+ surface: string;
137
+ stageGate?: StaffingStageGate;
138
+ orchestration: StaffingOrchestration;
139
+ uncertaintyPolicy: string[];
140
+ roles: StaffingRole[];
141
+ emitPackets: StaffingEmitPacket[];
142
+ };
143
+ export type StaffingPlanArtifacts = {
144
+ runId: string;
145
+ dir: string;
146
+ jsonPath: string;
147
+ markdownPath: string;
148
+ emitPath: string;
149
+ ledgerPath: string;
150
+ packetStatusDir: string;
151
+ };
152
+ export type StaffingPlanBundle = {
153
+ artifacts: StaffingPlanArtifacts;
154
+ plan: StaffingPlan;
155
+ markdown: string;
156
+ emitJsonl: string;
157
+ ledger: StaffingEmitLedger;
158
+ };
159
+ export type StaffingInspectOptions = {
160
+ runId?: string;
161
+ now?: Date;
162
+ };
163
+ export type StaffingInspectResult = {
164
+ runId: string;
165
+ ledgerPath: string;
166
+ total: number;
167
+ stale: number;
168
+ pending: number;
169
+ running: number;
170
+ completed: number;
171
+ blocked: number;
172
+ failed: number;
173
+ waived: number;
174
+ };
175
+ type RoleContract = {
176
+ owns: string[];
177
+ doesNotOwn: string[];
178
+ outputs: string[];
179
+ evidenceRequired: string[];
180
+ forbiddenDecisions: string[];
181
+ stopCondition: string;
182
+ };
183
+ type RolePoolRole = {
184
+ role: string;
185
+ subagentType?: string;
186
+ reason?: string;
187
+ stages: string[];
188
+ skills: string[];
189
+ lanes: string[];
190
+ required: boolean;
191
+ remoteSources: boolean;
192
+ activation?: string;
193
+ extraInputs: string[];
194
+ writeScope: string[];
195
+ outputs: string[];
196
+ evidenceRequired: string[];
197
+ contract?: Partial<RoleContract>;
198
+ };
199
+ type RolePool = {
200
+ roles: Record<string, RolePoolRole>;
201
+ };
202
+ export declare function writeStaffingPlan(target: string, config: ProjectConfig, opts?: StaffingPlanOptions): Promise<StaffingPlanBundle>;
203
+ export declare function buildStaffingPlan(target: string, config: ProjectConfig, opts?: StaffingPlanOptions, rolePool?: RolePool): StaffingPlanBundle;
204
+ export declare function inspectStaffingRun(target: string, config: ProjectConfig, opts?: StaffingInspectOptions): Promise<StaffingInspectResult>;
205
+ export declare function createStaffingRunId(now?: Date): string;
206
+ export {};