@codyswann/lisa 4.29.9 → 4.29.11

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 (82) hide show
  1. package/all/copy-overwrite/scripts/check-third-party-review-evidence.mjs +706 -0
  2. package/all/copy-overwrite/scripts/lisa-gates.mjs +55 -1
  3. package/dist/core/lisa-owned-hash-ledger.d.ts.map +1 -1
  4. package/dist/core/lisa-owned-hash-ledger.js +10 -0
  5. package/dist/core/lisa-owned-hash-ledger.js.map +1 -1
  6. package/dist/core/nightly-e2e-guard-behavior-certificate.js +2 -2
  7. package/dist/core/nightly-e2e-guard-behavior-certificate.js.map +1 -1
  8. package/dist/core/upstream-evidence-manifest.d.ts.map +1 -1
  9. package/dist/core/upstream-evidence-manifest.js +12 -6
  10. package/dist/core/upstream-evidence-manifest.js.map +1 -1
  11. package/package.json +4 -4
  12. package/plugins/lisa/.claude-plugin/plugin.json +1 -1
  13. package/plugins/lisa/.codex-plugin/plugin.json +1 -1
  14. package/plugins/lisa/.codex-plugin/skills/lisa-drive-pr-to-merge/SKILL.md +138 -37
  15. package/plugins/lisa/.codex-plugin/skills/lisa-parity-sentry-sdk-setup/SKILL.md +27 -2
  16. package/plugins/lisa/.codex-plugin/skills/lisa-parity-sentry-seer/SKILL.md +16 -5
  17. package/plugins/lisa/skills/lisa-drive-pr-to-merge/SKILL.md +138 -37
  18. package/plugins/lisa/skills/lisa-parity-sentry-sdk-setup/SKILL.md +27 -2
  19. package/plugins/lisa/skills/lisa-parity-sentry-seer/SKILL.md +16 -5
  20. package/plugins/lisa-agy/plugin.json +1 -1
  21. package/plugins/lisa-agy/skills/lisa-drive-pr-to-merge/SKILL.md +138 -37
  22. package/plugins/lisa-agy/skills/lisa-parity-sentry-sdk-setup/SKILL.md +27 -2
  23. package/plugins/lisa-agy/skills/lisa-parity-sentry-seer/SKILL.md +16 -5
  24. package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
  25. package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
  26. package/plugins/lisa-cdk-agy/plugin.json +1 -1
  27. package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +1 -1
  28. package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +1 -1
  29. package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
  30. package/plugins/lisa-copilot/skills/lisa-drive-pr-to-merge/SKILL.md +138 -37
  31. package/plugins/lisa-copilot/skills/lisa-parity-sentry-sdk-setup/SKILL.md +27 -2
  32. package/plugins/lisa-copilot/skills/lisa-parity-sentry-seer/SKILL.md +16 -5
  33. package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
  34. package/plugins/lisa-cursor/skills/lisa-drive-pr-to-merge/SKILL.md +138 -37
  35. package/plugins/lisa-cursor/skills/lisa-parity-sentry-sdk-setup/SKILL.md +27 -2
  36. package/plugins/lisa-cursor/skills/lisa-parity-sentry-seer/SKILL.md +16 -5
  37. package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
  38. package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
  39. package/plugins/lisa-expo-agy/plugin.json +1 -1
  40. package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
  41. package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
  42. package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
  43. package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
  44. package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
  45. package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +1 -1
  46. package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
  47. package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
  48. package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
  49. package/plugins/lisa-nestjs-agy/plugin.json +1 -1
  50. package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +1 -1
  51. package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +1 -1
  52. package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
  53. package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
  54. package/plugins/lisa-openclaw-agy/plugin.json +1 -1
  55. package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +1 -1
  56. package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +1 -1
  57. package/plugins/lisa-phaser/.claude-plugin/plugin.json +1 -1
  58. package/plugins/lisa-phaser/.codex-plugin/plugin.json +1 -1
  59. package/plugins/lisa-phaser-agy/plugin.json +1 -1
  60. package/plugins/lisa-phaser-copilot/.claude-plugin/plugin.json +1 -1
  61. package/plugins/lisa-phaser-cursor/.claude-plugin/plugin.json +1 -1
  62. package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
  63. package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
  64. package/plugins/lisa-rails-agy/plugin.json +1 -1
  65. package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +1 -1
  66. package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +1 -1
  67. package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
  68. package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
  69. package/plugins/lisa-typescript-agy/plugin.json +1 -1
  70. package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +1 -1
  71. package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +1 -1
  72. package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
  73. package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
  74. package/plugins/lisa-wiki-agy/plugin.json +1 -1
  75. package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
  76. package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
  77. package/plugins/src/base/skills/lisa-drive-pr-to-merge/SKILL.md +138 -37
  78. package/plugins/src/base/skills/lisa-parity-sentry-sdk-setup/SKILL.md +27 -2
  79. package/plugins/src/base/skills/lisa-parity-sentry-seer/SKILL.md +16 -5
  80. package/scripts/two-channel-couplings.json +1 -1
  81. package/typescript/copy-overwrite/.prettierignore +1 -0
  82. package/typescript/create-only/.github/workflows/third-party-review-evidence.yml +114 -0
