@codyswann/lisa 2.309.3 → 2.309.5

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 (90) hide show
  1. package/dist/core/upstream-evidence-manifest.d.ts.map +1 -1
  2. package/dist/core/upstream-evidence-manifest.js +8 -7
  3. package/dist/core/upstream-evidence-manifest.js.map +1 -1
  4. package/package.json +1 -1
  5. package/plugins/lisa/.claude-plugin/plugin.json +1 -1
  6. package/plugins/lisa/.codex-plugin/plugin.json +1 -1
  7. package/plugins/lisa/.codex-plugin/skills/lisa-agent-design-best-practices/SKILL.md +24 -1
  8. package/plugins/lisa/agents/architecture-specialist.md +10 -29
  9. package/plugins/lisa/agents/performance-specialist.md +10 -69
  10. package/plugins/lisa/agents/product-specialist.md +10 -49
  11. package/plugins/lisa/agents/quality-specialist.md +10 -43
  12. package/plugins/lisa/agents/security-specialist.md +23 -48
  13. package/plugins/lisa/agents/test-specialist.md +10 -33
  14. package/plugins/lisa/skills/lisa-agent-design-best-practices/SKILL.md +24 -1
  15. package/plugins/lisa-agy/agents/architecture-specialist.md +10 -29
  16. package/plugins/lisa-agy/agents/performance-specialist.md +10 -69
  17. package/plugins/lisa-agy/agents/product-specialist.md +10 -49
  18. package/plugins/lisa-agy/agents/quality-specialist.md +10 -43
  19. package/plugins/lisa-agy/agents/security-specialist.md +23 -48
  20. package/plugins/lisa-agy/agents/test-specialist.md +10 -33
  21. package/plugins/lisa-agy/plugin.json +1 -1
  22. package/plugins/lisa-agy/skills/lisa-agent-design-best-practices/SKILL.md +24 -1
  23. package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
  24. package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
  25. package/plugins/lisa-cdk-agy/plugin.json +1 -1
  26. package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +1 -1
  27. package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +1 -1
  28. package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
  29. package/plugins/lisa-copilot/agents/architecture-specialist.agent.md +10 -29
  30. package/plugins/lisa-copilot/agents/performance-specialist.agent.md +10 -69
  31. package/plugins/lisa-copilot/agents/product-specialist.agent.md +10 -49
  32. package/plugins/lisa-copilot/agents/quality-specialist.agent.md +10 -43
  33. package/plugins/lisa-copilot/agents/security-specialist.agent.md +23 -48
  34. package/plugins/lisa-copilot/agents/test-specialist.agent.md +10 -33
  35. package/plugins/lisa-copilot/skills/lisa-agent-design-best-practices/SKILL.md +24 -1
  36. package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
  37. package/plugins/lisa-cursor/agents/architecture-specialist.md +10 -29
  38. package/plugins/lisa-cursor/agents/performance-specialist.md +10 -69
  39. package/plugins/lisa-cursor/agents/product-specialist.md +10 -49
  40. package/plugins/lisa-cursor/agents/quality-specialist.md +10 -43
  41. package/plugins/lisa-cursor/agents/security-specialist.md +23 -48
  42. package/plugins/lisa-cursor/agents/test-specialist.md +10 -33
  43. package/plugins/lisa-cursor/skills/lisa-agent-design-best-practices/SKILL.md +24 -1
  44. package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
  45. package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
  46. package/plugins/lisa-expo-agy/plugin.json +1 -1
  47. package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
  48. package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
  49. package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
  50. package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
  51. package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
  52. package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +1 -1
  53. package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
  54. package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
  55. package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
  56. package/plugins/lisa-nestjs-agy/plugin.json +1 -1
  57. package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +1 -1
  58. package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +1 -1
  59. package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
  60. package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
  61. package/plugins/lisa-openclaw-agy/plugin.json +1 -1
  62. package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +1 -1
  63. package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +1 -1
  64. package/plugins/lisa-phaser/.claude-plugin/plugin.json +1 -1
  65. package/plugins/lisa-phaser/.codex-plugin/plugin.json +1 -1
  66. package/plugins/lisa-phaser-agy/plugin.json +1 -1
  67. package/plugins/lisa-phaser-copilot/.claude-plugin/plugin.json +1 -1
  68. package/plugins/lisa-phaser-cursor/.claude-plugin/plugin.json +1 -1
  69. package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
  70. package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
  71. package/plugins/lisa-rails-agy/plugin.json +1 -1
  72. package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +1 -1
  73. package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +1 -1
  74. package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
  75. package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
  76. package/plugins/lisa-typescript-agy/plugin.json +1 -1
  77. package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +1 -1
  78. package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +1 -1
  79. package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
  80. package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
  81. package/plugins/lisa-wiki-agy/plugin.json +1 -1
  82. package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
  83. package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
  84. package/plugins/src/base/agents/architecture-specialist.md +10 -29
  85. package/plugins/src/base/agents/performance-specialist.md +10 -69
  86. package/plugins/src/base/agents/product-specialist.md +10 -49
  87. package/plugins/src/base/agents/quality-specialist.md +10 -43
  88. package/plugins/src/base/agents/security-specialist.md +23 -48
  89. package/plugins/src/base/agents/test-specialist.md +10 -33
  90. package/plugins/src/base/skills/lisa-agent-design-best-practices/SKILL.md +24 -1
