@codyswann/lisa 2.110.0 → 2.110.1

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.
Files changed (27) hide show
  1. package/package.json +1 -1
  2. package/plugins/lisa/.claude-plugin/plugin.json +1 -1
  3. package/plugins/lisa/.codex-plugin/plugin.json +1 -1
  4. package/plugins/lisa/skills/github-write-prd/SKILL.md +9 -5
  5. package/plugins/lisa/skills/prd-source-write/SKILL.md +17 -0
  6. package/plugins/lisa/skills/project-ideation/SKILL.md +7 -1
  7. package/plugins/lisa/skills/research/SKILL.md +11 -2
  8. package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
  9. package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
  10. package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
  11. package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
  12. package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
  13. package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
  14. package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
  15. package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
  16. package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
  17. package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
  18. package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
  19. package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
  20. package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
  21. package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
  22. package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
  23. package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
  24. package/plugins/src/base/skills/github-write-prd/SKILL.md +9 -5
  25. package/plugins/src/base/skills/prd-source-write/SKILL.md +17 -0
  26. package/plugins/src/base/skills/project-ideation/SKILL.md +7 -1
  27. package/plugins/src/base/skills/research/SKILL.md +11 -2
package/package.json CHANGED
@@ -82,7 +82,7 @@
82
82
  "lodash": ">=4.18.1"
83
83
  },
84
84
  "name": "@codyswann/lisa",
85
- "version": "2.110.0",
85
+ "version": "2.110.1",
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.110.0",
3
+ "version": "2.110.1",
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.110.0",
3
+ "version": "2.110.1",
4
4
  "description": "Universal governance: agents, skills, commands, hooks, and rules for all projects.",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -10,7 +10,8 @@ Create (or update) a PRD issue in the configured source repo. Invoked by `lisa:p
10
10
  when `source = github`; do not call directly from a vendor-neutral caller.
11
11
 
12
12
  `$ARGUMENTS` carries the `lisa:prd-source-write` spec: `title`, `body` (full PRD markdown),
13
- `initial_role` (`draft` | `ready`, default `draft`), `dedupe_key`, `marker`, optional `source_ref`.
13
+ `initial_role` (`draft` | `ready`, default `draft`), `dedupe_key`, `marker`, optional `source_ref`,
14
+ and optional `ideation_ledger_payload` from `lisa:project-ideation` via `lisa:research`.
14
15
 
15
16
  ## Phase 1 — Resolve repo and PRD lifecycle labels
16
17
 
@@ -64,10 +65,13 @@ section, preserve it verbatim unless the caller intentionally supplied an update
64
65
  use the shared `usage-accounting` serializer/merge path rather than hand-editing ledger rows.
65
66
 
66
67
  **Exploratory ideation run ledger (both paths).** When the write was initiated by
67
- `lisa:project-ideation` or carries a project-ideation marker, persist a managed `## Exploratory
68
- Ideation Run Ledger` section in the PRD body. Prefer the managed section over a comment so the PRD
69
- itself remains the operator's source of truth; use a managed comment only if the body cannot be
70
- updated. Keep one managed section by replacing the content between stable markers:
68
+ `lisa:project-ideation`, carries a project-ideation marker, or includes
69
+ `ideation_ledger_payload`, persist a managed `## Exploratory Ideation Run Ledger` section in the PRD
70
+ body. Prefer the managed section over a comment so the PRD itself remains the operator's source of
71
+ truth; use a managed comment only if the body cannot be updated. Populate the fields from
72
+ `ideation_ledger_payload` when present, falling back to `marker`, `initial_role`, repo config, and
73
+ runtime metadata only for missing fields. Keep one managed section by replacing the content between
74
+ stable markers:
71
75
 
72
76
  ```markdown
73
77
  ## Exploratory Ideation Run Ledger
@@ -27,6 +27,17 @@ dedupe_key: "<stable-key>" # e.g. project-ideation's idea key
27
27
  marker: "[lisa-project-ideation] idea=<stable-key>" # embedded in the PRD body for dedupe
28
28
  origin: { tool: project-ideation | research | manual }
29
29
  source_ref: "<optional existing PRD ref to force an update>"
30
+ ideation_ledger_payload: # optional; forwarded unchanged to the vendor writer
31
+ selected_marker: "<same value as marker>"
32
+ automation_id: "<Codex/Claude automation id or unavailable>"
33
+ automation_memory_path: "<path or unavailable>"
34
+ repo: "<org>/<repo or detected repo identity>"
35
+ prd_ready: true|false
36
+ persona_names: ["<derived persona name>"]
37
+ persona_evidence_refs: ["<file/doc/table/release ref>"]
38
+ selected_idea: "<selected idea title/key>"
39
+ rejected_overlap_candidates: ["<issue refs/titles considered and rejected>"]
40
+ expected_empirical_verification_artifact: "<artifact ref or unavailable>"
30
41
  ```