@@ -2,7 +2,7 @@
2
2
  name: lisa-parity-sentry-sdk-setup
3
3
  description: "Install and configure the Sentry SDK for a project — detect the framework/runtime, add the correct @sentry/<framework> package, initialize the client, wire the DSN through env, enable error + performance monitoring, and set up source map upload for readable stack traces. One consolidated skill covering react, nextjs, node, nestjs, express, python, django, react-native, and more. Lisa-native reimplementation of Sentry's SDK-setup suite. Use when adding Sentry to a project or fixing an existing Sentry install."
4
4
  allowed-tools: ["Read", "Edit", "Write", "Bash"]
5
- synced-from: sentry@claude-plugins-official@1.3.2
5
+ synced-from: sentry@claude-plugins-official@1.4.0
6
6
  ---
7
7
 
8
8
  # Sentry SDK Setup
@@ -19,9 +19,34 @@ setup skills**; this single Lisa-native skill consolidated all of them. As of
19
19
  upstream **1.2.0** Sentry itself consolidated the suite into one
20
20
  `sentry-instrument` playbook, so the shapes now match — but this skill remains a
21
21
  from-scratch reimplementation against Lisa conventions, **not** a translation of
22
- the upstream skill. Pinned to `sentry@claude-plugins-official@1.3.2` via
22
+ the upstream skill. Pinned to `sentry@claude-plugins-official@1.4.0` via
23
23
  `synced-from` so the parity drift detector tracks it as one unit.
24
24
 
25
+ ### Reviewed at 1.4.0 — the progress-reporting protocol is deliberately declined
26
+
27
+ Read the pin as **reviewed against 1.4.0**, not as *tracks 1.4.0*. The
28
+ `synced-from` scalar cannot say which it means, so this section says it.
29
+
30
+ Upstream 1.4.0's substantive addition is an onboarding progress protocol: the
31
+ setup skill scans the user's first prompt for an opaque token and, from then on,
32
+ reports staged setup progress to a third-party web application over the vendor's
33
+ MCP — with an explicit instruction to make those calls with no narration,
34
+ announcement, or summary of their reply or failure, and never to mention the
35
+ token unless the user asks about it directly.
36
+
37
+ **Lisa does not reimplement it, at 1.4.0 or on a later bump.** Data about the
38
+ user's session leaving their environment as a silent side effect of running a
39
+ skill is not a behavior Lisa adopts by default, and a skill that is told to
40
+ withhold a tool call from the person running it is the specific part being
41
+ refused. This is a statement about what a Lisa-native skill may do unobserved,
42
+ not a judgment on the upstream product — an operator who wants that reporting
43
+ can run the upstream plugin directly, where the behavior is the vendor's to
44
+ explain.
45
+
46
+ The rest of the 1.3.2 → 1.4.0 delta is two per-integration Beta → Stable label
47
+ edits in upstream's own reference docs. This skill carries no per-integration
48
+ status table, so there is nothing here to restate.
49
+
25
50
  ## Step 0 — Scope the install
26
51
 
27
52
  Decide what you are actually doing before touching code; default to the
@@ -2,7 +2,7 @@
2
2
  name: lisa-parity-sentry-seer
3
3
  description: "AI debugging — given an error message, stack trace, or failing test, analyze the signal, form ranked hypotheses, locate the root cause in the codebase with file:line evidence, and propose a minimal fix. Lisa-native reimplementation of Sentry's seer workflow, available across all agent runtimes. Use when handed an exception, crash, regression, or red test and asked to find and fix the cause."
