@codyswann/lisa 2.282.0 → 2.284.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 (78) hide show
  1. package/all/create-only/.lisa/DEPENDENCY_DECISIONS.md +175 -0
  2. package/dist/core/upstream-evidence-manifest.d.ts.map +1 -1
  3. package/dist/core/upstream-evidence-manifest.js +28 -2
  4. package/dist/core/upstream-evidence-manifest.js.map +1 -1
  5. package/package.json +1 -1
  6. package/plugins/lisa/.claude-plugin/plugin.json +1 -1
  7. package/plugins/lisa/.codex-plugin/plugin.json +1 -1
  8. package/plugins/lisa/.codex-plugin/skills/lisa-task-decomposition/SKILL.md +26 -0
  9. package/plugins/lisa/rules/eager/dependency-decision-records.md +32 -0
  10. package/plugins/lisa/rules/eager/dependency-trust-classes.md +43 -0
  11. package/plugins/lisa/rules/reference/dependency-decision-records.md +140 -0
  12. package/plugins/lisa/rules/reference/dependency-trust-classes.md +243 -0
  13. package/plugins/lisa/skills/lisa-task-decomposition/SKILL.md +26 -0
  14. package/plugins/lisa-agy/plugin.json +1 -1
  15. package/plugins/lisa-agy/skills/lisa-task-decomposition/SKILL.md +26 -0
  16. package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
  17. package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
  18. package/plugins/lisa-cdk-agy/plugin.json +1 -1
  19. package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +1 -1
  20. package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +1 -1
  21. package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
  22. package/plugins/lisa-copilot/rules/eager/dependency-decision-records.md +32 -0
  23. package/plugins/lisa-copilot/rules/eager/dependency-trust-classes.md +43 -0
  24. package/plugins/lisa-copilot/rules/reference/dependency-decision-records.md +140 -0
  25. package/plugins/lisa-copilot/rules/reference/dependency-trust-classes.md +243 -0
  26. package/plugins/lisa-copilot/skills/lisa-task-decomposition/SKILL.md +26 -0
  27. package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
  28. package/plugins/lisa-cursor/rules/dependency-decision-records-reference.mdc +145 -0
  29. package/plugins/lisa-cursor/rules/dependency-decision-records.mdc +37 -0
  30. package/plugins/lisa-cursor/rules/dependency-trust-classes-reference.mdc +248 -0
  31. package/plugins/lisa-cursor/rules/dependency-trust-classes.mdc +48 -0
  32. package/plugins/lisa-cursor/skills/lisa-task-decomposition/SKILL.md +26 -0
  33. package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
  34. package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
  35. package/plugins/lisa-expo-agy/plugin.json +1 -1
  36. package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
  37. package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
  38. package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
  39. package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
  40. package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
  41. package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +1 -1
  42. package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
  43. package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
  44. package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
  45. package/plugins/lisa-nestjs-agy/plugin.json +1 -1
  46. package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +1 -1
  47. package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +1 -1
  48. package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
  49. package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
  50. package/plugins/lisa-openclaw-agy/plugin.json +1 -1
  51. package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +1 -1
  52. package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +1 -1
  53. package/plugins/lisa-phaser/.claude-plugin/plugin.json +1 -1
  54. package/plugins/lisa-phaser/.codex-plugin/plugin.json +1 -1
  55. package/plugins/lisa-phaser-agy/plugin.json +1 -1
  56. package/plugins/lisa-phaser-copilot/.claude-plugin/plugin.json +1 -1
  57. package/plugins/lisa-phaser-cursor/.claude-plugin/plugin.json +1 -1
  58. package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
  59. package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
  60. package/plugins/lisa-rails-agy/plugin.json +1 -1
  61. package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +1 -1
  62. package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +1 -1
  63. package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
  64. package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
  65. package/plugins/lisa-typescript-agy/plugin.json +1 -1
  66. package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +1 -1
  67. package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +1 -1
  68. package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
  69. package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
  70. package/plugins/lisa-wiki-agy/plugin.json +1 -1
  71. package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
  72. package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
  73. package/plugins/src/base/rules/eager/dependency-decision-records.md +32 -0
  74. package/plugins/src/base/rules/eager/dependency-trust-classes.md +43 -0
  75. package/plugins/src/base/rules/reference/dependency-decision-records.md +140 -0
  76. package/plugins/src/base/rules/reference/dependency-trust-classes.md +243 -0
  77. package/plugins/src/base/skills/lisa-task-decomposition/SKILL.md +26 -0
  78. package/ui/index.html +195 -43