31
42
 
32
43
  `initial_role` semantics are uniform across vendors (the role STRINGS resolve per vendor from
@@ -72,6 +83,10 @@ prior PRD-source-write behavior to preserve, so omitted means `draft`.
72
83
  the applied role (`draft`/`ready`), the dedupe marker, and whether it was created or reused.
73
84
  Downstream callers (research, project-ideation) parse this — do not paraphrase.
74
85
 
86
+ When `ideation_ledger_payload` is present, this shim still does not render or interpret it. Forward
87
+ the object verbatim to the selected vendor writer so source-specific rendering remains behind the
88
+ configured writer and the dispatch layer never bypasses source selection.
89
+
75
90
  ## Rules
76
91
 
77
92
  - Never bypass dispatch — a vendor-neutral caller calling a `*-write-prd` skill directly defeats the
@@ -80,5 +95,7 @@ prior PRD-source-write behavior to preserve, so omitted means `draft`.
80
95
  and fallback behavior belongs in the vendor writers and follows the `usage-accounting` contract.
81
96
  - Never accept a source outside `{notion, confluence, github, linear}`. `jira` and `file` fail loudly.
82
97
  - Never mutate the spec between layers. The vendor writers define their own create/dedupe contract.
98
+ - Never drop, rename, or vendor-render `ideation_ledger_payload`; it is a pass-through payload for
99
+ the configured writer.
83
100
  - Never invent a PRD lifecycle role string — resolve every role from `config-resolution` per vendor.
84
101
  - Idempotency is the vendor writer's job (marker search before create); this shim only routes.
@@ -155,7 +155,13 @@ For each idea in the creation set, invoke `/lisa:research` with:
155
155
  grounding and the empirical verification plan),