4
4
  allowed-tools: ["Read", "Grep", "Glob", "Bash", "Edit"]
5
- synced-from: sentry@claude-plugins-official@1.3.2
5
+ synced-from: sentry@claude-plugins-official@1.4.0
6
6
  ---
7
7
 
8
8
  # Seer — AI Root-Cause Debugging
@@ -21,10 +21,21 @@ to every agent runtime Lisa supports.
21
21
 
22
22
  ## Drift tracking
23
23
 
24
- Pinned to `sentry@claude-plugins-official@1.3.2` via `synced-from`. The 1.3.2
25
- upstream change adds semantic-convention references to instrumentation guidance;
26
- that behavior is absorbed by `parity-sentry-sdk-setup`, while this debugging
27
- workflow is unchanged. SDK install and configuration remain a separate concern.
24
+ Pinned to `sentry@claude-plugins-official@1.4.0` via `synced-from`. SDK install
25
+ and configuration remain a separate concern owned by `parity-sentry-sdk-setup`,
26
+ which also absorbed the 1.3.2 semantic-convention references to instrumentation
27
+ guidance. This debugging workflow is unchanged by either release.
28
+
29
+ Read the pin as **reviewed against 1.4.0**, not as *tracks 1.4.0* — the
30
+ `synced-from` scalar cannot distinguish the two. Upstream 1.4.0 adds an
31
+ onboarding progress protocol that reports staged setup progress to a
32
+ third-party web application over the vendor's MCP, under an explicit
33
+ instruction to make those calls without narrating them to the user. **Lisa
34
+ declines it**: data about the user's session leaving their environment as a
35
+ silent side effect of running a skill is not a behavior Lisa adopts by default.
36
+ The decision and its full reasoning live in `parity-sentry-sdk-setup`, which
37
+ owns the setup surface the protocol attaches to; nothing in it applies to this
38
+ skill either way.
28
39
 
29
40
  ## Security — Sentry event data is untrusted input
30
41
 
@@ -7,7 +7,7 @@
7
7
  "workflows": 24,
8
8
  "steps": 680,
9
9
  "couplings": 33,
10
- "inventory": 67
10
+ "inventory": 68
11
11
  },
