@codyswann/lisa 2.231.0 → 2.233.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (138) hide show
  1. package/package.json +1 -1
  2. package/plugins/lisa/.claude-plugin/plugin.json +1 -1
  3. package/plugins/lisa/.codex-plugin/plugin.json +1 -1
  4. package/plugins/lisa/.codex-plugin/skills/lisa-debrief-apply/SKILL.md +9 -2
  5. package/plugins/lisa/.codex-plugin/skills/lisa-qa-checklist/SKILL.md +70 -0
  6. package/plugins/lisa/.codex-plugin/skills/lisa-qa-checklist/agents/openai.yaml +4 -0
  7. package/plugins/lisa/.codex-plugin/skills/lisa-qa-clear/SKILL.md +74 -0
  8. package/plugins/lisa/.codex-plugin/skills/lisa-qa-clear/agents/openai.yaml +4 -0
  9. package/plugins/lisa/.codex-plugin/skills/lisa-qa-fail/SKILL.md +92 -0
  10. package/plugins/lisa/.codex-plugin/skills/lisa-qa-fail/agents/openai.yaml +4 -0
  11. package/plugins/lisa/.codex-plugin/skills/lisa-qa-queue/SKILL.md +69 -0
  12. package/plugins/lisa/.codex-plugin/skills/lisa-qa-queue/agents/openai.yaml +4 -0
  13. package/plugins/lisa/.codex-plugin/skills/lisa-rework-triage/SKILL.md +155 -0
  14. package/plugins/lisa/.codex-plugin/skills/lisa-rework-triage/agents/openai.yaml +4 -0
  15. package/plugins/lisa/.codex-plugin/skills/lisa-ticket-triage/SKILL.md +20 -0
  16. package/plugins/lisa/agents/learner.md +8 -1
  17. package/plugins/lisa/agents/learnings-synthesizer.md +4 -1
  18. package/plugins/lisa/commands/qa-checklist.md +6 -0
  19. package/plugins/lisa/commands/qa-clear.md +6 -0
  20. package/plugins/lisa/commands/qa-fail.md +6 -0
  21. package/plugins/lisa/commands/qa-queue.md +6 -0
  22. package/plugins/lisa/commands/rework-triage.md +6 -0
  23. package/plugins/lisa/skills/lisa-debrief-apply/SKILL.md +9 -2
  24. package/plugins/lisa/skills/lisa-qa-checklist/SKILL.md +70 -0
  25. package/plugins/lisa/skills/lisa-qa-checklist/agents/openai.yaml +4 -0
  26. package/plugins/lisa/skills/lisa-qa-clear/SKILL.md +74 -0
  27. package/plugins/lisa/skills/lisa-qa-clear/agents/openai.yaml +4 -0
  28. package/plugins/lisa/skills/lisa-qa-fail/SKILL.md +92 -0
  29. package/plugins/lisa/skills/lisa-qa-fail/agents/openai.yaml +4 -0
  30. package/plugins/lisa/skills/lisa-qa-queue/SKILL.md +69 -0
  31. package/plugins/lisa/skills/lisa-qa-queue/agents/openai.yaml +4 -0
  32. package/plugins/lisa/skills/lisa-rework-triage/SKILL.md +155 -0
  33. package/plugins/lisa/skills/lisa-rework-triage/agents/openai.yaml +4 -0
  34. package/plugins/lisa/skills/lisa-ticket-triage/SKILL.md +21 -1
  35. package/plugins/lisa-agy/agents/learner.md +8 -1
  36. package/plugins/lisa-agy/agents/learnings-synthesizer.md +4 -1
  37. package/plugins/lisa-agy/commands/lisa/qa-checklist.md +6 -0
  38. package/plugins/lisa-agy/commands/lisa/qa-clear.md +6 -0
  39. package/plugins/lisa-agy/commands/lisa/qa-fail.md +6 -0
  40. package/plugins/lisa-agy/commands/lisa/qa-queue.md +6 -0
  41. package/plugins/lisa-agy/commands/lisa/rework-triage.md +6 -0
  42. package/plugins/lisa-agy/plugin.json +1 -1
  43. package/plugins/lisa-agy/skills/lisa-debrief-apply/SKILL.md +9 -2
  44. package/plugins/lisa-agy/skills/lisa-qa-checklist/SKILL.md +70 -0
  45. package/plugins/lisa-agy/skills/lisa-qa-clear/SKILL.md +74 -0
  46. package/plugins/lisa-agy/skills/lisa-qa-fail/SKILL.md +92 -0
  47. package/plugins/lisa-agy/skills/lisa-qa-queue/SKILL.md +69 -0
  48. package/plugins/lisa-agy/skills/lisa-rework-triage/SKILL.md +155 -0
  49. package/plugins/lisa-agy/skills/lisa-ticket-triage/SKILL.md +21 -1
  50. package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
  51. package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
  52. package/plugins/lisa-cdk-agy/plugin.json +1 -1
  53. package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +1 -1
  54. package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +1 -1
  55. package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
  56. package/plugins/lisa-copilot/agents/learner.agent.md +8 -1
  57. package/plugins/lisa-copilot/agents/learnings-synthesizer.agent.md +4 -1
  58. package/plugins/lisa-copilot/commands/lisa/qa-checklist.md +6 -0
  59. package/plugins/lisa-copilot/commands/lisa/qa-clear.md +6 -0
  60. package/plugins/lisa-copilot/commands/lisa/qa-fail.md +6 -0
  61. package/plugins/lisa-copilot/commands/lisa/qa-queue.md +6 -0
  62. package/plugins/lisa-copilot/commands/lisa/rework-triage.md +6 -0
  63. package/plugins/lisa-copilot/skills/lisa-debrief-apply/SKILL.md +9 -2
  64. package/plugins/lisa-copilot/skills/lisa-qa-checklist/SKILL.md +70 -0
  65. package/plugins/lisa-copilot/skills/lisa-qa-clear/SKILL.md +74 -0
  66. package/plugins/lisa-copilot/skills/lisa-qa-fail/SKILL.md +92 -0
  67. package/plugins/lisa-copilot/skills/lisa-qa-queue/SKILL.md +69 -0
  68. package/plugins/lisa-copilot/skills/lisa-rework-triage/SKILL.md +155 -0
  69. package/plugins/lisa-copilot/skills/lisa-ticket-triage/SKILL.md +21 -1
  70. package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
  71. package/plugins/lisa-cursor/agents/learner.md +8 -1
  72. package/plugins/lisa-cursor/agents/learnings-synthesizer.md +4 -1
  73. package/plugins/lisa-cursor/commands/lisa/qa-checklist.md +6 -0
  74. package/plugins/lisa-cursor/commands/lisa/qa-clear.md +6 -0
  75. package/plugins/lisa-cursor/commands/lisa/qa-fail.md +6 -0
  76. package/plugins/lisa-cursor/commands/lisa/qa-queue.md +6 -0
  77. package/plugins/lisa-cursor/commands/lisa/rework-triage.md +6 -0
  78. package/plugins/lisa-cursor/skills/lisa-debrief-apply/SKILL.md +9 -2
  79. package/plugins/lisa-cursor/skills/lisa-qa-checklist/SKILL.md +70 -0
  80. package/plugins/lisa-cursor/skills/lisa-qa-clear/SKILL.md +74 -0
  81. package/plugins/lisa-cursor/skills/lisa-qa-fail/SKILL.md +92 -0
  82. package/plugins/lisa-cursor/skills/lisa-qa-queue/SKILL.md +69 -0
  83. package/plugins/lisa-cursor/skills/lisa-rework-triage/SKILL.md +155 -0
  84. package/plugins/lisa-cursor/skills/lisa-ticket-triage/SKILL.md +21 -1
  85. package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
  86. package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
  87. package/plugins/lisa-expo-agy/plugin.json +1 -1
  88. package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
  89. package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
  90. package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
  91. package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
  92. package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
  93. package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +1 -1
  94. package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
  95. package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
  96. package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
  97. package/plugins/lisa-nestjs-agy/plugin.json +1 -1
  98. package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +1 -1
  99. package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +1 -1
  100. package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
  101. package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
  102. package/plugins/lisa-openclaw-agy/plugin.json +1 -1
  103. package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +1 -1
  104. package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +1 -1
  105. package/plugins/lisa-phaser/.claude-plugin/plugin.json +1 -1
  106. package/plugins/lisa-phaser/.codex-plugin/plugin.json +1 -1
  107. package/plugins/lisa-phaser-agy/plugin.json +1 -1
  108. package/plugins/lisa-phaser-copilot/.claude-plugin/plugin.json +1 -1
  109. package/plugins/lisa-phaser-cursor/.claude-plugin/plugin.json +1 -1
  110. package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
  111. package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
  112. package/plugins/lisa-rails-agy/plugin.json +1 -1
  113. package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +1 -1
  114. package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +1 -1
  115. package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
  116. package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
  117. package/plugins/lisa-typescript-agy/plugin.json +1 -1
  118. package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +1 -1
  119. package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +1 -1
  120. package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
  121. package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
  122. package/plugins/lisa-wiki-agy/plugin.json +1 -1
  123. package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
  124. package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
  125. package/plugins/src/base/agents/learner.md +8 -1
  126. package/plugins/src/base/agents/learnings-synthesizer.md +4 -1
  127. package/plugins/src/base/commands/qa-checklist.md +6 -0
  128. package/plugins/src/base/commands/qa-clear.md +6 -0
  129. package/plugins/src/base/commands/qa-fail.md +6 -0
  130. package/plugins/src/base/commands/qa-queue.md +6 -0
  131. package/plugins/src/base/commands/rework-triage.md +6 -0
  132. package/plugins/src/base/skills/lisa-debrief-apply/SKILL.md +9 -2
  133. package/plugins/src/base/skills/lisa-qa-checklist/SKILL.md +70 -0
  134. package/plugins/src/base/skills/lisa-qa-clear/SKILL.md +74 -0
  135. package/plugins/src/base/skills/lisa-qa-fail/SKILL.md +92 -0
  136. package/plugins/src/base/skills/lisa-qa-queue/SKILL.md +69 -0
  137. package/plugins/src/base/skills/lisa-rework-triage/SKILL.md +155 -0
  138. package/plugins/src/base/skills/lisa-ticket-triage/SKILL.md +21 -1
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: lisa-ticket-triage
3
- description: "Analytical triage gate for tickets in the configured destination tracker (JIRA, GitHub Issues, or Linear). Detects requirement ambiguities, identifies edge cases from codebase analysis, and plans verification methodology. Posts findings to the ticket and produces a verdict (DUPLICATE_ALREADY_FIXED/BLOCKED/PASSED_WITH_FINDINGS/PASSED) that gates whether implementation can proceed. Vendor-neutral: the caller (jira-agent or github-agent) is responsible for fetching the ticket via lisa-tracker-read, running the pre-flight gate via lisa-tracker-verify, and posting findings via the matching vendor comment tool."
3
+ description: "Analytical triage gate for tickets in the configured destination tracker (JIRA, GitHub Issues, or Linear). Detects requirement ambiguities, identifies edge cases from codebase analysis, plans verification methodology, and — via lisa-rework-triage in Phase 2.5 — detects rework bounced back from QA/staging and classifies why the previous agent attempt failed. Posts findings to the ticket and produces a verdict (DUPLICATE_ALREADY_FIXED/BLOCKED/PASSED_WITH_FINDINGS/PASSED) that gates whether implementation can proceed. Vendor-neutral: the caller (jira-agent or github-agent) is responsible for fetching the ticket via lisa-tracker-read, running the pre-flight gate via lisa-tracker-verify, and posting findings via the matching vendor comment tool."
4
4
  allowed-tools: ["Read", "Glob", "Grep", "Bash"]