@@ -0,0 +1,175 @@
1
+ # Dependency Decisions
2
+
3
+ <!-- lisa-dependency-decisions:v1 -->
4
+
5
+ This file is the project's record of **why we keep each material dependency**.
6
+
7
+ A *material* dependency is one whose failure, disappearance, or bad update would
8
+ break something a user can see, or would cost real time to replace. Not every
9
+ package in the lockfile belongs here — only the ones that own a capability.
10
+
11
+ You do not need to be an engineer to read this file. Every entry starts with a
12
+ plain-language explanation of what the dependency does for us, and every entry
13
+ names what evidence would catch a bad update. If an entry does not answer those
14
+ two questions in words a non-engineer understands, the entry is wrong — fix the
15
+ words, not the reader.
16
+
17
+ Lisa seeds this file once and never overwrites it. It is yours to maintain.
18
+
19
+ ## How to use this file
20
+
21
+ 1. Copy the **Entry template** below for each material dependency.
22
+ 2. Add the filled-in entry to the end of the **Records** section.
23
+ 3. Fill in every field. If you do not know the answer yet, write
24
+ `_Not yet decided_` — never leave a field blank and never guess. An
25
+ unanswered field is an honest question for the next review; a guess is a
26
+ wrong answer that nobody will re-check.
27
+ 4. Re-read an entry whenever that dependency is upgraded across a major version,
28
+ changes maintainers, or its detection evidence fails.
29
+ 5. Update `Last reviewed` every time someone actually re-reads the entry, even
30
+ if nothing else changed.
31
+
32
+ ### Entry format (stable, appendable)
33
+
34
+ Entries are deliberately uniform so they can be added by hand or appended by a
35
+ script without rewriting the rest of the file:
36
+
37
+ - Every entry is a level-3 heading (`### <name>`) followed by the nine field
38
+ bullets, always in the order shown in the **Entry template**.
39
+ - Entries live under `## Records`, which is the last section of this file, and
40
+ new entries are appended to the end. A `###` heading inside `## Records` is
41
+ always an entry and never guidance — that is what makes the section safe to
42
+ parse and append to.
43
+ - Nothing after `## Records` is guidance, so appending to the end of the file is
44
+ always safe.
45
+ - `_Not yet decided_` is the reserved marker for an unanswered field, so
46
+ unfilled entries are visibly honest rather than silently empty.
47
+
48
+ ## When to escalate
49
+
50
+ Reading an entry should end in a decision. Raise these to an owner rather than
51
+ letting them sit — each one means the project is carrying a risk nobody has
52
+ accepted on purpose:
53
+
54
+ - **Nothing would catch a bad update.** The detection-evidence field says
55
+ "nothing would catch it". We are trusting the dependency blind.
56
+ - **The review is older than the dependency.** `Last reviewed` predates the last
57
+ major upgrade of that dependency, so the record describes software we are no
58
+ longer running.
59
+ - **Nobody is behind it.** The trust basis names no maintainer, no owner, or no
60
+ release history — on our side or theirs.
61
+
62
+ An entry full of `_Not yet decided_` is not itself an escalation; it is a
63
+ to-do. The three items above are escalations because someone already looked and
64
+ the answer was bad.
65
+
66
+ ## What each field means
67
+
68
+ - **Why we keep it** — the plain-language reason, written for a non-technical
69
+ reader. Lead with the outcome it protects, not the mechanism.
70
+ - **What it is (dependency)** — the package or service name, and the version
71
+ range in use.
72
+ - **What it does for us (owned capability)** — the single capability this
73
+ dependency is responsible for. If you cannot name one capability, the
74
+ dependency is either not material or is doing too much.
75
+ - **Why we believe it's safe (trust basis)** — why we believe this dependency
76
+ will still be maintained and safe next quarter. Evidence, not vibes: who
77
+ maintains it, release cadence, security-response history, how widely it is
78
+ used, whether it is pinned.
79
+ - **What breaks if this is compromised (exposure)** — what it can reach and what
80
+ breaks if it misbehaves. Does it run at build time only, or in production?
81
+ Does it touch user data, secrets, the network, or CI credentials?
82
+ - **What it would take to replace (replacement cost)** — what it would actually
83
+ take to remove or swap it: rough effort, what would have to be rewritten, and
84
+ whether a viable alternative exists today.
85
+ - **What would catch a bad update (detection evidence)** — the specific check
86
+ that would **fail** if an update broke the owned capability. Name the test,
87
+ suite, workflow, or monitor. If the honest answer is "nothing would catch it",
88
+ write that down — it is the most valuable line in the entry. Use
89
+ `_Not yet decided_` only when nobody has looked yet, which is a different
90
+ statement from "we looked, and nothing covers this".
91
+ - **Who owns this and how often we recheck (owner / review cadence)** — who is
92
+ accountable for this entry and how often it gets re-read.
93
+ - **Last reviewed** — ISO date (`YYYY-MM-DD`) of the most recent review.
94
+
95
+ ## Entry template
96
+
97
+ Copy this block, fill it in, and append it to the end of **Records** below. Keep
98
+ the nine bullets in this order. Any field you cannot answer yet gets
99
+ `_Not yet decided_`.
100
+
101
+ ### <dependency name>
102
+
103
+ - **Why we keep it:** <plain-language reason a non-technical reader can follow>
104
+ - **What it is (dependency):** <package or service name> `<version range>`
105
+ - **What it does for us (owned capability):** <the one capability it owns>
106
+ - **Why we believe it's safe (trust basis):** <maintainer, cadence, adoption,
107
+ security history, pinning>
108
+ - **What breaks if this is compromised (exposure):** <build-time vs runtime;
109
+ data, secrets, network, CI reach>
110
+ - **What it would take to replace (replacement cost):** <effort to remove or
111
+ swap, and the alternative>
112
+ - **What would catch a bad update (detection evidence):** <the named check that
113
+ fails if an update breaks it>
114
+ - **Who owns this and how often we recheck (owner / review cadence):**
115
+ <accountable owner> / <cadence>
116
+ - **Last reviewed:** <YYYY-MM-DD>
117
+
118
+ ## Records
119
+
120
+ > **The two entries below are EXAMPLES.** They are here so you can see the shape
121
+ > of a good record — the first complete, the second still being filled in.
122
+ > Replace them with your own material dependencies, or delete them once you have
123
+ > written real entries.
124
+
125
+ ### ESLint (EXAMPLE — a complete entry)
126
+
127
+ - **Why we keep it:** It is the automatic reviewer that reads every change
128
+ before a human does and refuses the ones that break our agreed coding rules.
129
+ Without it, those rules become suggestions and the codebase drifts a little
130
+ with every change until nobody can predict how anything is written.
131
+ - **What it is (dependency):** `eslint` `^9`
132
+ - **What it does for us (owned capability):** Automated enforcement of
133
+ code-quality and style rules on every commit and every pull request.
134
+ - **Why we believe it's safe (trust basis):** Maintained by the OpenJS
135
+ Foundation with a published release cadence and a documented
136
+ security-disclosure process; used by a very large share of the JavaScript
137
+ ecosystem, so breakage is found by other people before it reaches us. The
138
+ major version is pinned, so an upgrade is a deliberate decision rather than
139
+ something that arrives on its own.
140
+ - **What breaks if this is compromised (exposure):** Build-time and CI only. It
141
+ never runs in production and never touches customer data. It does run inside
142
+ CI, so a compromised release could in principle read CI environment variables
143
+ — which is why the version is pinned and upgrades are reviewed.
144
+ - **What it would take to replace (replacement cost):** High. Every rule
145
+ configuration and every custom rule would have to be re-expressed in another
146
+ linter, and the pre-commit and CI wiring rebuilt. Alternatives exist (for
147
+ example Biome or oxlint) but none is a drop-in match for the current rule set
148
+ today.
149
+ - **What would catch a bad update (detection evidence):** The `lint` check in
150
+ CI. Warning sign: if lint passes a change we know breaks a rule, the checking
151
+ has silently stopped working — the rule tests exist to catch exactly that.
152
+ - **Who owns this and how often we recheck (owner / review cadence):** Platform
153
+ / engineering owner — reviewed each major version upgrade, and at least once
154
+ every 6 months.
155
+ - **Last reviewed:** _Not yet decided_ (example entry — never reviewed)
156
+
157
+ ### sharp (EXAMPLE — an entry still being filled in)
158
+
159
+ - **Why we keep it:** It resizes and re-encodes every image users upload, so
160
+ photos load quickly instead of being served at full camera resolution.
161
+ - **What it is (dependency):** `sharp` `^0.33`
162
+ - **What it does for us (owned capability):** Server-side image resizing and
163
+ format conversion on upload.
164
+ - **Why we believe it's safe (trust basis):** _Not yet decided_ — nobody has
165
+ checked who maintains it or how quickly security issues get fixed.
166
+ - **What breaks if this is compromised (exposure):** Runs in production and
167
+ processes files uploaded by users. It ships native code, so its reach is
168
+ wider than a pure-JavaScript package.
169
+ - **What it would take to replace (replacement cost):** _Not yet decided_
170
+ - **What would catch a bad update (detection evidence):** _Not yet decided_ —
171
+ this is the gap to close first, because nothing currently proves an upgrade
172
+ did not silently corrupt uploaded images.
173
+ - **Who owns this and how often we recheck (owner / review cadence):**
174
+ _Not yet decided_
175
+ - **Last reviewed:** _Not yet decided_
@@ -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,CAwgEpE,CAAC;AAEL,4EAA4E;AAC5E,eAAO,MAAM,yBAAyB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAupMjE,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,CAghEpE,CAAC;AAEL,4EAA4E;AAC5E,eAAO,MAAM,yBAAyB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CA6qMjE,CAAC;AAEL,sFAAsF;AACtF,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAk6I/D,CAAC"}
@@ -310,6 +310,8 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
310
310
  "plugins/src/base/rules/eager/coding-philosophy.md": "cf2c52032e0368d81f17f002fed5c957ab350d01fc4a43f66b5f366516bac54a",
