@codyswann/lisa 2.187.2 → 2.187.3

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 (87) 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/agents/github-agent.md +2 -1
  5. package/plugins/lisa/agents/jira-agent.md +2 -1
  6. package/plugins/lisa/agents/linear-agent.md +2 -1
  7. package/plugins/lisa/rules/eager/config-resolution.md +11 -0
  8. package/plugins/lisa/rules/eager/pre-flight-autofill.md +7 -2
  9. package/plugins/lisa/rules/reference/config-resolution.md +27 -0
  10. package/plugins/lisa/rules/reference/pre-flight-autofill.md +8 -3
  11. package/plugins/lisa/skills/implement/SKILL.md +3 -3
  12. package/plugins/lisa-agy/agents/github-agent.md +2 -1
  13. package/plugins/lisa-agy/agents/jira-agent.md +2 -1
  14. package/plugins/lisa-agy/agents/linear-agent.md +2 -1
  15. package/plugins/lisa-agy/plugin.json +1 -1
  16. package/plugins/lisa-agy/skills/implement/SKILL.md +3 -3
  17. package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
  18. package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
  19. package/plugins/lisa-cdk-agy/plugin.json +1 -1
  20. package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +1 -1
  21. package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +1 -1
  22. package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
  23. package/plugins/lisa-copilot/agents/github-agent.agent.md +2 -1
  24. package/plugins/lisa-copilot/agents/jira-agent.agent.md +2 -1
  25. package/plugins/lisa-copilot/agents/linear-agent.agent.md +2 -1
  26. package/plugins/lisa-copilot/rules/eager/config-resolution.md +11 -0
  27. package/plugins/lisa-copilot/rules/eager/pre-flight-autofill.md +7 -2
  28. package/plugins/lisa-copilot/rules/reference/config-resolution.md +27 -0
  29. package/plugins/lisa-copilot/rules/reference/pre-flight-autofill.md +8 -3
  30. package/plugins/lisa-copilot/skills/implement/SKILL.md +3 -3
  31. package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
  32. package/plugins/lisa-cursor/agents/github-agent.md +2 -1
  33. package/plugins/lisa-cursor/agents/jira-agent.md +2 -1
  34. package/plugins/lisa-cursor/agents/linear-agent.md +2 -1
  35. package/plugins/lisa-cursor/rules/config-resolution-reference.mdc +27 -0
  36. package/plugins/lisa-cursor/rules/config-resolution.mdc +11 -0
  37. package/plugins/lisa-cursor/rules/pre-flight-autofill-reference.mdc +8 -3
  38. package/plugins/lisa-cursor/rules/pre-flight-autofill.mdc +7 -2
  39. package/plugins/lisa-cursor/skills/implement/SKILL.md +3 -3
  40. package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
  41. package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
  42. package/plugins/lisa-expo-agy/plugin.json +1 -1
  43. package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
  44. package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
  45. package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
  46. package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
  47. package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
  48. package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +1 -1
  49. package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
  50. package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
  51. package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
  52. package/plugins/lisa-nestjs-agy/plugin.json +1 -1
  53. package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +1 -1
  54. package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +1 -1
  55. package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
  56. package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
  57. package/plugins/lisa-openclaw-agy/plugin.json +1 -1
  58. package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +1 -1
  59. package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +1 -1
  60. package/plugins/lisa-phaser/.claude-plugin/plugin.json +1 -1
  61. package/plugins/lisa-phaser/.codex-plugin/plugin.json +1 -1
  62. package/plugins/lisa-phaser-agy/plugin.json +1 -1
  63. package/plugins/lisa-phaser-copilot/.claude-plugin/plugin.json +1 -1
  64. package/plugins/lisa-phaser-cursor/.claude-plugin/plugin.json +1 -1
  65. package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
  66. package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
  67. package/plugins/lisa-rails-agy/plugin.json +1 -1
  68. package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +1 -1
  69. package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +1 -1
  70. package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
  71. package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
  72. package/plugins/lisa-typescript-agy/plugin.json +1 -1
  73. package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +1 -1
  74. package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +1 -1
  75. package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
  76. package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
  77. package/plugins/lisa-wiki-agy/plugin.json +1 -1
  78. package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
  79. package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
  80. package/plugins/src/base/agents/github-agent.md +2 -1
  81. package/plugins/src/base/agents/jira-agent.md +2 -1
  82. package/plugins/src/base/agents/linear-agent.md +2 -1
  83. package/plugins/src/base/rules/eager/config-resolution.md +11 -0
  84. package/plugins/src/base/rules/eager/pre-flight-autofill.md +7 -2
  85. package/plugins/src/base/rules/reference/config-resolution.md +27 -0
  86. package/plugins/src/base/rules/reference/pre-flight-autofill.md +8 -3
  87. package/plugins/src/base/skills/implement/SKILL.md +3 -3
