@codyswann/lisa 4.6.6 → 4.6.8

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 (70) hide show
  1. package/all/copy-contents/gitignore +13 -0
  2. package/dist/cli/doctor-readiness-tracking.d.ts +21 -0
  3. package/dist/cli/doctor-readiness-tracking.d.ts.map +1 -0
  4. package/dist/cli/doctor-readiness-tracking.js +115 -0
  5. package/dist/cli/doctor-readiness-tracking.js.map +1 -0
  6. package/dist/cli/doctor-skip-jobs-migration.d.ts +5 -1
  7. package/dist/cli/doctor-skip-jobs-migration.d.ts.map +1 -1
  8. package/dist/cli/doctor-skip-jobs-migration.js +120 -74
  9. package/dist/cli/doctor-skip-jobs-migration.js.map +1 -1
  10. package/dist/cli/doctor.d.ts.map +1 -1
  11. package/dist/cli/doctor.js +8 -0
  12. package/dist/cli/doctor.js.map +1 -1
  13. package/dist/cli/workflow-moments.d.ts +67 -0
  14. package/dist/cli/workflow-moments.d.ts.map +1 -0
  15. package/dist/cli/workflow-moments.js +225 -0
  16. package/dist/cli/workflow-moments.js.map +1 -0
  17. package/dist/core/upstream-evidence-manifest.d.ts.map +1 -1
  18. package/dist/core/upstream-evidence-manifest.js +6 -1
  19. package/dist/core/upstream-evidence-manifest.js.map +1 -1
  20. package/package.json +1 -1
  21. package/plugins/lisa/.claude-plugin/plugin.json +1 -1
  22. package/plugins/lisa/.codex-plugin/plugin.json +1 -1
  23. package/plugins/lisa-agy/plugin.json +1 -1
  24. package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
  25. package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
  26. package/plugins/lisa-cdk-agy/plugin.json +1 -1
  27. package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +1 -1
  28. package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +1 -1
  29. package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
  30. package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
  31. package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
  32. package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
  33. package/plugins/lisa-expo-agy/plugin.json +1 -1
  34. package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
  35. package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
  36. package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
  37. package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
  38. package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
  39. package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +1 -1
  40. package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
  41. package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
  42. package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
  43. package/plugins/lisa-nestjs-agy/plugin.json +1 -1
  44. package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +1 -1
  45. package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +1 -1
  46. package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
  47. package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
  48. package/plugins/lisa-openclaw-agy/plugin.json +1 -1
  49. package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +1 -1
  50. package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +1 -1
  51. package/plugins/lisa-phaser/.claude-plugin/plugin.json +1 -1
  52. package/plugins/lisa-phaser/.codex-plugin/plugin.json +1 -1
  53. package/plugins/lisa-phaser-agy/plugin.json +1 -1
  54. package/plugins/lisa-phaser-copilot/.claude-plugin/plugin.json +1 -1
  55. package/plugins/lisa-phaser-cursor/.claude-plugin/plugin.json +1 -1
  56. package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
  57. package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
  58. package/plugins/lisa-rails-agy/plugin.json +1 -1
  59. package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +1 -1
  60. package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +1 -1
  61. package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
  62. package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
  63. package/plugins/lisa-typescript-agy/plugin.json +1 -1
  64. package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +1 -1
  65. package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +1 -1
  66. package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
  67. package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
  68. package/plugins/lisa-wiki-agy/plugin.json +1 -1
  69. package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
  70. package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
@@ -245,6 +245,19 @@ expo-env.d.ts
245
245
  # that has never installed.
246
246
  .lisa/apply-receipt.json
247
247
 
248
+ # Repository-readiness report, written by `lisa doctor --readiness`. Derived,
249
+ # not knowledge: every field is recomputed from the tree on the next run, and
250
+ # three of the nine — generated_at, lisa_version, and worker_signature (the
251
+ # host/model/version of the agent runtime that produced it) — describe the RUN,
252
+ # not the repository. Committing it conflicts on every pair of branches that ran
253
+ # doctor, and no resolution of that conflict is correct: a readiness report is
254
+ # one assessment of one tree, so a blend of two describes a tree that never
255
+ # existed. Every consumer reads the on-disk file, which is there whether or not
256
+ # git tracks it. `lisa doctor` warns when a checkout tracks one anyway, because
257
+ # adding this line does not untrack a file already committed
258
+ # (CodySwannGT/lisa#3046).
259
+ .lisa/readiness.json
260
+
248
261
  # Remote-dispatch ledger. Records the sessions this machine started so a later
249
262
  # run can find them. Per developer by construction — each fires their own
250
263
  # routine under their own account — so committing it would collide on every
