@codyswann/lisa 2.202.0 → 2.204.0

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 (75) hide show
  1. package/README.md +7 -0
  2. package/nestjs/create-only/.github/workflows/deploy.yml +69 -0
  3. package/package.json +1 -1
  4. package/plugins/lisa/.claude-plugin/plugin.json +1 -1
  5. package/plugins/lisa/.codex-plugin/plugin.json +1 -1
  6. package/plugins/lisa/.codex-plugin/skills/lisa-agent-ready/SKILL.md +123 -0
  7. package/plugins/lisa/.codex-plugin/skills/lisa-agent-ready/agents/openai.yaml +4 -0
  8. package/plugins/lisa/commands/lisa/agent-ready.md +6 -0
  9. package/plugins/lisa/rules/eager/factory-model.md +4 -0
  10. package/plugins/lisa/rules/reference/factory-model.md +20 -0
  11. package/plugins/lisa/skills/lisa-agent-ready/SKILL.md +123 -0
  12. package/plugins/lisa/skills/lisa-agent-ready/agents/openai.yaml +4 -0
  13. package/plugins/lisa-agy/commands/lisa/agent-ready.md +6 -0
  14. package/plugins/lisa-agy/plugin.json +1 -1
  15. package/plugins/lisa-agy/skills/lisa-agent-ready/SKILL.md +123 -0
  16. package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
  17. package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
  18. package/plugins/lisa-cdk-agy/plugin.json +1 -1
  19. package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +1 -1
  20. package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +1 -1
  21. package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
  22. package/plugins/lisa-copilot/commands/lisa/agent-ready.md +6 -0
  23. package/plugins/lisa-copilot/rules/eager/factory-model.md +4 -0
  24. package/plugins/lisa-copilot/rules/reference/factory-model.md +20 -0
  25. package/plugins/lisa-copilot/skills/lisa-agent-ready/SKILL.md +123 -0
  26. package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
  27. package/plugins/lisa-cursor/commands/lisa/agent-ready.md +6 -0
  28. package/plugins/lisa-cursor/rules/factory-model-reference.mdc +20 -0
  29. package/plugins/lisa-cursor/rules/factory-model.mdc +4 -0
  30. package/plugins/lisa-cursor/skills/lisa-agent-ready/SKILL.md +123 -0
  31. package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
  32. package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
  33. package/plugins/lisa-expo-agy/plugin.json +1 -1
  34. package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
  35. package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
  36. package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
  37. package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
  38. package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
  39. package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +1 -1
  40. package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
  41. package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
  42. package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
  43. package/plugins/lisa-nestjs-agy/plugin.json +1 -1
  44. package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +1 -1
  45. package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +1 -1
  46. package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
  47. package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
  48. package/plugins/lisa-openclaw-agy/plugin.json +1 -1
  49. package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +1 -1
  50. package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +1 -1
  51. package/plugins/lisa-phaser/.claude-plugin/plugin.json +1 -1
  52. package/plugins/lisa-phaser/.codex-plugin/plugin.json +1 -1
  53. package/plugins/lisa-phaser-agy/plugin.json +1 -1
  54. package/plugins/lisa-phaser-copilot/.claude-plugin/plugin.json +1 -1
  55. package/plugins/lisa-phaser-cursor/.claude-plugin/plugin.json +1 -1
  56. package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
  57. package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
  58. package/plugins/lisa-rails-agy/plugin.json +1 -1
  59. package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +1 -1
  60. package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +1 -1
  61. package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
  62. package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
  63. package/plugins/lisa-typescript-agy/plugin.json +1 -1
  64. package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +1 -1
  65. package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +1 -1
  66. package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
  67. package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
  68. package/plugins/lisa-wiki-agy/plugin.json +1 -1
  69. package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
  70. package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
  71. package/plugins/src/base/commands/lisa/agent-ready.md +6 -0
  72. package/plugins/src/base/rules/eager/factory-model.md +4 -0
  73. package/plugins/src/base/rules/reference/factory-model.md +20 -0
  74. package/plugins/src/base/skills/lisa-agent-ready/SKILL.md +123 -0
  75. package/ui/index.html +26 -0
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-typescript",
3
- "version": "2.202.0",
3
+ "version": "2.204.0",
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-typescript",
3
- "version": "2.202.0",
3
+ "version": "2.204.0",
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.202.0",
3
+ "version": "2.204.0",
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.202.0",
3
+ "version": "2.204.0",
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-wiki",
3
- "version": "2.202.0",
3
+ "version": "2.204.0",
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.202.0",
3
+ "version": "2.204.0",
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"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-wiki",
3
- "version": "2.202.0",
3
+ "version": "2.204.0",
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.202.0",
3
+ "version": "2.204.0",
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.202.0",
3
+ "version": "2.204.0",
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"
@@ -0,0 +1,6 @@
1
+ ---
2
+ description: "Make a brownfield project agent-ready: build the initial knowledge wiki from everything the agent can reach, write wiki/gaps.md with the questions only a human can answer, and converge over re-runs (humans answer, agents absorb) until zero gaps remain. Run before letting the automation fleet operate a brownfield project unattended."
3
+ argument-hint: "[path]"
4
+ ---
5
+
6
+ Use the /lisa-agent-ready skill to build the initial knowledge wiki from every reachable source, write the human-answerable gaps to wiki/gaps.md, absorb any answered gaps from a prior run, and report whether the project is agent-ready or how many gaps remain. $ARGUMENTS
@@ -29,6 +29,10 @@ The rules that follow from this:
29
29
  OpenCode, Antigravity, Copilot — behavior must stay in parity, and anything persisted for
