@codyswann/lisa 4.0.1 → 4.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.
Files changed (62) hide show
  1. package/all/copy-overwrite/scripts/lisa-gates.mjs +299 -15
  2. package/dist/cli/doctor-readiness.d.ts +25 -0
  3. package/dist/cli/doctor-readiness.d.ts.map +1 -1
  4. package/dist/cli/doctor-readiness.js +35 -5
  5. package/dist/cli/doctor-readiness.js.map +1 -1
  6. package/dist/core/lisa-owned-hash-ledger.d.ts.map +1 -1
  7. package/dist/core/lisa-owned-hash-ledger.js +5 -0
  8. package/dist/core/lisa-owned-hash-ledger.js.map +1 -1
  9. package/dist/core/upstream-evidence-manifest.d.ts.map +1 -1
  10. package/dist/core/upstream-evidence-manifest.js +5 -1
  11. package/dist/core/upstream-evidence-manifest.js.map +1 -1
  12. package/package.json +1 -1
  13. package/plugins/lisa/.claude-plugin/plugin.json +1 -1
  14. package/plugins/lisa/.codex-plugin/plugin.json +1 -1
  15. package/plugins/lisa-agy/plugin.json +1 -1
  16. package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
  17. package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
  18. package/plugins/lisa-cdk-agy/plugin.json +1 -1
  19. package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +1 -1
  20. package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +1 -1
  21. package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
  22. package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
  23. package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
  24. package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
  25. package/plugins/lisa-expo-agy/plugin.json +1 -1
  26. package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
  27. package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
  28. package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
  29. package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
  30. package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
  31. package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +1 -1
  32. package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
  33. package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
  34. package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
  35. package/plugins/lisa-nestjs-agy/plugin.json +1 -1
  36. package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +1 -1
  37. package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +1 -1
  38. package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
  39. package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
  40. package/plugins/lisa-openclaw-agy/plugin.json +1 -1
  41. package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +1 -1
  42. package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +1 -1
  43. package/plugins/lisa-phaser/.claude-plugin/plugin.json +1 -1
  44. package/plugins/lisa-phaser/.codex-plugin/plugin.json +1 -1
  45. package/plugins/lisa-phaser-agy/plugin.json +1 -1
  46. package/plugins/lisa-phaser-copilot/.claude-plugin/plugin.json +1 -1
  47. package/plugins/lisa-phaser-cursor/.claude-plugin/plugin.json +1 -1
  48. package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
  49. package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
  50. package/plugins/lisa-rails-agy/plugin.json +1 -1
  51. package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +1 -1
  52. package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +1 -1
  53. package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
  54. package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
  55. package/plugins/lisa-typescript-agy/plugin.json +1 -1
  56. package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +1 -1
  57. package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +1 -1
  58. package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
  59. package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
  60. package/plugins/lisa-wiki-agy/plugin.json +1 -1
  61. package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
  62. package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
@@ -24,6 +24,14 @@
24
24
  * another. What a gate needs in order to run is expressed as `needs`, and the
25
25
  * surface falls out of wherever that moment happens to occur.
26
26
  *
27
+ * `needs` is TWO fields wearing one name, split by who can honestly know the
28
+ * answer. A project declares `tools` and `secrets`, because those describe the
29
+ * prover IT named and Lisa has never seen it. The registry declares `deps`,
30
+ * because that describes the prover LISA wrote — see the field's own comment
31
+ * below. For as long as this sentence was written and no registry entry had a
32
+ * `needs`, the promise was true of one half only; the split is what makes it
33
+ * true of both.
34
+ *
27
35
  * ## Two proof modes
28
36
  *
29
37
  * `run` executes a task and reads its exit code. `await` watches for an
@@ -184,9 +192,48 @@ export const GATE_FIELDS = new Set(["run", "needs", "task"]);
184
192
  * run that is already blocked.
185
193
  */
186
194
 
195
+ /**
196
+ * Registry field: what a gate needs in order to run.
197
+ *
198
+ * The module doc comment above has promised this field since the registry was
199
+ * written — *"What a gate needs in order to run is expressed as `needs`"* — and
200
+ * until now no registry entry had one. Prose promising a mechanism that does
201
+ * not exist is the same shape as a check reporting satisfied without proving
202
+ * anything, in miniature, and it is closed here rather than filed separately
203
+ * because a generic runner cannot be built without it.
204
+ *
205
+ * Three keys, all optional:
206
+ *
207
+ * - `tools` and `secrets` are the union `needsAt` reports, and a project may
208
+ * declare its own on top. What Lisa knows and what the project knows are
209
+ * both true, so they add rather than override.
210
+ * - `deps` is REGISTRY-ONLY, and it is a claim about **Lisa's default prover
211
+ * for this gate**, not about the gate. `deps: false` says that prover runs
212
+ * with nothing installed — a shipped `.mjs` importing only `node:` builtins
213
+ * and its own siblings. Absent means the prover needs the project's
214
+ * dependencies, which is the safe answer and therefore the default.
215
+ *
216
+ * `deps` is registry-only because it is only ever safe as a claim about a
217
+ * command Lisa wrote. The moment a project names a prover of its own, Lisa has
218
+ * no idea what it imports — so `momentLegs` honours `deps: false` ONLY while
219
+ * the resolved task is still the registry default, and installs otherwise.
220
+ * Skipping an install a prover needed fails as `Cannot find module`, which
221
+ * reads as a broken gate rather than a wrong declaration; the asymmetry is why
222
+ * the unsafe direction is unreachable rather than merely discouraged.
223
+ */
224
+
187
225
  /** Prefix marking a gate, or a config key, that this project invented. */
