musubix3 0.1.20 → 0.1.21
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/.github/plugin/marketplace.json +2 -2
- package/.github/skills/sdd-change/SKILL.md +28 -45
- package/CHANGELOG.md +88 -0
- package/README-ja.md +103 -3
- package/README.md +113 -3
- package/dist/packages/analysis/src/approval.d.ts +51 -0
- package/dist/packages/analysis/src/approval.js +341 -2
- package/dist/packages/analysis/src/approval.js.map +1 -1
- package/dist/packages/analysis/src/attestation.js +4 -0
- package/dist/packages/analysis/src/attestation.js.map +1 -1
- package/dist/packages/analysis/src/change-evidence.d.ts +56 -13
- package/dist/packages/analysis/src/change-evidence.js +142 -81
- package/dist/packages/analysis/src/change-evidence.js.map +1 -1
- package/dist/packages/analysis/src/change-waiver.d.ts +37 -13
- package/dist/packages/analysis/src/change-waiver.js +425 -174
- package/dist/packages/analysis/src/change-waiver.js.map +1 -1
- package/dist/packages/analysis/src/change.d.ts +1 -0
- package/dist/packages/analysis/src/change.js +176 -23
- package/dist/packages/analysis/src/change.js.map +1 -1
- package/dist/packages/analysis/src/evidence-merge-guard.d.ts +5 -0
- package/dist/packages/analysis/src/evidence-merge-guard.js +15 -0
- package/dist/packages/analysis/src/evidence-merge-guard.js.map +1 -1
- package/dist/packages/analysis/src/evidence-merge.d.ts +2 -0
- package/dist/packages/analysis/src/evidence-merge.js +173 -38
- package/dist/packages/analysis/src/evidence-merge.js.map +1 -1
- package/dist/packages/analysis/src/evidence-writer-lock.d.ts +9 -2
- package/dist/packages/analysis/src/evidence-writer-lock.js +75 -21
- package/dist/packages/analysis/src/evidence-writer-lock.js.map +1 -1
- package/dist/packages/analysis/src/files.js +5 -0
- package/dist/packages/analysis/src/files.js.map +1 -1
- package/dist/packages/analysis/src/gate.d.ts +1 -1
- package/dist/packages/analysis/src/gate.js +17 -4
- package/dist/packages/analysis/src/gate.js.map +1 -1
- package/dist/packages/analysis/src/index.d.ts +1 -0
- package/dist/packages/analysis/src/index.js +1 -0
- package/dist/packages/analysis/src/index.js.map +1 -1
- package/dist/packages/analysis/src/order.d.ts +16 -1
- package/dist/packages/analysis/src/order.js +6 -0
- package/dist/packages/analysis/src/order.js.map +1 -1
- package/dist/packages/analysis/src/quality-refresh.d.ts +18 -0
- package/dist/packages/analysis/src/quality-refresh.js +312 -0
- package/dist/packages/analysis/src/quality-refresh.js.map +1 -0
- package/dist/packages/analysis/src/tdd.d.ts +84 -3
- package/dist/packages/analysis/src/tdd.js +589 -50
- package/dist/packages/analysis/src/tdd.js.map +1 -1
- package/dist/packages/analysis/src/trace.d.ts +24 -0
- package/dist/packages/analysis/src/trace.js +95 -3
- package/dist/packages/analysis/src/trace.js.map +1 -1
- package/dist/packages/analysis/src/workflow-waiver.d.ts +6 -2
- package/dist/packages/analysis/src/workflow-waiver.js +9 -5
- package/dist/packages/analysis/src/workflow-waiver.js.map +1 -1
- package/dist/packages/analysis/src/workflow.d.ts +1 -1
- package/dist/packages/analysis/src/workflow.js +4 -4
- package/dist/packages/analysis/src/workflow.js.map +1 -1
- package/dist/packages/cli/src/install.js +27 -4
- package/dist/packages/cli/src/install.js.map +1 -1
- package/dist/packages/cli/src/main.js +77 -18
- package/dist/packages/cli/src/main.js.map +1 -1
- package/dist/packages/domain/src/design.js +8 -1
- package/dist/packages/domain/src/design.js.map +1 -1
- package/dist/packages/domain/src/types.d.ts +1 -0
- package/package.json +7 -2
- package/plugin.json +1 -1
|
@@ -6,7 +6,7 @@ import { inspectEvidenceOrder } from './order.js';
|
|
|
6
6
|
* @implements REQ-CHANGE-EVIDENCE-WAIVER-001 REQ-CHANGE-EVIDENCE-WAIVER-004
|
|
7
7
|
* @design DES-CHANGE-EVIDENCE-WAIVER-001
|
|
8
8
|
*/
|
|
9
|
-
export declare const WAIVABLE_CODES: readonly ["CHANGE_REQUIREMENTS_UNCHANGED", "CHANGE_DESIGN_UNCHANGED", "CHANGE_RED_UNPROVEN", "CHANGE_GREEN_UNPROVEN", "CHANGE_COMPLETENESS_TDD", "CHANGE_RECORD_MISSING", "CHANGE_PHASE_MISSING", "CHANGE_ORDER_MIGRATION_REQUIRED", "CHANGE_TESTS_UNCHANGED", "CHANGE_IMPLEMENTATION_UNCHANGED", "CHANGE_RELEVANT_IMPLEMENTATION_UNCHANGED", "CHANGE_TEST_CHANGED_AFTER_RED"];
|
|
9
|
+
export declare const WAIVABLE_CODES: readonly ["CHANGE_REQUIREMENTS_UNCHANGED", "CHANGE_DESIGN_UNCHANGED", "CHANGE_RED_UNPROVEN", "CHANGE_GREEN_UNPROVEN", "CHANGE_COMPLETENESS_TDD", "CHANGE_RECORD_MISSING", "CHANGE_PHASE_MISSING", "CHANGE_ORDER_MIGRATION_REQUIRED", "CHANGE_TESTS_UNCHANGED", "CHANGE_IMPLEMENTATION_UNCHANGED", "CHANGE_RELEVANT_IMPLEMENTATION_UNCHANGED", "CHANGE_TEST_CHANGED_AFTER_RED", "CHANGE_PHASE_ORDER"];
|
|
10
10
|
export type WaivableCode = typeof WAIVABLE_CODES[number];
|
|
11
11
|
/** @id CODE-CHANGE-EVIDENCE-WAIVER-017
|
|
12
12
|
* @implements REQ-CHANGE-EVIDENCE-WAIVER-004 REQ-CHANGE-EVIDENCE-WAIVER-016
|
|
@@ -15,12 +15,12 @@ export type WaivableCode = typeof WAIVABLE_CODES[number];
|
|
|
15
15
|
* single `CHANGE_LEVEL_CODES` set, so REQ-004's regime matrix is data, never
|
|
16
16
|
* scattered per-code `if` branches.
|
|
17
17
|
*/
|
|
18
|
-
export declare const NEITHER_KEY_CODES: Set<"CHANGE_REQUIREMENTS_UNCHANGED" | "CHANGE_DESIGN_UNCHANGED" | "CHANGE_RED_UNPROVEN" | "CHANGE_GREEN_UNPROVEN" | "CHANGE_COMPLETENESS_TDD" | "CHANGE_RECORD_MISSING" | "CHANGE_PHASE_MISSING" | "CHANGE_ORDER_MIGRATION_REQUIRED" | "CHANGE_TESTS_UNCHANGED" | "CHANGE_IMPLEMENTATION_UNCHANGED" | "CHANGE_RELEVANT_IMPLEMENTATION_UNCHANGED" | "CHANGE_TEST_CHANGED_AFTER_RED">;
|
|
19
|
-
export declare const REQUIREMENT_ONLY_CODES: Set<"CHANGE_REQUIREMENTS_UNCHANGED" | "CHANGE_DESIGN_UNCHANGED" | "CHANGE_RED_UNPROVEN" | "CHANGE_GREEN_UNPROVEN" | "CHANGE_COMPLETENESS_TDD" | "CHANGE_RECORD_MISSING" | "CHANGE_PHASE_MISSING" | "CHANGE_ORDER_MIGRATION_REQUIRED" | "CHANGE_TESTS_UNCHANGED" | "CHANGE_IMPLEMENTATION_UNCHANGED" | "CHANGE_RELEVANT_IMPLEMENTATION_UNCHANGED" | "CHANGE_TEST_CHANGED_AFTER_RED">;
|
|
20
|
-
export declare const DETAIL_ONLY_CODES: Set<"CHANGE_REQUIREMENTS_UNCHANGED" | "CHANGE_DESIGN_UNCHANGED" | "CHANGE_RED_UNPROVEN" | "CHANGE_GREEN_UNPROVEN" | "CHANGE_COMPLETENESS_TDD" | "CHANGE_RECORD_MISSING" | "CHANGE_PHASE_MISSING" | "CHANGE_ORDER_MIGRATION_REQUIRED" | "CHANGE_TESTS_UNCHANGED" | "CHANGE_IMPLEMENTATION_UNCHANGED" | "CHANGE_RELEVANT_IMPLEMENTATION_UNCHANGED" | "CHANGE_TEST_CHANGED_AFTER_RED">;
|
|
21
|
-
export declare const BOTH_KEYS_CODES: Set<"CHANGE_REQUIREMENTS_UNCHANGED" | "CHANGE_DESIGN_UNCHANGED" | "CHANGE_RED_UNPROVEN" | "CHANGE_GREEN_UNPROVEN" | "CHANGE_COMPLETENESS_TDD" | "CHANGE_RECORD_MISSING" | "CHANGE_PHASE_MISSING" | "CHANGE_ORDER_MIGRATION_REQUIRED" | "CHANGE_TESTS_UNCHANGED" | "CHANGE_IMPLEMENTATION_UNCHANGED" | "CHANGE_RELEVANT_IMPLEMENTATION_UNCHANGED" | "CHANGE_TEST_CHANGED_AFTER_RED">;
|
|
18
|
+
export declare const NEITHER_KEY_CODES: Set<"CHANGE_REQUIREMENTS_UNCHANGED" | "CHANGE_DESIGN_UNCHANGED" | "CHANGE_RED_UNPROVEN" | "CHANGE_GREEN_UNPROVEN" | "CHANGE_COMPLETENESS_TDD" | "CHANGE_RECORD_MISSING" | "CHANGE_PHASE_MISSING" | "CHANGE_ORDER_MIGRATION_REQUIRED" | "CHANGE_TESTS_UNCHANGED" | "CHANGE_IMPLEMENTATION_UNCHANGED" | "CHANGE_RELEVANT_IMPLEMENTATION_UNCHANGED" | "CHANGE_TEST_CHANGED_AFTER_RED" | "CHANGE_PHASE_ORDER">;
|
|
19
|
+
export declare const REQUIREMENT_ONLY_CODES: Set<"CHANGE_REQUIREMENTS_UNCHANGED" | "CHANGE_DESIGN_UNCHANGED" | "CHANGE_RED_UNPROVEN" | "CHANGE_GREEN_UNPROVEN" | "CHANGE_COMPLETENESS_TDD" | "CHANGE_RECORD_MISSING" | "CHANGE_PHASE_MISSING" | "CHANGE_ORDER_MIGRATION_REQUIRED" | "CHANGE_TESTS_UNCHANGED" | "CHANGE_IMPLEMENTATION_UNCHANGED" | "CHANGE_RELEVANT_IMPLEMENTATION_UNCHANGED" | "CHANGE_TEST_CHANGED_AFTER_RED" | "CHANGE_PHASE_ORDER">;
|
|
20
|
+
export declare const DETAIL_ONLY_CODES: Set<"CHANGE_REQUIREMENTS_UNCHANGED" | "CHANGE_DESIGN_UNCHANGED" | "CHANGE_RED_UNPROVEN" | "CHANGE_GREEN_UNPROVEN" | "CHANGE_COMPLETENESS_TDD" | "CHANGE_RECORD_MISSING" | "CHANGE_PHASE_MISSING" | "CHANGE_ORDER_MIGRATION_REQUIRED" | "CHANGE_TESTS_UNCHANGED" | "CHANGE_IMPLEMENTATION_UNCHANGED" | "CHANGE_RELEVANT_IMPLEMENTATION_UNCHANGED" | "CHANGE_TEST_CHANGED_AFTER_RED" | "CHANGE_PHASE_ORDER">;
|
|
21
|
+
export declare const BOTH_KEYS_CODES: Set<"CHANGE_REQUIREMENTS_UNCHANGED" | "CHANGE_DESIGN_UNCHANGED" | "CHANGE_RED_UNPROVEN" | "CHANGE_GREEN_UNPROVEN" | "CHANGE_COMPLETENESS_TDD" | "CHANGE_RECORD_MISSING" | "CHANGE_PHASE_MISSING" | "CHANGE_ORDER_MIGRATION_REQUIRED" | "CHANGE_TESTS_UNCHANGED" | "CHANGE_IMPLEMENTATION_UNCHANGED" | "CHANGE_RELEVANT_IMPLEMENTATION_UNCHANGED" | "CHANGE_TEST_CHANGED_AFTER_RED" | "CHANGE_PHASE_ORDER">;
|
|
22
22
|
/** Retained purely for backward-compatible naming inside this module. */
|
|
23
|
-
export declare const CHANGE_LEVEL_CODES: Set<"CHANGE_REQUIREMENTS_UNCHANGED" | "CHANGE_DESIGN_UNCHANGED" | "CHANGE_RED_UNPROVEN" | "CHANGE_GREEN_UNPROVEN" | "CHANGE_COMPLETENESS_TDD" | "CHANGE_RECORD_MISSING" | "CHANGE_PHASE_MISSING" | "CHANGE_ORDER_MIGRATION_REQUIRED" | "CHANGE_TESTS_UNCHANGED" | "CHANGE_IMPLEMENTATION_UNCHANGED" | "CHANGE_RELEVANT_IMPLEMENTATION_UNCHANGED" | "CHANGE_TEST_CHANGED_AFTER_RED">;
|
|
23
|
+
export declare const CHANGE_LEVEL_CODES: Set<"CHANGE_REQUIREMENTS_UNCHANGED" | "CHANGE_DESIGN_UNCHANGED" | "CHANGE_RED_UNPROVEN" | "CHANGE_GREEN_UNPROVEN" | "CHANGE_COMPLETENESS_TDD" | "CHANGE_RECORD_MISSING" | "CHANGE_PHASE_MISSING" | "CHANGE_ORDER_MIGRATION_REQUIRED" | "CHANGE_TESTS_UNCHANGED" | "CHANGE_IMPLEMENTATION_UNCHANGED" | "CHANGE_RELEVANT_IMPLEMENTATION_UNCHANGED" | "CHANGE_TEST_CHANGED_AFTER_RED" | "CHANGE_PHASE_ORDER">;
|
|
24
24
|
export declare function requiresRequirementId(code: WaivableCode): boolean;
|
|
25
25
|
export declare function requiresDetail(code: WaivableCode): boolean;
|
|
26
26
|
export declare const CURRENT_SNAPSHOT_VERSION = 1;
|
|
@@ -57,6 +57,11 @@ export type LoadedChangeWaiverEvidence = {
|
|
|
57
57
|
* regardless of key insertion order.
|
|
58
58
|
*/
|
|
59
59
|
export declare function canonicalJson(value: unknown): string;
|
|
60
|
+
/** @id CODE-CHANGE-EVIDENCE-WAIVER-026
|
|
61
|
+
* @implements REQ-CHANGE-EVIDENCE-WAIVER-011
|
|
62
|
+
* @design DES-CHANGE-EVIDENCE-WAIVER-002
|
|
63
|
+
*/
|
|
64
|
+
export declare function normalizeChangeRecordMissingDocument(text: string, changeId: string, waiverRecord?: Pick<ChangeWaiverRecord, 'code' | 'approver' | 'recordedAt' | 'snapshotHash'>): string;
|
|
60
65
|
/** @id CODE-CHANGE-EVIDENCE-WAIVER-002
|
|
61
66
|
* @implements REQ-CHANGE-EVIDENCE-WAIVER-007
|
|
62
67
|
* @design DES-CHANGE-EVIDENCE-WAIVER-001
|
|
@@ -109,7 +114,7 @@ export declare function parseDetail(code: WaivableCode, detail: string | undefin
|
|
|
109
114
|
* @implements REQ-CHANGE-EVIDENCE-WAIVER-011 REQ-CHANGE-EVIDENCE-WAIVER-016
|
|
110
115
|
* @design DES-CHANGE-EVIDENCE-WAIVER-002
|
|
111
116
|
*/
|
|
112
|
-
export declare function snapshotPayload(root: string, evidence: ChangeEvidence | null, tdd: TddEvidence | null, order: Awaited<ReturnType<typeof inspectEvidenceOrder>>, changeId: string, code: WaivableCode, requirementId?: string, detail?: string): Promise<unknown | null>;
|
|
117
|
+
export declare function snapshotPayload(root: string, evidence: ChangeEvidence | null, tdd: TddEvidence | null, order: Awaited<ReturnType<typeof inspectEvidenceOrder>>, changeId: string, code: WaivableCode, requirementId?: string, detail?: string, waiverRecord?: Pick<ChangeWaiverRecord, 'code' | 'approver' | 'recordedAt' | 'snapshotHash'>): Promise<unknown | null>;
|
|
113
118
|
/** @id CODE-CHANGE-EVIDENCE-WAIVER-005
|
|
114
119
|
* @implements REQ-CHANGE-EVIDENCE-WAIVER-015 REQ-CHANGE-EVIDENCE-WAIVER-016
|
|
115
120
|
* @design DES-CHANGE-EVIDENCE-WAIVER-002
|
|
@@ -124,10 +129,17 @@ export declare function waiverChainValid(waivers: ChangeWaiverRecord[], index: n
|
|
|
124
129
|
* @implements REQ-CHANGE-EVIDENCE-WAIVER-006 REQ-CHANGE-EVIDENCE-WAIVER-016
|
|
125
130
|
* @design DES-CHANGE-EVIDENCE-WAIVER-002
|
|
126
131
|
*/
|
|
127
|
-
export declare function waiverLinkage(
|
|
132
|
+
export declare function waiverLinkage(order: Awaited<ReturnType<typeof inspectEvidenceOrder>>, waivers: ChangeWaiverRecord[], index: number): {
|
|
128
133
|
valid: boolean;
|
|
129
134
|
reason?: string;
|
|
130
|
-
}
|
|
135
|
+
};
|
|
136
|
+
export type WaiverCondition = 'true' | 'false' | 'indeterminate';
|
|
137
|
+
export interface WaiverScope {
|
|
138
|
+
changeId: string;
|
|
139
|
+
code: WaivableCode;
|
|
140
|
+
requirementId?: string;
|
|
141
|
+
detail?: string;
|
|
142
|
+
}
|
|
131
143
|
export interface WaiverContext {
|
|
132
144
|
loaded: LoadedChangeWaiverEvidence | null;
|
|
133
145
|
order: Awaited<ReturnType<typeof inspectEvidenceOrder>>;
|
|
@@ -136,7 +148,9 @@ export interface WaiverContext {
|
|
|
136
148
|
reason?: string;
|
|
137
149
|
}>;
|
|
138
150
|
currentHash: Array<string | undefined>;
|
|
151
|
+
condition: Array<WaiverCondition | undefined>;
|
|
139
152
|
}
|
|
153
|
+
export declare function evaluateWaiverCondition(root: string, evidence: ChangeEvidence | null, tdd: TddEvidence | null, order: Awaited<ReturnType<typeof inspectEvidenceOrder>>, scope: WaiverScope): Promise<WaiverCondition>;
|
|
140
154
|
/** @id CODE-CHANGE-EVIDENCE-WAIVER-020
|
|
141
155
|
* @implements REQ-CHANGE-EVIDENCE-WAIVER-006 REQ-CHANGE-EVIDENCE-WAIVER-007 REQ-CHANGE-EVIDENCE-WAIVER-010 REQ-CHANGE-EVIDENCE-WAIVER-011
|
|
142
156
|
* @design DES-CHANGE-EVIDENCE-WAIVER-004
|
|
@@ -144,7 +158,17 @@ export interface WaiverContext {
|
|
|
144
158
|
* consults only this fully resolved value, so no diagnostic-emission call
|
|
145
159
|
* site or final malformed/stale pass needs to itself `await` anything.
|
|
146
160
|
*/
|
|
147
|
-
export declare function buildWaiverContext(root: string, evidence: ChangeEvidence | null, tdd: TddEvidence | null
|
|
161
|
+
export declare function buildWaiverContext(root: string, evidence: ChangeEvidence | null, tdd: TddEvidence | null, precomputed?: {
|
|
162
|
+
loaded?: LoadedChangeWaiverEvidence | null;
|
|
163
|
+
order?: Awaited<ReturnType<typeof inspectEvidenceOrder>>;
|
|
164
|
+
}): Promise<WaiverContext>;
|
|
165
|
+
export declare function isWaiverStale(waiverContext: WaiverContext, index: number): boolean;
|
|
166
|
+
/**
|
|
167
|
+
* Selects the greatest-`order` validly linked record within a
|
|
168
|
+
* `changeId`/`code`/`requirementId`/`detail` scope group (REQ-006's
|
|
169
|
+
* supersession rule), returning its index, or -1 if none match/link.
|
|
170
|
+
*/
|
|
171
|
+
export declare function authoritativeWaiverIndex(waiverContext: WaiverContext, scope: WaiverScope): number;
|
|
148
172
|
/** @id CODE-CHANGE-EVIDENCE-WAIVER-008
|
|
149
173
|
* @implements REQ-CHANGE-EVIDENCE-WAIVER-006 REQ-CHANGE-EVIDENCE-WAIVER-008 REQ-CHANGE-EVIDENCE-WAIVER-009 REQ-CHANGE-EVIDENCE-WAIVER-016
|
|
150
174
|
* @design DES-CHANGE-EVIDENCE-WAIVER-004
|
|
@@ -154,7 +178,7 @@ export declare function waivedDiagnostic(waiverContext: WaiverContext, code: Wai
|
|
|
154
178
|
* @implements REQ-CHANGE-EVIDENCE-WAIVER-006 REQ-CHANGE-EVIDENCE-WAIVER-007 REQ-CHANGE-EVIDENCE-WAIVER-011
|
|
155
179
|
* @design DES-CHANGE-EVIDENCE-WAIVER-004
|
|
156
180
|
*/
|
|
157
|
-
export declare function reportWaiverEvidenceDiagnostics(waiverContext: WaiverContext
|
|
181
|
+
export declare function reportWaiverEvidenceDiagnostics(waiverContext: WaiverContext): Diagnostic[];
|
|
158
182
|
/** @id CODE-CHANGE-EVIDENCE-WAIVER-010
|
|
159
183
|
* @implements REQ-CHANGE-EVIDENCE-WAIVER-001 REQ-CHANGE-EVIDENCE-WAIVER-002 REQ-CHANGE-EVIDENCE-WAIVER-003 REQ-CHANGE-EVIDENCE-WAIVER-004 REQ-CHANGE-EVIDENCE-WAIVER-005 REQ-CHANGE-EVIDENCE-WAIVER-010 REQ-CHANGE-EVIDENCE-WAIVER-015 REQ-CHANGE-EVIDENCE-WAIVER-016
|
|
160
184
|
* @design DES-CHANGE-EVIDENCE-WAIVER-001
|
|
@@ -170,7 +194,7 @@ export declare function recordChangeWaiver(root: string, changeId: string, code:
|
|
|
170
194
|
* @implements REQ-CHANGE-EVIDENCE-WAIVER-006 REQ-CHANGE-EVIDENCE-WAIVER-012 REQ-CHANGE-EVIDENCE-WAIVER-016
|
|
171
195
|
* @design DES-CHANGE-EVIDENCE-WAIVER-005
|
|
172
196
|
*/
|
|
173
|
-
export declare function activeWaivers(root: string): Promise<Array<{
|
|
197
|
+
export declare function activeWaivers(root: string, precomputed?: WaiverContext): Promise<Array<{
|
|
174
198
|
changeId: string;
|
|
175
199
|
code: string;
|
|
176
200
|
requirementId?: string;
|
|
@@ -192,4 +216,4 @@ export declare function evaluateChangeWaiverState(root: string, evidence: Change
|
|
|
192
216
|
* @implements REQ-CHANGE-EVIDENCE-WAIVER-007 REQ-CHANGE-EVIDENCE-WAIVER-011
|
|
193
217
|
* @design DES-CHANGE-EVIDENCE-WAIVER-005
|
|
194
218
|
*/
|
|
195
|
-
export declare function waiverEvidenceDiagnostics(root: string): Promise<Diagnostic[]>;
|
|
219
|
+
export declare function waiverEvidenceDiagnostics(root: string, precomputed?: WaiverContext): Promise<Diagnostic[]>;
|