@codyswann/lisa 4.81.3 → 4.81.5

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 (198) hide show
  1. package/dist/core/nightly-e2e-guard-behavior-certificate.js +2 -2
  2. package/dist/core/upstream-evidence-manifest.d.ts.map +1 -1
  3. package/dist/core/upstream-evidence-manifest.js +52 -14
  4. package/dist/core/upstream-evidence-manifest.js.map +1 -1
  5. package/package.json +4 -4
  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-secrets-access/scripts/validate-config.mjs +30 -0
  9. package/plugins/lisa/.codex-plugin/skills/lisa-session-manager/SKILL.md +15 -8
  10. package/plugins/lisa/.codex-plugin/skills/lisa-session-manager/references/runbook-template.md +4 -3
  11. package/plugins/lisa/.codex-plugin/skills/lisa-session-manager/scripts/cli-manager.mjs +5 -76
  12. package/plugins/lisa/.codex-plugin/skills/lisa-session-manager/scripts/cli-queue.mjs +9 -3
  13. package/plugins/lisa/.codex-plugin/skills/lisa-session-manager/scripts/cli-runtime.mjs +1 -0
  14. package/plugins/lisa/.codex-plugin/skills/lisa-session-manager/scripts/cli-setup.mjs +165 -0
  15. package/plugins/lisa/.codex-plugin/skills/lisa-session-manager/scripts/cli-usage.mjs +36 -9
  16. package/plugins/lisa/.codex-plugin/skills/lisa-session-manager/scripts/clipboard.mjs +119 -0
  17. package/plugins/lisa/.codex-plugin/skills/lisa-session-manager/scripts/config.mjs +22 -36
  18. package/plugins/lisa/.codex-plugin/skills/lisa-session-manager/scripts/launch.mjs +1 -0
  19. package/plugins/lisa/.codex-plugin/skills/lisa-session-manager/scripts/repo-detect.mjs +205 -0
  20. package/plugins/lisa/.codex-plugin/skills/lisa-session-manager/scripts/session-manager.mjs +16 -13
  21. package/plugins/lisa/.codex-plugin/skills/lisa-session-manager/scripts/setup-checks.mjs +168 -0
  22. package/plugins/lisa/.codex-plugin/skills/lisa-session-manager/scripts/token.mjs +98 -28
  23. package/plugins/lisa/.codex-plugin/skills/lisa-setup-session-manager/SKILL.md +57 -22
  24. package/plugins/lisa/rules/reference/config-resolution.md +1 -0
  25. package/plugins/lisa/scripts/ready-queue-order.mjs +34 -14
  26. package/plugins/lisa/skills/lisa-secrets-access/scripts/validate-config.mjs +30 -0
  27. package/plugins/lisa/skills/lisa-session-manager/SKILL.md +15 -8
  28. package/plugins/lisa/skills/lisa-session-manager/references/runbook-template.md +4 -3
  29. package/plugins/lisa/skills/lisa-session-manager/scripts/cli-manager.mjs +5 -76
  30. package/plugins/lisa/skills/lisa-session-manager/scripts/cli-queue.mjs +9 -3
  31. package/plugins/lisa/skills/lisa-session-manager/scripts/cli-runtime.mjs +1 -0
  32. package/plugins/lisa/skills/lisa-session-manager/scripts/cli-setup.mjs +165 -0
  33. package/plugins/lisa/skills/lisa-session-manager/scripts/cli-usage.mjs +36 -9
  34. package/plugins/lisa/skills/lisa-session-manager/scripts/clipboard.mjs +119 -0
  35. package/plugins/lisa/skills/lisa-session-manager/scripts/config.mjs +22 -36
  36. package/plugins/lisa/skills/lisa-session-manager/scripts/launch.mjs +1 -0
  37. package/plugins/lisa/skills/lisa-session-manager/scripts/repo-detect.mjs +205 -0
  38. package/plugins/lisa/skills/lisa-session-manager/scripts/session-manager.mjs +16 -13
  39. package/plugins/lisa/skills/lisa-session-manager/scripts/setup-checks.mjs +168 -0
  40. package/plugins/lisa/skills/lisa-session-manager/scripts/token.mjs +98 -28
  41. package/plugins/lisa/skills/lisa-setup-session-manager/SKILL.md +57 -22
  42. package/plugins/lisa-agy/plugin.json +1 -1
  43. package/plugins/lisa-agy/scripts/ready-queue-order.mjs +34 -14
  44. package/plugins/lisa-agy/skills/lisa-secrets-access/scripts/validate-config.mjs +30 -0
  45. package/plugins/lisa-agy/skills/lisa-session-manager/SKILL.md +15 -8
  46. package/plugins/lisa-agy/skills/lisa-session-manager/references/runbook-template.md +4 -3
  47. package/plugins/lisa-agy/skills/lisa-session-manager/scripts/cli-manager.mjs +5 -76
  48. package/plugins/lisa-agy/skills/lisa-session-manager/scripts/cli-queue.mjs +9 -3
  49. package/plugins/lisa-agy/skills/lisa-session-manager/scripts/cli-runtime.mjs +1 -0
  50. package/plugins/lisa-agy/skills/lisa-session-manager/scripts/cli-setup.mjs +165 -0
  51. package/plugins/lisa-agy/skills/lisa-session-manager/scripts/cli-usage.mjs +36 -9
  52. package/plugins/lisa-agy/skills/lisa-session-manager/scripts/clipboard.mjs +119 -0
  53. package/plugins/lisa-agy/skills/lisa-session-manager/scripts/config.mjs +22 -36
  54. package/plugins/lisa-agy/skills/lisa-session-manager/scripts/launch.mjs +1 -0
  55. package/plugins/lisa-agy/skills/lisa-session-manager/scripts/repo-detect.mjs +205 -0
  56. package/plugins/lisa-agy/skills/lisa-session-manager/scripts/session-manager.mjs +16 -13
  57. package/plugins/lisa-agy/skills/lisa-session-manager/scripts/setup-checks.mjs +168 -0
  58. package/plugins/lisa-agy/skills/lisa-session-manager/scripts/token.mjs +98 -28
  59. package/plugins/lisa-agy/skills/lisa-setup-session-manager/SKILL.md +57 -22
  60. package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
  61. package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
  62. package/plugins/lisa-cdk-agy/plugin.json +1 -1
  63. package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +1 -1
  64. package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +1 -1
  65. package/plugins/lisa-cdk-devin/.claude-plugin/plugin.json +1 -1
  66. package/plugins/lisa-cdk-devin/.devin-plugin/plugin.json +1 -1
  67. package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
  68. package/plugins/lisa-copilot/rules/reference/config-resolution.md +1 -0
  69. package/plugins/lisa-copilot/scripts/ready-queue-order.mjs +34 -14
  70. package/plugins/lisa-copilot/skills/lisa-secrets-access/scripts/validate-config.mjs +30 -0
  71. package/plugins/lisa-copilot/skills/lisa-session-manager/SKILL.md +15 -8
  72. package/plugins/lisa-copilot/skills/lisa-session-manager/references/runbook-template.md +4 -3
  73. package/plugins/lisa-copilot/skills/lisa-session-manager/scripts/cli-manager.mjs +5 -76
  74. package/plugins/lisa-copilot/skills/lisa-session-manager/scripts/cli-queue.mjs +9 -3
  75. package/plugins/lisa-copilot/skills/lisa-session-manager/scripts/cli-runtime.mjs +1 -0
  76. package/plugins/lisa-copilot/skills/lisa-session-manager/scripts/cli-setup.mjs +165 -0
  77. package/plugins/lisa-copilot/skills/lisa-session-manager/scripts/cli-usage.mjs +36 -9
  78. package/plugins/lisa-copilot/skills/lisa-session-manager/scripts/clipboard.mjs +119 -0
  79. package/plugins/lisa-copilot/skills/lisa-session-manager/scripts/config.mjs +22 -36
  80. package/plugins/lisa-copilot/skills/lisa-session-manager/scripts/launch.mjs +1 -0
  81. package/plugins/lisa-copilot/skills/lisa-session-manager/scripts/repo-detect.mjs +205 -0
  82. package/plugins/lisa-copilot/skills/lisa-session-manager/scripts/session-manager.mjs +16 -13
  83. package/plugins/lisa-copilot/skills/lisa-session-manager/scripts/setup-checks.mjs +168 -0
  84. package/plugins/lisa-copilot/skills/lisa-session-manager/scripts/token.mjs +98 -28
  85. package/plugins/lisa-copilot/skills/lisa-setup-session-manager/SKILL.md +57 -22
  86. package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
  87. package/plugins/lisa-cursor/rules/config-resolution-reference.mdc +1 -0
  88. package/plugins/lisa-cursor/scripts/ready-queue-order.mjs +34 -14
  89. package/plugins/lisa-cursor/skills/lisa-secrets-access/scripts/validate-config.mjs +30 -0
  90. package/plugins/lisa-cursor/skills/lisa-session-manager/SKILL.md +15 -8
  91. package/plugins/lisa-cursor/skills/lisa-session-manager/references/runbook-template.md +4 -3
  92. package/plugins/lisa-cursor/skills/lisa-session-manager/scripts/cli-manager.mjs +5 -76
  93. package/plugins/lisa-cursor/skills/lisa-session-manager/scripts/cli-queue.mjs +9 -3
  94. package/plugins/lisa-cursor/skills/lisa-session-manager/scripts/cli-runtime.mjs +1 -0
  95. package/plugins/lisa-cursor/skills/lisa-session-manager/scripts/cli-setup.mjs +165 -0
  96. package/plugins/lisa-cursor/skills/lisa-session-manager/scripts/cli-usage.mjs +36 -9
  97. package/plugins/lisa-cursor/skills/lisa-session-manager/scripts/clipboard.mjs +119 -0
  98. package/plugins/lisa-cursor/skills/lisa-session-manager/scripts/config.mjs +22 -36
  99. package/plugins/lisa-cursor/skills/lisa-session-manager/scripts/launch.mjs +1 -0
  100. package/plugins/lisa-cursor/skills/lisa-session-manager/scripts/repo-detect.mjs +205 -0
  101. package/plugins/lisa-cursor/skills/lisa-session-manager/scripts/session-manager.mjs +16 -13
  102. package/plugins/lisa-cursor/skills/lisa-session-manager/scripts/setup-checks.mjs +168 -0
  103. package/plugins/lisa-cursor/skills/lisa-session-manager/scripts/token.mjs +98 -28
  104. package/plugins/lisa-cursor/skills/lisa-setup-session-manager/SKILL.md +57 -22
  105. package/plugins/lisa-devin/.claude-plugin/plugin.json +1 -1
  106. package/plugins/lisa-devin/.devin-plugin/plugin.json +1 -1
  107. package/plugins/lisa-devin/rules/reference/config-resolution.md +1 -0
  108. package/plugins/lisa-devin/scripts/ready-queue-order.mjs +34 -14
  109. package/plugins/lisa-devin/skills/lisa-secrets-access/scripts/validate-config.mjs +30 -0
  110. package/plugins/lisa-devin/skills/lisa-session-manager/SKILL.md +15 -8
  111. package/plugins/lisa-devin/skills/lisa-session-manager/references/runbook-template.md +4 -3
  112. package/plugins/lisa-devin/skills/lisa-session-manager/scripts/cli-manager.mjs +5 -76
  113. package/plugins/lisa-devin/skills/lisa-session-manager/scripts/cli-queue.mjs +9 -3
  114. package/plugins/lisa-devin/skills/lisa-session-manager/scripts/cli-runtime.mjs +1 -0
  115. package/plugins/lisa-devin/skills/lisa-session-manager/scripts/cli-setup.mjs +165 -0
  116. package/plugins/lisa-devin/skills/lisa-session-manager/scripts/cli-usage.mjs +36 -9
  117. package/plugins/lisa-devin/skills/lisa-session-manager/scripts/clipboard.mjs +119 -0
  118. package/plugins/lisa-devin/skills/lisa-session-manager/scripts/config.mjs +22 -36
  119. package/plugins/lisa-devin/skills/lisa-session-manager/scripts/launch.mjs +1 -0
  120. package/plugins/lisa-devin/skills/lisa-session-manager/scripts/repo-detect.mjs +205 -0
  121. package/plugins/lisa-devin/skills/lisa-session-manager/scripts/session-manager.mjs +16 -13
  122. package/plugins/lisa-devin/skills/lisa-session-manager/scripts/setup-checks.mjs +168 -0
  123. package/plugins/lisa-devin/skills/lisa-session-manager/scripts/token.mjs +98 -28
  124. package/plugins/lisa-devin/skills/lisa-setup-session-manager/SKILL.md +57 -22
  125. package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
  126. package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
  127. package/plugins/lisa-expo-agy/plugin.json +1 -1
  128. package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
  129. package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
  130. package/plugins/lisa-expo-devin/.claude-plugin/plugin.json +1 -1
  131. package/plugins/lisa-expo-devin/.devin-plugin/plugin.json +1 -1
  132. package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
  133. package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
  134. package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
  135. package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +1 -1
  136. package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
  137. package/plugins/lisa-harper-fabric-devin/.claude-plugin/plugin.json +1 -1
  138. package/plugins/lisa-harper-fabric-devin/.devin-plugin/plugin.json +1 -1
  139. package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
  140. package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
  141. package/plugins/lisa-nestjs-agy/plugin.json +1 -1
  142. package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +1 -1
  143. package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +1 -1
  144. package/plugins/lisa-nestjs-devin/.claude-plugin/plugin.json +1 -1
  145. package/plugins/lisa-nestjs-devin/.devin-plugin/plugin.json +1 -1
  146. package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
  147. package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
  148. package/plugins/lisa-openclaw-agy/plugin.json +1 -1
  149. package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +1 -1
  150. package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +1 -1
  151. package/plugins/lisa-openclaw-devin/.claude-plugin/plugin.json +1 -1
  152. package/plugins/lisa-openclaw-devin/.devin-plugin/plugin.json +1 -1
  153. package/plugins/lisa-phaser/.claude-plugin/plugin.json +1 -1
  154. package/plugins/lisa-phaser/.codex-plugin/plugin.json +1 -1
  155. package/plugins/lisa-phaser-agy/plugin.json +1 -1
  156. package/plugins/lisa-phaser-copilot/.claude-plugin/plugin.json +1 -1
  157. package/plugins/lisa-phaser-cursor/.claude-plugin/plugin.json +1 -1
  158. package/plugins/lisa-phaser-devin/.claude-plugin/plugin.json +1 -1
  159. package/plugins/lisa-phaser-devin/.devin-plugin/plugin.json +1 -1
  160. package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
  161. package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
  162. package/plugins/lisa-rails-agy/plugin.json +1 -1
  163. package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +1 -1
  164. package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +1 -1
  165. package/plugins/lisa-rails-devin/.claude-plugin/plugin.json +1 -1
  166. package/plugins/lisa-rails-devin/.devin-plugin/plugin.json +1 -1
  167. package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
  168. package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
  169. package/plugins/lisa-typescript-agy/plugin.json +1 -1
  170. package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +1 -1
  171. package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +1 -1
  172. package/plugins/lisa-typescript-devin/.claude-plugin/plugin.json +1 -1
  173. package/plugins/lisa-typescript-devin/.devin-plugin/plugin.json +1 -1
  174. package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
  175. package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
  176. package/plugins/lisa-wiki-agy/plugin.json +1 -1
  177. package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
  178. package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
  179. package/plugins/lisa-wiki-devin/.claude-plugin/plugin.json +1 -1
  180. package/plugins/lisa-wiki-devin/.devin-plugin/plugin.json +1 -1
  181. package/plugins/src/base/rules/reference/config-resolution.md +1 -0
  182. package/plugins/src/base/scripts/ready-queue-order.mjs +34 -14
  183. package/plugins/src/base/skills/lisa-secrets-access/scripts/validate-config.mjs +30 -0
  184. package/plugins/src/base/skills/lisa-session-manager/SKILL.md +15 -8
  185. package/plugins/src/base/skills/lisa-session-manager/references/runbook-template.md +4 -3
  186. package/plugins/src/base/skills/lisa-session-manager/scripts/cli-manager.mjs +5 -76
  187. package/plugins/src/base/skills/lisa-session-manager/scripts/cli-queue.mjs +9 -3
  188. package/plugins/src/base/skills/lisa-session-manager/scripts/cli-runtime.mjs +1 -0
  189. package/plugins/src/base/skills/lisa-session-manager/scripts/cli-setup.mjs +165 -0
  190. package/plugins/src/base/skills/lisa-session-manager/scripts/cli-usage.mjs +36 -9
  191. package/plugins/src/base/skills/lisa-session-manager/scripts/clipboard.mjs +119 -0
  192. package/plugins/src/base/skills/lisa-session-manager/scripts/config.mjs +22 -36
  193. package/plugins/src/base/skills/lisa-session-manager/scripts/launch.mjs +1 -0
  194. package/plugins/src/base/skills/lisa-session-manager/scripts/repo-detect.mjs +205 -0
  195. package/plugins/src/base/skills/lisa-session-manager/scripts/session-manager.mjs +16 -13
  196. package/plugins/src/base/skills/lisa-session-manager/scripts/setup-checks.mjs +168 -0
  197. package/plugins/src/base/skills/lisa-session-manager/scripts/token.mjs +98 -28
  198. package/plugins/src/base/skills/lisa-setup-session-manager/SKILL.md +57 -22
