@codyswann/lisa 2.230.1 → 2.232.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 (93) hide show
  1. package/dist/cli/ui-cmd.d.ts.map +1 -1
  2. package/dist/cli/ui-cmd.js +8 -2
  3. package/dist/cli/ui-cmd.js.map +1 -1
  4. package/dist/cli/ui-config-write.d.ts +13 -0
  5. package/dist/cli/ui-config-write.d.ts.map +1 -0
  6. package/dist/cli/ui-config-write.js +283 -0
  7. package/dist/cli/ui-config-write.js.map +1 -0
  8. package/package.json +1 -1
  9. package/plugins/lisa/.claude-plugin/plugin.json +1 -1
  10. package/plugins/lisa/.codex-plugin/plugin.json +1 -1
  11. package/plugins/lisa/.codex-plugin/skills/lisa-debrief-apply/SKILL.md +9 -2
  12. package/plugins/lisa/.codex-plugin/skills/lisa-rework-triage/SKILL.md +155 -0
  13. package/plugins/lisa/.codex-plugin/skills/lisa-rework-triage/agents/openai.yaml +4 -0
  14. package/plugins/lisa/.codex-plugin/skills/lisa-ticket-triage/SKILL.md +20 -0
  15. package/plugins/lisa/agents/learner.md +8 -1
  16. package/plugins/lisa/agents/learnings-synthesizer.md +4 -1
  17. package/plugins/lisa/commands/rework-triage.md +6 -0
  18. package/plugins/lisa/skills/lisa-debrief-apply/SKILL.md +9 -2
  19. package/plugins/lisa/skills/lisa-rework-triage/SKILL.md +155 -0
  20. package/plugins/lisa/skills/lisa-rework-triage/agents/openai.yaml +4 -0
  21. package/plugins/lisa/skills/lisa-ticket-triage/SKILL.md +21 -1
  22. package/plugins/lisa-agy/agents/learner.md +8 -1
  23. package/plugins/lisa-agy/agents/learnings-synthesizer.md +4 -1
  24. package/plugins/lisa-agy/commands/lisa/rework-triage.md +6 -0
  25. package/plugins/lisa-agy/plugin.json +1 -1
  26. package/plugins/lisa-agy/skills/lisa-debrief-apply/SKILL.md +9 -2
  27. package/plugins/lisa-agy/skills/lisa-rework-triage/SKILL.md +155 -0
  28. package/plugins/lisa-agy/skills/lisa-ticket-triage/SKILL.md +21 -1
  29. package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
  30. package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
  31. package/plugins/lisa-cdk-agy/plugin.json +1 -1
  32. package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +1 -1
  33. package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +1 -1
  34. package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
  35. package/plugins/lisa-copilot/agents/learner.agent.md +8 -1
  36. package/plugins/lisa-copilot/agents/learnings-synthesizer.agent.md +4 -1
  37. package/plugins/lisa-copilot/commands/lisa/rework-triage.md +6 -0
  38. package/plugins/lisa-copilot/skills/lisa-debrief-apply/SKILL.md +9 -2
  39. package/plugins/lisa-copilot/skills/lisa-rework-triage/SKILL.md +155 -0
  40. package/plugins/lisa-copilot/skills/lisa-ticket-triage/SKILL.md +21 -1
  41. package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
  42. package/plugins/lisa-cursor/agents/learner.md +8 -1
  43. package/plugins/lisa-cursor/agents/learnings-synthesizer.md +4 -1
  44. package/plugins/lisa-cursor/commands/lisa/rework-triage.md +6 -0
  45. package/plugins/lisa-cursor/skills/lisa-debrief-apply/SKILL.md +9 -2
  46. package/plugins/lisa-cursor/skills/lisa-rework-triage/SKILL.md +155 -0
  47. package/plugins/lisa-cursor/skills/lisa-ticket-triage/SKILL.md +21 -1
  48. package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
  49. package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
  50. package/plugins/lisa-expo-agy/plugin.json +1 -1
  51. package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
  52. package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
  53. package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
  54. package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
  55. package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
  56. package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +1 -1
  57. package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
  58. package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
  59. package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
  60. package/plugins/lisa-nestjs-agy/plugin.json +1 -1
  61. package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +1 -1
  62. package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +1 -1
  63. package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
  64. package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
  65. package/plugins/lisa-openclaw-agy/plugin.json +1 -1
  66. package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +1 -1
  67. package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +1 -1
  68. package/plugins/lisa-phaser/.claude-plugin/plugin.json +1 -1
  69. package/plugins/lisa-phaser/.codex-plugin/plugin.json +1 -1
  70. package/plugins/lisa-phaser-agy/plugin.json +1 -1
  71. package/plugins/lisa-phaser-copilot/.claude-plugin/plugin.json +1 -1
  72. package/plugins/lisa-phaser-cursor/.claude-plugin/plugin.json +1 -1
  73. package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
  74. package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
  75. package/plugins/lisa-rails-agy/plugin.json +1 -1
  76. package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +1 -1
  77. package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +1 -1
  78. package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
  79. package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
  80. package/plugins/lisa-typescript-agy/plugin.json +1 -1
  81. package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +1 -1
  82. package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +1 -1
  83. package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
  84. package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
  85. package/plugins/lisa-wiki-agy/plugin.json +1 -1
  86. package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
  87. package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
  88. package/plugins/src/base/agents/learner.md +8 -1
  89. package/plugins/src/base/agents/learnings-synthesizer.md +4 -1
  90. package/plugins/src/base/commands/rework-triage.md +6 -0
  91. package/plugins/src/base/skills/lisa-debrief-apply/SKILL.md +9 -2
  92. package/plugins/src/base/skills/lisa-rework-triage/SKILL.md +155 -0
  93. 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.230.1",
3
+ "version": "2.232.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.230.1",
3
+ "version": "2.232.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.230.1",
3
+ "version": "2.232.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.230.1",
3
+ "version": "2.232.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.230.1",
3
+ "version": "2.232.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.230.1",
3
+ "version": "2.232.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.230.1",
3
+ "version": "2.232.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.230.1",
3
+ "version": "2.232.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.230.1",
3
+ "version": "2.232.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.230.1",
3
+ "version": "2.232.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.230.1",
3
+ "version": "2.232.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.230.1",
3
+ "version": "2.232.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.230.1",
3
+ "version": "2.232.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.230.1",
3
+ "version": "2.232.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.230.1",
3
+ "version": "2.232.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.230.1",
3
+ "version": "2.232.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.230.1",
3
+ "version": "2.232.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.230.1",
3
+ "version": "2.232.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.230.1",
3
+ "version": "2.232.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.230.1",
3
+ "version": "2.232.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.230.1",
3
+ "version": "2.232.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.230.1",
3
+ "version": "2.232.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.230.1",
3
+ "version": "2.232.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.230.1",
3
+ "version": "2.232.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.230.1",
3
+ "version": "2.232.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.230.1",
3
+ "version": "2.232.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.230.1",
3
+ "version": "2.232.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.230.1",
3
+ "version": "2.232.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.230.1",
3
+ "version": "2.232.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.230.1",
3
+ "version": "2.232.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.230.1",
3
+ "version": "2.232.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.230.1",
3
+ "version": "2.232.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.230.1",
3
+ "version": "2.232.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.230.1",
3
+ "version": "2.232.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.230.1",
3
+ "version": "2.232.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.230.1",
3
+ "version": "2.232.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.230.1",
3
+ "version": "2.232.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.230.1",
3
+ "version": "2.232.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.230.1",
3
+ "version": "2.232.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.230.1",
3
+ "version": "2.232.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: "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: