@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.
- package/package.json +1 -1
- package/plugins/lisa/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa/.codex-plugin/skills/lisa-debrief-apply/SKILL.md +9 -2
- package/plugins/lisa/.codex-plugin/skills/lisa-qa-checklist/SKILL.md +70 -0
- package/plugins/lisa/.codex-plugin/skills/lisa-qa-checklist/agents/openai.yaml +4 -0
- package/plugins/lisa/.codex-plugin/skills/lisa-qa-clear/SKILL.md +74 -0
- package/plugins/lisa/.codex-plugin/skills/lisa-qa-clear/agents/openai.yaml +4 -0
- package/plugins/lisa/.codex-plugin/skills/lisa-qa-fail/SKILL.md +92 -0
- package/plugins/lisa/.codex-plugin/skills/lisa-qa-fail/agents/openai.yaml +4 -0
- package/plugins/lisa/.codex-plugin/skills/lisa-qa-queue/SKILL.md +69 -0
- package/plugins/lisa/.codex-plugin/skills/lisa-qa-queue/agents/openai.yaml +4 -0
- package/plugins/lisa/.codex-plugin/skills/lisa-rework-triage/SKILL.md +155 -0
- package/plugins/lisa/.codex-plugin/skills/lisa-rework-triage/agents/openai.yaml +4 -0
- package/plugins/lisa/.codex-plugin/skills/lisa-ticket-triage/SKILL.md +20 -0
- package/plugins/lisa/agents/learner.md +8 -1
- package/plugins/lisa/agents/learnings-synthesizer.md +4 -1
- package/plugins/lisa/commands/qa-checklist.md +6 -0
- package/plugins/lisa/commands/qa-clear.md +6 -0
- package/plugins/lisa/commands/qa-fail.md +6 -0
- package/plugins/lisa/commands/qa-queue.md +6 -0
- package/plugins/lisa/commands/rework-triage.md +6 -0
- package/plugins/lisa/skills/lisa-debrief-apply/SKILL.md +9 -2
- package/plugins/lisa/skills/lisa-qa-checklist/SKILL.md +70 -0
- package/plugins/lisa/skills/lisa-qa-checklist/agents/openai.yaml +4 -0
- package/plugins/lisa/skills/lisa-qa-clear/SKILL.md +74 -0
- package/plugins/lisa/skills/lisa-qa-clear/agents/openai.yaml +4 -0
- package/plugins/lisa/skills/lisa-qa-fail/SKILL.md +92 -0
- package/plugins/lisa/skills/lisa-qa-fail/agents/openai.yaml +4 -0
- package/plugins/lisa/skills/lisa-qa-queue/SKILL.md +69 -0
- package/plugins/lisa/skills/lisa-qa-queue/agents/openai.yaml +4 -0
- package/plugins/lisa/skills/lisa-rework-triage/SKILL.md +155 -0
- package/plugins/lisa/skills/lisa-rework-triage/agents/openai.yaml +4 -0
- package/plugins/lisa/skills/lisa-ticket-triage/SKILL.md +21 -1
- package/plugins/lisa-agy/agents/learner.md +8 -1
- package/plugins/lisa-agy/agents/learnings-synthesizer.md +4 -1
- package/plugins/lisa-agy/commands/lisa/qa-checklist.md +6 -0
- package/plugins/lisa-agy/commands/lisa/qa-clear.md +6 -0
- package/plugins/lisa-agy/commands/lisa/qa-fail.md +6 -0
- package/plugins/lisa-agy/commands/lisa/qa-queue.md +6 -0
- package/plugins/lisa-agy/commands/lisa/rework-triage.md +6 -0
- package/plugins/lisa-agy/plugin.json +1 -1
- package/plugins/lisa-agy/skills/lisa-debrief-apply/SKILL.md +9 -2
- package/plugins/lisa-agy/skills/lisa-qa-checklist/SKILL.md +70 -0
- package/plugins/lisa-agy/skills/lisa-qa-clear/SKILL.md +74 -0
- package/plugins/lisa-agy/skills/lisa-qa-fail/SKILL.md +92 -0
- package/plugins/lisa-agy/skills/lisa-qa-queue/SKILL.md +69 -0
- package/plugins/lisa-agy/skills/lisa-rework-triage/SKILL.md +155 -0
- package/plugins/lisa-agy/skills/lisa-ticket-triage/SKILL.md +21 -1
- package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk-agy/plugin.json +1 -1
- package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-copilot/agents/learner.agent.md +8 -1
- package/plugins/lisa-copilot/agents/learnings-synthesizer.agent.md +4 -1
- package/plugins/lisa-copilot/commands/lisa/qa-checklist.md +6 -0
- package/plugins/lisa-copilot/commands/lisa/qa-clear.md +6 -0
- package/plugins/lisa-copilot/commands/lisa/qa-fail.md +6 -0
- package/plugins/lisa-copilot/commands/lisa/qa-queue.md +6 -0
- package/plugins/lisa-copilot/commands/lisa/rework-triage.md +6 -0
- package/plugins/lisa-copilot/skills/lisa-debrief-apply/SKILL.md +9 -2
- package/plugins/lisa-copilot/skills/lisa-qa-checklist/SKILL.md +70 -0
- package/plugins/lisa-copilot/skills/lisa-qa-clear/SKILL.md +74 -0
- package/plugins/lisa-copilot/skills/lisa-qa-fail/SKILL.md +92 -0
- package/plugins/lisa-copilot/skills/lisa-qa-queue/SKILL.md +69 -0
- package/plugins/lisa-copilot/skills/lisa-rework-triage/SKILL.md +155 -0
- package/plugins/lisa-copilot/skills/lisa-ticket-triage/SKILL.md +21 -1
- package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cursor/agents/learner.md +8 -1
- package/plugins/lisa-cursor/agents/learnings-synthesizer.md +4 -1
- package/plugins/lisa-cursor/commands/lisa/qa-checklist.md +6 -0
- package/plugins/lisa-cursor/commands/lisa/qa-clear.md +6 -0
- package/plugins/lisa-cursor/commands/lisa/qa-fail.md +6 -0
- package/plugins/lisa-cursor/commands/lisa/qa-queue.md +6 -0
- package/plugins/lisa-cursor/commands/lisa/rework-triage.md +6 -0
- package/plugins/lisa-cursor/skills/lisa-debrief-apply/SKILL.md +9 -2
- package/plugins/lisa-cursor/skills/lisa-qa-checklist/SKILL.md +70 -0
- package/plugins/lisa-cursor/skills/lisa-qa-clear/SKILL.md +74 -0
- package/plugins/lisa-cursor/skills/lisa-qa-fail/SKILL.md +92 -0
- package/plugins/lisa-cursor/skills/lisa-qa-queue/SKILL.md +69 -0
- package/plugins/lisa-cursor/skills/lisa-rework-triage/SKILL.md +155 -0
- package/plugins/lisa-cursor/skills/lisa-ticket-triage/SKILL.md +21 -1
- package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-expo-agy/plugin.json +1 -1
- package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs-agy/plugin.json +1 -1
- package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw-agy/plugin.json +1 -1
- package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser-agy/plugin.json +1 -1
- package/plugins/lisa-phaser-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-rails-agy/plugin.json +1 -1
- package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript-agy/plugin.json +1 -1
- package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki-agy/plugin.json +1 -1
- package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/src/base/agents/learner.md +8 -1
- package/plugins/src/base/agents/learnings-synthesizer.md +4 -1
- package/plugins/src/base/commands/qa-checklist.md +6 -0
- package/plugins/src/base/commands/qa-clear.md +6 -0
- package/plugins/src/base/commands/qa-fail.md +6 -0
- package/plugins/src/base/commands/qa-queue.md +6 -0
- package/plugins/src/base/commands/rework-triage.md +6 -0
- package/plugins/src/base/skills/lisa-debrief-apply/SKILL.md +9 -2
- package/plugins/src/base/skills/lisa-qa-checklist/SKILL.md +70 -0
- package/plugins/src/base/skills/lisa-qa-clear/SKILL.md +74 -0
- package/plugins/src/base/skills/lisa-qa-fail/SKILL.md +92 -0
- package/plugins/src/base/skills/lisa-qa-queue/SKILL.md +69 -0
- package/plugins/src/base/skills/lisa-rework-triage/SKILL.md +155 -0
- 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,
|
|
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-openclaw",
|
|
3
|
-
"version": "2.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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"
|
|
@@ -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: "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 |
|
|
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.
|