30
30
  agents must be visible to all of them.
31
31
 
32
+ Brownfield on-ramp: an existing codebase becomes agent-ready **before** the fleet runs unattended
33
+ — `/lisa:agent-ready` converges human knowledge into the wiki (gaps loop until none remain), then
34
+ standards adoption refactors to conformance without behavior change.
35
+
32
36
  End state: end users have zero direct contact with coding agents — they interact with the tracker,
33
37
  the PRD source, and the shipped software.
34
38
 
@@ -71,6 +71,26 @@ Inside a flow, never pause to ask a human whether to proceed — the invocation
71
71
  Headless discipline follows: no interactive prompts, idempotent re-runs, clean exits on empty
72
72
  queues, and loud, specific failures when something is genuinely blocking.
73
73
 
74
+ ## The brownfield on-ramp
75
+
76
+ Greenfield projects are agent-ready by construction. A brownfield project must earn readiness in
77
+ two ordered steps before the automation fleet runs unattended:
78
+
79
+ 1. **Knowledge convergence** (`/lisa:agent-ready`): build the initial knowledge wiki from every
80
+ reachable source — repository, git history, tracker, connected systems — under the operating
81
+ premise *"starting tomorrow, you maintain this project without human input; today is your only
82
+ chance to ask questions."* Everything derivable is derived and written into the wiki; what only
83
+ a human can answer becomes a product-readable entry in `wiki/gaps.md`. Humans answer inline, a
84
+ **fresh session** re-runs the skill, verified answers are absorbed into wiki pages, and the loop
85
+ repeats until a run reports zero open gaps.
86
+ 2. **Standards adoption**: apply Lisa's full lint rules, guardrails, and thresholds — the project
87
+ goes red by design — then refactor to conformance **without changing business logic or
88
+ functionality**, via the improve/fix flows, with behavior preservation proven by tests and
89
+ empirical verification.
90
+
91
+ Knowledge before standards: an agent refactoring a codebase it does not yet understand is exactly
92
+ the unattended guessing the gates exist to prevent.
93
+
74
94
  ## Quality and parity
75
95
 
76
96
  Everything else Lisa installs — skills, hooks, quality checks, guardrails, CI gates, rulesets —