@@ -25,4 +25,15 @@ Project tracker (`jira` / `github` / `linear`) is read from `.lisa.config.json`
25
25
 
26
26
  `repo:<name>` is the canonical label for which repo a work item belongs to. Resolve current-repo identity in this priority order: `.lisa.config.local.json` `repo` → `.lisa.config.json` `repo` → `.lisa.config.json` `github.repo` → `basename -s .git "$(git remote get-url origin)"`. If none resolve, stop with a clear error.
27
27
 
28
+ ## Env → base branch
29
+
30
+ For implementation work, map the work item's `## Target Backend Environment` to
31
+ the PR base branch through `.lisa.config.json` `deploy.branches`. For bugs, a
32
+ reported environment extracted from the description/reproduction steps wins over
33
+ an autofill default. If a reported environment is absent from `deploy.branches`,
34
+ stop and report the missing mapping instead of silently falling back to the
35
+ default or integration branch. A non-integration environment bug is fixed,
36
+ merged, and verified on that environment branch first, then forward
37
+ cherry-picked down to the integration branch via a linked follow-up.
38
+
28
39
  Full reference: [reference/config-resolution.md](../reference/config-resolution.md).
@@ -21,8 +21,13 @@ information was already on the ticket; only the structure was missing).
21
21
  Gherkin Acceptance Criteria (one scenario per fix), expected-vs-actual +
22
22
  environment, Repository, Relationship Search (actually run the git+tracker
23
23
  search — don't fabricate "none found"), Validation Journey **draft** (via the
24
- vendor `*-add-journey` skill), Target Backend Environment (recommend a default
25
- from `deploy.branches`/config).
24
+ vendor `*-add-journey` skill), Target Backend Environment. For bugs, parse the
25
+ reported environment from the item body/reproduction steps before recommending
26
+ any default: bare environment names (`dev`, `staging`, `prod`, `production`)
27
+ and environment-bearing URLs (for example `staging.<domain>`, `gql.staging.*`,
28
+ `dev.<domain>`) are authoritative. Only recommend the configured default when
29
+ no environment is discoverable anywhere in the work item, and record that as
30
+ an assumption.
26
31
  - **Tier B — irreducibly human:** real credentials/access that exist nowhere on
27
32
  the item or in repo test-user docs; a genuine product/scoping decision with no
28
33
  defensible default. Still propose a recommended default where one exists; ask
@@ -212,6 +212,33 @@ Declares **where this repo's LLM Wiki lives** so the query/ingest skills can res
212
212
 
213
213
  `scripts/ensure-wiki.mjs` is the single resolver (`node scripts/ensure-wiki.mjs --json` → `{mode, wikiRoot, …}`). **LOCAL** mode (no `url`) is a no-op that resolves the wiki root in precedence order `wiki.source.path` → `wikiRoot` in `wiki/lisa-wiki.config.json` → `wiki`; **REMOTE** mode (`url` set) clones-if-missing, fast-forwards when stale, and is offline-tolerant (proceeds with the existing mirror and warns rather than blocking). Callers (`lisa-wiki-query`, `lisa-wiki-ingest`) invoke it as step 0 and never hardcode `wiki/`; the freshness guarantee is the tool's, not the caller's.
214
214
 
215
+ ### Env → base branch
216
+
217
+ Implementation flows resolve their PR base from the work item's
218
+ `## Target Backend Environment` in the forward direction of `deploy.branches`.
219
+ For example, `{ "staging": "staging", "production": "main" }` means a staging
220
+ work item starts from `origin/staging` and opens its PR against `staging`. This
221
+ is the reverse/inverse of the env-keyed `done` inference that derives an
222
+ environment from a merged PR's base branch.
223
+
224
+ For bug work, the reported environment is authoritative. `pre-flight-autofill`
225
+ must parse environment mentions from the description/body and reproduction
226
+ steps, including bare names (`dev`, `staging`, `prod`, `production`) and
227
+ environment-bearing URLs (`staging.<domain>`, `gql.staging.*`,
228
+ `dev.<domain>`). A parsed reported environment wins over any generic autofill
229
+ default. If no environment is named anywhere, the flow may fall back to the
230
+ remote default branch and record that assumption on the work item.
231
+
232
+ If the reported environment is not present in `deploy.branches`, stop and report
233
+ the missing mapping. Do not silently default to the integration branch.
234
+
235
+ For non-integration environment bugs, definition of done is two-step:
236
+
237
+ 1. Fix, merge, deploy, and verify on the reported environment branch first.
238
+ 2. Forward cherry-pick the verified fix down to the integration branch, usually
239
+ via a linked follow-up PR or work item, so the next promotion does not
240
+ regress the fix.
241
+
215
242
  ### Vendor sections
216
243
 
217
244
  Each vendor section is **conditionally required**: required only when that vendor is referenced as `tracker`, as `source`, or by an explicit invocation. Skills validate their own required keys at entry and stop with a clear error if missing — never invent values.
