@codyswann/lisa 2.287.0 → 2.288.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 (86) hide show
  1. package/dist/core/upstream-evidence-manifest.js +6 -6
  2. package/package.json +1 -1
  3. package/plugins/lisa/.claude-plugin/plugin.json +1 -1
  4. package/plugins/lisa/.codex-plugin/plugin.json +1 -1
  5. package/plugins/lisa/.codex-plugin/skills/lisa-drive-pr-to-merge/SKILL.md +21 -0
  6. package/plugins/lisa/.codex-plugin/skills/lisa-exploratory-qa/SKILL.md +1 -1
  7. package/plugins/lisa/.codex-plugin/skills/lisa-linear-build-intake/SKILL.md +6 -4
  8. package/plugins/lisa/.codex-plugin/skills/lisa-linear-sync/SKILL.md +2 -2
  9. package/plugins/lisa/.codex-plugin/skills/lisa-verify-prd/SKILL.md +1 -1
  10. package/plugins/lisa/rules/reference/prd-lifecycle-rollup.md +2 -2
  11. package/plugins/lisa/skills/lisa-drive-pr-to-merge/SKILL.md +21 -0
  12. package/plugins/lisa/skills/lisa-exploratory-qa/SKILL.md +1 -1
  13. package/plugins/lisa/skills/lisa-linear-build-intake/SKILL.md +6 -4
  14. package/plugins/lisa/skills/lisa-linear-sync/SKILL.md +2 -2
  15. package/plugins/lisa/skills/lisa-verify-prd/SKILL.md +1 -1
  16. package/plugins/lisa-agy/plugin.json +1 -1
  17. package/plugins/lisa-agy/skills/lisa-drive-pr-to-merge/SKILL.md +21 -0
  18. package/plugins/lisa-agy/skills/lisa-exploratory-qa/SKILL.md +1 -1
  19. package/plugins/lisa-agy/skills/lisa-linear-build-intake/SKILL.md +6 -4
  20. package/plugins/lisa-agy/skills/lisa-linear-sync/SKILL.md +2 -2
  21. package/plugins/lisa-agy/skills/lisa-verify-prd/SKILL.md +1 -1
  22. package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
  23. package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
  24. package/plugins/lisa-cdk-agy/plugin.json +1 -1
  25. package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +1 -1
  26. package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +1 -1
  27. package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
  28. package/plugins/lisa-copilot/rules/reference/prd-lifecycle-rollup.md +2 -2
  29. package/plugins/lisa-copilot/skills/lisa-drive-pr-to-merge/SKILL.md +21 -0
  30. package/plugins/lisa-copilot/skills/lisa-exploratory-qa/SKILL.md +1 -1
  31. package/plugins/lisa-copilot/skills/lisa-linear-build-intake/SKILL.md +6 -4
  32. package/plugins/lisa-copilot/skills/lisa-linear-sync/SKILL.md +2 -2
  33. package/plugins/lisa-copilot/skills/lisa-verify-prd/SKILL.md +1 -1
  34. package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
  35. package/plugins/lisa-cursor/rules/prd-lifecycle-rollup-reference.mdc +2 -2
  36. package/plugins/lisa-cursor/skills/lisa-drive-pr-to-merge/SKILL.md +21 -0
  37. package/plugins/lisa-cursor/skills/lisa-exploratory-qa/SKILL.md +1 -1
  38. package/plugins/lisa-cursor/skills/lisa-linear-build-intake/SKILL.md +6 -4
  39. package/plugins/lisa-cursor/skills/lisa-linear-sync/SKILL.md +2 -2
  40. package/plugins/lisa-cursor/skills/lisa-verify-prd/SKILL.md +1 -1
  41. package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
  42. package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
  43. package/plugins/lisa-expo-agy/plugin.json +1 -1
  44. package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
  45. package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
  46. package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
  47. package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
  48. package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
  49. package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +1 -1
  50. package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
  51. package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
  52. package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
  53. package/plugins/lisa-nestjs-agy/plugin.json +1 -1
  54. package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +1 -1
  55. package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +1 -1
  56. package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
  57. package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
  58. package/plugins/lisa-openclaw-agy/plugin.json +1 -1
  59. package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +1 -1
  60. package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +1 -1
  61. package/plugins/lisa-phaser/.claude-plugin/plugin.json +1 -1
  62. package/plugins/lisa-phaser/.codex-plugin/plugin.json +1 -1
  63. package/plugins/lisa-phaser-agy/plugin.json +1 -1
  64. package/plugins/lisa-phaser-copilot/.claude-plugin/plugin.json +1 -1
  65. package/plugins/lisa-phaser-cursor/.claude-plugin/plugin.json +1 -1
  66. package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
  67. package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
  68. package/plugins/lisa-rails-agy/plugin.json +1 -1
  69. package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +1 -1
  70. package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +1 -1
  71. package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
  72. package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
  73. package/plugins/lisa-typescript-agy/plugin.json +1 -1
  74. package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +1 -1
  75. package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +1 -1
  76. package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
  77. package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
  78. package/plugins/lisa-wiki-agy/plugin.json +1 -1
  79. package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
  80. package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
  81. package/plugins/src/base/rules/reference/prd-lifecycle-rollup.md +2 -2
  82. package/plugins/src/base/skills/lisa-drive-pr-to-merge/SKILL.md +21 -0
  83. package/plugins/src/base/skills/lisa-exploratory-qa/SKILL.md +1 -1
  84. package/plugins/src/base/skills/lisa-linear-build-intake/SKILL.md +6 -4
  85. package/plugins/src/base/skills/lisa-linear-sync/SKILL.md +2 -2
  86. package/plugins/src/base/skills/lisa-verify-prd/SKILL.md +1 -1