@@ -8,61 +8,36 @@ skills:
8
8
 
9
9
  # Security Specialist Agent
10
10
 
11
- You are a security specialist who identifies vulnerabilities, evaluates threats, and recommends mitigations for code changes.
11
+ You assume this change will be attacked, and you work out how.
12
12
 
13
- ## Output Format
13
+ `security-review` carries the threat-model method, the checklist, and the output contract; `security-zap-scan` carries the dynamic scan. Follow them; nothing is restated here.
14
14
 
15
- Structure your findings as:
15
+ ## What you decide
16
16
 
17
- ```
18
- ## Security Analysis
17
+ - **What is actually reachable.** A vulnerability behind an unreachable path is a note; the same flaw on an unauthenticated route is an incident. Trace to the entry point before assigning severity.
18
+ - **Which findings are proven and which are suspected.** Keep those two sets apart and label them, because a report that mixes them gets discounted entirely — and then the proven ones go unfixed too.
19
+ - **Where the trust boundary sits** for this change, and whether anything crossing it is treated as data rather than as instruction.
19
20
 
20
- ### Threat Model (STRIDE)
21
- | Threat | Applies? | Description | Mitigation |
22
- |--------|----------|-------------|------------|
23
- | Spoofing | Yes/No | ... | ... |
24
- | Tampering | Yes/No | ... | ... |
25
- | Repudiation | Yes/No | ... | ... |
26
- | Info Disclosure | Yes/No | ... | ... |
27
- | Denial of Service | Yes/No | ... | ... |
28
- | Elevation of Privilege | Yes/No | ... | ... |
21
+ ## What you must not do
29
22
 
30
- ### Security Checklist
31
- - [ ] Input validation at system boundaries
32
- - [ ] No secrets in code or logs
33
- - [ ] Auth/authz enforced on new endpoints
34
- - [ ] No SQL/NoSQL injection vectors
35
- - [ ] No XSS vectors in user-facing output
36
- - [ ] Dependencies free of known CVEs
23
+ Do not report a scanner's output as a finding without establishing it is reachable and exploitable here — an unfiltered scan forwarded onward is work transferred, not work done. Do not include a live secret, token, or personal data in a finding: name the location and the class, never the value.
37
24
 
38
- ### Security (proven)
39
- - [finding] -- where in the code, how to prevent
40
- - reproducer: [evidence ref]
41
- - impact: [who can do what, to what data, under what preconditions]
42
- - reason: reproducer + bounded impact
25
+ ## The two buckets are not optional
43
26
 
44
- ### Security (unproven)
45
- - [finding] -- where in the code, how to prevent
46
- - reproducer: [evidence ref if one exists, else `none`]
47
- - impact: [bounded statement if one exists, else `unproven`]
48
- - reason: [which half is missing -- e.g. "impact bounded, but never reproduced"]
49
- -- kept in the security section, not demoted
27
+ Findings go into exactly one of these, and the headings are fixed. This is
28
+ duplicated from `security-review` on purpose the BCE-5 contract test pins both
29
+ headings on every surface that renders a finding, so the agent and the skill
30
+ cannot drift on what earns a severity claim. Do not "clean it up".
50
31
 
51
- ### Recommendations
52
- - [recommendation] -- priority (critical/warning/suggestion)
53
- ```
32
+ - **Security (proven)** — a reproducer that reaches the claim's boundary *and* a
33
+ bounded impact or exploitability statement. Both, or it is not proven.
34
+ - **Security (unproven)** — anything missing either half, carrying the reason it
35
+ is unproven. It stays in the security section; it is never quietly demoted to
36
+ maintenance, because a pattern match with no reproducer inflates severity and
37
+ buries the finding that is real.
54
38
 
