@codyswann/lisa 2.189.13 → 2.189.15

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 (160) hide show
  1. package/eslint-plugin-phaser/rules/require-shutdown-cleanup.js +20 -1
  2. package/package.json +1 -1
  3. package/plugins/lisa/.claude-plugin/plugin.json +1 -1
  4. package/plugins/lisa/.codex-plugin/plugin.json +1 -1
  5. package/plugins/lisa/rules/reference/base-rules.md +1 -1
  6. package/plugins/lisa/rules/reference/intent-routing.md +1 -1
  7. package/plugins/lisa/skills/lisa-analyze-claude-remote/SKILL.md +10 -2
  8. package/plugins/lisa/skills/lisa-debrief/SKILL.md +3 -3
  9. package/plugins/lisa/skills/lisa-implement/SKILL.md +1 -1
  10. package/plugins/lisa/skills/lisa-intake/SKILL.md +2 -2
  11. package/plugins/lisa/skills/lisa-monitor/SKILL.md +2 -2
  12. package/plugins/lisa/skills/lisa-plan/SKILL.md +2 -2
  13. package/plugins/lisa/skills/lisa-repair-intake/SKILL.md +7 -3
  14. package/plugins/lisa/skills/lisa-research/SKILL.md +2 -2
  15. package/plugins/lisa/skills/lisa-tracker-add-journey/SKILL.md +2 -1
  16. package/plugins/lisa/skills/lisa-tracker-build-intake/SKILL.md +2 -1
  17. package/plugins/lisa/skills/lisa-tracker-create/SKILL.md +2 -1
  18. package/plugins/lisa/skills/lisa-tracker-evidence/SKILL.md +5 -4
  19. package/plugins/lisa/skills/lisa-tracker-journey/SKILL.md +2 -1
  20. package/plugins/lisa/skills/lisa-tracker-read/SKILL.md +2 -1
  21. package/plugins/lisa/skills/lisa-tracker-sync/SKILL.md +2 -1
  22. package/plugins/lisa/skills/lisa-tracker-validate/SKILL.md +3 -2
  23. package/plugins/lisa/skills/lisa-tracker-verify/SKILL.md +2 -1
  24. package/plugins/lisa/skills/lisa-tracker-write/SKILL.md +3 -2
  25. package/plugins/lisa/skills/lisa-validate-tracker-mapping/SKILL.md +12 -5
  26. package/plugins/lisa/skills/lisa-verify/SKILL.md +2 -2
  27. package/plugins/lisa-agy/plugin.json +1 -1
  28. package/plugins/lisa-agy/skills/lisa-analyze-claude-remote/SKILL.md +10 -2
  29. package/plugins/lisa-agy/skills/lisa-debrief/SKILL.md +3 -3
  30. package/plugins/lisa-agy/skills/lisa-implement/SKILL.md +1 -1
  31. package/plugins/lisa-agy/skills/lisa-intake/SKILL.md +2 -2
  32. package/plugins/lisa-agy/skills/lisa-monitor/SKILL.md +2 -2
  33. package/plugins/lisa-agy/skills/lisa-plan/SKILL.md +2 -2
  34. package/plugins/lisa-agy/skills/lisa-repair-intake/SKILL.md +7 -3
  35. package/plugins/lisa-agy/skills/lisa-research/SKILL.md +2 -2
  36. package/plugins/lisa-agy/skills/lisa-tracker-add-journey/SKILL.md +2 -1
  37. package/plugins/lisa-agy/skills/lisa-tracker-build-intake/SKILL.md +2 -1
  38. package/plugins/lisa-agy/skills/lisa-tracker-create/SKILL.md +2 -1
  39. package/plugins/lisa-agy/skills/lisa-tracker-evidence/SKILL.md +5 -4
  40. package/plugins/lisa-agy/skills/lisa-tracker-journey/SKILL.md +2 -1
  41. package/plugins/lisa-agy/skills/lisa-tracker-read/SKILL.md +2 -1
  42. package/plugins/lisa-agy/skills/lisa-tracker-sync/SKILL.md +2 -1
  43. package/plugins/lisa-agy/skills/lisa-tracker-validate/SKILL.md +3 -2
  44. package/plugins/lisa-agy/skills/lisa-tracker-verify/SKILL.md +2 -1
  45. package/plugins/lisa-agy/skills/lisa-tracker-write/SKILL.md +3 -2
  46. package/plugins/lisa-agy/skills/lisa-validate-tracker-mapping/SKILL.md +12 -5
  47. package/plugins/lisa-agy/skills/lisa-verify/SKILL.md +2 -2
  48. package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
  49. package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
  50. package/plugins/lisa-cdk-agy/plugin.json +1 -1
  51. package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +1 -1
  52. package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +1 -1
  53. package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
  54. package/plugins/lisa-copilot/rules/reference/base-rules.md +1 -1
  55. package/plugins/lisa-copilot/rules/reference/intent-routing.md +1 -1
  56. package/plugins/lisa-copilot/skills/lisa-analyze-claude-remote/SKILL.md +10 -2
  57. package/plugins/lisa-copilot/skills/lisa-debrief/SKILL.md +3 -3
  58. package/plugins/lisa-copilot/skills/lisa-implement/SKILL.md +1 -1
  59. package/plugins/lisa-copilot/skills/lisa-intake/SKILL.md +2 -2
  60. package/plugins/lisa-copilot/skills/lisa-monitor/SKILL.md +2 -2
  61. package/plugins/lisa-copilot/skills/lisa-plan/SKILL.md +2 -2
  62. package/plugins/lisa-copilot/skills/lisa-repair-intake/SKILL.md +7 -3
  63. package/plugins/lisa-copilot/skills/lisa-research/SKILL.md +2 -2
  64. package/plugins/lisa-copilot/skills/lisa-tracker-add-journey/SKILL.md +2 -1
  65. package/plugins/lisa-copilot/skills/lisa-tracker-build-intake/SKILL.md +2 -1
  66. package/plugins/lisa-copilot/skills/lisa-tracker-create/SKILL.md +2 -1
  67. package/plugins/lisa-copilot/skills/lisa-tracker-evidence/SKILL.md +5 -4
  68. package/plugins/lisa-copilot/skills/lisa-tracker-journey/SKILL.md +2 -1
  69. package/plugins/lisa-copilot/skills/lisa-tracker-read/SKILL.md +2 -1
  70. package/plugins/lisa-copilot/skills/lisa-tracker-sync/SKILL.md +2 -1
  71. package/plugins/lisa-copilot/skills/lisa-tracker-validate/SKILL.md +3 -2
  72. package/plugins/lisa-copilot/skills/lisa-tracker-verify/SKILL.md +2 -1
  73. package/plugins/lisa-copilot/skills/lisa-tracker-write/SKILL.md +3 -2
  74. package/plugins/lisa-copilot/skills/lisa-validate-tracker-mapping/SKILL.md +12 -5
  75. package/plugins/lisa-copilot/skills/lisa-verify/SKILL.md +2 -2
  76. package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
  77. package/plugins/lisa-cursor/rules/base-rules-reference.mdc +1 -1
  78. package/plugins/lisa-cursor/rules/intent-routing-reference.mdc +1 -1
  79. package/plugins/lisa-cursor/skills/lisa-analyze-claude-remote/SKILL.md +10 -2
  80. package/plugins/lisa-cursor/skills/lisa-debrief/SKILL.md +3 -3
  81. package/plugins/lisa-cursor/skills/lisa-implement/SKILL.md +1 -1
  82. package/plugins/lisa-cursor/skills/lisa-intake/SKILL.md +2 -2
  83. package/plugins/lisa-cursor/skills/lisa-monitor/SKILL.md +2 -2
  84. package/plugins/lisa-cursor/skills/lisa-plan/SKILL.md +2 -2
  85. package/plugins/lisa-cursor/skills/lisa-repair-intake/SKILL.md +7 -3
  86. package/plugins/lisa-cursor/skills/lisa-research/SKILL.md +2 -2
  87. package/plugins/lisa-cursor/skills/lisa-tracker-add-journey/SKILL.md +2 -1
  88. package/plugins/lisa-cursor/skills/lisa-tracker-build-intake/SKILL.md +2 -1
  89. package/plugins/lisa-cursor/skills/lisa-tracker-create/SKILL.md +2 -1
  90. package/plugins/lisa-cursor/skills/lisa-tracker-evidence/SKILL.md +5 -4
  91. package/plugins/lisa-cursor/skills/lisa-tracker-journey/SKILL.md +2 -1
  92. package/plugins/lisa-cursor/skills/lisa-tracker-read/SKILL.md +2 -1
  93. package/plugins/lisa-cursor/skills/lisa-tracker-sync/SKILL.md +2 -1
  94. package/plugins/lisa-cursor/skills/lisa-tracker-validate/SKILL.md +3 -2
  95. package/plugins/lisa-cursor/skills/lisa-tracker-verify/SKILL.md +2 -1
  96. package/plugins/lisa-cursor/skills/lisa-tracker-write/SKILL.md +3 -2
  97. package/plugins/lisa-cursor/skills/lisa-validate-tracker-mapping/SKILL.md +12 -5
  98. package/plugins/lisa-cursor/skills/lisa-verify/SKILL.md +2 -2
  99. package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
  100. package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
  101. package/plugins/lisa-expo-agy/plugin.json +1 -1
  102. package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
  103. package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
  104. package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
  105. package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
  106. package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
  107. package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +1 -1
  108. package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
  109. package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
  110. package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
  111. package/plugins/lisa-nestjs-agy/plugin.json +1 -1
  112. package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +1 -1
  113. package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +1 -1
  114. package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
  115. package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
  116. package/plugins/lisa-openclaw-agy/plugin.json +1 -1
  117. package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +1 -1
  118. package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +1 -1
  119. package/plugins/lisa-phaser/.claude-plugin/plugin.json +1 -1
  120. package/plugins/lisa-phaser/.codex-plugin/plugin.json +1 -1
  121. package/plugins/lisa-phaser-agy/plugin.json +1 -1
  122. package/plugins/lisa-phaser-copilot/.claude-plugin/plugin.json +1 -1
  123. package/plugins/lisa-phaser-cursor/.claude-plugin/plugin.json +1 -1
  124. package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
  125. package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
  126. package/plugins/lisa-rails-agy/plugin.json +1 -1
  127. package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +1 -1
  128. package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +1 -1
  129. package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
  130. package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
  131. package/plugins/lisa-typescript-agy/plugin.json +1 -1
  132. package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +1 -1
  133. package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +1 -1
  134. package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
  135. package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
  136. package/plugins/lisa-wiki-agy/plugin.json +1 -1
  137. package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
  138. package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
  139. package/plugins/src/base/rules/reference/base-rules.md +1 -1
  140. package/plugins/src/base/rules/reference/intent-routing.md +1 -1
  141. package/plugins/src/base/skills/lisa-analyze-claude-remote/SKILL.md +10 -2
  142. package/plugins/src/base/skills/lisa-debrief/SKILL.md +3 -3
  143. package/plugins/src/base/skills/lisa-implement/SKILL.md +1 -1
  144. package/plugins/src/base/skills/lisa-intake/SKILL.md +2 -2
  145. package/plugins/src/base/skills/lisa-monitor/SKILL.md +2 -2
  146. package/plugins/src/base/skills/lisa-plan/SKILL.md +2 -2
  147. package/plugins/src/base/skills/lisa-repair-intake/SKILL.md +7 -3
  148. package/plugins/src/base/skills/lisa-research/SKILL.md +2 -2
  149. package/plugins/src/base/skills/lisa-tracker-add-journey/SKILL.md +2 -1
  150. package/plugins/src/base/skills/lisa-tracker-build-intake/SKILL.md +2 -1
  151. package/plugins/src/base/skills/lisa-tracker-create/SKILL.md +2 -1
  152. package/plugins/src/base/skills/lisa-tracker-evidence/SKILL.md +5 -4
  153. package/plugins/src/base/skills/lisa-tracker-journey/SKILL.md +2 -1
  154. package/plugins/src/base/skills/lisa-tracker-read/SKILL.md +2 -1
  155. package/plugins/src/base/skills/lisa-tracker-sync/SKILL.md +2 -1
  156. package/plugins/src/base/skills/lisa-tracker-validate/SKILL.md +3 -2
  157. package/plugins/src/base/skills/lisa-tracker-verify/SKILL.md +2 -1
  158. package/plugins/src/base/skills/lisa-tracker-write/SKILL.md +3 -2
  159. package/plugins/src/base/skills/lisa-validate-tracker-mapping/SKILL.md +12 -5
  160. package/plugins/src/base/skills/lisa-verify/SKILL.md +2 -2
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: lisa-debrief
3
3
  description: "Run the Debrief flow over a shipped initiative. Input: a PRD URL (Notion / Confluence / Linear / GitHub Issue / file), a JIRA epic key, or a GitHub epic issue URL. Output: a triage-ready learnings document covering every work item in the initiative — edge cases, gotchas, process friction, tooling gaps, convention drift — each with structured evidence and a human-disposition field. Persistence is deferred to lisa-debrief-apply."