@@ -21,7 +21,7 @@ Callers (planning skills, lifecycle skills) invoke this skill at:
21
21
  | Plan created | Plan contents (sections + ordered tasks) as a comment, suggest transition `Backlog → Todo` (label: `status:ready`) |
22
22
  | Implementation in progress | Branch URL + first commit, suggest transition `Todo → In Progress` (label: `status:in-progress`) |
23
23
  | PR ready for review | PR URL + summary, the implementation handoff comment, suggest transition `In Progress → In Review` (label: `status:code-review`) |
24
- | PR merged | Merge SHA + deploy environment (if known), suggest transition `In Review → Done` (label: `status:done`) |
24
+ | PR merged | Merge SHA + deploy environment (if known), suggest transition `In Review → Done` (label: `status:done`), **then run Phase 4b — mandatory when the merge target is a non-terminal env branch** |
25
25
 
26
26
  This skill **suggests** transitions but does not auto-transition the native Linear `state` field. It DOES update the `status:*` label set when the caller asks (the build queue is keyed off labels). Native state transitions remain a human / triage decision.
27
27
 
@@ -94,7 +94,7 @@ Without `--update-label`, this skill posts the comment only and does NOT touch l
94
94
 
95
95
  ## Phase 4b — Reconcile Native Auto-Close (Linear-specific)
96
96
 
97
- Linear's GitHub integration completes a linked Issue on merge to **any branch** — unlike GitHub's default-branch-scoped `Closes` auto-close — so a magic word (`Closes`/`Fixes`/`Resolves ENG-123`) or branch-name linkage can natively move the Issue to a Done/Completed workflow `state` at a **non-terminal** env merge, front-running the env-keyed `status:*` label ladder. `git-submit-pr` prevents the magic-word case; this phase is the required post-merge repair for the residual (branch-linkage) case we cannot suppress server-side. Run it on a `pr-merged` sync whose resolved env is **intermediate** (below the production terminal `done`):
97
+ Linear's GitHub integration completes a linked Issue on merge to **any branch** — unlike GitHub's default-branch-scoped `Closes` auto-close — so a magic word (`Closes`/`Fixes`/`Resolves ENG-123`) or branch-name linkage can natively move the Issue to a Done/Completed workflow `state` at a **non-terminal** env merge, front-running the env-keyed `status:*` label ladder. `git-submit-pr` prevents the magic-word case; this phase is the required post-merge repair for the residual (branch-linkage) case we cannot suppress server-side — branch linkage completes the Issue even when the PR body carries only the non-closing `Linear: <ID>` form. This phase is a **mandatory** numbered step of every `pr-merged` sync, not an optional backstop; run it whenever the resolved env is **intermediate** (below the production terminal `done`):
98
98
 
99
99
  1. Resolve the merged PR's base branch to its env via `.lisa.config.json` `deploy.branches` (`config-resolution`). If it maps to the production/terminal `done`, this phase is a **no-op** — native completion is correct there.
100
100
  2. **Uniform / single-environment no-op.** When the project's env-keyed `done` map is uniform — every environment resolves to the same `status:done`, as in this repo (`production: main` only) and TunnlAI/frontend — dev-merge == terminal, so native completion is correct. Do nothing. Only a **non-uniform** env→`done` map (distinct `status:on-dev`/`status:on-stg`/`status:done` rungs) can desync.
@@ -70,7 +70,7 @@ If neither source yields any generated top-level child (the PRD generated nothin
70
70
  Apply the **per-vendor terminal-state predicate from the `prd-lifecycle-rollup` rule** to every generated **top-level** work item (cite the rule by slug — do not restate its predicate table here). In summary, a top-level child is:
71
71
 
72
72
  - **Terminal** — it has reached its source/tracker's done/shipped state (GitHub: closed + the resolved build `done` role label where used; Linear: a `done`-category completed state; JIRA: `statusCategory.key == "done"`; Notion/Confluence: the documented generated-work entry marked done). A generated Epic is terminal only when *it* has rolled up to its own terminal state per `leaf-only-lifecycle` — read the child's own resolved state; do not re-derive it from its leaves.
73
- - **Terminal-but-dropped** — closed-as-not-planned (GitHub `stateReason == "not_planned"`) / canceled (Linear) / won't-do. It does **not** hold the PRD open and is excluded from the required set.
73
+ - **Terminal-but-dropped** — closed-as-not-planned (GitHub `stateReason == "not_planned"`) / canceled or duplicate (Linear — both are terminal `state.type`s; `duplicate` is distinct from `canceled`) / won't-do. It does **not** hold the PRD open and is excluded from the required set.
74
74
  - **Incomplete / blocked** — anything else (still open, or closed without the `done` role). It holds the PRD open.
75
75
 
76
76
  The **required** set is the top-level children minus the terminal-but-dropped ones. Branch: