@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.
- package/all/copy-overwrite/scripts/check-third-party-review-evidence.mjs +706 -0
- package/all/copy-overwrite/scripts/lisa-gates.mjs +55 -1
- package/dist/core/lisa-owned-hash-ledger.d.ts.map +1 -1
- package/dist/core/lisa-owned-hash-ledger.js +10 -0
- package/dist/core/lisa-owned-hash-ledger.js.map +1 -1
- package/dist/core/nightly-e2e-guard-behavior-certificate.js +2 -2
- package/dist/core/nightly-e2e-guard-behavior-certificate.js.map +1 -1
- package/dist/core/upstream-evidence-manifest.d.ts.map +1 -1
- package/dist/core/upstream-evidence-manifest.js +12 -6
- package/dist/core/upstream-evidence-manifest.js.map +1 -1
- package/package.json +4 -4
- 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-drive-pr-to-merge/SKILL.md +138 -37
- package/plugins/lisa/.codex-plugin/skills/lisa-parity-sentry-sdk-setup/SKILL.md +27 -2
- package/plugins/lisa/.codex-plugin/skills/lisa-parity-sentry-seer/SKILL.md +16 -5
- package/plugins/lisa/skills/lisa-drive-pr-to-merge/SKILL.md +138 -37
- package/plugins/lisa/skills/lisa-parity-sentry-sdk-setup/SKILL.md +27 -2
- package/plugins/lisa/skills/lisa-parity-sentry-seer/SKILL.md +16 -5
- package/plugins/lisa-agy/plugin.json +1 -1
- package/plugins/lisa-agy/skills/lisa-drive-pr-to-merge/SKILL.md +138 -37
- package/plugins/lisa-agy/skills/lisa-parity-sentry-sdk-setup/SKILL.md +27 -2
- package/plugins/lisa-agy/skills/lisa-parity-sentry-seer/SKILL.md +16 -5
- 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-drive-pr-to-merge/SKILL.md +138 -37
- package/plugins/lisa-copilot/skills/lisa-parity-sentry-sdk-setup/SKILL.md +27 -2
- package/plugins/lisa-copilot/skills/lisa-parity-sentry-seer/SKILL.md +16 -5
- package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cursor/skills/lisa-drive-pr-to-merge/SKILL.md +138 -37
- package/plugins/lisa-cursor/skills/lisa-parity-sentry-sdk-setup/SKILL.md +27 -2
- package/plugins/lisa-cursor/skills/lisa-parity-sentry-seer/SKILL.md +16 -5
- 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-drive-pr-to-merge/SKILL.md +138 -37
- package/plugins/src/base/skills/lisa-parity-sentry-sdk-setup/SKILL.md +27 -2
- package/plugins/src/base/skills/lisa-parity-sentry-seer/SKILL.md +16 -5
- package/scripts/two-channel-couplings.json +1 -1
- package/typescript/copy-overwrite/.prettierignore +1 -0
- 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.
|
|
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.
|
|
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.
|
|
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.
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
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
|
|
|
@@ -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
|