@codyswann/lisa 2.0.0 → 2.1.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 (79) hide show
  1. package/package.json +1 -1
  2. package/plugins/lisa/.claude-plugin/plugin.json +1 -1
  3. package/plugins/lisa/commands/implement.md +3 -3
  4. package/plugins/lisa/commands/improve/max-lines.md +1 -1
  5. package/plugins/lisa/commands/intake.md +6 -0
  6. package/plugins/lisa/commands/monitor.md +2 -6
  7. package/plugins/lisa/commands/plan.md +3 -23
  8. package/plugins/lisa/commands/research.md +2 -6
  9. package/plugins/lisa/commands/verify.md +2 -6
  10. package/plugins/lisa/rules/intent-routing.md +14 -13
  11. package/plugins/lisa/skills/implement/SKILL.md +20 -11
  12. package/plugins/lisa/skills/intake/SKILL.md +56 -0
  13. package/plugins/lisa/skills/jira-add-journey/SKILL.md +1 -1
  14. package/plugins/lisa/skills/jira-build-intake/SKILL.md +18 -18
  15. package/plugins/lisa/skills/jira-create/SKILL.md +17 -17
  16. package/plugins/lisa/skills/jira-source-artifacts/SKILL.md +1 -1
  17. package/plugins/lisa/skills/jira-validate-ticket/SKILL.md +4 -4
  18. package/plugins/lisa/skills/jira-verify/SKILL.md +5 -5
  19. package/plugins/lisa/skills/jira-write-ticket/SKILL.md +12 -12
  20. package/plugins/lisa/skills/monitor/SKILL.md +33 -0
  21. package/plugins/lisa/skills/notion-prd-intake/SKILL.md +11 -11
  22. package/plugins/lisa/skills/notion-to-jira/SKILL.md +32 -32
  23. package/plugins/lisa/skills/plan/SKILL.md +38 -0
  24. package/plugins/lisa/skills/prd-ticket-coverage/SKILL.md +4 -4
  25. package/plugins/lisa/skills/product-walkthrough/SKILL.md +3 -3
  26. package/plugins/lisa/skills/research/SKILL.md +23 -0
  27. package/plugins/lisa/skills/ticket-triage/SKILL.md +3 -3
  28. package/plugins/lisa/skills/verify/SKILL.md +32 -0
  29. package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
  30. package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
  31. package/plugins/lisa-expo/skills/jira-add-journey/SKILL.md +1 -1
  32. package/plugins/lisa-expo/skills/jira-create/SKILL.md +17 -17
  33. package/plugins/lisa-expo/skills/jira-verify/SKILL.md +5 -5
  34. package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
  35. package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
  36. package/plugins/lisa-rails/commands/fix/linter-error.md +1 -1
  37. package/plugins/lisa-rails/commands/improve/code-complexity.md +1 -1
  38. package/plugins/lisa-rails/commands/improve/max-lines-per-function.md +1 -1
  39. package/plugins/lisa-rails/commands/improve/max-lines.md +1 -1
  40. package/plugins/lisa-rails/commands/improve/test-coverage.md +1 -1
  41. package/plugins/lisa-rails/skills/jira-create/SKILL.md +16 -16
  42. package/plugins/lisa-rails/skills/jira-verify/SKILL.md +4 -4
  43. package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
  44. package/plugins/src/base/commands/implement.md +3 -3
  45. package/plugins/src/base/commands/improve/max-lines.md +1 -1
  46. package/plugins/src/base/commands/intake.md +6 -0
  47. package/plugins/src/base/commands/monitor.md +2 -6
  48. package/plugins/src/base/commands/plan.md +3 -23
  49. package/plugins/src/base/commands/research.md +2 -6
  50. package/plugins/src/base/commands/verify.md +2 -6
  51. package/plugins/src/base/rules/intent-routing.md +14 -13
  52. package/plugins/src/base/skills/implement/SKILL.md +20 -11
  53. package/plugins/src/base/skills/intake/SKILL.md +56 -0
  54. package/plugins/src/base/skills/jira-add-journey/SKILL.md +1 -1
  55. package/plugins/src/base/skills/jira-build-intake/SKILL.md +18 -18
  56. package/plugins/src/base/skills/jira-create/SKILL.md +17 -17
  57. package/plugins/src/base/skills/jira-source-artifacts/SKILL.md +1 -1
  58. package/plugins/src/base/skills/jira-validate-ticket/SKILL.md +4 -4
  59. package/plugins/src/base/skills/jira-verify/SKILL.md +5 -5
  60. package/plugins/src/base/skills/jira-write-ticket/SKILL.md +12 -12
  61. package/plugins/src/base/skills/monitor/SKILL.md +33 -0
  62. package/plugins/src/base/skills/notion-prd-intake/SKILL.md +11 -11
  63. package/plugins/src/base/skills/notion-to-jira/SKILL.md +32 -32
  64. package/plugins/src/base/skills/plan/SKILL.md +38 -0
  65. package/plugins/src/base/skills/prd-ticket-coverage/SKILL.md +4 -4
  66. package/plugins/src/base/skills/product-walkthrough/SKILL.md +3 -3
  67. package/plugins/src/base/skills/research/SKILL.md +23 -0
  68. package/plugins/src/base/skills/ticket-triage/SKILL.md +3 -3
  69. package/plugins/src/base/skills/verify/SKILL.md +32 -0
  70. package/plugins/src/expo/skills/jira-add-journey/SKILL.md +1 -1
  71. package/plugins/src/expo/skills/jira-create/SKILL.md +17 -17
  72. package/plugins/src/expo/skills/jira-verify/SKILL.md +5 -5
  73. package/plugins/src/rails/commands/fix/linter-error.md +1 -1
  74. package/plugins/src/rails/commands/improve/code-complexity.md +1 -1
  75. package/plugins/src/rails/commands/improve/max-lines-per-function.md +1 -1
  76. package/plugins/src/rails/commands/improve/max-lines.md +1 -1
  77. package/plugins/src/rails/commands/improve/test-coverage.md +1 -1
  78. package/plugins/src/rails/skills/jira-create/SKILL.md +16 -16
  79. package/plugins/src/rails/skills/jira-verify/SKILL.md +4 -4
@@ -18,8 +18,8 @@ Each sub-task is scoped to exactly one repo and includes an empirical verificati
18
18
 
19
19
  This skill supports two modes, controlled by a `dry_run` flag in `$ARGUMENTS`:
20
20
 
21
- - **`dry_run: false`** (default — full mode): run all phases, write tickets via `jira-write-ticket`, run the preservation gate, report.
22
- - **`dry_run: true`** (planning + validation only — no writes): run Phases 1, 1.5, 1.6, 2, 3, 4 to plan the hierarchy and draft each ticket spec, then call `jira-validate-ticket` (with `--spec-only`) on every drafted ticket. Aggregate the per-ticket validator reports into a single dry-run report. **Skip Phase 5 (sub-task creation), Phase 5.5 (preservation gate), and Phase 6 (results report)** — none of those make sense without writes. Return the dry-run report so the caller (e.g. `notion-prd-intake`) can decide whether to proceed.
21
+ - **`dry_run: false`** (default — full mode): run all phases, write tickets via `lisa:jira-write-ticket`, run the preservation gate, report.
22
+ - **`dry_run: true`** (planning + validation only — no writes): run Phases 1, 1.5, 1.6, 2, 3, 4 to plan the hierarchy and draft each ticket spec, then call `lisa:jira-validate-ticket` (with `--spec-only`) on every drafted ticket. Aggregate the per-ticket validator reports into a single dry-run report. **Skip Phase 5 (sub-task creation), Phase 5.5 (preservation gate), and Phase 6 (results report)** — none of those make sense without writes. Return the dry-run report so the caller (e.g. `lisa:notion-prd-intake`) can decide whether to proceed.
23
23
 