311
311
  "plugins/src/base/rules/eager/config-resolution.md": "2689c1f47903a5f6c84677fbfd2f1f148096faf122b7498b21d3b0f2345c6c87",
312
312
  "plugins/src/base/rules/eager/convergent-review.md": "ba4ba53863ef99be353c07c01195fa4ae2923ef2b2a5ad4427072802c260d208",
313
+ "plugins/src/base/rules/eager/dependency-decision-records.md": "e22888f107906992e863fca50f26c2c4b124da7132535cacfac71e4f3085728f",
314
+ "plugins/src/base/rules/eager/dependency-trust-classes.md": "43a0932a7b8d4fd075b66bfe778025d808a13d9aa61ae793e9eb2fc8a555a381",
313
315
  "plugins/src/base/rules/eager/documentation-source-paths.md": "3a7c2a6264654a3cc44dd326441ba211a39c1c267033cc189c1c635adb84b52b",
314
316
  "plugins/src/base/rules/eager/empirical-inquiry.md": "60d77a67cc0d3b6a0aad0ab8fe6de5dff0127b2a6c63fa46b021b7a711eb07d6",
315
317
  "plugins/src/base/rules/eager/factory-model.md": "dee39b4276926ee27a2614bf26b985fd33bb3d115313fa6e2893de12da13ed7c",