@@ -0,0 +1,21 @@
1
+ /** Name of the readiness-tracking check as doctor reports it. */
2
+ export declare const READINESS_REPORT_TRACKING_CHECK_NAME = "Readiness report untracked?";
3
+ /** Shape of one doctor check result (structurally identical to doctor's). */
4
+ interface ReadinessTrackingCheckResult {
5
+ name: string;
6
+ status: "ok" | "warn" | "fail";
7
+ detail: string;
8
+ }
9
+ /**
10
+ * Report whether this checkout tracks the derived readiness report.
11
+ *
12
+ * Asks git rather than reading `.gitignore`, because the question is not
13
+ * "is there a rule?" but "does this repository carry the file?" — and a rule
14
+ * present in the working tree changes nothing for a path already in the index.
15
+ * That is the whole failure this check exists to make visible.
16
+ * @param targetPath - Project path to inspect
17
+ * @returns Doctor check result
18
+ */
19
+ export declare function checkReadinessReportTracking(targetPath: string): Promise<ReadinessTrackingCheckResult>;
20
+ export {};
21
+ //# sourceMappingURL=doctor-readiness-tracking.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doctor-readiness-tracking.d.ts","sourceRoot":"","sources":["../../src/cli/doctor-readiness-tracking.ts"],"names":[],"mappings":"AA0BA,iEAAiE;AACjE,eAAO,MAAM,oCAAoC,gCAClB,CAAC;AAYhC,6EAA6E;AAC7E,UAAU,4BAA4B;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC;CAChB;AAwDD;;;;;;;;;GASG;AACH,wBAAsB,4BAA4B,CAChD,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,4BAA4B,CAAC,CA8CvC"}
@@ -0,0 +1,115 @@
1
+ /**
2
+ * `lisa doctor` check: is the readiness report actually excluded from git?
3
+ *
4
+ * `.lisa/readiness.json` is a derived report — `lisa doctor --readiness`
5
+ * recomputes every field from the tree on each run, and three of its nine
6
+ * top-level fields (`generated_at`, `lisa_version`, `worker_signature`) describe
7
+ * the run rather than the repository. It is therefore shipped on the ignored
8
+ * side of `.gitignore`, beside the five sibling `.lisa/` artifacts that made the
9
+ * same call (CodySwannGT/lisa#3046).
10
+ *
11
+ * A `.gitignore` line is a protection with the same two-halves failure mode a
12
+ * merge driver has, for a different reason: **git ignores untracked paths only**.
13
+ * A checkout that committed the report before the rule shipped keeps committing
14
+ * it, on every doctor run, and `.gitignore` says nothing about it either way. So
15
+ * does a host repository that has not re-applied Lisa's templates yet, and a
16
+ * checkout where someone ran `git add -f`. In each case the merge exposure the
17
+ * ignore rule removes is still fully present, silently.
18
+ *
19
+ * This check is the sentence that says so. Warn, never fail: a tracked report is
20
+ * a hygiene defect that costs an operator a conflict at merge time, not a broken
21
+ * repository, and reddening CI over it would trade a real signal for noise.
22
+ * @module cli/doctor-readiness-tracking
23
+ */
24
+ import * as path from "node:path";
25
+ import { resolveReadinessReportPath } from "./doctor-readiness.js";
26
+ /** Name of the readiness-tracking check as doctor reports it. */
27
+ export const READINESS_REPORT_TRACKING_CHECK_NAME = "Readiness report untracked?";
28
+ /** Pinned PATH for the git probes, matching the merge-driver install probe. */
29
+ const GIT_COMMAND_ENV = {
30
+ PATH: "/usr/bin:/bin:/usr/sbin:/sbin",
31
+ };
32
+ /**
33
+ * Build one check result under this check's name.
34
+ * @param status - Reported status
35
+ * @param detail - Operator-readable explanation
36
+ * @returns Doctor check result
37
+ */
38
+ function result(status, detail) {
39
+ return { name: READINESS_REPORT_TRACKING_CHECK_NAME, status, detail };
40
+ }
41
+ /**
42
+ * Run one git command, distinguishing a missing binary from a real failure.
43
+ * @param args - Git arguments
44
+ * @param cwd - Directory to run in
45
+ * @returns Structured run outcome
46
+ */
47
+ async function tryGit(args, cwd) {
48
+ const { execFile } = await import("node:child_process");
49
+ const { promisify } = await import("node:util");
50
+ const run = promisify(execFile);
51
+ try {
52
+ const { stdout } = await run("git", [...args], {
53
+ cwd,
54
+ env: GIT_COMMAND_ENV,
55
+ });
56
+ return { ok: true, stdout: stdout.trim() };
57
+ }
58
+ catch (error) {
59
+ const code = typeof error === "object" && error !== null && "code" in error
60
+ ? error.code
61
+ : undefined;
62
+ return { ok: false, missingGit: code === "ENOENT" };
63
+ }
64
+ }
65
+ /**
66
+ * Resolve the report's repo-relative, forward-slashed path.
67
+ *
68
+ * Derived from `resolveReadinessReportPath` rather than hardcoded, so intake
69
+ * decision O2's one-line relocation keeps this check pointed at the real file
70
+ * instead of reporting on a path nothing writes any more.
71
+ * @param targetPath - Project root the report lives under
72
+ * @returns Path relative to `targetPath`, using `/` separators for git
73
+ */
74
+ function readinessReportGitPath(targetPath) {
75
+ return path
76
+ .relative(targetPath, resolveReadinessReportPath(targetPath))
77
+ .split(path.sep)
78
+ .join("/");
79
+ }
80
+ /**
81
+ * Report whether this checkout tracks the derived readiness report.
82
+ *
83
+ * Asks git rather than reading `.gitignore`, because the question is not
84
+ * "is there a rule?" but "does this repository carry the file?" — and a rule
85
+ * present in the working tree changes nothing for a path already in the index.
86
+ * That is the whole failure this check exists to make visible.
87
+ * @param targetPath - Project path to inspect
88
+ * @returns Doctor check result
89
+ */
90
+ export async function checkReadinessReportTracking(targetPath) {
91
+ const reportPath = readinessReportGitPath(targetPath);
92
+ try {
93
+ const inWorkTree = await tryGit(["rev-parse", "--is-inside-work-tree"], targetPath);
94
+ if (!inWorkTree.ok) {
95
+ return inWorkTree.missingGit
96
+ ? result("warn", `git executable not found, so whether ${reportPath} is tracked could not be verified — install git, then re-run \`lisa doctor\``)
97
+ : result("ok", `Not a git repository, so tracking ${reportPath} does not apply`);
98
+ }
99
+ if (inWorkTree.stdout !== "true") {
100
+ return result("ok", `Not a git working tree, so tracking ${reportPath} does not apply`);
101
+ }
102
+ const tracked = await tryGit(["ls-files", "--", reportPath], targetPath);
103
+ if (!tracked.ok) {
104
+ return result("warn", `Could not ask git whether ${reportPath} is tracked in this checkout`);
105
+ }
106
+ if (tracked.stdout === "") {
107
+ return result("ok", `${reportPath} is not tracked in this checkout`);
108
+ }
109
+ return result("warn", `${reportPath} is tracked in this checkout, so every \`lisa doctor --readiness\` run commits a fresh copy. The report is derived — recomputed from the tree on the next run — and its generated_at, lisa_version and worker_signature fields describe the run rather than the repository, so two branches that both ran doctor conflict on it and no resolution of that conflict is correct. Adding the path to .gitignore does not untrack it; stop tracking it with \`git rm --cached ${reportPath}\` and commit that removal.`);
110
+ }
111
+ catch (error) {
112
+ return result("warn", `Could not inspect whether ${reportPath} is tracked: ${error instanceof Error ? error.message : String(error)}`);
113
+ }
114
+ }
115
+ //# sourceMappingURL=doctor-readiness-tracking.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doctor-readiness-tracking.js","sourceRoot":"","sources":["../../src/cli/doctor-readiness-tracking.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,7 @@
1
1
  import type { DoctorCheck } from "./doctor.js";