24
24
  Dry-run output format:
25
25
 
@@ -43,11 +43,11 @@ Dry-run output format:
43
43
 
44
44
  The dry-run mode never writes to JIRA and never calls `mcp__atlassian__createJiraIssue`. It also never sets a Notion status — that is the orchestrating skill's responsibility.
45
45
 
46
- ## Hard Rule: All Writes Go Through `jira-write-ticket`
46
+ ## Hard Rule: All Writes Go Through `lisa:jira-write-ticket`
47
47
 
48
- **Every JIRA ticket created by this skill — every epic, story, and sub-task — MUST be created by invoking the `jira-write-ticket` skill. Never call `mcp__atlassian__createJiraIssue`, `mcp__atlassian__editJiraIssue`, `mcp__atlassian__createIssueLink`, or any other Atlassian write tool directly from this skill or from any sub-agent it spawns.**
48
+ **Every JIRA ticket created by this skill — every epic, story, and sub-task — MUST be created by invoking the `lisa:jira-write-ticket` skill. Never call `mcp__atlassian__createJiraIssue`, `mcp__atlassian__editJiraIssue`, `mcp__atlassian__createIssueLink`, or any other Atlassian write tool directly from this skill or from any sub-agent it spawns.**
49
49
 
50
- `jira-write-ticket` enforces gates this skill does not:
50
+ `lisa:jira-write-ticket` enforces gates this skill does not:
51
51
  - 3-audience description (Context / Technical Approach / Acceptance Criteria)
52
52
  - Gherkin acceptance criteria
53
53
  - Epic parent validation
@@ -56,7 +56,7 @@ The dry-run mode never writes to JIRA and never calls `mcp__atlassian__createJir
56
56
  - Sign-in account and target environment recorded in description
57
57
  - Post-create verification
58
58
 
59
- Bypassing `jira-write-ticket` produces thin tickets that the rest of the lifecycle (triage, ticket-verify, journey, evidence) treats as broken. This is the most common failure mode this skill has had — calling `createJiraIssue` directly is a regression, not an optimization. The Atlassian read tools (`getJiraIssue`, `searchJiraIssuesUsingJql`, `getJiraIssueRemoteIssueLinks`, `getAccessibleAtlassianResources`, `getJiraProjectIssueTypesMetadata`, `getVisibleJiraProjects`) ARE allowed for context gathering and the Phase 5.5 preservation gate.
59
+ Bypassing `lisa:jira-write-ticket` produces thin tickets that the rest of the lifecycle (triage, ticket-verify, journey, evidence) treats as broken. This is the most common failure mode this skill has had — calling `createJiraIssue` directly is a regression, not an optimization. The Atlassian read tools (`getJiraIssue`, `searchJiraIssuesUsingJql`, `getJiraIssueRemoteIssueLinks`, `getAccessibleAtlassianResources`, `getJiraProjectIssueTypesMetadata`, `getVisibleJiraProjects`) ARE allowed for context gathering and the Phase 5.5 preservation gate.
60
60
 
61
61
  ## Input
62
62
 
@@ -111,17 +111,17 @@ PRDs typically reference external design, UX, and data artifacts (Figma files, L
111
111
  - Embedded images and file attachments on the page itself
112
112
  - Fenced code blocks with example data (JSON, SQL, GraphQL, cURL request/response)
113
113
 
114
- 2. **Classify each artifact and apply taxonomy rules** by invoking the `jira-source-artifacts` skill. That skill is the single source of truth for: domains (`ui-design` / `ux-flow` / `data` / `ops` / `reference`), per-tool classification rules (Figma `/proto/` vs design, Lovable as `ux-flow`, Loom, screenshots), and coverage smells. Do not restate the rules here — invoke the skill so any drift in the rules propagates uniformly.
114
+ 2. **Classify each artifact and apply taxonomy rules** by invoking the `lisa:jira-source-artifacts` skill. That skill is the single source of truth for: domains (`ui-design` / `ux-flow` / `data` / `ops` / `reference`), per-tool classification rules (Figma `/proto/` vs design, Lovable as `ux-flow`, Loom, screenshots), and coverage smells. Do not restate the rules here — invoke the skill so any drift in the rules propagates uniformly.
115
115
 
116
116
  3. **Build an `artifacts` map** keyed by domain. Each entry: `{ url, title, domain, source_page, source_page_url, classification_reason }`. The `classification_reason` makes disambiguation auditable ("Figma URL contains `/proto/` → ux-flow"). The `source_page` lets you trace each reference back to where it appeared in the PRD.
117
117
 
118
- 4. **Surface coverage smells** as defined in `jira-source-artifacts` §5 (zero artifacts, prototype-without-mock, mock-without-prototype, Lovable-without-business-rules). Record any detected smells on the epic.
118
+ 4. **Surface coverage smells** as defined in `lisa:jira-source-artifacts` §5 (zero artifacts, prototype-without-mock, mock-without-prototype, Lovable-without-business-rules). Record any detected smells on the epic.
119
119
 
120
120
  ### Phase 1.6: Source Precedence & Conflict Resolution
121
121
 
122
- Source precedence rules and cross-axis conflict handling are defined in `jira-source-artifacts` §3 and §4. Apply them during ticket synthesis: every conflict between artifacts must be recorded under `## Open Questions` on the affected ticket, never silently reconciled.
122
+ Source precedence rules and cross-axis conflict handling are defined in `lisa:jira-source-artifacts` §3 and §4. Apply them during ticket synthesis: every conflict between artifacts must be recorded under `## Open Questions` on the affected ticket, never silently reconciled.
123
123
 
124
- The existing-component reuse expectation (mocks define visual intent, not implementation shortcut) is defined in `jira-source-artifacts` §7. Encode it on every UI-touching story.
124
+ The existing-component reuse expectation (mocks define visual intent, not implementation shortcut) is defined in `lisa:jira-source-artifacts` §7. Encode it on every UI-touching story.
125
125
 
126
126
  ### Phase 2: Codebase + Live Product Research
127
127
 
@@ -135,7 +135,7 @@ Key things to look for:
135
135
  - Data model gaps the PRD requires (new fields, new entities)
136
136
  - The tech stack per repo (framework, ORM, UI library, deployment)
137
137
 
138
- **2b. Live product walkthrough.** If the PRD touches existing user-facing surfaces (modifies a screen, adds something next to existing functionality, fixes current behavior, re-styles an existing flow), invoke the `product-walkthrough` skill against `E2E_BASE_URL` using the test user from config. This grounds the ticket plan in what's actually shipped — design-vs-current-product divergence, reuse candidates, and behavioral surprises that the PRD didn't anticipate become inputs to ticket creation rather than discoveries during implementation.
138
+ **2b. Live product walkthrough.** If the PRD touches existing user-facing surfaces (modifies a screen, adds something next to existing functionality, fixes current behavior, re-styles an existing flow), invoke the `lisa:product-walkthrough` skill against `E2E_BASE_URL` using the test user from config. This grounds the ticket plan in what's actually shipped — design-vs-current-product divergence, reuse candidates, and behavioral surprises that the PRD didn't anticipate become inputs to ticket creation rather than discoveries during implementation.
139
139
 
140
140
  Skip 2b only when the work is purely backend with no user-visible surface, or affects a screen that does not yet exist in dev/prod.
141
141
 