@@ -0,0 +1,123 @@
1
+ ---
2
+ name: lisa-agent-ready
3
+ description: "Make a brownfield project agent-ready: build the initial knowledge wiki from everything the agent can reach (repository, git history, connected trackers, docs, observability), then write wiki/gaps.md — the questions only a human can answer before agents can operate the project autonomously. Iterative convergence: humans answer the gaps inline, a fresh session re-runs the skill, verified answers are absorbed into wiki pages, and the loop repeats until a run reports zero open gaps and declares the project agent-ready. This is the knowledge half of brownfield onboarding; standards adoption (applying Lisa's lint rules, guardrails, and thresholds, then refactoring to conform without changing behavior) follows it."
4
+ allowed-tools: ["Skill", "Bash", "Read", "Write", "Edit", "Glob", "Grep", "WebFetch"]
5
+ ---
6
+
7
+ # Agent-Ready Onboarding: $ARGUMENTS
8
+
9
+ Run this skill as if the following is literally true — it is the operating premise, not a
10
+ role-play flourish:
11
+
12
+ > **Starting tomorrow, you — the agent — maintain this project without any human input. Today is
13
+ > your only chance to ask questions.** Use the existing connections, the git history, the tracker,
14
+ > the docs, and anything else you have access to, to build the initial knowledge wiki. Critically:
15
+ > write down every gap a human must fill in **today** for you to be able to operate autonomously —
16
+ > the questions you would otherwise have to guess at tomorrow.
17
+
18
+ Greenfield projects start agent-ready by construction. Brownfield projects carry years of tacit
19
+ knowledge in heads, not files — this skill converges that knowledge into the wiki before the
20
+ factories are allowed to run unattended.
21
+
22
+ ## What counts as a gap (the judgment rule)
23
+
24
+ A **gap** is something that is (a) not derivable from any source you can reach, and (b) dangerous
25
+ to guess — guessing would risk business logic, product intent, money, data, security, or an
26
+ irreversible external effect. Examples: "why does the billing cutoff run at 02:00 and what breaks
27
+ if it moves", "which of these two payment flows is the live one", "who are the users of the admin
28
+ panel and what must never change for them".
29
+
30
+ **Not a gap**: anything you can derive by reading harder — architecture, conventions, test
31
+ behavior, deploy topology, dead code. Derive it and write it into the wiki instead. A lazy gap
32
+ that a later reader could have answered from the repository is a defect of this skill's output.
33
+
34
+ ## Phases
35
+
36
+ ### Phase 0 — Preflight
37
+
38
+ 1. Ensure the knowledge wiki exists. If the project has no `wiki/`, install it first (delegate to
39
+ the wiki install/setup surface — `/lisa:wiki:install` / `lisa-wiki-setup`); do not hand-roll a
40
+ wiki layout.
41
+ 2. Inventory every reachable source: the repository and its full git history, the configured
42
+ `tracker` and `source`, connected MCP servers and access layers (observability, docs,
43
+ analytics), CI history, deployed environments named in config. Record the inventory in the wiki
44
+ so later runs and later agents know what was consulted.
45
+ 3. Detect a prior run: if `wiki/gaps.md` exists, this is an **absorption run** — go to Phase 3
46
+ first, then re-audit.
47
+
48
+ ### Phase 1 — Ingest
49
+
50
+ Delegate to the wiki's ingestion surface (`lisa-wiki-ingest` and its connectors) across the
51
+ repository, the git history, and each connected source from the Phase 0 inventory. Bounded and
52
+ resumable — prefer several focused ingests over one unbounded crawl.
53
+
54
+ ### Phase 2 — Deep-read for autonomy
55
+
56
+ Beyond raw ingestion, author the pages an unattended operator needs, deriving everything derivable:
57
+ architecture and domain glossary, environment/deploy topology, who the users are (personas, if
58
+ discoverable), business rules encoded in code and tests, operational runbooks (how to see logs,
59
+ how to roll back), and the project's danger zones (migrations, money paths, irreversible jobs).
60
+ Update `wiki/index.md` and record the run in `wiki/log.md` per wiki conventions.
61
+
62
+ ### Phase 3 — Absorb answered gaps (re-runs only)
63
+
64
+ For each gap in `wiki/gaps.md` a human has answered inline:
65
+
66
+ 1. Verify the answer against reachable sources where possible; ask-back in the gap entry (keep it
67
+ `open` with a follow-up question) only when the answer is contradictory or incomplete.
68
+ 2. Absorb the verified answer into the proper wiki page(s) — the wiki is the durable home, the
69
+ gaps file is a queue, not a knowledge store.
70
+ 3. Mark the entry `absorbed` with a pointer to the page(s) it landed in, and move it to the
71
+ resolved section of the file.
72
+
73
+ Never treat your own inference as a human answer, and never resolve an open gap by guessing.
74
+
75
+ ### Phase 4 — Gaps audit
76
+
77
+ Regenerate the open section of `wiki/gaps.md` (create it on the first run). Every entry is written
78
+ for a **non-technical operator** — plain language, no stack traces, no repo jargon — because the
79
+ person answering may not code:
80
+
81
+ ```markdown
82
+ ## Open gaps (answer inline under each question, then re-run /lisa:agent-ready in a new session)
83
+
84
+ ### <stable-slug>
85
+ - **Question**: <one plain-language question>
86
+ - **Why it blocks autonomy**: <what an unattended agent cannot safely do without this>
87
+ - **What was searched**: <the sources consulted before declaring this a gap>
88
+ - **How to answer**: <where the answer likely lives / what format is useful>
89
+ - **Answer**: _(human fills in)_
90
+ - **Status**: open
91
+ ```
92
+
93
+ Order entries by autonomy impact (what would cause the worst unattended decision first). Keep the
94
+ file short — a gaps file with fifty entries means Phase 2 stopped too early.
95
+
96
+ ### Phase 5 — Converge and report
97
+
98
+ - **Open gaps remain** → report the count and the top items, and instruct: a human answers inline
99
+ in `wiki/gaps.md`, then re-runs `/lisa:agent-ready` in a **new session** (a fresh session avoids
100
+ anchoring on this run's assumptions). Commit the wiki changes through the normal wiki PR flow.
101
+ - **Zero open gaps** → declare the project **agent-ready for knowledge**: record the verdict and
102
+ date in the gaps file header and the wiki log, and point at the next step — standards adoption.
103
+
104
+ ## After convergence: standards adoption
105
+
106
+ Knowledge first, standards second. Once the loop reports no gaps, apply Lisa's full standards
107
+ (lint rules, guardrails, thresholds) and expect the project to go red — that is the point. Agents
108
+ then refactor the codebase to conform **without changing business logic or functionality**, via
109
+ the existing improve/fix flows, proving behavior is preserved with the test suite and empirical
110
+ verification. Only then should the automation fleet run unattended on a brownfield project.
111
+
112
+ ## Rules
113
+
114
+ - Never invent an answer to an open gap; the entire value of the file is that its answers came
115
+ from humans.
116
+ - Gap entries are product-readable (factory-model rule: write outward for a non-technical
117
+ operator).
118
+ - Idempotent: re-runs regenerate the open section in place and never lose or reword a human's
119
+ inline answers.
120
+ - The wiki is the durable store; `wiki/gaps.md` is a queue. Every absorbed answer must land in a
121
+ real wiki page with the gaps entry pointing at it.
122
+ - Follow the wiki's own conventions for commits, `wiki/index.md`, and `wiki/log.md` — this skill
123
+ adds no parallel bookkeeping.
package/ui/index.html CHANGED
@@ -1399,6 +1399,20 @@
1399
1399
  command: "lisa sync",
1400
1400
  done: true,
1401
1401
  },