@@ -339,6 +341,8 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
339
341
  "plugins/src/base/rules/reference/coding-philosophy.md": "fed8381f16a5d6793a49d84d5813d62125808cb2f4981a558b119cf63e2586d9",
340
342
  "plugins/src/base/rules/reference/config-resolution.md": "071b2c91f3b661ee493ea6f37d78f0fdea8004b4e4e7b5e94dcf232df7eceda7",
341
343
  "plugins/src/base/rules/reference/convergent-review.md": "788a9d4dc2af7a928c3ccbb4d53a92856bb3544941ce512cfe38068d6b35850d",
344
+ "plugins/src/base/rules/reference/dependency-decision-records.md": "84f9fb8fa0a606307e828ec355ccbf2258beeeb88795dd113abe9bb2c37db39f",
345
+ "plugins/src/base/rules/reference/dependency-trust-classes.md": "82216b80d4807e0ad302d04924032cc6a7a95b26f72ea853e378572a5c31821c",
342
346
  "plugins/src/base/rules/reference/documentation-source-paths.md": "555155889c9cf279865b9d8fc554bdd461c96a3ec76a5001dfeb361a71056999",
343
347
  "plugins/src/base/rules/reference/empirical-inquiry.md": "85f4552aa4c561677de40fd01bc6cccf5dbcf13865647db9df819d11f3cc3389",