@@ -49,9 +49,14 @@ spec.
49
49
  - **Validation Journey (draft)** — run the vendor `*-add-journey` skill to draft
50
50
  the click-path, markers, and viewports from the reproduction steps. This is a
51
51
  draft for human approval, not the final ratified contract.
52
- - **Target Backend Environment** — recommend a default from `deploy.branches` /
53
- config (the backend the FE points at for verification) and state it as a
54
- recommendation.
52
+ - **Target Backend Environment** — for bugs, first parse the reported
53
+ environment from the title, description/body, screenshots captions, links, and
54
+ reproduction steps. Bare words such as `dev`, `staging`, `prod`, and
55
+ `production` count, as do environment-bearing URLs such as
56
+ `staging.<domain>`, `gql.staging.*`, and `dev.<domain>`. That reported
57
+ environment is authoritative for the draft. Only recommend a configured
58
+ default from `deploy.branches` / config when no environment is discoverable
59
+ anywhere in the work item, and record the default as an explicit assumption.
55
60
 
56
61
  **Tier B — irreducibly human (cannot invent — but still propose a default):**
57
62
 
@@ -70,15 +70,15 @@ Using the general-purpose agent in Team Lead session, Determine the name of this
70
70
 
71
71
  Using the general-purpose agent in Team Lead session, **determine the base branch from the ticket's target environment, then sync the working branch onto the latest of it before any work** — so implementation always builds on current target-environment code:
72
72
 
73
- 1. **Resolve the target environment** from the resolved work item — its `## Target Backend Environment` section (the field the `*-write-*` / `*-add-journey` skills record).
74
- 2. **Map the environment to a base branch** via `.lisa.config.json` `deploy.branches` (e.g. `staging → staging`, `production → main`) — the forward direction of the same map the env-keyed `done` resolution uses in reverse (see the `config-resolution` rule). If the work item names **no** environment, the base branch is the **remote default branch** (`gh repo view --json defaultBranchRef -q .defaultBranchRef.name`, or `git remote set-head origin -a` then read `origin/HEAD`). If the named environment is absent from `deploy.branches`, or its branch does not exist on the remote, **stop and report** — never guess a base.
73
+ 1. **Resolve the target environment** from the resolved work item — its `## Target Backend Environment` section (the field the `*-write-*` / `*-add-journey` skills record). For bug work, the environment named in the report is authoritative: if the title/body/reproduction steps mention bare env names (`dev`, `staging`, `prod`, `production`) or env-bearing URLs (`staging.<domain>`, `gql.staging.*`, `dev.<domain>`), that reported environment wins over a generic autofill default.
74
+ 2. **Map the environment to a base branch** via `.lisa.config.json` `deploy.branches` (e.g. `staging → staging`, `production → main`) — the forward direction of the same map the env-keyed `done` resolution uses in reverse (see the `config-resolution` rule). If the work item names **no** environment, the base branch is the **remote default branch** (`gh repo view --json defaultBranchRef -q .defaultBranchRef.name`, or `git remote set-head origin -a` then read `origin/HEAD`). If the reported environment is absent from `deploy.branches`, or its branch does not exist on the remote, **stop and report** — never guess a base and never silently fall back to the default/integration branch.
75
75
  3. **Establish the feature branch off the latest base, conflict-free:**
76
76
  - `git fetch origin`.
77
77
  - Already on a feature branch with an **open PR** → reuse it. If the PR's base ≠ the resolved base branch, surface the mismatch and re-target only with confirmation — the ticket's environment is the source of truth.
78
78
  - Already on a feature branch with **no open PR** → reuse it; its PR base will be the resolved base branch (do not ask the human — the environment determines it).
79
79
  - On an **environment / default branch** → check out a feature branch named for this plan (with the work-item ref prefix, per the linkage rules below) **from `origin/<base>`**.
80
80
  - **Rebase the feature branch onto `origin/<base>` and resolve any merge conflicts BEFORE starting work.** If the conflicts cannot be resolved cleanly and safely, create a fix task for the agent team (with the conflicting file list and current merge state) and resolve it before implementation begins — never start work on stale or conflicted code.
81
- 4. **The PR targets the resolved base branch** — carry it as `target_branch=<base>` into `lisa:git-submit-pr` (Verify flow). `git-submit-pr` already chooses a closing keyword when the base is the production/default branch and a non-closing reference for a non-terminal environment branch.
81
+ 4. **The PR targets the resolved base branch** — carry it as `target_branch=<base>` into `lisa:git-submit-pr` (Verify flow). `git-submit-pr` already chooses a closing keyword when the base is the production/default branch and a non-closing reference for a non-terminal environment branch. For a bug fixed on a non-integration environment branch, the current flow is not done until the fix is merged and verified there, then forward cherry-picked down to the integration branch via a linked follow-up.
82
82
 
83
83
  When the request came from a tracker work item, preserve its native identifier for development linkage:
84
84