@codyswann/lisa 4.64.0 → 4.64.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/dist/core/instruction-files-migration.d.ts +2 -1
- package/dist/core/instruction-files-migration.d.ts.map +1 -1
- package/dist/core/instruction-files-migration.js +5 -1
- package/dist/core/instruction-files-migration.js.map +1 -1
- package/dist/core/nightly-e2e-guard-behavior-certificate.js +2 -2
- package/dist/core/upstream-evidence-manifest.d.ts.map +1 -1
- package/dist/core/upstream-evidence-manifest.js +11 -10
- 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-design-intake/SKILL.md +1 -1
- package/plugins/lisa/.codex-plugin/skills/lisa-implement/SKILL.md +3 -1
- package/plugins/lisa/.codex-plugin/skills/lisa-quality-review/SKILL.md +2 -2
- package/plugins/lisa/.codex-plugin/skills/lisa-review-local/SKILL.md +9 -3
- package/plugins/lisa/.codex-plugin/skills/lisa-tdd-implementation/SKILL.md +2 -1
- package/plugins/lisa/.codex-plugin/skills/lisa-tracker-source-artifacts/SKILL.md +3 -1
- package/plugins/lisa/rules/eager/tool-access-gate.md +13 -11
- package/plugins/lisa/rules/reference/design-source-of-truth.md +32 -10
- package/plugins/lisa/rules/reference/tool-access-gate.md +31 -38
- package/plugins/lisa/scripts/design-source-gate.mjs +35 -13
- package/plugins/lisa/skills/lisa-design-intake/SKILL.md +1 -1
- package/plugins/lisa/skills/lisa-implement/SKILL.md +3 -1
- package/plugins/lisa/skills/lisa-quality-review/SKILL.md +2 -2
- package/plugins/lisa/skills/lisa-review-local/SKILL.md +9 -3
- package/plugins/lisa/skills/lisa-tdd-implementation/SKILL.md +2 -1
- package/plugins/lisa/skills/lisa-tracker-source-artifacts/SKILL.md +3 -1
- package/plugins/lisa-agy/plugin.json +1 -1
- package/plugins/lisa-agy/scripts/design-source-gate.mjs +35 -13
- package/plugins/lisa-agy/skills/lisa-design-intake/SKILL.md +1 -1
- package/plugins/lisa-agy/skills/lisa-implement/SKILL.md +3 -1
- package/plugins/lisa-agy/skills/lisa-quality-review/SKILL.md +2 -2
- package/plugins/lisa-agy/skills/lisa-review-local/SKILL.md +9 -3
- package/plugins/lisa-agy/skills/lisa-tdd-implementation/SKILL.md +2 -1
- package/plugins/lisa-agy/skills/lisa-tracker-source-artifacts/SKILL.md +3 -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-copilot/rules/eager/tool-access-gate.md +13 -11
- package/plugins/lisa-copilot/rules/reference/design-source-of-truth.md +32 -10
- package/plugins/lisa-copilot/rules/reference/tool-access-gate.md +31 -38
- package/plugins/lisa-copilot/scripts/design-source-gate.mjs +35 -13
- package/plugins/lisa-copilot/skills/lisa-design-intake/SKILL.md +1 -1
- package/plugins/lisa-copilot/skills/lisa-implement/SKILL.md +3 -1
- package/plugins/lisa-copilot/skills/lisa-quality-review/SKILL.md +2 -2
- package/plugins/lisa-copilot/skills/lisa-review-local/SKILL.md +9 -3
- package/plugins/lisa-copilot/skills/lisa-tdd-implementation/SKILL.md +2 -1
- package/plugins/lisa-copilot/skills/lisa-tracker-source-artifacts/SKILL.md +3 -1
- package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cursor/rules/design-source-of-truth-reference.mdc +32 -10
- package/plugins/lisa-cursor/rules/tool-access-gate-reference.mdc +31 -38
- package/plugins/lisa-cursor/rules/tool-access-gate.mdc +13 -11
- package/plugins/lisa-cursor/scripts/design-source-gate.mjs +35 -13
- package/plugins/lisa-cursor/skills/lisa-design-intake/SKILL.md +1 -1
- package/plugins/lisa-cursor/skills/lisa-implement/SKILL.md +3 -1
- package/plugins/lisa-cursor/skills/lisa-quality-review/SKILL.md +2 -2
- package/plugins/lisa-cursor/skills/lisa-review-local/SKILL.md +9 -3
- package/plugins/lisa-cursor/skills/lisa-tdd-implementation/SKILL.md +2 -1
- package/plugins/lisa-cursor/skills/lisa-tracker-source-artifacts/SKILL.md +3 -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/plugins/src/base/rules/eager/tool-access-gate.md +13 -11
- package/plugins/src/base/rules/reference/design-source-of-truth.md +32 -10
- package/plugins/src/base/rules/reference/tool-access-gate.md +31 -38
- package/plugins/src/base/scripts/design-source-gate.mjs +35 -13
- package/plugins/src/base/skills/lisa-design-intake/SKILL.md +1 -1
- package/plugins/src/base/skills/lisa-implement/SKILL.md +3 -1
- package/plugins/src/base/skills/lisa-quality-review/SKILL.md +2 -2
- package/plugins/src/base/skills/lisa-review-local/SKILL.md +9 -3
- package/plugins/src/base/skills/lisa-tdd-implementation/SKILL.md +2 -1
- package/plugins/src/base/skills/lisa-tracker-source-artifacts/SKILL.md +3 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lisa-openclaw",
|
|
3
|
-
"version": "4.64.
|
|
3
|
+
"version": "4.64.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": "4.64.
|
|
3
|
+
"version": "4.64.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"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lisa-openclaw",
|
|
3
|
-
"version": "4.64.
|
|
3
|
+
"version": "4.64.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": "4.64.
|
|
3
|
+
"version": "4.64.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": "4.64.
|
|
3
|
+
"version": "4.64.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,21 +1,23 @@
|
|
|
1
1
|
# Tool Access Gate (load-bearing)
|
|
2
2
|
|
|
3
|
+
- If you can't reach something you need, such as a repository, a secret, an API, or a connector, say exactly what's missing in your first message and stop. Don't substitute, mock, or guess.
|
|
4
|
+
|
|
5
|
+
If the missing access is discovered after work begins, say exactly what's
|
|
6
|
+
missing in your next message and stop.
|
|
7
|
+
|
|
3
8
|
Only take on work you can finish. Before implementation starts — and again the
|
|
4
9
|
moment a new requirement surfaces mid-flow — enumerate every external tool the
|
|
5
10
|
work item needs (implementation, proof command, remote verification: AWS CLI,
|
|
6
11
|
Figma, Jam, Sentry, SonarCloud, PostHog, device/browser harnesses, databases,
|
|
7
12
|
deploy targets, …) and **prove access with a cheap read-only probe**, routing
|
|
8
|
-
through the matching `*-access` skill where one exists.
|
|
9
|
-
access
|
|
10
|
-
|
|
13
|
+
through the matching `*-access` skill where one exists. Resolve credentials through the documented access path before probing;
|
|
14
|
+
presence on PATH is not access. If that path or the probe cannot provide the
|
|
15
|
+
required access, report the gap and stop.
|
|
11
16
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
`blocked` verification verdict. Substituting weaker verification, mocking the
|
|
17
|
-
inaccessible system, guessing at tool contents, or narrowing scope to dodge the
|
|
18
|
-
gap are all forbidden.
|
|
17
|
+
The message must name the missing resource, the operation it blocks, and any
|
|
18
|
+
known access requirement, without exposing secret values. Substituting weaker
|
|
19
|
+
verification, mocking the inaccessible system, guessing at its contents, or
|
|
20
|
+
narrowing scope to dodge the gap are all forbidden.
|
|
19
21
|
|
|
20
|
-
Full contract (probe table,
|
|
22
|
+
Full contract (probe table, blocker report, resume path):
|
|
21
23
|
[reference/tool-access-gate.md](../reference/tool-access-gate.md).
|
|
@@ -1,18 +1,41 @@
|
|
|
1
1
|
# Design Source of Truth
|
|
2
2
|
|
|
3
3
|
> Demoted from the always-on eager tier by CodySwannGT/lisa#3992. The
|
|
4
|
-
> section below is the former eager head,
|
|
4
|
+
> section below is the former eager head, maintained with the full
|
|
5
5
|
> contract follows it. Reachable on demand via [the rule index](../eager/00-rule-index.md).
|
|
6
6
|
|
|
7
7
|
## Design Source of Truth (load-bearing)
|
|
8
8
|
|
|
9
|
-
**Figma is the design source of truth, and every UI surface a change touches declares where its design came from.** A changed UI surface that neither cites a Figma node nor carries the designated marker is a contract violation — and so is a surface whose declaration the gate cannot resolve.
|
|
9
|
+
**When enabled, Figma is the design source of truth, and every UI surface a change touches declares where its design came from.** A changed UI surface that neither cites a Figma node nor carries the designated marker is a contract violation — and so is a surface whose declaration the gate cannot resolve.
|
|
10
10
|
|
|
11
11
|
**One vendor-neutral contract, cited by** `lisa-implement`, `lisa-tdd-implementation`, `lisa-review-local`, `lisa-quality-review`, and `lisa-tracker-source-artifacts` (the `leaf-only-lifecycle` / `repo-scope-split` precedent: one shared slug, never divergent per-skill prose).
|
|
12
12
|
|
|
13
|
+
## Explicit project opt-out
|
|
14
|
+
|
|
15
|
+
A project with **no design source at all** may set this in `.lisa.config.json`:
|
|
16
|
+
|
|
17
|
+
```json
|
|
18
|
+
{ "designSource": { "enabled": false } }
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
Only `designSource.enabled` set to boolean `false` opts out. Absent, true, and
|
|
22
|
+
invalid values retain the default enforcement. The explicit configuration is
|
|
23
|
+
the auditable record; it replaces per-file exception markers for this project.
|
|
24
|
+
The gate exits 0 with `SKIPPED: designSource.enabled=false` before resolving the
|
|
25
|
+
diff. JSON output reports `verdict: "SKIPPED"`, the config key in `reasons`, and
|
|
26
|
+
zero judged surfaces. A skip does not claim that surfaces passed inspection.
|
|
27
|
+
|
|
28
|
+
When opted out, the five consuming skills omit the design-source step from
|
|
29
|
+
plans, tickets, teammate instructions, and review; they do not ask for markers,
|
|
30
|
+
Figma nodes, or Figma access for this obligation. All declaration, sync-back,
|
|
31
|
+
and fail-closed requirements below apply only when enabled. Host design-system
|
|
32
|
+
rules, `design-value-binding`, and `bdd-e2e-coverage` remain independent and
|
|
33
|
+
unchanged. A project that has Figma must still not use `exclude` to hide its UI
|
|
34
|
+
tree from this contract.
|
|
35
|
+
|
|
13
36
|
## Membership
|
|
14
37
|
|
|
15
|
-
Membership is **surface, not repo name or file extension**: a file is in scope the moment a change makes it render something user-observable — a screen, component, layout, style token, visual state, or markup a user reads. Barrels, pure-logic modules, tests, stories, generated output, and vendored code are out. Projects narrow or widen the default detection through `designSource.include` / `designSource.exclude` in `.lisa.config.json`;
|
|
38
|
+
Membership is **surface, not repo name or file extension**: a file is in scope the moment a change makes it render something user-observable — a screen, component, layout, style token, visual state, or markup a user reads. Barrels, pure-logic modules, tests, stories, generated output, and vendored code are out. Projects narrow or widen the default detection through `designSource.include` / `designSource.exclude` in `.lisa.config.json`; those filters never turn the obligation off. Only the explicit project opt-out above does.
|
|
16
39
|
|
|
17
40
|
## The two declarations
|
|
18
41
|
|
|
@@ -39,7 +62,7 @@ Projects that carry their own design-system rules (`figma-design-system`, `desig
|
|
|
39
62
|
|
|
40
63
|
## Bootstrap and degradation
|
|
41
64
|
|
|
42
|
-
Adoption never demands a retroactive backfill: the gate judges **only the surfaces this change touched**. Pre-existing unannotated UI is burndown, recorded and worked down, not this work item's blocker.
|
|
65
|
+
Adoption never demands a retroactive backfill: the gate judges **only the surfaces this change touched**. Pre-existing unannotated UI is burndown, recorded and worked down, not this work item's blocker. A project with no design source may use the explicit project opt-out above; otherwise every changed surface still needs a declaration. Behavior obligations for the same surfaces are unchanged and still governed by `bdd-e2e-coverage`.
|
|
43
66
|
|
|
44
67
|
---
|
|
45
68
|
|
|
@@ -188,7 +211,7 @@ Two consequences worth stating plainly:
|
|
|
188
211
|
node design-source-gate.mjs --base=origin/main [--head=HEAD] [--figma-access] [--json]
|
|
189
212
|
```
|
|
190
213
|
|
|
191
|
-
Exit `0` = PASS, `1` = FAIL, `2` = usage error.
|
|
214
|
+
Exit `0` = PASS or explicit SKIPPED, `1` = FAIL, `2` = usage error. When enabled, it classifies every changed file into one status:
|
|
192
215
|
|
|
193
216
|
| Status | Verdict | Meaning |
|
|
194
217
|
|---|---|---|
|
|
@@ -231,8 +254,7 @@ so a repository with hundreds of unannotated legacy components can adopt the con
|
|
|
231
254
|
and be green on Tuesday. Pre-existing unannotated UI is **burndown**: recorded, worked down
|
|
232
255
|
opportunistically as files are touched, never treated as the current work item's blocker.
|
|
233
256
|
|
|
234
|
-
A project with no
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
BDD scenario to improve coverage: mark it, do not drop it.
|
|
257
|
+
A project with no design source may opt out explicitly using `designSource.enabled: false`.
|
|
258
|
+
Without that explicit opt-out, every changed surface still declares its source. In an enabled
|
|
259
|
+
project, deleting or excluding a surface to make the gate green is a violation of the same kind as
|
|
260
|
+
deleting a BDD scenario to improve coverage: mark it, do not drop it.
|
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
# Tool Access Gate
|
|
2
2
|
|
|
3
|
+
- If you can't reach something you need, such as a repository, a secret, an API, or a connector, say exactly what's missing in your first message and stop. Don't substitute, mock, or guess.
|
|
4
|
+
|
|
5
|
+
If the missing access is discovered after work begins, say exactly what's
|
|
6
|
+
missing in your next message and stop.
|
|
7
|
+
|
|
3
8
|
A flow may only take on work it can actually finish. If completing a work item —
|
|
4
9
|
including its empirical verification — requires an external tool or system the
|
|
5
|
-
agent cannot access, the flow must **
|
|
6
|
-
|
|
10
|
+
agent cannot access, the flow must **tell the user exactly what access is missing and stop**, never
|
|
11
|
+
work around it. This is the flow-side arm of the factory
|
|
7
12
|
contract: intake validates that the factory has "the tooling *and provable
|
|
8
13
|
access to that tooling*"; this gate re-proves that promise at execution time and
|
|
9
14
|
enforces it for tools discovered mid-flow.
|
|
@@ -31,7 +36,8 @@ enforces it for tools discovered mid-flow.
|
|
|
31
36
|
environment.
|
|
32
37
|
2. **Continuously** — the moment a previously unknown tool requirement surfaces
|
|
33
38
|
mid-flow (e.g. verification turns out to need CloudWatch log capture), probe
|
|
34
|
-
it right then
|
|
39
|
+
it right then. If access is unavailable, report it and stop. Otherwise, record
|
|
40
|
+
the new tool + probe result in the same places the
|
|
35
41
|
preflight wrote to (the plan/tracker artifact and the affected tasks'
|
|
36
42
|
`metadata.required_access`) before continuing. Discovery timing changes
|
|
37
43
|
nothing about the protocol.
|
|
@@ -62,44 +68,31 @@ Example probes:
|
|
|
62
68
|
| Deploy target | reach the target environment with the credentials the verify step will use |
|
|
63
69
|
| Device/browser harness | the harness's own doctor/smoke entry (e.g. `playwright --version` plus a trivial headless launch) |
|
|
64
70
|
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
proceed.
|
|
71
|
+
Resolve credentials through the documented sources before probing: project
|
|
72
|
+
e2e config/fixtures, `.lisa.config.local.json` and environment variables, then
|
|
73
|
+
documented work-item credentials (e.g. `Sign-in Required`). If the documented
|
|
74
|
+
access path or probe cannot provide the required access, report the gap and
|
|
75
|
+
stop. Do not continue exploring substitute sources after confirming the gap.
|
|
71
76
|
|
|
72
|
-
Record
|
|
77
|
+
Record successful probes in the flow's plan/tracker artifact
|
|
73
78
|
(and task `metadata.required_access` where the flow's task contract carries
|
|
74
79
|
it), so the verifier can confirm the gate ran.
|
|
75
80
|
|
|
76
81
|
## On failure: break out, never work around
|
|
77
82
|
|
|
78
|
-
When
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
3. **Transition the work item to the configured blocked state** and apply the
|
|
92
|
-
configured `human_needed` / needs-human marker — missing access is a
|
|
93
|
-
**human-only blocker** (someone must provision credentials or grant access);
|
|
94
|
-
do not fabricate a build-ready ticket for it.
|
|
95
|
-
4. **Release the verification gate honestly**: write the verdict with
|
|
96
|
-
`status: "blocked"`, and mark each acceptance criterion whose proof depends
|
|
97
|
-
on the missing tool as `status: "blocked"` with the missing-access
|
|
98
|
-
diagnosis as its `evidence`; unaffected criteria keep their real
|
|
99
|
-
`pass`/`fail` result.
|
|
100
|
-
5. **Resume only when the probe passes.** When access is granted, re-run the
|
|
101
|
-
recorded probe before continuing; `repair-intake` re-validates blocked items
|
|
102
|
-
whose blockers cleared.
|
|
83
|
+
When required access is unavailable, tell the user and stop. Use the first
|
|
84
|
+
message if the gap is already known, or the next message if it is discovered
|
|
85
|
+
mid-task. The message must state:
|
|
86
|
+
|
|
87
|
+
- the exact resource that cannot be reached and the operation it blocks;
|
|
88
|
+
- the observed failure and, if known, the credential name, role, permission, or
|
|
89
|
+
invitation needed — never secret values, and never a guessed diagnosis;
|
|
90
|
+
- the read-only probe that must pass before work can resume.
|
|
91
|
+
|
|
92
|
+
Do not substitute, mock, guess, or continue other tasks as a workaround.
|
|
93
|
+
Reporting does not depend on access to a tracker, and it does not require
|
|
94
|
+
creating a new ticket. Resume after the required access is available and its
|
|
95
|
+
probe passes.
|
|
103
96
|
|
|
104
97
|
### Forbidden workarounds
|
|
105
98
|
|
|
@@ -116,6 +109,6 @@ None of the following ever substitutes for missing access:
|
|
|
116
109
|
ticket points at).
|
|
117
110
|
- Silently narrowing scope so the inaccessible part is "out of scope".
|
|
118
111
|
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
112
|
+
Keep results already obtained, but stop further work until the required access
|
|
113
|
+
is available. An inaccessible tracker does not prevent reporting the blocker
|
|
114
|
+
to the user. Do not claim blocked acceptance criteria have passed.
|