1402
+ {
1403
+ label: "Make the project agent-ready (brownfield)",
1404
+ desc: "Builds the knowledge wiki from everything the agent can reach and writes wiki/gaps.md — the questions only a human can answer. Answer inline, re-run in a new session, repeat until zero gaps. Greenfield projects are ready by construction.",
1405
+ command: "/lisa:agent-ready",
1406
+ done: false,
1407
+ why: "wiki/gaps.md has 2 open gaps",
1408
+ },
1409
+ {
1410
+ label: "Adopt the standards (conformance refactor)",
1411
+ desc: "Apply Lisa's full lint rules, guardrails, and thresholds — the project goes red by design — then agents refactor to conform without changing business logic, proven by tests and empirical verification.",
1412
+ command: "/lisa:improve:* · /lisa:fix:linter-error",
1413
+ done: false,
1414
+ why: "blocked by agent-ready",
1415
+ },
1402
1416
  {
1403
1417
  label: "Connect the work tracker",
1404
1418
  desc: "Verifies the workflow status names and writes the tracker section. This project: JIRA, project ACME.",
@@ -1613,6 +1627,18 @@
1613
1627
  { t: "text", v: "After an initiative ships" },
1614
1628
  { t: "mono", v: "—" },
1615
1629
  ],
1630
+ [
1631
+ { t: "mono", v: "/lisa:agent-ready" },
1632
+ {
1633
+ t: "text",
1634
+ v: "Brownfield onboarding: builds the knowledge wiki from every reachable source and writes the human-answerable gaps file; absorbs answers on re-runs until zero gaps remain",
1635
+ },
1636
+ {
1637
+ t: "text",
1638
+ v: "Once per brownfield adoption — re-run in a fresh session after answering gaps, until it reports agent-ready",
1639
+ },
1640
+ { t: "mono", v: "—" },
1641
+ ],
1616
1642
  [
1617
1643
  { t: "mono", v: "/lisa:doctor" },
1618
1644
  {