felenova-backlog 0.1.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/README.md +58 -0
- package/bin/backlog.js +2 -0
- package/dist/_core/criteria.d.ts +13 -0
- package/dist/_core/criteria.js +44 -0
- package/dist/_core/criteria.js.map +1 -0
- package/dist/_core/errors.d.ts +53 -0
- package/dist/_core/errors.js +91 -0
- package/dist/_core/errors.js.map +1 -0
- package/dist/_core/index.d.ts +24 -0
- package/dist/_core/index.js +27 -0
- package/dist/_core/index.js.map +1 -0
- package/dist/_core/loop.d.ts +73 -0
- package/dist/_core/loop.js +46 -0
- package/dist/_core/loop.js.map +1 -0
- package/dist/_core/markdown/items.d.ts +35 -0
- package/dist/_core/markdown/items.js +256 -0
- package/dist/_core/markdown/items.js.map +1 -0
- package/dist/_core/markdown/matrix.d.ts +20 -0
- package/dist/_core/markdown/matrix.js +147 -0
- package/dist/_core/markdown/matrix.js.map +1 -0
- package/dist/_core/markdown/track.d.ts +71 -0
- package/dist/_core/markdown/track.js +79 -0
- package/dist/_core/markdown/track.js.map +1 -0
- package/dist/_core/matrix-status.d.ts +9 -0
- package/dist/_core/matrix-status.js +31 -0
- package/dist/_core/matrix-status.js.map +1 -0
- package/dist/_core/matrix.d.ts +46 -0
- package/dist/_core/matrix.js +0 -0
- package/dist/_core/matrix.js.map +1 -0
- package/dist/_core/permissions.d.ts +14 -0
- package/dist/_core/permissions.js +87 -0
- package/dist/_core/permissions.js.map +1 -0
- package/dist/_core/promote.d.ts +20 -0
- package/dist/_core/promote.js +47 -0
- package/dist/_core/promote.js.map +1 -0
- package/dist/_core/ready.d.ts +8 -0
- package/dist/_core/ready.js +22 -0
- package/dist/_core/ready.js.map +1 -0
- package/dist/_core/review.d.ts +49 -0
- package/dist/_core/review.js +137 -0
- package/dist/_core/review.js.map +1 -0
- package/dist/_core/schema.d.ts +636 -0
- package/dist/_core/schema.js +304 -0
- package/dist/_core/schema.js.map +1 -0
- package/dist/_core/ship.d.ts +23 -0
- package/dist/_core/ship.js +31 -0
- package/dist/_core/ship.js.map +1 -0
- package/dist/_core/spec-diff.d.ts +19 -0
- package/dist/_core/spec-diff.js +25 -0
- package/dist/_core/spec-diff.js.map +1 -0
- package/dist/_core/status.d.ts +7 -0
- package/dist/_core/status.js +25 -0
- package/dist/_core/status.js.map +1 -0
- package/dist/_core/util/deep-equal.d.ts +8 -0
- package/dist/_core/util/deep-equal.js +31 -0
- package/dist/_core/util/deep-equal.js.map +1 -0
- package/dist/api.d.ts +46 -0
- package/dist/api.js +104 -0
- package/dist/api.js.map +1 -0
- package/dist/cache.d.ts +53 -0
- package/dist/cache.js +114 -0
- package/dist/cache.js.map +1 -0
- package/dist/commands/common.d.ts +59 -0
- package/dist/commands/common.js +94 -0
- package/dist/commands/common.js.map +1 -0
- package/dist/commands/export.d.ts +20 -0
- package/dist/commands/export.js +56 -0
- package/dist/commands/export.js.map +1 -0
- package/dist/commands/matrix.d.ts +16 -0
- package/dist/commands/matrix.js +48 -0
- package/dist/commands/matrix.js.map +1 -0
- package/dist/commands/next.d.ts +14 -0
- package/dist/commands/next.js +30 -0
- package/dist/commands/next.js.map +1 -0
- package/dist/commands/promote.d.ts +15 -0
- package/dist/commands/promote.js +172 -0
- package/dist/commands/promote.js.map +1 -0
- package/dist/commands/report.d.ts +18 -0
- package/dist/commands/report.js +45 -0
- package/dist/commands/report.js.map +1 -0
- package/dist/commands/ship.d.ts +15 -0
- package/dist/commands/ship.js +231 -0
- package/dist/commands/ship.js.map +1 -0
- package/dist/commands/status.d.ts +13 -0
- package/dist/commands/status.js +141 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/sync.d.ts +17 -0
- package/dist/commands/sync.js +90 -0
- package/dist/commands/sync.js.map +1 -0
- package/dist/conductor/registry.d.ts +45 -0
- package/dist/conductor/registry.js +164 -0
- package/dist/conductor/registry.js.map +1 -0
- package/dist/config.d.ts +47 -0
- package/dist/config.js +137 -0
- package/dist/config.js.map +1 -0
- package/dist/doctor.d.ts +28 -0
- package/dist/doctor.js +377 -0
- package/dist/doctor.js.map +1 -0
- package/dist/errors.d.ts +23 -0
- package/dist/errors.js +114 -0
- package/dist/errors.js.map +1 -0
- package/dist/export.d.ts +1 -0
- package/dist/export.js +9 -0
- package/dist/export.js.map +1 -0
- package/dist/import.d.ts +3 -0
- package/dist/import.js +89 -0
- package/dist/import.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +183 -0
- package/dist/index.js.map +1 -0
- package/dist/init/auth.d.ts +85 -0
- package/dist/init/auth.js +194 -0
- package/dist/init/auth.js.map +1 -0
- package/dist/init/claudemd.d.ts +16 -0
- package/dist/init/claudemd.js +62 -0
- package/dist/init/claudemd.js.map +1 -0
- package/dist/init/index.d.ts +47 -0
- package/dist/init/index.js +159 -0
- package/dist/init/index.js.map +1 -0
- package/dist/init/mcp.d.ts +18 -0
- package/dist/init/mcp.js +97 -0
- package/dist/init/mcp.js.map +1 -0
- package/dist/init/plugin.d.ts +60 -0
- package/dist/init/plugin.js +120 -0
- package/dist/init/plugin.js.map +1 -0
- package/dist/init/scaffold.d.ts +19 -0
- package/dist/init/scaffold.js +46 -0
- package/dist/init/scaffold.js.map +1 -0
- package/dist/init/templates.d.ts +48 -0
- package/dist/init/templates.js +147 -0
- package/dist/init/templates.js.map +1 -0
- package/dist/plugin/.claude-plugin/plugin.json +11 -0
- package/dist/plugin/README.md +117 -0
- package/dist/plugin/commands/next.md +28 -0
- package/dist/plugin/commands/promote.md +30 -0
- package/dist/plugin/commands/report.md +26 -0
- package/dist/plugin/commands/ship.md +30 -0
- package/dist/plugin/skills/backlog-management/SKILL.md +63 -0
- package/dist/plugin/skills/backlog-query/SKILL.md +57 -0
- package/dist/plugin/skills/feature-kickoff/SKILL.md +112 -0
- package/dist/snapshot.d.ts +24 -0
- package/dist/snapshot.js +2 -0
- package/dist/snapshot.js.map +1 -0
- package/dist/token.d.ts +29 -0
- package/dist/token.js +99 -0
- package/dist/token.js.map +1 -0
- package/package.json +52 -0
|
@@ -0,0 +1,636 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const STATUSES: readonly ["backlog", "scheduled", "promoted", "in-progress", "shipped", "rejected"];
|
|
3
|
+
export declare const CRITERIA_STATUSES: readonly ["draft", "reviewed", "locked"];
|
|
4
|
+
export declare const MATRIX_STATUSES: readonly ["☐", "🟡", "✅", "🔬", "🚀", "⏭️"];
|
|
5
|
+
export declare const ROLES: readonly ["owner", "product", "engineer", "qa", "viewer"];
|
|
6
|
+
export declare const PRIORITIES: readonly ["P0", "P1", "P2", "P3", "P4"];
|
|
7
|
+
export declare const TEST_TYPES: readonly ["Unit", "Integration", "E2E", "Code review", "Manual", "Infra", "Telemetry"];
|
|
8
|
+
export declare const Status: z.ZodEnum<{
|
|
9
|
+
backlog: "backlog";
|
|
10
|
+
scheduled: "scheduled";
|
|
11
|
+
promoted: "promoted";
|
|
12
|
+
"in-progress": "in-progress";
|
|
13
|
+
shipped: "shipped";
|
|
14
|
+
rejected: "rejected";
|
|
15
|
+
}>;
|
|
16
|
+
export declare const CriteriaStatus: z.ZodEnum<{
|
|
17
|
+
draft: "draft";
|
|
18
|
+
reviewed: "reviewed";
|
|
19
|
+
locked: "locked";
|
|
20
|
+
}>;
|
|
21
|
+
export declare const MatrixStatus: z.ZodEnum<{
|
|
22
|
+
"\u2610": "☐";
|
|
23
|
+
"\uD83D\uDFE1": "🟡";
|
|
24
|
+
"\u2705": "✅";
|
|
25
|
+
"\uD83D\uDD2C": "🔬";
|
|
26
|
+
"\uD83D\uDE80": "🚀";
|
|
27
|
+
"\u23ED\uFE0F": "⏭️";
|
|
28
|
+
}>;
|
|
29
|
+
export declare const Role: z.ZodEnum<{
|
|
30
|
+
owner: "owner";
|
|
31
|
+
product: "product";
|
|
32
|
+
engineer: "engineer";
|
|
33
|
+
qa: "qa";
|
|
34
|
+
viewer: "viewer";
|
|
35
|
+
}>;
|
|
36
|
+
export declare const Priority: z.ZodEnum<{
|
|
37
|
+
P0: "P0";
|
|
38
|
+
P1: "P1";
|
|
39
|
+
P2: "P2";
|
|
40
|
+
P3: "P3";
|
|
41
|
+
P4: "P4";
|
|
42
|
+
}>;
|
|
43
|
+
export declare const TestType: z.ZodEnum<{
|
|
44
|
+
Unit: "Unit";
|
|
45
|
+
Integration: "Integration";
|
|
46
|
+
E2E: "E2E";
|
|
47
|
+
"Code review": "Code review";
|
|
48
|
+
Manual: "Manual";
|
|
49
|
+
Infra: "Infra";
|
|
50
|
+
Telemetry: "Telemetry";
|
|
51
|
+
}>;
|
|
52
|
+
export type Status = z.infer<typeof Status>;
|
|
53
|
+
export type CriteriaStatus = z.infer<typeof CriteriaStatus>;
|
|
54
|
+
export type MatrixStatus = z.infer<typeof MatrixStatus>;
|
|
55
|
+
export type Role = z.infer<typeof Role>;
|
|
56
|
+
export type Priority = z.infer<typeof Priority>;
|
|
57
|
+
export type TestType = z.infer<typeof TestType>;
|
|
58
|
+
export declare function isItemId(s: string): boolean;
|
|
59
|
+
export declare const ItemId: z.ZodString;
|
|
60
|
+
export declare const Criterion: z.ZodObject<{
|
|
61
|
+
index: z.ZodNumber;
|
|
62
|
+
text: z.ZodString;
|
|
63
|
+
done: z.ZodBoolean;
|
|
64
|
+
}, z.core.$strip>;
|
|
65
|
+
export type Criterion = z.infer<typeof Criterion>;
|
|
66
|
+
/** A body section the schema does not name (e.g. `## Estimated effort`). Kept so canonical export loses nothing. */
|
|
67
|
+
export declare const ExtraSection: z.ZodObject<{
|
|
68
|
+
heading: z.ZodString;
|
|
69
|
+
text: z.ZodString;
|
|
70
|
+
}, z.core.$strip>;
|
|
71
|
+
export type ExtraSection = z.infer<typeof ExtraSection>;
|
|
72
|
+
export declare const Item: z.ZodObject<{
|
|
73
|
+
id: z.ZodString;
|
|
74
|
+
title: z.ZodString;
|
|
75
|
+
status: z.ZodEnum<{
|
|
76
|
+
backlog: "backlog";
|
|
77
|
+
scheduled: "scheduled";
|
|
78
|
+
promoted: "promoted";
|
|
79
|
+
"in-progress": "in-progress";
|
|
80
|
+
shipped: "shipped";
|
|
81
|
+
rejected: "rejected";
|
|
82
|
+
}>;
|
|
83
|
+
domain: z.ZodString;
|
|
84
|
+
priority: z.ZodEnum<{
|
|
85
|
+
P0: "P0";
|
|
86
|
+
P1: "P1";
|
|
87
|
+
P2: "P2";
|
|
88
|
+
P3: "P3";
|
|
89
|
+
P4: "P4";
|
|
90
|
+
}>;
|
|
91
|
+
origin: z.ZodString;
|
|
92
|
+
created: z.ZodString;
|
|
93
|
+
updated: z.ZodString;
|
|
94
|
+
prerequisites: z.ZodArray<z.ZodString>;
|
|
95
|
+
blocks: z.ZodArray<z.ZodString>;
|
|
96
|
+
criteria_status: z.ZodEnum<{
|
|
97
|
+
draft: "draft";
|
|
98
|
+
reviewed: "reviewed";
|
|
99
|
+
locked: "locked";
|
|
100
|
+
}>;
|
|
101
|
+
criteria_version: z.ZodDefault<z.ZodNumber>;
|
|
102
|
+
revisit_when: z.ZodString;
|
|
103
|
+
track: z.ZodNullable<z.ZodString>;
|
|
104
|
+
shipped_commit: z.ZodNullable<z.ZodString>;
|
|
105
|
+
production_date: z.ZodNullable<z.ZodString>;
|
|
106
|
+
rejected_reason: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
107
|
+
what: z.ZodString;
|
|
108
|
+
why: z.ZodString;
|
|
109
|
+
criteria: z.ZodArray<z.ZodObject<{
|
|
110
|
+
index: z.ZodNumber;
|
|
111
|
+
text: z.ZodString;
|
|
112
|
+
done: z.ZodBoolean;
|
|
113
|
+
}, z.core.$strip>>;
|
|
114
|
+
criteria_notes: z.ZodDefault<z.ZodString>;
|
|
115
|
+
critique: z.ZodString;
|
|
116
|
+
out_of_scope: z.ZodString;
|
|
117
|
+
dependencies_note: z.ZodString;
|
|
118
|
+
extra_sections: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
119
|
+
heading: z.ZodString;
|
|
120
|
+
text: z.ZodString;
|
|
121
|
+
}, z.core.$strip>>>;
|
|
122
|
+
preamble: z.ZodDefault<z.ZodString>;
|
|
123
|
+
}, z.core.$strip>;
|
|
124
|
+
export type Item = z.infer<typeof Item>;
|
|
125
|
+
/** How hard §5.6's ship gate bites: the closed set `Track.qa_enforcement` is derived from. */
|
|
126
|
+
export declare const QA_ENFORCEMENTS: readonly ["permissive", "strict"];
|
|
127
|
+
export type QaEnforcement = (typeof QA_ENFORCEMENTS)[number];
|
|
128
|
+
export declare const Shipment: z.ZodObject<{
|
|
129
|
+
commit: z.ZodString;
|
|
130
|
+
production_date: z.ZodString;
|
|
131
|
+
shipped_by: z.ZodString;
|
|
132
|
+
}, z.core.$strip>;
|
|
133
|
+
export declare const Track: z.ZodObject<{
|
|
134
|
+
slug: z.ZodString;
|
|
135
|
+
type: z.ZodString;
|
|
136
|
+
backlog_ids: z.ZodArray<z.ZodString>;
|
|
137
|
+
follow_up_backlog: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
138
|
+
qa_doc: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
139
|
+
qa_enforcement: z.ZodDefault<z.ZodEnum<{
|
|
140
|
+
permissive: "permissive";
|
|
141
|
+
strict: "strict";
|
|
142
|
+
}>>;
|
|
143
|
+
spec_drift: z.ZodDefault<z.ZodBoolean>;
|
|
144
|
+
shipment: z.ZodDefault<z.ZodNullable<z.ZodObject<{
|
|
145
|
+
commit: z.ZodString;
|
|
146
|
+
production_date: z.ZodString;
|
|
147
|
+
shipped_by: z.ZodString;
|
|
148
|
+
}, z.core.$strip>>>;
|
|
149
|
+
}, z.core.$strip>;
|
|
150
|
+
export type Track = z.infer<typeof Track>;
|
|
151
|
+
export declare const LinkedCriterion: z.ZodUnion<readonly [z.ZodObject<{
|
|
152
|
+
item: z.ZodString;
|
|
153
|
+
ac: z.ZodNumber;
|
|
154
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
155
|
+
legacy: z.ZodString;
|
|
156
|
+
}, z.core.$strip>]>;
|
|
157
|
+
export type LinkedCriterion = z.infer<typeof LinkedCriterion>;
|
|
158
|
+
export declare const Evidence: z.ZodObject<{
|
|
159
|
+
path: z.ZodString;
|
|
160
|
+
content_type: z.ZodString;
|
|
161
|
+
uploaded_by: z.ZodString;
|
|
162
|
+
uploaded_at: z.ZodString;
|
|
163
|
+
}, z.core.$strip>;
|
|
164
|
+
export declare const MatrixRow: z.ZodObject<{
|
|
165
|
+
id: z.ZodString;
|
|
166
|
+
what_to_verify: z.ZodString;
|
|
167
|
+
how_to_verify: z.ZodString;
|
|
168
|
+
test_type: z.ZodString;
|
|
169
|
+
linked_criterion: z.ZodUnion<readonly [z.ZodObject<{
|
|
170
|
+
item: z.ZodString;
|
|
171
|
+
ac: z.ZodNumber;
|
|
172
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
173
|
+
legacy: z.ZodString;
|
|
174
|
+
}, z.core.$strip>]>;
|
|
175
|
+
linked_text: z.ZodDefault<z.ZodString>;
|
|
176
|
+
environment: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
177
|
+
status: z.ZodNullable<z.ZodEnum<{
|
|
178
|
+
"\u2610": "☐";
|
|
179
|
+
"\uD83D\uDFE1": "🟡";
|
|
180
|
+
"\u2705": "✅";
|
|
181
|
+
"\uD83D\uDD2C": "🔬";
|
|
182
|
+
"\uD83D\uDE80": "🚀";
|
|
183
|
+
"\u23ED\uFE0F": "⏭️";
|
|
184
|
+
}>>;
|
|
185
|
+
status_raw: z.ZodDefault<z.ZodString>;
|
|
186
|
+
notes: z.ZodString;
|
|
187
|
+
evidence: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
188
|
+
path: z.ZodString;
|
|
189
|
+
content_type: z.ZodString;
|
|
190
|
+
uploaded_by: z.ZodString;
|
|
191
|
+
uploaded_at: z.ZodString;
|
|
192
|
+
}, z.core.$strip>>>;
|
|
193
|
+
}, z.core.$strip>;
|
|
194
|
+
export type MatrixRow = z.infer<typeof MatrixRow>;
|
|
195
|
+
export declare const Member: z.ZodObject<{
|
|
196
|
+
user_id: z.ZodString;
|
|
197
|
+
org: z.ZodString;
|
|
198
|
+
role: z.ZodEnum<{
|
|
199
|
+
owner: "owner";
|
|
200
|
+
product: "product";
|
|
201
|
+
engineer: "engineer";
|
|
202
|
+
qa: "qa";
|
|
203
|
+
viewer: "viewer";
|
|
204
|
+
}>;
|
|
205
|
+
}, z.core.$strip>;
|
|
206
|
+
export type Member = z.infer<typeof Member>;
|
|
207
|
+
export declare const Token: z.ZodObject<{
|
|
208
|
+
id: z.ZodString;
|
|
209
|
+
user_id: z.ZodString;
|
|
210
|
+
scope: z.ZodEnum<{
|
|
211
|
+
full: "full";
|
|
212
|
+
read_only: "read_only";
|
|
213
|
+
}>;
|
|
214
|
+
expires_at: z.ZodNullable<z.ZodString>;
|
|
215
|
+
hash: z.ZodString;
|
|
216
|
+
}, z.core.$strip>;
|
|
217
|
+
export type Token = z.infer<typeof Token>;
|
|
218
|
+
export declare const AuditEvent: z.ZodObject<{
|
|
219
|
+
who: z.ZodString;
|
|
220
|
+
via: z.ZodEnum<{
|
|
221
|
+
web: "web";
|
|
222
|
+
cli: "cli";
|
|
223
|
+
mcp: "mcp";
|
|
224
|
+
}>;
|
|
225
|
+
actor_kind: z.ZodDefault<z.ZodEnum<{
|
|
226
|
+
human: "human";
|
|
227
|
+
agent: "agent";
|
|
228
|
+
}>>;
|
|
229
|
+
when: z.ZodString;
|
|
230
|
+
action: z.ZodString;
|
|
231
|
+
target: z.ZodString;
|
|
232
|
+
before: z.ZodNullable<z.ZodUnknown>;
|
|
233
|
+
after: z.ZodNullable<z.ZodUnknown>;
|
|
234
|
+
reason: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
235
|
+
}, z.core.$strip>;
|
|
236
|
+
export type AuditEvent = z.infer<typeof AuditEvent>;
|
|
237
|
+
export declare const Decision: z.ZodObject<{
|
|
238
|
+
anchor: z.ZodString;
|
|
239
|
+
title: z.ZodString;
|
|
240
|
+
blocks: z.ZodArray<z.ZodString>;
|
|
241
|
+
next_step: z.ZodString;
|
|
242
|
+
status: z.ZodDefault<z.ZodEnum<{
|
|
243
|
+
open: "open";
|
|
244
|
+
resolved: "resolved";
|
|
245
|
+
}>>;
|
|
246
|
+
}, z.core.$strip>;
|
|
247
|
+
export type Decision = z.infer<typeof Decision>;
|
|
248
|
+
export declare const SUGGESTION_STATUSES: readonly ["open", "accepted", "declined", "withdrawn", "superseded"];
|
|
249
|
+
export declare const REVISION_SOURCES: readonly ["edit", "unlock", "suggestion_accept", "ship_reconcile"];
|
|
250
|
+
export declare const SuggestionStatus: z.ZodEnum<{
|
|
251
|
+
open: "open";
|
|
252
|
+
accepted: "accepted";
|
|
253
|
+
declined: "declined";
|
|
254
|
+
withdrawn: "withdrawn";
|
|
255
|
+
superseded: "superseded";
|
|
256
|
+
}>;
|
|
257
|
+
export declare const RevisionSource: z.ZodEnum<{
|
|
258
|
+
edit: "edit";
|
|
259
|
+
unlock: "unlock";
|
|
260
|
+
suggestion_accept: "suggestion_accept";
|
|
261
|
+
ship_reconcile: "ship_reconcile";
|
|
262
|
+
}>;
|
|
263
|
+
export type SuggestionStatus = z.infer<typeof SuggestionStatus>;
|
|
264
|
+
export type RevisionSource = z.infer<typeof RevisionSource>;
|
|
265
|
+
/** §12: "QA owns the text, Engineer proposes via comment" needs a target that can be a matrix row. */
|
|
266
|
+
export declare const CommentTarget: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
267
|
+
kind: z.ZodLiteral<"item">;
|
|
268
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
269
|
+
kind: z.ZodLiteral<"criterion">;
|
|
270
|
+
ac: z.ZodNumber;
|
|
271
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
272
|
+
kind: z.ZodLiteral<"matrix_row">;
|
|
273
|
+
row_id: z.ZodString;
|
|
274
|
+
}, z.core.$strip>], "kind">;
|
|
275
|
+
export type CommentTarget = z.infer<typeof CommentTarget>;
|
|
276
|
+
/** Discussion. Immutable once posted — no edit, no delete; if you were wrong, post another. */
|
|
277
|
+
export declare const Comment: z.ZodObject<{
|
|
278
|
+
id: z.ZodString;
|
|
279
|
+
item_id: z.ZodString;
|
|
280
|
+
target: z.ZodDefault<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
281
|
+
kind: z.ZodLiteral<"item">;
|
|
282
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
283
|
+
kind: z.ZodLiteral<"criterion">;
|
|
284
|
+
ac: z.ZodNumber;
|
|
285
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
286
|
+
kind: z.ZodLiteral<"matrix_row">;
|
|
287
|
+
row_id: z.ZodString;
|
|
288
|
+
}, z.core.$strip>], "kind">>;
|
|
289
|
+
body: z.ZodString;
|
|
290
|
+
created_by: z.ZodString;
|
|
291
|
+
created_at: z.ZodString;
|
|
292
|
+
}, z.core.$strip>;
|
|
293
|
+
export type Comment = z.infer<typeof Comment>;
|
|
294
|
+
/** A proposed change to a **locked** item, held until Product rules on it (§5.4 rule 4). */
|
|
295
|
+
export declare const Suggestion: z.ZodObject<{
|
|
296
|
+
id: z.ZodString;
|
|
297
|
+
item_id: z.ZodString;
|
|
298
|
+
criteria_version: z.ZodNumber;
|
|
299
|
+
target: z.ZodDefault<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
300
|
+
kind: z.ZodLiteral<"item">;
|
|
301
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
302
|
+
kind: z.ZodLiteral<"criterion">;
|
|
303
|
+
ac: z.ZodNumber;
|
|
304
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
305
|
+
kind: z.ZodLiteral<"matrix_row">;
|
|
306
|
+
row_id: z.ZodString;
|
|
307
|
+
}, z.core.$strip>], "kind">>;
|
|
308
|
+
text: z.ZodString;
|
|
309
|
+
rationale: z.ZodString;
|
|
310
|
+
status: z.ZodDefault<z.ZodEnum<{
|
|
311
|
+
open: "open";
|
|
312
|
+
accepted: "accepted";
|
|
313
|
+
declined: "declined";
|
|
314
|
+
withdrawn: "withdrawn";
|
|
315
|
+
superseded: "superseded";
|
|
316
|
+
}>>;
|
|
317
|
+
created_by: z.ZodString;
|
|
318
|
+
created_at: z.ZodString;
|
|
319
|
+
resolved_by: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
320
|
+
resolved_at: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
321
|
+
resolution_note: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
322
|
+
}, z.core.$strip>;
|
|
323
|
+
export type Suggestion = z.infer<typeof Suggestion>;
|
|
324
|
+
export declare const RevisionField: z.ZodObject<{
|
|
325
|
+
field: z.ZodEnum<{
|
|
326
|
+
title: "title";
|
|
327
|
+
what: "what";
|
|
328
|
+
why: "why";
|
|
329
|
+
criteria: "criteria";
|
|
330
|
+
critique: "critique";
|
|
331
|
+
out_of_scope: "out_of_scope";
|
|
332
|
+
dependencies_note: "dependencies_note";
|
|
333
|
+
}>;
|
|
334
|
+
before: z.ZodUnknown;
|
|
335
|
+
after: z.ZodUnknown;
|
|
336
|
+
}, z.core.$strip>;
|
|
337
|
+
export type RevisionField = z.infer<typeof RevisionField>;
|
|
338
|
+
/**
|
|
339
|
+
* The record of a spec-field change that already happened. Field-level diffs, never a whole item
|
|
340
|
+
* (SVC-004 critique). `id` is null until the store assigns one — core builds revisions, it does
|
|
341
|
+
* not number them.
|
|
342
|
+
*/
|
|
343
|
+
export declare const Revision: z.ZodObject<{
|
|
344
|
+
id: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
345
|
+
item_id: z.ZodString;
|
|
346
|
+
version_before: z.ZodNumber;
|
|
347
|
+
version_after: z.ZodNumber;
|
|
348
|
+
fields: z.ZodArray<z.ZodObject<{
|
|
349
|
+
field: z.ZodEnum<{
|
|
350
|
+
title: "title";
|
|
351
|
+
what: "what";
|
|
352
|
+
why: "why";
|
|
353
|
+
criteria: "criteria";
|
|
354
|
+
critique: "critique";
|
|
355
|
+
out_of_scope: "out_of_scope";
|
|
356
|
+
dependencies_note: "dependencies_note";
|
|
357
|
+
}>;
|
|
358
|
+
before: z.ZodUnknown;
|
|
359
|
+
after: z.ZodUnknown;
|
|
360
|
+
}, z.core.$strip>>;
|
|
361
|
+
source: z.ZodEnum<{
|
|
362
|
+
edit: "edit";
|
|
363
|
+
unlock: "unlock";
|
|
364
|
+
suggestion_accept: "suggestion_accept";
|
|
365
|
+
ship_reconcile: "ship_reconcile";
|
|
366
|
+
}>;
|
|
367
|
+
reason: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
368
|
+
changed_by: z.ZodString;
|
|
369
|
+
changed_at: z.ZodString;
|
|
370
|
+
}, z.core.$strip>;
|
|
371
|
+
export type Revision = z.infer<typeof Revision>;
|
|
372
|
+
/** A matrix row always links to a real criterion here: the legacy `A1` form has no DB home. */
|
|
373
|
+
export declare const MatrixCriterionRef: z.ZodObject<{
|
|
374
|
+
item: z.ZodString;
|
|
375
|
+
ac: z.ZodNumber;
|
|
376
|
+
}, z.core.$strip>;
|
|
377
|
+
export type MatrixCriterionRef = z.infer<typeof MatrixCriterionRef>;
|
|
378
|
+
export declare const EvidenceRecord: z.ZodObject<{
|
|
379
|
+
id: z.ZodString;
|
|
380
|
+
path: z.ZodString;
|
|
381
|
+
filename: z.ZodString;
|
|
382
|
+
content_type: z.ZodString;
|
|
383
|
+
size_bytes: z.ZodNumber;
|
|
384
|
+
uploaded_by: z.ZodString;
|
|
385
|
+
created_at: z.ZodString;
|
|
386
|
+
uploaded_at: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
387
|
+
}, z.core.$strip>;
|
|
388
|
+
export type EvidenceRecord = z.infer<typeof EvidenceRecord>;
|
|
389
|
+
export declare const MatrixRowRecord: z.ZodObject<{
|
|
390
|
+
id: z.ZodString;
|
|
391
|
+
track: z.ZodString;
|
|
392
|
+
row_id: z.ZodString;
|
|
393
|
+
linked_criterion: z.ZodObject<{
|
|
394
|
+
item: z.ZodString;
|
|
395
|
+
ac: z.ZodNumber;
|
|
396
|
+
}, z.core.$strip>;
|
|
397
|
+
linked_text: z.ZodString;
|
|
398
|
+
criteria_version: z.ZodNumber;
|
|
399
|
+
what_to_verify: z.ZodString;
|
|
400
|
+
how_to_verify: z.ZodDefault<z.ZodString>;
|
|
401
|
+
test_type: z.ZodEnum<{
|
|
402
|
+
Unit: "Unit";
|
|
403
|
+
Integration: "Integration";
|
|
404
|
+
E2E: "E2E";
|
|
405
|
+
"Code review": "Code review";
|
|
406
|
+
Manual: "Manual";
|
|
407
|
+
Infra: "Infra";
|
|
408
|
+
Telemetry: "Telemetry";
|
|
409
|
+
}>;
|
|
410
|
+
environment: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
411
|
+
status: z.ZodEnum<{
|
|
412
|
+
"\u2610": "☐";
|
|
413
|
+
"\uD83D\uDFE1": "🟡";
|
|
414
|
+
"\u2705": "✅";
|
|
415
|
+
"\uD83D\uDD2C": "🔬";
|
|
416
|
+
"\uD83D\uDE80": "🚀";
|
|
417
|
+
"\u23ED\uFE0F": "⏭️";
|
|
418
|
+
}>;
|
|
419
|
+
notes: z.ZodDefault<z.ZodString>;
|
|
420
|
+
evidence: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
421
|
+
id: z.ZodString;
|
|
422
|
+
path: z.ZodString;
|
|
423
|
+
filename: z.ZodString;
|
|
424
|
+
content_type: z.ZodString;
|
|
425
|
+
size_bytes: z.ZodNumber;
|
|
426
|
+
uploaded_by: z.ZodString;
|
|
427
|
+
created_at: z.ZodString;
|
|
428
|
+
uploaded_at: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
429
|
+
}, z.core.$strip>>>;
|
|
430
|
+
updated_by: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
431
|
+
updated_at: z.ZodString;
|
|
432
|
+
}, z.core.$strip>;
|
|
433
|
+
export type MatrixRowRecord = z.infer<typeof MatrixRowRecord>;
|
|
434
|
+
/** What `scaffoldMatrix` emits: a row the store has not numbered or timestamped yet. */
|
|
435
|
+
export declare const NewMatrixRow: z.ZodObject<{
|
|
436
|
+
row_id: z.ZodString;
|
|
437
|
+
linked_criterion: z.ZodObject<{
|
|
438
|
+
item: z.ZodString;
|
|
439
|
+
ac: z.ZodNumber;
|
|
440
|
+
}, z.core.$strip>;
|
|
441
|
+
linked_text: z.ZodString;
|
|
442
|
+
criteria_version: z.ZodNumber;
|
|
443
|
+
what_to_verify: z.ZodString;
|
|
444
|
+
how_to_verify: z.ZodDefault<z.ZodString>;
|
|
445
|
+
test_type: z.ZodDefault<z.ZodEnum<{
|
|
446
|
+
Unit: "Unit";
|
|
447
|
+
Integration: "Integration";
|
|
448
|
+
E2E: "E2E";
|
|
449
|
+
"Code review": "Code review";
|
|
450
|
+
Manual: "Manual";
|
|
451
|
+
Infra: "Infra";
|
|
452
|
+
Telemetry: "Telemetry";
|
|
453
|
+
}>>;
|
|
454
|
+
environment: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
455
|
+
status: z.ZodDefault<z.ZodEnum<{
|
|
456
|
+
"\u2610": "☐";
|
|
457
|
+
"\uD83D\uDFE1": "🟡";
|
|
458
|
+
"\u2705": "✅";
|
|
459
|
+
"\uD83D\uDD2C": "🔬";
|
|
460
|
+
"\uD83D\uDE80": "🚀";
|
|
461
|
+
"\u23ED\uFE0F": "⏭️";
|
|
462
|
+
}>>;
|
|
463
|
+
notes: z.ZodDefault<z.ZodString>;
|
|
464
|
+
}, z.core.$strip>;
|
|
465
|
+
export type NewMatrixRow = z.infer<typeof NewMatrixRow>;
|
|
466
|
+
/**
|
|
467
|
+
* What scaffolding needs about an existing row: which criterion, which M, whether the row is
|
|
468
|
+
* live — and the criterion text it quotes, because a `⏭️` row keeps covering *that* text and
|
|
469
|
+
* nothing else.
|
|
470
|
+
*/
|
|
471
|
+
export declare const MatrixRowRef: z.ZodObject<{
|
|
472
|
+
row_id: z.ZodString;
|
|
473
|
+
linked_criterion: z.ZodObject<{
|
|
474
|
+
item: z.ZodString;
|
|
475
|
+
ac: z.ZodNumber;
|
|
476
|
+
}, z.core.$strip>;
|
|
477
|
+
linked_text: z.ZodString;
|
|
478
|
+
status: z.ZodEnum<{
|
|
479
|
+
"\u2610": "☐";
|
|
480
|
+
"\uD83D\uDFE1": "🟡";
|
|
481
|
+
"\u2705": "✅";
|
|
482
|
+
"\uD83D\uDD2C": "🔬";
|
|
483
|
+
"\uD83D\uDE80": "🚀";
|
|
484
|
+
"\u23ED\uFE0F": "⏭️";
|
|
485
|
+
}>;
|
|
486
|
+
}, z.core.$strip>;
|
|
487
|
+
export type MatrixRowRef = z.infer<typeof MatrixRowRef>;
|
|
488
|
+
/** DECISION-020: the QA queue is grouped `track → environment → rows`, Viewer-readable. */
|
|
489
|
+
export declare const QaQueueGroup: z.ZodObject<{
|
|
490
|
+
track: z.ZodString;
|
|
491
|
+
environment: z.ZodString;
|
|
492
|
+
rows: z.ZodArray<z.ZodObject<{
|
|
493
|
+
id: z.ZodString;
|
|
494
|
+
track: z.ZodString;
|
|
495
|
+
row_id: z.ZodString;
|
|
496
|
+
linked_criterion: z.ZodObject<{
|
|
497
|
+
item: z.ZodString;
|
|
498
|
+
ac: z.ZodNumber;
|
|
499
|
+
}, z.core.$strip>;
|
|
500
|
+
linked_text: z.ZodString;
|
|
501
|
+
criteria_version: z.ZodNumber;
|
|
502
|
+
what_to_verify: z.ZodString;
|
|
503
|
+
how_to_verify: z.ZodDefault<z.ZodString>;
|
|
504
|
+
test_type: z.ZodEnum<{
|
|
505
|
+
Unit: "Unit";
|
|
506
|
+
Integration: "Integration";
|
|
507
|
+
E2E: "E2E";
|
|
508
|
+
"Code review": "Code review";
|
|
509
|
+
Manual: "Manual";
|
|
510
|
+
Infra: "Infra";
|
|
511
|
+
Telemetry: "Telemetry";
|
|
512
|
+
}>;
|
|
513
|
+
environment: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
514
|
+
status: z.ZodEnum<{
|
|
515
|
+
"\u2610": "☐";
|
|
516
|
+
"\uD83D\uDFE1": "🟡";
|
|
517
|
+
"\u2705": "✅";
|
|
518
|
+
"\uD83D\uDD2C": "🔬";
|
|
519
|
+
"\uD83D\uDE80": "🚀";
|
|
520
|
+
"\u23ED\uFE0F": "⏭️";
|
|
521
|
+
}>;
|
|
522
|
+
notes: z.ZodDefault<z.ZodString>;
|
|
523
|
+
evidence: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
524
|
+
id: z.ZodString;
|
|
525
|
+
path: z.ZodString;
|
|
526
|
+
filename: z.ZodString;
|
|
527
|
+
content_type: z.ZodString;
|
|
528
|
+
size_bytes: z.ZodNumber;
|
|
529
|
+
uploaded_by: z.ZodString;
|
|
530
|
+
created_at: z.ZodString;
|
|
531
|
+
uploaded_at: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
532
|
+
}, z.core.$strip>>>;
|
|
533
|
+
updated_by: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
534
|
+
updated_at: z.ZodString;
|
|
535
|
+
}, z.core.$strip>>;
|
|
536
|
+
}, z.core.$strip>;
|
|
537
|
+
export type QaQueueGroup = z.infer<typeof QaQueueGroup>;
|
|
538
|
+
export declare const QaQueue: z.ZodObject<{
|
|
539
|
+
waiting_staging: z.ZodArray<z.ZodObject<{
|
|
540
|
+
track: z.ZodString;
|
|
541
|
+
environment: z.ZodString;
|
|
542
|
+
rows: z.ZodArray<z.ZodObject<{
|
|
543
|
+
id: z.ZodString;
|
|
544
|
+
track: z.ZodString;
|
|
545
|
+
row_id: z.ZodString;
|
|
546
|
+
linked_criterion: z.ZodObject<{
|
|
547
|
+
item: z.ZodString;
|
|
548
|
+
ac: z.ZodNumber;
|
|
549
|
+
}, z.core.$strip>;
|
|
550
|
+
linked_text: z.ZodString;
|
|
551
|
+
criteria_version: z.ZodNumber;
|
|
552
|
+
what_to_verify: z.ZodString;
|
|
553
|
+
how_to_verify: z.ZodDefault<z.ZodString>;
|
|
554
|
+
test_type: z.ZodEnum<{
|
|
555
|
+
Unit: "Unit";
|
|
556
|
+
Integration: "Integration";
|
|
557
|
+
E2E: "E2E";
|
|
558
|
+
"Code review": "Code review";
|
|
559
|
+
Manual: "Manual";
|
|
560
|
+
Infra: "Infra";
|
|
561
|
+
Telemetry: "Telemetry";
|
|
562
|
+
}>;
|
|
563
|
+
environment: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
564
|
+
status: z.ZodEnum<{
|
|
565
|
+
"\u2610": "☐";
|
|
566
|
+
"\uD83D\uDFE1": "🟡";
|
|
567
|
+
"\u2705": "✅";
|
|
568
|
+
"\uD83D\uDD2C": "🔬";
|
|
569
|
+
"\uD83D\uDE80": "🚀";
|
|
570
|
+
"\u23ED\uFE0F": "⏭️";
|
|
571
|
+
}>;
|
|
572
|
+
notes: z.ZodDefault<z.ZodString>;
|
|
573
|
+
evidence: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
574
|
+
id: z.ZodString;
|
|
575
|
+
path: z.ZodString;
|
|
576
|
+
filename: z.ZodString;
|
|
577
|
+
content_type: z.ZodString;
|
|
578
|
+
size_bytes: z.ZodNumber;
|
|
579
|
+
uploaded_by: z.ZodString;
|
|
580
|
+
created_at: z.ZodString;
|
|
581
|
+
uploaded_at: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
582
|
+
}, z.core.$strip>>>;
|
|
583
|
+
updated_by: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
584
|
+
updated_at: z.ZodString;
|
|
585
|
+
}, z.core.$strip>>;
|
|
586
|
+
}, z.core.$strip>>;
|
|
587
|
+
waiting_production: z.ZodArray<z.ZodObject<{
|
|
588
|
+
track: z.ZodString;
|
|
589
|
+
environment: z.ZodString;
|
|
590
|
+
rows: z.ZodArray<z.ZodObject<{
|
|
591
|
+
id: z.ZodString;
|
|
592
|
+
track: z.ZodString;
|
|
593
|
+
row_id: z.ZodString;
|
|
594
|
+
linked_criterion: z.ZodObject<{
|
|
595
|
+
item: z.ZodString;
|
|
596
|
+
ac: z.ZodNumber;
|
|
597
|
+
}, z.core.$strip>;
|
|
598
|
+
linked_text: z.ZodString;
|
|
599
|
+
criteria_version: z.ZodNumber;
|
|
600
|
+
what_to_verify: z.ZodString;
|
|
601
|
+
how_to_verify: z.ZodDefault<z.ZodString>;
|
|
602
|
+
test_type: z.ZodEnum<{
|
|
603
|
+
Unit: "Unit";
|
|
604
|
+
Integration: "Integration";
|
|
605
|
+
E2E: "E2E";
|
|
606
|
+
"Code review": "Code review";
|
|
607
|
+
Manual: "Manual";
|
|
608
|
+
Infra: "Infra";
|
|
609
|
+
Telemetry: "Telemetry";
|
|
610
|
+
}>;
|
|
611
|
+
environment: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
612
|
+
status: z.ZodEnum<{
|
|
613
|
+
"\u2610": "☐";
|
|
614
|
+
"\uD83D\uDFE1": "🟡";
|
|
615
|
+
"\u2705": "✅";
|
|
616
|
+
"\uD83D\uDD2C": "🔬";
|
|
617
|
+
"\uD83D\uDE80": "🚀";
|
|
618
|
+
"\u23ED\uFE0F": "⏭️";
|
|
619
|
+
}>;
|
|
620
|
+
notes: z.ZodDefault<z.ZodString>;
|
|
621
|
+
evidence: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
622
|
+
id: z.ZodString;
|
|
623
|
+
path: z.ZodString;
|
|
624
|
+
filename: z.ZodString;
|
|
625
|
+
content_type: z.ZodString;
|
|
626
|
+
size_bytes: z.ZodNumber;
|
|
627
|
+
uploaded_by: z.ZodString;
|
|
628
|
+
created_at: z.ZodString;
|
|
629
|
+
uploaded_at: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
630
|
+
}, z.core.$strip>>>;
|
|
631
|
+
updated_by: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
632
|
+
updated_at: z.ZodString;
|
|
633
|
+
}, z.core.$strip>>;
|
|
634
|
+
}, z.core.$strip>>;
|
|
635
|
+
}, z.core.$strip>;
|
|
636
|
+
export type QaQueue = z.infer<typeof QaQueue>;
|