344
348
  "plugins/src/base/rules/reference/factory-model.md": "b28a2ea4df7c33390111667a2807d9003cf8c9a14829f6fb0dbc929b05bfed3a",
@@ -524,7 +528,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
524
528
  "plugins/src/base/skills/lisa-sonarcloud-access/SKILL.md": "924b6f54e38bf000625fcbecef828e78f7b4a401c36a5353b7c22ff12d530d5c",
525
529
  "plugins/src/base/skills/lisa-spec-conformance/SKILL.md": "3bcaf6d3b47917d00732542e30a8a302c3e293a9957faf79cac5b1d75cc538a2",
526
530
  "plugins/src/base/skills/lisa-sync-down/SKILL.md": "c32e6a4e3115ca32b7d335e90d0a73b243c6c631a2d192568423be0cb5944e84",
527
- "plugins/src/base/skills/lisa-task-decomposition/SKILL.md": "bcc5940772c018e1b72a527b8378895596a4668844bc9d10599f47be5bd69172",
531
+ "plugins/src/base/skills/lisa-task-decomposition/SKILL.md": "b8f44d501e38a8ebd3c9b566b983d3e97f1292d28688ff1d42ec2c582abebf93",
528
532
  "plugins/src/base/skills/lisa-task-triage/SKILL.md": "c6e11b6d195560e6bd7b51fede65c155567c35208801a700a26d95679b03484e",
529
533
  "plugins/src/base/skills/lisa-tdd-implementation/SKILL.md": "390bc00b47c29f2bacd99ba4b4b5ba0d9177f04047a8edd662640693efe71825",
530
534
  "plugins/src/base/skills/lisa-tear-down-automations/SKILL.md": "3f8215b691ce60a6efd63547b99b4d87760fe99d285f6fe153aaadd451e83731",
@@ -1027,7 +1031,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
1027
1031
  "typescript/merge/.oxlintrc.json": "4debc093acfd263eb81ae15894073ebf098513204f45f40b83fb8fa5353fa1f8",
1028
1032
  "typescript/package-lisa/package.lisa.json": "7e99286c549c79b1c02c07a4313dcfe5b41b4ebb80a6fbbb8741dd74dc5f454d",
1029
1033
  "ui/README.md": "deeb35e767ea5dd2883268835ea3ad21cbad9fa63ec8d8ff5e200f0e2a7d2751",
1030
- "ui/index.html": "a6741c556f79d05e5063500b795c7066b05280d166ead6b83047a308ba7cef91",
1034
+ "ui/index.html": "a66598558cb95873aa674055d3bc3335654f7c615013bae0fa8effa35f64c351",
1031
1035
  });
1032
1036
  /** Exact paths tracked by the public Lisa repository at generation time. */
1033
1037
  export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
@@ -2262,6 +2266,8 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
2262
2266
  "plugins/lisa-copilot/rules/eager/coding-philosophy.md": true,
2263
2267
  "plugins/lisa-copilot/rules/eager/config-resolution.md": true,
2264
2268
  "plugins/lisa-copilot/rules/eager/convergent-review.md": true,
2269
+ "plugins/lisa-copilot/rules/eager/dependency-decision-records.md": true,
2270
+ "plugins/lisa-copilot/rules/eager/dependency-trust-classes.md": true,
2265
2271
  "plugins/lisa-copilot/rules/eager/documentation-source-paths.md": true,