5
5
  ---
6
6
 
@@ -67,6 +67,23 @@ Note which phases other repos have already covered and what findings they posted
67
67
  - Do NOT duplicate findings already posted by another repo
68
68
  - DO add supplementary findings specific to THIS repo's codebase
69
69
 
70
+ ## Phase 2.5 -- Rework Detection & Failure Classification
71
+
72
+ Invoke `lisa-rework-triage` with the context bundle. It detects whether this ticket is
73
+ **rework** — previously implemented work bounced back from QA/staging — and, when it is,
74
+ classifies why the previous agent attempt failed (decomposition infidelity, PRD defect,
75
+ missing tool access, implementation defect, environment/data, verification gap), posts the
76
+ `[lisa-rework-triage]` comment, and routes the cause to its hardening destination (upstream
77
+ Lisa issue, provisioning ticket, or PRD defect flag). See that skill for the taxonomy,
78
+ evidence requirements, and routing table.
79
+
80
+ - `NOT_REWORK` → proceed to Phase 3; nothing to carry forward.
81
+ - `REWORK_CLASSIFIED` / `ALREADY_TRIAGED` → carry the classification into the output
82
+ structure (see below) and proceed to Phase 3 — a classified rework still gets fixed;
83
+ hardening runs alongside the fix, never in front of it. Exception: a `missing-tool-access`
84
+ cause whose gap is **still present** must be raised as a Phase 3 ambiguity ("prior attempt
85
+ lacked <tool>; it is still unavailable"), which blocks per the normal rules.
86
+
70
87
  ## Phase 3 -- Ambiguity Detection
71
88
 
72
89
  Examine the ticket summary, description, and acceptance criteria. Look for:
@@ -175,6 +192,9 @@ Structure all output with clear section headers so the caller can parse and post
175
192
  ### Verification Methodology
176
193
  [Phase 5 table, or "No acceptance criteria to verify."]
177
194
 
195
+ ### Rework Classification
196
+ [Phase 2.5 verdict block from lisa-rework-triage, or "Not rework (first attempt)."]
197
+
178
198
  ## Verdict: [NOT_RELEVANT | DUPLICATE_ALREADY_FIXED | BLOCKED | PASSED_WITH_FINDINGS | PASSED]
179
199
  ```
180
200
 
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-expo",
3
- "version": "2.231.0",
3
+ "version": "2.233.0",
4
4
  "description": "Expo/React Native-specific skills, agents, rules, and MCP servers",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-expo",
3
- "version": "2.231.0",
3
+ "version": "2.233.0",
4
4
  "description": "Expo and React Native-specific skills, agents, rules, and MCP servers.",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-expo",
3
- "version": "2.231.0",
3
+ "version": "2.233.0",
4
4
  "description": "Expo/React Native-specific skills, agents, rules, and MCP servers",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-expo",
3
- "version": "2.231.0",
3
+ "version": "2.233.0",
4
4
  "description": "Expo/React Native-specific skills, agents, rules, and MCP servers",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-expo",
3
- "version": "2.231.0",
3
+ "version": "2.233.0",
4
4
  "description": "Expo/React Native-specific skills, agents, rules, and MCP servers",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-harper-fabric",
3
- "version": "2.231.0",
3
+ "version": "2.233.0",
4
4
  "description": "Harper/Fabric-specific rules for TypeScript component apps",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-harper-fabric",
3
- "version": "2.231.0",
3
+ "version": "2.233.0",
4
4
  "description": "Harper/Fabric-specific Lisa rules for TypeScript component apps.",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-harper-fabric",
3
- "version": "2.231.0",
3
+ "version": "2.233.0",
4
4
  "description": "Harper/Fabric-specific rules for TypeScript component apps",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-harper-fabric",
3
- "version": "2.231.0",
3
+ "version": "2.233.0",
4
4
  "description": "Harper/Fabric-specific rules for TypeScript component apps",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-harper-fabric",
3
- "version": "2.231.0",
3
+ "version": "2.233.0",
4
4
  "description": "Harper/Fabric-specific rules for TypeScript component apps",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-nestjs",
3
- "version": "2.231.0",
3
+ "version": "2.233.0",
4
4
  "description": "NestJS-specific skills (GraphQL, TypeORM) and hooks (migration write-protection)",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-nestjs",
3
- "version": "2.231.0",
3
+ "version": "2.233.0",
4
4
  "description": "NestJS-specific skills and migration write-protection hooks.",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-nestjs",
3
- "version": "2.231.0",
3
+ "version": "2.233.0",
4
4
  "description": "NestJS-specific skills (GraphQL, TypeORM) and hooks (migration write-protection)",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-nestjs",
3
- "version": "2.231.0",
3
+ "version": "2.233.0",
4
4
  "description": "NestJS-specific skills (GraphQL, TypeORM) and hooks (migration write-protection)",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-nestjs",
3
- "version": "2.231.0",
3
+ "version": "2.233.0",
4
4
  "description": "NestJS-specific skills (GraphQL, TypeORM) and hooks (migration write-protection)",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-openclaw",
3
- "version": "2.231.0",
3
+ "version": "2.233.0",
4
4
  "description": "Connect staff roles to Telegram or Slack via OpenClaw — facilitator/specialist hub-and-spoke routing and repo-coding topics, for Claude Code and Codex",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-openclaw",
3
- "version": "2.231.0",
3
+ "version": "2.233.0",
4
4
  "description": "Connect staff roles to Telegram or Slack via OpenClaw — facilitator/specialist hub-and-spoke routing and repo-coding topics, across Claude and Codex.",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-openclaw",
3
- "version": "2.231.0",
3
+ "version": "2.233.0",
4
4
  "description": "Connect staff roles to Telegram or Slack via OpenClaw — facilitator/specialist hub-and-spoke routing and repo-coding topics, for Claude Code and Codex",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-openclaw",
3
- "version": "2.231.0",
3
+ "version": "2.233.0",
4
4
  "description": "Connect staff roles to Telegram or Slack via OpenClaw — facilitator/specialist hub-and-spoke routing and repo-coding topics, for Claude Code and Codex",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-openclaw",
3
- "version": "2.231.0",
3
+ "version": "2.233.0",
4
4
  "description": "Connect staff roles to Telegram or Slack via OpenClaw — facilitator/specialist hub-and-spoke routing and repo-coding topics, for Claude Code and Codex",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-phaser",
3
- "version": "2.231.0",
3
+ "version": "2.233.0",
4
4
  "description": "Phaser 4 game-development rules for TypeScript projects",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-phaser",
3
- "version": "2.231.0",
3
+ "version": "2.233.0",
4
4
  "description": "Phaser 4 game-development rules for TypeScript projects",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-phaser",
3
- "version": "2.231.0",
3
+ "version": "2.233.0",
4
4
  "description": "Phaser 4 game-development rules for TypeScript projects",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-phaser",
3
- "version": "2.231.0",
3
+ "version": "2.233.0",
4
4
  "description": "Phaser 4 game-development rules for TypeScript projects",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-phaser",
3
- "version": "2.231.0",
3
+ "version": "2.233.0",
4
4
  "description": "Phaser 4 game-development rules for TypeScript projects",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-rails",
3
- "version": "2.231.0",
3
+ "version": "2.233.0",
4
4
  "description": "Ruby on Rails-specific hooks — RuboCop linting/formatting and ast-grep scanning on edit",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-rails",
3
- "version": "2.231.0",
3
+ "version": "2.233.0",
4
4
  "description": "Ruby on Rails-specific skills and hooks for RuboCop and ast-grep scanning on edit.",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-rails",
3
- "version": "2.231.0",
3
+ "version": "2.233.0",
4
4
  "description": "Ruby on Rails-specific hooks — RuboCop linting/formatting and ast-grep scanning on edit",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-rails",
3
- "version": "2.231.0",
3
+ "version": "2.233.0",
4
4
  "description": "Ruby on Rails-specific hooks — RuboCop linting/formatting and ast-grep scanning on edit",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-rails",
3
- "version": "2.231.0",
3
+ "version": "2.233.0",
4
4
  "description": "Ruby on Rails-specific hooks — RuboCop linting/formatting and ast-grep scanning on edit",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-typescript",
3
- "version": "2.231.0",
3
+ "version": "2.233.0",
4
4
  "description": "TypeScript-specific hooks — Prettier formatting, ESLint linting, ast-grep scanning, and error-suppression blocking on edit",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-typescript",
3
- "version": "2.231.0",
3
+ "version": "2.233.0",
4
4
  "description": "TypeScript-specific hooks for formatting, linting, and ast-grep scanning on edit.",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-typescript",
3
- "version": "2.231.0",
3
+ "version": "2.233.0",
4
4
  "description": "TypeScript-specific hooks — Prettier formatting, ESLint linting, ast-grep scanning, and error-suppression blocking on edit",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-typescript",
3
- "version": "2.231.0",
3
+ "version": "2.233.0",
4
4
  "description": "TypeScript-specific hooks — Prettier formatting, ESLint linting, ast-grep scanning, and error-suppression blocking on edit",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-typescript",
3
- "version": "2.231.0",
3
+ "version": "2.233.0",
4
4
  "description": "TypeScript-specific hooks — Prettier formatting, ESLint linting, ast-grep scanning, and error-suppression blocking on edit",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-wiki",
3
- "version": "2.231.0",
3
+ "version": "2.233.0",
4
4
  "description": "LLM Wiki — a distributable, git-native markdown knowledge base for Claude Code and Codex",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-wiki",
3
- "version": "2.231.0",
3
+ "version": "2.233.0",
4
4
  "description": "Distributable LLM Wiki kernel — ingest, query, lint, and maintain a git-native markdown knowledge base across Claude and Codex.",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-wiki",
3
- "version": "2.231.0",
3
+ "version": "2.233.0",
4
4
  "description": "LLM Wiki — a distributable, git-native markdown knowledge base for Claude Code and Codex",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-wiki",
3
- "version": "2.231.0",
3
+ "version": "2.233.0",
4
4
  "description": "LLM Wiki — a distributable, git-native markdown knowledge base for Claude Code and Codex",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-wiki",
3
- "version": "2.231.0",
3
+ "version": "2.233.0",
4
4
  "description": "LLM Wiki — a distributable, git-native markdown knowledge base for Claude Code and Codex",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -21,19 +21,26 @@ Invoke `skill-evaluator` (via Agent tool with `subagent_type: "skill-evaluator"`
21
21
 
22
22
  - **CREATE SKILL** -- broad, reusable, complex, stable, not redundant. Invoke `/skill-creator`.
23
23
  - **ADD TO RULES** -- simple rule to append to `.claude/rules/PROJECT_RULES.md`.
24
+ - **UPSTREAM** -- the learning is a harness defect, not project knowledge: a Lisa skill, gate,
25
+ agent, or hook mis-behaved or should have caught something and didn't. Project rules can't
26
+ fix the harness; file it upstream so every host project gets the fix.
24
27
  - **OMIT** -- too narrow, already documented, or temporary. Discard.
25
28
 
26
29
  ### Step 3: Act on Decisions
27
30
 
28
31
  - CREATE SKILL: invoke `/skill-creator` via the Skill tool
29
32
  - ADD TO RULES: use Edit to append to `.claude/rules/PROJECT_RULES.md`
33
+ - UPSTREAM: file an upstream Lisa issue per the "Filing upstream" procedure in
34
+ `lisa-rework-triage` (dedupe search first, three-audience description, evidence chain,
35
+ `self-hardening` label; repo from `.lisa.config.json` `hardening.upstreamRepo`, default
36
+ `CodySwannGT/lisa`)
30
37
  - OMIT: no action
31
38
 
32
39
  ### Step 4: Output Summary
33
40
 
34
41
  | Learning | Decision | Action Taken |
35
42
  |----------|----------|-------------|
36
- | [learning text] | CREATE SKILL / ADD TO RULES / OMIT | [what was done] |
43
+ | [learning text] | CREATE SKILL / ADD TO RULES / UPSTREAM / OMIT | [what was done] |
37
44
 
38
45
  ## Rules
39
46
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: learnings-synthesizer
3
- description: "Learnings synthesizer for the Debrief flow. Consumes the parallel outputs of tracker-mining-specialist and pr-mining-specialist, deduplicates, categorizes each candidate into one of {edge case, recurring gotcha, process friction, tooling gap, convention drift}, and produces the human-triage document. Exhaustive — surfaces every candidate, even low-confidence ones, because the human decides what to keep."
3
+ description: "Learnings synthesizer for the Debrief flow. Consumes the parallel outputs of tracker-mining-specialist and pr-mining-specialist, deduplicates, categorizes each candidate into one of {edge case, recurring gotcha, process friction, tooling gap, convention drift, decomposition infidelity, prd defect, missing tool access}, and produces the human-triage document. Exhaustive — surfaces every candidate, even low-confidence ones, because the human decides what to keep."
4
4
  skills: []
5
5
  ---
6
6
 
@@ -38,6 +38,9 @@ Map every finding to exactly one category. When a finding could fit two, pick th
38
38
  | **Process friction** | A step in the lifecycle that consistently slowed the work — long status stalls, repeated reopen cycles, force-pushes after approval, missing journey replays, ambiguous AC that required mid-PR clarification. | `PROJECT_RULES.md` guideline, or a tooling-gap ticket if the friction is automatable |
39
39
  | **Tooling gap** | Something that should have been automated, an agent that should have caught the issue but didn't, a missing skill, a hook that didn't fire. | A new ticket via `lisa-tracker-write` |
40
40
  | **Convention drift** | An unwritten rule revealed by review comments — "we don't do X here", "always use the Y helper", "this folder uses pattern Z". The convention is real but undocumented. | `CLAUDE.md` or `PROJECT_RULES.md` |
41
+ | **Decomposition infidelity** | A ticket misrepresented the PRD requirement it claimed to implement — the agent built what the ticket said, but the ticket distorted the spec, and every gate passed it. A harness defect, not a project one. (`lisa-rework-triage` classifies these at claim time; debrief catches the ones that slipped through a whole initiative.) | Upstream Lisa issue (`hardening.upstreamRepo`, default `CodySwannGT/lisa`) |
42
+ | **PRD defect** | The ticket faithfully captured the PRD, but the PRD itself was wrong, ambiguous, or missing the failing case. A spec problem, not an agent problem. | Comment on the source PRD via `lisa-prd-backlink` lineage; flag for product review — never silently edit the spec |
43
+ | **Missing tool access** | An agent lacked a tool, credential, environment, or permission the work required, and the failure traces to that gap rather than to the code. | Provisioning ticket via `lisa-tracker-write` (`type:tooling`) |
41
44
 
42
45
  A finding that does not fit any category is itself a signal — surface it under a sixth ad-hoc category `Uncategorized` with a note explaining why no category fit. Better to surface than to drop.
43
46
 
@@ -0,0 +1,6 @@
1
+ ---
2
+ description: "Serve the current manual regression checklist: curated journeys minus live automated E2E coverage, in plain language."
3
+ argument-hint: ""
4
+ ---
5
+
6
+ Use the /lisa-qa-checklist skill to serve the manual regression checklist. $ARGUMENTS
@@ -0,0 +1,6 @@
1
+ ---
2
+ description: "Bulk-move QA-queue tickets scoped entirely to non-user-facing repos to the configured certified status, with an auditable moved-list report."
3
+ argument-hint: ""
4
+ ---
5
+
6
+ Use the /lisa-qa-clear skill to clear non-human-verifiable tickets from the QA queue. $ARGUMENTS
@@ -0,0 +1,6 @@
1
+ ---
2
+ description: "File a QA failure: find the right ticket (never a duplicate), write the structured failure report, diagnose the expectation gap, label qa-fail, and return the ticket to build-ready."
3
+ argument-hint: "[ticket-key] <what you saw, in your own words>"
4
+ ---
5
+
6
+ Use the /lisa-qa-fail skill to file this QA failure. $ARGUMENTS
@@ -0,0 +1,6 @@
1
+ ---
2
+ description: "Serve the next ticket awaiting QA verdict as a plain-language acceptance brief; record pass (→ certified) or fail (→ structured report via lisa-qa-fail)."
3
+ argument-hint: "[pass | fail <description> | next]"
4
+ ---
5
+
6
+ Use the /lisa-qa-queue skill to serve the QA acceptance queue. $ARGUMENTS
@@ -0,0 +1,6 @@
1
+ ---
2
+ description: "Detect whether a ticket is rework bounced back from QA/staging, classify why the previous agent attempt failed, and route the cause to its hardening destination (upstream Lisa issue, provisioning ticket, or PRD defect flag)."
3
+ argument-hint: "<ticket-key-or-url>"
4
+ ---
5
+
6
+ Use the /lisa-rework-triage skill to detect and classify rework on the given ticket. $ARGUMENTS
@@ -29,8 +29,11 @@ For every row marked **Accept**:
29
29
  | Edge case | Edge Case Brainstorm checklist in `intent-routing.md` | Append the new pattern + question to the matching group (Navigation, Data, Failure, Input, Auth, or a new group if none fit). Use the row's `Summary` and `Evidence` link as a citation comment. |
30
30
  | Recurring gotcha | Memory file (`project_*.md`) | Write a new memory entry with `type: project`, structured as: rule, **Why:**, **How to apply:**. Add an index line to `MEMORY.md`. |
31
31
  | Process friction | Configured project rules file | Append a one-line guideline to the `.lisa.config.json` `projectRulesFile` destination (default `PROJECT_RULES.md`) under an appropriate heading (or create one). |
32
- | Tooling gap | Configured tracker | Create a new ticket via `lisa-tracker-write` with `issue_type: Task`, summary derived from the row's `Summary`, description citing the evidence and the originating debrief doc. Label appropriately (`type:tooling`, `lifecycle-improvement`, etc.). |
32
+ | Tooling gap | Configured tracker — or upstream Lisa when harness-level | **Split by level.** Project-level (a missing project script, hook, or automation) → create a ticket via `lisa-tracker-write` with `issue_type: Task`, summary derived from the row's `Summary`, description citing the evidence and the originating debrief doc, labeled `type:tooling` / `lifecycle-improvement`. Harness-level (a Lisa skill/gate/agent that should have caught the issue but didn't) → file an upstream Lisa issue exactly per the "Filing upstream" procedure in `lisa-rework-triage` (dedupe search first, three-audience description, evidence chain, `self-hardening` label; repo from `.lisa.config.json` `hardening.upstreamRepo`, default `CodySwannGT/lisa`). |
33
33
  | Convention drift | `CLAUDE.md` for project-wide agent operating instructions; otherwise the configured project rules file for codebase conventions | Append the convention as a one-paragraph note under the relevant section. If no relevant section exists, create one. |
34
+ | Decomposition infidelity | Upstream Lisa repo | File an upstream Lisa issue per the "Filing upstream" procedure in `lisa-rework-triage`, citing the PRD text vs. the distorted ticket AC and naming the gate that passed it. |
35
+ | PRD defect | Source PRD | Comment on the PRD via the `lisa-prd-backlink` lineage quoting the defective requirement and the failure it missed; flag for product review. Never silently edit the spec. |
36
+ | Missing tool access | Configured tracker | Create a provisioning ticket via `lisa-tracker-write` (`issue_type: Task`, `type:tooling`) describing the missing tool/credential/environment and which flow needs it. |
34
37
 
35
38
  For every row marked **Reject** or **Defer**: no action. Defer is a no-op for `apply` but worth surfacing in the run summary — the human may want to revisit at the next debrief.
36
39
 
@@ -51,8 +54,12 @@ Applied <n> learnings:
51
54
  <n> edge cases → intent-routing.md
52
55
  <n> gotchas → memory
53
56
  <n> friction → PROJECT_RULES.md
54
- <n> tooling gaps → <tracker> (<key1>, <key2>, ...)
57
+ <n> tooling gaps (project) → <tracker> (<key1>, <key2>, ...)
58
+ <n> tooling gaps (harness) → upstream Lisa (<issue-url1>, ...)
55
59
  <n> convention drift → CLAUDE.md
60
+ <n> decomposition infidelity → upstream Lisa (<issue-url1>, ...)
61
+ <n> PRD defects → PRD comments (<prd-link1>, ...)
62
+ <n> missing tool access → <tracker> (<key1>, ...)
56
63
  Skipped:
57
64
  <n> rejected, <n> deferred, <n> already-applied
58
65
  Failed:
@@ -0,0 +1,70 @@
1
+ ---
2
+ name: lisa-qa-checklist
3
+ description: "Serve the current manual regression checklist to a human QA tester. Reads the project's curated journey list, cross-references it against what the automated suites (Playwright web E2E, Maestro native E2E) actually cover by scanning the spec files, and serves only the journeys that still need human eyes — each as plain-language steps. Keeps a single source of truth so testers never work from a stale personal copy, and shrinks automatically as automated coverage grows."
4
+ allowed-tools: ["Bash", "Read", "Glob", "Grep", "Write", "Edit"]
5
+ ---
6
+
7
+ # QA Checklist: $ARGUMENTS
8
+
9
+ The manual regression sweep exists to catch what automation does not. Its checklist must
10
+ therefore be computed, not remembered: curated journeys minus automated coverage, at the
11
+ moment the tester asks.
12
+
13
+ ## Sources
14
+
15
+ 1. **Curated journey list** — `qa.checklistFile` in `.lisa.config.json`, default
16
+ `.lisa/qa-checklist.md`. Format: one `## Journey: <name>` section per user journey,
17
+ with plain-language steps and an optional `automation:` line naming the covering spec
18
+ file(s) once one exists. If the file does not exist, offer to bootstrap it: derive
19
+ candidate journeys from the app's route map and the existing E2E suites' describe
20
+ blocks, write the draft, and ask the operator to curate it once. Never invent
21
+ journeys silently.
22
+ 2. **Automated coverage** — scan the repo's E2E suites (Playwright specs, Maestro flows;
23
+ locate via the project's e2e/test directories). An `automation:` line must name BOTH
24
+ the spec file and the specific test within it (the Playwright `describe`/`test` title
25
+ or Maestro flow name): `automation: <spec-path> :: <test-or-flow-name>`. A journey
26
+ counts as covered only when that spec file exists, the named test/flow is present in
27
+ it, and it is not skipped (`test.skip`, commented-out flow, or excluded from CI). A
28
+ file-only line, a named test that no longer matches, or any ambiguous mapping is
29
+ treated as **uncovered** — a live filename proves nothing about what the spec
30
+ exercises. A deleted, renamed, or skipped test silently un-covers its journey — the
31
+ very regression this check exists to catch; call it out loudly.
32
+
33
+ ## Serving the sweep
34
+
35
+ Present two lists, human-first:
36
+
37
+ ```text
38
+ ## Manual sweep — <n> journeys need your eyes
39
+ 1. <Journey name> — <plain-language steps>
40
+ Why manual: <no automation | automation skipped/stale: <spec>>
41
+ ...
42
+
43
+ ## Covered by automation — <n> journeys (skim, don't re-test)
44
+ - <Journey name> — <spec file> (<playwright|maestro>)
45
+ ```
46
+
47
+ Rules for the served text: steps an intern can follow, no spec-file jargon in the manual
48
+ section beyond the "why manual" line, and stable journey ordering (file order) so testers
49
+ can resume mid-sweep.
50
+
51
+ ## Maintaining the list
52
+
53
+ - Tester or operator adds/edits journeys in plain language → edit the checklist file
54
+ (this skill may apply the edit on request; it is a repo file, so changes ride normal
55
+ review).
56
+ - When a journey gains automation (e.g. `lisa-codify-verification` lands a spec), add its
57
+ `automation: <spec-path> :: <test-or-flow-name>` line — on request this skill locates
58
+ the covering spec and test, confirms the named test actually drives the journey's
59
+ steps, and writes the line itself.
60
+ - Never maintain per-tester copies; the file is the single source of truth and the
61
+ computed view is always derived fresh.
62
+
63
+ ## Rules
64
+
65
+ - Coverage claims must point at an existing, non-skipped spec — "there's a test somewhere"
66
+ does not count.
67
+ - Serving is read-only by default; file edits happen only on explicit request.
68
+ - If the automated-coverage scan finds specs exercising a journey that is missing from
69
+ the curated list entirely, surface it as a suggested addition — the human curates, the
70
+ skill proposes.