@codyswann/lisa 2.12.0 → 2.14.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/rules/base-rules.md +1 -0
- package/plugins/lisa/skills/git-submit-pr/SKILL.md +3 -1
- package/plugins/lisa/skills/tracker-evidence/SKILL.md +23 -0
- package/plugins/lisa/skills/verify/SKILL.md +1 -1
- package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
- package/plugins/src/base/rules/base-rules.md +1 -0
- package/plugins/src/base/skills/git-submit-pr/SKILL.md +3 -1
- package/plugins/src/base/skills/tracker-evidence/SKILL.md +23 -0
- package/plugins/src/base/skills/verify/SKILL.md +1 -1
package/package.json
CHANGED
|
@@ -79,7 +79,7 @@
|
|
|
79
79
|
"lodash": ">=4.18.1"
|
|
80
80
|
},
|
|
81
81
|
"name": "@codyswann/lisa",
|
|
82
|
-
"version": "2.
|
|
82
|
+
"version": "2.14.0",
|
|
83
83
|
"description": "Claude Code governance framework that applies guardrails, guidance, and automated enforcement to projects",
|
|
84
84
|
"main": "dist/index.js",
|
|
85
85
|
"exports": {
|
|
@@ -56,6 +56,7 @@ Git Discipline:
|
|
|
56
56
|
- When opening a PR, watch the PR. If any status checks fail, fix them. For all bot code reviews, if the feedback is valid, implement it and push the change to the PR. Then resolve the feedback. If the feedback is not valid, reply to the feedback explaining why it's not valid and then resolve the feedback. Do this in a loop until the PR is able to be merged and then merge it.
|
|
57
57
|
- When merging a PR into an environment branch (dev, staging, main), watch the resultant deploy until it fully succeeds. If it fails for any reason, fix the failure and then open a new PR with the fix.
|
|
58
58
|
- When referencing a PR in a response, always include the url
|
|
59
|
+
- **Promotion PRs (environment branch → environment branch — e.g., `dev` → `staging`, `staging` → `main`) MUST be merged with a regular merge commit (`gh pr merge --merge`), NEVER squash-merged.** Squashing flattens the constituent `chore(release): X.Y.Z [skip ci]` commits into a single commit titled with the PR title, which (a) strips the `[skip ci]` markers so the release workflow re-runs and double-bumps the version on the destination branch, and (b) breaks the release workflow's promotion-detection regex (which inspects the merge-commit subject for `Merge branch 'X' into Y` or `Merge pull request #N from .../<env-branch>`). The merge commit produced by `--merge` keeps the subject clean and the per-commit `[skip ci]` markers attached where they belong. Feature PRs (anything → `dev`) use `--squash` as usual.
|
|
59
60
|
|
|
60
61
|
Testing Discipline:
|
|
61
62
|
- Never skip or disable any tests or quality checks.
|
|
@@ -24,7 +24,9 @@ Push current branch and create or update a pull request. Optional hint: $ARGUMEN
|
|
|
24
24
|
- Check for existing PR on this branch
|
|
25
25
|
- If exists: Update description with latest changes
|
|
26
26
|
- If not: Create PR with comprehensive description (not a draft)
|
|
27
|
-
5. **Auto-merge**:
|
|
27
|
+
5. **Auto-merge**: Choose merge strategy by PR type:
|
|
28
|
+
- **Promotion PRs** (env → env, e.g. `dev` → `staging`): use `gh pr merge --auto --merge` (never squash). Squashing flattens the constituent `chore(release): X.Y.Z [skip ci]` commits into one commit titled with the PR title, stripping the `[skip ci]` markers and breaking the release workflow's promotion-detection regex — the destination branch then double-bumps its version. `--merge` keeps each `chore(release)` commit (and its `[skip ci]` marker) intact under a clean merge commit subject the workflow can recognize.
|
|
29
|
+
- **Feature PRs** (anything → `dev`): use `gh pr merge --auto --squash`.
|
|
28
30
|
|
|
29
31
|
### PR Description Format
|
|
30
32
|
|
|
@@ -24,3 +24,26 @@ See the `config-resolution` rule for configuration and dispatch table.
|
|
|
24
24
|
|
|
25
25
|
- The GitHub `pr-assets` release lives on the implementation repo (the one with the PR), regardless of which tracker hosts the ticket/issue. All vendor skills upload there.
|
|
26
26
|
- Never post evidence to a different ticket than the one named — `$ARGUMENTS` is the source of truth.
|
|
27
|
+
|
|
28
|
+
## UI Evidence Checklist (when work is UI-visible)
|
|
29
|
+
|
|
30
|
+
Apply this when authoring `evidence/comment.md` (and `evidence/comment.txt` for JIRA wiki markup) for any ticket whose work touches a user-facing surface — bug fix, new component, new flow, UX polish, design implementation. Skip the checklist for non-UI work (API, infra, migrations, etc.); the plain-text evidence path is fine there.
|
|
31
|
+
|
|
32
|
+
The checklist is tracker-agnostic — the same shape works on JIRA, GitHub Issues, and Linear. Vendor skills only own the post/transition mechanics; the comment body is your responsibility.
|
|
33
|
+
|
|
34
|
+
1. **AI disclosure at the top.** Lead with "Update from Claude (AI agent, not a human)" and address the reporter / QA / PM by name.
|
|
35
|
+
2. **Own any prior mistake explicitly.** If an earlier triage or build pass got something wrong, say so up front. Don't bury it.
|
|
36
|
+
3. **Numbered step-by-step walk** of what you actually did in the browser/app, in plain language a non-engineer can follow:
|
|
37
|
+
- Exact env (URL, viewport size — e.g. `402×874` for an iOS-sized mobile flow)
|
|
38
|
+
- Login creds shape — e.g. `(000) 000-0002` + OTP `555555`
|
|
39
|
+
- Exact record/player name, exact button labels as they appear on screen
|
|
40
|
+
- Full happy-path **and** any non-obvious edge state worth showing (empty state, loading, post-completion)
|
|
41
|
+
4. **One screenshot per step**, captured live via Playwright MCP at the matching viewport. Upload via `gh release upload pr-assets <files> --clobber` and reference each one as a **plain URL** in the comment body — *not* `` markdown embeds. Plain URLs render as smartlinks/auto-embeds across all three trackers and stay individually viewable; markdown embeds collapse on JIRA when there are ≥2.
|
|
42
|
+
5. **"What this shows" section.** Tailor to ticket type:
|
|
43
|
+
- **Bug repro:** state plainly whether the bug reproduces or not, and the most likely 1–2 reasons their retest still failed (different env, native app vs. web, stuck backend row, etc.).
|
|
44
|
+
- **Feature/UX completion:** state plainly which acceptance criteria each screenshot covers, and call out any deferred or out-of-scope surface explicitly so QA/PM doesn't have to infer.
|
|
45
|
+
6. **"What would help me confirm" (bug) / "How to QA" (feature) section.** Concrete actionable retest steps with the exact selection criteria (e.g., "pick a record whose Status column shows `—`, not `Processing` or `Pending Review`").
|
|
46
|
+
7. **Explicit invitation to be corrected.** End with a line like *"If any of the steps I listed are different from what you expected / actually did, please tell me explicitly which step I got wrong."* Non-optional — small differences (which record, which device, exact tap order, expected behavior) change everything, and naming the door open short-circuits ticket bounce-loops.
|
|
47
|
+
8. **Workflow transition** is the vendor skill's job, not yours — it'll move the ticket per the configured tracker (JIRA: Reassign to reporter for bug repro / move to Awaiting QA for feature; GitHub: relabel `status:code-review` or equivalent; Linear: equivalent state). You don't transition manually.
|
|
48
|
+
|
|
49
|
+
**Why this format:** It (a) gives the reporter a frame-by-frame they can compare against, (b) avoids the JIRA image-collapse failure mode while still working everywhere else, (c) names the most plausible discrepancies up front so the loop short-circuits, (d) explicitly opens the door to being corrected so tickets don't bounce on assumed alignment. The same mechanics that resolve a stuck bug ticket also give QA an unambiguous handoff for a freshly-built feature.
|
|
@@ -29,7 +29,7 @@ Execute the **Verify** flow as defined in the `intent-routing` rule (loaded via
|
|
|
29
29
|
4. **Review loop** — handle CodeRabbit / human review comments via `lisa:pull-request-review`
|
|
30
30
|
5. **Merge** when CI is green
|
|
31
31
|
6. **Remote verification** — invoke the `lisa:monitor` skill against the target environment to confirm the deploy actually works (health endpoints, recent logs/errors, Validation Journey replay if defined). If remote verification surfaces a behavioral gap that the existing codified tests do not guard, invoke `codify-verification` to add coverage and open a follow-up PR.
|
|
32
|
-
7. **Evidence** — post results to the originating ticket via `lisa:tracker-evidence` (vendor-neutral; dispatches to `lisa:jira-evidence`, `lisa:github-evidence`, or `lisa:linear-evidence` per `.lisa.config.json` `tracker`), including the list of codified tests added on this branch.
|
|
32
|
+
7. **Evidence** — post results to the originating ticket via `lisa:tracker-evidence` (vendor-neutral; dispatches to `lisa:jira-evidence`, `lisa:github-evidence`, or `lisa:linear-evidence` per `.lisa.config.json` `tracker`), including the list of codified tests added on this branch. **If the work is UI-visible** (any verification step ran in a browser, or the change touches a user-facing surface), author `evidence/comment.md` per the **UI Evidence Checklist** in `lisa:tracker-evidence` — numbered live-session steps, one Playwright-MCP screenshot per step uploaded to the GitHub `pr-assets` release as plain URLs, and an explicit invitation to be corrected.
|
|
33
33
|
|
|
34
34
|
The rule contains the canonical step sequence. Change it there, propagate everywhere.
|
|
35
35
|
|
|
@@ -56,6 +56,7 @@ Git Discipline:
|
|
|
56
56
|
- When opening a PR, watch the PR. If any status checks fail, fix them. For all bot code reviews, if the feedback is valid, implement it and push the change to the PR. Then resolve the feedback. If the feedback is not valid, reply to the feedback explaining why it's not valid and then resolve the feedback. Do this in a loop until the PR is able to be merged and then merge it.
|
|
57
57
|
- When merging a PR into an environment branch (dev, staging, main), watch the resultant deploy until it fully succeeds. If it fails for any reason, fix the failure and then open a new PR with the fix.
|
|
58
58
|
- When referencing a PR in a response, always include the url
|
|
59
|
+
- **Promotion PRs (environment branch → environment branch — e.g., `dev` → `staging`, `staging` → `main`) MUST be merged with a regular merge commit (`gh pr merge --merge`), NEVER squash-merged.** Squashing flattens the constituent `chore(release): X.Y.Z [skip ci]` commits into a single commit titled with the PR title, which (a) strips the `[skip ci]` markers so the release workflow re-runs and double-bumps the version on the destination branch, and (b) breaks the release workflow's promotion-detection regex (which inspects the merge-commit subject for `Merge branch 'X' into Y` or `Merge pull request #N from .../<env-branch>`). The merge commit produced by `--merge` keeps the subject clean and the per-commit `[skip ci]` markers attached where they belong. Feature PRs (anything → `dev`) use `--squash` as usual.
|
|
59
60
|
|
|
60
61
|
Testing Discipline:
|
|
61
62
|
- Never skip or disable any tests or quality checks.
|
|
@@ -24,7 +24,9 @@ Push current branch and create or update a pull request. Optional hint: $ARGUMEN
|
|
|
24
24
|
- Check for existing PR on this branch
|
|
25
25
|
- If exists: Update description with latest changes
|
|
26
26
|
- If not: Create PR with comprehensive description (not a draft)
|
|
27
|
-
5. **Auto-merge**:
|
|
27
|
+
5. **Auto-merge**: Choose merge strategy by PR type:
|
|
28
|
+
- **Promotion PRs** (env → env, e.g. `dev` → `staging`): use `gh pr merge --auto --merge` (never squash). Squashing flattens the constituent `chore(release): X.Y.Z [skip ci]` commits into one commit titled with the PR title, stripping the `[skip ci]` markers and breaking the release workflow's promotion-detection regex — the destination branch then double-bumps its version. `--merge` keeps each `chore(release)` commit (and its `[skip ci]` marker) intact under a clean merge commit subject the workflow can recognize.
|
|
29
|
+
- **Feature PRs** (anything → `dev`): use `gh pr merge --auto --squash`.
|
|
28
30
|
|
|
29
31
|
### PR Description Format
|
|
30
32
|
|
|
@@ -24,3 +24,26 @@ See the `config-resolution` rule for configuration and dispatch table.
|
|
|
24
24
|
|
|
25
25
|
- The GitHub `pr-assets` release lives on the implementation repo (the one with the PR), regardless of which tracker hosts the ticket/issue. All vendor skills upload there.
|
|
26
26
|
- Never post evidence to a different ticket than the one named — `$ARGUMENTS` is the source of truth.
|
|
27
|
+
|
|
28
|
+
## UI Evidence Checklist (when work is UI-visible)
|
|
29
|
+
|
|
30
|
+
Apply this when authoring `evidence/comment.md` (and `evidence/comment.txt` for JIRA wiki markup) for any ticket whose work touches a user-facing surface — bug fix, new component, new flow, UX polish, design implementation. Skip the checklist for non-UI work (API, infra, migrations, etc.); the plain-text evidence path is fine there.
|
|
31
|
+
|
|
32
|
+
The checklist is tracker-agnostic — the same shape works on JIRA, GitHub Issues, and Linear. Vendor skills only own the post/transition mechanics; the comment body is your responsibility.
|
|
33
|
+
|
|
34
|
+
1. **AI disclosure at the top.** Lead with "Update from Claude (AI agent, not a human)" and address the reporter / QA / PM by name.
|
|
35
|
+
2. **Own any prior mistake explicitly.** If an earlier triage or build pass got something wrong, say so up front. Don't bury it.
|
|
36
|
+
3. **Numbered step-by-step walk** of what you actually did in the browser/app, in plain language a non-engineer can follow:
|
|
37
|
+
- Exact env (URL, viewport size — e.g. `402×874` for an iOS-sized mobile flow)
|
|
38
|
+
- Login creds shape — e.g. `(000) 000-0002` + OTP `555555`
|
|
39
|
+
- Exact record/player name, exact button labels as they appear on screen
|
|
40
|
+
- Full happy-path **and** any non-obvious edge state worth showing (empty state, loading, post-completion)
|
|
41
|
+
4. **One screenshot per step**, captured live via Playwright MCP at the matching viewport. Upload via `gh release upload pr-assets <files> --clobber` and reference each one as a **plain URL** in the comment body — *not* `` markdown embeds. Plain URLs render as smartlinks/auto-embeds across all three trackers and stay individually viewable; markdown embeds collapse on JIRA when there are ≥2.
|
|
42
|
+
5. **"What this shows" section.** Tailor to ticket type:
|
|
43
|
+
- **Bug repro:** state plainly whether the bug reproduces or not, and the most likely 1–2 reasons their retest still failed (different env, native app vs. web, stuck backend row, etc.).
|
|
44
|
+
- **Feature/UX completion:** state plainly which acceptance criteria each screenshot covers, and call out any deferred or out-of-scope surface explicitly so QA/PM doesn't have to infer.
|
|
45
|
+
6. **"What would help me confirm" (bug) / "How to QA" (feature) section.** Concrete actionable retest steps with the exact selection criteria (e.g., "pick a record whose Status column shows `—`, not `Processing` or `Pending Review`").
|
|
46
|
+
7. **Explicit invitation to be corrected.** End with a line like *"If any of the steps I listed are different from what you expected / actually did, please tell me explicitly which step I got wrong."* Non-optional — small differences (which record, which device, exact tap order, expected behavior) change everything, and naming the door open short-circuits ticket bounce-loops.
|
|
47
|
+
8. **Workflow transition** is the vendor skill's job, not yours — it'll move the ticket per the configured tracker (JIRA: Reassign to reporter for bug repro / move to Awaiting QA for feature; GitHub: relabel `status:code-review` or equivalent; Linear: equivalent state). You don't transition manually.
|
|
48
|
+
|
|
49
|
+
**Why this format:** It (a) gives the reporter a frame-by-frame they can compare against, (b) avoids the JIRA image-collapse failure mode while still working everywhere else, (c) names the most plausible discrepancies up front so the loop short-circuits, (d) explicitly opens the door to being corrected so tickets don't bounce on assumed alignment. The same mechanics that resolve a stuck bug ticket also give QA an unambiguous handoff for a freshly-built feature.
|
|
@@ -29,7 +29,7 @@ Execute the **Verify** flow as defined in the `intent-routing` rule (loaded via
|
|
|
29
29
|
4. **Review loop** — handle CodeRabbit / human review comments via `lisa:pull-request-review`
|
|
30
30
|
5. **Merge** when CI is green
|
|
31
31
|
6. **Remote verification** — invoke the `lisa:monitor` skill against the target environment to confirm the deploy actually works (health endpoints, recent logs/errors, Validation Journey replay if defined). If remote verification surfaces a behavioral gap that the existing codified tests do not guard, invoke `codify-verification` to add coverage and open a follow-up PR.
|
|
32
|
-
7. **Evidence** — post results to the originating ticket via `lisa:tracker-evidence` (vendor-neutral; dispatches to `lisa:jira-evidence`, `lisa:github-evidence`, or `lisa:linear-evidence` per `.lisa.config.json` `tracker`), including the list of codified tests added on this branch.
|
|
32
|
+
7. **Evidence** — post results to the originating ticket via `lisa:tracker-evidence` (vendor-neutral; dispatches to `lisa:jira-evidence`, `lisa:github-evidence`, or `lisa:linear-evidence` per `.lisa.config.json` `tracker`), including the list of codified tests added on this branch. **If the work is UI-visible** (any verification step ran in a browser, or the change touches a user-facing surface), author `evidence/comment.md` per the **UI Evidence Checklist** in `lisa:tracker-evidence` — numbered live-session steps, one Playwright-MCP screenshot per step uploaded to the GitHub `pr-assets` release as plain URLs, and an explicit invitation to be corrected.
|
|
33
33
|
|
|
34
34
|
The rule contains the canonical step sequence. Change it there, propagate everywhere.
|
|
35
35
|
|