2266
2272
  "plugins/lisa-copilot/rules/eager/empirical-inquiry.md": true,
2267
2273
  "plugins/lisa-copilot/rules/eager/factory-model.md": true,
@@ -2291,6 +2297,8 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
2291
2297
  "plugins/lisa-copilot/rules/reference/coding-philosophy.md": true,
2292
2298
  "plugins/lisa-copilot/rules/reference/config-resolution.md": true,
2293
2299
  "plugins/lisa-copilot/rules/reference/convergent-review.md": true,
2300
+ "plugins/lisa-copilot/rules/reference/dependency-decision-records.md": true,
2301
+ "plugins/lisa-copilot/rules/reference/dependency-trust-classes.md": true,
2294
2302
  "plugins/lisa-copilot/rules/reference/documentation-source-paths.md": true,
2295
2303
  "plugins/lisa-copilot/rules/reference/empirical-inquiry.md": true,
2296
2304
  "plugins/lisa-copilot/rules/reference/factory-model.md": true,
@@ -2626,6 +2634,10 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
2626
2634
  "plugins/lisa-cursor/rules/config-resolution.mdc": true,
2627
2635
  "plugins/lisa-cursor/rules/convergent-review-reference.mdc": true,
2628
2636
  "plugins/lisa-cursor/rules/convergent-review.mdc": true,
2637
+ "plugins/lisa-cursor/rules/dependency-decision-records-reference.mdc": true,
2638
+ "plugins/lisa-cursor/rules/dependency-decision-records.mdc": true,
2639
+ "plugins/lisa-cursor/rules/dependency-trust-classes-reference.mdc": true,
2640
+ "plugins/lisa-cursor/rules/dependency-trust-classes.mdc": true,
2629
2641
  "plugins/lisa-cursor/rules/documentation-source-paths-reference.mdc": true,
2630
2642
  "plugins/lisa-cursor/rules/documentation-source-paths.mdc": true,
2631
2643
  "plugins/lisa-cursor/rules/empirical-inquiry-reference.mdc": true,
@@ -4999,6 +5011,8 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
4999
5011
  "plugins/lisa/rules/eager/coding-philosophy.md": true,
5000
5012
  "plugins/lisa/rules/eager/config-resolution.md": true,
5001
5013
  "plugins/lisa/rules/eager/convergent-review.md": true,
5014
+ "plugins/lisa/rules/eager/dependency-decision-records.md": true,
5015
+ "plugins/lisa/rules/eager/dependency-trust-classes.md": true,
5002
5016
  "plugins/lisa/rules/eager/documentation-source-paths.md": true,
5003
5017
  "plugins/lisa/rules/eager/empirical-inquiry.md": true,
5004
5018
  "plugins/lisa/rules/eager/factory-model.md": true,
@@ -5028,6 +5042,8 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
5028
5042
  "plugins/lisa/rules/reference/coding-philosophy.md": true,
5029
5043
  "plugins/lisa/rules/reference/config-resolution.md": true,
5030
5044
  "plugins/lisa/rules/reference/convergent-review.md": true,
5045
+ "plugins/lisa/rules/reference/dependency-decision-records.md": true,
5046
+ "plugins/lisa/rules/reference/dependency-trust-classes.md": true,
5031
5047
  "plugins/lisa/rules/reference/documentation-source-paths.md": true,
5032
5048
  "plugins/lisa/rules/reference/empirical-inquiry.md": true,
5033
5049
  "plugins/lisa/rules/reference/factory-model.md": true,
@@ -5525,6 +5541,8 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
5525
5541
  "plugins/src/base/rules/eager/coding-philosophy.md": true,
5526
5542
  "plugins/src/base/rules/eager/config-resolution.md": true,
5527
5543
  "plugins/src/base/rules/eager/convergent-review.md": true,
5544
+ "plugins/src/base/rules/eager/dependency-decision-records.md": true,
5545
+ "plugins/src/base/rules/eager/dependency-trust-classes.md": true,
5528
5546
  "plugins/src/base/rules/eager/documentation-source-paths.md": true,