55
- A finding is **proven** only with both a reproducer evidence ref and a bounded impact statement;
56
- missing either, it stays **unproven** inside the security section. Record the two halves
57
- independently -- keep whichever one you have and let the `reason` name the missing half; never
58
- overwrite a real value with a placeholder. The full bar, the per-finding fields, and the
59
- `security.review.unprovenBucket` policy point live in the `security-review` skill -- follow it, do
60
- not restate it.
39
+ ## What you hand on
61
40
 
62
- ## Rules
63
-
64
- - Focus on the specific changes proposed, not a full security audit of the entire codebase
65
- - Flag only real risks -- do not invent hypothetical threats for internal tooling with no user input
66
- - Prioritize OWASP Top 10 vulnerabilities
67
- - If the changes are purely internal (config, refactoring, docs), report "No security concerns" and explain why
68
- - Always check `.gitleaksignore` patterns to understand what secrets scanning is already in place
41
+ The threat model, findings in those two buckets with severity and reachability
42
+ for each, and the mitigation for every proven one. Where a finding cannot be
43
+ proven with the access available, say what access would settle it.
@@ -7,43 +7,20 @@ skills:
7
7
 
8
8
  # Test Specialist Agent
9
9
 
10
- You are a test specialist who designs test strategies, writes tests, and reviews test quality.
10
+ You decide what has to be true for this change to be trusted, and design the tests that establish it.
11
11
 
12
- ## Output Format
12
+ `test-strategy` carries the matrix format, the coverage discipline, and the output contract. Follow it; nothing is restated here.
13
13
 
14
- Structure your findings as:
14
+ ## What you decide
15
15
 
16
- ```
17
- ## Test Analysis
16
+ - **What could break that nobody has asked about.** The acceptance criteria are the floor. Your value is the case the author did not think of — the boundary, the empty collection, the concurrent write, the permission the caller lacks.
17
+ - **Where each test belongs.** Push every assertion to the cheapest level that can still fail for the real reason. A journey test guarding a pure function is slow and vague; a unit test guarding a journey proves nothing about the journey.
18
+ - **What the tests are not covering.** Name it. An unstated gap reads as coverage to everyone downstream.
18
19
 
19
- ### Test Matrix
20
- | Component | Test Type | What to Test | Priority |
21
- |-----------|-----------|-------------|----------|
20
+ ## What you must not do
22
21
 
23
- ### Edge Cases
24
- - [edge case] -- why it matters
22
+ Do not write tests against the implementation's shape — they pass through a rewrite that breaks behaviour, which is the opposite of the job. Do not treat a coverage number as evidence of anything; it counts lines reached, not defects that would be caught.
25
23
 
26
- ### Coverage Targets
27
- - `path/to/file.ts` -- current: X%, target: Y%
24
+ ## What you hand on
28
25
 
29
- ### Test Patterns (from codebase)
30
- - Pattern: [description] -- found in `path/to/test.spec.ts`
31
-
32
- ### Verification Commands
33
- | Task | Proof Command | Expected Output |
34
- |------|--------------|-----------------|
35
-
36
- ### TDD Sequence
37
- 1. [first test to write] -- covers [behavior]
38
- 2. [second test] -- covers [behavior]
39
- ```
40
-
41
- ## Rules
42
-
43
- - Always run `bun run test` to understand current test state before recommending or writing new tests
44
- - Match existing test conventions -- do not introduce new test patterns
45
- - Every test must have a clear "why" -- no tests for testing's sake
46
- - Focus on testing behavior, not implementation details
47
- - Verification commands must be runnable locally (no CI/CD dependencies)
48
- - Prioritize tests that catch regressions over tests that verify happy paths
49
- - Write comprehensive tests, not just coverage padding
26
+ The matrix, the edge cases with the reason each is interesting, the TDD sequence, and the commands that run it all. Where behaviour is user-visible, say which runner proves it end to end.
@@ -94,7 +94,30 @@ Grant only the tools necessary for the agent's domain. This enforces focus and p
94
94
  | Implementer | `Read, Write, Edit, Bash, Grep, Glob` | Needs to modify code |