156
156
  - `prd_ready` (this run's flag — `lisa:research` maps it to draft vs prd-ready),
157
157
  - a stable **dedupe marker** (see below) so a re-run references the existing PRD instead of creating
158
- a duplicate.
158
+ a duplicate,
159
+ - a structured `ideation_ledger_payload` handoff containing the selected marker, automation id and
160
+ memory path when available, persona names, persona evidence references, rejected overlap
161
+ candidates, repo identity, `prd_ready`, selected idea title/key, and the expected empirical
162
+ verification artifact. This payload is the only ideation-run metadata channel between
163
+ `project-ideation`, `research`, `prd-source-write`, and the vendor writer; keep GitHub-specific
164
+ rendering out of this skill.
159
165
 
160
166
  `lisa:research` synthesizes the PRD and creates it in the configured source via
161
167
  `lisa:prd-source-write`. `project-ideation` never writes to the source directly — it delegates, so
@@ -16,6 +16,12 @@ Produce a PRD for the problem in `$ARGUMENTS`, then create it in the configured
16
16
  - `dedupe_key` / `marker` (optional) — a stable dedupe marker (e.g. supplied by
17
17
  `lisa:project-ideation`) embedded in the created PRD so re-runs reference the existing PRD rather
18
18
  than creating a duplicate.
19
+ - `ideation_ledger_payload` (optional, required when invoked by `lisa:project-ideation`) — a
20
+ structured metadata object to forward unchanged to `lisa:prd-source-write`. It carries the
21
+ selected marker, automation id/path when available, persona names, persona evidence references,
22
+ rejected overlap candidates, repo identity, `prd_ready`, selected idea title/key, and expected
23
+ empirical verification artifact. `research` may use these fields to inform the PRD body, but must
24
+ not discard, rename, or vendor-render them.
19
25
 
20
26
  ## Orchestration: agent team
21
27
 
@@ -55,5 +61,8 @@ source — there is no loose document artifact.** Before handing the synthesized
55
61
  `lisa:usage-accounting` so the PRD body carries the canonical `## Lisa Usage` ledger from creation
56
62
  time onward. If the runtime does not expose trustworthy usage, the direct entry must still be
57
63
  written with `source: unavailable` and nullable token/cost fields rather than silently omitting the
58
- Research row. A `source` must be configured; if it is not, stop and report it rather than emitting
59
- a document. The Plan flow consumes the created PRD next.
64
+ Research row. If the call includes `ideation_ledger_payload`, pass that object through in the
65
+ `lisa:prd-source-write` spec unchanged alongside `marker`, `dedupe_key`, and `initial_role`; this is
66
+ the vendor-neutral handoff that lets the configured writer render an auditable run ledger without
67
+ `research` bypassing source selection. A `source` must be configured; if it is not, stop and report
68
+ it rather than emitting a document. The Plan flow consumes the created PRD next.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-cdk",
3
- "version": "2.110.0",
3
+ "version": "2.110.1",
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.110.0",
3
+ "version": "2.110.1",
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.110.0",
3
+ "version": "2.110.1",
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.110.0",
3
+ "version": "2.110.1",
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.110.0",
3
+ "version": "2.110.1",
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.110.0",
3
+ "version": "2.110.1",
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.110.0",
3
+ "version": "2.110.1",
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.110.0",
3
+ "version": "2.110.1",
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.110.0",
3
+ "version": "2.110.1",
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.110.0",
3
+ "version": "2.110.1",
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.110.0",
3
+ "version": "2.110.1",
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.110.0",
3
+ "version": "2.110.1",
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.110.0",
3
+ "version": "2.110.1",
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.110.0",
3
+ "version": "2.110.1",
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.110.0",
3
+ "version": "2.110.1",
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.110.0",
3
+ "version": "2.110.1",
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"
@@ -10,7 +10,8 @@ Create (or update) a PRD issue in the configured source repo. Invoked by `lisa:p
10
10
  when `source = github`; do not call directly from a vendor-neutral caller.
11
11
 
12
12
  `$ARGUMENTS` carries the `lisa:prd-source-write` spec: `title`, `body` (full PRD markdown),
13
- `initial_role` (`draft` | `ready`, default `draft`), `dedupe_key`, `marker`, optional `source_ref`.
13
+ `initial_role` (`draft` | `ready`, default `draft`), `dedupe_key`, `marker`, optional `source_ref`,
14
+ and optional `ideation_ledger_payload` from `lisa:project-ideation` via `lisa:research`.
14
15
 
15
16
  ## Phase 1 — Resolve repo and PRD lifecycle labels
16
17
 
@@ -64,10 +65,13 @@ section, preserve it verbatim unless the caller intentionally supplied an update
64
65
  use the shared `usage-accounting` serializer/merge path rather than hand-editing ledger rows.
65
66
 
66
67
  **Exploratory ideation run ledger (both paths).** When the write was initiated by
67
- `lisa:project-ideation` or carries a project-ideation marker, persist a managed `## Exploratory
68
- Ideation Run Ledger` section in the PRD body. Prefer the managed section over a comment so the PRD
69
- itself remains the operator's source of truth; use a managed comment only if the body cannot be
70
- updated. Keep one managed section by replacing the content between stable markers:
68
+ `lisa:project-ideation`, carries a project-ideation marker, or includes
69
+ `ideation_ledger_payload`, persist a managed `## Exploratory Ideation Run Ledger` section in the PRD
70
+ body. Prefer the managed section over a comment so the PRD itself remains the operator's source of
71
+ truth; use a managed comment only if the body cannot be updated. Populate the fields from
72
+ `ideation_ledger_payload` when present, falling back to `marker`, `initial_role`, repo config, and
73
+ runtime metadata only for missing fields. Keep one managed section by replacing the content between
74
+ stable markers:
71
75
 
72
76
  ```markdown
73
77
  ## Exploratory Ideation Run Ledger
@@ -27,6 +27,17 @@ dedupe_key: "<stable-key>" # e.g. project-ideation's idea key
27
27
  marker: "[lisa-project-ideation] idea=<stable-key>" # embedded in the PRD body for dedupe
28
28
  origin: { tool: project-ideation | research | manual }
29
29
  source_ref: "<optional existing PRD ref to force an update>"
30
+ ideation_ledger_payload: # optional; forwarded unchanged to the vendor writer
31
+ selected_marker: "<same value as marker>"
32
+ automation_id: "<Codex/Claude automation id or unavailable>"
33
+ automation_memory_path: "<path or unavailable>"
34
+ repo: "<org>/<repo or detected repo identity>"
35
+ prd_ready: true|false
36
+ persona_names: ["<derived persona name>"]
37
+ persona_evidence_refs: ["<file/doc/table/release ref>"]
38
+ selected_idea: "<selected idea title/key>"
39
+ rejected_overlap_candidates: ["<issue refs/titles considered and rejected>"]
40
+ expected_empirical_verification_artifact: "<artifact ref or unavailable>"
30
41
  ```
31
42
 
32
43
  `initial_role` semantics are uniform across vendors (the role STRINGS resolve per vendor from
@@ -72,6 +83,10 @@ prior PRD-source-write behavior to preserve, so omitted means `draft`.
72
83
  the applied role (`draft`/`ready`), the dedupe marker, and whether it was created or reused.
73
84
  Downstream callers (research, project-ideation) parse this — do not paraphrase.
74
85
 
86
+ When `ideation_ledger_payload` is present, this shim still does not render or interpret it. Forward
87
+ the object verbatim to the selected vendor writer so source-specific rendering remains behind the
88
+ configured writer and the dispatch layer never bypasses source selection.
89
+
75
90
  ## Rules
76
91
 
77
92
  - Never bypass dispatch — a vendor-neutral caller calling a `*-write-prd` skill directly defeats the
@@ -80,5 +95,7 @@ prior PRD-source-write behavior to preserve, so omitted means `draft`.
80
95
  and fallback behavior belongs in the vendor writers and follows the `usage-accounting` contract.
81
96
  - Never accept a source outside `{notion, confluence, github, linear}`. `jira` and `file` fail loudly.
82
97
  - Never mutate the spec between layers. The vendor writers define their own create/dedupe contract.
98
+ - Never drop, rename, or vendor-render `ideation_ledger_payload`; it is a pass-through payload for
99
+ the configured writer.
83
100
  - Never invent a PRD lifecycle role string — resolve every role from `config-resolution` per vendor.
84
101
  - Idempotency is the vendor writer's job (marker search before create); this shim only routes.
@@ -155,7 +155,13 @@ For each idea in the creation set, invoke `/lisa:research` with:
155
155
  grounding and the empirical verification plan),
156
156
  - `prd_ready` (this run's flag — `lisa:research` maps it to draft vs prd-ready),
157
157
  - a stable **dedupe marker** (see below) so a re-run references the existing PRD instead of creating
158
- a duplicate.
158
+ a duplicate,
159
+ - a structured `ideation_ledger_payload` handoff containing the selected marker, automation id and
160
+ memory path when available, persona names, persona evidence references, rejected overlap
161
+ candidates, repo identity, `prd_ready`, selected idea title/key, and the expected empirical
162
+ verification artifact. This payload is the only ideation-run metadata channel between
163
+ `project-ideation`, `research`, `prd-source-write`, and the vendor writer; keep GitHub-specific
164
+ rendering out of this skill.
159
165
 
160
166
  `lisa:research` synthesizes the PRD and creates it in the configured source via
161
167
  `lisa:prd-source-write`. `project-ideation` never writes to the source directly — it delegates, so
@@ -16,6 +16,12 @@ Produce a PRD for the problem in `$ARGUMENTS`, then create it in the configured
16
16
  - `dedupe_key` / `marker` (optional) — a stable dedupe marker (e.g. supplied by
17
17
  `lisa:project-ideation`) embedded in the created PRD so re-runs reference the existing PRD rather
18
18
  than creating a duplicate.
19
+ - `ideation_ledger_payload` (optional, required when invoked by `lisa:project-ideation`) — a
20
+ structured metadata object to forward unchanged to `lisa:prd-source-write`. It carries the
21
+ selected marker, automation id/path when available, persona names, persona evidence references,
22
+ rejected overlap candidates, repo identity, `prd_ready`, selected idea title/key, and expected
23
+ empirical verification artifact. `research` may use these fields to inform the PRD body, but must
24
+ not discard, rename, or vendor-render them.
19
25
 
20
26
  ## Orchestration: agent team
21
27
 
@@ -55,5 +61,8 @@ source — there is no loose document artifact.** Before handing the synthesized
55
61
  `lisa:usage-accounting` so the PRD body carries the canonical `## Lisa Usage` ledger from creation
56
62
  time onward. If the runtime does not expose trustworthy usage, the direct entry must still be
57
63
  written with `source: unavailable` and nullable token/cost fields rather than silently omitting the
58
- Research row. A `source` must be configured; if it is not, stop and report it rather than emitting
59
- a document. The Plan flow consumes the created PRD next.
64
+ Research row. If the call includes `ideation_ledger_payload`, pass that object through in the
65
+ `lisa:prd-source-write` spec unchanged alongside `marker`, `dedupe_key`, and `initial_role`; this is
66
+ the vendor-neutral handoff that lets the configured writer render an auditable run ledger without
67
+ `research` bypassing source selection. A `source` must be configured; if it is not, stop and report
68
+ it rather than emitting a document. The Plan flow consumes the created PRD next.