@codyswann/lisa 4.10.7 → 4.10.8
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/lisa-gates.mjs +82 -1
- package/dist/cli/doctor-declared-contexts.d.ts.map +1 -1
- package/dist/cli/doctor-declared-contexts.js +16 -0
- package/dist/cli/doctor-declared-contexts.js.map +1 -1
- package/dist/cli/gate-report-drift-section.d.ts.map +1 -1
- package/dist/cli/gate-report-drift-section.js +6 -0
- package/dist/cli/gate-report-drift-section.js.map +1 -1
- package/dist/cli/gate-report-joins.d.ts +0 -15
- package/dist/cli/gate-report-joins.d.ts.map +1 -1
- package/dist/cli/gate-report-joins.js +2 -1
- package/dist/cli/gate-report-joins.js.map +1 -1
- package/dist/cli/gate-report-registry.d.ts +8 -0
- package/dist/cli/gate-report-registry.d.ts.map +1 -1
- package/dist/cli/gate-report-registry.js.map +1 -1
- package/dist/cli/gate-report-types.d.ts +2 -1
- package/dist/cli/gate-report-types.d.ts.map +1 -1
- package/dist/cli/gate-report-types.js.map +1 -1
- package/dist/core/gate-context-owners.d.ts +122 -0
- package/dist/core/gate-context-owners.d.ts.map +1 -0
- package/dist/core/gate-context-owners.js +174 -0
- package/dist/core/gate-context-owners.js.map +1 -0
- package/dist/core/gate-declaration-drift.d.ts +56 -79
- package/dist/core/gate-declaration-drift.d.ts.map +1 -1
- package/dist/core/gate-declaration-drift.js +73 -115
- package/dist/core/gate-declaration-drift.js.map +1 -1
- package/dist/core/lisa-owned-hash-ledger.d.ts.map +1 -1
- package/dist/core/lisa-owned-hash-ledger.js +4 -0
- package/dist/core/lisa-owned-hash-ledger.js.map +1 -1
- package/dist/core/upstream-evidence-manifest.d.ts.map +1 -1
- package/dist/core/upstream-evidence-manifest.js +6 -2
- package/dist/core/upstream-evidence-manifest.js.map +1 -1
- package/dist/health/declared-checks-inspection.d.ts +0 -22
- package/dist/health/declared-checks-inspection.d.ts.map +1 -1
- package/dist/health/declared-checks-inspection.js +44 -5
- package/dist/health/declared-checks-inspection.js.map +1 -1
- 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-agy/plugin.json +1 -1
- 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-cursor/.claude-plugin/plugin.json +1 -1
- 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/scripts/lisa-github-rulesets.sh +138 -0
|
@@ -1,25 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Hold the gates declaration against the live ruleset, on a path a machine
|
|
3
|
-
* takes on its own.
|
|
4
|
-
*
|
|
5
|
-
* The comparison itself was not the missing piece. A finished reconciler has
|
|
6
|
-
* existed for some time, unit- and mutation-covered, reporting MISSING, EXTRA,
|
|
7
|
-
* MATCHED and a distinct UNPROVEN — and nothing invoked it. Its only callers
|
|
8
|
-
* were copies of prose in a skill telling a human to type the command, which
|
|
9
|
-
* makes it indistinguishable from a control that was never written. This module
|
|
10
|
-
* is the same comparison sitting on a scheduled, machine-invoked path.
|
|
11
|
-
*
|
|
12
|
-
* Two rules it does not get to bend:
|
|
13
|
-
*
|
|
14
|
-
* - **A source this run could not read is `warn`, never `pass`.** A comparison
|
|
15
|
-
* that silently passes when it could not reach the live ruleset is the exact
|
|
16
|
-
* defect this check exists to catch, sited on the check itself.
|
|
17
|
-
* - **Nothing here proposes removing a live required context.** A context no
|
|
18
|
-
* declaration asks for is reported so it can be told apart from a third-party
|
|
19
|
-
* check, not so it can be pruned. The remedy vocabulary in
|
|
20
|
-
* `core/gate-declaration-drift` structurally contains no removal.
|
|
21
|
-
* @module health/declared-checks-inspection
|
|
22
|
-
*/
|
|
23
1
|
import { type DeclarationDriftReport } from "../core/gate-declaration-drift.js";
|
|
24
2
|
import type { HealthFinding } from "./contract.js";
|
|
25
3
|
import { type RulesetReader } from "./ruleset-inspection.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"declared-checks-inspection.d.ts","sourceRoot":"","sources":["../../src/health/declared-checks-inspection.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"declared-checks-inspection.d.ts","sourceRoot":"","sources":["../../src/health/declared-checks-inspection.ts"],"names":[],"mappings":"AA0CA,OAAO,EAEL,KAAK,sBAAsB,EAC5B,MAAM,mCAAmC,CAAC;AAE3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAEnD,OAAO,EAGL,KAAK,aAAa,EACnB,MAAM,yBAAyB,CAAC;AAiCjC;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,sBAAsB,GAC7B,aAAa,CAqDf;AAED;;;;;;;;GAQG;AACH,wBAAsB,0BAA0B,CAC9C,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EACzC,MAAM,EAAE,aAAa,EACrB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,aAAa,CAAC,CAgExB"}
|
|
@@ -14,13 +14,33 @@
|
|
|
14
14
|
* - **A source this run could not read is `warn`, never `pass`.** A comparison
|
|
15
15
|
* that silently passes when it could not reach the live ruleset is the exact
|
|
16
16
|
* defect this check exists to catch, sited on the check itself.
|
|
17
|
-
* - **Nothing here proposes removing a live required context
|
|
18
|
-
* declaration asks for is reported so it
|
|
19
|
-
* check, not so it can be pruned. The
|
|
20
|
-
* `core/gate-declaration-drift`
|
|
17
|
+
* - **Nothing here proposes removing a live required context, with one
|
|
18
|
+
* evidenced exception.** A context no declaration asks for is reported so it
|
|
19
|
+
* can be told apart from a third-party check, not so it can be pruned. The
|
|
20
|
+
* sole removal in `core/gate-declaration-drift`'s vocabulary is reachable
|
|
21
|
+
* only from a `previousLabels` match — Lisa's own record that Lisa renamed
|
|
22
|
+
* the job — and is a REPORT even then: the ruleset carrying the retired name
|
|
23
|
+
* is frequently one Lisa does not manage, and editing somebody else's
|
|
24
|
+
* ruleset is not this check's decision to make.
|
|
25
|
+
*
|
|
26
|
+
* The live reader here lists every ruleset the repository has, managed or not,
|
|
27
|
+
* and the comparison runs over all of them. That breadth is the point: every
|
|
28
|
+
* RECONCILING surface is scoped per MANAGED ruleset name. The reconciliation
|
|
29
|
+
* in `lisa-github-rulesets.sh` makes Lisa's own templates match and never
|
|
30
|
+
* touches a ruleset somebody hand-made, and `health/ruleset-inspection`
|
|
31
|
+
* compares the same managed names — so a hand-made ruleset requiring a retired
|
|
32
|
+
* context was invisible to both. That is the #3067 failure.
|
|
33
|
+
*
|
|
34
|
+
* Since #3067, `lisa-github-rulesets.sh` also carries a REPORT-ONLY sweep
|
|
35
|
+
* (`report_retired_contexts`) that does read every live ruleset. An operator
|
|
36
|
+
* chasing a hand-made ruleset therefore has two places to look, and neither
|
|
37
|
+
* one edits it: that sweep prints what it found at the end of a run, and this
|
|
38
|
+
* module is the same finding on a scheduled, machine-invoked path. The
|
|
39
|
+
* managed-only scoping above still describes what either surface will CHANGE.
|
|
21
40
|
* @module health/declared-checks-inspection
|
|
22
41
|
*/
|
|
23
|
-
import {
|
|
42
|
+
import { contextOwners } from "../core/gate-context-owners.js";
|
|
43
|
+
import { classifyDeclarationDrift, } from "../core/gate-declaration-drift.js";
|
|
24
44
|
import { loadGateRegistry } from "../cli/gate-report-registry.js";
|
|
25
45
|
import { deterministicFinding, namedReason } from "./finding-utils.js";
|
|
26
46
|
import { liveRequiredContexts, } from "./ruleset-inspection.js";
|
|
@@ -61,6 +81,15 @@ function githubTarget(config) {
|
|
|
61
81
|
* @returns The finding
|
|
62
82
|
*/
|
|
63
83
|
export function declaredChecksFinding(report) {
|
|
84
|
+
// FIRST, ahead of the contradictions. A retired context is the only verdict
|
|
85
|
+
// here that may be blocking every pull request in the repository at this
|
|
86
|
+
// moment, and it is the one an operator cannot find on their own: there is
|
|
87
|
+
// no failing job to open and no log to read, so the reason it blocks has to
|
|
88
|
+
// come from this line or from nowhere.
|
|
89
|
+
const retired = report.entries.filter(entry => entry.verdict === "enforced-context-retired");
|
|
90
|
+
if (retired.length > 0) {
|
|
91
|
+
return deterministicFinding(CHECK, "fail", namedReason("Live branch protection requires contexts nothing will ever post — these are not failing, they can never report, and every pull request here waits on them forever", retired.map(entry => entry.detail)));
|
|
92
|
+
}
|
|
64
93
|
const contradictions = report.entries.filter(entry => entry.verdict === "declared-not-enforced" ||
|
|
65
94
|
entry.verdict === "enforced-declared-off");
|
|
66
95
|
if (contradictions.length > 0) {
|
|
@@ -100,6 +129,16 @@ export async function declaredChecksDriftFinding(projectRoot, config, reader, ti
|
|
|
100
129
|
if (actual === undefined) {
|
|
101
130
|
return deterministicFinding(CHECK, "warn", "Unproven: live branch protection could not be read within the deterministic deadline, so nothing here claims a declaration does or does not match it.");
|
|
102
131
|
}
|
|
132
|
+
// An empty sweep and a clean repository are otherwise identical, and the
|
|
133
|
+
// empty one is the more likely: a token without the ruleset scope, an
|
|
134
|
+
// organization-level ruleset the reader cannot see, and a repository that
|
|
135
|
+
// genuinely has no protection all arrive here as zero rows. Comparing
|
|
136
|
+
// against zero rulesets would report every declared requirement as enforced
|
|
137
|
+
// by nothing — a different and false claim, and exactly what the
|
|
138
|
+
// comparator's own contract forbids its callers from asking it for.
|
|
139
|
+
if (actual.length === 0) {
|
|
140
|
+
return deterministicFinding(CHECK, "warn", "Unproven: the repository reported no rulesets at all. A token without the ruleset scope, an organization ruleset this reader cannot see, and a repository with no protection are indistinguishable from here — so this run inspected nothing rather than finding nothing.");
|
|
141
|
+
}
|
|
103
142
|
const gates = readGatesSafely(registry, projectRoot);
|
|
104
143
|
if (gates === null) {
|
|
105
144
|
return deterministicFinding(CHECK, "warn", "Unproven: the gates block could not be read, so the contexts it implies could not be compared with live branch protection.");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"declared-checks-inspection.js","sourceRoot":"","sources":["../../src/health/declared-checks-inspection.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"declared-checks-inspection.js","sourceRoot":"","sources":["../../src/health/declared-checks-inspection.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -149,7 +149,7 @@
|
|
|
149
149
|
"zod-validation-error": "^4.0.0"
|
|
150
150
|
},
|
|
151
151
|
"name": "@codyswann/lisa",
|
|
152
|
-
"version": "4.10.
|
|
152
|
+
"version": "4.10.8",
|
|
153
153
|
"description": "Claude Code governance framework that applies guardrails, guidance, and automated enforcement to projects",
|
|
154
154
|
"main": "dist/index.js",
|
|
155
155
|
"exports": {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lisa-openclaw",
|
|
3
|
-
"version": "4.10.
|
|
3
|
+
"version": "4.10.8",
|
|
4
4
|
"description": "Connect staff roles to Telegram or Slack via OpenClaw — facilitator/specialist hub-and-spoke routing and repo-coding topics, for Claude Code and Codex",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Cody Swann"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lisa-openclaw",
|
|
3
|
-
"version": "4.10.
|
|
3
|
+
"version": "4.10.8",
|
|
4
4
|
"description": "Connect staff roles to Telegram or Slack via OpenClaw — facilitator/specialist hub-and-spoke routing and repo-coding topics, across Claude and Codex.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Cody Swann"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lisa-openclaw",
|
|
3
|
-
"version": "4.10.
|
|
3
|
+
"version": "4.10.8",
|
|
4
4
|
"description": "Connect staff roles to Telegram or Slack via OpenClaw — facilitator/specialist hub-and-spoke routing and repo-coding topics, for Claude Code and Codex",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Cody Swann"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lisa-openclaw",
|
|
3
|
-
"version": "4.10.
|
|
3
|
+
"version": "4.10.8",
|
|
4
4
|
"description": "Connect staff roles to Telegram or Slack via OpenClaw — facilitator/specialist hub-and-spoke routing and repo-coding topics, for Claude Code and Codex",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Cody Swann"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lisa-openclaw",
|
|
3
|
-
"version": "4.10.
|
|
3
|
+
"version": "4.10.8",
|
|
4
4
|
"description": "Connect staff roles to Telegram or Slack via OpenClaw — facilitator/specialist hub-and-spoke routing and repo-coding topics, for Claude Code and Codex",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Cody Swann"
|