4
- allowed-tools: ["Skill", "ToolSearch", "TeamCreate", "Bash", "Read", "Glob", "Grep"]
4
+ allowed-tools: ["Skill", "ToolSearch", "Bash", "Read", "Glob", "Grep", "TeamCreate"]
5
5
  ---
6
6
 
7
7
  # Debrief: $ARGUMENTS
@@ -14,13 +14,13 @@ If you are NOT already operating inside an agent team (no prior successful team-
14
14
 
15
15
  Use the team tool for the current runtime:
16
16
 
17
- - Claude: use `TeamCreate`. If `TeamCreate` has not been loaded yet, first use `ToolSearch` with `query: "select:TeamCreate"` to load its schema.
17
+ - Claude Code >= 2.1.178: there is no `TeamCreate` tool; the team forms automatically when you spawn the first teammate with `Agent`. That first spawn should be the bounded specialist needed to start this flow. On older Claude Code that still exposes `TeamCreate`, the explicit team-create path is also acceptable.
18
18
  - Codex: do not call `TeamCreate`; Codex does not expose that Claude tool. Use `tool_search` with a query like `multi-agent tools` to load `multi_agent_v1`, then use `multi_agent_v1.spawn_agent` for teammate delegation. Treat the first successful `spawn_agent` call as establishing team orchestration.
19
19
  - Other runtimes: use the current runtime's tool-discovery mechanism to discover and call the appropriate multi-agent/team tool.
20
20
 
21
21
  If no team creation or subagent delegation tool is available, explicitly state that team orchestration is unavailable in this runtime, continue as the lead agent, and preserve the workflow's review, verification, and task-tracking obligations locally.
22
22
 
23
- Until the team is established, the first Codex teammate has been spawned, or the no-team fallback has been declared, do NOT call any of: `Agent`, `TaskCreate`, `Skill`, MCP tools (Atlassian / Linear / GitHub / Notion), `Read`, `Write`, `Edit`, `Bash`, `Grep`, `Glob`. Resolving the work-item set, fetching tickets, walking PRs — all of those are tasks for the team you are about to create, not for the lead session before orchestration exists.
23
+ Until the team is established, the first Codex teammate has been spawned, or the no-team fallback has been declared, do NOT call any of: `TaskCreate`, `Skill`, MCP tools (Atlassian / Linear / GitHub / Notion), `Read`, `Write`, `Edit`, `Bash`, `Grep`, `Glob`. The initial Claude `Agent` spawn described above is the only pre-team exception because it establishes the team. Resolving the work-item set, fetching tickets, walking PRs — all of those are tasks for the team you are about to create, not for the lead session before orchestration exists.
24
24
 
25
25
  If you ARE already inside an agent team (e.g., a teammate invoked this skill via the Skill tool), do NOT create a second team — many harnesses reject double-creates — and do NOT collapse the nested flow into a single inline worker. A nested team-first flow must still bring in the specialists it requires by adding them to the existing team, not by doing the work itself:
26
26
 
@@ -19,7 +19,7 @@ Use the team tool for the current runtime:
19
19
 
20
20
  If no team creation or subagent delegation tool is available, explicitly state that team orchestration is unavailable in this runtime, continue as the lead agent, and preserve the workflow's review, verification, and task-tracking obligations locally.
21
21
 
22
- Your only permitted first move is establishing orchestration by spawning the bounded **input-resolver** teammate (Claude: `Agent`; Codex: `multi_agent_v1.spawn_agent`), or declaring the no-team fallback. Apart from that single spawn, do NOT call any of: a second `Agent`/`spawn_agent` for any worker, `TaskCreate`, `Skill` (including `lisa-tracker-read`, `lisa-jira-read-ticket`, `lisa-github-read-issue`), MCP tools (Atlassian / Linear / GitHub / Notion), `Read`, `Write`, `Edit`, `Bash`, `Grep`, `Glob` — until the input-resolver has returned and the Roster Decision has been recorded. Reading the ticket, exploring the code, fetching context — every one of those is a task for the team, not for the lead session before orchestration exists. Doing them inline, or spawning a single worker that does the whole build, is the exact bypass path that produces a 1-agent ad-hoc fix instead of a real team flow.
22
+ Your only permitted first move is establishing orchestration by spawning the bounded **input-resolver** teammate (Claude: `Agent`; Codex: `multi_agent_v1.spawn_agent`), or declaring the no-team fallback. The initial Claude `Agent` spawn is the only pre-team exception, and for Implement it must be the bounded input-resolver rather than a builder. Apart from that single spawn, do NOT call any of: a second `Agent`/`spawn_agent` for any worker, `TaskCreate`, `Skill` (including `lisa-tracker-read`, `lisa-jira-read-ticket`, `lisa-github-read-issue`), MCP tools (Atlassian / Linear / GitHub / Notion), `Read`, `Write`, `Edit`, `Bash`, `Grep`, `Glob` — until the input-resolver has returned and the Roster Decision has been recorded. Reading the ticket, exploring the code, fetching context — every one of those is a task for the team, not for the lead session before orchestration exists. Doing them inline, or spawning a single worker that does the whole build, is the exact bypass path that produces a 1-agent ad-hoc fix instead of a real team flow.
23
23
 
24
24
  If you ARE already inside an agent team (e.g., a teammate invoked this skill via the Skill tool, or `lisa-intake` is running this skill per Ready ticket), do NOT create a second team — many harnesses reject double-creates — and do NOT collapse the nested flow into a single inline worker. A nested team-first flow must still bring in the specialists it requires by adding them to the existing team, not by doing the work itself:
25
25
 
@@ -43,13 +43,13 @@ If you are NOT already operating inside an agent team (no prior successful team-
43
43
 
44
44
  Use the team tool for the current runtime:
45
45
 
46
- - Claude: use `TeamCreate`. If `TeamCreate` has not been loaded yet, first use `ToolSearch` with `query: "select:TeamCreate"` to load its schema.
46
+ - Claude Code >= 2.1.178: there is no `TeamCreate` tool; the team forms automatically when you spawn the first teammate with `Agent`. That first spawn should be the bounded specialist needed to start this flow. On older Claude Code that still exposes `TeamCreate`, the explicit team-create path is also acceptable.
47
47
  - Codex: do not call `TeamCreate`; Codex does not expose that Claude tool. Use `tool_search` with a query like `multi-agent tools` to load `multi_agent_v1`, then use `multi_agent_v1.spawn_agent` for teammate delegation. Treat the first successful `spawn_agent` call as establishing team orchestration.
48
48
  - Other runtimes: use the current runtime's tool-discovery mechanism to discover and call the appropriate multi-agent/team tool.
49
49
 
50
50
  If no team creation or subagent delegation tool is available, explicitly state that team orchestration is unavailable in this runtime, continue as the lead agent, and preserve the workflow's review, verification, and task-tracking obligations locally.
51
51
 
52
- Until the team is established, the first Codex teammate has been spawned, or the no-team fallback has been declared, do NOT call any of: `Agent`, `TaskCreate`, `Skill`, MCP tools (Atlassian / Linear / GitHub / Notion), `Read`, `Write`, `Edit`, `Bash`, `Grep`, `Glob`. Scanning the queue, claiming items, dispatching per-item flows — all of those are tasks for the team you are about to create, not for the lead session before orchestration exists.
52
+ Until the team is established, the first Codex teammate has been spawned, or the no-team fallback has been declared, do NOT call any of: `TaskCreate`, `Skill`, MCP tools (Atlassian / Linear / GitHub / Notion), `Read`, `Write`, `Edit`, `Bash`, `Grep`, `Glob`. The initial Claude `Agent` spawn described above is the only pre-team exception because it establishes the team. Scanning the queue, claiming items, dispatching per-item flows — all of those are tasks for the team you are about to create, not for the lead session before orchestration exists.
53
53
 
54
54
  If you ARE already inside an agent team (e.g., a teammate invoked this skill via the Skill tool), do NOT create a second team — many harnesses reject double-creates — and do NOT collapse the nested flow into a single inline worker. A nested team-first flow must still bring in the specialists it requires by adding them to the existing team, not by doing the work itself:
55
55
 
@@ -21,13 +21,13 @@ If you are NOT already operating inside an agent team (no prior successful team-
21
21
 
22
22
  Use the team tool for the current runtime:
23
23
 
24
- - Claude: use `TeamCreate`. If `TeamCreate` has not been loaded yet, first use `ToolSearch` with `query: "select:TeamCreate"` to load its schema.
24
+ - Claude Code >= 2.1.178: there is no `TeamCreate` tool; the team forms automatically when you spawn the first teammate with `Agent`. That first spawn should be the bounded specialist needed to start this flow. On older Claude Code that still exposes `TeamCreate`, the explicit team-create path is also acceptable.
25
25
  - Codex: do not call `TeamCreate`; Codex does not expose that Claude tool. Use `tool_search` with a query like `multi-agent tools` to load `multi_agent_v1`, then use `multi_agent_v1.spawn_agent` for teammate delegation. Treat the first successful `spawn_agent` call as establishing team orchestration.
26
26
  - Other runtimes: use the current runtime's tool-discovery mechanism to discover and call the appropriate multi-agent/team tool.
27
27
 
28
28
  If no team creation or subagent delegation tool is available, explicitly state that team orchestration is unavailable in this runtime, continue as the lead agent, and preserve the workflow's review, verification, and task-tracking obligations locally.
29
29
 
30
- Until the team is established, the first Codex teammate has been spawned, or the no-team fallback has been declared, do NOT call any of: `Agent`, `TaskCreate`, `Skill`, MCP tools (Atlassian / Linear / GitHub / Notion / Sentry), `Read`, `Write`, `Edit`, `Bash`, `Grep`, `Glob`. Hitting health endpoints, pulling logs, querying Sentry — all of those are tasks for the team you are about to create, not for the lead session before orchestration exists.
30
+ Until the team is established, the first Codex teammate has been spawned, or the no-team fallback has been declared, do NOT call any of: `TaskCreate`, `Skill`, MCP tools (Atlassian / Linear / GitHub / Notion / Sentry), `Read`, `Write`, `Edit`, `Bash`, `Grep`, `Glob`. The initial Claude `Agent` spawn described above is the only pre-team exception because it establishes the team. Hitting health endpoints, pulling logs, querying Sentry — all of those are tasks for the team you are about to create, not for the lead session before orchestration exists.
31
31
 
32
32
  If you ARE already inside an agent team (e.g., a teammate invoked this skill via the Skill tool), do NOT create a second team — many harnesses reject double-creates — and do NOT collapse the nested flow into a single inline worker. A nested team-first flow must still bring in the specialists it requires by adding them to the existing team, not by doing the work itself:
33
33
 
@@ -14,13 +14,13 @@ If you are NOT already operating inside an agent team (no prior successful team-
14
14
 
15
15
  Use the team tool for the current runtime:
16
16
 
17
- - Claude: use `TeamCreate`. If `TeamCreate` has not been loaded yet, first use `ToolSearch` with `query: "select:TeamCreate"` to load its schema.
17
+ - Claude Code >= 2.1.178: there is no `TeamCreate` tool; the team forms automatically when you spawn the first teammate with `Agent`. That first spawn should be the bounded specialist needed to start this flow. On older Claude Code that still exposes `TeamCreate`, the explicit team-create path is also acceptable.
18
18
  - Codex: do not call `TeamCreate`; Codex does not expose that Claude tool. Use `tool_search` with a query like `multi-agent tools` to load `multi_agent_v1`, then use `multi_agent_v1.spawn_agent` for teammate delegation. Treat the first successful `spawn_agent` call as establishing team orchestration.
19
19
  - Other runtimes: use the current runtime's tool-discovery mechanism to discover and call the appropriate multi-agent/team tool.
20
20
 
21
21
  If no team creation or subagent delegation tool is available, explicitly state that team orchestration is unavailable in this runtime, continue as the lead agent, and preserve the workflow's review, verification, and task-tracking obligations locally.
22
22
 
23
- Until the team is established, the first Codex teammate has been spawned, or the no-team fallback has been declared, do NOT call any of: `Agent`, `TaskCreate`, `Skill`, MCP tools (Atlassian / Linear / GitHub / Notion), `Read`, `Write`, `Edit`, `Bash`, `Grep`, `Glob`. Reading the PRD, exploring the code, fetching context — all of those are tasks for the team you are about to create, not for the lead session before orchestration exists.
23
+ Until the team is established, the first Codex teammate has been spawned, or the no-team fallback has been declared, do NOT call any of: `TaskCreate`, `Skill`, MCP tools (Atlassian / Linear / GitHub / Notion), `Read`, `Write`, `Edit`, `Bash`, `Grep`, `Glob`. The initial Claude `Agent` spawn described above is the only pre-team exception because it establishes the team. Reading the PRD, exploring the code, fetching context — all of those are tasks for the team you are about to create, not for the lead session before orchestration exists.
24
24
 
25
25
  If you ARE already inside an agent team (e.g., a teammate invoked this skill via the Skill tool), do NOT create a second team — many harnesses reject double-creates — and do NOT collapse the nested flow into a single inline worker. A nested team-first flow must still bring in the specialists it requires by adding them to the existing team, not by doing the work itself:
26
26
 
@@ -120,8 +120,10 @@ thing you do is establish team orchestration.
120
120
 
121
121
  Use the team tool for the current runtime:
122
122
 
123
- - Claude: use `TeamCreate`. If `TeamCreate` has not been loaded yet, first use `ToolSearch` with
124
- `query: "select:TeamCreate"` to load its schema.
123
+ - Claude Code >= 2.1.178: there is no `TeamCreate` tool; the team forms automatically when you spawn
124
+ the first teammate with `Agent`. That first spawn should be the bounded specialist needed to start
125
+ this flow. On older Claude Code that still exposes `TeamCreate`, the explicit team-create path is
126
+ also acceptable.
125
127
  - Codex: do not call `TeamCreate`; Codex does not expose that Claude tool. Use `tool_search`
126
128
  with a query like `multi-agent tools` to load `multi_agent_v1`, then use
127
129
  `multi_agent_v1.spawn_agent` for teammate delegation. Treat the first successful `spawn_agent`
@@ -134,8 +136,10 @@ orchestration is unavailable in this runtime, continue as the lead agent, and pr
134
136
  workflow's review, verification, and task-tracking obligations locally.
135
137
 
136
138
  Until the team is established, the first Codex teammate has been spawned, or the no-team
137
- fallback has been declared, do NOT call any of: `Agent`, `TaskCreate`, `Skill`, MCP tools
139
+ fallback has been declared, do NOT call any of: `TaskCreate`, `Skill`, MCP tools
138
140
  (Atlassian / Linear / GitHub / Notion), `Read`, `Write`, `Edit`, `Bash`, `Grep`, `Glob`.
141
+ The initial Claude `Agent` spawn described above is the only pre-team exception because it
142
+ establishes the team.
139
143
  Scanning the queue, evaluating staleness, and dispatching per-item repairs — all of those are
140
144
  tasks for the team you are about to create, not for the lead session before orchestration
141
145
  exists.
@@ -29,13 +29,13 @@ If you are NOT already operating inside an agent team (no prior successful team-
29
29
 
30
30
  Use the team tool for the current runtime:
31
31
 
32
- - Claude: use `TeamCreate`. If `TeamCreate` has not been loaded yet, first use `ToolSearch` with `query: "select:TeamCreate"` to load its schema.
32
+ - Claude Code >= 2.1.178: there is no `TeamCreate` tool; the team forms automatically when you spawn the first teammate with `Agent`. That first spawn should be the bounded specialist needed to start this flow. On older Claude Code that still exposes `TeamCreate`, the explicit team-create path is also acceptable.
33
33
  - Codex: do not call `TeamCreate`; Codex does not expose that Claude tool. Use `tool_search` with a query like `multi-agent tools` to load `multi_agent_v1`, then use `multi_agent_v1.spawn_agent` for teammate delegation. Treat the first successful `spawn_agent` call as establishing team orchestration.
34
34
  - Other runtimes: use the current runtime's tool-discovery mechanism to discover and call the appropriate multi-agent/team tool.
35
35
 
36
36
  If no team creation or subagent delegation tool is available, explicitly state that team orchestration is unavailable in this runtime, continue as the lead agent, and preserve the workflow's review, verification, and task-tracking obligations locally.
37
37
 
38
- Until the team is established, the first Codex teammate has been spawned, or the no-team fallback has been declared, do NOT call any of: `Agent`, `TaskCreate`, `Skill`, MCP tools (Atlassian / Linear / GitHub / Notion), `Read`, `Write`, `Edit`, `Bash`, `Grep`, `Glob`. Gathering context inline as the lead is the exact bypass path that produces ad-hoc work instead of a real team flow.
38
+ Until the team is established, the first Codex teammate has been spawned, or the no-team fallback has been declared, do NOT call any of: `TaskCreate`, `Skill`, MCP tools (Atlassian / Linear / GitHub / Notion), `Read`, `Write`, `Edit`, `Bash`, `Grep`, `Glob`. The initial Claude `Agent` spawn described above is the only pre-team exception because it establishes the team. Gathering context inline as the lead is the exact bypass path that produces ad-hoc work instead of a real team flow.
39
39
 
40
40
  If you ARE already inside an agent team (e.g., a teammate invoked this skill via the Skill tool), do NOT create a second team — many harnesses reject double-creates — and do NOT collapse the nested flow into a single inline worker. A nested team-first flow must still bring in the specialists it requires by adding them to the existing team, not by doing the work itself:
41
41
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: lisa-tracker-add-journey
3
- description: "Vendor-neutral wrapper for appending a Validation Journey section to an existing ticket/issue. Reads `tracker` from .lisa.config.json (default: jira) and dispatches to lisa-jira-add-journey, lisa-github-add-journey, or lisa-linear-add-journey."
3
+ description: "Vendor-neutral wrapper for appending a Validation Journey section to an existing ticket/issue. Reads the required `tracker` from .lisa.config.json and dispatches to lisa-jira-add-journey, lisa-github-add-journey, or lisa-linear-add-journey."
4
4
  allowed-tools: ["Skill", "Bash", "Read"]
5
5
  ---
6
6
 
@@ -14,6 +14,7 @@ See the `config-resolution` rule for configuration and dispatch table.
14
14
 
15
15
  1. Resolve tracker config (same logic as `lisa-tracker-write`).
16
16
  2. Dispatch:
17
+ - Missing / empty → stop and report `"No tracker configured in .lisa.config.json. Run /lisa:setup:jira, /lisa:setup:github, or /lisa:setup:linear first."`
17
18
  - `jira` → invoke `lisa-jira-add-journey` with `$ARGUMENTS` verbatim. Arg: a JIRA ticket key.
18
19
  - `github` → invoke `lisa-github-add-journey` with `$ARGUMENTS` verbatim. Arg: `org/repo#<number>` or a GitHub issue URL.
19
20
  - `linear` → invoke `lisa-linear-add-journey` with `$ARGUMENTS` verbatim. Arg: a Linear Issue identifier (e.g., `ENG-123`).
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: lisa-tracker-build-intake
3
- description: "Vendor-neutral wrapper for the build-queue scanner. Reads `tracker` from .lisa.config.json (default: jira) and dispatches to lisa-jira-build-intake (JQL/project-key queue), lisa-github-build-intake (GitHub repo queue keyed off the `status:ready` label), or lisa-linear-build-intake (Linear team queue keyed off the `status:ready` label). Every vendor scanner processes at most one eligible item per cycle and enforces the claim-time arm of the `leaf-only-lifecycle` rule — dispatch leaf work units only; move or safe-block a container with open child work (or a childless Epic) that carries a stale build-ready role according to the vendor's lifecycle semantics. Counterpart to lisa-intake's PRD-side dispatchers."
3
+ description: "Vendor-neutral wrapper for the build-queue scanner. Reads the required `tracker` from .lisa.config.json and dispatches to lisa-jira-build-intake (JQL/project-key queue), lisa-github-build-intake (GitHub repo queue keyed off the `status:ready` label), or lisa-linear-build-intake (Linear team queue keyed off the `status:ready` label). Every vendor scanner processes at most one eligible item per cycle and enforces the claim-time arm of the `leaf-only-lifecycle` rule — dispatch leaf work units only; move or safe-block a container with open child work (or a childless Epic) that carries a stale build-ready role according to the vendor's lifecycle semantics. Counterpart to lisa-intake's PRD-side dispatchers."
4
4
  allowed-tools: ["Skill", "Bash", "Read"]
5
5
  ---
6
6
 
@@ -18,6 +18,7 @@ They also forward the narrow duplicate terminal exception from `ticket-triage`:
18
18
 
19
19
  1. Resolve tracker config (same logic as `lisa-tracker-write`).
20
20
  2. Dispatch:
21
+ - Missing / empty → stop and report `"No tracker configured in .lisa.config.json. Run /lisa:setup:jira, /lisa:setup:github, or /lisa:setup:linear first."`
21
22
  - `jira` → invoke `lisa-jira-build-intake` with `$ARGUMENTS` verbatim. Arg shape: a JIRA project key (e.g., `SE`) or a JQL filter.
22
23
  - `github` → invoke `lisa-github-build-intake` with `$ARGUMENTS` verbatim. Arg shape: a GitHub `org/repo` token or a full GitHub repo URL.
23
24
  - `linear` → invoke `lisa-linear-build-intake` with `$ARGUMENTS` verbatim. Arg shape: a Linear team key (e.g., `ENG`) or the literal token `linear` (which falls back to `linear.teamKey`).
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: lisa-tracker-create
3
- description: "Vendor-neutral wrapper for creating tickets/issues from code files or descriptions. Reads `tracker` from .lisa.config.json (default: jira) and dispatches to lisa-jira-create, lisa-github-create, or lisa-linear-create. Plans hierarchy structure (epic / story / sub-task), then delegates each individual write through the tracker-write shim."
3
+ description: "Vendor-neutral wrapper for creating tickets/issues from code files or descriptions. Reads the required `tracker` from .lisa.config.json and dispatches to lisa-jira-create, lisa-github-create, or lisa-linear-create. Plans hierarchy structure (epic / story / sub-task), then delegates each individual write through the tracker-write shim."
4
4
  allowed-tools: ["Skill", "Bash", "Read"]
5
5
  ---
6
6
 
@@ -14,6 +14,7 @@ See the `config-resolution` rule for configuration and dispatch table.
14
14
 
15
15
  1. Resolve tracker config (same logic as `lisa-tracker-write`).
16
16
  2. Dispatch:
17
+ - Missing / empty → stop and report `"No tracker configured in .lisa.config.json. Run /lisa:setup:jira, /lisa:setup:github, or /lisa:setup:linear first."`
17
18
  - `jira` → invoke `lisa-jira-create` with `$ARGUMENTS` verbatim.
18
19
  - `github` → invoke `lisa-github-create` with `$ARGUMENTS` verbatim.
19
20
  - `linear` → invoke `lisa-linear-create` with `$ARGUMENTS` verbatim.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: lisa-tracker-evidence
3
- description: "Vendor-neutral wrapper for posting verification evidence. Reads `tracker` from .lisa.config.json (default: jira) and dispatches to lisa-jira-evidence, lisa-github-evidence, or lisa-linear-evidence. Uploads evidence to the GitHub `pr-assets` release, updates the PR description, posts a comment on the originating ticket/issue, and leaves workflow transitions to the tracker-specific lifecycle owner."
3
+ description: "Vendor-neutral wrapper for posting verification evidence. Reads the required `tracker` from .lisa.config.json and dispatches to lisa-jira-evidence, lisa-github-evidence, or lisa-linear-evidence. Uploads evidence to the GitHub `pr-assets` release, updates the PR description, posts a comment on the originating ticket/issue, and leaves workflow transitions to the tracker-specific lifecycle owner."
4
4
  allowed-tools: ["Skill", "Bash", "Read"]
5
5
  ---
6
6
 
@@ -13,13 +13,14 @@ See the `config-resolution` rule for configuration and dispatch table.
13
13
  ## Workflow
14
14
 
15
15
  1. Resolve tracker config (same logic as `lisa-tracker-write`).
16
- 2. Before dispatching, update the generated evidence artifact through `lisa-usage-accounting` so the comment body / PR evidence section carries a direct `lisa-verify` usage entry in the canonical `## Lisa Usage` section. If the originating work item's parentage or child refs are already known, prefer `record_and_rollup` so ancestor totals refresh in the same write; otherwise still write the direct entry, and if trustworthy runtime usage is unavailable, write `source: unavailable` with nullable token/cost fields instead of skipping the row.
17
- 3. Dispatch:
16
+ 2. Missing / empty stop and report `"No tracker configured in .lisa.config.json. Run /lisa:setup:jira, /lisa:setup:github, or /lisa:setup:linear first."`
17
+ 3. Before dispatching, update the generated evidence artifact through `lisa-usage-accounting` so the comment body / PR evidence section carries a direct `lisa-verify` usage entry in the canonical `## Lisa Usage` section. If the originating work item's parentage or child refs are already known, prefer `record_and_rollup` so ancestor totals refresh in the same write; otherwise still write the direct entry, and if trustworthy runtime usage is unavailable, write `source: unavailable` with nullable token/cost fields instead of skipping the row.
18
+ 4. Dispatch:
18
19
  - `jira` → invoke `lisa-jira-evidence` with `$ARGUMENTS` verbatim. Arg shape: `<TICKET_ID> <EVIDENCE_DIR> <PR_NUMBER>`.
19
20
  - `github` → invoke `lisa-github-evidence` with `$ARGUMENTS` verbatim. Arg shape: `<ISSUE_REF> <EVIDENCE_DIR> <PR_NUMBER>` where `ISSUE_REF` is `org/repo#<number>` or a GitHub issue URL.
20
21
  - `linear` → invoke `lisa-linear-evidence` with `$ARGUMENTS` verbatim. Arg shape: `<IDENTIFIER> <EVIDENCE_DIR>` where `IDENTIFIER` is a Linear Issue identifier (e.g., `ENG-123`).
21
22
  - Anything else → stop and report `"Unknown tracker '<value>' in .lisa.config.json. Expected 'jira', 'github', or 'linear'."`
22
- 4. Pass through the vendor skill's output.
23
+ 5. Pass through the vendor skill's output.
23
24
 
24
25
  ## Rules
25
26
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: lisa-tracker-journey
3
- description: "Vendor-neutral wrapper for executing a ticket/issue's Validation Journey end-to-end. Reads `tracker` from .lisa.config.json (default: jira) and dispatches to lisa-jira-journey, lisa-github-journey, or lisa-linear-journey. Parses the journey, satisfies prerequisites, executes the steps, captures evidence at each marker, and posts results via tracker-evidence."
3
+ description: "Vendor-neutral wrapper for executing a ticket/issue's Validation Journey end-to-end. Reads the required `tracker` from .lisa.config.json and dispatches to lisa-jira-journey, lisa-github-journey, or lisa-linear-journey. Parses the journey, satisfies prerequisites, executes the steps, captures evidence at each marker, and posts results via tracker-evidence."
4
4
  allowed-tools: ["Skill", "Bash", "Read"]
5
5
  ---
6
6
 
@@ -14,6 +14,7 @@ See the `config-resolution` rule for configuration and dispatch table.
14
14
 
15
15
  1. Resolve tracker config (same logic as `lisa-tracker-write`).
16
16
  2. Dispatch:
17
+ - Missing / empty → stop and report `"No tracker configured in .lisa.config.json. Run /lisa:setup:jira, /lisa:setup:github, or /lisa:setup:linear first."`
17
18
  - `jira` → invoke `lisa-jira-journey` with `$ARGUMENTS` verbatim. Arg shape: `<TICKET_ID> [PR_NUMBER]`.
18
19
  - `github` → invoke `lisa-github-journey` with `$ARGUMENTS` verbatim. Arg shape: `<ISSUE_REF> [PR_NUMBER]`.
19
20
  - `linear` → invoke `lisa-linear-journey` with `$ARGUMENTS` verbatim. Arg shape: `<IDENTIFIER> [PR_NUMBER]`.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: lisa-tracker-read
3
- description: "Vendor-neutral wrapper for fetching the full scope of a ticket/issue and its related graph. Reads `tracker` from .lisa.config.json (default: jira) and dispatches to lisa-jira-read-ticket, lisa-github-read-issue, or lisa-linear-read-issue. Returns a consolidated context bundle so downstream agents never act on a single ticket in isolation."
3
+ description: "Vendor-neutral wrapper for fetching the full scope of a ticket/issue and its related graph. Reads the required `tracker` from .lisa.config.json and dispatches to lisa-jira-read-ticket, lisa-github-read-issue, or lisa-linear-read-issue. Returns a consolidated context bundle so downstream agents never act on a single ticket in isolation."
4
4
  allowed-tools: ["Skill", "Bash", "Read"]
5
5
  ---
6
6
 
@@ -14,6 +14,7 @@ See the `config-resolution` rule for configuration and dispatch table.
14
14
 
15
15
  1. Resolve tracker config (same logic as `lisa-tracker-write`).
16
16
  2. Dispatch:
17
+ - Missing / empty → stop and report `"No tracker configured in .lisa.config.json. Run /lisa:setup:jira, /lisa:setup:github, or /lisa:setup:linear first."`
17
18
  - `jira` → invoke `lisa-jira-read-ticket` with `$ARGUMENTS` verbatim. The argument is a JIRA key (e.g., `PROJ-123`).
18
19
  - `github` → invoke `lisa-github-read-issue` with `$ARGUMENTS` verbatim. The argument is `org/repo#<number>` or a full GitHub issue URL.
19
20
  - `linear` → invoke `lisa-linear-read-issue` with `$ARGUMENTS` verbatim. The argument is a Linear identifier (e.g., `ENG-123`) or a project URL.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: lisa-tracker-sync
3
- description: "Vendor-neutral wrapper for posting milestone updates to the linked ticket/issue. Reads `tracker` from .lisa.config.json (default: jira) and dispatches to lisa-jira-sync, lisa-github-sync, or lisa-linear-sync. Posts at: plan created, implementation in progress, PR ready, PR merged. Suggests (never auto-transitions) the next status."
3
+ description: "Vendor-neutral wrapper for posting milestone updates to the linked ticket/issue. Reads the required `tracker` from .lisa.config.json and dispatches to lisa-jira-sync, lisa-github-sync, or lisa-linear-sync. Posts at: plan created, implementation in progress, PR ready, PR merged. Suggests (never auto-transitions) the next status."
4
4
  allowed-tools: ["Skill", "Bash", "Read"]
5
5
  ---
6
6
 
@@ -14,6 +14,7 @@ See the `config-resolution` rule for configuration and dispatch table.
14
14
 
15
15
  1. Resolve tracker config (same logic as `lisa-tracker-write`).
16
16
  2. Dispatch:
17
+ - Missing / empty → stop and report `"No tracker configured in .lisa.config.json. Run /lisa:setup:jira, /lisa:setup:github, or /lisa:setup:linear first."`
17
18
  - `jira` → invoke `lisa-jira-sync` with `$ARGUMENTS` verbatim.
18
19
  - `github` → invoke `lisa-github-sync` with `$ARGUMENTS` verbatim.
19
20
  - `linear` → invoke `lisa-linear-sync` with `$ARGUMENTS` verbatim.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: lisa-tracker-validate
3
- description: "Vendor-neutral wrapper for the pre-write quality gate. Reads `tracker` from .lisa.config.json (default: jira) and dispatches to lisa-jira-validate-ticket, lisa-github-validate-issue, or lisa-linear-validate-issue. Read-only — never writes to any tracker. Used by tracker-write Phase 5.5 (pre-write gate), tracker-verify (post-write checks), and the *-to-tracker dry-run paths. Output is structured PASS/FAIL per gate so callers can parse it."
3
+ description: "Vendor-neutral wrapper for the pre-write quality gate. Reads the required `tracker` from .lisa.config.json and dispatches to lisa-jira-validate-ticket, lisa-github-validate-issue, or lisa-linear-validate-issue. Read-only — never writes to any tracker. Used by tracker-write Phase 5.5 (pre-write gate), tracker-verify (post-write checks), and the *-to-tracker dry-run paths. Output is structured PASS/FAIL per gate so callers can parse it."
4
4
  allowed-tools: ["Skill", "Bash", "Read"]
5
5
  ---
6
6
 
@@ -17,11 +17,12 @@ See the `config-resolution` rule for the full configuration schema and skill-map
17
17
  ```bash
18
18
  local_tracker=$(jq -r '.tracker // empty' .lisa.config.local.json 2>/dev/null)
19
19
  global_tracker=$(jq -r '.tracker // empty' .lisa.config.json 2>/dev/null)
20
- tracker="${local_tracker:-${global_tracker:-jira}}"
20
+ tracker="${local_tracker:-$global_tracker}"
21
21
  ```
22
22
 
23
23
  2. **Dispatch**
24
24
 
25
+ - Missing / empty → stop and report `"No tracker configured in .lisa.config.json. Run /lisa:setup:jira, /lisa:setup:github, or /lisa:setup:linear first."`
25
26
  - `jira` → invoke `lisa-jira-validate-ticket` with `$ARGUMENTS` verbatim.
26
27
  - `github` → invoke `lisa-github-validate-issue` with `$ARGUMENTS` verbatim.
27
28
  - `linear` → invoke `lisa-linear-validate-issue` with `$ARGUMENTS` verbatim.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: lisa-tracker-verify
3
- description: "Vendor-neutral wrapper for the post-write verification gate. Reads `tracker` from .lisa.config.json (default: jira) and dispatches to lisa-jira-verify, lisa-github-verify, or lisa-linear-verify. Fetches the live ticket/issue and runs the validator gates against the stored state — catches anything dropped or reformatted on write. Read-only."
3
+ description: "Vendor-neutral wrapper for the post-write verification gate. Reads the required `tracker` from .lisa.config.json and dispatches to lisa-jira-verify, lisa-github-verify, or lisa-linear-verify. Fetches the live ticket/issue and runs the validator gates against the stored state — catches anything dropped or reformatted on write. Read-only."
4
4
  allowed-tools: ["Skill", "Bash", "Read"]
5
5
  ---
6
6
 
@@ -14,6 +14,7 @@ See the `config-resolution` rule for configuration and dispatch table.
14
14
 
15
15
  1. Resolve tracker config (same logic as `lisa-tracker-write`).
16
16
  2. Dispatch:
17
+ - Missing / empty → stop and report `"No tracker configured in .lisa.config.json. Run /lisa:setup:jira, /lisa:setup:github, or /lisa:setup:linear first."`
17
18
  - `jira` → invoke `lisa-jira-verify` with `$ARGUMENTS` verbatim.
18
19
  - `github` → invoke `lisa-github-verify` with `$ARGUMENTS` verbatim.
19
20
  - `linear` → invoke `lisa-linear-verify` with `$ARGUMENTS` verbatim.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: lisa-tracker-write
3
- description: "Vendor-neutral wrapper for ticket creation and updates. Reads `tracker` from .lisa.config.json (default: jira) and dispatches to lisa-jira-write-ticket, lisa-github-write-issue, or lisa-linear-write-issue. Callers in vendor-neutral skills (notion-to-tracker, linear-to-tracker, confluence-to-tracker, github-to-tracker, implement, verify) MUST invoke this skill instead of the vendor-specific ones — that is what makes the tracker switchable per project. The Phase-5.5 validate-pre-write gate, post-write verify, and Phase-8 announce-comment behavior live in the vendor skills; this shim is dispatch only."
3
+ description: "Vendor-neutral wrapper for ticket creation and updates. Reads the required `tracker` from .lisa.config.json and dispatches to lisa-jira-write-ticket, lisa-github-write-issue, or lisa-linear-write-issue. Callers in vendor-neutral skills (notion-to-tracker, linear-to-tracker, confluence-to-tracker, github-to-tracker, implement, verify) MUST invoke this skill instead of the vendor-specific ones — that is what makes the tracker switchable per project. The Phase-5.5 validate-pre-write gate, post-write verify, and Phase-8 announce-comment behavior live in the vendor skills; this shim is dispatch only."
4
4
  allowed-tools: ["Skill", "Bash", "Read"]
5
5
  ---
6
6
 
@@ -24,11 +24,12 @@ See the `config-resolution` rule for the full configuration schema and skill-map
24
24
  ```bash
25
25
  local_tracker=$(jq -r '.tracker // empty' .lisa.config.local.json 2>/dev/null)
26
26
  global_tracker=$(jq -r '.tracker // empty' .lisa.config.json 2>/dev/null)
27
- tracker="${local_tracker:-${global_tracker:-jira}}"
27
+ tracker="${local_tracker:-$global_tracker}"
28
28
  ```
29
29
 
30
30
  2. **Validate the value**
31
31
 
32
+ - Missing / empty → stop and report: `"No tracker configured in .lisa.config.json. Run /lisa:setup:jira, /lisa:setup:github, or /lisa:setup:linear first."`
32
33
  - `jira` → confirm `atlassian.cloudId` and `jira.project` are present. If either is missing, stop and report: `"tracker=jira but atlassian.cloudId and jira.project are not set in .lisa.config.json."` Continue to Step 3a.
33
34
  - `github` → confirm `github.org` and `github.repo` are present. If either is missing, stop and report: `"tracker=github but github.org and github.repo are not set in .lisa.config.json."` Continue to Step 3b.
34
35
  - `linear` → confirm `linear.workspace` and `linear.teamKey` are present. If either is missing, stop and report: `"tracker=linear but linear.workspace and linear.teamKey are not set in .lisa.config.json."` Continue to Step 3c.
@@ -10,7 +10,7 @@ allowed-tools: ["Skill", "Bash", "Read", "Write", "Edit", "AskUserQuestion"]
10
10
 
11
11
  Lisa's lifecycle is driven by configured role → name mappings (`ready` → `"Ready"`, `done.staging` → `"On Stg"`, a GitHub `ready` build label → `"status:ready"`, a Notion `ticketed` value → `"Ticketed"`, …). When someone renames or deletes a status in JIRA, a label in GitHub/Linear, or a select option in Notion, the config silently points at a name that no longer resolves. The symptom is downstream: a build finishes but the completion transition can't be found, so the item stalls — exactly the kind of half-broken state `/lisa:repair-intake` then has to clean up. This skill catches that drift at the source: the config-to-live mapping itself.
12
12
 
13
- It is the audit/repair counterpart to `/lisa:setup-jira` (and the other `setup-*` skills): where `setup-*` *establishes* the mapping interactively, this skill *re-validates an existing mapping* against the live workflow and, on request, repairs the config to match.
13
+ It is the audit/repair counterpart to `/lisa:setup:jira` (and the other `setup:*` skills): where `setup:*` *establishes* the mapping interactively, this skill *re-validates an existing mapping* against the live workflow and, on request, repairs the config to match.
14
14
 
15
15
  ## Confirmation policy
16
16
 
@@ -53,15 +53,22 @@ Skip (and note) any path with no `.lisa.config.json`.
53
53
 
54
54
  ## Step 2 — Load the project's mappings
55
55
 
56
- For each project, read `.lisa.config.json`:
56
+ For each project, resolve the effective config from `.lisa.config.local.json` first, then `.lisa.config.json`:
57
57
 
58
58
  ```bash
59
- tracker=$(jq -r '.tracker // "jira"' .lisa.config.json)
60
- source=$(jq -r '.source // empty' .lisa.config.json)
59
+ read_config() {
60
+ local path="$1" local_v global_v
61
+ local_v=$(jq -r "$path // empty" .lisa.config.local.json 2>/dev/null)
62
+ global_v=$(jq -r "$path // empty" .lisa.config.json 2>/dev/null)
63
+ printf '%s\n' "${local_v:-$global_v}"
64
+ }
65
+ tracker=$(read_config '.tracker')
66
+ source=$(read_config '.source')
61
67
  ```
62
68
 
63
- Resolve the **effective** role → name mapping using the same defaults `/lisa:intake` and `/lisa:setup-jira` use (config-resolution contract). Only keys present in config override the defaults; absent keys fall back to the documented default. Build the list of `(role, configured-name)` pairs to validate:
69
+ Resolve the **effective** role → name mapping using the same defaults `/lisa:intake` and `/lisa:setup:jira` use (config-resolution contract). The tracker field is required; only vendor-specific role-name keys present in config override the defaults, and absent vendor-specific role-name keys fall back to the documented defaults. Build the list of `(role, configured-name)` pairs to validate:
64
70
 
71
+ - **Missing / empty tracker**: report `UNRESOLVABLE` with setup guidance (`/lisa:setup:jira`, `/lisa:setup:github`, or `/lisa:setup:linear`). Do not default to JIRA.
65
72
  - **JIRA build workflow** (`jira.workflow`): `ready`, `claimed`, optional `review`, `blocked`, and each `done.<env>` (`dev` / `staging` / `production`). Defaults: `Ready`, `In Progress`, `Code Review`, `Blocked`, `{dev: "On Dev", staging: "On Stg", production: "Done"}`.
66
73
  - **GitHub build/prd labels** (`github.labels.build`, `github.labels.prd`): each configured label string.
67
74
  - **Linear build/prd labels** (`linear.labels.build`, `linear.labels.prd`): each configured label/state string.
@@ -14,13 +14,13 @@ If you are NOT already operating inside an agent team (no prior successful team-
14
14
 
15
15
  Use the team tool for the current runtime:
16
16
 
17
- - Claude: use `TeamCreate`. If `TeamCreate` has not been loaded yet, first use `ToolSearch` with `query: "select:TeamCreate"` to load its schema.
17
+ - Claude Code >= 2.1.178: there is no `TeamCreate` tool; the team forms automatically when you spawn the first teammate with `Agent`. That first spawn should be the bounded specialist needed to start this flow. On older Claude Code that still exposes `TeamCreate`, the explicit team-create path is also acceptable.
18
18
  - Codex: do not call `TeamCreate`; Codex does not expose that Claude tool. Use `tool_search` with a query like `multi-agent tools` to load `multi_agent_v1`, then use `multi_agent_v1.spawn_agent` for teammate delegation. Treat the first successful `spawn_agent` call as establishing team orchestration.
19
19
  - Other runtimes: use the current runtime's tool-discovery mechanism to discover and call the appropriate multi-agent/team tool.
20
20
 
21
21
  If no team creation or subagent delegation tool is available, explicitly state that team orchestration is unavailable in this runtime, continue as the lead agent, and preserve the workflow's review, verification, and task-tracking obligations locally.
22
22
 
23
- Until the team is established, the first Codex teammate has been spawned, or the no-team fallback has been declared, do NOT call any of: `Agent`, `TaskCreate`, `Skill`, MCP tools (Atlassian / Linear / GitHub / Notion), `Read`, `Write`, `Edit`, `Bash`, `Grep`, `Glob`. Inspecting the branch, running quality gates, opening the PR — all of those are tasks for the team you are about to create, not for the lead session before orchestration exists.
23
+ Until the team is established, the first Codex teammate has been spawned, or the no-team fallback has been declared, do NOT call any of: `TaskCreate`, `Skill`, MCP tools (Atlassian / Linear / GitHub / Notion), `Read`, `Write`, `Edit`, `Bash`, `Grep`, `Glob`. The initial Claude `Agent` spawn described above is the only pre-team exception because it establishes the team. Inspecting the branch, running quality gates, opening the PR — all of those are tasks for the team you are about to create, not for the lead session before orchestration exists.
24
24
 
25
25
  If you ARE already inside an agent team (e.g., a teammate invoked this skill via the Skill tool), do NOT create a second team — many harnesses reject double-creates — and do NOT collapse the nested flow into a single inline worker. A nested team-first flow must still bring in the specialists it requires by adding them to the existing team, not by doing the work itself:
26
26
 
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-cdk",
3
- "version": "2.189.13",
3
+ "version": "2.189.15",
4
4
  "description": "AWS CDK-specific plugin",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-cdk",
3
- "version": "2.189.13",
3
+ "version": "2.189.15",
4
4
  "description": "AWS CDK-specific Lisa plugin.",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-cdk",
3
- "version": "2.189.13",
3
+ "version": "2.189.15",
4
4
  "description": "AWS CDK-specific plugin",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-cdk",
3
- "version": "2.189.13",
3
+ "version": "2.189.15",
4
4
  "description": "AWS CDK-specific plugin",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-cdk",
3
- "version": "2.189.13",
3
+ "version": "2.189.15",
4
4
  "description": "AWS CDK-specific plugin",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa",
3
- "version": "2.189.13",
3
+ "version": "2.189.15",
4
4
  "description": "Universal governance — agents, skills, commands, hooks, and rules for all projects",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -8,7 +8,7 @@ After echoing the chosen flow and BEFORE doing any work, state the orchestration
8
8
 
9
9
  Default to an agent team for Research, Plan, Implement (Build/Fix/Improve/Investigate-Only), and any flow that invokes the Review sub-flow. Use a single agent only for Verify (standalone) and Monitor (standalone). See the `intent-routing` rule's Orchestration section for the full decision matrix.
10
10
 
11
- When the mode is `agent team` **and you are not already operating inside an agent team**, your FIRST tool calls after the classification echo MUST establish team orchestration before any content-gathering work. Use the team tool for the current runtime: Claude uses `TeamCreate` (first `ToolSearch` with `query: "select:TeamCreate"` if needed); Codex must not call `TeamCreate` because Codex does not expose that Claude tool. In Codex, use `tool_search` with a query like `multi-agent tools` to load `multi_agent_v1`, then use `multi_agent_v1.spawn_agent` for teammate delegation and treat the first successful `spawn_agent` call as establishing team orchestration. Other runtimes should use their current tool-discovery mechanism to discover and call the appropriate multi-agent/team tool. If no team creation or subagent delegation tool is available, explicitly state that team orchestration is unavailable in this runtime, continue as the lead agent, and preserve the workflow's review, verification, and task-tracking obligations locally. Do not reach for `TaskCreate`, `Agent`, `Skill`, MCP tools, `Read`, `Bash`, or any other content-gathering call before the team exists, the first Codex teammate has been spawned, or the no-team fallback has been declared — those are bypass paths that skip durable task state and parallel review. Reading the ticket, exploring the code, querying the API are all tasks for the team, not for the lead session before orchestration exists. If you ARE already operating inside an agent team, do NOT create a second team and do NOT collapse into inline single-agent work; instead request the existing team lead add the specialist agent(s) this flow needs to the current team — on Claude, teammates cannot add named teammates (teams are flat), so message the lead with the teammate(s), assignments, and completion criteria; on Codex, ask the addressable lead/root to `multi_agent_v1.spawn_agent` them, or if no lead handle exists spawn the bounded specialists yourself, `wait_agent`, and relay results upward — then coordinate through the shared task state.
11
+ When the mode is `agent team` **and you are not already operating inside an agent team**, your FIRST tool calls after the classification echo MUST establish team orchestration before any content-gathering work. Use the team tool for the current runtime: modern Claude Code uses the implicit team model, where the first `Agent` spawn establishes the team; older Claude Code may still expose `TeamCreate` and that path is accepted. Codex must not call `TeamCreate` because Codex does not expose that Claude tool. In Codex, use `tool_search` with a query like `multi-agent tools` to load `multi_agent_v1`, then use `multi_agent_v1.spawn_agent` for teammate delegation and treat the first successful `spawn_agent` call as establishing team orchestration. Other runtimes should use their current tool-discovery mechanism to discover and call the appropriate multi-agent/team tool. If no team creation or subagent delegation tool is available, explicitly state that team orchestration is unavailable in this runtime, continue as the lead agent, and preserve the workflow's review, verification, and task-tracking obligations locally. Apart from the initial Claude `Agent` spawn that establishes the team, do not reach for `TaskCreate`, `Agent`, `Skill`, MCP tools, `Read`, `Bash`, or any other content-gathering call before the team exists, the first Codex teammate has been spawned, or the no-team fallback has been declared — those are bypass paths that skip durable task state and parallel review. Reading the ticket, exploring the code, querying the API are all tasks for the team, not for the lead session before orchestration exists. If you ARE already operating inside an agent team, do NOT create a second team and do NOT collapse into inline single-agent work; instead request the existing team lead add the specialist agent(s) this flow needs to the current team — on Claude, teammates cannot add named teammates (teams are flat), so message the lead with the teammate(s), assignments, and completion criteria; on Codex, ask the addressable lead/root to `multi_agent_v1.spawn_agent` them, or if no lead handle exists spawn the bounded specialists yourself, `wait_agent`, and relay results upward — then coordinate through the shared task state.
12
12
 
13
13
  Requirement Verification:
14
14
 
@@ -36,7 +36,7 @@ What this rule still enforces:
36
36
 
37
37
  3. **Default mode**: `Research`, `Plan`, `Implement`, `Intake`, and `Debrief` run as agent teams. The `Implement` flow — including every work type (`Build`, `Fix`, `Improve`, `Investigate-Only`) — is **always** a team flow. Bug fixes that "look simple" are not an exception: the Reproduce sub-flow, debug-specialist, bug-fixer, parallel reviewers, and verification-specialist all need to compose. `Debrief` runs as a team because tracker-mining and pr-mining parallelize cleanly and synthesis gates on both completing. `Verify` (standalone) and `Monitor` (standalone) use the One-shot Sub-agents pattern (see `## Orchestration` below) — these flows are linear with no parallelism and the team overhead is not warranted. Single-agent mode is otherwise reserved for: `product-walkthrough` invoked standalone (not as part of Research/Plan), `debrief-apply` (deterministic routing of human-marked dispositions), and one-off diagnostic Bash/Read sessions that don't invoke any lifecycle skill. When in doubt, use a team.
38
38
 
39
- The mechanical team bootstrap directive lives inside each lifecycle skill — see those skills' orchestration preambles for the exact wording. The Claude path uses `TeamCreate`; other runtimes must use their equivalent team-discovery and team-creation tools, or explicitly declare the no-team fallback when no such tool exists.
39
+ The mechanical team bootstrap directive lives inside each lifecycle skill — see those skills' orchestration preambles for the exact wording. Modern Claude Code uses the implicit team model (the first `Agent` spawn establishes the team); older Claude Code may still expose `TeamCreate`. Other runtimes must use their equivalent team-discovery and team-creation tools, or explicitly declare the no-team fallback when no such tool exists.
40
40
 
41
41
  ## Readiness Gate Protocol
42
42
 
@@ -107,13 +107,21 @@ Group the findings as:
107
107
  driven by config, not by what the scan happens to find. Resolve the active integrations first:
108
108
 
109
109
  ```bash
110
- TRACKER=$(jq -r '.tracker // "jira"' .lisa.config.json 2>/dev/null) # tickets: jira | github | linear
111
- SOURCE=$(jq -r '.source // empty' .lisa.config.json 2>/dev/null) # PRDs: notion | confluence | github | linear
110
+ read_config() {
111
+ local path="$1" local_v global_v
112
+ local_v=$(jq -r "$path // empty" .lisa.config.local.json 2>/dev/null)
113
+ global_v=$(jq -r "$path // empty" .lisa.config.json 2>/dev/null)
114
+ printf '%s\n' "${local_v:-$global_v}"
115
+ }
116
+ TRACKER=$(read_config '.tracker') # tickets: jira | github | linear
117
+ SOURCE=$(read_config '.source') # PRDs: notion | confluence | github | linear
112
118
  ```
113
119
  (Apply `config-resolution`: `.lisa.config.local.json` overrides `.lisa.config.json`.) For the
114
120
  **active** `tracker` and the **active** `source` — and only those — emit a `REQUIRED` credential
115
121
  finding using the **Credential reference** table below. For every integration that is *not* the
116
122
  active tracker/source, its credentials are `OPTIONAL` (dormant) — never mark them `REQUIRED`.
123
+ If `tracker` is missing, report a `GAP` for build-ticket flows with setup guidance instead of
124
+ assuming JIRA.
117
125
 
118
126
  Two non-negotiable headless rules govern which substrate a routine can actually use:
119
127
 
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: lisa-debrief
3
3
  description: "Run the Debrief flow over a shipped initiative. Input: a PRD URL (Notion / Confluence / Linear / GitHub Issue / file), a JIRA epic key, or a GitHub epic issue URL. Output: a triage-ready learnings document covering every work item in the initiative — edge cases, gotchas, process friction, tooling gaps, convention drift — each with structured evidence and a human-disposition field. Persistence is deferred to lisa-debrief-apply."
4
- allowed-tools: ["Skill", "ToolSearch", "TeamCreate", "Bash", "Read", "Glob", "Grep"]
4
+ allowed-tools: ["Skill", "ToolSearch", "Bash", "Read", "Glob", "Grep", "TeamCreate"]
5
5
  ---
6
6
 
7
7
  # Debrief: $ARGUMENTS
@@ -14,13 +14,13 @@ If you are NOT already operating inside an agent team (no prior successful team-
14
14
 
15
15
  Use the team tool for the current runtime:
16
16
 
17
- - Claude: use `TeamCreate`. If `TeamCreate` has not been loaded yet, first use `ToolSearch` with `query: "select:TeamCreate"` to load its schema.
17
+ - Claude Code >= 2.1.178: there is no `TeamCreate` tool; the team forms automatically when you spawn the first teammate with `Agent`. That first spawn should be the bounded specialist needed to start this flow. On older Claude Code that still exposes `TeamCreate`, the explicit team-create path is also acceptable.
18
18
  - Codex: do not call `TeamCreate`; Codex does not expose that Claude tool. Use `tool_search` with a query like `multi-agent tools` to load `multi_agent_v1`, then use `multi_agent_v1.spawn_agent` for teammate delegation. Treat the first successful `spawn_agent` call as establishing team orchestration.
19
19
  - Other runtimes: use the current runtime's tool-discovery mechanism to discover and call the appropriate multi-agent/team tool.
20
20
 
21
21
  If no team creation or subagent delegation tool is available, explicitly state that team orchestration is unavailable in this runtime, continue as the lead agent, and preserve the workflow's review, verification, and task-tracking obligations locally.
22
22
 
23
- Until the team is established, the first Codex teammate has been spawned, or the no-team fallback has been declared, do NOT call any of: `Agent`, `TaskCreate`, `Skill`, MCP tools (Atlassian / Linear / GitHub / Notion), `Read`, `Write`, `Edit`, `Bash`, `Grep`, `Glob`. Resolving the work-item set, fetching tickets, walking PRs — all of those are tasks for the team you are about to create, not for the lead session before orchestration exists.
23
+ Until the team is established, the first Codex teammate has been spawned, or the no-team fallback has been declared, do NOT call any of: `TaskCreate`, `Skill`, MCP tools (Atlassian / Linear / GitHub / Notion), `Read`, `Write`, `Edit`, `Bash`, `Grep`, `Glob`. The initial Claude `Agent` spawn described above is the only pre-team exception because it establishes the team. Resolving the work-item set, fetching tickets, walking PRs — all of those are tasks for the team you are about to create, not for the lead session before orchestration exists.
24
24
 
25
25
  If you ARE already inside an agent team (e.g., a teammate invoked this skill via the Skill tool), do NOT create a second team — many harnesses reject double-creates — and do NOT collapse the nested flow into a single inline worker. A nested team-first flow must still bring in the specialists it requires by adding them to the existing team, not by doing the work itself:
26
26
 
@@ -19,7 +19,7 @@ Use the team tool for the current runtime:
19
19
 
20
20
  If no team creation or subagent delegation tool is available, explicitly state that team orchestration is unavailable in this runtime, continue as the lead agent, and preserve the workflow's review, verification, and task-tracking obligations locally.
21
21
 
22
- Your only permitted first move is establishing orchestration by spawning the bounded **input-resolver** teammate (Claude: `Agent`; Codex: `multi_agent_v1.spawn_agent`), or declaring the no-team fallback. Apart from that single spawn, do NOT call any of: a second `Agent`/`spawn_agent` for any worker, `TaskCreate`, `Skill` (including `lisa-tracker-read`, `lisa-jira-read-ticket`, `lisa-github-read-issue`), MCP tools (Atlassian / Linear / GitHub / Notion), `Read`, `Write`, `Edit`, `Bash`, `Grep`, `Glob` — until the input-resolver has returned and the Roster Decision has been recorded. Reading the ticket, exploring the code, fetching context — every one of those is a task for the team, not for the lead session before orchestration exists. Doing them inline, or spawning a single worker that does the whole build, is the exact bypass path that produces a 1-agent ad-hoc fix instead of a real team flow.
22
+ Your only permitted first move is establishing orchestration by spawning the bounded **input-resolver** teammate (Claude: `Agent`; Codex: `multi_agent_v1.spawn_agent`), or declaring the no-team fallback. The initial Claude `Agent` spawn is the only pre-team exception, and for Implement it must be the bounded input-resolver rather than a builder. Apart from that single spawn, do NOT call any of: a second `Agent`/`spawn_agent` for any worker, `TaskCreate`, `Skill` (including `lisa-tracker-read`, `lisa-jira-read-ticket`, `lisa-github-read-issue`), MCP tools (Atlassian / Linear / GitHub / Notion), `Read`, `Write`, `Edit`, `Bash`, `Grep`, `Glob` — until the input-resolver has returned and the Roster Decision has been recorded. Reading the ticket, exploring the code, fetching context — every one of those is a task for the team, not for the lead session before orchestration exists. Doing them inline, or spawning a single worker that does the whole build, is the exact bypass path that produces a 1-agent ad-hoc fix instead of a real team flow.
23
23
 
24
24
  If you ARE already inside an agent team (e.g., a teammate invoked this skill via the Skill tool, or `lisa-intake` is running this skill per Ready ticket), do NOT create a second team — many harnesses reject double-creates — and do NOT collapse the nested flow into a single inline worker. A nested team-first flow must still bring in the specialists it requires by adding them to the existing team, not by doing the work itself:
25
25
 
@@ -43,13 +43,13 @@ If you are NOT already operating inside an agent team (no prior successful team-
43
43
 
44
44
  Use the team tool for the current runtime:
45
45
 
46
- - Claude: use `TeamCreate`. If `TeamCreate` has not been loaded yet, first use `ToolSearch` with `query: "select:TeamCreate"` to load its schema.
46
+ - Claude Code >= 2.1.178: there is no `TeamCreate` tool; the team forms automatically when you spawn the first teammate with `Agent`. That first spawn should be the bounded specialist needed to start this flow. On older Claude Code that still exposes `TeamCreate`, the explicit team-create path is also acceptable.
47
47
  - Codex: do not call `TeamCreate`; Codex does not expose that Claude tool. Use `tool_search` with a query like `multi-agent tools` to load `multi_agent_v1`, then use `multi_agent_v1.spawn_agent` for teammate delegation. Treat the first successful `spawn_agent` call as establishing team orchestration.
48
48
  - Other runtimes: use the current runtime's tool-discovery mechanism to discover and call the appropriate multi-agent/team tool.
49
49
 
50
50
  If no team creation or subagent delegation tool is available, explicitly state that team orchestration is unavailable in this runtime, continue as the lead agent, and preserve the workflow's review, verification, and task-tracking obligations locally.
51
51
 
52
- Until the team is established, the first Codex teammate has been spawned, or the no-team fallback has been declared, do NOT call any of: `Agent`, `TaskCreate`, `Skill`, MCP tools (Atlassian / Linear / GitHub / Notion), `Read`, `Write`, `Edit`, `Bash`, `Grep`, `Glob`. Scanning the queue, claiming items, dispatching per-item flows — all of those are tasks for the team you are about to create, not for the lead session before orchestration exists.
52
+ Until the team is established, the first Codex teammate has been spawned, or the no-team fallback has been declared, do NOT call any of: `TaskCreate`, `Skill`, MCP tools (Atlassian / Linear / GitHub / Notion), `Read`, `Write`, `Edit`, `Bash`, `Grep`, `Glob`. The initial Claude `Agent` spawn described above is the only pre-team exception because it establishes the team. Scanning the queue, claiming items, dispatching per-item flows — all of those are tasks for the team you are about to create, not for the lead session before orchestration exists.
53
53
 
54
54
  If you ARE already inside an agent team (e.g., a teammate invoked this skill via the Skill tool), do NOT create a second team — many harnesses reject double-creates — and do NOT collapse the nested flow into a single inline worker. A nested team-first flow must still bring in the specialists it requires by adding them to the existing team, not by doing the work itself:
55
55