@codyswann/lisa 2.77.1 → 2.77.2
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/rules/config-resolution.md +30 -0
- package/plugins/lisa/skills/doctor/SKILL.md +36 -0
- package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk/.codex-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-harper-fabric/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric/.codex-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-openclaw/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw/.codex-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-typescript/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript/.codex-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/src/base/rules/config-resolution.md +30 -0
- package/plugins/src/base/skills/doctor/SKILL.md +36 -0
package/package.json
CHANGED
|
@@ -82,7 +82,7 @@
|
|
|
82
82
|
"lodash": ">=4.18.1"
|
|
83
83
|
},
|
|
84
84
|
"name": "@codyswann/lisa",
|
|
85
|
-
"version": "2.77.
|
|
85
|
+
"version": "2.77.2",
|
|
86
86
|
"description": "Claude Code governance framework that applies guardrails, guidance, and automated enforcement to projects",
|
|
87
87
|
"main": "dist/index.js",
|
|
88
88
|
"exports": {
|
|
@@ -429,6 +429,36 @@ Doctor must validate config in three layers:
|
|
|
429
429
|
Doctor's severity rule is simple: unusable merged config is `FAIL`; locality drift with a still
|
|
430
430
|
usable merged config is `WARN`.
|
|
431
431
|
|
|
432
|
+
### Doctor vendor preflight
|
|
433
|
+
|
|
434
|
+
Once doctor can resolve the merged `tracker` and optional `source`, it must run a read-only vendor
|
|
435
|
+
preflight for those configured vendors only.
|
|
436
|
+
|
|
437
|
+
1. **Audit only the configured vendors**
|
|
438
|
+
- Always audit the merged `tracker`.
|
|
439
|
+
- Audit `source` when present and when it is not already covered by the tracker check.
|
|
440
|
+
- Every other vendor is a doctor `SKIP`, not an implicit pass.
|
|
441
|
+
2. **Read-capable substrate requirement**
|
|
442
|
+
- `github` requires `gh` CLI, a passing `gh auth status`, and read access to the configured
|
|
443
|
+
repo (`github.org` + `github.repo`).
|
|
444
|
+
- `jira` / `confluence` must reuse the `atlassian-access` substrate ladder. Doctor passes when
|
|
445
|
+
at least one supported read-capable substrate (`acli`, Atlassian MCP, or validated curl/API
|
|
446
|
+
token) can prove visibility to the configured `atlassian.cloudId` and target scope.
|
|
447
|
+
- `linear` passes when either the Linear MCP or a validated API-key probe can read the
|
|
448
|
+
configured workspace; tracker mode also requires visibility to `linear.teamKey`.
|
|
449
|
+
- `notion` passes when either the Notion MCP identity matches `notion.workspaceId` or a valid
|
|
450
|
+
internal-integration token does, and the configured `notion.prdDatabaseId` is readable.
|
|
451
|
+
3. **Observed-fact discipline**
|
|
452
|
+
- Missing executable / MCP availability and failed auth/scope probes must be reported
|
|
453
|
+
separately.
|
|
454
|
+
- Preserve the exact probe failure text or status code when a read attempt fails; doctor should
|
|
455
|
+
not collapse repo-not-found, wrong-workspace, and unauthenticated cases into one generic
|
|
456
|
+
readiness error.
|
|
457
|
+
4. **Severity**
|
|
458
|
+
- No read-capable substrate for the configured vendor, or a configured target that remains
|
|
459
|
+
unreadable after all supported probes, is a doctor `FAIL`.
|
|
460
|
+
- A reachable vendor with only auxiliary-substrate degradation is a doctor `WARN`.
|
|
461
|
+
|
|
432
462
|
## Skill mapping
|
|
433
463
|
|
|
434
464
|
The shim → vendor mapping is fixed:
|
|
@@ -104,6 +104,42 @@ this order:
|
|
|
104
104
|
Locality findings are advisory unless the merged config is unusable. Missing shared keys after the
|
|
105
105
|
merge are `FAIL`; shared keys that exist only locally are `WARN`.
|
|
106
106
|
|
|
107
|
+
### Minimum tracker/source preflight checks
|
|
108
|
+
|
|
109
|
+
After config readiness passes far enough to resolve the merged `tracker` and optional `source`,
|
|
110
|
+
doctor must perform read-only preflight checks for the configured vendors only. It does not probe
|
|
111
|
+
every vendor Lisa supports.
|
|
112
|
+
|
|
113
|
+
1. **Scope the audit to configured vendors**
|
|
114
|
+
- Audit the merged `tracker`.
|
|
115
|
+
- Audit the merged `source` only when present and distinct from the tracker.
|
|
116
|
+
- Report every non-configured vendor as `SKIP` rather than pretending it was checked.
|
|
117
|
+
2. **Prove a readable substrate exists**
|
|
118
|
+
- `tracker=github` or `source=github`: require `gh` CLI availability, a passing `gh auth status`,
|
|
119
|
+
and a read probe against the configured repo such as `gh repo view <org>/<repo>`.
|
|
120
|
+
- `tracker=jira`, `source=jira`, or `source=confluence`: follow the `atlassian-access`
|
|
121
|
+
substrate ladder and prove at least one read-capable path can see the configured
|
|
122
|
+
`atlassian.cloudId` and vendor scope. Acceptable substrates are `acli`, Atlassian MCP, or the
|
|
123
|
+
validated API-token/curl path documented by `config-resolution`.
|
|
124
|
+
- `tracker=linear` or `source=linear`: require either readable Linear MCP access or a valid
|
|
125
|
+
personal API-key probe against the configured workspace. When Linear is the tracker, doctor
|
|
126
|
+
must also prove the configured `linear.teamKey` is visible.
|
|
127
|
+
- `source=notion`: require either a Notion MCP identity match for `notion.workspaceId` or a
|
|
128
|
+
valid internal-integration token probe, plus read visibility to `notion.prdDatabaseId`.
|
|
129
|
+
3. **Separate missing tooling from missing auth or scope**
|
|
130
|
+
- Missing executable / MCP substrate availability is a distinct observed fact, not the same as
|
|
131
|
+
"auth failed."
|
|
132
|
+
- When a probe runs and fails, preserve the exact read-only failure text or HTTP/GraphQL status
|
|
133
|
+
in the observed output so the operator can distinguish wrong workspace/site/repo from missing
|
|
134
|
+
credentials.
|
|
135
|
+
4. **Severity ladder**
|
|
136
|
+
- `PASS` when at least one supported read-only substrate proves the configured vendor is
|
|
137
|
+
reachable with the required scope.
|
|
138
|
+
- `WARN` when the configured vendor is reachable, but an additional optional substrate is
|
|
139
|
+
unavailable and later Lisa flows would need to fall back.
|
|
140
|
+
- `FAIL` when no supported substrate can prove read access for the configured tracker/source, or
|
|
141
|
+
when the configured vendor target is unreadable from the current runtime.
|
|
142
|
+
|
|
107
143
|
## Output contract
|
|
108
144
|
|
|
109
145
|
The final report must:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lisa-openclaw",
|
|
3
|
-
"version": "2.77.
|
|
3
|
+
"version": "2.77.2",
|
|
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": "2.77.
|
|
3
|
+
"version": "2.77.2",
|
|
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"
|
|
@@ -429,6 +429,36 @@ Doctor must validate config in three layers:
|
|
|
429
429
|
Doctor's severity rule is simple: unusable merged config is `FAIL`; locality drift with a still
|
|
430
430
|
usable merged config is `WARN`.
|
|
431
431
|
|
|
432
|
+
### Doctor vendor preflight
|
|
433
|
+
|
|
434
|
+
Once doctor can resolve the merged `tracker` and optional `source`, it must run a read-only vendor
|
|
435
|
+
preflight for those configured vendors only.
|
|
436
|
+
|
|
437
|
+
1. **Audit only the configured vendors**
|
|
438
|
+
- Always audit the merged `tracker`.
|
|
439
|
+
- Audit `source` when present and when it is not already covered by the tracker check.
|
|
440
|
+
- Every other vendor is a doctor `SKIP`, not an implicit pass.
|
|
441
|
+
2. **Read-capable substrate requirement**
|
|
442
|
+
- `github` requires `gh` CLI, a passing `gh auth status`, and read access to the configured
|
|
443
|
+
repo (`github.org` + `github.repo`).
|
|
444
|
+
- `jira` / `confluence` must reuse the `atlassian-access` substrate ladder. Doctor passes when
|
|
445
|
+
at least one supported read-capable substrate (`acli`, Atlassian MCP, or validated curl/API
|
|
446
|
+
token) can prove visibility to the configured `atlassian.cloudId` and target scope.
|
|
447
|
+
- `linear` passes when either the Linear MCP or a validated API-key probe can read the
|
|
448
|
+
configured workspace; tracker mode also requires visibility to `linear.teamKey`.
|
|
449
|
+
- `notion` passes when either the Notion MCP identity matches `notion.workspaceId` or a valid
|
|
450
|
+
internal-integration token does, and the configured `notion.prdDatabaseId` is readable.
|
|
451
|
+
3. **Observed-fact discipline**
|
|
452
|
+
- Missing executable / MCP availability and failed auth/scope probes must be reported
|
|
453
|
+
separately.
|
|
454
|
+
- Preserve the exact probe failure text or status code when a read attempt fails; doctor should
|
|
455
|
+
not collapse repo-not-found, wrong-workspace, and unauthenticated cases into one generic
|
|
456
|
+
readiness error.
|
|
457
|
+
4. **Severity**
|
|
458
|
+
- No read-capable substrate for the configured vendor, or a configured target that remains
|
|
459
|
+
unreadable after all supported probes, is a doctor `FAIL`.
|
|
460
|
+
- A reachable vendor with only auxiliary-substrate degradation is a doctor `WARN`.
|
|
461
|
+
|
|
432
462
|
## Skill mapping
|
|
433
463
|
|
|
434
464
|
The shim → vendor mapping is fixed:
|
|
@@ -104,6 +104,42 @@ this order:
|
|
|
104
104
|
Locality findings are advisory unless the merged config is unusable. Missing shared keys after the
|
|
105
105
|
merge are `FAIL`; shared keys that exist only locally are `WARN`.
|
|
106
106
|
|
|
107
|
+
### Minimum tracker/source preflight checks
|
|
108
|
+
|
|
109
|
+
After config readiness passes far enough to resolve the merged `tracker` and optional `source`,
|
|
110
|
+
doctor must perform read-only preflight checks for the configured vendors only. It does not probe
|
|
111
|
+
every vendor Lisa supports.
|
|
112
|
+
|
|
113
|
+
1. **Scope the audit to configured vendors**
|
|
114
|
+
- Audit the merged `tracker`.
|
|
115
|
+
- Audit the merged `source` only when present and distinct from the tracker.
|
|
116
|
+
- Report every non-configured vendor as `SKIP` rather than pretending it was checked.
|
|
117
|
+
2. **Prove a readable substrate exists**
|
|
118
|
+
- `tracker=github` or `source=github`: require `gh` CLI availability, a passing `gh auth status`,
|
|
119
|
+
and a read probe against the configured repo such as `gh repo view <org>/<repo>`.
|
|
120
|
+
- `tracker=jira`, `source=jira`, or `source=confluence`: follow the `atlassian-access`
|
|
121
|
+
substrate ladder and prove at least one read-capable path can see the configured
|
|
122
|
+
`atlassian.cloudId` and vendor scope. Acceptable substrates are `acli`, Atlassian MCP, or the
|
|
123
|
+
validated API-token/curl path documented by `config-resolution`.
|
|
124
|
+
- `tracker=linear` or `source=linear`: require either readable Linear MCP access or a valid
|
|
125
|
+
personal API-key probe against the configured workspace. When Linear is the tracker, doctor
|
|
126
|
+
must also prove the configured `linear.teamKey` is visible.
|
|
127
|
+
- `source=notion`: require either a Notion MCP identity match for `notion.workspaceId` or a
|
|
128
|
+
valid internal-integration token probe, plus read visibility to `notion.prdDatabaseId`.
|
|
129
|
+
3. **Separate missing tooling from missing auth or scope**
|
|
130
|
+
- Missing executable / MCP substrate availability is a distinct observed fact, not the same as
|
|
131
|
+
"auth failed."
|
|
132
|
+
- When a probe runs and fails, preserve the exact read-only failure text or HTTP/GraphQL status
|
|
133
|
+
in the observed output so the operator can distinguish wrong workspace/site/repo from missing
|
|
134
|
+
credentials.
|
|
135
|
+
4. **Severity ladder**
|
|
136
|
+
- `PASS` when at least one supported read-only substrate proves the configured vendor is
|
|
137
|
+
reachable with the required scope.
|
|
138
|
+
- `WARN` when the configured vendor is reachable, but an additional optional substrate is
|
|
139
|
+
unavailable and later Lisa flows would need to fall back.
|
|
140
|
+
- `FAIL` when no supported substrate can prove read access for the configured tracker/source, or
|
|
141
|
+
when the configured vendor target is unreadable from the current runtime.
|
|
142
|
+
|
|
107
143
|
## Output contract
|
|
108
144
|
|
|
109
145
|
The final report must:
|