@@ -42,16 +42,31 @@ writes `$SM`, and pass `--project-root "$ROOT"` (the absolute project root) on e
42
42
 
43
43
  1. Preview: `node "$SM/session-manager.mjs" init-config --project-root "$ROOT"`. It detects
44
44
  `projects/*/.lisa.config.json` and proposes `name`, `interval`, `repos`, `capacity`, `stall` and a
45
- per-project `notify.stateDir`. Show the block to the operator.
45
+ per-project `notify.stateDir`. Repo detection leaves out linked worktrees and keeps one checkout
46
+ per remote, so ticket worktrees and second clones under `projects/` are not proposed. Show the
47
+ block to the operator and ask whether any repo is missing or should not be routed.
46
48
  2. Write it: the same command with `--write`. It adds only non-secret fields and never overwrites an
47
49
  existing block (`reason: "exists"` means keep it).
48
- 3. Ask the operator to replace each repo's starter `hints` with the technologies and areas that
49
- identify it (e.g. `api`: `["NestJS","migrations"]`, `web`: `["Expo","screens"]`), and whether to
50
+ 3. Each repo's `hints` are a draft: its name plus one per well-known dependency (`NestJS`, `Expo`,
51
+ `AWS CDK`, ...). Ask the operator to correct them and add the areas that identify the repo
52
+ (e.g. `api`: `["NestJS","migrations"]`, `web`: `["Expo","screens"]`), and whether to
50
53
  set `sessionManager.trustedAuthorIds`. Without it, any author's Ready item reaches a
