@codyswann/lisa 3.1.0 → 3.3.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 (155) hide show
  1. package/dist/cli/doctor-lisa-owned-artifacts.d.ts.map +1 -1
  2. package/dist/cli/doctor-lisa-owned-artifacts.js +41 -2
  3. package/dist/cli/doctor-lisa-owned-artifacts.js.map +1 -1
  4. package/dist/core/upstream-evidence-manifest.d.ts.map +1 -1
  5. package/dist/core/upstream-evidence-manifest.js +93 -23
  6. package/dist/core/upstream-evidence-manifest.js.map +1 -1
  7. package/expo/copy-overwrite/scripts/bdd/baseline.mjs +211 -121
  8. package/expo/copy-overwrite/scripts/bdd/contract.mjs +10 -2
  9. package/expo/copy-overwrite/scripts/bdd/envelope.mjs +3 -2
  10. package/expo/copy-overwrite/scripts/bdd/render.mjs +2 -2
  11. package/expo/copy-overwrite/scripts/check-bdd-coverage.mjs +45 -8
  12. package/expo/copy-overwrite/scripts/classify-maestro-failures.mjs +775 -0
  13. package/expo/create-only/.github/workflows/nightly-e2e-health.yml +21 -2
  14. package/expo/create-only/.maestro/flake-classification.json +21 -0
  15. package/expo/create-only/bdd/coverage-map.json +1 -2
  16. package/expo/package-lisa/package.lisa.json +1 -0
  17. package/package.json +1 -1
  18. package/plugins/lisa/.claude-plugin/plugin.json +1 -1
  19. package/plugins/lisa/.codex-plugin/plugin.json +1 -1
  20. package/plugins/lisa/hooks/threshold-ratchet-families.mjs +24 -0
  21. package/plugins/lisa/rules/eager/credential-substrate-precedence.md +52 -0
  22. package/plugins/lisa/rules/eager/do-it-now.md +11 -0
  23. package/plugins/lisa/rules/eager/empirical-inquiry.md +1 -0
  24. package/plugins/lisa/rules/eager/falsifiable-checks.md +2 -0
  25. package/plugins/lisa/rules/eager/integration-access-layer.md +5 -0
  26. package/plugins/lisa/rules/eager/learnings-ladder.md +18 -0
  27. package/plugins/lisa/rules/eager/local-ci-first.md +15 -0
  28. package/plugins/lisa/rules/eager/not-blocked-just-waiting.md +13 -0
  29. package/plugins/lisa/rules/eager/session-status-updates.md +19 -0
  30. package/plugins/lisa/rules/eager/wiki-knowledge-source.md +6 -11
  31. package/plugins/lisa/rules/reference/bdd-e2e-coverage.md +19 -8
  32. package/plugins/lisa/rules/reference/do-it-now.md +37 -0
  33. package/plugins/lisa/rules/reference/empirical-inquiry.md +1 -0
  34. package/plugins/lisa/rules/reference/falsifiable-checks.md +24 -2
  35. package/plugins/lisa/rules/reference/integration-access-layer.md +8 -0
  36. package/plugins/lisa/rules/reference/learnings-ladder.md +41 -0
  37. package/plugins/lisa/rules/reference/local-ci-first.md +34 -0
  38. package/plugins/lisa/rules/reference/not-blocked-just-waiting.md +41 -0
  39. package/plugins/lisa/rules/reference/session-status-updates.md +60 -0
  40. package/plugins/lisa/rules/reference/wiki-knowledge-source.md +21 -5
  41. package/plugins/lisa-agy/plugin.json +1 -1
  42. package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
  43. package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
  44. package/plugins/lisa-cdk-agy/plugin.json +1 -1
  45. package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +1 -1
  46. package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +1 -1
  47. package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
  48. package/plugins/lisa-copilot/hooks/threshold-ratchet-families.mjs +24 -0
  49. package/plugins/lisa-copilot/rules/eager/credential-substrate-precedence.md +52 -0
  50. package/plugins/lisa-copilot/rules/eager/do-it-now.md +11 -0
  51. package/plugins/lisa-copilot/rules/eager/empirical-inquiry.md +1 -0
  52. package/plugins/lisa-copilot/rules/eager/falsifiable-checks.md +2 -0
  53. package/plugins/lisa-copilot/rules/eager/integration-access-layer.md +5 -0
  54. package/plugins/lisa-copilot/rules/eager/learnings-ladder.md +18 -0
  55. package/plugins/lisa-copilot/rules/eager/local-ci-first.md +15 -0
  56. package/plugins/lisa-copilot/rules/eager/not-blocked-just-waiting.md +13 -0
  57. package/plugins/lisa-copilot/rules/eager/session-status-updates.md +19 -0
  58. package/plugins/lisa-copilot/rules/eager/wiki-knowledge-source.md +6 -11
  59. package/plugins/lisa-copilot/rules/reference/bdd-e2e-coverage.md +19 -8
  60. package/plugins/lisa-copilot/rules/reference/do-it-now.md +37 -0
  61. package/plugins/lisa-copilot/rules/reference/empirical-inquiry.md +1 -0
  62. package/plugins/lisa-copilot/rules/reference/falsifiable-checks.md +24 -2
  63. package/plugins/lisa-copilot/rules/reference/integration-access-layer.md +8 -0
  64. package/plugins/lisa-copilot/rules/reference/learnings-ladder.md +41 -0
  65. package/plugins/lisa-copilot/rules/reference/local-ci-first.md +34 -0
  66. package/plugins/lisa-copilot/rules/reference/not-blocked-just-waiting.md +41 -0
  67. package/plugins/lisa-copilot/rules/reference/session-status-updates.md +60 -0
  68. package/plugins/lisa-copilot/rules/reference/wiki-knowledge-source.md +21 -5
  69. package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
  70. package/plugins/lisa-cursor/hooks/threshold-ratchet-families.mjs +24 -0
  71. package/plugins/lisa-cursor/rules/bdd-e2e-coverage-reference.mdc +19 -8
  72. package/plugins/lisa-cursor/rules/credential-substrate-precedence.mdc +57 -0
  73. package/plugins/lisa-cursor/rules/do-it-now-reference.mdc +42 -0
  74. package/plugins/lisa-cursor/rules/do-it-now.mdc +16 -0
  75. package/plugins/lisa-cursor/rules/empirical-inquiry-reference.mdc +1 -0
  76. package/plugins/lisa-cursor/rules/empirical-inquiry.mdc +1 -0
  77. package/plugins/lisa-cursor/rules/falsifiable-checks-reference.mdc +24 -2
  78. package/plugins/lisa-cursor/rules/falsifiable-checks.mdc +2 -0
  79. package/plugins/lisa-cursor/rules/integration-access-layer-reference.mdc +8 -0
  80. package/plugins/lisa-cursor/rules/integration-access-layer.mdc +5 -0
  81. package/plugins/lisa-cursor/rules/learnings-ladder-reference.mdc +46 -0
  82. package/plugins/lisa-cursor/rules/learnings-ladder.mdc +23 -0
  83. package/plugins/lisa-cursor/rules/local-ci-first-reference.mdc +39 -0
  84. package/plugins/lisa-cursor/rules/local-ci-first.mdc +20 -0
  85. package/plugins/lisa-cursor/rules/not-blocked-just-waiting-reference.mdc +46 -0
  86. package/plugins/lisa-cursor/rules/not-blocked-just-waiting.mdc +18 -0
  87. package/plugins/lisa-cursor/rules/session-status-updates-reference.mdc +65 -0
  88. package/plugins/lisa-cursor/rules/session-status-updates.mdc +24 -0
  89. package/plugins/lisa-cursor/rules/wiki-knowledge-source-reference.mdc +21 -5
  90. package/plugins/lisa-cursor/rules/wiki-knowledge-source.mdc +7 -12
  91. package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
  92. package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
  93. package/plugins/lisa-expo-agy/plugin.json +1 -1
  94. package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
  95. package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
  96. package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
  97. package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
  98. package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
  99. package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +1 -1
  100. package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
  101. package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
  102. package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
  103. package/plugins/lisa-nestjs-agy/plugin.json +1 -1
  104. package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +1 -1
  105. package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +1 -1
  106. package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
  107. package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
  108. package/plugins/lisa-openclaw-agy/plugin.json +1 -1
  109. package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +1 -1
  110. package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +1 -1
  111. package/plugins/lisa-phaser/.claude-plugin/plugin.json +1 -1
  112. package/plugins/lisa-phaser/.codex-plugin/plugin.json +1 -1
  113. package/plugins/lisa-phaser-agy/plugin.json +1 -1
  114. package/plugins/lisa-phaser-copilot/.claude-plugin/plugin.json +1 -1
  115. package/plugins/lisa-phaser-cursor/.claude-plugin/plugin.json +1 -1
  116. package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
  117. package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
  118. package/plugins/lisa-rails-agy/plugin.json +1 -1
  119. package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +1 -1
  120. package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +1 -1
  121. package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
  122. package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
  123. package/plugins/lisa-typescript-agy/plugin.json +1 -1
  124. package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +1 -1
  125. package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +1 -1
  126. package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
  127. package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
  128. package/plugins/lisa-wiki-agy/plugin.json +1 -1
  129. package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
  130. package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
  131. package/plugins/src/base/hooks/threshold-ratchet-families.mjs +24 -0
  132. package/plugins/src/base/rules/eager/credential-substrate-precedence.md +52 -0
  133. package/plugins/src/base/rules/eager/do-it-now.md +11 -0
  134. package/plugins/src/base/rules/eager/empirical-inquiry.md +1 -0
  135. package/plugins/src/base/rules/eager/falsifiable-checks.md +2 -0
  136. package/plugins/src/base/rules/eager/integration-access-layer.md +5 -0
  137. package/plugins/src/base/rules/eager/learnings-ladder.md +18 -0
  138. package/plugins/src/base/rules/eager/local-ci-first.md +15 -0
  139. package/plugins/src/base/rules/eager/not-blocked-just-waiting.md +13 -0
  140. package/plugins/src/base/rules/eager/session-status-updates.md +19 -0
  141. package/plugins/src/base/rules/eager/wiki-knowledge-source.md +6 -11
  142. package/plugins/src/base/rules/reference/bdd-e2e-coverage.md +19 -8
  143. package/plugins/src/base/rules/reference/do-it-now.md +37 -0
  144. package/plugins/src/base/rules/reference/empirical-inquiry.md +1 -0
  145. package/plugins/src/base/rules/reference/falsifiable-checks.md +24 -2
  146. package/plugins/src/base/rules/reference/integration-access-layer.md +8 -0
  147. package/plugins/src/base/rules/reference/learnings-ladder.md +41 -0
  148. package/plugins/src/base/rules/reference/local-ci-first.md +34 -0
  149. package/plugins/src/base/rules/reference/not-blocked-just-waiting.md +41 -0
  150. package/plugins/src/base/rules/reference/session-status-updates.md +60 -0
  151. package/plugins/src/base/rules/reference/wiki-knowledge-source.md +21 -5
  152. package/rails/copy-overwrite/scripts/threshold-ratchet-families.mjs +24 -0
  153. package/typescript/copy-overwrite/scripts/check-nightly-e2e-health.mjs +173 -8
  154. package/typescript/copy-overwrite/scripts/nightly-e2e-suites.schema.json +12 -0
  155. package/typescript/copy-overwrite/scripts/threshold-ratchet-families.mjs +24 -0