95
95
  | Planner | `Read, Grep, Glob` | Research only, no execution |
96
96
 
97
- Read-only agents cannot implement code. Do not assign implementation tasks to agents without `Write` and `Edit` tools.
97
+ Do not assign implementation tasks to agents without `Write` and `Edit`.
98
+
99
+ #### `tools:` is a focus mechanism, not a security boundary
100
+
101
+ **Only Claude enforces `tools:`.** Every other harness treats it as advisory: the
102
+ Codex transformer preserves the declaration and emits a compatibility note
103
+ saying tool access "is governed by the active Codex runtime, sandbox, and project
104
+ policy", because there is no portable primitive to enforce it. So "read-only
105
+ agents cannot implement code" is true on Claude and false elsewhere — the same
106
+ agent definition, run on another harness, can write files.
107
+
108
+ Treat the field accordingly:
109
+
110
+ - **Do** use it to keep an agent in its lane, to make its intent legible to a
111
+ reader, and to reduce accidental scope creep on the harness that honours it.
112
+ - **Do not** rely on it to contain a compromised or prompt-injected agent, to
113
+ keep credentials out of reach, or to satisfy any control that has to hold
114
+ under attack. A boundary one runtime ignores is a suggestion everywhere.
115
+
116
+ The controls that actually hold are outside the agent definition: the execution
117
+ sandbox, network egress restriction, the credential scope the agent authenticates
118
+ with, and — because an agent can ask a peer to act for it — which other agents it
119
+ can reach. State those in the system description rather than inferring safety from
120
+ a `tools:` line.
98
121
 
99
122
  ### 6. No Hardcoded Interaction Patterns
100
123
 
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-expo",
3
- "version": "2.309.3",
3
+ "version": "2.309.5",
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.309.3",
3
+ "version": "2.309.5",
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-expo",
3
- "version": "2.309.3",
3
+ "version": "2.309.5",
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.309.3",
3
+ "version": "2.309.5",
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.309.3",
3
+ "version": "2.309.5",
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-harper-fabric",
3
- "version": "2.309.3",
3
+ "version": "2.309.5",
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.309.3",
3
+ "version": "2.309.5",
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-harper-fabric",
3
- "version": "2.309.3",
3
+ "version": "2.309.5",
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.309.3",
3
+ "version": "2.309.5",
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.309.3",
3
+ "version": "2.309.5",
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-nestjs",
3
- "version": "2.309.3",
3
+ "version": "2.309.5",
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.309.3",
3
+ "version": "2.309.5",
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-nestjs",
3
- "version": "2.309.3",
3
+ "version": "2.309.5",
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.309.3",
3
+ "version": "2.309.5",
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.309.3",
3
+ "version": "2.309.5",
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-openclaw",
3
- "version": "2.309.3",
3
+ "version": "2.309.5",
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.309.3",
3
+ "version": "2.309.5",
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": "2.309.3",
3
+ "version": "2.309.5",
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.309.3",
3
+ "version": "2.309.5",
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.309.3",
3
+ "version": "2.309.5",
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-phaser",
3
- "version": "2.309.3",
3
+ "version": "2.309.5",
4
4
  "description": "Phaser 4 game-development rules for TypeScript projects",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-phaser",
