@codyswann/lisa 3.17.2 → 3.18.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/all/copy-overwrite/scripts/lisa-destructive-guard.mjs +30 -1
- package/all/copy-overwrite/scripts/lisa-work-item.mjs +136 -4
- package/dist/cli/ui-ci-quality-jobs-compute.d.ts.map +1 -1
- package/dist/cli/ui-ci-quality-jobs-compute.js +62 -17
- package/dist/cli/ui-ci-quality-jobs-compute.js.map +1 -1
- package/dist/core/lisa-owned-hash-ledger.d.ts.map +1 -1
- package/dist/core/lisa-owned-hash-ledger.js +5 -0
- package/dist/core/lisa-owned-hash-ledger.js.map +1 -1
- package/dist/core/upstream-evidence-manifest.d.ts.map +1 -1
- package/dist/core/upstream-evidence-manifest.js +15 -8
- package/dist/core/upstream-evidence-manifest.js.map +1 -1
- package/dist/health/agentic.d.ts +11 -0
- package/dist/health/agentic.d.ts.map +1 -1
- package/dist/health/agentic.js +29 -0
- package/dist/health/agentic.js.map +1 -1
- package/package.json +2 -2
- package/plugins/lisa/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa/.codex-plugin/skills/lisa-github-build-intake/SKILL.md +15 -0
- package/plugins/lisa/hooks/threshold-ratchet.mjs +44 -4
- package/plugins/lisa/scripts/lifecycle-label-trust.mjs +98 -2
- package/plugins/lisa/skills/lisa-github-build-intake/SKILL.md +15 -0
- package/plugins/lisa-agy/plugin.json +1 -1
- package/plugins/lisa-agy/scripts/lifecycle-label-trust.mjs +98 -2
- package/plugins/lisa-agy/skills/lisa-github-build-intake/SKILL.md +15 -0
- package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk-agy/plugin.json +1 -1
- package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-copilot/hooks/threshold-ratchet.mjs +44 -4
- package/plugins/lisa-copilot/scripts/lifecycle-label-trust.mjs +98 -2
- package/plugins/lisa-copilot/skills/lisa-github-build-intake/SKILL.md +15 -0
- package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cursor/hooks/threshold-ratchet.mjs +44 -4
- package/plugins/lisa-cursor/scripts/lifecycle-label-trust.mjs +98 -2
- package/plugins/lisa-cursor/skills/lisa-github-build-intake/SKILL.md +15 -0
- package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-expo-agy/plugin.json +1 -1
- package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs-agy/plugin.json +1 -1
- package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw-agy/plugin.json +1 -1
- package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser-agy/plugin.json +1 -1
- package/plugins/lisa-phaser-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-rails-agy/plugin.json +1 -1
- package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript-agy/plugin.json +1 -1
- package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki-agy/plugin.json +1 -1
- package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/src/base/hooks/threshold-ratchet.mjs +44 -4
- package/plugins/src/base/scripts/lifecycle-label-trust.mjs +98 -2
- package/plugins/src/base/skills/lisa-github-build-intake/SKILL.md +15 -0
- package/rails/copy-overwrite/scripts/check-threshold-ratchet.mjs +44 -4
- package/typescript/copy-contents/.husky/commit-msg +10 -3
- package/typescript/copy-overwrite/scripts/check-threshold-ratchet.mjs +44 -4
|
@@ -146,13 +146,42 @@ export function classifyEnvironment(value) {
|
|
|
146
146
|
*/
|
|
147
147
|
export function isDestructive(fields) {
|
|
148
148
|
const capability = normalize(fields?.capability);
|
|
149
|
-
if (
|
|
149
|
+
if (isDestructiveName(capability)) {
|
|
150
150
|
return true;
|
|
151
151
|
}
|
|
152
152
|
const summary = fields?.summary ?? {};
|
|
153
153
|
return Number(summary.deleted) > 0 || Number(summary.created) > 0;
|
|
154
154
|
}
|
|
155
155
|
|
|
156
|
+
/**
|
|
157
|
+
* Whether a capability name declares a destructive operation.
|
|
158
|
+
*
|
|
159
|
+
* Matched per hyphen-separated segment as well as whole, because the envelope
|
|
160
|
+
* schema admits any `^[a-z][a-z0-9-]*$` while this list holds only bare verbs.
|
|
161
|
+
* A compound name — `reset-database`, `db-teardown`, `seed-all` — matched
|
|
162
|
+
* nothing and the name arm returned false.
|
|
163
|
+
*
|
|
164
|
+
* The counts arm does not save that case. It fires only when a run *reports*
|
|
165
|
+
* rows touched, so the bypass needs a compound name and a silent summary, and
|
|
166
|
+
* an operation that deletes without reporting is precisely what a destructive
|
|
167
|
+
* guard exists for. The name arm is the primary control; counts are a backstop.
|
|
168
|
+
*
|
|
169
|
+
* Segment matching, not substring matching: `presets` contains `reset` but is
|
|
170
|
+
* not a segment of it, so it stays non-destructive. `migrate-down` still
|
|
171
|
+
* matches as a whole name, since neither `migrate` nor `down` is destructive
|
|
172
|
+
* alone and promoting either would refuse ordinary forward migrations.
|
|
173
|
+
* @param {string} capability - Normalized capability name
|
|
174
|
+
* @returns {boolean} True when any part of the name is a destructive verb
|
|
175
|
+
*/
|
|
176
|
+
function isDestructiveName(capability) {
|
|
177
|
+
if (DESTRUCTIVE_CAPABILITIES.includes(capability)) {
|
|
178
|
+
return true;
|
|
179
|
+
}
|
|
180
|
+
return capability
|
|
181
|
+
.split("-")
|
|
182
|
+
.some(segment => DESTRUCTIVE_CAPABILITIES.includes(segment));
|
|
183
|
+
}
|
|
184
|
+
|
|
156
185
|
/**
|
|
157
186
|
* Build the denial for a resolved environment, or null when it is permitted.
|
|
158
187
|
* @param {unknown} environment - Server-resolved environment identity
|
|
@@ -147,7 +147,19 @@ const CHILD_TIMEOUT_MS = Number(
|
|
|
147
147
|
process.env.LISA_WORK_ITEM_TIMEOUT_MS || 30_000
|
|
148
148
|
);
|
|
149
149
|
|
|
150
|
-
|
|
150
|
+
/**
|
|
151
|
+
* Run a child process, with the module's shared failure conventions.
|
|
152
|
+
*
|
|
153
|
+
* Exported so the stdout guarantee below can be asserted against a real spawn
|
|
154
|
+
* failure rather than a mocked one — the defect it fixes only appears when
|
|
155
|
+
* `spawnSync` genuinely declines to start a child, which a stub cannot stage
|
|
156
|
+
* convincingly.
|
|
157
|
+
* @param {string} command - Executable to run.
|
|
158
|
+
* @param {string[]} args - Arguments to pass.
|
|
159
|
+
* @param {object} [options] - cwd, env, input, timeout, allowFailure, error.
|
|
160
|
+
* @returns {object} The spawnSync result, with stdout and stderr always strings.
|
|
161
|
+
*/
|
|
162
|
+
export function run(command, args, options = {}) {
|
|
151
163
|
const result = spawnSync(command, args, {
|
|
152
164
|
cwd: options.cwd ?? process.cwd(),
|
|
153
165
|
encoding: "utf8",
|
|
@@ -172,7 +184,18 @@ function run(command, args, options = {}) {
|
|
|
172
184
|
options.error ?? `${command} ${args.join(" ")} failed`
|
|
173
185
|
);
|
|
174
186
|
}
|
|
175
|
-
|
|
187
|
+
// `spawnSync` reports `stdout`/`stderr` as null when the child never ran —
|
|
188
|
+
// an absent binary, a permissions failure, a timeout. Callers passing
|
|
189
|
+
// `allowFailure` then reach straight for `.stdout.trim()`, and every one of
|
|
190
|
+
// them would throw `Cannot read properties of null`: an unrelated TypeError
|
|
191
|
+
// in place of the real cause, on the path specifically written to tolerate
|
|
192
|
+
// failure. Normalizing here rather than at each call site means a caller
|
|
193
|
+
// added later inherits the guarantee instead of having to remember it.
|
|
194
|
+
return {
|
|
195
|
+
...result,
|
|
196
|
+
stdout: result.stdout ?? "",
|
|
197
|
+
stderr: result.stderr ?? "",
|
|
198
|
+
};
|
|
176
199
|
}
|
|
177
200
|
|
|
178
201
|
function git(args, options = {}) {
|
|
@@ -699,7 +722,77 @@ function githubHierarchy(ref, contract, number) {
|
|
|
699
722
|
return states;
|
|
700
723
|
}
|
|
701
724
|
|
|
725
|
+
/**
|
|
726
|
+
* The oldest `gh` that understands every field this module asks for.
|
|
727
|
+
*
|
|
728
|
+
* `closedByPullRequestsReferences` landed in gh 2.73.0. An older CLI does not
|
|
729
|
+
* fail informatively — it reports an unknown-field error naming a JSON key,
|
|
730
|
+
* which reads like a Lisa bug rather than an out-of-date tool.
|
|
731
|
+
*/
|
|
732
|
+
const GH_MINIMUM = [2, 73, 0];
|
|
733
|
+
|
|
734
|
+
let ghVersionChecked = false;
|
|
735
|
+
|
|
736
|
+
/**
|
|
737
|
+
* Whether one dotted version sorts before another.
|
|
738
|
+
*
|
|
739
|
+
* Compared part by part rather than as numbers or text, because both of the
|
|
740
|
+
* obvious shortcuts are wrong in ways that would silently misjudge: `2.9.0`
|
|
741
|
+
* parses as the float 2.9 and beats `2.73.0`, and string comparison puts "2.9"
|
|
742
|
+
* after "2.73" for the same reason.
|
|
743
|
+
* @param {number[]} actual The version found.
|
|
744
|
+
* @param {number[]} minimum The version required.
|
|
745
|
+
* @returns {boolean} True when `actual` precedes `minimum`.
|
|
746
|
+
*/
|
|
747
|
+
function isOlder(actual, minimum) {
|
|
748
|
+
const first = minimum.findIndex((part, index) => actual[index] !== part);
|
|
749
|
+
return first !== -1 && actual[first] < minimum[first];
|
|
750
|
+
}
|
|
751
|
+
|
|
752
|
+
/**
|
|
753
|
+
* Refuse early when the installed `gh` predates a field this module needs.
|
|
754
|
+
*
|
|
755
|
+
* Deliberately NOT fail-closed on an unreadable version. This is a diagnostic,
|
|
756
|
+
* not a gate: its whole job is turning an obscure downstream error into a
|
|
757
|
+
* sentence naming the real problem. Blocking because `gh --version` printed
|
|
758
|
+
* something unfamiliar would invent a failure where the tool may be perfectly
|
|
759
|
+
* capable, and the call that follows still surfaces any genuine incompatibility
|
|
760
|
+
* on its own. So an unparseable version means "say nothing and let the real
|
|
761
|
+
* call speak", never "assume it is fine" — nothing is being reported as proved.
|
|
762
|
+
*
|
|
763
|
+
* Checked once per process: this sits on the path of every tracker read, and a
|
|
764
|
+
* subprocess per call to re-learn an answer that cannot change mid-run is pure
|
|
765
|
+
* cost.
|
|
766
|
+
* @param {Function} [exec] Command runner, injected for tests.
|
|
767
|
+
* @returns {void}
|
|
768
|
+
*/
|
|
769
|
+
export function assertGhVersion(exec = run) {
|
|
770
|
+
if (ghVersionChecked) return;
|
|
771
|
+
ghVersionChecked = true;
|
|
772
|
+
const printed = exec("gh", ["--version"], { allowFailure: true }).stdout;
|
|
773
|
+
const found = /gh version (\d+)\.(\d+)\.(\d+)/u.exec(printed ?? "");
|
|
774
|
+
if (!found) return;
|
|
775
|
+
|
|
776
|
+
const actual = found.slice(1, 4).map(Number);
|
|
777
|
+
if (!isOlder(actual, GH_MINIMUM)) return;
|
|
778
|
+
throw new TrackingError(
|
|
779
|
+
`gh ${actual.join(".")} is too old for work-item tracking, which needs ` +
|
|
780
|
+
`${GH_MINIMUM.join(".")} or newer.\nThe pull-request backlink is read ` +
|
|
781
|
+
`from the "closedByPullRequestsReferences" field, added in gh ` +
|
|
782
|
+
`${GH_MINIMUM.join(".")}.\nUpgrade the GitHub CLI, then retry.`
|
|
783
|
+
);
|
|
784
|
+
}
|
|
785
|
+
|
|
786
|
+
/**
|
|
787
|
+
* Reset the once-per-process version memo. Exported for tests only.
|
|
788
|
+
* @returns {void}
|
|
789
|
+
*/
|
|
790
|
+
export function resetGhVersionCheck() {
|
|
791
|
+
ghVersionChecked = false;
|
|
792
|
+
}
|
|
793
|
+
|
|
702
794
|
function githubIssue(ref, contract) {
|
|
795
|
+
assertGhVersion();
|
|
703
796
|
const number = ref.slice(ref.lastIndexOf("#") + 1);
|
|
704
797
|
const result = run(
|
|
705
798
|
"gh",
|
|
@@ -999,9 +1092,48 @@ function validateLive(ref, contract = trackerContract()) {
|
|
|
999
1092
|
}
|
|
1000
1093
|
}
|
|
1001
1094
|
|
|
1002
|
-
|
|
1095
|
+
/**
|
|
1096
|
+
* Punctuation that can hug a URL in prose or markdown, stripped before compare.
|
|
1097
|
+
*
|
|
1098
|
+
* A URL is recognised as a whitespace-delimited token, so anything a writer
|
|
1099
|
+
* wraps around it — `<url>`, a trailing full stop, a closing bracket — would
|
|
1100
|
+
* otherwise make an exact comparison fail against a backlink that is perfectly
|
|
1101
|
+
* valid. Being too strict here fails closed and merely annoys; being too loose
|
|
1102
|
+
* is the defect below.
|
|
1103
|
+
*/
|
|
1104
|
+
const URL_EDGES = /^[<([]+|[>)\].,;:]+$/g;
|
|
1105
|
+
|
|
1106
|
+
/**
|
|
1107
|
+
* The URLs a comment offers as backlinks, as discrete tokens.
|
|
1108
|
+
* @param {string} text Comment body.
|
|
1109
|
+
* @returns {string[]} Whitespace-delimited tokens, trimmed of edge punctuation.
|
|
1110
|
+
*/
|
|
1111
|
+
function backlinkTokens(text) {
|
|
1112
|
+
return text.split(/\s+/).map(token => token.replace(URL_EDGES, ""));
|
|
1113
|
+
}
|
|
1114
|
+
|
|
1115
|
+
/**
|
|
1116
|
+
* Whether a value carries a backlink to exactly this pull request.
|
|
1117
|
+
*
|
|
1118
|
+
* The comparison is token equality, not containment. `value.includes(prUrl)`
|
|
1119
|
+
* was a substring test against a URL ending in the PR number, so a comment
|
|
1120
|
+
* linking PR #123 satisfied the gate for PR #12 — `.../pull/12` is a prefix of
|
|
1121
|
+
* `.../pull/123`. That is a fail-open in the check whose entire job is proving
|
|
1122
|
+
* a change is bound to its own work item, and it fails silently: the check goes
|
|
1123
|
+
* green and reports the binding verified.
|
|
1124
|
+
*
|
|
1125
|
+
* Both native paths already compare with `===`. Only this fallback was loose,
|
|
1126
|
+
* and it is the path GitHub Issues actually uses, having no native PR-link
|
|
1127
|
+
* field. Exported so the comparison can be asserted directly — a permissive
|
|
1128
|
+
* comparison returns `true` rather than throwing, so nothing observable changes
|
|
1129
|
+
* without an assertion on the returned boolean.
|
|
1130
|
+
* @param {unknown} value Comment body, or a structure containing one.
|
|
1131
|
+
* @param {string} prUrl The pull request URL that must be linked.
|
|
1132
|
+
* @returns {boolean} True when this exact pull request is linked.
|
|
1133
|
+
*/
|
|
1134
|
+
export function textContainsBacklink(value, prUrl) {
|
|
1003
1135
|
if (typeof value === "string")
|
|
1004
|
-
return value.includes(MARKER) && value.includes(prUrl);
|
|
1136
|
+
return value.includes(MARKER) && backlinkTokens(value).includes(prUrl);
|
|
1005
1137
|
if (Array.isArray(value))
|
|
1006
1138
|
return value.some(item => textContainsBacklink(item, prUrl));
|
|
1007
1139
|
if (value && typeof value === "object")
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui-ci-quality-jobs-compute.d.ts","sourceRoot":"","sources":["../../src/cli/ui-ci-quality-jobs-compute.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAEL,KAAK,UAAU,EACf,KAAK,SAAS,EACf,MAAM,sBAAsB,CAAC;AAE9B,2EAA2E;AAC3E,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAED,4DAA4D;AAC5D,MAAM,MAAM,mBAAmB,GAC3B;IAAE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;CAAE,GAChE;IACE,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEN,kDAAkD;AAClD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,sEAAsE;IACtE,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,yDAAyD;AACzD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,QAAQ,CAAC,IAAI,EAAE,iBAAiB,EAAE,CAAC;CACpC,CAAC;
|
|
1
|
+
{"version":3,"file":"ui-ci-quality-jobs-compute.d.ts","sourceRoot":"","sources":["../../src/cli/ui-ci-quality-jobs-compute.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAEL,KAAK,UAAU,EACf,KAAK,SAAS,EACf,MAAM,sBAAsB,CAAC;AAE9B,2EAA2E;AAC3E,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAED,4DAA4D;AAC5D,MAAM,MAAM,mBAAmB,GAC3B;IAAE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;CAAE,GAChE;IACE,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEN,kDAAkD;AAClD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,sEAAsE;IACtE,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,yDAAyD;AACzD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,QAAQ,CAAC,IAAI,EAAE,iBAAiB,EAAE,CAAC;CACpC,CAAC;AA+MF;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,gBAAgB,EACxB,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,mBAAmB,GAC3B,kBAAkB,CAqCpB"}
|
|
@@ -61,6 +61,11 @@ const QUALITY_JOB_SPECS = [
|
|
|
61
61
|
label: "🚦 Approval Gate",
|
|
62
62
|
gate: "require_approval",
|
|
63
63
|
},
|
|
64
|
+
{
|
|
65
|
+
id: "work_item",
|
|
66
|
+
label: "🔗 Work-Item Traceability",
|
|
67
|
+
gate: "traceability_declared",
|
|
68
|
+
},
|
|
64
69
|
];
|
|
65
70
|
/**
|
|
66
71
|
* Read whether the mutation gate is enabled in merged Lisa config.
|
|
@@ -79,6 +84,41 @@ function mutationGateEnabled(config) {
|
|
|
79
84
|
}
|
|
80
85
|
return config.quality.mutation.gate.enabled === true;
|
|
81
86
|
}
|
|
87
|
+
/**
|
|
88
|
+
* Why each gate kind closes its job, keyed by kind.
|
|
89
|
+
*
|
|
90
|
+
* A table rather than a chain of conditionals: every entry answers the same
|
|
91
|
+
* question in the same shape, so adding a gate is one row instead of one more
|
|
92
|
+
* branch through a function that grows harder to read with each kind.
|
|
93
|
+
*/
|
|
94
|
+
const GATE_CLOSERS = {
|
|
95
|
+
mutation: {
|
|
96
|
+
closed: (_inputs, config) => !mutationGateEnabled(config),
|
|
97
|
+
reason: "mutation gate is disabled",
|
|
98
|
+
},
|
|
99
|
+
verify_enforced: {
|
|
100
|
+
closed: inputs => !inputs.verifyEnforced,
|
|
101
|
+
reason: "verify_enforced is off",
|
|
102
|
+
},
|
|
103
|
+
compliance_framework: {
|
|
104
|
+
closed: inputs => inputs.complianceFramework.length === 0 ||
|
|
105
|
+
inputs.complianceFramework === "none" ||
|
|
106
|
+
inputs.complianceFramework === "(none)",
|
|
107
|
+
reason: "no compliance_framework configured",
|
|
108
|
+
},
|
|
109
|
+
zap_target_url: {
|
|
110
|
+
closed: inputs => inputs.zapTargetUrl.length === 0,
|
|
111
|
+
reason: "zap_target_url is not set",
|
|
112
|
+
},
|
|
113
|
+
require_approval: {
|
|
114
|
+
closed: inputs => !inputs.requireApproval,
|
|
115
|
+
reason: "require_approval is off",
|
|
116
|
+
},
|
|
117
|
+
traceability_declared: {
|
|
118
|
+
closed: (_inputs, config) => traceabilityOff(config),
|
|
119
|
+
reason: "gates.traceability is off",
|
|
120
|
+
},
|
|
121
|
+
};
|
|
82
122
|
/**
|
|
83
123
|
* Resolve a config/workflow gate into an off-reason, or undefined when open.
|
|
84
124
|
* @param gate - Gate kind on the job spec
|
|
@@ -87,25 +127,30 @@ function mutationGateEnabled(config) {
|
|
|
87
127
|
* @returns Off reason when the gate closes the job
|
|
88
128
|
*/
|
|
89
129
|
function gateOffReason(gate, inputs, config) {
|
|
90
|
-
if (gate
|
|
91
|
-
return
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
130
|
+
if (!gate)
|
|
131
|
+
return undefined;
|
|
132
|
+
const closer = GATE_CLOSERS[gate];
|
|
133
|
+
return closer.closed(inputs, config) ? closer.reason : undefined;
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Whether the project has switched the work-item traceability gate off.
|
|
137
|
+
*
|
|
138
|
+
* Absence is NOT off. A project that never mentions the gate still runs the
|
|
139
|
+
* built-in check — the gates block narrows and overrides, it does not enable —
|
|
140
|
+
* so treating an undeclared gate as inactive would show the console a job as
|
|
141
|
+
* disabled while CI keeps enforcing it. Only an explicit `off` is off.
|
|
142
|
+
* @param config - Merged Lisa config
|
|
143
|
+
* @returns True only when the gate is explicitly declared off
|
|
144
|
+
*/
|
|
145
|
+
function traceabilityOff(config) {
|
|
146
|
+
if (!isJsonObject(config.gates) || !isJsonObject(config.gates.traceability)) {
|
|
147
|
+
return false;
|
|
104
148
|
}
|
|
105
|
-
|
|
106
|
-
|
|
149
|
+
const declared = config.gates.traceability["pull-request"];
|
|
150
|
+
if (typeof declared === "string") {
|
|
151
|
+
return declared === "off";
|
|
107
152
|
}
|
|
108
|
-
return
|
|
153
|
+
return isJsonObject(declared) && declared.level === "off";
|
|
109
154
|
}
|
|
110
155
|
/**
|
|
111
156
|
* Resolve secret presence into active/off/unknown for one job.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui-ci-quality-jobs-compute.js","sourceRoot":"","sources":["../../src/cli/ui-ci-quality-jobs-compute.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EACL,YAAY,GAGb,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"ui-ci-quality-jobs-compute.js","sourceRoot":"","sources":["../../src/cli/ui-ci-quality-jobs-compute.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lisa-owned-hash-ledger.d.ts","sourceRoot":"","sources":["../../src/core/lisa-owned-hash-ledger.ts"],"names":[],"mappings":"AACA,6EAA6E;AAE7E;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAC3C,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"lisa-owned-hash-ledger.d.ts","sourceRoot":"","sources":["../../src/core/lisa-owned-hash-ledger.ts"],"names":[],"mappings":"AACA,6EAA6E;AAE7E;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAC3C,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CA6TjC,CAAC"}
|
|
@@ -128,6 +128,7 @@ export const LISA_OWNED_HASH_LEDGER = Object.freeze({
|
|
|
128
128
|
"1e46e6ca651e87e7814a4f486af5784ed2f7a8a48eadcaa7d3fef26e380929f9",
|
|
129
129
|
"46b7c2213112306af9702c910a9bcf485ea0b46154e46f0afe8fb8b5b0ba6c08",
|
|
130
130
|
"49dee610439f4f21aecb0420a0cc72f5d3595a36f2489970053096190b9909c4",
|
|
131
|
+
"6bcf8b88b1d5ade1aa7c7902ba12af1df7b0b13d4e69c49a24f76a92474c93ec",
|
|
131
132
|
"6da00221189ed0f8a2938f15e02bcc2633d44f5f05489979fbb94202bc45a6d4",
|
|
132
133
|
"e1e3f22b33267212b90f915f83821559d1a45cab5b16c7164b86bd6c7b53549b",
|
|
133
134
|
]),
|
|
@@ -165,6 +166,7 @@ export const LISA_OWNED_HASH_LEDGER = Object.freeze({
|
|
|
165
166
|
"scripts/lisa-destructive-guard.mjs": Object.freeze([
|
|
166
167
|
"4fb431a3c58f443e303d613934d023d9e95ddae5c42710bb7009f7c080c82a64",
|
|
167
168
|
"66ade2c9cc0554c4934ed94a44563fd9d648b37cacfa9a5d31f17ac4f181e5a3",
|
|
169
|
+
"f0f3c43bbb6d1e389135b0205a051e64891e539d4272df2a87841ee82a8b7a55",
|
|
168
170
|
]),
|
|
169
171
|
"scripts/lisa-enforcement-fallback.sh": Object.freeze([
|
|
170
172
|
"1bec5f3c284b3febdc471487ee6a23ffb72bd4e7b293f9e26b0188f32318c722",
|
|
@@ -278,16 +280,19 @@ export const LISA_OWNED_HASH_LEDGER = Object.freeze({
|
|
|
278
280
|
"9dd145c0f9dac6ed252b13d32e130dbab964da6cd357981b58541780ecb2f981",
|
|
279
281
|
]),
|
|
280
282
|
"scripts/lisa-work-item.mjs": Object.freeze([
|
|
283
|
+
"04f78df45465d01601c8b5711b74749b2a2c2b70b9c916d6790bd69e1c11865d",
|
|
281
284
|
"238dc2da29938edd92518c2b08192d14c6f2751ed175c07d6e882814829b7b7e",
|
|
282
285
|
"2d9ca0841db9e75ddfd95e3a4d485fd01aa639a512ef648996f565b7991d8e2b",
|
|
283
286
|
"4c263fef48c03b3b6c623ea8a6cd55505bfaf28197e5072226ea35f9f3d26885",
|
|
284
287
|
"5eb31c284e820a51312d4484f0669128007326af55ee515923fec33700d003a1",
|
|
285
288
|
"6a8be8577242588f14ab52b25b2a22b6def53aefa9513b4d3d7c49f4d8027079",
|
|
289
|
+
"83e7f1257bfee293bcdcdafef4272f40fcdca2d9e43ceb9df647c13c8277423d",
|
|
286
290
|
"9223856be4618fb1e3e731b259ae5bf5328decc322f0b4a0d0fd18d6b12cd45a",
|
|
287
291
|
"96a87c131606b3edd43e52485e68f8ffbf5c528cb4beb7a1185263519a9632ce",
|
|
288
292
|
"ab0dede91c5c8a07984ae13aa48ec70cdcd2fa691b59617bc4b57998dc79a51c",
|
|
289
293
|
"b4e8aea72219f2c568429686a2ff1acd0da75ca26f244a66f3c4334297c8cd8e",
|
|
290
294
|
"c78df9d5f0f3fc388ff60a7db5898478a2a4d6d7325833f10384b5a8c62bb34a",
|
|
295
|
+
"d89d1d6c365dac268cada974179c4152833fd6894287856a9e95adc03fabeff8",
|
|
291
296
|
"e30016a49deff1c3cd3ae7951262aeb2ef3d472bce76bbbe2a177db6017c7cad",
|
|
292
297
|
"e41e9534988ce69a836664437a78f3a3f3dc7ebbe396c86cdab0ea63fb7c19da",
|
|
293
298
|
"f12006df4ed9974f65d955718af7dcc8a079799d02c58bd38b2d9c49f271db72",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lisa-owned-hash-ledger.js","sourceRoot":"","sources":["../../src/core/lisa-owned-hash-ledger.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lisa-owned-hash-ledger.js","sourceRoot":"","sources":["../../src/core/lisa-owned-hash-ledger.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upstream-evidence-manifest.d.ts","sourceRoot":"","sources":["../../src/core/upstream-evidence-manifest.ts"],"names":[],"mappings":"AACA,iFAAiF;AACjF,eAAO,MAAM,0BAA0B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAs1EpE,CAAC;AAEL,4EAA4E;AAC5E,eAAO,MAAM,yBAAyB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"upstream-evidence-manifest.d.ts","sourceRoot":"","sources":["../../src/core/upstream-evidence-manifest.ts"],"names":[],"mappings":"AACA,iFAAiF;AACjF,eAAO,MAAM,0BAA0B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAs1EpE,CAAC;AAEL,4EAA4E;AAC5E,eAAO,MAAM,yBAAyB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAgqOjE,CAAC;AAEL,sFAAsF;AACtF,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAk6I/D,CAAC"}
|
|
@@ -6,7 +6,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
|
|
|
6
6
|
"all/copy-overwrite/scripts/check-state-classification.mjs": "b218927f64a3db4f37762b60014e29d85a46899f4a0d17fcecc7782ce48bc499",
|
|
7
7
|
"all/copy-overwrite/scripts/lib/invoked-as-script.mjs": "fbb9b88fc85a3e22f21af39e1c17acf67ff83fc6b5a6cdc8081bde333c48faa7",
|
|
8
8
|
"all/copy-overwrite/scripts/lisa-command-envelope.mjs": "014a94647efc636cbce961364a82f03c1f3c1e54a55e9d21508fded88dce49c4",
|
|
9
|
-
"all/copy-overwrite/scripts/lisa-destructive-guard.mjs": "
|
|
9
|
+
"all/copy-overwrite/scripts/lisa-destructive-guard.mjs": "f0f3c43bbb6d1e389135b0205a051e64891e539d4272df2a87841ee82a8b7a55",
|
|
10
10
|
"all/copy-overwrite/scripts/lisa-enforcement-fallback.sh": "68e1b78d5d4471fadbe2eb575ae46221838217290123a9910d76dba0f1c34131",
|
|
11
11
|
"all/copy-overwrite/scripts/lisa-floor-collisions.mjs": "2d11968f6852ab745cba939de03c6d6cb5f413975d2cfc8fc447bdd0b218e91a",
|
|
12
12
|
"all/copy-overwrite/scripts/lisa-gates.mjs": "fbd68cf571985d7cfccf0f280cfe8112955849126e44d27d55ad619f9abb79ef",
|
|
@@ -19,7 +19,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
|
|
|
19
19
|
"all/copy-overwrite/scripts/lisa-reconcile-policy.mjs": "3c062d0b79961a9a93a822507e893dcdaa71d65d735557727d20464c2489d812",
|
|
20
20
|
"all/copy-overwrite/scripts/lisa-run-gates.mjs": "d078570b2a7964eb481cd05e118e2a6559968020392c6e570d90cec8f20c5487",
|
|
21
21
|
"all/copy-overwrite/scripts/lisa-schema-validate.mjs": "2ace82daacdebbbb00a7eceb09fbe82cabec04330a083ca10417b2ee4e0a63eb",
|
|
22
|
-
"all/copy-overwrite/scripts/lisa-work-item.mjs": "
|
|
22
|
+
"all/copy-overwrite/scripts/lisa-work-item.mjs": "d89d1d6c365dac268cada974179c4152833fd6894287856a9e95adc03fabeff8",
|
|
23
23
|
"all/copy-overwrite/scripts/schemas/lisa-command-envelope.v1.schema.json": "d153b7c2953a30f180e38f09e98240c63327f5196eeba9bdf545e5a1f125a879",
|
|
24
24
|
"all/copy-overwrite/scripts/schemas/lisa-state-contract.v1.schema.json": "6b7afe4ffeba8aaa53871d8855172f7eacde05953b1321145218ec638ff5c1c4",
|
|
25
25
|
"all/create-only/.agents/rules/README.md": "fd260fd9b2934d0d698a8098dfff07fedc071849d588e602d773666678c3d540",
|
|
@@ -355,7 +355,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
|
|
|
355
355
|
"plugins/src/base/hooks/sonar-secrets.sh": "bf4132e49ba18e2f7e941520c299c15aeeacfd220e489f3d2eb8397f2048157b",
|
|
356
356
|
"plugins/src/base/hooks/threshold-ratchet-compare.mjs": "90affbeaed0d65c032dccfc0bd4a4b26eda291f6b61aa8b12599f41842452e0a",
|
|
357
357
|
"plugins/src/base/hooks/threshold-ratchet-families.mjs": "8fa58cc7276add0b2edf1de92bdcc32d81d840811ef0614ddc724010b59a888c",
|
|
358
|
-
"plugins/src/base/hooks/threshold-ratchet.mjs": "
|
|
358
|
+
"plugins/src/base/hooks/threshold-ratchet.mjs": "693b16d982635eef3c2d7564069623058c22c09a5784ccb0db5003cd55cdc637",
|
|
359
359
|
"plugins/src/base/hooks/threshold-ratchet.sh": "b86f4d0b554e44fd119ad8a8920cd0ba6c9dbe779f7ee219d381cf0629453990",
|
|
360
360
|
"plugins/src/base/hooks/ticket-sync-reminder.sh": "212f80bcdfd9e3ec2254987c5a7186d1d2d38065b330ddcdc631f76df7c4a6c0",
|
|
361
361
|
"plugins/src/base/hooks/track-plan-sessions.sh": "8bc47dcad3aed628df0c9efbe7b6f3df87635b94b0c54c71e0bd52eceace563a",
|
|
@@ -470,7 +470,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
|
|
|
470
470
|
"plugins/src/base/scripts/design-source-gate.mjs": "4db12844df14cc5dbcbdb96df9273cdce08057bc839493649fa65fccf559953b",
|
|
471
471
|
"plugins/src/base/scripts/doctor-report.mjs": "f183e62848ac539da56a525fe2105fc6251a49e555a01dd1bba10d9227b1a6bf",
|
|
472
472
|
"plugins/src/base/scripts/install-remote-agent-aws.mjs": "5ef1c323d7cbfda8976f6fb0c24f7a8e5f5757475fd1d71c6e5bec91023cebe3",
|
|
473
|
-
"plugins/src/base/scripts/lifecycle-label-trust.mjs": "
|
|
473
|
+
"plugins/src/base/scripts/lifecycle-label-trust.mjs": "0a9892890da6011733bf9b1186fbe936253c2796c4ac448f1a55f63b8daaa154",
|
|
474
474
|
"plugins/src/base/scripts/plugin-sync-explain.mjs": "8592c7359ee6cdb35995a882c8bb27e7b9c404074067fd272c70013e44e04b71",
|
|
475
475
|
"plugins/src/base/scripts/project-ideation-idempotency-harness.mjs": "81b6eb911cf5cf6d1913cacf65b6ae298732e0a4e92529aed6767cdf79ab2ec0",
|
|
476
476
|
"plugins/src/base/scripts/queue-contract-resolution.mjs": "5944dd862f949155db1f4e43279041407dc2c920723cee808fa353dc0bdd2c6e",
|
|
@@ -511,7 +511,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
|
|
|
511
511
|
"plugins/src/base/skills/lisa-git-prune/SKILL.md": "11fad06d109538f1a8ee4ef8043bb0e083672e3c9a7cb7ae8a7233c5411d6dd2",
|
|
512
512
|
"plugins/src/base/skills/lisa-git-submit-pr/SKILL.md": "7126076f246bf56c85ce83b4c8ff98c9888ab2a543fba527372e137c1340c129",
|
|
513
513
|
"plugins/src/base/skills/lisa-github-add-journey/SKILL.md": "6b3bbe8ff85c7cb20412dcfcab3d7506a3efc67907cb749622c329fb4130baf4",
|
|
514
|
-
"plugins/src/base/skills/lisa-github-build-intake/SKILL.md": "
|
|
514
|
+
"plugins/src/base/skills/lisa-github-build-intake/SKILL.md": "ad703d7e7a9f13de6e708fc31fa321b329295b0cc8b31de8804c2fdc3b2fa7fa",
|
|
515
515
|
"plugins/src/base/skills/lisa-github-claim/SKILL.md": "71301c6d45d7eb5523e74aa7f070bb2becf57ca68fb8bde9e02ee937b78815f7",
|
|
516
516
|
"plugins/src/base/skills/lisa-github-create/SKILL.md": "2128a5069c2663a6a33cef7d0465e672682429b176183e101d3ea65f276a1b93",
|
|
517
517
|
"plugins/src/base/skills/lisa-github-evidence/SKILL.md": "73142ef660766f4b4e4947ad25d00614b8fb9ad4dfa7e4f45b19379ae981d84d",
|
|
@@ -1019,7 +1019,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
|
|
|
1019
1019
|
"rails/copy-overwrite/ast-grep/utils/.gitkeep": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
|
|
1020
1020
|
"rails/copy-overwrite/config/initializers/version.rb": "703bdfcceb031f38d19ddebe7ae3d432051f0d444ab7467b406ddd8e451ec9c7",
|
|
1021
1021
|
"rails/copy-overwrite/lefthook.yml": "3ae82d0a6ad86708d8ceaa1f9a3bbe12ef64e8fa12a0248bed5e3180bb431c68",
|
|
1022
|
-
"rails/copy-overwrite/scripts/check-threshold-ratchet.mjs": "
|
|
1022
|
+
"rails/copy-overwrite/scripts/check-threshold-ratchet.mjs": "6bcf8b88b1d5ade1aa7c7902ba12af1df7b0b13d4e69c49a24f76a92474c93ec",
|
|
1023
1023
|
"rails/copy-overwrite/scripts/lisa-clean-git-env.sh": "d15af6f13eedbca41046070972380e69fc0af8f7d903aac12b8644389b9a0c91",
|
|
1024
1024
|
"rails/copy-overwrite/scripts/threshold-ratchet-compare.mjs": "cf99167b05d210afad01fb41fc4aed548c66ee0e9a7c4decb8afa1f180eb5640",
|
|
1025
1025
|
"rails/copy-overwrite/scripts/threshold-ratchet-families.mjs": "f50e35d11295a836bd5b6d818aed6daea68ff70bdffbbdf9f67b09984a2628da",
|
|
@@ -1124,7 +1124,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
|
|
|
1124
1124
|
"tsconfig/phaser.json": "5919bceaa8b12c772407021522fa63bfdf73063c23dba4d4d427d77562db6e21",
|
|
1125
1125
|
"tsconfig/spec.json": "632851ffa0fc7185f8d78b508b1d31bf39440907fad3a91ad174cc4ab93383ab",
|
|
1126
1126
|
"tsconfig/typescript.json": "8cf66a6535640e0a723e24bdf7a2d8e58a634c451f0754875c7880811381a914",
|
|
1127
|
-
"typescript/copy-contents/.husky/commit-msg": "
|
|
1127
|
+
"typescript/copy-contents/.husky/commit-msg": "85336c4d2c5bf5e16dd1b12b8c80668363d64b22e3c2e123955cf00e357fc22d",
|
|
1128
1128
|
"typescript/copy-contents/.husky/post-checkout": "f3abc4528e12d3ad2bc48b236d19f105e2817595c744156a558c62ae5551ccfb",
|
|
1129
1129
|
"typescript/copy-contents/.husky/pre-commit": "c29bb23a8466dd7f1e04ecbd2df5faaa5eb286f261cff948b9451430c0ca716b",
|
|
1130
1130
|
"typescript/copy-contents/.husky/pre-push": "13da67af0060558dd0a81320efe2719ff23ca3e8488000479e063f5ae9025f2c",
|
|
@@ -1153,7 +1153,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
|
|
|
1153
1153
|
"typescript/copy-overwrite/knip.json": "6eb93d705a2d645332fbae1dd42cf2d48f85978ebc265451a53790912f277d12",
|
|
1154
1154
|
"typescript/copy-overwrite/scripts/check-nightly-e2e-health.mjs": "5f47f02563671a25ad14dc69210f1f52e9141e0e53a27bafce52d41899aa9d21",
|
|
1155
1155
|
"typescript/copy-overwrite/scripts/check-skipped-required-checks.mjs": "5af5f112ba258c4874a65c72c8bed12165e75e4df407265eb46ee9c89c4e0e53",
|
|
1156
|
-
"typescript/copy-overwrite/scripts/check-threshold-ratchet.mjs": "
|
|
1156
|
+
"typescript/copy-overwrite/scripts/check-threshold-ratchet.mjs": "6bcf8b88b1d5ade1aa7c7902ba12af1df7b0b13d4e69c49a24f76a92474c93ec",
|
|
1157
1157
|
"typescript/copy-overwrite/scripts/check-verification-coverage.mjs": "0cddac03366644cdc99cc239e74520ac420d475b461a40a21728e43756872b07",
|
|
1158
1158
|
"typescript/copy-overwrite/scripts/lib/invoked-as-script.mjs": "fbb9b88fc85a3e22f21af39e1c17acf67ff83fc6b5a6cdc8081bde333c48faa7",
|
|
1159
1159
|
"typescript/copy-overwrite/scripts/lisa-mutation.mjs": "8e0bdb491dfaea04e88be1c1e2c6cc7cd34fa4ca18adddf5fecc43d7de8ffded",
|
|
@@ -7563,6 +7563,7 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
|
|
|
7563
7563
|
"tests/unit/cli/ui-automations-map.test.ts": true,
|
|
7564
7564
|
"tests/unit/cli/ui-automations-probe.test.ts": true,
|
|
7565
7565
|
"tests/unit/cli/ui-ci-quality-jobs.test.ts": true,
|
|
7566
|
+
"tests/unit/cli/ui-ci-traceability-job.test.ts": true,
|
|
7566
7567
|
"tests/unit/cli/ui-cmd.test.ts": true,
|
|
7567
7568
|
"tests/unit/cli/ui-config-write.test.ts": true,
|
|
7568
7569
|
"tests/unit/cli/ui-confined-project-read.test.ts": true,
|
|
@@ -7819,6 +7820,7 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
|
|
|
7819
7820
|
"tests/unit/scripts/cross-pollinate.test.ts": true,
|
|
7820
7821
|
"tests/unit/scripts/cursor-artifact-helpers.ts": true,
|
|
7821
7822
|
"tests/unit/scripts/derived-artifact-staleness.test.ts": true,
|
|
7823
|
+
"tests/unit/scripts/destructive-capability-compound-names.test.ts": true,
|
|
7822
7824
|
"tests/unit/scripts/destructive-production-guard.test.ts": true,
|
|
7823
7825
|
"tests/unit/scripts/destructive-production-unreachable.test.ts": true,
|
|
7824
7826
|
"tests/unit/scripts/detect-stale-workflow-inputs-helpers.ts": true,
|
|
@@ -7881,12 +7883,15 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
|
|
|
7881
7883
|
"tests/unit/scripts/state-classification.test.ts": true,
|
|
7882
7884
|
"tests/unit/scripts/threshold-ratchet-gates.test.ts": true,
|
|
7883
7885
|
"tests/unit/scripts/threshold-ratchet-promotion.test.ts": true,
|
|
7886
|
+
"tests/unit/scripts/threshold-ratchet-symlinked-entry.test.ts": true,
|
|
7884
7887
|
"tests/unit/scripts/threshold-ratchet-wiring.test.ts": true,
|
|
7885
7888
|
"tests/unit/scripts/threshold-ratchet.test.ts": true,
|
|
7886
7889
|
"tests/unit/scripts/upstream-evidence-manifest.test.ts": true,
|
|
7887
7890
|
"tests/unit/scripts/vacuous-required-checks.test.ts": true,
|
|
7888
7891
|
"tests/unit/scripts/verification-coverage.test.ts": true,
|
|
7892
|
+
"tests/unit/scripts/work-item-backlink-exactness.test.ts": true,
|
|
7889
7893
|
"tests/unit/scripts/work-item-github-failure-diagnosis.test.ts": true,
|
|
7894
|
+
"tests/unit/scripts/work-item-run-and-gh-version.test.ts": true,
|
|
7890
7895
|
"tests/unit/scripts/work-item-tracker-unreachable.test.ts": true,
|
|
7891
7896
|
"tests/unit/secrets/automation-workflow.test.ts": true,
|
|
7892
7897
|
"tests/unit/secrets/aws-bootstrap-derivation.test.ts": true,
|
|
@@ -8068,7 +8073,9 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
|
|
|
8068
8073
|
"tests/unit/strategies/learnings-audit-contract.test.ts": true,
|
|
8069
8074
|
"tests/unit/strategies/learnings-confirmation-contract.test.ts": true,
|
|
8070
8075
|
"tests/unit/strategies/learnings-overflow-contract.test.ts": true,
|
|
8076
|
+
"tests/unit/strategies/lifecycle-label-claimability.test.ts": true,
|
|
8071
8077
|
"tests/unit/strategies/lifecycle-label-trust-contract.test.ts": true,
|
|
8078
|
+
"tests/unit/strategies/lifecycle-label-trust-entry-guard.test.ts": true,
|
|
8072
8079
|
"tests/unit/strategies/lifecycle-label-trust-resolution.test.ts": true,
|
|
8073
8080
|
"tests/unit/strategies/lifecycle-label-trust.test.ts": true,
|
|
8074
8081
|
"tests/unit/strategies/linear-access-history.test.ts": true,
|