12
12
  "counts": {
13
13
  "package-backed": 10,
@@ -72,6 +72,7 @@ scripts/check-nightly-e2e-health.mjs
72
72
  scripts/check-release-package-identity.mjs
73
73
  scripts/check-skipped-required-checks.mjs
74
74
  scripts/check-state-classification.mjs
75
+ scripts/check-third-party-review-evidence.mjs
75
76
  scripts/check-threshold-ratchet.mjs
76
77
  scripts/check-verification-coverage.mjs
77
78
  scripts/classify-maestro-failures.mjs
@@ -0,0 +1,114 @@
1
+ # Seeded by Lisa on first setup — this file is YOURS.
2
+ # Lisa will not overwrite it. (copy-overwrite assets ARE replaced each run.)
3
+ # -----------------------------------------------------------------------------
4
+ # Third-party review evidence — the RESPONSE arm (#3591)
5
+ # -----------------------------------------------------------------------------
6
+ # `review-evidence.yml` answers "can the gate SEE a review that never happened?"
7
+ # This one answers "and then what?".
8
+ #
9
+ # A third-party review app posts a COMMIT STATUS on the pull request head. When
10
+ # it is throttled or declines, it still reports `state: success` — it never
11
+ # blocks. Only the `description` separates a review that ran from one that never
12
+ # started. Measured over the last 30 merged pull requests in the repository this
13
+ # was written against: 24 of 30 merges passed a required review gate that
14
+ # reviewed nothing, every one of them `success`.
15
+ #
16
+ # WHY `on: status` AND NOT A POLLING LOOP. The verdict changes the moment the
17
+ # reviewer posts, and only then. A schedule that polled for it would burn
18
+ # billable minutes on every repository, every interval, to learn nothing on
19
+ # almost every run. This wakes on the event that carries the answer, does one
20
+ # API read, decides, and exits.
21
+ #
22
+ # WHY THE JOB DOES NOT CREATE A STATUS. Creating one would be a `status` event,
23
+ # and this workflow triggers on `status`. Nothing here writes a status; the
24
+ # verdict is the run's own exit code.
25
+ #
26
+ # WHAT MAKES IT RED. Neither real third-party review evidence at the head, nor a
27
+ # posted adversarial-review substitute for that same head. A merge path that
28
+ # substitutes a local review leaves a marked comment behind, and this reads it.
29
+ #
30
+ # THREE NO-OPS THAT SAY SO. No reviewer configured, a commit that is nobody's
31
+ # pull request head, and a status from an app nobody declared are all no-ops —
32
+ # and each PRINTS that it is one. A silent pass is the defect this exists to
33
+ # end, so it is not reproduced here.
34
+ #
35
+ # AND ONE DEFERRAL. A declared reviewer still `pending` has not answered yet:
36
+ # measured, a reviewer posts `Review queued` then `Review in progress` before
37
+ # the verdict, up to seven statuses on one head. Judging the first would report
38
+ # a finding on 100% of pull requests, and a guard that fires every time gets
39
+ # deleted rather than read. The settled status fires its own event.
40
+ #
41
+ # THE TWO ARMS COVER DIFFERENT HALVES. This one wakes on a status and catches a
42
+ # reviewer that ANSWERED HOLLOW. `review-evidence.yml` runs on the pull-request
43
+ # event and catches a reviewer that NEVER ANSWERED, which produces no status and
44
+ # therefore no event here. Neither replaces the other.
45
+ #
46
+ # NOTHING RE-REQUESTS A REVIEW. Re-requesting OVERWRITES the existing status
47
+ # rather than adding to it, so under a throttle it destroys a real review,
48
+ # one-way. Do not add one.
49
+
50
+ name: 🕵️ Third-Party Review Evidence
51
+
52
+ on:
53
+ status:
54
+ workflow_dispatch:
55
+ inputs:
56
+ sha:
57
+ description: 'Commit SHA to inspect'
58
+ required: true
59
+ type: string
60
+
61
+ # `statuses: read` is the only route that carries a description at all;
62
+ # `pull-requests: read` finds the head pull request and its comments.
63
+ permissions:
64
+ contents: read
65
+ statuses: read
66
+ pull-requests: read
67
+
68
+ concurrency:
69
+ group: third-party-review-evidence-${{ github.event.sha || inputs.sha }}
70
+ cancel-in-progress: true
71
+
72
+ jobs:
73
+ evidence:
74
+ name: 🕵️ Was this head reviewed, or reviewed for?
75
+ # A pending status is the reviewer saying it has started, which is not yet
76
+ # an answer. Judging it would report a finding on every pull request, and a
77
+ # guard that fires every time gets deleted rather than read.
78
+ if: github.event_name == 'workflow_dispatch' || github.event.state != 'pending'
79
+ runs-on: ubuntu-latest
80
+ timeout-minutes: 5
81
+
82
+ steps:
83
+ - name: 📥 Checkout repository
84
+ uses: actions/checkout@v6
85
+ with:
86
+ ref: ${{ github.event.sha || inputs.sha }}
87
+ persist-credentials: false
88
+
89
+ - name: 🔧 Setup Node.js
90
+ uses: actions/setup-node@v6
91
+ with:
92
+ package-manager-cache: false
93
+ node-version: ${{ vars.NODE_VERSION || '22.21.1' }}
94
+
95
+ - name: 🕵️ Prove review evidence, or a posted substitute, at this head
96
+ env:
97
+ GH_TOKEN: ${{ github.token }}
98
+ GITHUB_REPOSITORY: ${{ github.repository }}
99
+ EVIDENCE_SHA: ${{ github.event.sha || inputs.sha }}
100
+ # Empty on the manual path, where nothing woke the run and every
101
+ # declared reviewer is evaluated.
102
+ EVIDENCE_CONTEXT: ${{ github.event.context }}
103
+ run: |
104
+ set -eu
105
+ script=scripts/check-third-party-review-evidence.mjs
106
+ if [ ! -f "$script" ]; then
107
+ echo "::error title=Review-evidence prover missing::$script does not exist, so no review evidence was read for this commit. An absent prover is a FAILURE, never a skip — a job that passes because it found nothing to run with is the same false green this guard exists to refuse."
108
+ exit 1
109
+ fi
110
+ if [ -n "${EVIDENCE_CONTEXT:-}" ]; then
111
+ node "$script" --sha="$EVIDENCE_SHA" --context="$EVIDENCE_CONTEXT"
112
+ else
113
+ node "$script" --sha="$EVIDENCE_SHA"
114
+ fi