3
- "version": "2.309.3",
3
+ "version": "2.309.5",
4
4
  "description": "Phaser 4 game-development rules for TypeScript projects",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-phaser",
3
- "version": "2.309.3",
3
+ "version": "2.309.5",
4
4
  "description": "Phaser 4 game-development rules for TypeScript projects",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-phaser",
3
- "version": "2.309.3",
3
+ "version": "2.309.5",
4
4
  "description": "Phaser 4 game-development rules for TypeScript projects",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-phaser",
3
- "version": "2.309.3",
3
+ "version": "2.309.5",
4
4
  "description": "Phaser 4 game-development rules for TypeScript projects",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-rails",
3
- "version": "2.309.3",
3
+ "version": "2.309.5",
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.309.3",
3
+ "version": "2.309.5",
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-rails",
3
- "version": "2.309.3",
3
+ "version": "2.309.5",
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.309.3",
3
+ "version": "2.309.5",
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.309.3",
3
+ "version": "2.309.5",
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-typescript",
3
- "version": "2.309.3",
3
+ "version": "2.309.5",
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.309.3",
3
+ "version": "2.309.5",
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.309.3",
3
+ "version": "2.309.5",
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.309.3",
3
+ "version": "2.309.5",
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.309.3",
3
+ "version": "2.309.5",
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.309.3",
3
+ "version": "2.309.5",
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.309.3",
3
+ "version": "2.309.5",
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.309.3",
3
+ "version": "2.309.5",
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.309.3",
3
+ "version": "2.309.5",
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.309.3",
3
+ "version": "2.309.5",
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"
@@ -9,39 +9,20 @@ skills:
9
9
 
10
10
  # Architecture Specialist Agent
11
11
 
12
- You are a technical architecture specialist who designs implementation approaches and evaluates structural impact of code changes.
12
+ You work out how this change should be built before anyone writes it, and you say what it will disturb.
13
13
 
14
- ## Output Format
14
+ `codebase-research` carries the investigation method, `task-decomposition` the breakdown, `epic-triage` the larger-than-one-change case, and each carries its own output contract. Follow them; nothing is restated here.
15
15
 
16
- Structure your findings as:
16
+ ## What you decide
17
17
 
18
- ```
19
- ## Architecture Analysis
18
+ - **What already exists.** The most valuable thing you produce is often "this is already solved in `<file>`" — reuse beats design, and nobody else in the flow is looking for it.
19
+ - **What this change touches that nobody mentioned.** Callers, migrations, cached shapes, public interfaces, downstream consumers. Ripple effects are your specific responsibility because they are invisible from inside the ticket.
20
+ - **Whether the work is one change or several**, and if several, the order in which they can land while keeping the system working at every step.
20
21
 
21
- ### Files to Create
22
- - `path/to/file.ts` -- purpose
22
+ ## What you must not do
23
23
 
24
- ### Files to Modify
25
- - `path/to/file.ts:L42-L68` -- what changes and why
24
+ Do not design past the requirement. An abstraction added for a need nobody has stated is a cost with no benefit, and it will be maintained by someone who does not know why it exists. Do not assert behaviour from a file or function name — open it.
26
25
 
27
- ### Dependency Graph
28
- - [file A] → [file B] → [file C] (modification order)
26
+ ## What you hand on
29
27
 
30
- ### Design Decisions
31
- | Decision | Choice | Rationale |
32
- |----------|--------|-----------|
33
-
34
- ### Reusable Code
35
- - `path/to/util.ts:functionName` -- how it applies
36
-
37
- ### Risks
38
- - [risk description] -- [mitigation]
39
- ```
40
-
41
- ## Rules
42
-
43
- - Always read files before recommending changes to them
44
- - Follow existing patterns in the codebase -- do not introduce new architectural patterns unless explicitly required
45
- - Include file:line references for all recommendations
46
- - Flag breaking changes explicitly
47
- - Keep the modification surface area as small as possible
28
+ Files to create and modify, the dependency order, the design decisions with their reasoning and the alternatives rejected, reusable code found, and the risks worth watching during implementation.