51
54
  bypass-permissions worker; say so plainly. The list holds stable tracker user ids as strings,
52
55
  never logins: the GitHub numeric user id (`gh api users/<login> --jq .id`), the Jira
53
56
  `accountId`, or the Linear user id. A login matches no one and silently excludes every item.
54
- 4. `node "$SM/session-manager.mjs" validate --project-root "$ROOT"` must print `valid: true`.
57
+ 4. Set `sessionManager.operatorIds` to a non-empty **array** holding the operator's own tracker
58
+ user id, e.g. `"operatorIds": ["<operator-id>"]` (a bare string fails `validate`). Look up the
59
+ OPERATOR, not the credential: `gh api user` / `viewer.id` return whoever the tracker credential
60
+ belongs to, which is the agent account in exactly the case this key exists for. The manager dispatches
61
+ the operator's assigned items first, then items assigned to the tracker credential's identity
62
+ ("me"), then unassigned ones, and skips items assigned to anyone else. When the tracker
63
+ credential is not the operator's (an agent or bot account), leaving this unset means the
64
+ operator's own Ready items are never dispatched; say so plainly. Unlike `trustedAuthorIds`, this
65
+ is matched against the assignee, exactly and case-sensitively, so use the same kind of id as
66
+ "me", spelled as the tracker API returns it: the GitHub **login** (`gh api users/<login> --jq
67
+ .login`), the Jira `accountId`, or the Linear user id (the operator's entry in the team's member
68
+ list, or `viewer.id` only when the operator runs the lookup with their own credential).
69
+ 5. `node "$SM/session-manager.mjs" validate --project-root "$ROOT"` must print `valid: true`.
55
70
 
