@codyswann/lisa 2.124.4 → 2.124.6
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-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 -34
- package/plugins/lisa-cursor/hooks/hooks.json +20 -0
- package/plugins/lisa-cursor/rules/{reference/base-rules.md → base-rules-reference.mdc} +5 -0
- package/plugins/lisa-cursor/rules/{eager/base-rules.md → base-rules.mdc} +6 -1
- package/plugins/lisa-cursor/rules/{reference/coding-philosophy.md → coding-philosophy-reference.mdc} +5 -0
- package/plugins/lisa-cursor/rules/{eager/coding-philosophy.md → coding-philosophy.mdc} +6 -1
- package/plugins/lisa-cursor/rules/{reference/config-resolution.md → config-resolution-reference.mdc} +5 -0
- package/plugins/lisa-cursor/rules/{eager/config-resolution.md → config-resolution.mdc} +6 -1
- package/plugins/lisa-cursor/rules/{reference/documentation-source-paths.md → documentation-source-paths-reference.mdc} +5 -0
- package/plugins/lisa-cursor/rules/{eager/documentation-source-paths.md → documentation-source-paths.mdc} +6 -1
- package/plugins/lisa-cursor/rules/{reference/empirical-inquiry.md → empirical-inquiry-reference.mdc} +5 -0
- package/plugins/lisa-cursor/rules/{eager/empirical-inquiry.md → empirical-inquiry.mdc} +6 -1
- package/plugins/lisa-cursor/rules/{reference/intent-routing.md → intent-routing-reference.mdc} +5 -0
- package/plugins/lisa-cursor/rules/{eager/intent-routing.md → intent-routing.mdc} +6 -1
- package/plugins/lisa-cursor/rules/{reference/leaf-only-lifecycle.md → leaf-only-lifecycle-reference.mdc} +5 -0
- package/plugins/lisa-cursor/rules/{eager/leaf-only-lifecycle.md → leaf-only-lifecycle.mdc} +6 -1
- package/plugins/lisa-cursor/rules/{reference/prd-lifecycle-rollup.md → prd-lifecycle-rollup-reference.mdc} +5 -0
- package/plugins/lisa-cursor/rules/{eager/prd-lifecycle-rollup.md → prd-lifecycle-rollup.mdc} +6 -1
- package/plugins/lisa-cursor/rules/{reference/repo-scope-split.md → repo-scope-split-reference.mdc} +5 -0
- package/plugins/lisa-cursor/rules/{eager/repo-scope-split.md → repo-scope-split.mdc} +6 -1
- package/plugins/lisa-cursor/rules/{reference/security-audit-handling.md → security-audit-handling-reference.mdc} +5 -0
- package/plugins/lisa-cursor/rules/{eager/security-audit-handling.md → security-audit-handling.mdc} +6 -1
- package/plugins/lisa-cursor/rules/{reference/usage-accounting.md → usage-accounting-reference.mdc} +5 -0
- package/plugins/lisa-cursor/rules/{eager/usage-accounting.md → usage-accounting.mdc} +6 -1
- package/plugins/lisa-cursor/rules/{reference/verification.md → verification-reference.mdc} +5 -0
- package/plugins/lisa-cursor/rules/{eager/verification.md → verification.mdc} +6 -1
- package/plugins/lisa-cursor/rules/{reference/wiki-knowledge-source.md → wiki-knowledge-source-reference.mdc} +5 -0
- package/plugins/lisa-cursor/rules/{eager/wiki-knowledge-source.md → wiki-knowledge-source.mdc} +6 -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-harper-fabric-cursor/rules/{harper-fabric.md → harper-fabric.mdc} +5 -0
- 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 +2 -15
- package/plugins/lisa-nestjs-cursor/hooks/hooks.json +11 -0
- 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-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 +2 -19
- package/plugins/lisa-rails-cursor/hooks/hooks.json +15 -0
- package/plugins/lisa-rails-cursor/rules/{rails-conventions.md → rails-conventions.mdc} +5 -0
- 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 +2 -34
- package/plugins/lisa-typescript-cursor/hooks/hooks.json +25 -0
- 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/generate-cursor-plugin-artifacts.mjs +214 -20
- package/scripts/lib/per-agent-hook-filter.mjs +138 -23
- /package/plugins/lisa-expo-cursor/{.mcp.json → mcp.json} +0 -0
package/package.json
CHANGED
|
@@ -83,7 +83,7 @@
|
|
|
83
83
|
"lodash": ">=4.18.1"
|
|
84
84
|
},
|
|
85
85
|
"name": "@codyswann/lisa",
|
|
86
|
-
"version": "2.124.
|
|
86
|
+
"version": "2.124.6",
|
|
87
87
|
"description": "Claude Code governance framework that applies guardrails, guidance, and automated enforcement to projects",
|
|
88
88
|
"main": "dist/index.js",
|
|
89
89
|
"exports": {
|
|
@@ -1,41 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lisa",
|
|
3
|
-
"version": "2.124.
|
|
3
|
+
"version": "2.124.6",
|
|
4
4
|
"description": "Universal governance — agents, skills, commands, hooks, and rules for all projects",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Cody Swann"
|
|
7
|
-
},
|
|
8
|
-
"hooks": {
|
|
9
|
-
"PreToolUse": [
|
|
10
|
-
{
|
|
11
|
-
"matcher": "Bash",
|
|
12
|
-
"hooks": [
|
|
13
|
-
{
|
|
14
|
-
"type": "command",
|
|
15
|
-
"command": "${CLAUDE_PLUGIN_ROOT}/hooks/block-no-verify.sh"
|
|
16
|
-
}
|
|
17
|
-
]
|
|
18
|
-
}
|
|
19
|
-
],
|
|
20
|
-
"SessionStart": [
|
|
21
|
-
{
|
|
22
|
-
"matcher": "startup",
|
|
23
|
-
"hooks": [
|
|
24
|
-
{
|
|
25
|
-
"type": "command",
|
|
26
|
-
"command": "${CLAUDE_PLUGIN_ROOT}/hooks/install-pkgs.sh"
|
|
27
|
-
}
|
|
28
|
-
]
|
|
29
|
-
},
|
|
30
|
-
{
|
|
31
|
-
"matcher": "",
|
|
32
|
-
"hooks": [
|
|
33
|
-
{
|
|
34
|
-
"type": "command",
|
|
35
|
-
"command": "${CLAUDE_PLUGIN_ROOT}/hooks/setup-jira-cli.sh"
|
|
36
|
-
}
|
|
37
|
-
]
|
|
38
|
-
}
|
|
39
|
-
]
|
|
40
7
|
}
|
|
41
8
|
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 1,
|
|
3
|
+
"hooks": {
|
|
4
|
+
"preToolUse": [
|
|
5
|
+
{
|
|
6
|
+
"command": "${CURSOR_PLUGIN_ROOT}/hooks/block-no-verify.sh",
|
|
7
|
+
"matcher": "Bash"
|
|
8
|
+
}
|
|
9
|
+
],
|
|
10
|
+
"sessionStart": [
|
|
11
|
+
{
|
|
12
|
+
"command": "${CURSOR_PLUGIN_ROOT}/hooks/install-pkgs.sh",
|
|
13
|
+
"matcher": "startup"
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"command": "${CURSOR_PLUGIN_ROOT}/hooks/setup-jira-cli.sh"
|
|
17
|
+
}
|
|
18
|
+
]
|
|
19
|
+
}
|
|
20
|
+
}
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Base Rules Reference"
|
|
3
|
+
alwaysApply: false
|
|
4
|
+
---
|
|
5
|
+
|
|
1
6
|
Intent Routing (FIRST — before anything else):
|
|
2
7
|
|
|
3
8
|
Before starting any work in a session, classify the user's initial request using the Intent Routing rule. Determine which flow applies (Research, Plan, Implement, Verify, or None) and check its readiness gate. Once a flow is established, all subsequent messages operate within it. Do not skip this step — even if the request seems simple. See the `intent-routing` rule for the full protocol.
|
|
@@ -1,6 +1,11 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Base Rules (load-bearing)"
|
|
3
|
+
alwaysApply: true
|
|
4
|
+
---
|
|
5
|
+
|
|
1
6
|
# Base Rules (load-bearing)
|
|
2
7
|
|
|
3
|
-
These are mandatory disciplines that apply to every session. Full prose, JIRA dev-status query, ADF templates, etc. live in [reference/base-rules.md](
|
|
8
|
+
These are mandatory disciplines that apply to every session. Full prose, JIRA dev-status query, ADF templates, etc. live in [reference/base-rules.md](base-rules-reference.mdc).
|
|
4
9
|
|
|
5
10
|
## Requirement Verification
|
|
6
11
|
|
package/plugins/lisa-cursor/rules/{reference/coding-philosophy.md → coding-philosophy-reference.mdc}
RENAMED
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Coding Philosophy"
|
|
3
|
+
alwaysApply: false
|
|
4
|
+
---
|
|
5
|
+
|
|
1
6
|
# Coding Philosophy
|
|
2
7
|
|
|
3
8
|
This rule enforces the core coding philosophy: **immutability**, **predictable structure**, **functional transformations**, **test-driven development**, **clean deletion**, and **simplicity**.
|
|
@@ -1,6 +1,11 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Coding Philosophy (load-bearing)"
|
|
3
|
+
alwaysApply: true
|
|
4
|
+
---
|
|
5
|
+
|
|
1
6
|
# Coding Philosophy (load-bearing)
|
|
2
7
|
|
|
3
|
-
When writing or modifying code, follow these principles. Examples, hook structure templates, and anti-pattern catalogs live in [reference/coding-philosophy.md](
|
|
8
|
+
When writing or modifying code, follow these principles. Examples, hook structure templates, and anti-pattern catalogs live in [reference/coding-philosophy.md](coding-philosophy-reference.mdc).
|
|
4
9
|
|
|
5
10
|
## Principle priority
|
|
6
11
|
|
package/plugins/lisa-cursor/rules/{reference/config-resolution.md → config-resolution-reference.mdc}
RENAMED
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Config Resolution"
|
|
3
|
+
alwaysApply: false
|
|
4
|
+
---
|
|
5
|
+
|
|
1
6
|
# Config Resolution
|
|
2
7
|
|
|
3
8
|
Lisa is vendor-agnostic. PRDs can be sourced from Notion, Confluence, Linear, GitHub Issues, or JIRA. Tickets can be written to JIRA, GitHub Issues, or Linear. Per-project configuration lives in `.lisa.config.json` at the repo root, with optional `.lisa.config.local.json` overriding on a per-key basis.
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Config Resolution (load-bearing)"
|
|
3
|
+
alwaysApply: true
|
|
4
|
+
---
|
|
5
|
+
|
|
1
6
|
# Config Resolution (load-bearing)
|
|
2
7
|
|
|
3
8
|
Lisa configuration lives in `.lisa.config.json` (committed) and `.lisa.config.local.json` (gitignored, per-developer). The local file wins where they overlap. Developer-specific identity (`atlassian.email`, etc.) MUST live in the local file, never committed.
|
|
@@ -25,4 +30,4 @@ Project tracker (`jira` / `github` / `linear`) is read from `.lisa.config.json`
|
|
|
25
30
|
|
|
26
31
|
`repo:<name>` is the canonical label for which repo a work item belongs to. Resolve current-repo identity in this priority order: `.lisa.config.local.json` `repo` → `.lisa.config.json` `repo` → `.lisa.config.json` `github.repo` → `basename -s .git "$(git remote get-url origin)"`. If none resolve, stop with a clear error.
|
|
27
32
|
|
|
28
|
-
Full reference: [reference/config-resolution.md](
|
|
33
|
+
Full reference: [reference/config-resolution.md](config-resolution-reference.mdc).
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Documentation Source Paths"
|
|
3
|
+
alwaysApply: false
|
|
4
|
+
---
|
|
5
|
+
|
|
1
6
|
# Documentation Source Paths
|
|
2
7
|
|
|
3
8
|
Do not treat `docs/`, `research/`, `transcripts/`, or other source-material directories as disposable duplicates just because a project also has a `wiki/`.
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Documentation Source Paths (load-bearing)"
|
|
3
|
+
alwaysApply: true
|
|
4
|
+
---
|
|
5
|
+
|
|
1
6
|
# Documentation Source Paths (load-bearing)
|
|
2
7
|
|
|
3
8
|
Do not treat `docs/`, `research/`, `transcripts/`, or other source-material directories as disposable duplicates just because a project also has a `wiki/`. They may be ingestion inputs, executable fixtures, runtime inputs, or historical evidence.
|
|
@@ -10,4 +15,4 @@ Before moving, absorbing, or deleting documentation-like paths:
|
|
|
10
15
|
4. When absorbing into `wiki/`, update source notes, indexes, logs, README links, rule references, and runtime defaults that pointed at the old path.
|
|
11
16
|
5. Delete a path only AFTER references are updated and verification proves the project no longer reads it.
|
|
12
17
|
|
|
13
|
-
Full context (Lisa-wiki specifics, `wiki/sources/` evidence layout): [reference/documentation-source-paths.md](
|
|
18
|
+
Full context (Lisa-wiki specifics, `wiki/sources/` evidence layout): [reference/documentation-source-paths.md](documentation-source-paths-reference.mdc).
|
package/plugins/lisa-cursor/rules/{reference/empirical-inquiry.md → empirical-inquiry-reference.mdc}
RENAMED
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Empirical Inquiry — Test, Don't Guess"
|
|
3
|
+
alwaysApply: false
|
|
4
|
+
---
|
|
5
|
+
|
|
1
6
|
# Empirical Inquiry — Test, Don't Guess
|
|
2
7
|
|
|
3
8
|
When a decision depends on a fact you are not certain of — how a tool, API, harness, runtime, environment, or dependency actually behaves — **find out empirically before you act on it.** Run the smallest experiment that settles the question, observe the real result, and then proceed from what you observed. Do not reason your way to a confident-sounding answer from documentation, prior assumption, or training knowledge when the real system is right there and a quick probe would tell you the truth.
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Empirical Inquiry — Test, Don't Guess (load-bearing)"
|
|
3
|
+
alwaysApply: true
|
|
4
|
+
---
|
|
5
|
+
|
|
1
6
|
# Empirical Inquiry — Test, Don't Guess (load-bearing)
|
|
2
7
|
|
|
3
8
|
When a decision depends on a fact you are not certain of — how a tool, API, harness, runtime, or dependency actually behaves — **find out empirically before you act.** Run the smallest experiment that settles the question, observe the real result, and proceed from what you observed.
|
|
@@ -19,4 +24,4 @@ Do not reason your way to a confident-sounding answer from documentation, prior
|
|
|
19
24
|
|
|
20
25
|
This is the inquiry counterpart to the `verification` rule (which proves completed work behaves correctly). Both reject "it looks correct" as evidence.
|
|
21
26
|
|
|
22
|
-
Full prose: [reference/empirical-inquiry.md](
|
|
27
|
+
Full prose: [reference/empirical-inquiry.md](empirical-inquiry-reference.mdc).
|
package/plugins/lisa-cursor/rules/{reference/intent-routing.md → intent-routing-reference.mdc}
RENAMED
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Intent Routing"
|
|
3
|
+
alwaysApply: false
|
|
4
|
+
---
|
|
5
|
+
|
|
1
6
|
# Intent Routing
|
|
2
7
|
|
|
3
8
|
MANDATORY: On the **first user message of a session**, classify the request using the Flow Classification Protocol below and state the chosen flow before doing any other work. Do not respond to the substance of the request, do not start work, do not ask questions until you have stated which flow applies. Once a flow is established, treat it as fixed for the remainder of the session — **do not re-classify on subsequent messages**, even if a follow-up looks vague or conversational ("wait, what did you just do?", "now run the tests", "thanks"). Subsequent messages operate within the established flow unless the user explicitly changes scope. Skipping classification leads to unstructured responses that bypass readiness gates.
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Intent Routing (load-bearing)"
|
|
3
|
+
alwaysApply: true
|
|
4
|
+
---
|
|
5
|
+
|
|
1
6
|
# Intent Routing (load-bearing)
|
|
2
7
|
|
|
3
8
|
**On the first user message of a session**, before responding to the substance of the request, before running any tool, before asking any clarifying question:
|
|
@@ -15,4 +20,4 @@ Once a flow is established, **do not re-classify** on later messages, even if a
|
|
|
15
20
|
|
|
16
21
|
Skipping classification or orchestration echo leads to unstructured responses that bypass readiness gates.
|
|
17
22
|
|
|
18
|
-
Full reference (flow definitions, readiness gates, orchestration matrix, sub-flows): [reference/intent-routing.md](
|
|
23
|
+
Full reference (flow definitions, readiness gates, orchestration matrix, sub-flows): [reference/intent-routing.md](intent-routing-reference.mdc).
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Leaf-Only Build-Ready Invariant, Parent Status Rollup & Terminal Native Closure"
|
|
3
|
+
alwaysApply: false
|
|
4
|
+
---
|
|
5
|
+
|
|
1
6
|
# Leaf-Only Build-Ready Invariant, Parent Status Rollup & Terminal Native Closure
|
|
2
7
|
|
|
3
8
|
This is the single vendor-neutral source of truth for three coupled lifecycle rules. Every `*-to-tracker`, `*-write-*`, `*-validate-*`, and `*-build-intake` skill cites this rule rather than restating it, so per-vendor logic does not drift.
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Leaf-Only Build-Ready Invariant (load-bearing)"
|
|
3
|
+
alwaysApply: true
|
|
4
|
+
---
|
|
5
|
+
|
|
1
6
|
# Leaf-Only Build-Ready Invariant (load-bearing)
|
|
2
7
|
|
|
3
8
|
**Build-ready means a directly implementable leaf work unit.** Containers never carry build-ready.
|
|
@@ -36,4 +41,4 @@ When a leaf reaches the true terminal `done` (the production / final-env value),
|
|
|
36
41
|
|
|
37
42
|
Intermediate env-keyed states (`status:on-dev`, `On Stg`, etc.) remain open. Idempotent — if already closed, report and continue.
|
|
38
43
|
|
|
39
|
-
Full vendor mechanics + the state machine in prose: [reference/leaf-only-lifecycle.md](
|
|
44
|
+
Full vendor mechanics + the state machine in prose: [reference/leaf-only-lifecycle.md](leaf-only-lifecycle-reference.mdc).
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "PRD Lifecycle Rollup & Generated-Top-Level-Work Contract"
|
|
3
|
+
alwaysApply: false
|
|
4
|
+
---
|
|
5
|
+
|
|
1
6
|
# PRD Lifecycle Rollup & Generated-Top-Level-Work Contract
|
|
2
7
|
|
|
3
8
|
This is the single vendor-neutral source of truth for how a PRD owns the work it generates and how its lifecycle rolls up to `shipped` from that work. Every PRD-source and PRD-intake skill (`prd-backlink`, `prd-ticket-coverage`, `*-prd-intake`, `*-to-tracker`) cites this rule by slug rather than restating it, so PRD→child linking and PRD closure rollup behave identically across GitHub, Linear, JIRA/Atlassian, Confluence, and Notion instead of drifting per vendor.
|
package/plugins/lisa-cursor/rules/{eager/prd-lifecycle-rollup.md → prd-lifecycle-rollup.mdc}
RENAMED
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "PRD Lifecycle Rollup & Generated-Top-Level-Work Contract (load-bearing)"
|
|
3
|
+
alwaysApply: true
|
|
4
|
+
---
|
|
5
|
+
|
|
1
6
|
# PRD Lifecycle Rollup & Generated-Top-Level-Work Contract (load-bearing)
|
|
2
7
|
|
|
3
8
|
The vendor-neutral source of truth for how a PRD owns the work it generated and how its lifecycle rolls up to `shipped`. Companion to `leaf-only-lifecycle` (which governs build-lifecycle of leaves); this rule governs PRD lifecycle and rollup from generated top-level children.
|
|
@@ -28,4 +33,4 @@ PRD rolls from `ticketed` to `shipped` when every required generated top-level c
|
|
|
28
33
|
|
|
29
34
|
Re-runs of intake/backlink must dedupe by child-ref identity (e.g. `owner/repo#number` for GitHub, Linear issue UUID, JIRA key) — never by URL string, which varies by formatting.
|
|
30
35
|
|
|
31
|
-
Full vendor matrix, predicate definitions, non-goals: [reference/prd-lifecycle-rollup.md](
|
|
36
|
+
Full vendor matrix, predicate definitions, non-goals: [reference/prd-lifecycle-rollup.md](prd-lifecycle-rollup-reference.mdc).
|
package/plugins/lisa-cursor/rules/{reference/repo-scope-split.md → repo-scope-split-reference.mdc}
RENAMED
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Repo Scope & Work-Time Splitting"
|
|
3
|
+
alwaysApply: false
|
|
4
|
+
---
|
|
5
|
+
|
|
1
6
|
# Repo Scope & Work-Time Splitting
|
|
2
7
|
|
|
3
8
|
Leaf work units are single-repo. A **leaf work unit** is an individually implementable ticket with no child tickets — issue types **Bug, Task, Sub-task, Improvement**. Each must name exactly one repository. **Epic, Story, Spike** are coordination containers and may span repos.
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Repo Scope & Work-Time Splitting (load-bearing)"
|
|
3
|
+
alwaysApply: true
|
|
4
|
+
---
|
|
5
|
+
|
|
1
6
|
# Repo Scope & Work-Time Splitting (load-bearing)
|
|
2
7
|
|
|
3
8
|
**Leaf work units are single-repo.** A leaf is an individually implementable ticket with no children — types **Bug, Task, Sub-task, Improvement**. Each names exactly one repo. **Epic, Story, Spike** are coordination containers and may span repos.
|
|
@@ -36,4 +41,4 @@ A tracker can oversee multiple repos. Build-intake claims only current-repo tick
|
|
|
36
41
|
2. **Multi-repo leaf → split, never claim.** Each split sibling is created build-ready and stamped with its own `repo:<name>`.
|
|
37
42
|
3. **Wrong-repo single-repo leaf → skip** (label keeps it cheap next cycle).
|
|
38
43
|
|
|
39
|
-
Vendor mechanics (JIRA/GitHub/Linear) and full procedure: [reference/repo-scope-split.md](
|
|
44
|
+
Vendor mechanics (JIRA/GitHub/Linear) and full procedure: [reference/repo-scope-split.md](repo-scope-split-reference.mdc).
|
package/plugins/lisa-cursor/rules/{eager/security-audit-handling.md → security-audit-handling.mdc}
RENAMED
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Security Audit Handling (load-bearing)"
|
|
3
|
+
alwaysApply: true
|
|
4
|
+
---
|
|
5
|
+
|
|
1
6
|
# Security Audit Handling (load-bearing)
|
|
2
7
|
|
|
3
8
|
If `git push` fails because the pre-push hook reports security vulnerabilities, follow the rules below. **Never use `--no-verify`** to bypass the security audit.
|
|
@@ -26,4 +31,4 @@ Before adding any override, verify:
|
|
|
26
31
|
3. If transitive with patch: `bundle update <gem>` to bump the lockfile only, commit, retry.
|
|
27
32
|
4. If no patch but safe: document the exception, retry.
|
|
28
33
|
|
|
29
|
-
Full procedure with examples: [reference/security-audit-handling.md](
|
|
34
|
+
Full procedure with examples: [reference/security-audit-handling.md](security-audit-handling-reference.mdc).
|
package/plugins/lisa-cursor/rules/{reference/usage-accounting.md → usage-accounting-reference.mdc}
RENAMED
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Usage Accounting"
|
|
3
|
+
alwaysApply: false
|
|
4
|
+
---
|
|
5
|
+
|
|
1
6
|
# Usage Accounting
|
|
2
7
|
|
|
3
8
|
Lisa usage accounting is a vendor-neutral contract for attaching AI usage and cost telemetry to the artifacts Lisa creates or updates. It governs the section shape, machine-readable tokens, source/pricing semantics, rollup behavior, and idempotent rewrite rules. Writer skills and lifecycle skills attach telemetry by following this contract; they do not invent artifact-local formats.
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Usage Accounting (load-bearing)"
|
|
3
|
+
alwaysApply: true
|
|
4
|
+
---
|
|
5
|
+
|
|
1
6
|
# Usage Accounting (load-bearing)
|
|
2
7
|
|
|
3
8
|
Lisa attaches AI usage and cost telemetry to every artifact it creates/updates. The format is a single canonical managed section.
|
|
@@ -25,4 +30,4 @@ Each direct entry records ONE logical Lisa run on ONE artifact. `entry_id` is th
|
|
|
25
30
|
|
|
26
31
|
Container artifacts (Epic, PRD, etc.) roll up usage from their direct children. Roll-up is recursive — a parent's `## Lisa Usage` aggregates its descendants' direct entries. Re-writes are idempotent: re-running an intake or lifecycle skill must not duplicate entries.
|
|
27
32
|
|
|
28
|
-
Full schema (all 17 fields, pricing semantics, rollup math, idempotent-rewrite rules): [reference/usage-accounting.md](
|
|
33
|
+
Full schema (all 17 fields, pricing semantics, rollup math, idempotent-rewrite rules): [reference/usage-accounting.md](usage-accounting-reference.mdc).
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Empirical Verification (load-bearing)"
|
|
3
|
+
alwaysApply: true
|
|
4
|
+
---
|
|
5
|
+
|
|
1
6
|
# Empirical Verification (load-bearing)
|
|
2
7
|
|
|
3
8
|
**Verification is not linting, typechecking, or testing.** Those are *quality checks* — necessary prerequisites, but NOT verification.
|
|
@@ -18,4 +23,4 @@
|
|
|
18
23
|
- **Verifier agent** — acts as the end user / API client / operator. Independent from Builder when possible.
|
|
19
24
|
- **Human overseer** — approves risky operations and anything agents cannot fully verify.
|
|
20
25
|
|
|
21
|
-
Full operational contract (verification types, evidence formats, escalation protocol): [reference/verification.md](
|
|
26
|
+
Full operational contract (verification types, evidence formats, escalation protocol): [reference/verification.md](verification-reference.mdc).
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Wiki as Knowledge Source"
|
|
3
|
+
alwaysApply: false
|
|
4
|
+
---
|
|
5
|
+
|
|
1
6
|
# Wiki as Knowledge Source
|
|
2
7
|
|
|
3
8
|
If this project has an LLM Wiki (a `wiki/` directory with an `index.md`), treat it as the canonical source of durable project knowledge. The wiki is curated and current; ad-hoc scraping of code, tickets, chat history, or stale READMEs is not.
|
package/plugins/lisa-cursor/rules/{eager/wiki-knowledge-source.md → wiki-knowledge-source.mdc}
RENAMED
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Wiki as Knowledge Source (load-bearing)"
|
|
3
|
+
alwaysApply: true
|
|
4
|
+
---
|
|
5
|
+
|
|
1
6
|
# Wiki as Knowledge Source (load-bearing)
|
|
2
7
|
|
|
3
8
|
If the project has an LLM Wiki (a `wiki/` directory with `index.md`), treat it as the canonical source of durable project knowledge.
|
|
@@ -13,4 +18,4 @@ The wiki documents knowledge; it does NOT override executable behavior. When wik
|
|
|
13
18
|
|
|
14
19
|
If the project has no `wiki/`, this rule does not apply.
|
|
15
20
|
|
|
16
|
-
Full prose: [reference/wiki-knowledge-source.md](
|
|
21
|
+
Full prose: [reference/wiki-knowledge-source.md](wiki-knowledge-source-reference.mdc).
|