@codyswann/lisa 2.216.0 → 2.217.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/plugins/lisa/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa/.codex-plugin/skills/lisa-confluence-to-tracker/SKILL.md +78 -3
- package/plugins/lisa/.codex-plugin/skills/lisa-github-to-tracker/SKILL.md +81 -4
- package/plugins/lisa/.codex-plugin/skills/lisa-github-validate-issue/SKILL.md +31 -0
- package/plugins/lisa/.codex-plugin/skills/lisa-github-write-issue/SKILL.md +16 -0
- package/plugins/lisa/.codex-plugin/skills/lisa-jira-validate-ticket/SKILL.md +32 -0
- package/plugins/lisa/.codex-plugin/skills/lisa-jira-write-ticket/SKILL.md +16 -0
- package/plugins/lisa/.codex-plugin/skills/lisa-linear-to-tracker/SKILL.md +82 -4
- package/plugins/lisa/.codex-plugin/skills/lisa-linear-validate-issue/SKILL.md +31 -0
- package/plugins/lisa/.codex-plugin/skills/lisa-linear-write-issue/SKILL.md +16 -0
- package/plugins/lisa/.codex-plugin/skills/lisa-notion-to-tracker/SKILL.md +78 -2
- package/plugins/lisa/.codex-plugin/skills/lisa-prd-backlink/SKILL.md +12 -3
- package/plugins/lisa/.codex-plugin/skills/lisa-prd-ticket-coverage/SKILL.md +17 -0
- package/plugins/lisa/skills/lisa-confluence-to-tracker/SKILL.md +78 -3
- package/plugins/lisa/skills/lisa-github-to-tracker/SKILL.md +81 -4
- package/plugins/lisa/skills/lisa-github-validate-issue/SKILL.md +31 -0
- package/plugins/lisa/skills/lisa-github-write-issue/SKILL.md +16 -0
- package/plugins/lisa/skills/lisa-jira-validate-ticket/SKILL.md +32 -0
- package/plugins/lisa/skills/lisa-jira-write-ticket/SKILL.md +16 -0
- package/plugins/lisa/skills/lisa-linear-to-tracker/SKILL.md +82 -4
- package/plugins/lisa/skills/lisa-linear-validate-issue/SKILL.md +31 -0
- package/plugins/lisa/skills/lisa-linear-write-issue/SKILL.md +16 -0
- package/plugins/lisa/skills/lisa-notion-to-tracker/SKILL.md +78 -2
- package/plugins/lisa/skills/lisa-prd-backlink/SKILL.md +12 -3
- package/plugins/lisa/skills/lisa-prd-ticket-coverage/SKILL.md +17 -0
- package/plugins/lisa-agy/plugin.json +1 -1
- package/plugins/lisa-agy/skills/lisa-confluence-to-tracker/SKILL.md +78 -3
- package/plugins/lisa-agy/skills/lisa-github-to-tracker/SKILL.md +81 -4
- package/plugins/lisa-agy/skills/lisa-github-validate-issue/SKILL.md +31 -0
- package/plugins/lisa-agy/skills/lisa-github-write-issue/SKILL.md +16 -0
- package/plugins/lisa-agy/skills/lisa-jira-validate-ticket/SKILL.md +32 -0
- package/plugins/lisa-agy/skills/lisa-jira-write-ticket/SKILL.md +16 -0
- package/plugins/lisa-agy/skills/lisa-linear-to-tracker/SKILL.md +82 -4
- package/plugins/lisa-agy/skills/lisa-linear-validate-issue/SKILL.md +31 -0
- package/plugins/lisa-agy/skills/lisa-linear-write-issue/SKILL.md +16 -0
- package/plugins/lisa-agy/skills/lisa-notion-to-tracker/SKILL.md +78 -2
- package/plugins/lisa-agy/skills/lisa-prd-backlink/SKILL.md +12 -3
- package/plugins/lisa-agy/skills/lisa-prd-ticket-coverage/SKILL.md +17 -0
- package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk-agy/plugin.json +1 -1
- package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-copilot/skills/lisa-confluence-to-tracker/SKILL.md +78 -3
- package/plugins/lisa-copilot/skills/lisa-github-to-tracker/SKILL.md +81 -4
- package/plugins/lisa-copilot/skills/lisa-github-validate-issue/SKILL.md +31 -0
- package/plugins/lisa-copilot/skills/lisa-github-write-issue/SKILL.md +16 -0
- package/plugins/lisa-copilot/skills/lisa-jira-validate-ticket/SKILL.md +32 -0
- package/plugins/lisa-copilot/skills/lisa-jira-write-ticket/SKILL.md +16 -0
- package/plugins/lisa-copilot/skills/lisa-linear-to-tracker/SKILL.md +82 -4
- package/plugins/lisa-copilot/skills/lisa-linear-validate-issue/SKILL.md +31 -0
- package/plugins/lisa-copilot/skills/lisa-linear-write-issue/SKILL.md +16 -0
- package/plugins/lisa-copilot/skills/lisa-notion-to-tracker/SKILL.md +78 -2
- package/plugins/lisa-copilot/skills/lisa-prd-backlink/SKILL.md +12 -3
- package/plugins/lisa-copilot/skills/lisa-prd-ticket-coverage/SKILL.md +17 -0
- package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cursor/skills/lisa-confluence-to-tracker/SKILL.md +78 -3
- package/plugins/lisa-cursor/skills/lisa-github-to-tracker/SKILL.md +81 -4
- package/plugins/lisa-cursor/skills/lisa-github-validate-issue/SKILL.md +31 -0
- package/plugins/lisa-cursor/skills/lisa-github-write-issue/SKILL.md +16 -0
- package/plugins/lisa-cursor/skills/lisa-jira-validate-ticket/SKILL.md +32 -0
- package/plugins/lisa-cursor/skills/lisa-jira-write-ticket/SKILL.md +16 -0
- package/plugins/lisa-cursor/skills/lisa-linear-to-tracker/SKILL.md +82 -4
- package/plugins/lisa-cursor/skills/lisa-linear-validate-issue/SKILL.md +31 -0
- package/plugins/lisa-cursor/skills/lisa-linear-write-issue/SKILL.md +16 -0
- package/plugins/lisa-cursor/skills/lisa-notion-to-tracker/SKILL.md +78 -2
- package/plugins/lisa-cursor/skills/lisa-prd-backlink/SKILL.md +12 -3
- package/plugins/lisa-cursor/skills/lisa-prd-ticket-coverage/SKILL.md +17 -0
- package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-expo-agy/plugin.json +1 -1
- package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs-agy/plugin.json +1 -1
- package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw-agy/plugin.json +1 -1
- package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser-agy/plugin.json +1 -1
- package/plugins/lisa-phaser-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-rails-agy/plugin.json +1 -1
- package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript-agy/plugin.json +1 -1
- package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki-agy/plugin.json +1 -1
- package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/src/base/skills/lisa-confluence-to-tracker/SKILL.md +78 -3
- package/plugins/src/base/skills/lisa-github-to-tracker/SKILL.md +81 -4
- package/plugins/src/base/skills/lisa-github-validate-issue/SKILL.md +31 -0
- package/plugins/src/base/skills/lisa-github-write-issue/SKILL.md +16 -0
- package/plugins/src/base/skills/lisa-jira-validate-ticket/SKILL.md +32 -0
- package/plugins/src/base/skills/lisa-jira-write-ticket/SKILL.md +16 -0
- package/plugins/src/base/skills/lisa-linear-to-tracker/SKILL.md +82 -4
- package/plugins/src/base/skills/lisa-linear-validate-issue/SKILL.md +31 -0
- package/plugins/src/base/skills/lisa-linear-write-issue/SKILL.md +16 -0
- package/plugins/src/base/skills/lisa-notion-to-tracker/SKILL.md +78 -2
- package/plugins/src/base/skills/lisa-prd-backlink/SKILL.md +12 -3
- package/plugins/src/base/skills/lisa-prd-ticket-coverage/SKILL.md +17 -0
- package/typescript/copy-overwrite/.github/GITHUB_ACTIONS.md +1 -1
- package/typescript/create-only/.github/workflows/claude-ci-auto-fix.yml +14 -6
- package/typescript/create-only/.github/workflows/claude-deploy-auto-fix.yml +11 -4
|
@@ -96,6 +96,21 @@ PRD item id → [ticket keys that cover it]
|
|
|
96
96
|
|
|
97
97
|
Matching rules (in priority order):
|
|
98
98
|
|
|
99
|
+
0. **Declared trace (deterministic — preferred)**: tickets created after
|
|
100
|
+
requirement traceability landed carry a `Source Requirement` section
|
|
101
|
+
(verbatim requirement quotes + register `R-ids`), and the PRD's
|
|
102
|
+
`## Tickets` section carries the same ids in its `lisa:gw … reqs=`
|
|
103
|
+
tokens. When present, the declared trace IS the mapping — match the
|
|
104
|
+
quoted text against the extracted atomic items (match on the verbatim
|
|
105
|
+
quote, not the `R-id`: ids are per-generation and may have shifted if
|
|
106
|
+
the PRD was re-planned; quotes are the durable anchor). A declared
|
|
107
|
+
trace is definitive: do not second-guess it with keyword inference,
|
|
108
|
+
but DO flag a declared quote that no longer appears anywhere in the
|
|
109
|
+
PRD (the requirement was edited or removed — surface it as a drift
|
|
110
|
+
finding, not silently). The derived-work form ("Derived work
|
|
111
|
+
supporting R3, R7") counts as a trace to the named requirements.
|
|
112
|
+
Fall back to rules 1–4 only for tickets with no Source Requirement
|
|
113
|
+
section (created before traceability existed).
|
|
99
114
|
1. **Direct quote / strong keyword overlap**: the ticket's summary or AC explicitly names the PRD item's keywords. High confidence.
|
|
100
115
|
2. **Domain match**: PRD item describes a UI affordance ("Tasks widget") and a ticket scopes that affordance (`[CU-2.1] Tasks widget — empty state`). Medium-high confidence.
|
|
101
116
|
3. **Scope inheritance**: PRD item is a sub-detail of a parent (e.g. an AC under a user story); the ticket covers the parent user story. Medium confidence — flag for review if no more specific ticket exists.
|
|
@@ -107,6 +122,8 @@ Items with **zero** matching tickets are coverage gaps.
|
|
|
107
122
|
|
|
108
123
|
For each created ticket, identify any tickets whose scope_signals do NOT trace back to a PRD item, AND are not justifiable as standard infrastructure tasks (e.g. `X.0 Setup` stories for data model / migrations are typically infrastructure scaffolding, not scope creep).
|
|
109
124
|
|
|
125
|
+
With declared traces this becomes precise: a ticket whose `Source Requirement` section is absent (on a post-traceability ticket set), or whose declared quotes match nothing in the PRD, is an orphan — the strongest scope-creep signal available. A ticket using the derived-work form is by definition not scope creep; it declares which requirements it supports.
|
|
126
|
+
|
|
110
127
|
Scope creep is informational, not blocking — but worth surfacing because it usually indicates the agent invented work.
|
|
111
128
|
|
|
112
129
|
### Phase 5 — Determine verdict
|
|
@@ -183,7 +183,7 @@ Fixer of last resort for red CI on unattended branches: Claude analyzes error lo
|
|
|
183
183
|
- Falls back to a non-frozen dependency install when the lockfile itself is broken, so Claude can repair and commit the lockfile
|
|
184
184
|
- When no fix can be produced, files a deduplicated ticket in the tracker declared in `.lisa.config.json` (`tracker`: jira | github | linear) with a title that says whether Claude ran at all
|
|
185
185
|
- Skips environment branches (`main`, `staging`, `dev`) and auto-fix branches (prevents infinite loops); failing checks on an auto-fix PR escalate to a ticket instead of re-entering
|
|
186
|
-
- Requires
|
|
186
|
+
- Requires the caller to map `JIRA_API_TOKEN` / `LINEAR_API_KEY` (and `PAT`) explicitly in its `secrets:` block so tracker credentials reach the issue dispatcher — least-privilege by design; `secrets: inherit` also works mechanically but hands the chain every repo secret and trips SonarCloud security gates
|
|
187
187
|
|
|
188
188
|
### Claude Code Review Response (`claude-code-review-response.yml`)
|
|
189
189
|
|
|
@@ -25,9 +25,17 @@ jobs:
|
|
|
25
25
|
head_branch: ${{ github.event.workflow_run.head_branch }}
|
|
26
26
|
run_id: ${{ github.event.workflow_run.id }}
|
|
27
27
|
package_manager: 'bun'
|
|
28
|
-
#
|
|
29
|
-
#
|
|
30
|
-
#
|
|
31
|
-
#
|
|
32
|
-
#
|
|
33
|
-
secrets
|
|
28
|
+
# Least-privilege mapping — exactly the secrets the auto-fix chain uses.
|
|
29
|
+
# The tracker tokens are load-bearing: the reusable workflow forwards them
|
|
30
|
+
# to the failure-issue dispatcher, which needs JIRA_API_TOKEN /
|
|
31
|
+
# LINEAR_API_KEY to file tickets in the tracker declared in
|
|
32
|
+
# .lisa.config.json. A CLAUDE_CODE_OAUTH_TOKEN-only mapping silently
|
|
33
|
+
# strands those tickets in GitHub Issues. Unset secrets pass as empty —
|
|
34
|
+
# safe on repos that don't use that tracker. (`secrets: inherit` would
|
|
35
|
+
# also work but hands the chain every repo secret and trips
|
|
36
|
+
# SonarCloud/security-scanner gates.)
|
|
37
|
+
secrets:
|
|
38
|
+
CLAUDE_CODE_OAUTH_TOKEN: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
|
|
39
|
+
PAT: ${{ secrets.PAT }}
|
|
40
|
+
JIRA_API_TOKEN: ${{ secrets.JIRA_API_TOKEN }}
|
|
41
|
+
LINEAR_API_KEY: ${{ secrets.LINEAR_API_KEY }}
|
|
@@ -25,7 +25,14 @@ jobs:
|
|
|
25
25
|
head_branch: ${{ github.event.workflow_run.head_branch }}
|
|
26
26
|
run_id: ${{ github.event.workflow_run.id }}
|
|
27
27
|
package_manager: 'bun'
|
|
28
|
-
#
|
|
29
|
-
#
|
|
30
|
-
# LINEAR_API_KEY
|
|
31
|
-
secrets: inherit
|
|
28
|
+
# Least-privilege mapping — exactly the secrets the deploy-fix chain
|
|
29
|
+
# uses. The tracker tokens are load-bearing: the reusable workflow needs
|
|
30
|
+
# JIRA_API_TOKEN / LINEAR_API_KEY to reach the tracker declared in
|
|
31
|
+
# .lisa.config.json. Unset secrets pass as empty. (`secrets: inherit`
|
|
32
|
+
# would also work but hands the chain every repo secret and trips
|
|
33
|
+
# SonarCloud/security-scanner gates.)
|
|
34
|
+
secrets:
|
|
35
|
+
CLAUDE_CODE_OAUTH_TOKEN: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
|
|
36
|
+
PAT: ${{ secrets.PAT }}
|
|
37
|
+
JIRA_API_TOKEN: ${{ secrets.JIRA_API_TOKEN }}
|
|
38
|
+
LINEAR_API_KEY: ${{ secrets.LINEAR_API_KEY }}
|