56
71
  ## Step 3: Store the bot token
57
72
 
@@ -61,8 +76,14 @@ The operator creates a bot with @BotFather, one per project. Then run
61
76
  - `stored: true`: done.
62
77
  - Exit 2 because a token already exists: keep it (re-running setup is safe). Only when the operator
63
78
  says the stored token is wrong or belongs to another project, re-run with `store-token --replace`.
64
- - `reason: "no-tty"` (an agent's Bash has no terminal): print `command` from the output and ask the
65
- operator to run it in their own terminal, where it prompts with echo off. Wait for them to confirm.
79
+ - `reason: "no-tty"` (an agent's Bash has no terminal): offer the operator both routes, and say
80
+ plainly that Claude Code's `!` prefix has no terminal either, so it fails the same way:
81
+ - **Clipboard (simplest):** they copy the token from the BotFather chat and tell you; then run
82
+ `clipboardCommand` from the output (`store-token --from-clipboard`). It validates the token,
83
+ stores it, never prints it, and clears the clipboard. On `stored: false`, say what `message`
84
+ reports and ask them to copy it again.
85
+ - **Separate terminal app:** print `command` and ask them to run it in Terminal, iTerm or similar,
86
+ outside the agent, where it prompts with echo off. Wait for them to confirm.
66
87
  - `empty` / `invalid`: say what was wrong and ask again.
67
88
 
68
89
  Never ask for the token in chat, never echo, log or commit it, and never put it in
@@ -97,14 +118,24 @@ If `.lisa/automations/session-manager.runbook.md` does not exist, copy
97
118
  `$SM/../references/runbook-template.md` there. Never overwrite an existing runbook: it is the
98
119
  project's. It is checked in, like every automation runbook (`automation-runbook-contract`).
99
120
 
100
- ## Step 7: Coexistence warning
101
-
102
- Tell the operator, before starting: if this project also runs the scheduled `intake-repair` loop, it
103
- can re-dispatch an item a local worker is still building (it treats a claimed item with no tracker
104
- activity for `intake.repair.staleAfterHours` as stalled). `intake-tickets` competes for the same
105
- Ready items. Recommend tearing down `intake-tickets` (`/lisa:tear-down-automations intake-tickets`)
106
- and either raising `intake.repair.staleAfterHours` above `stall.noOutputMinutes × stall.maxAttempts`
107
- or tearing down `intake-repair`.
121
+ ## Step 7: Check for competing intake loops
122
+
123
+ The scheduled `intake-repair` loop can re-dispatch an item a local worker is still building (it treats
124
+ a claimed item with no tracker activity for `intake.repair.staleAfterHours` as stalled), and
125
+ `intake-tickets` competes for the same Ready items. Find out whether either is running before you
126
+ start the manager; do not leave the operator to check.
127
+
128
+ 1. Run `node "$SM/session-manager.mjs" coexistence --project-root "$ROOT"`. For each loop it reports
129
+ the last run recorded in this project's run log and whether that is `recent`. `live` lists the
130
+ loops that ran recently.
131
+ 2. A run log is evidence, not proof: also list your runtime's scheduler for those loop names (Claude
132
+ Code: the `/schedule` listing of claude.ai routines; Codex: automations; a `lisa-<loop>.yml`
133
+ workflow with a `schedule:` trigger on GitHub Actions).
134
+ 3. Report what you found, per loop, in one line each. Only for a loop that is live (a recent run, or a
135
+ scheduler entry): recommend tearing down `intake-tickets` (`/lisa:tear-down-automations
136
+ intake-tickets`) and either raising `intake.repair.staleAfterHours` above
137
+ `stall.noOutputMinutes × stall.maxAttempts` or tearing down `intake-repair`. When neither is live,
138
+ say so and move on.
108
139
 
109
140
  ## Step 8: Accept workspace trust in each worker repo
110
141
 
@@ -113,12 +144,15 @@ folder?" prompt: until someone has accepted it in a directory, `claude --bg` ref
113
144
  and `spawn` exits 2 saying so. Do this once per routed repo (or once for the root on a single-repo
114
145
  project), on every machine that runs the manager:
115
146
 
116
- 1. List the directories workers start in. Single-repo: the project root. Multi-repo: for each key in
117
- `sessionManager.repos.entries`,
118
- `node "$SM/session-manager.mjs" repo-dir --repo <key> --raw --project-root "$ROOT"`.
119
- 2. Ask the operator, in their own terminal, to run `claude` once in that directory,
120
- accept the trust prompt, then exit. An agent's Bash cannot answer that prompt, so never try to
121
- accept it for them.
147
+ 1. Run `node "$SM/session-manager.mjs" trust-status --project-root "$ROOT"`. It lists every
148
+ directory workers start in (each routed repo, or the root on a single-repo project) with whether
149
+ Claude Code has already recorded trust for it. `needsTrust` lists the ones that are not
150
+ `trusted: true`. When it is empty, this step is done: say so.
151
+ 2. For each directory in `needsTrust`, ask the operator, in a separate terminal app (not the agent's
152
+ Bash or Claude Code's `!` prefix), to run `claude` once in that directory, accept the trust prompt,
153
+ then exit. An agent's Bash cannot answer that prompt, so never try to accept it for them. Then
154
+ re-run `trust-status` to confirm. (`trusted: "unknown"` means Claude Code's state file could not be
155
+ read; treat it as needing trust.)
122
156
  3. Re-run this step whenever a repo is added to `sessionManager.repos`.
123
157
 
124
158
  ## Step 9: Start and pair
@@ -152,5 +186,6 @@ confirm the "Session manager Telegram isolation?" check is green. Fix every warn
152
186
  `node "$SM/session-manager.mjs" status --project-root "$ROOT"` should show the manager running.
153
187
 
154
188
  Report: the config block written (or kept), where the token lives (the path, never the value), the
155
- plugin scope result, the runbook path, which repo dirs had workspace trust accepted, the manager's
156
- tmux session name, and the doctor result.
189
+ plugin scope result, the runbook path, which repo dirs were already trusted and which the operator
190
+ accepted trust in, what the competing-loop check found, the manager's tmux session name, and the
191
+ doctor result.