@@ -143,9 +143,9 @@ Walkthrough findings are attached to the originating Notion PRD as a comment ("C
143
143
 
144
144
  ### Phase 3: Create Epics
145
145
 
146
- > **Mode guard**: In `dry_run: true` mode, do not invoke `jira-write-ticket` in this phase. Instead, draft the epic spec (summary, description_body, artifacts) and validate it with `jira-validate-ticket --spec-only`. Record the drafted spec (including a placeholder epic key like `DRY-RUN-EPIC-1`) for Phase 4 to use as parent references. In `dry_run: false` mode (default), proceed as described below.
146
+ > **Mode guard**: In `dry_run: true` mode, do not invoke `lisa:jira-write-ticket` in this phase. Instead, draft the epic spec (summary, description_body, artifacts) and validate it with `lisa:jira-validate-ticket --spec-only`. Record the drafted spec (including a placeholder epic key like `DRY-RUN-EPIC-1`) for Phase 4 to use as parent references. In `dry_run: false` mode (default), proceed as described below.
147
147
 
148
- For each PRD epic, **invoke the `jira-write-ticket` skill** (do not call `createJiraIssue` directly). Pass it everything it needs to enforce its quality gates:
148
+ For each PRD epic, **invoke the `lisa:jira-write-ticket` skill** (do not call `createJiraIssue` directly). Pass it everything it needs to enforce its quality gates:
149
149
 
150
150
  - `project_key`: from `JIRA_PROJECT` config
151
151
  - `issue_type`: `Epic`
@@ -158,14 +158,14 @@ For each PRD epic, **invoke the `jira-write-ticket` skill** (do not call `create
158
158
  - Blockers and open questions
159
159
  - Dependencies on other epics or PRDs
160
160
  - A **Source Artifacts** section listing every artifact extracted in Phase 1.5 (grouped by domain)
161
- - `artifacts`: the full Phase 1.5 artifact list — every artifact, regardless of domain. The epic is the canonical hub, and anyone working on the epic or its descendants must be able to reach the full set from one place. No filtering at the epic level. `jira-write-ticket` Phase 4c attaches them as remote links.
161
+ - `artifacts`: the full Phase 1.5 artifact list — every artifact, regardless of domain. The epic is the canonical hub, and anyone working on the epic or its descendants must be able to reach the full set from one place. No filtering at the epic level. `lisa:jira-write-ticket` Phase 4c attaches them as remote links.
162
162
  - `priority`, `labels`, `components`, `fix_version`: as appropriate
163
163
 
164
164
  Capture the returned epic key — Phase 4 needs it as the parent for stories.
165
165
 
166
166
  ### Phase 4: Create Stories
167
167
 
168
- > **Mode guard**: In `dry_run: true` mode, do not invoke `jira-write-ticket` in this phase. Instead, draft each story spec and validate it with `jira-validate-ticket --spec-only`. Use placeholder keys (e.g. `DRY-RUN-STORY-1.1`) for any downstream references. In `dry_run: false` mode (default), proceed as described below.
168
+ > **Mode guard**: In `dry_run: true` mode, do not invoke `lisa:jira-write-ticket` in this phase. Instead, draft each story spec and validate it with `lisa:jira-validate-ticket --spec-only`. Use placeholder keys (e.g. `DRY-RUN-STORY-1.1`) for any downstream references. In `dry_run: false` mode (default), proceed as described below.
169
169
 
170
170
  For each Epic, plan two kinds of stories:
171
171
  - **One "X.0 Setup" story** for data model and infrastructure prerequisites (new entities, migrations, new fields, infrastructure like S3 buckets or SQS queues)
@@ -176,24 +176,24 @@ For each Epic, plan two kinds of stories:
176
176
  - "Squad Planning" -> `[SP-1.1]`
177
177
  - Use your judgment for other PRDs
178
178
 
179
- For each story, **invoke `jira-write-ticket`** with:
179
+ For each story, **invoke `lisa:jira-write-ticket`** with:
180
180
 
181
181
  - `project_key`: from `JIRA_PROJECT` config
182
182
  - `issue_type`: `Story`
183
- - `epic_parent`: the Epic key captured in Phase 3 (mandatory — `jira-write-ticket` rejects non-bug, non-epic tickets without an epic parent)
183
+ - `epic_parent`: the Epic key captured in Phase 3 (mandatory — `lisa:jira-write-ticket` rejects non-bug, non-epic tickets without an epic parent)
184
184
  - `summary`: prefixed per the naming convention above
185
185
  - `description_body`: a draft of the 3-audience description containing:
186
186
  - **Context / Business Value**: the user story statement from the PRD
187
187
  - **Technical Approach**: notes from engineering comments and Phase 2 codebase research
188
- - **Acceptance Criteria** (Gherkin) derived from the functional requirements — `jira-write-ticket` will reject prose-only acceptance criteria
188
+ - **Acceptance Criteria** (Gherkin) derived from the functional requirements — `lisa:jira-write-ticket` will reject prose-only acceptance criteria
189
189
  - Blockers with recommendation + alternatives (if any), under `## Open Questions`
190
190
  - A **Source Artifacts** section listing the artifacts inherited from the epic that match this story's scope (see propagation rules below)
191
- - `artifacts`: the Phase 1.5 artifacts filtered by domain per the inheritance table below — `jira-write-ticket` Phase 4c attaches them as remote links
191
+ - `artifacts`: the Phase 1.5 artifacts filtered by domain per the inheritance table below — `lisa:jira-write-ticket` Phase 4c attaches them as remote links
192
192
  - `priority`, `labels`, `components`, `fix_version`: as appropriate
193
193
 
194
194
  Capture each returned story key — Phase 5 needs it as the parent for sub-tasks.
195
195
 
196
- **Inherit domain-matching artifacts as story remote links**. For each story, the artifact set passed to `jira-write-ticket` should be the Phase 1.5 artifacts whose domain matches the story's scope:
196
+ **Inherit domain-matching artifacts as story remote links**. For each story, the artifact set passed to `lisa:jira-write-ticket` should be the Phase 1.5 artifacts whose domain matches the story's scope:
197
197
 
198
198
  | Story type | Inherits domains |
199
199
  |------------|------------------|
@@ -206,10 +206,10 @@ When classification is ambiguous, err on the side of inclusion — a developer c
206
206
 
207
207
  ### Phase 5: Create Sub-tasks
208
208
 
209
- Delegate sub-task creation to **parallel agents** (one per epic or batch of stories) for efficiency. **Every spawned agent must invoke `jira-write-ticket` for each sub-task — no agent may call `createJiraIssue` directly.** This is non-negotiable; see the Agent Prompt Template at the bottom of this skill for the exact instructions to pass.
209
+ Delegate sub-task creation to **parallel agents** (one per epic or batch of stories) for efficiency. **Every spawned agent must invoke `lisa:jira-write-ticket` for each sub-task — no agent may call `createJiraIssue` directly.** This is non-negotiable; see the Agent Prompt Template at the bottom of this skill for the exact instructions to pass.
210
210
 
211
211
  Each sub-task MUST:
212
- 1. **Be scoped to exactly ONE repo** — indicated in brackets in the summary: `[repo-name]`. `jira-write-ticket` enforces single-repo scope on Sub-task; cross-repo sub-tasks will be rejected and must be split before delegation.
212
+ 1. **Be scoped to exactly ONE repo** — indicated in brackets in the summary: `[repo-name]`. `lisa:jira-write-ticket` enforces single-repo scope on Sub-task; cross-repo sub-tasks will be rejected and must be split before delegation.
213
213
  2. **Include an Empirical Verification Plan** — real user-like verification, NOT unit tests, linting, or typechecking
214
214
 
215
215
  **Verification plan examples by stack:**
@@ -217,21 +217,21 @@ Each sub-task MUST:
217
217
  - **Frontend web**: Playwright browser tests (login with test user, navigate, interact, screenshot)
218
218
  - **Infrastructure**: `cdk synth` / `terraform plan` verification, CLI checks after deploy
219
219
 
220
- Use the test user credentials from config for all verification plans. The credentials are passed to `jira-write-ticket` as the sign-in account so it can record them in the description per its own rules.
220
+ Use the test user credentials from config for all verification plans. The credentials are passed to `lisa:jira-write-ticket` as the sign-in account so it can record them in the description per its own rules.
221
221
 
222
- For each sub-task, the spawned agent invokes `jira-write-ticket` with `issue_type: "Sub-task"` and `parent` set to the Story key. The Story key is the parent — the epic relationship is inherited transitively.
222
+ For each sub-task, the spawned agent invokes `lisa:jira-write-ticket` with `issue_type: "Sub-task"` and `parent` set to the Story key. The Story key is the parent — the epic relationship is inherited transitively.
223
223
 
224
- Sub-tasks inherit their parent story's artifacts by reference (the parent link). Do not pass the same artifact list to every sub-task — that creates noise. The only exception is when a sub-task depends on an artifact that the parent story doesn't (e.g., a sub-task spec'd from a specific Figma frame that the broader story doesn't cite) — in that case, pass the specific artifact in the `artifacts` parameter to `jira-write-ticket`.
224
+ Sub-tasks inherit their parent story's artifacts by reference (the parent link). Do not pass the same artifact list to every sub-task — that creates noise. The only exception is when a sub-task depends on an artifact that the parent story doesn't (e.g., a sub-task spec'd from a specific Figma frame that the broader story doesn't cite) — in that case, pass the specific artifact in the `artifacts` parameter to `lisa:jira-write-ticket`.
225
225
 
226
226
  ### Phase 5.5: Artifact Preservation Gate (mandatory)
227
227
 
228
- Run the preservation gate defined in `jira-source-artifacts` §8 against the artifacts extracted in Phase 1.5 and the tickets just created. Do NOT restate or modify the gate logic here — invoke the rules from `jira-source-artifacts` so any rule change propagates uniformly.
228
+ Run the preservation gate defined in `lisa:jira-source-artifacts` §8 against the artifacts extracted in Phase 1.5 and the tickets just created. Do NOT restate or modify the gate logic here — invoke the rules from `lisa:jira-source-artifacts` so any rule change propagates uniformly.
229
229
 
230
230
  To run the gate, this skill must:
231
231
 
232
232
  1. Pull the remote links of every epic and story created in this run via `mcp__atlassian__getJiraIssueRemoteIssueLinks`.
233
233
  2. Apply the §8 preservation matrix and verdict rules.
234
- 3. If the gate fails: list each dropped/misrouted artifact (domain, title, source page, why it was dropped) and either re-attach via `jira-write-ticket` (UPDATE mode) or stop and ask the human. Never silently proceed past a gate failure.
234
+ 3. If the gate fails: list each dropped/misrouted artifact (domain, title, source page, why it was dropped) and either re-attach via `lisa:jira-write-ticket` (UPDATE mode) or stop and ask the human. Never silently proceed past a gate failure.
235
235
  4. If the gate passes: print the matrix compactly and proceed to Phase 6.
236
236
 
237
237
  This gate is not optional. Skipping it is the failure mode the architecture exists to prevent.
@@ -270,13 +270,13 @@ When delegating to agents, provide this context. **The "MUST invoke jira-write-t
270
270
  ```text
271
271
  Create JIRA sub-tasks in the [PROJECT] project at [CLOUD_ID].
272
272
 
273
- CRITICAL: For each sub-task, invoke the `jira-write-ticket` skill via the Skill tool.
274
- Do NOT call `mcp__atlassian__createJiraIssue` directly. The `jira-write-ticket` skill
273
+ CRITICAL: For each sub-task, invoke the `lisa:jira-write-ticket` skill via the Skill tool.
274
+ Do NOT call `mcp__atlassian__createJiraIssue` directly. The `lisa:jira-write-ticket` skill
275
275
  enforces required quality gates (Gherkin acceptance criteria, 3-audience description,
276
276
  single-repo scope, sign-in/environment fields, post-create verification). Bypassing it
277
277
  produces broken tickets that downstream skills (triage, journey, evidence) cannot use.
278
278
 
279
- For each sub-task, invoke `jira-write-ticket` with:
279
+ For each sub-task, invoke `lisa:jira-write-ticket` with:
280
280
  - issue_type: "Sub-task"
281
281
  - parent: the parent story key
282
282
  - project_key: [PROJECT]
@@ -292,9 +292,9 @@ For each sub-task, invoke `jira-write-ticket` with:
292
292
  Each sub-task must:
293
293
  1. Be scoped to ONE repo only — repo named in brackets in the summary
294
294
  2. Include the Empirical Verification Plan in the description
295
- 3. Be created via `jira-write-ticket`, not via direct MCP calls
295
+ 3. Be created via `lisa:jira-write-ticket`, not via direct MCP calls
296
296
 
297
- If `jira-write-ticket` rejects a sub-task (cross-repo scope, missing Gherkin, missing
297
+ If `lisa:jira-write-ticket` rejects a sub-task (cross-repo scope, missing Gherkin, missing
298
298
  sign-in, etc.), fix the input and re-invoke. Do NOT fall back to a direct
299
299
  `createJiraIssue` call to bypass the gate.
300
300
 
@@ -0,0 +1,38 @@
1
+ ---
2
+ name: plan
3
+ description: "Decompose a single PRD or specification into ordered work items in the configured tracker. Vendor-agnostic — the source can be a Notion PRD URL, an existing JIRA epic key, a markdown file, or a free-form description; the destination tracker is whatever the project is configured to use (JIRA today; Linear/GitHub Issues are pluggable). Single-PRD mode only — for batch scanning of all Status=Ready PRDs in a queue, use the lisa:intake skill."
4
+ allowed-tools: ["Skill", "Bash", "Read", "Glob", "Grep"]
5
+ ---
6
+
7
+ # Plan: $ARGUMENTS
8
+
9
+ Decompose the PRD/spec at `$ARGUMENTS` into ordered work items with acceptance criteria, dependencies, and recommended skills/agents.
10
+
11
+ ## Orchestration: agent team
12
+
13
+ If you are NOT already operating inside an agent team (no prior `TeamCreate` in this session, not spawned via `Agent` with `team_name`), your FIRST tool call MUST be `TeamCreate`. Do not call `TaskCreate`, `Agent`, or implementation tools before the team exists.
14
+
15
+ If you ARE already inside an agent team (e.g., a teammate invoked this skill via the Skill tool), do NOT call `TeamCreate` — the harness rejects double-creates. Continue within the existing team. The team lead created the team; teammates inherit it.
16
+
17
+ ## Source dispatch
18
+
19
+ Detect the input type from `$ARGUMENTS` and route to the appropriate source skill:
20
+
21
+ | If `$ARGUMENTS` is... | Hand off to |
22
+ |------------------------|-------------|
23
+ | A Notion **page** URL or page ID (single PRD) | `lisa:notion-to-jira` (with the PRD URL; runs the full pipeline: extract artifacts → walk live product → validate → write tickets → coverage audit) |
24
+ | A Notion **database** URL or database ID | Stop and report — single-PRD mode only. Direct the caller to `lisa:intake` for batch scanning of a database. |
25
+ | A JIRA ticket ID/URL of an Epic (existing epic *is* the spec) | `lisa:jira-agent` (read epic, decompose into stories/sub-tasks) |
26
+ | A Linear / GitHub Issues URL or key | Not yet implemented. Stop and tell the user the adapter doesn't exist yet — the architecture supports it, but no `linear-prd-source` / `github-prd-source` skill has been built. Don't fall back. |
27
+ | A file path (`@plan.md`, `./spec.md`) | Read the file as the spec; run the Plan flow's core decomposition with the file content as input. |
28
+ | A plain-text description | Use the description as the spec; run the Plan flow's core decomposition. |
29
+
30
+ If no PRD or specification exists, suggest running the `lisa:research` skill first to produce one.
31
+
32
+ ## Flow
33
+
34
+ Execute the **Plan** flow as defined in the `intent-routing` rule (loaded via the lisa plugin). The rule contains the canonical step sequence (gates, sub-flows, output structure). This skill does NOT restate flow steps — change them in the rule, propagate everywhere.
35
+
36
+ ## Output
37
+
38
+ Work items in the configured tracker (JIRA today; Linear/GitHub Issues when adapters exist) with acceptance criteria, dependencies, and recommended skills/agents per item. Ordered by dependency. If the specification cannot be decomposed without further clarification, stop and report what is missing.
@@ -9,13 +9,13 @@ allowed-tools: ["Skill", "mcp__claude_ai_Notion__notion-fetch", "mcp__claude_ai_
9
9
  `$ARGUMENTS` is one of:
10
10
 
11
11
  1. A PRD URL alone — auto-discover created tickets via the PRD's epic remote link.
12
- 2. A PRD URL plus an explicit list of ticket keys — `<PRD URL> tickets=[KEY-1,KEY-2,...]`. Use this when called from `notion-prd-intake` (which knows the keys it just created).
12
+ 2. A PRD URL plus an explicit list of ticket keys — `<PRD URL> tickets=[KEY-1,KEY-2,...]`. Use this when called from `lisa:notion-prd-intake` (which knows the keys it just created).
13
13
 
14
14
  Verify that every atomic item in the PRD is covered by at least one of the listed/discovered JIRA tickets. The output gates whether the PRD's `Status` should remain `Ticketed` or revert to `Blocked`.
15
15
 
16
16
  ## Why this exists
17
17
 
18
- Per-ticket gates (`jira-validate-ticket`) prove each created ticket is well-formed in isolation. They do NOT prove the *set* of created tickets is complete relative to the source PRD. Silent drops happen — an agent generates 8 tickets when the PRD called for 9, and nothing notices. This skill is the catch.
18
+ Per-ticket gates (`lisa:jira-validate-ticket`) prove each created ticket is well-formed in isolation. They do NOT prove the *set* of created tickets is complete relative to the source PRD. Silent drops happen — an agent generates 8 tickets when the PRD called for 9, and nothing notices. This skill is the catch.
19
19
 
20
20
  ## Phases
21
21
 
@@ -27,7 +27,7 @@ Per-ticket gates (`jira-validate-ticket`) prove each created ticket is well-form
27
27
  2. Fetch the PRD via `notion-fetch` with `include_discussions: true`. Capture: title, body, child Epic pages, all comment threads.
28
28
  3. If the PRD has child Epic sub-pages (a multi-epic PRD like Home revamp), fetch each in parallel with `include_discussions: true`. The audit walks the full PRD tree.
29
29
  4. If `tickets=[...]` not provided, locate the JIRA epic by:
30
- - Looking for a JIRA URL in the PRD body, comments, or the PRD's most recent "Ticketed by Claude" comment posted by `notion-prd-intake`.
30
+ - Looking for a JIRA URL in the PRD body, comments, or the PRD's most recent "Ticketed by Claude" comment posted by `lisa:notion-prd-intake`.
31
31
  - Searching JIRA via `searchJiraIssuesUsingJql` for an epic whose summary or description references the PRD title or page ID.
32
32
  - If no epic found, return verdict `NO_TICKETS_FOUND` with a clear remediation — coverage cannot be assessed without the ticket set.
33
33
  5. Once the epic is known, fetch all child stories and sub-tasks via JQL: `"Epic Link" = <EPIC-KEY>` and recursively for sub-tasks.
@@ -134,4 +134,4 @@ Atomic PRD items extracted: <n>
134
134
  - Never silently drop a PRD item from extraction. If an item is ambiguous about whether it's scope, include it in extraction with type `ambiguous` and let the matching phase resolve it. The point of the audit is to catch silent drops; the audit can't have its own.
135
135
  - Be explicit about confidence in matches — the matrix is for humans to skim; vague matches help no one. If a match is rule-3 ("scope inheritance"), say so.
136
136
  - Scope creep is INFORMATIONAL. It is normal for an agent to add infra tickets (`X.0 Setup`) the PRD doesn't explicitly enumerate. Only flag scope creep when the ticket genuinely doesn't trace to PRD content AND isn't standard scaffolding.
137
- - The `GAPS_FOUND` verdict is the gate. The caller (e.g. `notion-prd-intake`) uses it to decide whether to revert `Status` from `Ticketed` to `Blocked`.
137
+ - The `GAPS_FOUND` verdict is the gate. The caller (e.g. `lisa:notion-prd-intake`) uses it to decide whether to revert `Status` from `Ticketed` to `Blocked`.
@@ -66,8 +66,8 @@ For every walkthrough, record:
66
66
 
67
67
  - **What exists today**: a short prose description of the current flow, the components in use (if you can identify them from the DOM via `browser_snapshot`), and the states observed.
68
68
  - **What the PRD changes**: explicit delta — added screens, removed screens, modified components, new states, removed states.
69
- - **Existing-component reuse candidates**: components in the current product that could absorb the new behavior. The PRD-vs-current-product comparison drives which existing components a developer should reuse instead of building new (see `jira-source-artifacts` §7).
70
- - **Design-vs-current-product divergence**: places where the mock/prototype materially diverges from what's shipped. Each divergence is a discussion item, not an automatic "rebuild from scratch" — see `jira-source-artifacts` §3 (mocks define visual intent, not implementation shortcut).
69
+ - **Existing-component reuse candidates**: components in the current product that could absorb the new behavior. The PRD-vs-current-product comparison drives which existing components a developer should reuse instead of building new (see `lisa:jira-source-artifacts` §7).
70
+ - **Design-vs-current-product divergence**: places where the mock/prototype materially diverges from what's shipped. Each divergence is a discussion item, not an automatic "rebuild from scratch" — see `lisa:jira-source-artifacts` §3 (mocks define visual intent, not implementation shortcut).
71
71
  - **Coverage smells**: states the PRD doesn't address that exist today (e.g., the mock shows the empty state but ignores the populated state that has 90% of users).
72
72
  - **Behavioral surprises**: anything that doesn't match the PRD's assumptions about current behavior — these are usually the most valuable findings, because they invalidate parts of the PRD.
73
73
 
@@ -85,7 +85,7 @@ Capture screenshots/snapshots in a way that the originating ticket / Notion comm
85
85
 
86
86
  ## Findings format
87
87
 
88
- Use this structure when emitting walkthrough findings, so consuming skills can splice them into tickets / comments unchanged. The `## Current Product` heading matches what `jira-write-ticket` Phase 4e expects to inherit — keep the heading exact.
88
+ Use this structure when emitting walkthrough findings, so consuming skills can splice them into tickets / comments unchanged. The `## Current Product` heading matches what `lisa:jira-write-ticket` Phase 4e expects to inherit — keep the heading exact.
89
89
 
90
90
  ```text
91
91
  ## Current Product
@@ -0,0 +1,23 @@
1
+ ---
2
+ name: research
3
+ description: "Research a problem space and produce a PRD. Investigates the codebase, defines user flows, assesses technical feasibility, and outputs a specification ready to hand to the Plan flow. Vendor-agnostic — the resulting PRD lands wherever the configured destination is (Notion, Confluence, file, etc.)."
4
+ allowed-tools: ["Skill", "Bash", "Read", "Glob", "Grep"]
5
+ ---
6
+
7
+ # Research
8
+
9
+ Produce a PRD for the problem in `$ARGUMENTS`.
10
+
11
+ ## Orchestration: agent team
12
+
13
+ If you are NOT already operating inside an agent team (no prior `TeamCreate` in this session, not spawned via `Agent` with `team_name`), your FIRST tool call MUST be `TeamCreate`. Do not call `TaskCreate`, `Agent`, or implementation tools before the team exists.
14
+
15
+ If you ARE already inside an agent team (e.g., a teammate invoked this skill via the Skill tool), do NOT call `TeamCreate` — the harness rejects double-creates. Continue within the existing team. The team lead created the team; teammates inherit it.
16
+
17
+ ## Flow
18
+
19
+ Execute the **Research** flow as defined in the `intent-routing` rule (loaded via the lisa plugin). The rule contains the canonical step sequence (gates, sub-flows, deliverables). This skill does NOT restate flow steps — change them in the rule, propagate everywhere.
20
+
21
+ ## Output
22
+
23
+ A PRD that includes (per the intent-routing rule's Research flow definition): context, problem statement, user flows, acceptance criteria, technical feasibility notes, and any open questions. The PRD lands in the configured destination (Notion database, Confluence space, local markdown file) per project config. The Plan flow consumes it next.
@@ -6,13 +6,13 @@ allowed-tools: ["Read", "Glob", "Grep", "Bash"]
6
6
 
7
7
  # Ticket Triage: $ARGUMENTS
8
8
 
9
- Perform analytical triage on the JIRA ticket. The caller MUST have run `jira-read-ticket` first and provided the resulting context bundle — which includes the primary ticket, all linked tickets (blocks / is blocked by / relates to / duplicates), epic parent, epic siblings, subtasks, and remote PR state. Do not triage from a bare ticket summary — if the bundle is missing link or epic context, stop and instruct the caller to run `/jira-read-ticket` first.
9
+ Perform analytical triage on the JIRA ticket. The caller MUST have run `lisa:jira-read-ticket` first and provided the resulting context bundle — which includes the primary ticket, all linked tickets (blocks / is blocked by / relates to / duplicates), epic parent, epic siblings, subtasks, and remote PR state. Do not triage from a bare ticket summary — if the bundle is missing link or epic context, stop and instruct the caller to run `/lisa:jira-read-ticket` first.
10
10
 
11
11
  Repository name for scoped labels and comment headers: determine via `basename $(git rev-parse --show-toplevel)`.
12
12
 
13
13
  ## Phase 0 -- Pre-flight Description Gate
14
14
 
15
- Before any analytical work, confirm the ticket carries the content an implementer needs to start. The caller should already have run `jira-verify`; this phase consumes its output. If `jira-verify` returned `FAIL` for any of the following, emit `BLOCKED` immediately with the missing-requirements list and skip to Phase 6:
15
+ Before any analytical work, confirm the ticket carries the content an implementer needs to start. The caller should already have run `lisa:jira-verify`; this phase consumes its output. If `lisa:jira-verify` returned `FAIL` for any of the following, emit `BLOCKED` immediately with the missing-requirements list and skip to Phase 6:
16
16
 
17
17
  - Epic parent missing (non-bug, non-epic)
18
18
  - Description quality failures (no Gherkin acceptance criteria, missing audience sections)
@@ -24,7 +24,7 @@ Before any analytical work, confirm the ticket carries the content an implemente
24
24
 
25
25
  The caller (jira-agent) is responsible for transitioning the ticket to `Blocked`, reassigning to the **Reporter**, and posting a comment listing the missing requirements. This skill only emits the verdict and the missing-requirements list.
26
26
 
27
- If `jira-verify` returned `PASS` for all the above, proceed to Phase 1.
27
+ If `lisa:jira-verify` returned `PASS` for all the above, proceed to Phase 1.
28
28
 
29
29
  ## Phase 1 -- Relevance Check
30
30
 
@@ -0,0 +1,32 @@
1
+ ---
2
+ name: verify
3
+ description: "Ship and verify code. Commits any pending changes, opens or updates the PR, handles the review loop, merges when green, monitors the deploy, and runs remote verification (health checks, Validation Journey replay, Sentry/log inspection) in the target environment. Folds in the legacy /ship alias."
4
+ allowed-tools: ["Skill", "Bash", "Read", "Grep", "Glob"]
5
+ ---
6
+
7
+ # Verify: $ARGUMENTS
8
+
9
+ Ship the current branch and prove it works in the target environment.
10
+
11
+ ## Orchestration: agent team
12
+
13
+ If you are NOT already operating inside an agent team (no prior `TeamCreate` in this session, not spawned via `Agent` with `team_name`), your FIRST tool call MUST be `TeamCreate`. Do not call `TaskCreate`, `Agent`, or implementation tools before the team exists.
14
+
15
+ If you ARE already inside an agent team (e.g., a teammate invoked this skill via the Skill tool), do NOT call `TeamCreate` — the harness rejects double-creates. Continue within the existing team. The team lead created the team; teammates inherit it.
16
+
17
+ ## Flow
18
+
19
+ Execute the **Verify** flow as defined in the `intent-routing` rule (loaded via the lisa plugin). The flow includes:
20
+
21
+ 1. **Commit** any pending changes via `lisa:git-commit`
22
+ 2. **Push and PR** via `lisa:git-submit-pr`
23
+ 3. **Review loop** — handle CodeRabbit / human review comments via `lisa:pull-request-review`
24
+ 4. **Merge** when CI is green
25
+ 5. **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)
26
+ 6. **Evidence** — post results to the originating ticket via `lisa:jira-evidence` (or equivalent tracker adapter)
27
+
28
+ The rule contains the canonical step sequence. Change it there, propagate everywhere.
29
+
30
+ ## Output
31
+
32
+ A merged PR, a successful deploy to the target environment, and posted evidence on the originating work item.
@@ -121,6 +121,6 @@ The parser should now return the steps, viewports, and assertions from the newly
121
121
  ## When to Use This Skill
122
122
 
123
123
  - Ticket was created before the Validation Journey convention was established
124
- - Ticket was created manually without following `jira-create` guidelines
124
+ - Ticket was created manually without following `lisa:jira-create` guidelines
125
125
  - Ticket needs a journey added or updated based on implementation progress
126
126
  - During sprint planning, to ensure all frontend tickets have journeys before work starts
@@ -6,13 +6,13 @@ allowed-tools: ["Read", "Glob", "LS", "Skill", "mcp__atlassian__getVisibleJiraPr
6
6
 
7
7
  # Create JIRA Issues from $ARGUMENTS
8
8
 
9
- Analyze the provided file(s) and plan a JIRA hierarchy. **This skill plans structure only — every individual ticket write is delegated to `jira-write-ticket`.** Do not call `mcp__atlassian__createJiraIssue` from this skill; the necessary write tools are intentionally not in `allowed-tools`.
9
+ Analyze the provided file(s) and plan a JIRA hierarchy. **This skill plans structure only — every individual ticket write is delegated to `lisa:jira-write-ticket`.** Do not call `mcp__atlassian__createJiraIssue` from this skill; the necessary write tools are intentionally not in `allowed-tools`.
10
10
 
11
11
  ## Process
12
12
 
13
13
  1. **Analyze**: Read $ARGUMENTS to understand scope.
14
- 2. **Extract source artifacts**: invoke the `jira-source-artifacts` skill, then enumerate every external URL, embed, attachment, or example payload and classify each by domain per its rules. Build the `artifacts` map. See "Source Artifacts" below.
15
- 3. **Walk the live product** (when applicable): if the work touches existing user-facing surfaces, invoke the `product-walkthrough` skill to capture current behavior, design-vs-product divergence, and reuse candidates. Especially load-bearing for Expo/React Native — a UI ticket without a current-product walkthrough is missing context the implementer needs. Skip only when the work is purely backend or affects a screen that does not yet exist. See "Live Product Walkthrough" below.
14
+ 2. **Extract source artifacts**: invoke the `lisa:jira-source-artifacts` skill, then enumerate every external URL, embed, attachment, or example payload and classify each by domain per its rules. Build the `artifacts` map. See "Source Artifacts" below.
15
+ 3. **Walk the live product** (when applicable): if the work touches existing user-facing surfaces, invoke the `lisa:product-walkthrough` skill to capture current behavior, design-vs-product divergence, and reuse candidates. Especially load-bearing for Expo/React Native — a UI ticket without a current-product walkthrough is missing context the implementer needs. Skip only when the work is purely backend or affects a screen that does not yet exist. See "Live Product Walkthrough" below.
16
16
  4. **Determine structure**:
17
17
  - Epic needed if: multiple features, major changes, >3 related files
18
18
  - Direct tasks if: bug fix, single file, minor change
@@ -20,8 +20,8 @@ Analyze the provided file(s) and plan a JIRA hierarchy. **This skill plans struc
20
20
  ```text
21
21
  Epic → User Story → Tasks (test, implement, document, cleanup)
22
22
  ```
23
- 6. **Delegate every write to `jira-write-ticket`** in dependency order (epic first, then stories with the epic as parent, then sub-tasks with their story as parent). Pass the artifacts (filtered by domain per `jira-source-artifacts` inheritance rules), the walkthrough findings (under `## Current Product`), and — for UI tickets — the Validation Journey draft with `[SCREENSHOT: ...]` markers. See "Delegation to jira-write-ticket" below.
24
- 7. **Run the artifact preservation gate** (`jira-source-artifacts` §8): after all writes complete, build the preservation matrix and verify every extracted artifact is reachable from the created tickets. Fail loudly if anything was dropped.
23
+ 6. **Delegate every write to `lisa:jira-write-ticket`** in dependency order (epic first, then stories with the epic as parent, then sub-tasks with their story as parent). Pass the artifacts (filtered by domain per `lisa:jira-source-artifacts` inheritance rules), the walkthrough findings (under `## Current Product`), and — for UI tickets — the Validation Journey draft with `[SCREENSHOT: ...]` markers. See "Delegation to jira-write-ticket" below.
24
+ 7. **Run the artifact preservation gate** (`lisa:jira-source-artifacts` §8): after all writes complete, build the preservation matrix and verify every extracted artifact is reachable from the created tickets. Fail loudly if anything was dropped.
25
25
 
26
26
  ## Mandatory for Every Code Issue
27
27
 
@@ -34,7 +34,7 @@ Analyze the provided file(s) and plan a JIRA hierarchy. **This skill plans struc
34
34
 
35
35
  ## Validation Journey (Frontend Tickets)
36
36
 
37
- Every ticket that changes, adds, or fixes UI must include a `Validation Journey` section in the description. This section is consumed by the `jira-journey` skill to automate visual verification via Playwright.
37
+ Every ticket that changes, adds, or fixes UI must include a `Validation Journey` section in the description. This section is consumed by the `lisa:jira-journey` skill to automate visual verification via Playwright.
38
38
 
39
39
  ### When to Include
40
40
 
@@ -95,15 +95,15 @@ h3. Assertions
95
95
 
96
96
  If $ARGUMENTS includes (or references) any external artifact — PRD, design doc, Figma URL, Lovable prototype, Loom walkthrough, screenshot, example payload — those references MUST be preserved as remote links on the created tickets. Silent artifact loss is the single most common quality failure in this pipeline.
97
97
 
98
- **Invoke the `jira-source-artifacts` skill** for the canonical rules: domains, per-tool classification (Figma `/proto/` vs design, Lovable, Loom, screenshots), source precedence, conflict handling under `## Open Questions`, inheritance from epic → story → sub-task, and the existing-component reuse expectation. Do not restate the rules here.
98
+ **Invoke the `lisa:jira-source-artifacts` skill** for the canonical rules: domains, per-tool classification (Figma `/proto/` vs design, Lovable, Loom, screenshots), source precedence, conflict handling under `## Open Questions`, inheritance from epic → story → sub-task, and the existing-component reuse expectation. Do not restate the rules here.
99
99
 
100
100
  Expo-specific note: the existing-component reuse rule is especially load-bearing for React Native — the project has an established component library; pixel-matching a mock instead of reusing components is the most common drift mode.
101
101
 
102
- When delegating writes to `jira-write-ticket`, pass the extracted artifact list so its Phase 4c step can attach them.
102
+ When delegating writes to `lisa:jira-write-ticket`, pass the extracted artifact list so its Phase 4c step can attach them.
103
103
 
104
104
  ## Live Product Walkthrough
105
105
 
106
- When the work touches existing user-facing surfaces, invoke the `product-walkthrough` skill before drafting tickets. Findings (current behavior, design-vs-product divergence, reuse candidates, behavioral surprises) become inputs to the ticket plan and surface under `## Current Product` on the resulting tickets, complementing the Validation Journey (which describes how to verify the *new* behavior, not what exists today). Skip only when the work is purely backend or affects a screen that does not yet exist.
106
+ When the work touches existing user-facing surfaces, invoke the `lisa:product-walkthrough` skill before drafting tickets. Findings (current behavior, design-vs-product divergence, reuse candidates, behavioral surprises) become inputs to the ticket plan and surface under `## Current Product` on the resulting tickets, complementing the Validation Journey (which describes how to verify the *new* behavior, not what exists today). Skip only when the work is purely backend or affects a screen that does not yet exist.
107
107
 
108
108
  ## Issue Requirements
109
109
 
@@ -118,9 +118,9 @@ Exclude unless requested: migration plans, performance tests
118
118
 
119
119
  ## Delegation to jira-write-ticket
120
120
 
121
- **Mandatory.** Every ticket created by this skill MUST go through `jira-write-ticket`. This skill never calls `mcp__atlassian__createJiraIssue` itself — that tool is intentionally excluded from `allowed-tools` so the gate cannot be bypassed.
121
+ **Mandatory.** Every ticket created by this skill MUST go through `lisa:jira-write-ticket`. This skill never calls `mcp__atlassian__createJiraIssue` itself — that tool is intentionally excluded from `allowed-tools` so the gate cannot be bypassed.
122
122
 
123
- `jira-write-ticket` enforces things this skill does not, and which determine ticket quality:
123
+ `lisa:jira-write-ticket` enforces things this skill does not, and which determine ticket quality:
124
124
  - 3-audience description (Context / Technical Approach / Acceptance Criteria)
125
125
  - Gherkin acceptance criteria
126
126
  - Epic parent validation (non-bug, non-epic types)
@@ -134,9 +134,9 @@ Exclude unless requested: migration plans, performance tests
134
134
 
135
135
  Tickets must be created in parent-before-child order so each child can be passed its parent key:
136
136
 
137
- 1. Invoke `jira-write-ticket` for the epic. Capture the returned key.
138
- 2. For each story, invoke `jira-write-ticket` with the epic key as the epic parent. Capture each story key.
139
- 3. For each sub-task, invoke `jira-write-ticket` with the parent story key.
137
+ 1. Invoke `lisa:jira-write-ticket` for the epic. Capture the returned key.
138
+ 2. For each story, invoke `lisa:jira-write-ticket` with the epic key as the epic parent. Capture each story key.
139
+ 3. For each sub-task, invoke `lisa:jira-write-ticket` with the parent story key.
140
140
 
141
141
  ### What to pass to each invocation
142
142
 
@@ -145,8 +145,8 @@ For every delegated write, pass:
145
145
  - The 3-section description body you drafted (Context / Technical Approach / Acceptance Criteria)
146
146
  - Gherkin acceptance criteria
147
147
  - Parent key (epic key for stories; story key for sub-tasks)
148
- - The artifact list extracted in "Source Artifacts", filtered by domain per the inheritance rules — `jira-write-ticket` Phase 4c attaches them as remote links
149
- - For UI-touching tickets: the Validation Journey draft (with `[SCREENSHOT: ...]` markers, viewports, and feature-flag prerequisites). If the journey is missing, instruct it to call `jira-add-journey` after create.
148
+ - The artifact list extracted in "Source Artifacts", filtered by domain per the inheritance rules — `lisa:jira-write-ticket` Phase 4c attaches them as remote links
149
+ - For UI-touching tickets: the Validation Journey draft (with `[SCREENSHOT: ...]` markers, viewports, and feature-flag prerequisites). If the journey is missing, instruct it to call `lisa:jira-add-journey` after create.
150
150
 
151
151
  ### What this skill is responsible for
152
152
 
@@ -158,4 +158,4 @@ This skill owns:
158
158
  - Drafting the Validation Journey for UI tickets (this is Expo-specific guidance the base skill doesn't have)
159
159
  - Running the artifact preservation check after all writes complete
160
160
 
161
- It does not own the actual JIRA write — that's `jira-write-ticket`'s job.
161
+ It does not own the actual JIRA write — that's `lisa:jira-write-ticket`'s job.
@@ -6,22 +6,22 @@ allowed-tools: ["Skill", "mcp__atlassian__getJiraIssue", "mcp__atlassian__getAcc
6
6
 
7
7
  # Verify JIRA Ticket: $ARGUMENTS
8
8
 
9
- Verify that the existing JIRA ticket `$ARGUMENTS` meets organizational standards. This skill is a thin post-write wrapper around `jira-validate-ticket`: it fetches the live ticket and asks `jira-validate-ticket` to run the gates against the fetched state.
9
+ Verify that the existing JIRA ticket `$ARGUMENTS` meets organizational standards. This skill is a thin post-write wrapper around `lisa:jira-validate-ticket`: it fetches the live ticket and asks `lisa:jira-validate-ticket` to run the gates against the fetched state.
10
10
 
11
- This indirection exists so the gate definitions live in exactly one place (`jira-validate-ticket`). When the bar changes, change it there — `jira-verify`, `jira-write-ticket` (Phase 5.5 pre-write), and `notion-to-jira` (PRD dry-run) all pick it up.
11
+ This indirection exists so the gate definitions live in exactly one place (`lisa:jira-validate-ticket`). When the bar changes, change it there — `lisa:jira-verify`, `lisa:jira-write-ticket` (Phase 5.5 pre-write), and `lisa:notion-to-jira` (PRD dry-run) all pick it up.
12
12
 
13
13
  ## Process
14
14
 
15
15
  1. Resolve cloud ID via `mcp__atlassian__getAccessibleAtlassianResources`.
16
16
  2. Fetch the ticket via `mcp__atlassian__getJiraIssue` for `$ARGUMENTS`.
17
- 3. Invoke `jira-validate-ticket` and pass the ticket key. The validator runs every gate (Specification + Feasibility) against the live state, including the Validation Journey check (S11) which applies to any runtime-behavior change — UI tickets in Expo always qualify.
17
+ 3. Invoke `lisa:jira-validate-ticket` and pass the ticket key. The validator runs every gate (Specification + Feasibility) against the live state, including the Validation Journey check (S11) which applies to any runtime-behavior change — UI tickets in Expo always qualify.
18
18
  4. Surface the validator's report verbatim.
19
19
 
20
20
  ## Output
21
21
 
22
- Pass through `jira-validate-ticket`'s structured output unchanged. Downstream callers parse the gate lines.
22
+ Pass through `lisa:jira-validate-ticket`'s structured output unchanged. Downstream callers parse the gate lines.
23
23
 
24
24
  ## Notes
25
25
 
26
26
  - This skill is read-only. It never edits the ticket, posts comments, or changes status.
27
- - For UI tickets that fail the Validation Journey gate, the validator's remediation will recommend `/jira-add-journey` — the Expo flavor of `jira-add-journey` produces the `[SCREENSHOT: ...]` + viewport block that the Playwright-based journey runner consumes.
27
+ - For UI tickets that fail the Validation Journey gate, the validator's remediation will recommend `/lisa:jira-add-journey` — the Expo flavor of `lisa:jira-add-journey` produces the `[SCREENSHOT: ...]` + viewport block that the Playwright-based journey runner consumes.
@@ -4,4 +4,4 @@ allowed-tools: ["Skill"]
4
4
  argument-hint: "<rule-1> [rule-2] [rule-3] ..."
5
5
  ---
6
6
 
7
- Use the /lisa-rails:plan-fix-linter-error skill to fix linter errors. $ARGUMENTS
7
+ Use the /lisa-rails:fix-linter-error skill to fix linter errors. $ARGUMENTS
@@ -3,4 +3,4 @@ description: "Reduce the cognitive complexity threshold by 2 and fix all violati
3
3
  allowed-tools: ["Skill"]
4
4
  ---
5
5
 
6
- Use the /lisa-rails:plan-lower-code-complexity skill to lower code complexity.
6
+ Use the /lisa-rails:improve-code-complexity skill to lower code complexity.
@@ -4,4 +4,4 @@ allowed-tools: ["Skill"]
4
4
  argument-hint: "<max-lines-per-function-value>"
5
5
  ---
6
6
 
7
- Use the /lisa-rails:plan-reduce-max-lines-per-function skill to reduce max function lines. $ARGUMENTS
7
+ Use the /lisa-rails:improve-max-lines-per-function skill to reduce max function lines. $ARGUMENTS
@@ -4,4 +4,4 @@ allowed-tools: ["Skill"]
4
4
  argument-hint: "<max-lines-value>"
5
5
  ---
6
6
 
7
- Use the /lisa-rails:plan-reduce-max-lines skill to reduce max lines. $ARGUMENTS
7
+ Use the /lisa-rails:improve-max-lines skill to reduce max lines. $ARGUMENTS
@@ -4,4 +4,4 @@ allowed-tools: ["Skill"]
4
4
  argument-hint: "<threshold-percentage>"
5
5
  ---
6
6
 
7
- Use the /lisa-rails:plan-add-test-coverage skill to increase test coverage. $ARGUMENTS
7
+ Use the /lisa-rails:improve-test-coverage skill to increase test coverage. $ARGUMENTS