@codyswann/lisa 2.115.2 → 2.115.4

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 CHANGED
@@ -82,7 +82,7 @@
82
82
  "lodash": ">=4.18.1"
83
83
  },
84
84
  "name": "@codyswann/lisa",
85
- "version": "2.115.2",
85
+ "version": "2.115.4",
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": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa",
3
- "version": "2.115.2",
3
+ "version": "2.115.4",
4
4
  "description": "Universal governance — agents, skills, commands, hooks, and rules for all projects",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa",
3
- "version": "2.115.2",
3
+ "version": "2.115.4",
4
4
  "description": "Universal governance: agents, skills, commands, hooks, and rules for all projects.",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -20,7 +20,8 @@ cannot verify yourself is noise — demote it honestly.
20
20
  - **`prd_ready=true|false`** (default **false**) — the PRD-lifecycle state for the PRDs this run
21
21
  creates. `false` → created in the source's **draft** state for human review. `true` → created
22
22
  **prd-ready** so the PRD side of `lisa:intake` auto-claims them. Passed straight through to
23
- `lisa:research` (which maps it to `lisa:prd-source-write`'s `initial_role`).
23
+ `lisa:research` (which maps it to `lisa:prd-source-write`'s `initial_role`) only after the PRD queue
24
+ pressure gate allows auto-ready writes.
24
25
  - **`max_prds=<n>|all`** (default **1**) — how many build-ready ideas become PRDs this run. Default
25
26
  creates **one** PRD (the single top-ranked idea), because `lisa:research` is a heavy full flow.
26
27
  `max_prds=3` creates the top three; `max_prds=all` creates one per build-ready idea. Discovery
@@ -159,9 +160,15 @@ the same PRD reader contract used by `/lisa:queue-status` and evaluate it with
159
160
  the same way `lisa:intake` resolves the PRD side, and pass the matching queue argument in the
160
161
  blocked outcome (for example, `github intake_mode=prd`).
161
162
 
163
+ Queue pressure is any unresolved PRD lifecycle work that would make another auto-ready PRD compete
164
+ with existing intake work. Treat at least these roles as pressure when the helper reports them:
165
+ `prd-ready`, `prd-in-review`, `prd-blocked`, unresolved `prd-ticketed`, and source-reader failures or
166
+ misconfiguration snapshots. `prd-shipped` / `prd-verified` terminal history is not pressure unless the
167
+ reader helper explicitly reports it as unresolved.
168
+
162
169
  If the helper returns `allowed: false`, stop before any `lisa:research`, `lisa:prd-source-write`, or
163
- vendor PRD writer invocation. Emit **PRDs Created** as a blocked outcome, not as an empty success.
164
- The blocked outcome must include:
170
+ vendor PRD writer invocation. Emit **PRDs Created** as a blocked outcome, not as an empty success or a
171
+ silent idle run. The blocked outcome must include:
165
172
 
166
173
  - `source` and `tracker` from `.lisa.config.json`;
167
174
  - the decisive PRD lifecycle `role`;
@@ -170,6 +177,21 @@ The blocked outcome must include:
170
177
  `/lisa:intake <PRD queue>`;
171
178
  - a clear statement that no research or PRD source write was invoked.
172
179
 
180
+ Use this output shape so recurring automations can surface a useful next step without digging through
181
+ debug logs:
182
+
183
+ ```text
184
+ ## PRDs Created
185
+
186
+ Blocked: PRD queue pressure prevents auto-ready creation.
187
+ - source: <source>
188
+ - tracker: <tracker>
189
+ - role: <decisive role>
190
+ - item: <ref or "unavailable"> <url when available>
191
+ - next action: <helper nextStep or /lisa:intake <PRD queue>>
192
+ - write invoked: no
193
+ ```
194
+
173
195
  If the helper returns `allowed: true`, continue to Step 6 normally and keep the existing draft/ready
174
196
  creation behavior unchanged.
175
197
 
@@ -30,7 +30,10 @@ create them; invoke the runtime's automation tool with the spec below.
30
30
 
31
31
  - `auto-start-prds` (default **false**) — passed as `prd_ready` to the **exploratory-prds**
32
32
  automation. `true` → ideated PRDs are created `prd-ready` (auto-picked-up by PRD intake); `false` →
33
- created as drafts for human review.
33
+ created as drafts for human review. When `true`, `/lisa:project-ideation` still checks the configured
34
+ PRD queue before writing: existing `prd-ready`, `prd-in-review`, `prd-blocked`, unresolved
35
+ `prd-ticketed`, or unresolved source-reader pressure can intentionally turn the automation cycle into
36
+ a blocked/idle outcome instead of creating another ready PRD.
34
37
  - `auto-start-tickets` (default **false**) — passed as `ready` to the **exploratory-bugs**
35
38
  automation. `true` → filed bug/usability tickets are created build-ready (auto-picked-up by ticket
36
39
  intake); `false` → created in the backlog for human triage.
@@ -59,6 +62,12 @@ the rebase, leave queue state unchanged, and report the blocker instead of runni
59
62
  For a Codex `rrule`: every 60 min → `FREQ=HOURLY;INTERVAL=1`; every 10 min →
60
63
  `FREQ=MINUTELY;INTERVAL=10`; once a day → `FREQ=DAILY;INTERVAL=1`.
61
64
 
65
+ **Exploratory PRD pressure gate.** `auto-start-prds=true` means "create PRDs in the ready PRD
66
+ lifecycle when the PRD queue has capacity," not "always create a new ready PRD." The
67
+ `exploratory-prds` automation uses the same PRD source queue and pressure roles reported by
68
+ `/lisa:queue-status`; if pressure exists, the cycle should report the blocking role/ref and the
69
+ smallest next action, usually `/lisa:intake <PRD queue>`, without invoking research or writing a PRD.
70
+
62
71
  **Queue resolution.** Resolve the intake/repair queue from `.lisa.config.json` — `source` for the
63
72
  PRD queue, `tracker` for the build queue (for the common GitHub case these are `github
64
73
  intake_mode=prd` and `github intake_mode=build`, matching how the existing Lisa intake automations
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-cdk",
3
- "version": "2.115.2",
3
+ "version": "2.115.4",
4
4
  "description": "AWS CDK-specific plugin",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-cdk",
3
- "version": "2.115.2",
3
+ "version": "2.115.4",
4
4
  "description": "AWS CDK-specific Lisa plugin.",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-expo",
3
- "version": "2.115.2",
3
+ "version": "2.115.4",
4
4
  "description": "Expo/React Native-specific skills, agents, rules, and MCP servers",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-expo",
3
- "version": "2.115.2",
3
+ "version": "2.115.4",
4
4
  "description": "Expo and React Native-specific skills, agents, rules, and MCP servers.",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-harper-fabric",
3
- "version": "2.115.2",
3
+ "version": "2.115.4",
4
4
  "description": "Harper/Fabric-specific rules for TypeScript component apps",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-harper-fabric",
3
- "version": "2.115.2",
3
+ "version": "2.115.4",
4
4
  "description": "Harper/Fabric-specific Lisa rules for TypeScript component apps.",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-nestjs",
3
- "version": "2.115.2",
3
+ "version": "2.115.4",
4
4
  "description": "NestJS-specific skills (GraphQL, TypeORM) and hooks (migration write-protection)",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-nestjs",
3
- "version": "2.115.2",
3
+ "version": "2.115.4",
4
4
  "description": "NestJS-specific skills and migration write-protection hooks.",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-openclaw",
3
- "version": "2.115.2",
3
+ "version": "2.115.4",
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.115.2",
3
+ "version": "2.115.4",
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-rails",
3
- "version": "2.115.2",
3
+ "version": "2.115.4",
4
4
  "description": "Ruby on Rails-specific hooks — RuboCop linting/formatting and ast-grep scanning on edit",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-rails",
3
- "version": "2.115.2",
3
+ "version": "2.115.4",
4
4
  "description": "Ruby on Rails-specific skills and hooks for RuboCop and ast-grep scanning on edit.",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-typescript",
3
- "version": "2.115.2",
3
+ "version": "2.115.4",
4
4
  "description": "TypeScript-specific hooks — Prettier formatting, ESLint linting, ast-grep scanning, and error-suppression blocking on edit",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-typescript",
3
- "version": "2.115.2",
3
+ "version": "2.115.4",
4
4
  "description": "TypeScript-specific hooks for formatting, linting, and ast-grep scanning on edit.",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-wiki",
3
- "version": "2.115.2",
3
+ "version": "2.115.4",
4
4
  "description": "LLM Wiki — a distributable, git-native markdown knowledge base for Claude Code and Codex",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-wiki",
3
- "version": "2.115.2",
3
+ "version": "2.115.4",
4
4
  "description": "Distributable LLM Wiki kernel — ingest, query, lint, and maintain a git-native markdown knowledge base across Claude and Codex.",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -20,7 +20,8 @@ cannot verify yourself is noise — demote it honestly.
20
20
  - **`prd_ready=true|false`** (default **false**) — the PRD-lifecycle state for the PRDs this run
21
21
  creates. `false` → created in the source's **draft** state for human review. `true` → created
22
22
  **prd-ready** so the PRD side of `lisa:intake` auto-claims them. Passed straight through to
23
- `lisa:research` (which maps it to `lisa:prd-source-write`'s `initial_role`).
23
+ `lisa:research` (which maps it to `lisa:prd-source-write`'s `initial_role`) only after the PRD queue
24
+ pressure gate allows auto-ready writes.
24
25
  - **`max_prds=<n>|all`** (default **1**) — how many build-ready ideas become PRDs this run. Default
25
26
  creates **one** PRD (the single top-ranked idea), because `lisa:research` is a heavy full flow.
26
27
  `max_prds=3` creates the top three; `max_prds=all` creates one per build-ready idea. Discovery
@@ -159,9 +160,15 @@ the same PRD reader contract used by `/lisa:queue-status` and evaluate it with
159
160
  the same way `lisa:intake` resolves the PRD side, and pass the matching queue argument in the
160
161
  blocked outcome (for example, `github intake_mode=prd`).
161
162
 
163
+ Queue pressure is any unresolved PRD lifecycle work that would make another auto-ready PRD compete
164
+ with existing intake work. Treat at least these roles as pressure when the helper reports them:
165
+ `prd-ready`, `prd-in-review`, `prd-blocked`, unresolved `prd-ticketed`, and source-reader failures or
166
+ misconfiguration snapshots. `prd-shipped` / `prd-verified` terminal history is not pressure unless the
167
+ reader helper explicitly reports it as unresolved.
168
+
162
169
  If the helper returns `allowed: false`, stop before any `lisa:research`, `lisa:prd-source-write`, or
163
- vendor PRD writer invocation. Emit **PRDs Created** as a blocked outcome, not as an empty success.
164
- The blocked outcome must include:
170
+ vendor PRD writer invocation. Emit **PRDs Created** as a blocked outcome, not as an empty success or a
171
+ silent idle run. The blocked outcome must include:
165
172
 
166
173
  - `source` and `tracker` from `.lisa.config.json`;
167
174
  - the decisive PRD lifecycle `role`;
@@ -170,6 +177,21 @@ The blocked outcome must include:
170
177
  `/lisa:intake <PRD queue>`;
171
178
  - a clear statement that no research or PRD source write was invoked.
172
179
 
180
+ Use this output shape so recurring automations can surface a useful next step without digging through
181
+ debug logs:
182
+
183
+ ```text
184
+ ## PRDs Created
185
+
186
+ Blocked: PRD queue pressure prevents auto-ready creation.
187
+ - source: <source>
188
+ - tracker: <tracker>
189
+ - role: <decisive role>
190
+ - item: <ref or "unavailable"> <url when available>
191
+ - next action: <helper nextStep or /lisa:intake <PRD queue>>
192
+ - write invoked: no
193
+ ```
194
+
173
195
  If the helper returns `allowed: true`, continue to Step 6 normally and keep the existing draft/ready
174
196
  creation behavior unchanged.
175
197
 
@@ -30,7 +30,10 @@ create them; invoke the runtime's automation tool with the spec below.
30
30
 
31
31
  - `auto-start-prds` (default **false**) — passed as `prd_ready` to the **exploratory-prds**
32
32
  automation. `true` → ideated PRDs are created `prd-ready` (auto-picked-up by PRD intake); `false` →
33
- created as drafts for human review.
33
+ created as drafts for human review. When `true`, `/lisa:project-ideation` still checks the configured
34
+ PRD queue before writing: existing `prd-ready`, `prd-in-review`, `prd-blocked`, unresolved
35
+ `prd-ticketed`, or unresolved source-reader pressure can intentionally turn the automation cycle into
36
+ a blocked/idle outcome instead of creating another ready PRD.
34
37
  - `auto-start-tickets` (default **false**) — passed as `ready` to the **exploratory-bugs**
35
38
  automation. `true` → filed bug/usability tickets are created build-ready (auto-picked-up by ticket
36
39
  intake); `false` → created in the backlog for human triage.
@@ -59,6 +62,12 @@ the rebase, leave queue state unchanged, and report the blocker instead of runni
59
62
  For a Codex `rrule`: every 60 min → `FREQ=HOURLY;INTERVAL=1`; every 10 min →
60
63
  `FREQ=MINUTELY;INTERVAL=10`; once a day → `FREQ=DAILY;INTERVAL=1`.
61
64
 
65
+ **Exploratory PRD pressure gate.** `auto-start-prds=true` means "create PRDs in the ready PRD
66
+ lifecycle when the PRD queue has capacity," not "always create a new ready PRD." The
67
+ `exploratory-prds` automation uses the same PRD source queue and pressure roles reported by
68
+ `/lisa:queue-status`; if pressure exists, the cycle should report the blocking role/ref and the
69
+ smallest next action, usually `/lisa:intake <PRD queue>`, without invoking research or writing a PRD.
70
+
62
71
  **Queue resolution.** Resolve the intake/repair queue from `.lisa.config.json` — `source` for the
63
72
  PRD queue, `tracker` for the build queue (for the common GitHub case these are `github
64
73
  intake_mode=prd` and `github intake_mode=build`, matching how the existing Lisa intake automations