5529
5547
  "plugins/src/base/rules/eager/empirical-inquiry.md": true,
5530
5548
  "plugins/src/base/rules/eager/factory-model.md": true,
@@ -5554,6 +5572,8 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
5554
5572
  "plugins/src/base/rules/reference/coding-philosophy.md": true,
5555
5573
  "plugins/src/base/rules/reference/config-resolution.md": true,
5556
5574
  "plugins/src/base/rules/reference/convergent-review.md": true,
5575
+ "plugins/src/base/rules/reference/dependency-decision-records.md": true,
5576
+ "plugins/src/base/rules/reference/dependency-trust-classes.md": true,
5557
5577
  "plugins/src/base/rules/reference/documentation-source-paths.md": true,
5558
5578
  "plugins/src/base/rules/reference/empirical-inquiry.md": true,
5559
5579
  "plugins/src/base/rules/reference/factory-model.md": true,
@@ -6519,10 +6539,12 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
6519
6539
  "tests/e2e/ui-observability-providers.spec.ts": true,
6520
6540
  "tests/e2e/ui-plugins.spec.ts": true,
6521
6541
  "tests/e2e/ui-readonly-affordance.spec.ts": true,
6542
+ "tests/e2e/ui-setup-readiness.spec.ts": true,
6522
6543
  "tests/e2e/ui-stacks.spec.ts": true,
6523
6544
  "tests/e2e/ui-version-status.spec.ts": true,
6524
6545
  "tests/fixtures/automation-status/attention-needed-codex.json": true,
6525
6546
  "tests/fixtures/automation-status/partial-support-codex.json": true,
6547
+ "tests/fixtures/dependency-trust-classes/dependency-addition-ticket.md": true,
6526
6548
  "tests/fixtures/doctor/not-ready-missing-config.json": true,
6527
6549
  "tests/fixtures/doctor/readiness/all-pass-assessed.json": true,
6528
6550
  "tests/fixtures/doctor/readiness/all-skip-unassessed.json": true,
@@ -6646,6 +6668,7 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
6646
6668
  "tests/unit/cli/ui-observability-providers-probe.test.ts": true,
6647
6669
  "tests/unit/cli/ui-setup-readiness-endpoint-confinement.test.ts": true,
6648
6670
  "tests/unit/cli/ui-setup-readiness-endpoint.test.ts": true,
6671
+ "tests/unit/cli/ui-setup-readiness-renderer.test.ts": true,
6649
6672
  "tests/unit/cli/ui-setup-readiness.test.ts": true,
6650
6673
  "tests/unit/cli/ui-status-contract.test.ts": true,
6651
6674
  "tests/unit/cli/ui-status-endpoint.test.ts": true,
@@ -6869,6 +6892,8 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
6869
6892
  "tests/unit/strategies/copy-overwrite.test.ts": true,
6870
6893
  "tests/unit/strategies/create-only.test.ts": true,
6871
6894
  "tests/unit/strategies/debrief-reroute-contract.test.ts": true,
6895
+ "tests/unit/strategies/dependency-decision-records-rule-pair.test.ts": true,
6896
+ "tests/unit/strategies/dependency-trust-classes-rule-pair.test.ts": true,
6872
6897
  "tests/unit/strategies/distributed-content-round2-contract.test.ts": true,
6873
6898
  "tests/unit/strategies/doctor-automation-readiness.test.ts": true,
6874
6899
  "tests/unit/strategies/doctor-config-readiness.test.ts": true,
@@ -6992,6 +7017,7 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
6992
7017
  "tests/unit/sync/config-sync.test.ts": true,
6993
7018
  "tests/unit/sync/health-schedule.test.ts": true,
6994
7019
  "tests/unit/sync/legacy-monitor-thresholds.test.ts": true,
7020
+ "tests/unit/templates/dependency-decisions-template.test.ts": true,
6995
7021
  "tests/unit/templates/project-learnings-template.test.ts": true,
6996
7022
  "tests/unit/templates/stack-tsconfig-shadowing.test.ts": true,
6997
7023
  "tests/unit/transaction/backup.test.ts": true,