2
+ import type { MomentContext } from "./workflow-moments.js";
3
+ export { qualityCalls } from "./workflow-moments.js";
4
+ export type { MomentContext, QualityCall } from "./workflow-moments.js";
2
5
  /** One token's migration, exactly as the shipped registry resolves it. */
3
6
  export interface SkipJobToken {
4
7
  /** The token as the caller spells it, including any damaging whitespace. */
@@ -32,9 +35,10 @@ export declare function skipJobCallers(targetPath: string): Promise<SkipJobCalle
32
35
  /**
33
36
  * The operator-readable line for one token.
34
37
  * @param entry - The token's resolved migration
38
+ * @param context - Every job resolving this caller's moment, when known
35
39
  * @returns One line naming the edit, or naming why there is none
36
40
  */
37
- export declare function describeToken(entry: SkipJobToken): string;
41
+ export declare function describeToken(entry: SkipJobToken, context?: MomentContext): string;
38
42
  /**
39
43
  * Report the gate declarations that replace a caller's `skip_jobs` tokens.
40
44
  *
@@ -1 +1 @@
1
- {"version":3,"file":"doctor-skip-jobs-migration.d.ts","sourceRoot":"","sources":["../../src/cli/doctor-skip-jobs-migration.ts"],"names":[],"mappings":"AAiDA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAe/C,0EAA0E;AAC1E,MAAM,WAAW,YAAY;IAC3B,4EAA4E;IAC5E,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,sDAAsD;IACtD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,6DAA6D;IAC7D,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,mDAAmD;IACnD,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,6EAA6E;IAC7E,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,2EAA2E;IAC3E,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC;AAED,yDAAyD;AACzD,MAAM,WAAW,aAAa;IAC5B,mDAAmD;IACnD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,gDAAgD;IAChD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,0DAA0D;IAC1D,QAAQ,CAAC,MAAM,EAAE,SAAS,YAAY,EAAE,CAAC;CAC1C;AAsID;;;;GAIG;AACH,wBAAsB,cAAc,CAClC,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,aAAa,EAAE,CAAC,CAQ1B;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CA8CzD;AA4HD;;;;;;;;GAQG;AACH,wBAAsB,sBAAsB,CAC1C,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,WAAW,CAAC,CAwBtB"}
1
+ {"version":3,"file":"doctor-skip-jobs-migration.d.ts","sourceRoot":"","sources":["../../src/cli/doctor-skip-jobs-migration.ts"],"names":[],"mappings":"AA+DA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAU3D,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAQxE,0EAA0E;AAC1E,MAAM,WAAW,YAAY;IAC3B,4EAA4E;IAC5E,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,sDAAsD;IACtD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,6DAA6D;IAC7D,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,mDAAmD;IACnD,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,6EAA6E;IAC7E,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,2EAA2E;IAC3E,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC;AAED,yDAAyD;AACzD,MAAM,WAAW,aAAa;IAC5B,mDAAmD;IACnD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,gDAAgD;IAChD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,0DAA0D;IAC1D,QAAQ,CAAC,MAAM,EAAE,SAAS,YAAY,EAAE,CAAC;CAC1C;AAgFD;;;;GAIG;AACH,wBAAsB,cAAc,CAClC,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,aAAa,EAAE,CAAC,CAQ1B;AA8DD;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,YAAY,EACnB,OAAO,CAAC,EAAE,aAAa,GACtB,MAAM,CAiDR;AAqKD;;;;;;;;GAQG;AACH,wBAAsB,sBAAsB,CAC1C,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,WAAW,CAAC,CA8BtB"}
@@ -37,6 +37,20 @@
37
37
  * names the exact edit; the edit is made by something that can read the
38
38
  * surrounding code and verify afterwards that the same checks still run.
39
39
  *
40
+ * ## Why the advice depends on who else resolves the moment
41
+ *
42
+ * A gate declaration is keyed by gate and moment in `.lisa.config.json`. It is
43
+ * not keyed by workflow, so it governs EVERY job resolving that moment. A
44
+ * repository whose `ci.yml` calls `quality.yml` directly and whose `deploy.yml`
45
+ * reaches it through `release.yml` resolves `pull-request` from both — one
46
+ * declaration, two callers. Telling the operator to declare the gate `off` to
47
+ * neutralise a token that exists on only one of them switches the check off on
48
+ * the other too, and the other is the caller that was running it for real. That
49
+ * is a strict downgrade reached by following the advice literally
50
+ * (CodySwannGT/lisa#3100), so this check enumerates every job reaching
51
+ * `quality.yml` — not only the ones passing `skip_jobs` — and withholds the
52
+ * declaration when more than one resolves the token's moment.
53
+ *
40
54
  * ## Why it warns and never fails
41
55
  *
42
56
  * The input still works, and it must keep working until every consumer has
@@ -44,17 +58,15 @@
44
58
  * has not yet done a migration Lisa only just made possible.
45
59
  * @module cli/doctor-skip-jobs-migration
46
60
  */
47
- import { readdir, readFile } from "node:fs/promises";
61
+ import { readFile } from "node:fs/promises";
48
62
  import * as path from "node:path";
49
63
  import { importGateRegistry } from "./gate-registry-source.js";
64
+ import { momentContext, momentFor, qualityCalls, scalar, unpinnedClause, workflowFiles, } from "./workflow-moments.js";
65
+ export { qualityCalls } from "./workflow-moments.js";
50
66
  /** Name rendered in the doctor report. */
51
67
  const CHECK_NAME = "skip_jobs migrated to gates?";
52
- /** The moment `quality.yml` resolves gates at when a caller declares none. */
53
- const DEFAULT_MOMENT = "pull-request";
54
68
  /** A caller's `skip_jobs` input, whatever quoting style it uses. */
55
69
  const SKIP_JOBS_INPUT = /^([ \t]{0,64})skip_jobs:[ \t]{0,64}(.{0,4096})$/;
56
- /** A caller's `moment` input, whatever quoting style it uses. */
57
- const MOMENT_INPUT = /^([ \t]{0,64})moment:[ \t]{0,64}(.{0,4096})$/;
58
70
  /**
59
71
  * Import the shipped registry.
60
72
  *
@@ -66,60 +78,6 @@ const MOMENT_INPUT = /^([ \t]{0,64})moment:[ \t]{0,64}(.{0,4096})$/;
66
78
  async function loadRegistry() {
67
79
  return importGateRegistry();
68
80
  }
69
- /**
70
- * Strip YAML quoting and a trailing comment from an inline scalar.
71
- * @param raw - The text after `key:`
72
- * @returns The scalar's value
73
- */
74
- function scalar(raw) {
75
- const withoutComment = /^(['"])(.*?)\1/.exec(raw.trim());
76
- if (withoutComment)
77
- return withoutComment[2] ?? "";
78
- return raw.split("#")[0]?.trim() ?? "";
79
- }
80
- /**
81
- * The `moment` declared in the same `with:` block as a `skip_jobs` line.
82
- *
83
- * Scoped by indentation rather than taken from anywhere in the file: a
84
- * workflow may call `quality.yml` twice with different moments, and attributing
85
- * one job's moment to the other's tokens would produce a declaration that is
86
- * legal for neither.
87
- * @param lines - The workflow file's lines
88
- * @param at - Index of the `skip_jobs` line
89
- * @param indent - That line's leading whitespace
90
- * @returns The declared moment, or the workflow's default
91
- */
92
- function momentFor(lines, at, indent) {
93
- const sameBlock = (index) => {
94
- const line = lines[index];
95
- if (line === undefined)
96
- return false;
97
- if (line.trim() === "")
98
- return true;
99
- return line.startsWith(indent) && !/^[ \t]/.test(line.slice(indent.length));
100
- };
101
- const declaredAt = (index) => {
102
- const match = MOMENT_INPUT.exec(lines[index] ?? "");
103
- return match && match[1] === indent ? scalar(match[2] ?? "") : null;
104
- };
105
- const scan = (index, step) => sameBlock(index) ? (declaredAt(index) ?? scan(index + step, step)) : null;
106
- return scan(at - 1, -1) ?? scan(at + 1, 1) ?? DEFAULT_MOMENT;
107
- }
108
- /**
109
- * Every workflow file in a project's `.github/workflows` directory.
110
- * @param targetPath - Project root
111
- * @returns Absolute paths, empty when the directory is absent
112
- */
113
- async function workflowFiles(targetPath) {
114
- const dir = path.join(targetPath, ".github", "workflows");
115
- const entries = await readdir(dir).catch(() => undefined);
116
- if (entries === undefined)
117
- return [];
118
- return entries
119
- .filter(name => /\.ya?ml$/.test(name))
120
- .sort((left, right) => left.localeCompare(right))
121
- .map(name => path.join(dir, name));
122
- }
123
81
  /**
124
82
  * Read one workflow's `skip_jobs` callers.
125
83
  *
@@ -181,12 +139,70 @@ export async function skipJobCallers(targetPath) {
181
139
  const perFile = await Promise.all(files.map(file => callersIn(registry, targetPath, file)));
182
140
  return perFile.flat();
183
141
  }
142
+ /**
143
+ * The `moment` a shared caller should be moved to instead of declaring `off`.
144
+ *
145
+ * A placeholder rather than a concrete environment because doctor cannot know
146
+ * which environment this caller deploys. `release.yml`'s own `moment` input
147
+ * documents this route as the one that retires `skip_jobs`.
148
+ */
149
+ const OWN_MOMENT_HINT = "moment: pre-deploy:<environment>";
150
+ /**
151
+ * Whether declaring this token's gate would reach a caller it is not about.
152
+ * @param entry - The token's resolved migration
153
+ * @param context - Every job resolving this caller's moment, when known
154
+ * @returns True when the declaration would govern more than this caller
155
+ */
156
+ function isHeld(entry, context) {
157
+ // Only a declaration can do this damage: every other branch tells the
158
+ // operator to keep or delete the token, neither of which changes what any
159
+ // other caller runs.
160
+ return entry.declaration !== null && (context?.callers.length ?? 0) > 1;
161
+ }
162
+ /**
163
+ * The advice for a token whose moment more than one job resolves.
164
+ *
165
+ * A gate declaration is keyed by gate and moment, so it governs every job
166
+ * resolving that moment. Declaring the gate `off` to neutralise a token that
167
+ * exists on one caller switches the check off on the other caller too — and the
168
+ * other caller is usually the one running it for real. Doctor cannot see
169
+ * whether that run does real work, so it says exactly that and withholds the
170
+ * declaration rather than recommending it (CodySwannGT/lisa#3100).
171
+ * @param entry - The token's resolved migration
172
+ * @param context - The moment and every job resolving it
173
+ * @returns One line naming the risk and the edit that avoids it
174
+ */
175
+ function describeShared(entry, context) {
176
+ const gate = entry.gate ?? "the gate";
177
+ const files = [...new Set(context.callers)].join(", ");
178
+ const alsoRunning = entry.ungated.length === 0
179
+ ? ""
180
+ : ` Separately, ${entry.ungated.join(", ")} have no gate yet and keep ` +
181
+ "running whatever you declare.";
182
+ return (`${entry.token} → HOLD, do not declare this gate off yet: ` +
183
+ `${context.callers.length} jobs resolve the ${context.moment} moment ` +
184
+ `(${files})${unpinnedClause(context)}, and a gate setting applies to the ` +
185
+ `moment, not to one workflow. Writing ${entry.declaration ?? ""} switches ` +
186
+ `${gate} off for all of them — including a workflow that is not passing ` +
187
+ "this token and may be running the check for real. Doctor cannot tell " +
188
+ "from here whether that run does real work, so it will not tell you to " +
189
+ "switch it off. Give this workflow a moment of its own instead — pass " +
190
+ `\`${OWN_MOMENT_HINT}\` on this call, which is what release.yml's moment ` +
191
+ "input is for — then check what your project already declares at that new " +
192
+ "moment, because a moment with nothing declared runs no checks at all, " +
193
+ `and only then declare ${gate} off at the new moment and delete the ` +
194
+ `token.${alsoRunning}`);
195
+ }
184
196
  /**
185
197
  * The operator-readable line for one token.
186
198
  * @param entry - The token's resolved migration
199
+ * @param context - Every job resolving this caller's moment, when known
187
200
  * @returns One line naming the edit, or naming why there is none
188
201
  */
189
- export function describeToken(entry) {
202
+ export function describeToken(entry, context) {
203
+ if (context !== undefined && isHeld(entry, context)) {
204
+ return describeShared(entry, context);
205
+ }
190
206
  switch (entry.status) {
191
207
  case "replaceable":
192
208
  return `${entry.token} → declare ${entry.declaration} and delete the token`;
@@ -223,18 +239,24 @@ export function describeToken(entry) {
223
239
  }
224
240
  /**
225
241
  * Count the token classes the summary has to speak about separately.
226
- * @param callers - Every caller reported
242
+ *
243
+ * `held` is split out of `declarable` rather than folded into it: both have a
244
+ * declaration, but writing a held one switches the check off for a caller the
245
+ * token was never about, so the two need opposite instructions.
246
+ * @param reported - Every caller reported, with its moment's other callers
227
247
  * @returns The per-class counts
228
248
  */
229
- function countTokens(callers) {
230
- const tokens = callers.flatMap(caller => [...caller.tokens]);
231
- const suppressing = tokens.filter(entry => entry.jobs.length > 0);
232
- const declarable = suppressing.filter(entry => entry.declaration !== null).length;
249
+ function countTokens(reported) {
250
+ const tokens = reported.flatMap(entry => entry.caller.tokens.map(token => ({ token, context: entry.context })));
251
+ const suppressing = tokens.filter(entry => entry.token.jobs.length > 0);
252
+ const withDeclaration = suppressing.filter(entry => entry.token.declaration !== null);
253
+ const held = withDeclaration.filter(entry => isHeld(entry.token, entry.context)).length;
233
254
  return {
234
255
  total: tokens.length,
235
256
  suppressing: suppressing.length,
236
- declarable,
237
- keepers: suppressing.length - declarable,
257
+ declarable: withDeclaration.length - held,
258
+ held,
259
+ keepers: suppressing.length - withDeclaration.length,
238
260
  hollow: tokens.length - suppressing.length,
239
261
  };
240
262
  }
@@ -263,6 +285,24 @@ function migrateThese(count) {
263
285
  ? `1 of those has a gate to migrate to: add the${tail}`
264
286
  : `${count} of those have a gate to migrate to: add each${tail}`;
265
287
  }
288
+ /**
289
+ * The tokens whose declaration would reach a caller they were never about.
290
+ *
291
+ * Kept out of `migrateThese` because the two instructions are opposites: one
292
+ * says write the declaration, this one says do not write it yet. Merging them
293
+ * is how the harmful advice got issued in the first place — the summary spoke
294
+ * for every token at once (CodySwannGT/lisa#3100).
295
+ * @param count - How many
296
+ * @returns The sentence
297
+ */
298
+ function holdThese(count) {
299
+ const why = " marked HOLD below because more than one job resolves that token's " +
300
+ "moment, and a gate setting applies to the moment rather than to one " +
301
+ "workflow: declaring the gate off there would also stop the check " +
302
+ "running for a workflow that is not skipping it. Move that caller to a " +
303
+ "moment of its own before declaring anything.";
304
+ return count === 1 ? `1 is${why}` : `${count} are${why}`;
305
+ }
266
306
  /**
267
307
  * The tokens that suppress a job no declaration can replace.
268
308
  *
@@ -303,15 +343,16 @@ function deleteThese(count) {
303
343
  * declare. An operator who followed that text on such a token wrote a
304
344
  * declaration for a gate that does not exist. The aggregate and the per-token
305
345
  * lines have to agree, so both are now derived from the same classification.
306
- * @param callers - Every caller reported
346
+ * @param reported - Every caller reported, with its moment's other callers
307
347
  * @returns The summary sentences, space-joined
308
348
  */
309
- function summarize(callers) {
310
- const counts = countTokens(callers);
349
+ function summarize(reported) {
350
+ const counts = countTokens(reported);
311
351
  return [
312
352
  `${counts.total} skip_jobs token(s) still passed.`,
313
353
  ...(counts.suppressing > 0 ? [falselyGreen(counts.suppressing)] : []),
314
354
  ...(counts.declarable > 0 ? [migrateThese(counts.declarable)] : []),
355
+ ...(counts.held > 0 ? [holdThese(counts.held)] : []),
315
356
  ...(counts.keepers > 0 ? [keepThese(counts.keepers)] : []),
316
357
  ...(counts.hollow > 0 ? [deleteThese(counts.hollow)] : []),
317
358
  "doctor does not edit the workflow, so confirm the same checks still run " +
@@ -337,15 +378,20 @@ export async function checkSkipJobsMigration(targetPath) {
337
378
  detail: "No caller workflow passes skip_jobs",
338
379
  };
339
380
  }
340
- const detail = callers
341
- .map(caller => `${caller.file} (moment: ${caller.moment}) — ${caller.tokens
342
- .map(describeToken)
381
+ const calls = await qualityCalls(targetPath);
382
+ const reported = callers.map(caller => ({
383
+ caller,
384
+ context: momentContext(calls, caller.moment),
385
+ }));
386
+ const detail = reported
387
+ .map(({ caller, context }) => `${caller.file} (moment: ${caller.moment}) — ${caller.tokens
388
+ .map(token => describeToken(token, context))
343
389
  .join("; ")}`)
344
390
  .join(" | ");
345
391
  return {
346
392
  name: CHECK_NAME,
347
393
  status: "warn",
348
- detail: `${summarize(callers)} ${detail}`,
394
+ detail: `${summarize(reported)} ${detail}`,
349
395
  };
350
396
  }
351
397
  //# sourceMappingURL=doctor-skip-jobs-migration.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"doctor-skip-jobs-migration.js","sourceRoot":"","sources":["../../src/cli/doctor-skip-jobs-migration.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"doctor-skip-jobs-migration.js","sourceRoot":"","sources":["../../src/cli/doctor-skip-jobs-migration.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2DG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAGlC,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAE/D,OAAO,EACL,aAAa,EACb,SAAS,EACT,YAAY,EACZ,MAAM,EACN,cAAc,EACd,aAAa,GACd,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAGrD,0CAA0C;AAC1C,MAAM,UAAU,GAAG,8BAA8B,CAAC;AAElD,oEAAoE;AACpE,MAAM,eAAe,GAAG,iDAAiD,CAAC;AA2C1E;;;;;;;GAOG;AACH,KAAK,UAAU,YAAY;IACzB,OAAO,kBAAkB,EAAsB,CAAC;AAClD,CAAC;AAED;;;;;;;;;;;GAWG;AACH,KAAK,UAAU,SAAS,CACtB,QAA4B,EAC5B,UAAkB,EAClB,IAAY;IAEZ,MAAM,KAAK,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACzE,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QACnC,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC9B,yEAAyE;QACzE,0EAA0E;QAC1E,yEAAyE;QACzE,gEAAgE;QAChE,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aAClC,KAAK,CAAC,GAAG,CAAC;aACV,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC;QACjC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QACnC,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAC/C,OAAO;YACL;gBACE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC;gBACrC,MAAM;gBACN,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;oBACzB,MAAM,QAAQ,GAAG,QAAQ,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;oBAC1D,OAAO;wBACL,KAAK,EAAE,QAAQ,CAAC,KAAK;wBACrB,MAAM,EAAE,QAAQ,CAAC,MAAM;wBACvB,IAAI,EAAE,QAAQ,CAAC,IAAI;wBACnB,IAAI,EAAE,QAAQ,CAAC,IAAI;wBACnB,OAAO,EAAE,QAAQ,CAAC,OAAO;wBACzB,WAAW,EAAE,QAAQ,CAAC,WAAW;qBAClC,CAAC;gBACJ,CAAC,CAAC;aACH;SACF,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,UAAkB;IAElB,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;IACtC,IAAI,QAAQ,KAAK,IAAI;QAAE,OAAO,EAAE,CAAC;IACjC,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,UAAU,CAAC,CAAC;IAC9C,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC,CACzD,CAAC;IACF,OAAO,OAAO,CAAC,IAAI,EAAE,CAAC;AACxB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,eAAe,GAAG,kCAAkC,CAAC;AAE3D;;;;;GAKG;AACH,SAAS,MAAM,CAAC,KAAmB,EAAE,OAAuB;IAC1D,sEAAsE;IACtE,0EAA0E;IAC1E,qBAAqB;IACrB,OAAO,KAAK,CAAC,WAAW,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AAC1E,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,SAAS,cAAc,CAAC,KAAmB,EAAE,OAAsB;IACjE,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,UAAU,CAAC;IACtC,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvD,MAAM,WAAW,GACf,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;QACxB,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,gBAAgB,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,6BAA6B;YACrE,+BAA+B,CAAC;IACtC,OAAO,CACL,GAAG,KAAK,CAAC,KAAK,6CAA6C;QAC3D,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,qBAAqB,OAAO,CAAC,MAAM,UAAU;QACtE,IAAI,KAAK,IAAI,cAAc,CAAC,OAAO,CAAC,sCAAsC;QAC1E,wCAAwC,KAAK,CAAC,WAAW,IAAI,EAAE,YAAY;QAC3E,GAAG,IAAI,kEAAkE;QACzE,uEAAuE;QACvE,wEAAwE;QACxE,uEAAuE;QACvE,KAAK,eAAe,sDAAsD;QAC1E,2EAA2E;QAC3E,wEAAwE;QACxE,yBAAyB,IAAI,wCAAwC;QACrE,SAAS,WAAW,EAAE,CACvB,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAC3B,KAAmB,EACnB,OAAuB;IAEvB,IAAI,OAAO,KAAK,SAAS,IAAI,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC;QACpD,OAAO,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC;IACD,QAAQ,KAAK,CAAC,MAAM,EAAE,CAAC;QACrB,KAAK,aAAa;YAChB,OAAO,GAAG,KAAK,CAAC,KAAK,cAAc,KAAK,CAAC,WAAW,uBAAuB,CAAC;QAC9E,KAAK,SAAS;YACZ,OAAO,CACL,GAAG,KAAK,CAAC,KAAK,eAAe,KAAK,CAAC,WAAW,WAAW,KAAK,CAAC,IAAI,IAAI,EAAE,IAAI;gBAC7E,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,uCAAuC;gBACtE,yCAAyC,CAC1C,CAAC;QACJ,KAAK,gBAAgB;YACnB,OAAO,CACL,GAAG,KAAK,CAAC,KAAK,UAAU,KAAK,CAAC,IAAI,IAAI,EAAE,mCAAmC;gBAC3E,oEAAoE,CACrE,CAAC;QACJ,KAAK,YAAY;YACf,OAAO,CACL,GAAG,KAAK,CAAC,KAAK,sBAAsB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;gBAC5D,oEAAoE;gBACpE,uEAAuE,CACxE,CAAC;QACJ,KAAK,OAAO;YACV,uEAAuE;YACvE,wEAAwE;YACxE,oEAAoE;YACpE,mEAAmE;YACnE,oEAAoE;YACpE,OAAO,CACL,GAAG,KAAK,CAAC,KAAK,uDAAuD;gBACrE,kEAAkE;gBAClE,kCAAkC,CACnC,CAAC;QACJ,KAAK,SAAS;YACZ,yEAAyE;YACzE,yEAAyE;YACzE,0EAA0E;YAC1E,OAAO,CACL,GAAG,KAAK,CAAC,KAAK,4DAA4D;gBAC1E,2EAA2E,CAC5E,CAAC;QACJ;YACE,OAAO,CACL,GAAG,KAAK,CAAC,KAAK,wDAAwD;gBACtE,2CAA2C,CAC5C,CAAC;IACN,CAAC;AACH,CAAC;AA0BD;;;;;;;;GAQG;AACH,SAAS,WAAW,CAAC,QAAmC;IACtD,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CACtC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CACtE,CAAC;IACF,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACxE,MAAM,eAAe,GAAG,WAAW,CAAC,MAAM,CACxC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,KAAK,IAAI,CAC1C,CAAC;IACF,MAAM,IAAI,GAAG,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAC1C,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CACnC,CAAC,MAAM,CAAC;IACT,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,MAAM;QACpB,WAAW,EAAE,WAAW,CAAC,MAAM;QAC/B,UAAU,EAAE,eAAe,CAAC,MAAM,GAAG,IAAI;QACzC,IAAI;QACJ,OAAO,EAAE,WAAW,CAAC,MAAM,GAAG,eAAe,CAAC,MAAM;QACpD,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM;KAC3C,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAS,YAAY,CAAC,KAAa;IACjC,OAAO,KAAK,KAAK,CAAC;QAChB,CAAC,CAAC,iEAAiE;YAC/D,kDAAkD;QACtD,CAAC,CAAC,GAAG,KAAK,6DAA6D;YACnE,uDAAuD,CAAC;AAChE,CAAC;AAED;;;;GAIG;AACH,SAAS,YAAY,CAAC,KAAa;IACjC,MAAM,IAAI,GACR,0EAA0E;QAC1E,0EAA0E;QAC1E,sCAAsC,CAAC;IACzC,OAAO,KAAK,KAAK,CAAC;QAChB,CAAC,CAAC,+CAA+C,IAAI,EAAE;QACvD,CAAC,CAAC,GAAG,KAAK,gDAAgD,IAAI,EAAE,CAAC;AACrE,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,SAAS,CAAC,KAAa;IAC9B,MAAM,GAAG,GACP,qEAAqE;QACrE,sEAAsE;QACtE,mEAAmE;QACnE,wEAAwE;QACxE,8CAA8C,CAAC;IACjD,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,OAAO,GAAG,EAAE,CAAC;AAC3D,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,SAAS,CAAC,KAAa;IAC9B,MAAM,GAAG,GACP,oEAAoE;QACpE,gBAAgB,CAAC;IACnB,OAAO,KAAK,KAAK,CAAC;QAChB,CAAC,CAAC,QAAQ,GAAG,yDAAyD;QACtE,CAAC,CAAC,GAAG,KAAK,QAAQ,GAAG,6CAA6C;YAC9D,iBAAiB,CAAC;AAC1B,CAAC;AAED;;;;GAIG;AACH,SAAS,WAAW,CAAC,KAAa;IAChC,OAAO,KAAK,KAAK,CAAC;QAChB,CAAC,CAAC,sEAAsE;YACpE,6CAA6C;QACjD,CAAC,CAAC,GAAG,KAAK,0DAA0D;YAChE,0DAA0D,CAAC;AACnE,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,SAAS,SAAS,CAAC,QAAmC;IACpD,MAAM,MAAM,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;IACrC,OAAO;QACL,GAAG,MAAM,CAAC,KAAK,mCAAmC;QAClD,GAAG,CAAC,MAAM,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACrE,GAAG,CAAC,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACnE,GAAG,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACpD,GAAG,CAAC,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1D,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1D,0EAA0E;YACxE,aAAa;QACf,wEAAwE;KACzE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACd,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,UAAkB;IAElB,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,UAAU,CAAC,CAAC;IACjD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO;YACL,IAAI,EAAE,UAAU;YAChB,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,qCAAqC;SAC9C,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,UAAU,CAAC,CAAC;IAC7C,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACtC,MAAM;QACN,OAAO,EAAE,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC;KAC7C,CAAC,CAAC,CAAC;IAEJ,MAAM,MAAM,GAAG,QAAQ;SACpB,GAAG,CACF,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,CACtB,GAAG,MAAM,CAAC,IAAI,aAAa,MAAM,CAAC,MAAM,OAAO,MAAM,CAAC,MAAM;SACzD,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;SAC3C,IAAI,CAAC,IAAI,CAAC,EAAE,CAClB;SACA,IAAI,CAAC,KAAK,CAAC,CAAC;IAEf,OAAO;QACL,IAAI,EAAE,UAAU;QAChB,MAAM,EAAE,MAAM;QACd,MAAM,EAAE,GAAG,SAAS,CAAC,QAAQ,CAAC,IAAI,MAAM,EAAE;KAC3C,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/cli/doctor.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAmBnE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAQzD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,mDAAmD;AACnD,KAAK,YAAY,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC;AAO3C,oCAAoC;AACpC,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,sCAAsC;AACtC,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB;;;;;;;;;;;;OAYG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAED,wCAAwC;AACxC,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,wCAAwC;AACxC,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,OAAO,KAAK,CAAC;IACxB,cAAc,EAAE,OAAO,cAAc,CAAC;IACtC,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,kBAAkB,EAAE,OAAO,kBAAkB,CAAC;IAC9C,mBAAmB,EAAE,OAAO,mBAAmB,CAAC;CACjD;AAaD;;;;;;;GAOG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,IAAI,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,EAChD,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,WAAW,CAAC,CAyBtB;AA4MD;;;;;;GAMG;AACH,wBAAsB,SAAS,CAC7B,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,OAAO,EAAE,aAAa,EACtB,YAAY,GAAE,OAAO,CAAC,kBAAkB,CAAM,GAC7C,OAAO,CAAC,YAAY,CAAC,CAqFvB"}
1
+ {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/cli/doctor.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAoBnE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAQzD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,mDAAmD;AACnD,KAAK,YAAY,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC;AAO3C,oCAAoC;AACpC,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,sCAAsC;AACtC,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB;;;;;;;;;;;;OAYG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAED,wCAAwC;AACxC,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,wCAAwC;AACxC,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,OAAO,KAAK,CAAC;IACxB,cAAc,EAAE,OAAO,cAAc,CAAC;IACtC,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,kBAAkB,EAAE,OAAO,kBAAkB,CAAC;IAC9C,mBAAmB,EAAE,OAAO,mBAAmB,CAAC;CACjD;AAaD;;;;;;;GAOG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,IAAI,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,EAChD,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,WAAW,CAAC,CAyBtB;AA4MD;;;;;;GAMG;AACH,wBAAsB,SAAS,CAC7B,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,OAAO,EAAE,aAAa,EACtB,YAAY,GAAE,OAAO,CAAC,kBAAkB,CAAM,GAC7C,OAAO,CAAC,YAAY,CAAC,CA4FvB"}
@@ -11,6 +11,7 @@ import { checkApplyFreshness, checkYamlRuntime, } from "./doctor-apply-freshness
11
11
  import { checkKaneProvider } from "./doctor-kane.js";
12
12
  import { checkLearningsLedger } from "./doctor-learnings-ledger.js";
13
13
  import { checkLearningsMergeDriver } from "./doctor-learnings-merge-driver.js";
14
+ import { checkReadinessReportTracking } from "./doctor-readiness-tracking.js";
14
15
  import { checkSonarProvider } from "./doctor-sonar.js";
15
16
  import { checkLegacyCodexOverlay } from "./doctor-legacy-overlay.js";
16
17
  import { checkLisaOwnedArtifacts } from "./doctor-lisa-owned-artifacts.js";
@@ -304,6 +305,13 @@ export async function runDoctor(targetPath, options, dependencies = {}) {
304
305
  // operator can act in — which ledger is canonical, then whether this
305
306
  // checkout can actually run the union merge that protects it.
306
307
  await checkLearningsMergeDriver(resolvedTarget),
308
+ // The readiness report's protection is a .gitignore line rather than a
309
+ // merge driver, because the report is derived and a blend of two
310
+ // assessments describes a tree that never existed. An ignore rule only
311
+ // binds an UNTRACKED path, so a checkout that committed one before the
312
+ // rule shipped keeps committing it and says nothing
313
+ // (CodySwannGT/lisa#3046).
314
+ await checkReadinessReportTracking(resolvedTarget),
307
315
  await checkWorkerEpoch(resolvedTarget),
308
316
  checkLegacyCodexOverlay(resolvedTarget),
309
317
  // Environment hygiene rather than project config: accumulated agent
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/cli/doctor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/cli/doctor.ts"],"names":[],"mappings":"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"}