188
226
  export const CUSTOM_PREFIX = "x-";
189
227
 
228
+ /**
229
+ * `needs.deps: false`, named once.
230
+ *
231
+ * Written as a shared constant rather than repeated inline so that the set of
232
+ * gates making this claim is greppable, and so a reader who wants to know what
233
+ * the claim means has one place to look rather than six identical literals.
234
+ */
235
+ const NO_INSTALL = Object.freeze({ deps: false });
236
+
190
237
  const COMMIT_ONWARD = [COMMIT, PUSH, PULL_REQUEST, PRE_DEPLOY, POST_DEPLOY];
191
238
  const PUSH_ONWARD = [PUSH, PULL_REQUEST, PRE_DEPLOY, POST_DEPLOY];
192
239
  const PR_ONWARD = [PULL_REQUEST, PRE_DEPLOY, POST_DEPLOY];
@@ -516,6 +563,9 @@ export const REGISTRY = Object.freeze({
516
563
  summary:
517
564
  "Every persistent entity carries a reset policy, and every fixture-owned entity has something that sweeps it.",
518
565
  task: "check:state-classification",
566
+ // `check-state-classification.mjs` imports `node:fs`, `node:path`,
567
+ // `node:url` and two shipped siblings. Nothing from `node_modules`.
568
+ needs: NO_INSTALL,
519
569
  declareOnly:
520
570
  "The prover ships as `scripts/check-state-classification.mjs` and no template installs a script for it. Point `run:` at a task that invokes it, or at your own inventory comparison.",
521
571
  // Not folded into the environment facade above, though it sits in the same
@@ -722,6 +772,10 @@ export const REGISTRY = Object.freeze({
722
772
  label: "🔗 Work-Item Traceability",
723
773
  summary: "Every change is bound to a live tracker item.",
724
774
  task: "check:work-item",
775
+ // Both provers are `lisa-work-item.mjs`, which imports `node:fs`,
776
+ // `node:path`, Node's own process-spawning builtin, and one shipped
777
+ // sibling. It shells out to `gh`, which the runner image carries.
778
+ needs: NO_INSTALL,
725
779
  // The property is one property; the prover is not one prover. At
726
780
  // pull-request there is a pull request to read — a body, a backlink, a
727
781
  // number — and `validate-pr` reads it. At push there is often no pull
@@ -741,6 +795,11 @@ export const REGISTRY = Object.freeze({
741
795
  label: "📝 Commit Message",
742
796
  summary: "Commit messages follow the declared convention.",
743
797
  task: "check:commit-msg",
798
+ // The commit-msg prover is commitlint, which is a dependency — but the
799
+ // `declareOnly` below says there is no repo-wide script form, so any
800
+ // project declaring this gate names a `run:` of its own and the
801
+ // registry claim is never the one that decides. Left absent rather
802
+ // than guessed: absent means install, which is the safe answer.
744
803
  declareOnly:
745
804
  "Proved by the commit-msg hook running commitlint against one message file. There is no repo-wide script form.",
746
805
  moments: COMMIT_ONWARD,
@@ -749,6 +808,9 @@ export const REGISTRY = Object.freeze({
749
808
  label: "📐 Threshold Ratchet",
750
809
  summary: "Quality thresholds may tighten, never loosen.",
751
810
  task: "check:thresholds",
811
+ // `threshold-ratchet.mjs` imports `node:fs`, `node:path`, `node:url`,
812
+ // Node's own process-spawning builtin, and two siblings beside it.
813
+ needs: NO_INSTALL,
752
814
  declareOnly:
753
815
  "The prover ships as a plugin hook (`threshold-ratchet.mjs`), not as a package script.",
754
816
  moments: PUSH_ONWARD,
@@ -779,12 +841,20 @@ export const REGISTRY = Object.freeze({
779
841
  label: "🩹 Conflict Markers",
780
842
  summary: "No leftover merge-conflict markers in tracked files.",
781
843
  task: "check:conflict-markers",
844
+ // `check-conflict-markers.mjs` imports `node:fs`, `node:path`,
845
+ // `node:process`, Node's own process-spawning builtin, and one shipped
846
+ // sibling; it enumerates tracked files through `git ls-files`. Nothing
847
+ // from `node_modules`.
848
+ needs: NO_INSTALL,
782
849
  moments: COMMIT_ONWARD,
783
850
  },
784
851
  "version-duplication": {
785
852
  label: "🧮 Duplicate Versions",
786
853
  summary: "One declared version per dependency.",
787
854
  task: "check:duplicate-versions",
855
+ // `check-duplicate-versions.mjs` imports `node:fs`, `node:path`,
856
+ // `node:process`, `node:url` and one sibling.
857
+ needs: NO_INSTALL,
788
858
  declareOnly:
789
859
  "A prover exists in Lisa's own `scripts/` and is not shipped to consumers. Exposing it is separate work; until then, point `run:` at your own.",
790
860
  moments: COMMIT_ONWARD,
@@ -919,6 +989,161 @@ export function qualityJobPlan({ gates = {}, moment }) {
919
989
  );
920
990
  }
921
991
 
992
+ /**
993
+ * The gates a hand-written job already posts a branch-protection context for.
994
+ *
995
+ * Exactly one job may be named a gate's `label`, or two jobs post one context
996
+ * and branch protection matches whichever reported last. So the generic runner
997
+ * emits no leg for anything in here — not because those gates are unimportant,
998
+ * but because their context is spoken for.
999
+ *
1000
+ * THIS IS THE MIGRATION, and it is one act rather than two. There is no
1001
+ * separate ledger of "gates that moved onto the runner", because a ledger
1002
+ * nothing depends on is a comment wearing code's clothes:
1003
+ * `tests/integration/quality-gate-skip-jobs-mapping.test.ts` derives
1004
+ * `QUALITY_JOB_GATES` from the jobs the shipped workflows actually define and
1005
+ * asserts equality, so a deleted job MUST lose its row in the same commit —
1006
+ * and losing the row is exactly what hands the gate to the runner. Forgetting
1007
+ * a ledger entry could have been silent; forgetting the row cannot be.
1008
+ *
1009
+ * The deletion order still matters and is still a safety property: a block
1010
+ * deleted before its leg has reported green turns a proving check into a
1011
+ * silently absent one. What enforces it is the sequence, not a list — the leg
1012
+ * cannot exist until the block is gone, so the block is deleted only once the
1013
+ * gate's declaration has been observed running through some other leg.
1014
+ * @returns {readonly string[]} Sorted gate ids, deduplicated.
1015
+ */
1016
+ export function jobBackedGates() {
1017
+ return Object.freeze(
1018
+ [...new Set(Object.values(QUALITY_JOB_GATES))].sort((left, right) =>
1019
+ left.localeCompare(right)
1020
+ )
1021
+ );
1022
+ }
1023
+
1024
+ /** What a leg does when it runs. */
1025
+ export const LEG_ACTIONS = Object.freeze(["run", "report", "unproved"]);
1026
+
1027
+ /** Minutes a leg gets when its gate is not marked `costly`. */
1028
+ export const LEG_TIMEOUT_MINUTES = 15;
1029
+
1030
+ /** Minutes a leg gets when its gate IS marked `costly`. */
1031
+ export const COSTLY_LEG_TIMEOUT_MINUTES = 60;
1032
+
1033
+ /**
1034
+ * What a task may be spelled with before it reaches a leg's shell.
1035
+ *
1036
+ * The same class `quality.yml`'s in-job resolver applies, and it must be
1037
+ * applied HERE as well rather than instead: a leg receives an already-resolved
1038
+ * task through the matrix, so the workflow has no second chance to refuse it.
1039
+ * `.lisa.config.json` is a file a pull request can edit, and the resolved value
1040
+ * reaches `run: $GATE_RUNNER $GATE_TASK` as a deliberate word split. A colon is
1041
+ * admitted because task names carry one (`test:cov`, `lint:staged`); `$( )`,
1042
+ * backticks, `;`, `&&` and quotes are not.
1043
+ */
1044
+ const TASK_PATTERN = /^[A-Za-z0-9:._@/= -]+$/;
1045
+
1046
+ /**
1047
+ * The matrix legs a moment's declarations imply, one leg per posted context.
1048
+ *
1049
+ * This is the pull-request moment's answer to `lisa-run-gates.mjs`. The commit
1050
+ * and push moments have had a generic executor since the hooks stopped
1051
+ * hardcoding their step lists; the pull-request moment did not, so a gate
1052
+ * outside the hand-written set was unreachable from a declaration no matter
1053
+ * what a project wrote. That asymmetry is the root cause behind several filed
1054
+ * symptoms, and it closes by making the workflow ask the registry too.
1055
+ *
1056
+ * ## Which gates get a leg, and why `off` is included
1057
+ *
1058
+ * Every gate the project DECLARES at this moment, including the ones declared
1059
+ * `off`, minus the ones a hand-written job already posts a context for.
1060
+ *
1061
+ * Including `off` is the half that is easy to get wrong and expensive to get
1062
+ * wrong. A required context that never reports does not read as skipped — it
1063
+ * holds the pull request at "Expected — Waiting for status to be reported",
1064
+ * forever. `contextsFor` will not emit a context for an `off` gate, so the two
1065
+ * agree for a project whose ruleset is generated from the same declaration; a
1066
+ * ruleset that still names it must still see it report. So an `off` leg runs,
1067
+ * says out loud that the project turned this gate off, and succeeds.
1068
+ *
1069
+ * ## What a leg cannot do, and says instead
1070
+ *
1071
+ * A leg's body is `$runner $task`. Where nothing resolves to a task — a custom
1072
+ * `x-` gate the project declared without a `run:`, say — the leg reports
1073
+ * `unproved` and FAILS. That is deliberate and it is the distinction between
1074
+ * this and the defect it replaces: a job that skips its proving step when the
1075
+ * prover is missing reports green having measured nothing. Absent is not a
1076
+ * skip, and a leg that measured nothing must be loud rather than absent.
1077
+ *
1078
+ * `await` and `intercept` gates get no leg at all, which is a different
1079
+ * statement: those are proved, by a vendor posting its own context or by Lisa
1080
+ * internally, and a leg would be a second reporter for one property.
1081
+ * @param {object} options Resolution inputs.
1082
+ * @param {object} options.gates The project gates block.
1083
+ * @param {string} options.moment The moment to resolve.
1084
+ * @param {string} [options.runner] The task runner.
1085
+ * @param {object|null} [options.scripts] The project's package scripts.
1086
+ * @returns {object[]} One leg per context this moment must post.
1087
+ */
1088
+ export function momentLegs({
1089
+ gates,
1090
+ moment,
1091
+ runner = DEFAULT_RUNNER,
1092
+ scripts = null,
1093
+ }) {
1094
+ const spokenFor = new Set(jobBackedGates());
1095
+ const legs = [];
1096
+ for (const gate of resolveMoment({
1097
+ gates,
1098
+ moment,
1099
+ runner,
1100
+ includeOff: true,
1101
+ scripts,
1102
+ })) {
1103
+ if (spokenFor.has(gate.id)) continue;
1104
+ if (gate.mode === "await" || gate.mode === "intercept") continue;
1105
+
1106
+ const definition = REGISTRY[gate.id];
1107
+ const action =
1108
+ gate.level === "off" ? "report" : gate.task ? "run" : "unproved";
1109
+ if (action === "run" && !TASK_PATTERN.test(gate.task)) {
1110
+ throw new Error(
1111
+ `gates."${gate.id}"."${moment}" resolves to task ` +
1112
+ `${JSON.stringify(gate.task)}, which is not a plain word.`
1113
+ );
1114
+ }
1115
+ // `deps: false` is a claim about LISA'S prover, so it may only be honoured
1116
+ // while Lisa's prover is what resolved. A project `run:`, or a `shippedAs`
1117
+ // alias standing in for a default that does not exist here, both mean the
1118
+ // command is one Lisa did not write and cannot make claims about.
1119
+ const registryTask =
1120
+ definition?.taskAt?.[momentFamily(moment)] ?? definition?.task ?? null;
1121
+ const lisasOwnProver =
1122
+ gate.alias === null && gate.task !== null && gate.task === registryTask;
1123
+ legs.push({
1124
+ gate: gate.id,
1125
+ label: gate.label,
1126
+ level: gate.level,
1127
+ action,
1128
+ // Emitted empty rather than omitted for a leg that runs nothing. A
1129
+ // matrix `include:` entry with a missing key leaves `matrix.task`
1130
+ // unset, and `run: $GATE_RUNNER $GATE_TASK` with an unset task runs the
1131
+ // runner bare — which for `npm run` prints the script list and exits 0.
1132
+ runner: action === "run" ? runner : "",
1133
+ task: action === "run" ? gate.task : "",
1134
+ install:
1135
+ action === "run" &&
1136
+ !(definition?.needs?.deps === false && lisasOwnProver),
1137
+ timeout:
1138
+ definition?.costly === true
1139
+ ? COSTLY_LEG_TIMEOUT_MINUTES
1140
+ : LEG_TIMEOUT_MINUTES,
1141
+ summary: definition?.summary ?? "",
1142
+ });
1143
+ }
1144
+ return legs;
1145
+ }
1146
+
922
1147
  /**
923
1148
  * Jobs that prove a gate some OTHER job carries the label for.
924
1149
  *
@@ -3179,17 +3404,28 @@ function verdictFor({
3179
3404
  );
3180
3405
  }
3181
3406
  const family = momentFamily(moment);
3182
- if (family === PULL_REQUEST) {
3183
- if (Object.values(QUALITY_JOB_GATES).includes(gate)) return null;
3184
- return make(
3185
- ORPHANED,
3186
- `gates."${gate}"."${moment}" is declared at a moment whose executor is a ` +
3187
- `CI job, and no job resolves this gate id. A "required" level here ` +
3188
- `derives a branch-protection context nothing will ever post, which ` +
3189
- `holds every pull request at "Expected — Waiting for status to be ` +
3190
- `reported" indefinitely.`
3191
- );
3192
- }
3407
+ // A HAND-WRITTEN JOB is still the answer wherever one exists, and it is the
3408
+ // FIRST answer: that job's `name:` is the gate's label, it owns the context,
3409
+ // and the generic runner deliberately emits no leg for it.
3410
+ if (
3411
+ family === PULL_REQUEST &&
3412
+ Object.values(QUALITY_JOB_GATES).includes(gate)
3413
+ )
3414
+ return null;
3415
+ // Everything below is the GENERIC RUNNER's question, and until #2881 the
3416
+ // pull-request moment was excluded from it. That exclusion was true when it
3417
+ // was written — the moment had one hand-written block per gate and nothing
3418
+ // else — and it is the asymmetry the runner closes: a pull-request
3419
+ // declaration with no job now gets a matrix leg, exactly as a commit
3420
+ // declaration with no hook step gets a hook leg. So the same test applies to
3421
+ // both: does the declaration resolve to a task this project actually has?
3422
+ //
3423
+ // What has NOT changed is what happens when it does not. A leg with no task
3424
+ // reports NOT PROVED and fails, which is loud rather than absent — but it is
3425
+ // still a declaration describing nothing, so it is still `orphaned` here.
3426
+ // The classifier answers "can anything run this", not "will something say so
3427
+ // when it cannot".
3428
+ //
3193
3429
  // The deploy and continuous families have a generic runner the same way the
3194
3430
  // hooks do — `lisa-run-gates.mjs --moment=<moment>` — but unlike a hook,
3195
3431
  // which every repository installs, the CALLER is a workflow this repository
@@ -3211,9 +3447,10 @@ function verdictFor({
3211
3447
  `"off" to put on record that you meant it not to run.`
3212
3448
  );
3213
3449
  }
3214
- // Everything remaining is executed by the generic runner: a hook at its
3215
- // moment, or a workflow at a deploy or scheduled one. Both resolve a task and
3216
- // run it, so both need a task that exists.
3450
+ // Everything remaining is executed by a generic runner: a hook at its
3451
+ // moment, a matrix leg at pull-request, or a workflow at a deploy or
3452
+ // scheduled one. All three resolve a task and run it, so all three need a
3453
+ // task that exists.
3217
3454
  if (scripts === null || scripts === undefined) return null;
3218
3455
  const task = resolvedTaskFor({ gate, block, moment, scripts });
3219
3456
  if (
@@ -3482,6 +3719,19 @@ function validateNeeds(id, gate) {
3482
3719
  if (typeof gate.needs !== "object" || Array.isArray(gate.needs)) {
3483
3720
  return [`gates."${id}".needs must be an object with tools and/or secrets`];
3484
3721
  }
3722
+ // Refused rather than ignored. `deps` is a claim about the prover Lisa
3723
+ // wrote, and honouring a project's copy of it would let a declaration skip
3724
+ // an install its own `run:` needs — a leg failing as `Cannot find module`,
3725
+ // which reads as a broken gate rather than as a wrong declaration. Silently
3726
+ // dropping the key would be worse: the operator would have written something
3727
+ // that looks obeyed and is not.
3728
+ if (gate.needs.deps !== undefined) {
3729
+ problems.push(
3730
+ `gates."${id}".needs.deps is registry-owned and cannot be declared. ` +
3731
+ `It states whether LISA's default prover for this gate runs without ` +
3732
+ `an install; a project naming its own "run:" always gets one.`
3733
+ );
3734
+ }
3485
3735
  for (const field of ["tools", "secrets"]) {
3486
3736
  if (gate.needs[field] === undefined) continue;
3487
3737
  if (!Array.isArray(gate.needs[field])) {
@@ -3802,6 +4052,11 @@ export function needsAt({ gates, moment }) {
3802
4052
  const secrets = new Set();
3803
4053
  const reasons = {};
3804
4054
  for (const gate of resolveMoment({ gates, moment })) {
4055
+ // PROJECT-DECLARED ONLY, and deliberately so. `tools` and `secrets` say
4056
+ // what a PROVER needs, and the prover is whatever the project named — Lisa
4057
+ // does not know it and must not guess on its behalf. The registry's own
4058
+ // `needs` carries `deps`, which is a claim about Lisa's default prover and
4059
+ // is read where that claim is used (`momentLegs`), not here.
3805
4060
  const declared = gates[gate.id]?.needs ?? {};
3806
4061
  for (const tool of declared.tools ?? []) {
3807
4062
  tools.add(tool);
@@ -4200,6 +4455,35 @@ function main() {
4200
4455
  return;
4201
4456
  }
4202
4457
 
4458
+ if (command === "legs") {
4459
+ const moment = flag("moment");
4460
+ if (!moment)
4461
+ throw new Error("usage: lisa-gates.mjs legs --moment=<moment> [--json]");
4462
+ const legs = momentLegs({ gates, moment, runner, scripts });
4463
+ if (rest.includes("--json")) {
4464
+ // ONE LINE, deliberately. This is read by `fromJSON()` in a workflow
4465
+ // through a job output, and a job output is a single line — a
4466
+ // pretty-printed array would arrive truncated at its first newline and
4467
+ // `fromJSON` would fail on a fragment, which reads as a malformed
4468
+ // registry rather than as a formatting choice made here.
4469
+ console.log(JSON.stringify(legs));
4470
+ return;
4471
+ }
4472
+ for (const leg of legs) {
4473
+ const how =
4474
+ leg.action === "run"
4475
+ ? `${leg.runner} ${leg.task}`
4476
+ : leg.action === "report"
4477
+ ? "(declared off — the leg reports and passes)"
4478
+ : "(NO PROVER — the leg reports NOT PROVED and fails)";
4479
+ console.log(
4480
+ `${leg.level.padEnd(9)} ${leg.gate.padEnd(28)} ${leg.label.padEnd(30)} ${how}`
4481
+ );
4482
+ }
4483
+ console.log(`\n${legs.length} leg(s) at ${moment}.`);
4484
+ return;
4485
+ }
4486
+
4203
4487
  if (command === "needs") {
4204
4488
  const moment = flag("moment") ?? SESSION_START;
4205
4489
  console.log(JSON.stringify(needsAt({ gates, moment }), null, 2));
@@ -4371,7 +4655,7 @@ function main() {
4371
4655
  }
4372
4656
 
4373
4657
  throw new Error(
4374
- "usage: lisa-gates.mjs validate|list|needs|contexts|skip-jobs|audit-config|inventory|unconfigured|seed"
4658
+ "usage: lisa-gates.mjs validate|list|legs|quality-plan|needs|contexts|skip-jobs|audit-config|inventory|unconfigured|seed"
4375
4659
  );
4376
4660
  }
4377
4661
 
@@ -80,4 +80,29 @@ export declare function runDimensionProducer(id: string, targetPath: string, pro
80
80
  * offline by construction — readiness must be assessable with no network.
81
81
  */
82
82
  export type DimensionProducer = (targetPath: string) => Promise<ReadinessDimensionRecord>;
83
+ /**
84
+ * Atomically write the readiness report: write a sibling temp file, then rename
85
+ * it into place so a reader never observes a partial document.
86
+ *
87
+ * The temp name carries a UUID, and that is the load-bearing part rather than a
88
+ * flourish. It used to be a fixed `${reportPath}.tmp`, which meant two
89
+ * concurrent `lisa doctor` runs in one checkout opened the SAME file: both
90
+ * truncated it, both wrote from offset zero, and the first to finish renamed it
91
+ * out from under the second — whose descriptor then pointed at the published
92
+ * report, so its tail landed inside the document the first run had just
93
+ * published. The rename was always atomic; the CONTENT being renamed was not,
94
+ * which is precisely the property the paragraph above claims to buy.
95
+ *
96
+ * Concurrent doctor runs are the normal operating mode here, not an edge case:
97
+ * six agents ran against this repository at once on 2026-08-24.
98
+ *
99
+ * `crypto.randomUUID()` rather than a pid or a timestamp, matching
100
+ * `src/core/learnings-lock.ts`, which uses it for its owner token and its
101
+ * quarantine path for exactly this reason. A pid collides across containers and
102
+ * is reused after wraparound; a millisecond timestamp collides between two runs
103
+ * started in the same tick, which is the case that matters most.
104
+ * @param reportPath - Destination path
105
+ * @param report - Report to persist
106
+ */
107
+ export declare function persistReadinessReport(reportPath: string, report: ReadinessReport): Promise<void>;
83
108
  //# sourceMappingURL=doctor-readiness.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"doctor-readiness.d.ts","sourceRoot":"","sources":["../../src/cli/doctor-readiness.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,uBAAuB,EAC5B,KAAK,gBAAgB,EACtB,MAAM,gCAAgC,CAAC;AAgCxC,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AAM5E,OAAO,EACL,iCAAiC,EACjC,gBAAgB,EAChB,wBAAwB,EACxB,eAAe,EACf,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,gCAAgC,CAAC;AACxC,YAAY,EACV,uBAAuB,EACvB,eAAe,EACf,qBAAqB,EACrB,mBAAmB,EACnB,uBAAuB,EACvB,gBAAgB,EAChB,aAAa,GACd,MAAM,gCAAgC,CAAC;AAQxC;;;GAGG;AACH,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAkE1C,gEAAgE;AAChE,eAAO,MAAM,uBAAuB,EAAE,SAAS,MAAM,EACA,CAAC;AAEtD,qEAAqE;AACrE,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;IACnC,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,QAAQ,CAAC,QAAQ,EAAE,SAAS,eAAe,EAAE,CAAC;IAC9C,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,UAAU,EAAE,SAAS,wBAAwB,EAAE,CAAC;CAC1D;AAED;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE/D;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,wBAAwB,CAC5C,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,WAAW,CAAC,CA6CtB;AAyBD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,gBAAgB,EACzB,UAAU,EAAE,SAAS,uBAAuB,EAAE,GAC7C,MAAM,CAeR;AAsCD;;;;;;;;;GASG;AACH,wBAAsB,oBAAoB,CACxC,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,wBAAwB,CAAC,CAUnC;AAED;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAC9B,UAAU,EAAE,MAAM,KACf,OAAO,CAAC,wBAAwB,CAAC,CAAC"}
1
+ {"version":3,"file":"doctor-readiness.d.ts","sourceRoot":"","sources":["../../src/cli/doctor-readiness.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,uBAAuB,EAC5B,KAAK,gBAAgB,EACtB,MAAM,gCAAgC,CAAC;AAgCxC,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AAM5E,OAAO,EACL,iCAAiC,EACjC,gBAAgB,EAChB,wBAAwB,EACxB,eAAe,EACf,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,gCAAgC,CAAC;AACxC,YAAY,EACV,uBAAuB,EACvB,eAAe,EACf,qBAAqB,EACrB,mBAAmB,EACnB,uBAAuB,EACvB,gBAAgB,EAChB,aAAa,GACd,MAAM,gCAAgC,CAAC;AAQxC;;;GAGG;AACH,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAkE1C,gEAAgE;AAChE,eAAO,MAAM,uBAAuB,EAAE,SAAS,MAAM,EACA,CAAC;AAEtD,qEAAqE;AACrE,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;IACnC,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,QAAQ,CAAC,QAAQ,EAAE,SAAS,eAAe,EAAE,CAAC;IAC9C,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,UAAU,EAAE,SAAS,wBAAwB,EAAE,CAAC;CAC1D;AAED;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE/D;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,wBAAwB,CAC5C,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,WAAW,CAAC,CA6CtB;AAyBD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,gBAAgB,EACzB,UAAU,EAAE,SAAS,uBAAuB,EAAE,GAC7C,MAAM,CAeR;AAsCD;;;;;;;;;GASG;AACH,wBAAsB,oBAAoB,CACxC,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,wBAAwB,CAAC,CAUnC;AAED;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAC9B,UAAU,EAAE,MAAM,KACf,OAAO,CAAC,wBAAwB,CAAC,CAAC;AAwCvC;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAsB,sBAAsB,CAC1C,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,IAAI,CAAC,CAef"}
@@ -1,4 +1,5 @@
1
- import { rename, writeFile } from "node:fs/promises";
1
+ import crypto from "node:crypto";
2
+ import { rename, rm, writeFile } from "node:fs/promises";
2
3
  import { mkdir } from "node:fs/promises";
3
4
  import * as path from "node:path";
4
5
  import process from "node:process";
@@ -256,14 +257,43 @@ function reasonedSkip(reason, id) {
256
257
  /**
257
258
  * Atomically write the readiness report: write a sibling temp file, then rename
258
259
  * it into place so a reader never observes a partial document.
260
+ *
261
+ * The temp name carries a UUID, and that is the load-bearing part rather than a
262
+ * flourish. It used to be a fixed `${reportPath}.tmp`, which meant two
263
+ * concurrent `lisa doctor` runs in one checkout opened the SAME file: both
264
+ * truncated it, both wrote from offset zero, and the first to finish renamed it
265
+ * out from under the second — whose descriptor then pointed at the published
266
+ * report, so its tail landed inside the document the first run had just
267
+ * published. The rename was always atomic; the CONTENT being renamed was not,
268
+ * which is precisely the property the paragraph above claims to buy.
269
+ *
270
+ * Concurrent doctor runs are the normal operating mode here, not an edge case:
271
+ * six agents ran against this repository at once on 2026-08-24.
272
+ *
273
+ * `crypto.randomUUID()` rather than a pid or a timestamp, matching
274
+ * `src/core/learnings-lock.ts`, which uses it for its owner token and its
275
+ * quarantine path for exactly this reason. A pid collides across containers and
276
+ * is reused after wraparound; a millisecond timestamp collides between two runs
277
+ * started in the same tick, which is the case that matters most.
259
278
  * @param reportPath - Destination path
260
279
  * @param report - Report to persist
261
280
  */
262
- async function persistReadinessReport(reportPath, report) {
281
+ export async function persistReadinessReport(reportPath, report) {
263
282
  await mkdir(path.dirname(reportPath), { recursive: true });
264
- const tempPath = `${reportPath}.tmp`;
265
- await writeFile(tempPath, `${JSON.stringify(report, null, 2)}\n`, "utf8");
266
- await rename(tempPath, reportPath);
283
+ const tempPath = `${reportPath}.${crypto.randomUUID()}.tmp`;
284
+ try {
285
+ await writeFile(tempPath, `${JSON.stringify(report, null, 2)}\n`, "utf8");
286
+ await rename(tempPath, reportPath);
287
+ }
288
+ catch (error) {
289
+ // A unique name is only half the fix. `.lisa/` is a directory a consumer
290
+ // commits, so a temp file orphaned by a failed write is a stray artifact
291
+ // that gets committed — and unlike the old fixed name, a UUID name would
292
+ // accumulate one per failure rather than being overwritten by the next run.
293
+ // Removal is best-effort: the write error is the one worth reporting.
294
+ await rm(tempPath, { force: true }).catch(() => undefined);
295
+ throw error;
296
+ }
267
297
  }
268
298
  /**
269
299
  * Resolve Lisa's package version for the persisted stamp, degrading to
@@ -1 +1 @@
1
- {"version":3,"file":"doctor-readiness.js","sourceRoot":"","sources":["../../src/cli/doctor-readiness.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"doctor-readiness.js","sourceRoot":"","sources":["../../src/cli/doctor-readiness.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,CAijBjC,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,CAsjBjC,CAAC"}
@@ -303,6 +303,7 @@ export const LISA_OWNED_HASH_LEDGER = Object.freeze({
303
303
  "37c2c3642c3c8ea92b9d53d9c10e2b7365e4c5e757af54396ef0af06720a89c6",
304
304
  "3c3d194212e9072d011a352608a0340f7b132b9d1e26486b862289cd94a303a8",
305
305
  "407799d7eef3c61902cce4a9d4e194176453a28d8b562b327a75ec843da51684",
306
+ "40ad2fbf5be600ad81bd864f500a8e68bb1ea4163b02af1dd85c1243af7f0c95",
306
307
  "444ed4b879ef7af5dc409ae48743ad06354e47b727ddb5be0877cab52ddd0b64",
307
308
  "45d1e52bbe453068298715ea4f25e3990589dd20d2adc8e61c05fbe79a023c78",
308
309
  "4634a1012f1c9ef991ce99ee98eb85a57d207e99b1da1bc760a67a09b5017946",
@@ -318,7 +319,9 @@ export const LISA_OWNED_HASH_LEDGER = Object.freeze({
318
319
  "5f5eeda36a19fc6b99f621128b192d07ec79e4735b4514c9b20ae94a3e29c4b5",
319
320
  "60b961b1bd4a01f17fc0c19dd09b2505958bdeaa5c1030868835ac628e77d97f",
320
321
  "6d9bc1c708a7cc585e7f8c4539ec28e4a29cbfd9a0c08b5a96760f8f0865453d",
322
+ "710038fcbc5a507e5012a1c13929a4d1d7dc3e5932f8238a7a91d47977d5ce57",
321
323
  "7249cbe9f8fddfa6087331fa7fccd9df9813f5ba764623b747273a0ebbcbb576",
324
+ "757fcb641ad5a5a7f3d08b48b9a544f7d7de9284563b7f03fd8955e2bf86a905",
322
325
  "75b3bed6034e81ece759b4566291f26be9c6f51ebd3444ae9232964588a71a66",
323
326
  "777702830df0c13842b512619b7c6911471ad18eb29dff073e5aee711b5b8730",
324
327
  "78545c144834f42ffa97174fb5a36edb66c63634f738ac5a0890bae8ccd7f2f6",
@@ -341,6 +344,8 @@ export const LISA_OWNED_HASH_LEDGER = Object.freeze({
341
344
  "b7e9e276fc4587837bb423d22ec183e5f8bb70f93c52347c9403cab99b8a052d",
342
345
  "bba52f26e70e0dc399a8ed8ea9cbd3885a18f08401b28bd18871a1af4fbca375",
343
346
  "bbb49c8d803179f7081816144011ed1f3752673eb249ff21dd738412f0302e77",
347
+ "bff724776d5818f5dba71078ef964e9436fa44eeb1c3f8d55974ce11f8e80a13",
348
+ "c491b8eb16c06173e6a349a6410a58fa4e732e1c508af3a6de87a826bdfa2ca9",
344
349
  "c5643655f16b3229646b59cf2ac74edc631959825231a8cf69575cc8268ce0c2",
345
350
  "c950082c3a0e7e987a8d32455eb16103cd0516c9b907f551a93395eb2e61d253",
346
351
  "cc4270e365f53c60a5eefb58a8ac8e22be184c0821fcdcc8fe67bcfc1df5e3dd",
@@ -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,CA43EpE,CAAC;AAEL,4EAA4E;AAC5E,eAAO,MAAM,yBAAyB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CA0hPjE,CAAC;AAEL,sFAAsF;AACtF,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAk6I/D,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,CA43EpE,CAAC;AAEL,4EAA4E;AAC5E,eAAO,MAAM,yBAAyB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CA8hPjE,CAAC;AAEL,sFAAsF;AACtF,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAk6I/D,CAAC"}