@@ -1 +1 @@
1
- {"version":3,"file":"doctor-lisa-owned-artifacts.d.ts","sourceRoot":"","sources":["../../src/cli/doctor-lisa-owned-artifacts.ts"],"names":[],"mappings":"AAkCA,wEAAwE;AACxE,UAAU,aAAa;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC;CAChB;AAoFD;;;;;;;;GAQG;AACH,wBAAsB,uBAAuB,CAC3C,UAAU,EAAE,MAAM,EAClB,QAAQ,GAAE,MAA0B,GACnC,OAAO,CAAC,aAAa,CAAC,CA2CxB"}
1
+ {"version":3,"file":"doctor-lisa-owned-artifacts.d.ts","sourceRoot":"","sources":["../../src/cli/doctor-lisa-owned-artifacts.ts"],"names":[],"mappings":"AA0CA,wEAAwE;AACxE,UAAU,aAAa;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC;CAChB;AAkHD;;;;;;;;GAQG;AACH,wBAAsB,uBAAuB,CAC3C,UAAU,EAAE,MAAM,EAClB,QAAQ,GAAE,MAA0B,GACnC,OAAO,CAAC,aAAa,CAAC,CAiDxB"}
@@ -21,11 +21,18 @@ import { fileURLToPath } from "node:url";
21
21
  import * as fse from "fs-extra";
22
22
  import { PROJECT_TYPE_ORDER } from "../core/config.js";
23
23
  import { isLisaOwnedTemplate } from "../core/lisa-owned-templates.js";
24
+ import { isLisaSourceRepo } from "../core/self-apply.js";
24
25
  import { listFilesRecursive } from "../utils/file-operations.js";
25
26
  import { matchesAnyPattern, parseIgnorePatterns, } from "../utils/ignore-patterns.js";
26
27
  const CHECK_NAME = "Lisa enforcement artifacts current?";
27
28
  const COPY_OVERWRITE = "copy-overwrite";
28
29
  const __dirname = path.dirname(fileURLToPath(import.meta.url));
30
+ /**
31
+ * Quoted relative module specifiers — `import`/`export from`, `require()`, and
32
+ * a shell `source`/`.` of a sibling path all spell the target the same way.
33
+ * Bounded quantifier keeps the scan linear on large files.
34
+ */
35
+ const RELATIVE_SPECIFIER = /["'`](\.\.?\/[^"'`\n]{1,4096})["'`]/g;
29
36
  /**
30
37
  * Resolve the installed Lisa package root, mirroring how apply resolves it.
31
38
  * @returns Absolute path to the Lisa package root
@@ -81,6 +88,29 @@ async function matchesAnyShipped(installed, sources) {
81
88
  const shipped = await Promise.all(sources.map(async (source) => readFile(source)));
82
89
  return shipped.some(candidate => installed.equals(candidate));
83
90
  }
91
+ /**
92
+ * Whether the installed file is a trampoline that re-exports the shipped
93
+ * template instead of copying it.
94
+ *
95
+ * Lisa's own repository is the one host that cannot hold a byte copy of a file
96
+ * it also ships: the working copy and the template would be two editable
97
+ * originals of the same guard, free to diverge. It keeps a few-line entrypoint
98
+ * that re-exports the template, so its hooks and CI run the exact bytes the
99
+ * fleet gets. Byte comparison necessarily calls that drift; it is the opposite.
100
+ *
101
+ * Proof, not pattern-match: the specifier is resolved against the installed
102
+ * file's own directory and must land exactly on a shipped variant of this same
103
+ * destination. A stub pointing anywhere else is still drift.
104
+ * @param installed - Bytes currently installed in the project
105
+ * @param installedPath - Absolute path of the installed file
106
+ * @param sources - Absolute paths of the shipped variants
107
+ * @returns True when the installed file defers to a shipped variant
108
+ */
109
+ function reExportsShippedTemplate(installed, installedPath, sources) {
110
+ const shipped = new Set(sources.map(source => path.resolve(source)));
111
+ const directory = path.dirname(installedPath);
112
+ return [...installed.toString("utf8").matchAll(RELATIVE_SPECIFIER)].some(match => shipped.has(path.resolve(directory, match[1] ?? "")));
113
+ }
84
114
  /**
85
115
  * Report Lisa-owned enforcement artifacts the project has an outdated copy of.
86
116
  *
@@ -101,13 +131,22 @@ export async function checkLisaOwnedArtifacts(targetPath, lisaRoot = defaultLisa
101
131
  }
102
132
  const ignoreText = await readFile(path.join(targetPath, ".lisaignore"), "utf8").catch(() => "");
103
133
  const ignorePatterns = parseIgnorePatterns(ignoreText);
134
+ // Gating the trampoline exemption on self-host keeps this check byte-for-byte
135
+ // unchanged for every real host project: the branch below is unreachable
136
+ // unless the target's package.json is Lisa itself. A host must not be able to
137
+ // swap a guard for a thin re-export and have doctor call it current.
138
+ const selfHost = await isLisaSourceRepo(targetPath);
104
139
  const results = await Promise.all([...shipped].map(async ([destination, sources]) => {
105
140
  if (matchesAnyPattern(destination, ignorePatterns))
106
141
  return undefined;
107
- const installed = await readFile(path.join(targetPath, destination)).catch(() => undefined);
142
+ const installedPath = path.join(targetPath, destination);
143
+ const installed = await readFile(installedPath).catch(() => undefined);
108
144
  if (installed === undefined)
109
145
  return undefined;
110
- return (await matchesAnyShipped(installed, sources))
146
+ if (await matchesAnyShipped(installed, sources))
147
+ return undefined;
148
+ return selfHost &&
149
+ reExportsShippedTemplate(installed, installedPath, sources)
111
150
  ? undefined
112
151
  : destination;
113
152
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"doctor-lisa-owned-artifacts.js","sourceRoot":"","sources":["../../src/cli/doctor-lisa-owned-artifacts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"doctor-lisa-owned-artifacts.js","sourceRoot":"","sources":["../../src/cli/doctor-lisa-owned-artifacts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAEhC,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EACL,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,6BAA6B,CAAC;AAErC,MAAM,UAAU,GAAG,qCAAqC,CAAC;AACzD,MAAM,cAAc,GAAG,gBAAgB,CAAC;AACxC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE/D;;;;GAIG;AACH,MAAM,kBAAkB,GAAG,sCAAsC,CAAC;AAYlE;;;GAGG;AACH,SAAS,eAAe;IACtB,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAC7C,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,cAAc,CAC3B,QAAgB,EAChB,IAAY;IAEZ,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;IAC5D,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAAE,OAAO,EAAE,CAAC;IAClD,OAAO,CAAC,MAAM,kBAAkB,CAAC,SAAS,CAAC,CAAC;SACzC,GAAG,CACF,MAAM,CAAC,EAAE,CACP;QACE,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;QAC1D,MAAM;KACE,CACb;SACA,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC,CAAC;AACjE,CAAC;AAED;;;;;;;;GAQG;AACH,KAAK,UAAU,gBAAgB,CAC7B,QAAgB;IAEhB,MAAM,OAAO,GAAG,CACd,MAAM,OAAO,CAAC,GAAG,CACf,CAAC,KAAK,EAAE,GAAG,kBAAkB,CAAC,CAAC,GAAG,CAAC,KAAK,EAAC,IAAI,EAAC,EAAE,CAC9C,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,CAC/B,CACF,CACF,CAAC,IAAI,EAAE,CAAC;IACT,MAAM,YAAY,GAAG;QACnB,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC;KACxD,CAAC;IACF,OAAO,IAAI,GAAG,CACZ,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;QAC9B,WAAW;QACX,OAAO;aACJ,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,SAAS,KAAK,WAAW,CAAC;aAClD,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC;KAC/B,CAAC,CACH,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,iBAAiB,CAC9B,SAAiB,EACjB,OAA0B;IAE1B,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,OAAO,CAAC,GAAG,CAAC,KAAK,EAAC,MAAM,EAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAC9C,CAAC;IACF,OAAO,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;AAChE,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,SAAS,wBAAwB,CAC/B,SAAiB,EACjB,aAAqB,EACrB,OAA0B;IAE1B,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACrE,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAC9C,OAAO,CAAC,GAAG,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CACtE,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAC9D,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,UAAkB,EAClB,WAAmB,eAAe,EAAE;IAEpC,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IACjD,IAAI,OAAO,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO;YACL,IAAI,EAAE,UAAU;YAChB,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,iDAAiD;SAC1D,CAAC;IACJ,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,QAAQ,CAC/B,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,EACpC,MAAM,CACP,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;IAClB,MAAM,cAAc,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC;IACvD,8EAA8E;IAC9E,yEAAyE;IACzE,8EAA8E;IAC9E,qEAAqE;IACrE,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,UAAU,CAAC,CAAC;IAEpD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,OAAO,CAAC,EAAE,EAAE;QAChD,IAAI,iBAAiB,CAAC,WAAW,EAAE,cAAc,CAAC;YAAE,OAAO,SAAS,CAAC;QACrE,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;QACzD,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QACvE,IAAI,SAAS,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QAC9C,IAAI,MAAM,iBAAiB,CAAC,SAAS,EAAE,OAAO,CAAC;YAAE,OAAO,SAAS,CAAC;QAClE,OAAO,QAAQ;YACb,wBAAwB,CAAC,SAAS,EAAE,aAAa,EAAE,OAAO,CAAC;YAC3D,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,WAAW,CAAC;IAClB,CAAC,CAAC,CACH,CAAC;IACF,MAAM,KAAK,GAAG,OAAO;SAClB,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC;SACpD,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;IAEpD,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;QACvB,CAAC,CAAC;YACE,IAAI,EAAE,UAAU;YAChB,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,qDAAqD;SAC9D;QACH,CAAC,CAAC;YACE,IAAI,EAAE,UAAU;YAChB,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,qEAAqE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;SAChG,CAAC;AACR,CAAC"}
@@ -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,CA4vEpE,CAAC;AAEL,4EAA4E;AAC5E,eAAO,MAAM,yBAAyB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAk5NjE,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,CAsxEpE,CAAC;AAEL,4EAA4E;AAC5E,eAAO,MAAM,yBAAyB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CA28NjE,CAAC;AAEL,sFAAsF;AACtF,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAk6I/D,CAAC"}
@@ -84,17 +84,18 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
84
84
  "expo/copy-overwrite/jest.setup.ts": "102b22e857eb9deebfa18a44b680f8d95496dafcceaa3e65b6774b8e4a0e74f1",
85
85
  "expo/copy-overwrite/knip.json": "b19d0c177d8d0460779e07043c92d37555e7721224b6b2134ac2f6d10ab44b33",
86
86
  "expo/copy-overwrite/scripts/bdd-matrix.mjs": "519273668f08db7c14053ba1f25830e4cbb6e34ddf11f06264e72d0f7a80b98d",
87
- "expo/copy-overwrite/scripts/bdd/baseline.mjs": "96f6a295bad34c0b52f7f667640243a462cb745998768c21a192c74d1a96dd34",
88
- "expo/copy-overwrite/scripts/bdd/contract.mjs": "d8a418d655d4a14d4d3287518b8d678cb410b7f08e38a60cf0dbf30b2e796973",
87
+ "expo/copy-overwrite/scripts/bdd/baseline.mjs": "630df2cbb6613534f755d3de1efbb6390a1c1dab5694d97f0ca09b8b7422881c",
88
+ "expo/copy-overwrite/scripts/bdd/contract.mjs": "7366f56fb66f609b17438f3b2b89d0a45aaf012886278b38b0744e69955fa5cc",
89
89
  "expo/copy-overwrite/scripts/bdd/discover.mjs": "820e8a869a0b46fc11461a655bb82f0c8c60f5b46005fbff48e5d19930d7d25a",
90
- "expo/copy-overwrite/scripts/bdd/envelope.mjs": "ab3c9520be5c4c630ec3b6c8489015f24f97888c8687dde108865bbcff93efdb",
90
+ "expo/copy-overwrite/scripts/bdd/envelope.mjs": "9f3c72316d4dd5b5c2e3fa7634f00fb203dfb9235ab9af7183c99105dad7645d",
91
91
  "expo/copy-overwrite/scripts/bdd/parse.mjs": "d1bf74b01388d107e6869b90a3d1e1d2c03da8124cb2cc14f9cf6d64e2b00ce8",
92
- "expo/copy-overwrite/scripts/bdd/render.mjs": "fa4f51fbb3a0517c4813c4a0dc9edde26d402efa115420cc251aaed7b5dfd5f3",
92
+ "expo/copy-overwrite/scripts/bdd/render.mjs": "35fa94358e979b223788d629fb95c3c72adff72a9af4dcd3a71febc317849187",
93
93
  "expo/copy-overwrite/scripts/bdd/report.mjs": "30a7c3471611e740f62f544e613a2ecf095946e7f70c752f62fa51ac58949822",
94
94
  "expo/copy-overwrite/scripts/bdd/validate.mjs": "afb8dd052733a5f83e6d004eac3437783a707c08810ba9cc65138d898aff83e2",
95
95
  "expo/copy-overwrite/scripts/bdd/waivers.mjs": "4b9ebf80100f478cc5e06d50b4d672ad08ec77a3746a7a109a74e1daf71a55b7",
96
- "expo/copy-overwrite/scripts/check-bdd-coverage.mjs": "d8448a5ad476eb8ad51aa3a6ee5ff90aded974a0ea426682f25df5482d2b279d",
96
+ "expo/copy-overwrite/scripts/check-bdd-coverage.mjs": "cc6a200155889acff761b2eece1768577bc29e09dac417724d243d7f1d1ec9db",
97
97
  "expo/copy-overwrite/scripts/check-e2e-coverage.mjs": "30cf7d860ecd3b838b8608f38da10fcddb4e7e90a0867438f411d68346a5f129",
98
+ "expo/copy-overwrite/scripts/classify-maestro-failures.mjs": "aadb773bfb994e754cfdf576f59d4bfe020184b21953908d40049ddfe3a93fc1",
98
99
  "expo/copy-overwrite/tsconfig.eslint.json": "375bb2ee8185e4a57d703e078ad57188f6d45b03b0fcbb16ef049fcf9b14c44b",
99
100
  "expo/copy-overwrite/tsconfig.expo.json": "55f3dfe80496f03152d40d364c5a9cabf3fdce3adc8cebea48ba5257d77b7aa9",
100
101
  "expo/copy-overwrite/tsconfig.json": "c92e2c2c109e8794ee351f634361ef46297f5a0cd606aaf5c19911da836df307",
@@ -103,11 +104,12 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
103
104
  "expo/create-only/.github/workflows/deploy.yml": "0978b1f4e19e1ff66bb8cdd037d36a3751d4e917db7ceb5bcf100fad36768516",
104
105
  "expo/create-only/.github/workflows/maestro-e2e.yml": "4bacb1da9ea897345aad77b8ae7ee96861c555aa77a00846f4572da18e9fd6e0",
105
106
  "expo/create-only/.github/workflows/nightly-e2e-bypass-reaper.yml": "4185f5083d8da5efa620e8641d6b75e0cb424edd563989c7432892872969797c",
106
- "expo/create-only/.github/workflows/nightly-e2e-health.yml": "009f43bf5a07574adcad11c09c947d54e1a5877ff4ba51128dd4721ad6877a70",
107
+ "expo/create-only/.github/workflows/nightly-e2e-health.yml": "fb2a4c5d3731c5aa52573d2d2f2313561141172718195a05b5a7217168b7ae84",
107
108
  "expo/create-only/.github/workflows/nightly-e2e-report.yml": "df47b2e5c31d2bb4eee6fb979d8d25b3a5cea572e46be042a9b4c59fbe43af72",
109
+ "expo/create-only/.maestro/flake-classification.json": "b1259c17a875dcdc0fa2398bb280f084e898f46fefaf51e35c3c5aadcbef5a5d",
108
110
  "expo/create-only/.zap/baseline.conf": "ab18d74ba5270dd5d795e740cd6b1292bb78dc36c79a20c1e7b752d14c0c55f5",
109
111
  "expo/create-only/babel.config.js": "faaf96f0d43c724a240a7892584de54ae384eee9ef9d76430d081f37d9f92924",
110
- "expo/create-only/bdd/coverage-map.json": "fcf9de0a802341ef8f879f2f9e20db11fc0e25c7caab465ea537c58c22e87fbd",
112
+ "expo/create-only/bdd/coverage-map.json": "ea38c44d5de30516f341b4208469f75990fe9f05bd8e7013cfc4002a52c032a2",
111
113
  "expo/create-only/bdd/features/.keep": "b807c9c94a3b00b93d2463a9b098dac41db227ac1f5b0b1cb746e5e6f68de15d",
112
114
  "expo/create-only/e2e.thresholds.json": "23ac9bab7fe84cfa542785156425e020af9baabdbeb1a53293ae7e2395e4dd92",
113
115
  "expo/create-only/jest.config.local.ts": "edf524bbf37e83883ade6bb60a8904aa2243eda7a9ca3448265761c3ca517df6",
@@ -125,7 +127,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
125
127
  "expo/github-rulesets/nightly-e2e-health.json": "af9556f52bbb04d303f557eb178d876d82348d15a991729b8a96fb1f06d5b03a",
126
128
  "expo/merge/.claude/settings.json": "e97b33d7ad86b71abba94ab957d725e34c3cafca455e92fba0b29ebabc3b73d1",
127
129
  "expo/merge/.oxlintrc.json": "2a0ea2191abd5b377aed4b525a4a97d3eefb1d9e41c845c02ee0daac75df6b1f",
128
- "expo/package-lisa/package.lisa.json": "a36a59462e548e685bd199770cb2d567a5965a1c1da6e32ef3e9041b2f9f1446",
130
+ "expo/package-lisa/package.lisa.json": "34c4a356db67fa55d715a7bb4dafac8249a3793cd330bc920cd1769b58fcdcd0",
129
131
  "harper-fabric/copy-contents/.prettierignore": "478c782f4c5611187e21584dfd5522e37fc636c5eb03394fea3db45321c6712c",
130
132
  "harper-fabric/copy-contents/gitignore": "d091c40fd0ea3068491f1be0d6510090ae872ca95d0d058ef4595d6492d13897",
131
133
  "harper-fabric/copy-overwrite/.github/dependabot.yml": "e28fde0d906478b3fb7d6b7fc16f7fc5a4a0a20d8160f547f2b4be97c90578b7",
@@ -340,7 +342,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
340
342
  "plugins/src/base/hooks/shell-write-nudge.sh": "69839af423f8792b1e52c71097316c3264425553031627c0a2f9409a9d5becd0",
341
343
  "plugins/src/base/hooks/sonar-secrets.sh": "bf4132e49ba18e2f7e941520c299c15aeeacfd220e489f3d2eb8397f2048157b",
342
344
  "plugins/src/base/hooks/threshold-ratchet-compare.mjs": "90affbeaed0d65c032dccfc0bd4a4b26eda291f6b61aa8b12599f41842452e0a",
343
- "plugins/src/base/hooks/threshold-ratchet-families.mjs": "db14245ed89b483912af287bdee917a7a921dc21bb29b49be37fc799c05c413f",
345
+ "plugins/src/base/hooks/threshold-ratchet-families.mjs": "8fa58cc7276add0b2edf1de92bdcc32d81d840811ef0614ddc724010b59a888c",
344
346
  "plugins/src/base/hooks/threshold-ratchet.mjs": "e1e3f22b33267212b90f915f83821559d1a45cab5b16c7164b86bd6c7b53549b",
345
347
  "plugins/src/base/hooks/threshold-ratchet.sh": "b86f4d0b554e44fd119ad8a8920cd0ba6c9dbe779f7ee219d381cf0629453990",
346
348
  "plugins/src/base/hooks/ticket-sync-reminder.sh": "212f80bcdfd9e3ec2254987c5a7186d1d2d38065b330ddcdc631f76df7c4a6c0",
@@ -354,18 +356,23 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
354
356
  "plugins/src/base/rules/eager/coding-philosophy.md": "cf2c52032e0368d81f17f002fed5c957ab350d01fc4a43f66b5f366516bac54a",
355
357
  "plugins/src/base/rules/eager/config-resolution.md": "fc9231ae27b09dadd4ec5a9a694f2a4fefa5e55e67be8eed3ccba1fdcb68a7a2",
356
358
  "plugins/src/base/rules/eager/convergent-review.md": "ba4ba53863ef99be353c07c01195fa4ae2923ef2b2a5ad4427072802c260d208",
359
+ "plugins/src/base/rules/eager/credential-substrate-precedence.md": "20fbbf6499b079105b5d749fed4da787a22a87c12851f1939572a7a5b2601800",
357
360
  "plugins/src/base/rules/eager/dependency-decision-records.md": "e22888f107906992e863fca50f26c2c4b124da7132535cacfac71e4f3085728f",
358
361
  "plugins/src/base/rules/eager/dependency-internalization-kit.md": "9e2cc78afffc477c14718390ed88c42f781911c51fb7c13dada497f9e956b1a3",
359
362
  "plugins/src/base/rules/eager/dependency-trust-classes.md": "43a0932a7b8d4fd075b66bfe778025d808a13d9aa61ae793e9eb2fc8a555a381",
360
363
  "plugins/src/base/rules/eager/derived-branch-plan.md": "aa88be9f1a6de7a843222585bcc1c593b993e7d5900c8a33a9f38ef8a99d25b4",
364
+ "plugins/src/base/rules/eager/do-it-now.md": "de0c1565fa7b8a99a7f5d15af1118c3e5eb942a0d893bbb672533149fb82688e",
361
365
  "plugins/src/base/rules/eager/documentation-source-paths.md": "3a7c2a6264654a3cc44dd326441ba211a39c1c267033cc189c1c635adb84b52b",
362
- "plugins/src/base/rules/eager/empirical-inquiry.md": "e638352e2426110eb831a2c4c7dbbd302f578009cdc5bc69258bddf3677c2f44",
366
+ "plugins/src/base/rules/eager/empirical-inquiry.md": "67aa64ba3ecc4f3cd761111d2562662e0a2acf7892703b14ec83f7f7b073e670",
363
367
  "plugins/src/base/rules/eager/factory-model.md": "dee39b4276926ee27a2614bf26b985fd33bb3d115313fa6e2893de12da13ed7c",
364
- "plugins/src/base/rules/eager/falsifiable-checks.md": "f26bb06e17f27e2b4d2e45657df6e5b0b3990124d5937a0701d8bf5a7e47d6f8",
368
+ "plugins/src/base/rules/eager/falsifiable-checks.md": "7cfe0ec4a4c7f7b133580ee4b9004b764a99bd98e9d39856c587c8ad45fda920",
365
369
  "plugins/src/base/rules/eager/history-audit.md": "e2365e3fb28230c643e943d26688a93906afa68e3e1355d3e86d4b22ab3db559",
366
- "plugins/src/base/rules/eager/integration-access-layer.md": "f857fd731d65615e6ac4e7bb2dd7cad00cf692749fd1ccf344b3cb9ca1c49877",
370
+ "plugins/src/base/rules/eager/integration-access-layer.md": "e5675ec414d0dcfbbf7a29912f39ea5fb02747aa4e6045493e636cba1e635eb7",
367
371
  "plugins/src/base/rules/eager/intent-routing.md": "a2ef2397a98fb3d991fcfb39b669e289c1e2b697191cbeb6c071d71eca836207",
368
372
  "plugins/src/base/rules/eager/leaf-only-lifecycle.md": "270a7b071c0dfabd2c80417e6a63ab462a9ac630dc3d1ae36c68a2fbf6235578",
373
+ "plugins/src/base/rules/eager/learnings-ladder.md": "58f70031f7ad720254e73db53f4f328f35cdce2a562c8f62e403be842abccab0",
374
+ "plugins/src/base/rules/eager/local-ci-first.md": "8a0369f3b23c4c9906194ea2d5b6dab44bb82dee753571b7e3e27ed799a289f5",
375
+ "plugins/src/base/rules/eager/not-blocked-just-waiting.md": "bd96e3a61bfd9ddf27d88b6cb62948c701b6335e9758a081cd5c1fc63048d9be",
369
376
  "plugins/src/base/rules/eager/observability-audit.md": "eef7f612937db85e2fb685f262a651ac0fea195fb79363224281f057dc1a6ef7",
370
377
  "plugins/src/base/rules/eager/prd-definition-of-ready.md": "5d30476344425f78961ed1412b06edd5e7cde478c81e1b945860b55aecf56e1f",
371
378
  "plugins/src/base/rules/eager/prd-lifecycle-rollup.md": "b5c58148a0ed78989e21bc7789ecf1d5448077879be01ee342ddb46d8f105a1e",
@@ -379,6 +386,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
379
386
  "plugins/src/base/rules/eager/report-actionability.md": "7c4d5b2bea93b7cd5bb8694fa7c06f4ca8f94a19eb17832f1ccc5354b0207163",
380
387
  "plugins/src/base/rules/eager/reset-seed-coverage.md": "d028c8709d7d3a05b2f9bb8209a0d6bf1aef99e88d5e7d7132909e8d0d4c19d9",
381
388
  "plugins/src/base/rules/eager/security-audit-handling.md": "1f6effe92be66736a0c9fab634c5fdd6ad1e789865faa67bb783c67ddb4ad490",
389
+ "plugins/src/base/rules/eager/session-status-updates.md": "bbb42e86b8eb68334b8b9c0bc70beb4895a54015e097bf745fc92156b3e24766",
382
390
  "plugins/src/base/rules/eager/settled-decisions.md": "f5339c81b8d29f628830e6147314cbb941b9d9e6d87c3834d8fe7adc4b46ef4c",
383
391
  "plugins/src/base/rules/eager/stale-state-claims.md": "faf5057f5910237b8d5048dbcccb73e0cd03762a8eefbeae43b5d0153104a85a",
384
392
  "plugins/src/base/rules/eager/tool-access-gate.md": "a5413a43ec353f768586e0a1cde3836db025cb5d8b80821020602995e71aa296",
@@ -386,11 +394,11 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
386
394
  "plugins/src/base/rules/eager/upstream-to-lisa.md": "eb8b37e789423dba78e3a77951db087c4d3f56a88478b63107ec6b9ddbf23b13",
387
395
  "plugins/src/base/rules/eager/usage-accounting.md": "b93fa782d61911579b25363e465bb1f4e9b7e4edb54465a346d52f74dffe5a97",
388
396
  "plugins/src/base/rules/eager/verification.md": "a6cc1d50c5b91080171490edce4d375f136a14790dcbb247ca8b736ad8f55cfd",
389
- "plugins/src/base/rules/eager/wiki-knowledge-source.md": "418c2f6e8fcf726a7ebfc7cc69210e37dc23cc8b20573e19e1de33cf0587dd17",
397
+ "plugins/src/base/rules/eager/wiki-knowledge-source.md": "b3ae63fca40461fef19779d8f0c971553963ed8fe9c22fc504da3d8e757b3a36",
390
398
  "plugins/src/base/rules/eager/work-item-definition-of-ready.md": "4285953f749aabee90dd44d7bff7e28a50e0a8c910917a96ebf81abfa425d836",
391
399
  "plugins/src/base/rules/reference/automation-runbook-contract.md": "2074badf010c15dce80ce17be0d0c714baf700d09e87ca1f9d4628108e6f231c",
392
400
  "plugins/src/base/rules/reference/base-rules.md": "487ea1764c4b636ca4a33b78a90e925f028bb9a54182c0795cd1bbdc437a262d",
393
- "plugins/src/base/rules/reference/bdd-e2e-coverage.md": "16e8f868f9a1dee19a950bdb6619c0985524995c770621ff85458229f5b8926f",
401
+ "plugins/src/base/rules/reference/bdd-e2e-coverage.md": "4ae48d6f54f8558a7aa9b6db24db3a619c9a669aece9a61ca9e58e2e2cf2f370",
394
402
  "plugins/src/base/rules/reference/claim-archaeology.md": "fff025d47848c768d5b2c7047de744b7151eb2e44148d2df058c87310859457b",
395
403
  "plugins/src/base/rules/reference/claim-evidence-mapping.md": "49a3bbf4e8a9a8ca9e13eeafa672517d077060cfeb5d9710881ec9f5c3f3ec75",
396
404
  "plugins/src/base/rules/reference/claim-time-guards.md": "11573274387d31fb2c6fa4d07a2b5b81998c52881d70136cdf724e52d841090e",
@@ -402,14 +410,18 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
402
410
  "plugins/src/base/rules/reference/dependency-internalization-kit.md": "8c8e9bddbe2165905c3919ae9dd3d131b557cf9c7eb370393dfa85827076c73b",
403
411
  "plugins/src/base/rules/reference/dependency-trust-classes.md": "82216b80d4807e0ad302d04924032cc6a7a95b26f72ea853e378572a5c31821c",
404
412
  "plugins/src/base/rules/reference/derived-branch-plan.md": "672983b5171bf6e377f3d17927fd75e45208ffa6500718c07df1d449ca00f7d0",
413
+ "plugins/src/base/rules/reference/do-it-now.md": "46fdcc335e115d0f387af398789f443ef8dd3ab17de5f7d95120c31f913a8fce",
405
414
  "plugins/src/base/rules/reference/documentation-source-paths.md": "555155889c9cf279865b9d8fc554bdd461c96a3ec76a5001dfeb361a71056999",
406
- "plugins/src/base/rules/reference/empirical-inquiry.md": "85f4552aa4c561677de40fd01bc6cccf5dbcf13865647db9df819d11f3cc3389",
415
+ "plugins/src/base/rules/reference/empirical-inquiry.md": "8cb166ab9eff4eb30287822a4d7843f76884d70d683d7c61d6a7ffd4ff9f7159",
407
416
  "plugins/src/base/rules/reference/factory-model.md": "b28a2ea4df7c33390111667a2807d9003cf8c9a14829f6fb0dbc929b05bfed3a",
408
- "plugins/src/base/rules/reference/falsifiable-checks.md": "89015d3c21b38de5f6d871ef6d97f64820d0068cf93c5c3ab58927f65741944f",
417
+ "plugins/src/base/rules/reference/falsifiable-checks.md": "284eccdf5b0fa29d2927a24ab25ad4aed34b0798e4fdf2e8e7d6fd1b80e3236b",
409
418
  "plugins/src/base/rules/reference/history-audit.md": "20a46390f71fadda499c61193d430c3d53df49b55a4cefa50a112f82fa4b05ef",
410
- "plugins/src/base/rules/reference/integration-access-layer.md": "630eded38a921ae878cf647b8ed55237a805717d01090ebe47d2aae9c0e7276d",
419
+ "plugins/src/base/rules/reference/integration-access-layer.md": "6d0f419b315ffcf9bdd14a556a81c05848e8245e2ba850696e72d4cff2e65600",
411
420
  "plugins/src/base/rules/reference/intent-routing.md": "988f8f45b41056c2adaa1a3e5f6ea926ac56a2fd041c07f98a9c2b271050efdd",
412
421
  "plugins/src/base/rules/reference/leaf-only-lifecycle.md": "3d6d531fdca61a348fa1dd1bdb4c28fe66c85fb955238ef668a78cce4a36a7a1",
422
+ "plugins/src/base/rules/reference/learnings-ladder.md": "4b6760e8ec58dea0e646cfa1b0518f468cc959ef3be55e3f87c225ec076f53c7",
423
+ "plugins/src/base/rules/reference/local-ci-first.md": "4db796a9e159d25e5edd0d8d8d713b6556a3024a96e3882a50e19928b0e81a18",
424
+ "plugins/src/base/rules/reference/not-blocked-just-waiting.md": "bef69d0cefa92e2b8ca589bb27f8e92749140e662d54110e12f0a47890e69f14",
413
425
  "plugins/src/base/rules/reference/observability-audit.md": "98cf4c849baf0801bd2c46a90e7a072196649d506fbda577cc5c4019d2194551",
414
426
  "plugins/src/base/rules/reference/prd-definition-of-ready.md": "041a8f3c9b703b3921acc30fe92acfb9e2ab43da04cf019c102ebca98b2f4ba3",
415
427
  "plugins/src/base/rules/reference/prd-lifecycle-rollup.md": "f539e7b43918e173dd7491a139be078815d26098f992cd7fc86cd05878c90b9b",
@@ -423,6 +435,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
423
435
  "plugins/src/base/rules/reference/report-actionability.md": "42fa86bb189467c7bc7ee64f6ebccd3926bb2aaf512ee5a498c232025b8a364b",
424
436
  "plugins/src/base/rules/reference/reset-seed-coverage.md": "741c49e0544aecfa2c4aadf6a36ef496a1a5d974f71962ae8e33cc625651f0c2",
425
437
  "plugins/src/base/rules/reference/security-audit-handling.md": "9633e11ac89af26444a272449f36fe03f26e61fab40ca16a0ab50464725f7d8c",
438
+ "plugins/src/base/rules/reference/session-status-updates.md": "8c34dc9399d6b20103edb3ed8d214aaa05a97065e4c78d8010f394cd041b3320",
426
439
  "plugins/src/base/rules/reference/settled-decisions.md": "6c84f309a1f765eba1648d6ace836387bd96b924f245c16cf3629f501ef6bb18",
427
440
  "plugins/src/base/rules/reference/stale-state-claims.md": "6329e1a7629f9a12f10454c767842aecee4964df8b7bb4aebda9dde3c0959c2a",
428
441
  "plugins/src/base/rules/reference/tool-access-gate.md": "70fcd6cd92dc003a40886b1bef02540e6401f5b70ba97308d42bbbddc0206eab",
@@ -430,7 +443,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
430
443
  "plugins/src/base/rules/reference/upstream-to-lisa.md": "dcf07f8eba66aaf1d132bfaeff73cbf7576279822893235a3c3f8cbc4a4a3323",
431
444
  "plugins/src/base/rules/reference/usage-accounting.md": "79c00ed4a97c40de72cfccef16b6846ba668fc564354507907876489c038ab75",
432
445
  "plugins/src/base/rules/reference/verification.md": "9ae8db87b37c7700687fabd1b8632b3cddd0f1f1e4b04384c604f88f160056ed",
433
- "plugins/src/base/rules/reference/wiki-knowledge-source.md": "305d38e13984c2a64144f302336405d0ccbec493a6ed3ec67d210fed44940717",
446
+ "plugins/src/base/rules/reference/wiki-knowledge-source.md": "725a7415a0606f85164722bd4b4975bce1f496cc43c97e45b224810b1a685189",
434
447
  "plugins/src/base/rules/reference/work-item-definition-of-ready.md": "ebcfe89f5a33a8008c4a54c1c2f4a092952df3263adc8f537a4c0b6ad8dbe18d",
435
448
  "plugins/src/base/scripts/automation-run-record.mjs": "89143e06975d8333b137fd2bdb5f12bcd703403752337f00c25d18fefba6a4c8",
436
449
  "plugins/src/base/scripts/automation-status-claude-adapter.mjs": "b1054acf4a5cbbe5354bd62a22b96533bcbc69b6cb9245976ceb8af638a04494",
@@ -987,7 +1000,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
987
1000
  "rails/copy-overwrite/scripts/check-threshold-ratchet.mjs": "e1e3f22b33267212b90f915f83821559d1a45cab5b16c7164b86bd6c7b53549b",
988
1001
  "rails/copy-overwrite/scripts/lisa-clean-git-env.sh": "e7121a0ee9e1bf7c01cd2ab55f563dd6d9ab75990739bb6ddf571a513efa10e9",
989
1002
  "rails/copy-overwrite/scripts/threshold-ratchet-compare.mjs": "90affbeaed0d65c032dccfc0bd4a4b26eda291f6b61aa8b12599f41842452e0a",
990
- "rails/copy-overwrite/scripts/threshold-ratchet-families.mjs": "db14245ed89b483912af287bdee917a7a921dc21bb29b49be37fc799c05c413f",
1003
+ "rails/copy-overwrite/scripts/threshold-ratchet-families.mjs": "8fa58cc7276add0b2edf1de92bdcc32d81d840811ef0614ddc724010b59a888c",
991
1004
  "rails/copy-overwrite/sgconfig.yml": "0ffe058c791d4d323f98104cf78c763bb0356d88739042060ceb86b6b1cb78d7",
992
1005
  "rails/create-only/.github/workflows/ci.yml": "ad53014bdd6cf15bfadfaef7740b6094c3c7bd044f9d176c4938154da983529d",
993
1006
  "rails/create-only/.github/workflows/claude-code-review-response.yml": "bfbe3127c4941c35886d324d439ae0302fbccd74a11cb4decf05a21195efa0e9",
@@ -1108,14 +1121,14 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
1108
1121
  "typescript/copy-overwrite/eslint.ignore.config.json": "04dcd754829cf93bf0ba0d76e4031d28cb7149afa658575d02bb13bf73f7880e",
1109
1122
  "typescript/copy-overwrite/eslint.slow.config.ts": "f66d04381940936544931d7f20ffd4e43c38b8a907d56ffa101e2236371d8c94",
1110
1123
  "typescript/copy-overwrite/knip.json": "6eb93d705a2d645332fbae1dd42cf2d48f85978ebc265451a53790912f277d12",
1111
- "typescript/copy-overwrite/scripts/check-nightly-e2e-health.mjs": "e497015ea207f43492dcb8a32918066ff061588af71c684531f38dbc1f2ed89c",
1124
+ "typescript/copy-overwrite/scripts/check-nightly-e2e-health.mjs": "c9dd6f6816b35d4d8f684892878d4181b9cb5266a7f2e2814970aa49dc04a001",
1112
1125
  "typescript/copy-overwrite/scripts/check-skipped-required-checks.mjs": "86e9df17ea11fe0cd11d54f7fd60f016338e7fe28cdd4b07fab3b0b064b64ffb",
1113
1126
  "typescript/copy-overwrite/scripts/check-threshold-ratchet.mjs": "e1e3f22b33267212b90f915f83821559d1a45cab5b16c7164b86bd6c7b53549b",
1114
1127
  "typescript/copy-overwrite/scripts/check-verification-coverage.mjs": "3c1d27d0668fc66a18cb014f2b607878f0a88c178a773fbe964b8e46b19e86d6",
1115
1128
  "typescript/copy-overwrite/scripts/lisa-mutation.mjs": "7d8d24dea151ef2178807046e97aea7ebfadd9c88eb50347feb7bb4bb190227d",
1116
- "typescript/copy-overwrite/scripts/nightly-e2e-suites.schema.json": "ea9b2b4ab1d2a39d7b4eb8c841ccae576836678ca42bb40161d6af383e3e378c",
1129
+ "typescript/copy-overwrite/scripts/nightly-e2e-suites.schema.json": "a6041930ca4536f3a76e4f54976ff846ab575f5f07a2356722eedcb06795e684",
1117
1130
  "typescript/copy-overwrite/scripts/threshold-ratchet-compare.mjs": "90affbeaed0d65c032dccfc0bd4a4b26eda291f6b61aa8b12599f41842452e0a",
1118
- "typescript/copy-overwrite/scripts/threshold-ratchet-families.mjs": "db14245ed89b483912af287bdee917a7a921dc21bb29b49be37fc799c05c413f",
1131
+ "typescript/copy-overwrite/scripts/threshold-ratchet-families.mjs": "8fa58cc7276add0b2edf1de92bdcc32d81d840811ef0614ddc724010b59a888c",
1119
1132
  "typescript/copy-overwrite/sgconfig.yml": "0ffe058c791d4d323f98104cf78c763bb0356d88739042060ceb86b6b1cb78d7",
1120
1133
  "typescript/copy-overwrite/tsconfig.eslint.json": "8a8ae5e201b18887b8eeda5eb569747221695524d4193ea03b4338b97b7fa642",
1121
1134
  "typescript/copy-overwrite/tsconfig.json": "8f4257fcd2cfd4b23e83e0fdd4908d41ee8f1ae75bb95d632e653a0ac13d58e4",
@@ -1382,6 +1395,7 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
1382
1395
  "docs/design/uat-acceptance-verification-gate.md": true,
1383
1396
  "docs/kane-cli-integration.md": true,
1384
1397
  "docs/kane-cli-pilot.example.json": true,
1398
+ "docs/maestro-flake-classification.md": true,
1385
1399
  "docs/nightly-e2e-gate.md": true,
1386
1400
  "docs/remote-agent-aws.md": true,
1387
1401
  "docs/wiki-inbox/.gitkeep": true,
@@ -1452,6 +1466,7 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
1452
1466
  "expo/copy-overwrite/scripts/bdd/waivers.mjs": true,
1453
1467
  "expo/copy-overwrite/scripts/check-bdd-coverage.mjs": true,
1454
1468
  "expo/copy-overwrite/scripts/check-e2e-coverage.mjs": true,
1469
+ "expo/copy-overwrite/scripts/classify-maestro-failures.mjs": true,
1455
1470
  "expo/copy-overwrite/tsconfig.eslint.json": true,
1456
1471
  "expo/copy-overwrite/tsconfig.expo.json": true,
1457
1472
  "expo/copy-overwrite/tsconfig.json": true,
@@ -1462,6 +1477,7 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
1462
1477
  "expo/create-only/.github/workflows/nightly-e2e-bypass-reaper.yml": true,
1463
1478
  "expo/create-only/.github/workflows/nightly-e2e-health.yml": true,
1464
1479
  "expo/create-only/.github/workflows/nightly-e2e-report.yml": true,
1480
+ "expo/create-only/.maestro/flake-classification.json": true,
1465
1481
  "expo/create-only/.zap/baseline.conf": true,
1466
1482
  "expo/create-only/babel.config.js": true,
1467
1483
  "expo/create-only/bdd/coverage-map.json": true,
@@ -2487,10 +2503,12 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
2487
2503
  "plugins/lisa-copilot/rules/eager/coding-philosophy.md": true,
2488
2504
  "plugins/lisa-copilot/rules/eager/config-resolution.md": true,
2489
2505
  "plugins/lisa-copilot/rules/eager/convergent-review.md": true,
2506
+ "plugins/lisa-copilot/rules/eager/credential-substrate-precedence.md": true,
2490
2507
  "plugins/lisa-copilot/rules/eager/dependency-decision-records.md": true,
2491
2508
  "plugins/lisa-copilot/rules/eager/dependency-internalization-kit.md": true,
2492
2509
  "plugins/lisa-copilot/rules/eager/dependency-trust-classes.md": true,
2493
2510
  "plugins/lisa-copilot/rules/eager/derived-branch-plan.md": true,
2511
+ "plugins/lisa-copilot/rules/eager/do-it-now.md": true,
2494
2512
  "plugins/lisa-copilot/rules/eager/documentation-source-paths.md": true,
2495
2513
  "plugins/lisa-copilot/rules/eager/empirical-inquiry.md": true,
2496
2514
  "plugins/lisa-copilot/rules/eager/factory-model.md": true,
@@ -2499,6 +2517,9 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
2499
2517
  "plugins/lisa-copilot/rules/eager/integration-access-layer.md": true,
2500
2518
  "plugins/lisa-copilot/rules/eager/intent-routing.md": true,
2501
2519
  "plugins/lisa-copilot/rules/eager/leaf-only-lifecycle.md": true,
2520
+ "plugins/lisa-copilot/rules/eager/learnings-ladder.md": true,
2521
+ "plugins/lisa-copilot/rules/eager/local-ci-first.md": true,
2522
+ "plugins/lisa-copilot/rules/eager/not-blocked-just-waiting.md": true,
2502
2523
  "plugins/lisa-copilot/rules/eager/observability-audit.md": true,
2503
2524
  "plugins/lisa-copilot/rules/eager/prd-definition-of-ready.md": true,
2504
2525
  "plugins/lisa-copilot/rules/eager/prd-lifecycle-rollup.md": true,
@@ -2512,6 +2533,7 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
2512
2533
  "plugins/lisa-copilot/rules/eager/report-actionability.md": true,
2513
2534
  "plugins/lisa-copilot/rules/eager/reset-seed-coverage.md": true,
2514
2535
  "plugins/lisa-copilot/rules/eager/security-audit-handling.md": true,
2536
+ "plugins/lisa-copilot/rules/eager/session-status-updates.md": true,
2515
2537
  "plugins/lisa-copilot/rules/eager/settled-decisions.md": true,
2516
2538
  "plugins/lisa-copilot/rules/eager/stale-state-claims.md": true,
2517
2539
  "plugins/lisa-copilot/rules/eager/tool-access-gate.md": true,
@@ -2535,6 +2557,7 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
2535
2557
  "plugins/lisa-copilot/rules/reference/dependency-internalization-kit.md": true,
2536
2558
  "plugins/lisa-copilot/rules/reference/dependency-trust-classes.md": true,
2537
2559
  "plugins/lisa-copilot/rules/reference/derived-branch-plan.md": true,
2560
+ "plugins/lisa-copilot/rules/reference/do-it-now.md": true,
2538
2561
  "plugins/lisa-copilot/rules/reference/documentation-source-paths.md": true,
2539
2562
  "plugins/lisa-copilot/rules/reference/empirical-inquiry.md": true,
2540
2563
  "plugins/lisa-copilot/rules/reference/factory-model.md": true,
@@ -2543,6 +2566,9 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
2543
2566
  "plugins/lisa-copilot/rules/reference/integration-access-layer.md": true,
2544
2567
  "plugins/lisa-copilot/rules/reference/intent-routing.md": true,
2545
2568
  "plugins/lisa-copilot/rules/reference/leaf-only-lifecycle.md": true,
2569
+ "plugins/lisa-copilot/rules/reference/learnings-ladder.md": true,
2570
+ "plugins/lisa-copilot/rules/reference/local-ci-first.md": true,
2571
+ "plugins/lisa-copilot/rules/reference/not-blocked-just-waiting.md": true,
2546
2572
  "plugins/lisa-copilot/rules/reference/observability-audit.md": true,
2547
2573
  "plugins/lisa-copilot/rules/reference/prd-definition-of-ready.md": true,
2548
2574
  "plugins/lisa-copilot/rules/reference/prd-lifecycle-rollup.md": true,
@@ -2556,6 +2582,7 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
2556
2582
  "plugins/lisa-copilot/rules/reference/report-actionability.md": true,
2557
2583
  "plugins/lisa-copilot/rules/reference/reset-seed-coverage.md": true,
2558
2584
  "plugins/lisa-copilot/rules/reference/security-audit-handling.md": true,
2585
+ "plugins/lisa-copilot/rules/reference/session-status-updates.md": true,
2559
2586
  "plugins/lisa-copilot/rules/reference/settled-decisions.md": true,
2560
2587
  "plugins/lisa-copilot/rules/reference/stale-state-claims.md": true,
2561
2588
  "plugins/lisa-copilot/rules/reference/tool-access-gate.md": true,
@@ -2929,6 +2956,7 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
2929
2956
  "plugins/lisa-cursor/rules/convergent-review-reference.mdc": true,
2930
2957
  "plugins/lisa-cursor/rules/convergent-review.mdc": true,
2931
2958
  "plugins/lisa-cursor/rules/credential-substrate-precedence-reference.mdc": true,
2959
+ "plugins/lisa-cursor/rules/credential-substrate-precedence.mdc": true,
2932
2960
  "plugins/lisa-cursor/rules/dependency-decision-records-reference.mdc": true,
2933
2961
  "plugins/lisa-cursor/rules/dependency-decision-records.mdc": true,
2934
2962
  "plugins/lisa-cursor/rules/dependency-internalization-kit-reference.mdc": true,
@@ -2937,6 +2965,8 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
2937
2965
  "plugins/lisa-cursor/rules/dependency-trust-classes.mdc": true,
2938
2966
  "plugins/lisa-cursor/rules/derived-branch-plan-reference.mdc": true,
2939
2967
  "plugins/lisa-cursor/rules/derived-branch-plan.mdc": true,
2968
+ "plugins/lisa-cursor/rules/do-it-now-reference.mdc": true,
2969
+ "plugins/lisa-cursor/rules/do-it-now.mdc": true,
2940
2970
  "plugins/lisa-cursor/rules/documentation-source-paths-reference.mdc": true,
2941
2971
  "plugins/lisa-cursor/rules/documentation-source-paths.mdc": true,
2942
2972
  "plugins/lisa-cursor/rules/empirical-inquiry-reference.mdc": true,
@@ -2953,6 +2983,12 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
2953
2983
  "plugins/lisa-cursor/rules/intent-routing.mdc": true,
2954
2984
  "plugins/lisa-cursor/rules/leaf-only-lifecycle-reference.mdc": true,
2955
2985
  "plugins/lisa-cursor/rules/leaf-only-lifecycle.mdc": true,
2986
+ "plugins/lisa-cursor/rules/learnings-ladder-reference.mdc": true,
2987
+ "plugins/lisa-cursor/rules/learnings-ladder.mdc": true,
2988
+ "plugins/lisa-cursor/rules/local-ci-first-reference.mdc": true,
2989
+ "plugins/lisa-cursor/rules/local-ci-first.mdc": true,
2990
+ "plugins/lisa-cursor/rules/not-blocked-just-waiting-reference.mdc": true,
2991
+ "plugins/lisa-cursor/rules/not-blocked-just-waiting.mdc": true,
2956
2992
  "plugins/lisa-cursor/rules/observability-audit-reference.mdc": true,
2957
2993
  "plugins/lisa-cursor/rules/observability-audit.mdc": true,
2958
2994
  "plugins/lisa-cursor/rules/prd-definition-of-ready-reference.mdc": true,
@@ -2979,6 +3015,8 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
2979
3015
  "plugins/lisa-cursor/rules/reset-seed-coverage.mdc": true,
2980
3016
  "plugins/lisa-cursor/rules/security-audit-handling-reference.mdc": true,
2981
3017
  "plugins/lisa-cursor/rules/security-audit-handling.mdc": true,
3018
+ "plugins/lisa-cursor/rules/session-status-updates-reference.mdc": true,
3019
+ "plugins/lisa-cursor/rules/session-status-updates.mdc": true,
2982
3020
  "plugins/lisa-cursor/rules/settled-decisions-reference.mdc": true,
2983
3021
  "plugins/lisa-cursor/rules/settled-decisions.mdc": true,
2984
3022
  "plugins/lisa-cursor/rules/stale-state-claims-reference.mdc": true,
@@ -5441,10 +5479,12 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
5441
5479
  "plugins/lisa/rules/eager/coding-philosophy.md": true,
5442
5480
  "plugins/lisa/rules/eager/config-resolution.md": true,
5443
5481
  "plugins/lisa/rules/eager/convergent-review.md": true,
5482
+ "plugins/lisa/rules/eager/credential-substrate-precedence.md": true,
5444
5483
  "plugins/lisa/rules/eager/dependency-decision-records.md": true,
5445
5484
  "plugins/lisa/rules/eager/dependency-internalization-kit.md": true,
5446
5485
  "plugins/lisa/rules/eager/dependency-trust-classes.md": true,
5447
5486
  "plugins/lisa/rules/eager/derived-branch-plan.md": true,
5487
+ "plugins/lisa/rules/eager/do-it-now.md": true,
5448
5488
  "plugins/lisa/rules/eager/documentation-source-paths.md": true,
5449
5489
  "plugins/lisa/rules/eager/empirical-inquiry.md": true,
5450
5490
  "plugins/lisa/rules/eager/factory-model.md": true,
@@ -5453,6 +5493,9 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
5453
5493
  "plugins/lisa/rules/eager/integration-access-layer.md": true,
5454
5494
  "plugins/lisa/rules/eager/intent-routing.md": true,
5455
5495
  "plugins/lisa/rules/eager/leaf-only-lifecycle.md": true,
5496
+ "plugins/lisa/rules/eager/learnings-ladder.md": true,
5497
+ "plugins/lisa/rules/eager/local-ci-first.md": true,
5498
+ "plugins/lisa/rules/eager/not-blocked-just-waiting.md": true,
5456
5499
  "plugins/lisa/rules/eager/observability-audit.md": true,
5457
5500
  "plugins/lisa/rules/eager/prd-definition-of-ready.md": true,
5458
5501
  "plugins/lisa/rules/eager/prd-lifecycle-rollup.md": true,
@@ -5466,6 +5509,7 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
5466
5509
  "plugins/lisa/rules/eager/report-actionability.md": true,
5467
5510
  "plugins/lisa/rules/eager/reset-seed-coverage.md": true,
5468
5511
  "plugins/lisa/rules/eager/security-audit-handling.md": true,
5512
+ "plugins/lisa/rules/eager/session-status-updates.md": true,
5469
5513
  "plugins/lisa/rules/eager/settled-decisions.md": true,
5470
5514
  "plugins/lisa/rules/eager/stale-state-claims.md": true,
5471
5515
  "plugins/lisa/rules/eager/tool-access-gate.md": true,
@@ -5489,6 +5533,7 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
5489
5533
  "plugins/lisa/rules/reference/dependency-internalization-kit.md": true,
5490
5534
  "plugins/lisa/rules/reference/dependency-trust-classes.md": true,
5491
5535
  "plugins/lisa/rules/reference/derived-branch-plan.md": true,
5536
+ "plugins/lisa/rules/reference/do-it-now.md": true,
5492
5537
  "plugins/lisa/rules/reference/documentation-source-paths.md": true,
5493
5538
  "plugins/lisa/rules/reference/empirical-inquiry.md": true,
5494
5539
  "plugins/lisa/rules/reference/factory-model.md": true,
@@ -5497,6 +5542,9 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
5497
5542
  "plugins/lisa/rules/reference/integration-access-layer.md": true,
5498
5543
  "plugins/lisa/rules/reference/intent-routing.md": true,
5499
5544
  "plugins/lisa/rules/reference/leaf-only-lifecycle.md": true,
5545
+ "plugins/lisa/rules/reference/learnings-ladder.md": true,
5546
+ "plugins/lisa/rules/reference/local-ci-first.md": true,
5547
+ "plugins/lisa/rules/reference/not-blocked-just-waiting.md": true,
5500
5548
  "plugins/lisa/rules/reference/observability-audit.md": true,
5501
5549
  "plugins/lisa/rules/reference/prd-definition-of-ready.md": true,
5502
5550
  "plugins/lisa/rules/reference/prd-lifecycle-rollup.md": true,
@@ -5510,6 +5558,7 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
5510
5558
  "plugins/lisa/rules/reference/report-actionability.md": true,
5511
5559
  "plugins/lisa/rules/reference/reset-seed-coverage.md": true,
5512
5560
  "plugins/lisa/rules/reference/security-audit-handling.md": true,
5561
+ "plugins/lisa/rules/reference/session-status-updates.md": true,
5513
5562
  "plugins/lisa/rules/reference/settled-decisions.md": true,
5514
5563
  "plugins/lisa/rules/reference/stale-state-claims.md": true,
5515
5564
  "plugins/lisa/rules/reference/tool-access-gate.md": true,
@@ -6053,10 +6102,12 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
6053
6102
  "plugins/src/base/rules/eager/coding-philosophy.md": true,
6054
6103
  "plugins/src/base/rules/eager/config-resolution.md": true,
6055
6104
  "plugins/src/base/rules/eager/convergent-review.md": true,
6105
+ "plugins/src/base/rules/eager/credential-substrate-precedence.md": true,
6056
6106
  "plugins/src/base/rules/eager/dependency-decision-records.md": true,
6057
6107
  "plugins/src/base/rules/eager/dependency-internalization-kit.md": true,
6058
6108
  "plugins/src/base/rules/eager/dependency-trust-classes.md": true,
6059
6109
  "plugins/src/base/rules/eager/derived-branch-plan.md": true,
6110
+ "plugins/src/base/rules/eager/do-it-now.md": true,
6060
6111
  "plugins/src/base/rules/eager/documentation-source-paths.md": true,
6061
6112
  "plugins/src/base/rules/eager/empirical-inquiry.md": true,
6062
6113
  "plugins/src/base/rules/eager/factory-model.md": true,
@@ -6065,6 +6116,9 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
6065
6116
  "plugins/src/base/rules/eager/integration-access-layer.md": true,
6066
6117
  "plugins/src/base/rules/eager/intent-routing.md": true,
6067
6118
  "plugins/src/base/rules/eager/leaf-only-lifecycle.md": true,
6119
+ "plugins/src/base/rules/eager/learnings-ladder.md": true,
6120
+ "plugins/src/base/rules/eager/local-ci-first.md": true,
6121
+ "plugins/src/base/rules/eager/not-blocked-just-waiting.md": true,
6068
6122
  "plugins/src/base/rules/eager/observability-audit.md": true,
6069
6123
  "plugins/src/base/rules/eager/prd-definition-of-ready.md": true,
6070
6124
  "plugins/src/base/rules/eager/prd-lifecycle-rollup.md": true,
@@ -6078,6 +6132,7 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
6078
6132
  "plugins/src/base/rules/eager/report-actionability.md": true,
6079
6133
  "plugins/src/base/rules/eager/reset-seed-coverage.md": true,
6080
6134
  "plugins/src/base/rules/eager/security-audit-handling.md": true,
6135
+ "plugins/src/base/rules/eager/session-status-updates.md": true,
6081
6136
  "plugins/src/base/rules/eager/settled-decisions.md": true,
6082
6137
  "plugins/src/base/rules/eager/stale-state-claims.md": true,
6083
6138
  "plugins/src/base/rules/eager/tool-access-gate.md": true,
@@ -6101,6 +6156,7 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
6101
6156
  "plugins/src/base/rules/reference/dependency-internalization-kit.md": true,
6102
6157
  "plugins/src/base/rules/reference/dependency-trust-classes.md": true,
6103
6158
  "plugins/src/base/rules/reference/derived-branch-plan.md": true,
6159
+ "plugins/src/base/rules/reference/do-it-now.md": true,
6104
6160
  "plugins/src/base/rules/reference/documentation-source-paths.md": true,
6105
6161
  "plugins/src/base/rules/reference/empirical-inquiry.md": true,
6106
6162
  "plugins/src/base/rules/reference/factory-model.md": true,
@@ -6109,6 +6165,9 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
6109
6165
  "plugins/src/base/rules/reference/integration-access-layer.md": true,
6110
6166
  "plugins/src/base/rules/reference/intent-routing.md": true,
6111
6167
  "plugins/src/base/rules/reference/leaf-only-lifecycle.md": true,
6168
+ "plugins/src/base/rules/reference/learnings-ladder.md": true,
6169
+ "plugins/src/base/rules/reference/local-ci-first.md": true,
6170
+ "plugins/src/base/rules/reference/not-blocked-just-waiting.md": true,
6112
6171
  "plugins/src/base/rules/reference/observability-audit.md": true,
6113
6172
  "plugins/src/base/rules/reference/prd-definition-of-ready.md": true,
6114
6173
  "plugins/src/base/rules/reference/prd-lifecycle-rollup.md": true,
@@ -6122,6 +6181,7 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
6122
6181
  "plugins/src/base/rules/reference/report-actionability.md": true,
6123
6182
  "plugins/src/base/rules/reference/reset-seed-coverage.md": true,
6124
6183
  "plugins/src/base/rules/reference/security-audit-handling.md": true,
6184
+ "plugins/src/base/rules/reference/session-status-updates.md": true,
6125
6185
  "plugins/src/base/rules/reference/settled-decisions.md": true,
6126
6186
  "plugins/src/base/rules/reference/stale-state-claims.md": true,
6127
6187
  "plugins/src/base/rules/reference/tool-access-gate.md": true,
@@ -7266,9 +7326,11 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
7266
7326
  "tests/integration/jest-expo-haste-pruning.test.ts": true,
7267
7327
  "tests/integration/lisa.test.ts": true,
7268
7328
  "tests/integration/maestro-native-driver-retry.test.ts": true,
7329
+ "tests/integration/maestro-native-flake-classification.test.ts": true,
7269
7330
  "tests/integration/maestro-native-flow-runner.test.ts": true,
7270
7331
  "tests/integration/maestro-native-workflow.test.ts": true,
7271
7332
  "tests/integration/maestro-native-zero-flow.test.ts": true,
7333
+ "tests/integration/nightly-e2e-grace-wiring.test.ts": true,
7272
7334
  "tests/integration/nightly-e2e-health-workflow.test.ts": true,
7273
7335
  "tests/integration/nightly-e2e-report-workflow.test.ts": true,
7274
7336
  "tests/integration/quality-workflow.test.ts": true,
@@ -7438,6 +7500,7 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
7438
7500
  "tests/unit/core/host-rules-parity.test.ts": true,
7439
7501
  "tests/unit/core/host-rules-pointer.test.ts": true,
7440
7502
  "tests/unit/core/instruction-files-migration.test.ts": true,
7503
+ "tests/unit/core/instruction-files-self-host.test.ts": true,
7441
7504
  "tests/unit/core/kane-cli.test.ts": true,
7442
7505
  "tests/unit/core/kane-pilot.test.ts": true,
7443
7506
  "tests/unit/core/kane-readiness.test.ts": true,
@@ -7554,11 +7617,13 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
7554
7617
  "tests/unit/scripts/bdd-exclusions.test.ts": true,
7555
7618
  "tests/unit/scripts/bdd-failopen.test.ts": true,
7556
7619
  "tests/unit/scripts/bdd-grammar.test.ts": true,
7557
- "tests/unit/scripts/bdd-ratchet.test.ts": true,
7620
+ "tests/unit/scripts/bdd-nonregression.test.ts": true,
7621
+ "tests/unit/scripts/bdd-ratchet-removal.test.ts": true,
7558
7622
  "tests/unit/scripts/bdd-render.test.ts": true,
7559
7623
  "tests/unit/scripts/bdd-reporting.test.ts": true,
7560
7624
  "tests/unit/scripts/bdd-validation.test.ts": true,
7561
7625
  "tests/unit/scripts/bdd-wiring.test.ts": true,
7626
+ "tests/unit/scripts/bdd/regression-support.ts": true,
7562
7627
  "tests/unit/scripts/bdd/support.ts": true,
7563
7628
  "tests/unit/scripts/build-cursor-hooks-json.test.ts": true,
7564
7629
  "tests/unit/scripts/check-duplicate-versions-helpers.ts": true,
@@ -7584,9 +7649,13 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
7584
7649
  "tests/unit/scripts/lisa-github-repo-settings.test.ts": true,
7585
7650
  "tests/unit/scripts/lisa-github-rulesets.test.ts": true,
7586
7651
  "tests/unit/scripts/lisa-work-item.test.ts": true,
7652
+ "tests/unit/scripts/maestro-flake-classification.test.ts": true,
7653
+ "tests/unit/scripts/maestro-flake-helpers.ts": true,
7654
+ "tests/unit/scripts/maestro-intermittent-registry.test.ts": true,
7587
7655
  "tests/unit/scripts/nightly-e2e-health-api.test.ts": true,
7588
7656
  "tests/unit/scripts/nightly-e2e-health-bypass.test.ts": true,
7589
7657
  "tests/unit/scripts/nightly-e2e-health-completeness.test.ts": true,
7658
+ "tests/unit/scripts/nightly-e2e-health-grace.test.ts": true,
7590
7659
  "tests/unit/scripts/nightly-e2e-health-issues.test.ts": true,
7591
7660
  "tests/unit/scripts/nightly-e2e-health-label-attribution.test.ts": true,
7592
7661
  "tests/unit/scripts/nightly-e2e-health.test.ts": true,
@@ -7815,6 +7884,7 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
7815
7884
  "tests/unit/strategies/reset-seed-coverage-rule.test.ts": true,
7816
7885
  "tests/unit/strategies/rework-triage-skill.test.ts": true,
7817
7886
  "tests/unit/strategies/security-two-bucket-contract.test.ts": true,
7887
+ "tests/unit/strategies/session-operating-pack.test.ts": true,
7818
7888
  "tests/unit/strategies/setup-automations-readiness-warning.test.ts": true,
7819
7889
  "tests/unit/strategies/setup-confluence-verified-parent.test.ts": true,
7820
7890
  "tests/unit/strategies/setup-github-prd-verified-label.test.ts": true,