@codyswann/lisa 1.67.3 → 1.68.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 (127) hide show
  1. package/all/copy-overwrite/.claude/rules/base-rules.md +0 -50
  2. package/all/copy-overwrite/.claude/rules/intent-routing.md +115 -0
  3. package/all/copy-overwrite/.claude/rules/verification.md +27 -538
  4. package/package.json +1 -1
  5. package/plugins/lisa/.claude-plugin/plugin.json +1 -1
  6. package/plugins/lisa/agents/architecture-specialist.md +4 -9
  7. package/plugins/lisa/agents/bug-fixer.md +40 -0
  8. package/plugins/lisa/agents/builder.md +41 -0
  9. package/plugins/lisa/agents/debug-specialist.md +4 -93
  10. package/plugins/lisa/agents/jira-agent.md +85 -0
  11. package/plugins/lisa/agents/performance-specialist.md +2 -11
  12. package/plugins/lisa/agents/product-specialist.md +2 -10
  13. package/plugins/lisa/agents/quality-specialist.md +2 -0
  14. package/plugins/lisa/agents/security-specialist.md +3 -9
  15. package/plugins/lisa/agents/test-specialist.md +2 -16
  16. package/plugins/lisa/agents/verification-specialist.md +38 -103
  17. package/plugins/lisa/commands/build.md +10 -0
  18. package/plugins/lisa/commands/fix.md +10 -0
  19. package/plugins/lisa/commands/improve.md +15 -0
  20. package/plugins/lisa/commands/investigate.md +10 -0
  21. package/plugins/lisa/commands/monitor.md +10 -0
  22. package/plugins/lisa/commands/plan/create.md +1 -1
  23. package/plugins/lisa/commands/plan/execute.md +1 -2
  24. package/plugins/lisa/commands/plan.md +10 -0
  25. package/plugins/lisa/commands/review.md +10 -0
  26. package/plugins/lisa/commands/ship.md +10 -0
  27. package/plugins/lisa/skills/acceptance-criteria/SKILL.md +71 -0
  28. package/plugins/lisa/skills/bug-triage/SKILL.md +23 -0
  29. package/plugins/lisa/skills/codebase-research/SKILL.md +87 -0
  30. package/plugins/lisa/skills/epic-triage/SKILL.md +28 -0
  31. package/plugins/lisa/skills/performance-review/SKILL.md +94 -0
  32. package/plugins/lisa/skills/quality-review/SKILL.md +54 -0
  33. package/plugins/lisa/skills/reproduce-bug/SKILL.md +96 -0
  34. package/plugins/lisa/skills/root-cause-analysis/SKILL.md +155 -0
  35. package/plugins/lisa/skills/security-review/SKILL.md +57 -0
  36. package/plugins/lisa/skills/task-decomposition/SKILL.md +95 -0
  37. package/plugins/lisa/skills/task-triage/SKILL.md +23 -0
  38. package/plugins/lisa/skills/tdd-implementation/SKILL.md +83 -0
  39. package/plugins/lisa/skills/test-strategy/SKILL.md +63 -0
  40. package/plugins/lisa/skills/verification-lifecycle/SKILL.md +292 -0
  41. package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
  42. package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
  43. package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
  44. package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
  45. package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
  46. package/plugins/src/base/agents/architecture-specialist.md +4 -9
  47. package/plugins/src/base/agents/bug-fixer.md +40 -0
  48. package/plugins/src/base/agents/builder.md +41 -0
  49. package/plugins/src/base/agents/debug-specialist.md +4 -93
  50. package/plugins/src/base/agents/jira-agent.md +85 -0
  51. package/plugins/src/base/agents/performance-specialist.md +2 -11
  52. package/plugins/src/base/agents/product-specialist.md +2 -10
  53. package/plugins/src/base/agents/quality-specialist.md +2 -0
  54. package/plugins/src/base/agents/security-specialist.md +3 -9
  55. package/plugins/src/base/agents/test-specialist.md +2 -16
  56. package/plugins/src/base/agents/verification-specialist.md +38 -103
  57. package/plugins/src/base/commands/build.md +10 -0
  58. package/plugins/src/base/commands/fix.md +10 -0
  59. package/plugins/src/base/commands/improve.md +15 -0
  60. package/plugins/src/base/commands/investigate.md +10 -0
  61. package/plugins/src/base/commands/monitor.md +10 -0
  62. package/plugins/src/base/commands/plan/create.md +1 -1
  63. package/plugins/src/base/commands/plan/execute.md +1 -2
  64. package/plugins/src/base/commands/plan.md +10 -0
  65. package/plugins/src/base/commands/review.md +10 -0
  66. package/plugins/src/base/commands/ship.md +10 -0
  67. package/plugins/src/base/skills/acceptance-criteria/SKILL.md +71 -0
  68. package/plugins/src/base/skills/bug-triage/SKILL.md +23 -0
  69. package/plugins/src/base/skills/codebase-research/SKILL.md +87 -0
  70. package/plugins/src/base/skills/epic-triage/SKILL.md +28 -0
  71. package/plugins/src/base/skills/performance-review/SKILL.md +94 -0
  72. package/plugins/src/base/skills/quality-review/SKILL.md +54 -0
  73. package/plugins/src/base/skills/reproduce-bug/SKILL.md +96 -0
  74. package/plugins/src/base/skills/root-cause-analysis/SKILL.md +155 -0
  75. package/plugins/src/base/skills/security-review/SKILL.md +57 -0
  76. package/plugins/src/base/skills/task-decomposition/SKILL.md +95 -0
  77. package/plugins/src/base/skills/task-triage/SKILL.md +23 -0
  78. package/plugins/src/base/skills/tdd-implementation/SKILL.md +83 -0
  79. package/plugins/src/base/skills/test-strategy/SKILL.md +63 -0
  80. package/plugins/src/base/skills/verification-lifecycle/SKILL.md +292 -0
  81. package/expo/copy-overwrite/.claude/rules/expo-verification.md +0 -261
  82. package/plugins/lisa/agents/agent-architect.md +0 -310
  83. package/plugins/lisa/agents/hooks-expert.md +0 -74
  84. package/plugins/lisa/agents/implementer.md +0 -54
  85. package/plugins/lisa/agents/slash-command-architect.md +0 -87
  86. package/plugins/lisa/agents/web-search-researcher.md +0 -112
  87. package/plugins/lisa/commands/git/commit-and-submit-pr.md +0 -7
  88. package/plugins/lisa/commands/git/commit-submit-pr-and-verify.md +0 -7
  89. package/plugins/lisa/commands/git/commit-submit-pr-deploy-and-verify.md +0 -7
  90. package/plugins/lisa/commands/jira/fix.md +0 -7
  91. package/plugins/lisa/commands/jira/implement.md +0 -7
  92. package/plugins/lisa/commands/sonarqube/check.md +0 -6
  93. package/plugins/lisa/commands/sonarqube/fix.md +0 -6
  94. package/plugins/lisa/commands/tasks/load.md +0 -7
  95. package/plugins/lisa/commands/tasks/sync.md +0 -7
  96. package/plugins/lisa/skills/git-commit-and-submit-pr/SKILL.md +0 -8
  97. package/plugins/lisa/skills/git-commit-submit-pr-and-verify/SKILL.md +0 -7
  98. package/plugins/lisa/skills/git-commit-submit-pr-deploy-and-verify/SKILL.md +0 -7
  99. package/plugins/lisa/skills/jira-fix/SKILL.md +0 -16
  100. package/plugins/lisa/skills/jira-implement/SKILL.md +0 -18
  101. package/plugins/lisa/skills/sonarqube-check/SKILL.md +0 -11
  102. package/plugins/lisa/skills/sonarqube-fix/SKILL.md +0 -8
  103. package/plugins/lisa/skills/tasks-load/SKILL.md +0 -88
  104. package/plugins/lisa/skills/tasks-sync/SKILL.md +0 -108
  105. package/plugins/src/base/agents/agent-architect.md +0 -310
  106. package/plugins/src/base/agents/hooks-expert.md +0 -74
  107. package/plugins/src/base/agents/implementer.md +0 -54
  108. package/plugins/src/base/agents/slash-command-architect.md +0 -87
  109. package/plugins/src/base/agents/web-search-researcher.md +0 -112
  110. package/plugins/src/base/commands/git/commit-and-submit-pr.md +0 -7
  111. package/plugins/src/base/commands/git/commit-submit-pr-and-verify.md +0 -7
  112. package/plugins/src/base/commands/git/commit-submit-pr-deploy-and-verify.md +0 -7
  113. package/plugins/src/base/commands/jira/fix.md +0 -7
  114. package/plugins/src/base/commands/jira/implement.md +0 -7
  115. package/plugins/src/base/commands/sonarqube/check.md +0 -6
  116. package/plugins/src/base/commands/sonarqube/fix.md +0 -6
  117. package/plugins/src/base/commands/tasks/load.md +0 -7
  118. package/plugins/src/base/commands/tasks/sync.md +0 -7
  119. package/plugins/src/base/skills/git-commit-and-submit-pr/SKILL.md +0 -8
  120. package/plugins/src/base/skills/git-commit-submit-pr-and-verify/SKILL.md +0 -7
  121. package/plugins/src/base/skills/git-commit-submit-pr-deploy-and-verify/SKILL.md +0 -7
  122. package/plugins/src/base/skills/jira-fix/SKILL.md +0 -16
  123. package/plugins/src/base/skills/jira-implement/SKILL.md +0 -18
  124. package/plugins/src/base/skills/sonarqube-check/SKILL.md +0 -11
  125. package/plugins/src/base/skills/sonarqube-fix/SKILL.md +0 -8
  126. package/plugins/src/base/skills/tasks-load/SKILL.md +0 -88
  127. package/plugins/src/base/skills/tasks-sync/SKILL.md +0 -108
@@ -46,549 +46,38 @@ Agents must label every task outcome with exactly one of these:
46
46
 
47
47
  ---
48
48
 
49
- ## Verification Types Quick Reference
49
+ ## Verification Types
50
50
 
51
- | Type | Use Case | Example |
52
- |------|----------|---------|
53
- | `test` | Unit/integration tests | `npm test -- path/to/file.spec.ts` |
54
- | `api-test` | API endpoints | `curl -s localhost:3000/api/endpoint` |
55
- | `test-coverage` | Coverage thresholds | `npm run test:cov -- --collectCoverageFrom=...` |
56
- | `ui-recording` | UI changes | Start local server; recorded session with Playwright/Maestro/Chrome Browser |
57
- | `documentation` | Doc changes | `grep "expected" path/to/doc.md` |
58
- | `manual-check` | Config/setup | `cat config.json \| jq '.setting'` |
51
+ Every change requires one or more verification types. Classify the change first, then verify each applicable type.
59
52
 
60
- ---
61
-
62
- ## Verification Surfaces
63
-
64
- Agents may only self-verify when the required verification surfaces are available.
65
-
66
- Verification surfaces include:
67
-
68
- ### Action Surfaces
69
-
70
- - Build and test execution
71
- - Deployment and rollback
72
- - Infrastructure apply and drift detection
73
- - Feature flag toggling
74
- - Data seeding and state reset
75
- - Load generation and fault injection
76
-
77
- ### Observation Surfaces
78
-
79
- - Application logs (local and remote)
80
- - Metrics (latency, errors, saturation, scaling)
81
- - Traces and correlation IDs
82
- - Database queries and schema inspection
83
- - Browser and device automation
84
- - Queue depth and consumer execution visibility
85
- - CDN headers and edge behavior
86
- - Artifact capture (video, screenshots, traces, diffs)
87
-
88
- If a required surface is unavailable, agents must follow the Escalation Protocol.
89
-
90
- ---
91
-
92
- ## Tooling Surfaces
93
-
94
- Many verification steps require tools that may not be available by default.
95
-
96
- Tooling surfaces include:
97
-
98
- - Required CLIs (cloud, DB, deployment, observability)
99
- - Required MCP servers and their capabilities
100
- - Required internal APIs (feature flags, auth, metrics, logs, CI)
101
- - Required credentials and scopes for those tools
102
-
103
- If required tooling is missing, misconfigured, blocked, undocumented, or inaccessible, agents must treat this as a verification blocker and escalate before proceeding.
104
-
105
- ---
106
-
107
- ## Proof Artifacts Requirements
108
-
109
- Every completed task must include proof artifacts stored in the PR description or linked output location.
110
-
111
- Proof artifacts must be specific and re-checkable.
112
-
113
- Examples of acceptable proof:
114
-
115
- - Playwright video and screenshots for UI work
116
- - HTTP trace and response payload for API work
117
- - Before/after DB query outputs for data work
118
- - Metrics snapshots for autoscaling
119
- - Log excerpts with correlation IDs for behavior validation
120
- - Load test results showing threshold behavior
121
-
122
- Statements like "works" or "should work" are not acceptable.
123
-
124
- ---
125
-
126
- ## Standard Workflow
127
-
128
- Agents must follow this sequence unless explicitly instructed otherwise:
129
-
130
- 1. Restate goal in one sentence.
131
- 2. Identify the end user of the change.
132
- 3. Choose the verification method that matches the end user.
133
- 4. List required verification surfaces and required tooling surfaces.
134
- 5. Confirm required surfaces are available.
135
- 6. Implement the change.
136
- 7. Run verification from the end-user perspective.
137
- 8. Collect proof artifacts.
138
- 9. Summarize what changed, what was verified, and remaining risk.
139
- 10. Label the result with a verification level.
140
-
141
- ---
142
-
143
- ## Task Completion Rules
144
-
145
- 1. **Run the proof command** before marking any task complete
146
- 2. **Compare output** to expected result
147
- 3. **If verification fails**: Fix and re-run, don't mark complete
148
- 4. **If verification blocked** (missing Docker, services, etc.): Mark as blocked, not complete
149
- 5. **Must not be dependent on CI/CD** if necessary, you may use local deploy methods found in `package.json`, but the verification methods must be listed in the pull request and therefore cannot be dependent on CI/CD completing
150
-
151
- ---
152
-
153
- ## Self-Correction Loop
154
-
155
- Verification is not a one-shot activity. Agents operate within a three-layer self-correction architecture that catches errors at increasing scope. Each layer is enforced automatically — agents do not need to invoke them manually.
156
-
157
- ### Layer 1 — Inline Correction (PostToolUse)
158
-
159
- **Trigger:** Every `Write` or `Edit` tool call.
160
-
161
- **Pipeline:** prettier → ast-grep → eslint (with `--fix --quiet --cache`).
162
-
163
- Each hook runs on the single file just written. Errors are reported immediately so the agent can fix them before writing more files. This prevents error accumulation across multiple files.
164
-
165
- - **prettier** formats the file (non-blocking — always exits 0).
166
- - **ast-grep** scans for structural anti-patterns (blocking — exits 1 on violations).
167
- - **eslint** auto-fixes what it can, then blocks on unfixable errors (exits 2 on remaining errors).
168
-
169
- **Agent responsibility:** When a PostToolUse hook blocks, fix the reported errors in the same file before proceeding to other files. Do not accumulate errors.
170
-
171
- ### Layer 2 — Commit-Time Enforcement (husky pre-commit)
172
-
173
- **Trigger:** Every `git commit`.
174
-
175
- **Checks:** lint-staged (eslint + prettier on staged files), gitleaks (secret detection), commitlint (conventional commit format), branch protection (no direct commits to environment branches).
176
-
177
- This layer catches errors that span multiple files or involve staged-but-not-yet-linted changes. It runs automatically via husky and cannot be bypassed (`--no-verify` is prohibited).
178
-
179
- ### Layer 3 — Push-Time Enforcement (husky pre-push)
180
-
181
- **Trigger:** Every `git push`.
182
-
183
- **Checks:** Full test suite with coverage thresholds, typecheck, security audit, knip (unused exports), integration tests.
184
-
185
- This layer validates the complete changeset against the project's quality gates. It is the last automated checkpoint before code reaches the remote.
186
-
187
- **Handling Security Audit Failures:** If `git push` fails because the pre-push hook reports security vulnerabilities (GHSA advisories), follow these steps in order:
188
-
189
- 1. Note the GHSA ID(s), affected package(s), and advisory URL from the error output.
190
- 2. Check the advisory URL to determine if a patched version of the vulnerable package exists.
191
- 3. If a patched version exists, add a resolution/override in `package.json` to force the patched version (add to both `"resolutions"` and `"overrides"` sections), then run the package manager install command to regenerate the lockfile, commit the changes, and retry the push.
192
- 4. If no patched version exists and the vulnerability is safe for this project (e.g., transitive dependency with no untrusted input, devDeps only, or build tool only), add an exclusion entry to `audit.ignore.local.json` with the format: `{"id": "GHSA-xxx", "package": "pkg-name", "reason": "why this is safe for this project"}`, then commit and retry the push.
193
- 5. Never use `--no-verify` to bypass the security audit.
194
-
195
- ### Regeneration Over Patching
196
-
197
- When the root cause of errors is architectural (wrong abstraction, incorrect data flow, fundamentally broken approach), delete and regenerate rather than incrementally patching. Incremental patches on a broken foundation accumulate tech debt faster than the self-correction loop can catch it.
198
-
199
- Signs that regeneration is needed:
200
- - The same file has been edited 3+ times in the same loop without converging
201
- - Fixing one error introduces another in the same file
202
- - The fix requires disabling a lint rule or adding a type assertion
203
-
204
- ---
205
-
206
- ## End-User Verification Patterns
207
-
208
- Agents must choose the pattern that fits the task.
209
-
210
- ### UI and UX Feature or Bug
211
-
212
- End user: human in browser or native device.
213
-
214
- Required proof:
215
-
216
- - Automated session recording (Playwright preferred)
217
- - Screenshots of key states
218
- - Network calls and console errors captured when relevant
219
-
220
- #### Example: UI Feature (Playwright browser verification)
221
-
222
- **Task**: Add logout button to the dashboard header
223
-
224
- **Wrong verification**: "I added the button component to the header"
225
-
226
- **Correct verification** -- use Playwright to interact with the app as a real user:
227
-
228
- ```bash
229
- npx playwright test --headed -g "logout button" 2>&1 | tail -20
230
- ```
231
-
232
- Or for ad-hoc verification without a test file, use the Playwright CLI browser tools or `browser_run_code`:
233
-
234
- ```javascript
235
- async (page) => {
236
- await page.goto('http://localhost:3000/dashboard');
237
- const logoutButton = page.getByRole('button', { name: 'Logout' });
238
- await logoutButton.waitFor({ state: 'visible' });
239
- await logoutButton.click();
240
- await page.waitForURL('**/login');
241
- return { url: page.url(), title: await page.title() };
242
- }
243
- ```
244
-
245
- **Expected**: Browser navigates to `/login` after clicking the logout button
246
-
247
- #### Example: UI Visual/Behavioral (Screenshot comparison)
248
-
249
- **Task**: Fix mobile nav menu not closing after link click
250
-
251
- **Wrong verification**: "I added an onClick handler that closes the menu"
252
-
253
- **Correct verification** -- open a browser and perform the exact user action:
254
-
255
- ```javascript
256
- async (page) => {
257
- await page.setViewportSize({ width: 375, height: 812 });
258
- await page.goto('http://localhost:3000');
259
- await page.getByRole('button', { name: 'Menu' }).click();
260
- await page.getByRole('link', { name: 'About' }).click();
261
- const menu = page.locator('[data-testid="mobile-nav"]');
262
- const isVisible = await menu.isVisible();
263
- return { menuVisibleAfterClick: isVisible, url: page.url() };
264
- }
265
- ```
266
-
267
- **Expected**: `menuVisibleAfterClick: false`, url contains `/about`
268
-
269
- ### API, GraphQL, or RPC Change
270
-
271
- End user: API client.
272
-
273
- Required proof:
274
-
275
- - Curl or a minimal script checked into the repo or attached to PR
276
- - Response payload showing schema and expected data
277
- - Negative case if applicable (auth failure, validation error)
278
-
279
- #### Example: API Endpoint (E2E with curl)
280
-
281
- **Task**: Add health check endpoint
282
-
283
- **Wrong verification**: "I added the route handler"
284
-
285
- **Correct verification**:
286
-
287
- ```bash
288
- curl -s http://localhost:3000/health | jq '.status'
289
- ```
290
-
291
- **Expected**: `"ok"`
292
-
293
- #### Example: API Workflow (Multi-step E2E)
294
-
295
- **Task**: Add user registration endpoint
296
-
297
- **Wrong verification**: "The route handler creates a user record"
298
-
299
- **Correct verification** -- write a small client script that exercises the full flow:
300
-
301
- ```bash
302
- # Create user
303
- RESPONSE=$(curl -s -w "\n%{http_code}" -X POST http://localhost:3000/api/users \
304
- -H "Content-Type: application/json" \
305
- -d '{"email":"test@example.com","name":"Test User"}')
306
- HTTP_CODE=$(echo "$RESPONSE" | tail -1)
307
- BODY=$(echo "$RESPONSE" | sed '$d')
308
- echo "Create status: $HTTP_CODE"
309
- echo "Create body: $BODY"
53
+ ### Always Required
310
54
 
311
- # Verify the user exists by fetching it back
312
- USER_ID=$(echo "$BODY" | jq -r '.id')
313
- curl -s "http://localhost:3000/api/users/$USER_ID" | jq '.email'
314
- ```
55
+ | Type | What to prove | Acceptable proof |
56
+ |------|---------------|------------------|
57
+ | **Test** | Unit and integration tests pass for all changed code paths | Test runner output showing all relevant tests green with no skips |
58
+ | **Type Safety** | No type errors introduced by the change | Type checker exits clean on the full project |
59
+ | **Lint/Format** | Code meets project style and quality rules | Linter and formatter exit clean on changed files |
315
60
 
316
- **Expected**: Create returns `201`, fetch returns `"test@example.com"`
61
+ ### Conditional
317
62
 
318
- ### Authentication and Authorization
319
-
320
- End user: user with specific identity and role.
321
-
322
- Required proof:
323
-
324
- - Verification across at least two roles (allowed and denied)
325
- - Explicit status codes or UI outcomes
326
- - Artifact showing enforcement (screenshots or HTTP traces)
327
-
328
- #### Example: API with Authentication (E2E flow)
329
-
330
- **Task**: Add rate limiting to the search endpoint
331
-
332
- **Wrong verification**: "I added the rate limiter middleware"
333
-
334
- **Correct verification** -- actually hit the rate limit:
335
-
336
- ```bash
337
- # Fire requests until rate limited
338
- for i in $(seq 1 25); do
339
- CODE=$(curl -s -o /dev/null -w "%{http_code}" \
340
- -H "Authorization: Bearer $TEST_TOKEN" \
341
- "http://localhost:3000/api/search?q=test")
342
- echo "Request $i: $CODE"
343
- done | tail -5
344
- ```
345
-
346
- **Expected**: First requests return `200`, later requests return `429`
347
-
348
- ### Database Migration or Backfill
349
-
350
- End user: application and operators.
351
-
352
- Required proof:
353
-
354
- - Schema verification
355
- - Backfill verification with before/after counts
356
- - Rollback plan validated when possible
357
-
358
- #### Example: Database Migration
359
-
360
- **Task**: Add `last_login_at` column to users table
361
-
362
- **Wrong verification**: "The migration file creates the column"
363
-
364
- **Correct verification**:
365
-
366
- ```bash
367
- # Run migration
368
- npm run migration:run
369
-
370
- # Verify column exists and has correct type
371
- psql "$DATABASE_URL" -c "\d users" | grep last_login_at
372
- ```
373
-
374
- **Expected**: `last_login_at | timestamp with time zone |`
375
-
376
- ### Background Jobs, Queues, Events
377
-
378
- End user: system operator and downstream consumers.
379
-
380
- Required proof:
381
-
382
- - Evidence of enqueue, processing, and final state change
383
- - Queue depth and worker logs
384
- - Idempotency check when relevant
385
-
386
- ### Caching and Performance
387
-
388
- End user: API consumer or UI user.
389
-
390
- Required proof:
391
-
392
- - Measured latency or throughput before and after
393
- - Cache hit evidence (logs, metrics, key inspection)
394
- - TTL behavior where relevant
395
-
396
- ### Infrastructure and Autoscaling
397
-
398
- End user: operator and workload.
399
-
400
- Required proof:
401
-
402
- - Load simulation that triggers scaling or behavior change
403
- - Metrics showing scale-out and scale-in
404
- - Evidence of stability (error rates, latency) during the event
405
-
406
- ### Security Fixes
407
-
408
- End user: attacker and defender.
409
-
410
- Required proof:
411
-
412
- - Reproduction of exploit pre-fix
413
- - Demonstration of exploit failure post-fix
414
- - Evidence of safe handling (sanitization, rejection, rate limit)
63
+ | Type | When it applies | What to prove | Acceptable proof |
64
+ |------|----------------|---------------|------------------|
65
+ | **UI** | Change affects user-visible interface | Feature renders correctly and interactions work as expected | Automated session recording or screenshots showing correct states; for cross-platform changes, evidence from each platform or explicit gap documentation |
66
+ | **API** | Change affects HTTP/GraphQL/RPC endpoints | Endpoint returns correct status, headers, and body for success and error cases | Request/response capture showing schema and data match expectations |
67
+ | **Database** | Change involves schema, migrations, or queries | Schema is correct after migration; data integrity is maintained | Query output showing expected schema and data state |
68
+ | **Auth** | Change affects authentication or authorization | Correct access for allowed roles; rejection for disallowed roles | Request traces showing enforcement across at least two roles |
69
+ | **Security** | Change involves input handling, secrets, or attack surfaces | Exploit is prevented; safe handling is enforced | Reproduction of attack pre-fix failing post-fix, or evidence of sanitization/rejection |
70
+ | **Performance** | Change claims performance improvement or affects hot paths | Measurable improvement in latency, throughput, or resource usage | Before/after benchmarks with methodology documented |
71
+ | **Infrastructure** | Change affects deployment, scaling, or cloud resources | Resources are created/updated correctly; system is stable | Infrastructure state output showing expected configuration; stability metrics during transition |
72
+ | **Observability** | Change affects logging, metrics, or tracing | Events are emitted with correct structure and correlation | Log or metric output showing expected entries with correlation IDs |
73
+ | **Background Jobs** | Change affects queues, workers, or scheduled tasks | Job enqueues, processes, and reaches terminal state correctly | Evidence of enqueue, processing, and final state; idempotency check when relevant |
74
+ | **Configuration** | Change affects config files, feature flags, or environment variables | Configuration is loaded and applied correctly at runtime | Application output showing the configuration taking effect |
75
+ | **Documentation** | Change affects documentation content or structure | Documentation is accurate and matches implementation | Content inspection confirming accuracy against actual behavior |
76
+ | **Cache** | Change affects caching behavior or invalidation | Cache hits, misses, and invalidation work as expected | Evidence of cache behavior (hit/miss logs, TTL verification, key inspection) |
77
+ | **Email/Notification** | Change affects outbound messages | Message is sent with correct content to correct recipient | Captured message content or delivery log showing expected output |
78
+ | **PR** | Shipping code (always applies when opening a PR) | PR includes goal summary, verification level, proof artifacts, and reproduction steps | PR description containing all required sections |
79
+ | **Deploy** | Shipping code to an environment | Deployment completes and application is healthy in the target environment | Deployment output and health check evidence from the target environment |
415
80
 
416
81
  ---
417
82
 
418
- ## Escalation Protocol
419
-
420
- Agents must escalate when verification is blocked, ambiguous, or requires tools that are missing or inaccessible.
421
-
422
- Common blockers:
423
-
424
- - VPN required
425
- - MFA, OTP, SMS codes
426
- - Hardware token requirement
427
- - Missing CLI, MCP server, or internal API required for verification
428
- - Missing documentation on how to access required tooling
429
- - Production-only access gates
430
- - Compliance restrictions
431
-
432
- When blocked, agents must do the following:
433
-
434
- 1. Identify the exact boundary preventing verification.
435
- 2. Identify which verification surfaces and tooling surfaces are missing.
436
- 3. Attempt safe fallback verification (local, staging, mocks) and label it clearly.
437
- 4. Declare verification level as PARTIALLY VERIFIED or UNVERIFIED.
438
- 5. Produce a Human Action Packet.
439
- 6. Pause until explicit human confirmation or tooling is provided.
440
-
441
- Agents must never proceed past an unverified boundary without surfacing it to the human overseer.
442
-
443
- ### Human Action Packet Format
444
-
445
- Agents must provide:
446
-
447
- - What is blocked and why
448
- - What tool or access is missing
449
- - Exactly what the human must do
450
- - How to confirm completion
451
- - What the agent will do immediately after
452
- - What artifacts the agent will produce after access is restored
453
-
454
- Example:
455
-
456
- - Blocked: Cannot reach DB, VPN required.
457
- - Missing: `psql` access to `db.host` and internal logs viewer MCP.
458
- - Human steps: Connect VPN "CorpVPN", confirm access by running `nc -vz db.host 5432`, provide MCP endpoint or credentials.
459
- - Confirmation: Reply "VPN ACTIVE" and "MCP READY".
460
- - Next: Agent runs migration verification script and captures schema diff and query outputs.
461
-
462
- Agents must pause until explicit human confirmation.
463
-
464
- Agents must never bypass security controls to proceed.
465
-
466
- ---
467
-
468
- ## Environments and Safety Rules
469
-
470
- ### Allowed Environments
471
-
472
- - Local development
473
- - Preview environments
474
- - Staging
475
- - Production read-only, only if explicitly approved and configured for safe access
476
-
477
- ### Prohibited Actions Without Human Approval
478
-
479
- - Writing to production data stores
480
- - Disabling MFA or security policies
481
- - Modifying IAM roles or firewall rules beyond scoped change requests
482
- - Running destructive migrations
483
- - Triggering external billing or payment flows
484
-
485
- If an operation is irreversible or risky, escalate first.
486
-
487
- ---
488
-
489
- ## Repository Conventions
490
-
491
- ### Code Style and Structure
492
-
493
- - Follow existing patterns in the codebase.
494
- - Do not introduce new frameworks or architectural patterns without justification in the PR.
495
- - Prefer small, reviewable changes with clear commit messages.
496
-
497
- ### Tests
498
-
499
- - Run the fastest relevant test suite locally.
500
- - Expand to integration or end-to-end tests based on impact.
501
- - If tests are flaky or slow, document it and propose a follow-up.
502
-
503
- ### Logging and Observability
504
-
505
- - Include correlation IDs where supported.
506
- - Prefer structured logs over ad hoc strings.
507
- - For behavior changes, include log evidence in proof artifacts.
508
-
509
- ---
510
-
511
- ## Artifact Storage and PR Requirements
512
-
513
- Every PR must include:
514
-
515
- - Goal summary
516
- - Verification level
517
- - Proof artifacts links or embedded outputs
518
- - How to reproduce verification locally
519
- - Known limitations and follow-up items
520
-
521
- Preferred artifact locations:
522
-
523
- - PR description
524
- - Repo-local scripts under `scripts/verification/`
525
- - CI artifacts linked from the build
526
-
527
- ---
528
-
529
- ## Quick Commands
530
-
531
- These commands are consistent across all Lisa-managed projects. Stack-specific commands (Expo, NestJS, CDK) are documented in their respective `.claude/rules/` files.
532
-
533
- ### Local
534
-
535
- - Install: `bun install`
536
- - Run app: `bun run start:local` (Expo: dev server; NestJS: serverless offline)
537
- - Run unit tests: `bun run test:unit`
538
- - Run integration tests: `bun run test:integration`
539
- - Run all tests: `bun run test`
540
- - Run tests with coverage: `bun run test:cov`
541
- - Lint: `bun run lint`
542
- - Format check: `bun run format:check`
543
- - Format fix: `bun run format`
544
- - Type check: `bun run typecheck`
545
-
546
- ### UI Verification (Expo)
547
-
548
- - Playwright tests (web): `bun run playwright:test`
549
- - Playwright interactive: `bun run playwright:test:ui`
550
- - Maestro tests (native): `bun run maestro:test`
551
- - Maestro smoke tests: `bun run maestro:test:smoke`
552
- - Maestro studio: `bun run maestro:studio`
553
- - Ad-hoc browser verification: Use Playwright MCP tools (`browser_snapshot`, `browser_console_messages`, `browser_network_requests`)
554
-
555
- ### API Verification (NestJS)
556
-
557
- - Start local server: `bun run start:local`
558
- - GraphQL endpoint (local): `http://localhost:3000/graphql`
559
- - Health check: `curl -s http://localhost:3000/graphql -H 'Content-Type: application/json' -d '{"query":"{ healthCheck }"}'`
560
-
561
- ### Deployment
562
-
563
- - Expo OTA update (fast, JS-only): `bun run eas:publish:<env>`
564
- - Expo full build (native changes): `bun run eas:deploy:<env>`
565
- - NestJS deploy: `bun run deploy:<env>`
566
- - NestJS deploy single function: `FUNCTION_NAME=<name> bun run deploy:function:<env>`
567
- - Environments: `dev`, `staging`, `production`
568
-
569
- ### Observability
570
-
571
- - Sentry issues: Use `search_issues` MCP tool (Sentry plugin)
572
- - Sentry issue details: Use `get_issue_details` MCP tool
573
- - Sentry root cause analysis: Use `analyze_issue_with_seer` MCP tool
574
- - Sentry event search: Use `search_events` MCP tool
575
- - Sentry trace lookup: Use `get_trace_details` MCP tool
576
- - Browser console logs: Use `browser_console_messages` MCP tool (Playwright plugin)
577
- - Browser network requests: Use `browser_network_requests` MCP tool (Playwright plugin)
578
- - Backend logs (local): Check terminal output from `bun run start:local`
579
- - Backend logs (remote): Check companion backend repo's CLAUDE.md for CloudWatch/log commands
580
-
581
- ---
582
-
583
- ## Definition of Done
584
-
585
- A task is done only when:
586
-
587
- - End user is identified
588
- - Verification pattern is applied
589
- - Required verification surfaces and tooling surfaces are used or explicitly unavailable
590
- - Proof artifacts are captured
591
- - Verification level is declared
592
- - Risks and gaps are documented
593
-
594
- If any of these are missing, the work is not complete.
83
+ For the full verification lifecycle (classify, check tooling, plan, execute, loop), surfaces, escalation protocol, and proof artifact requirements, see the `verification-lifecycle` skill loaded by the `verification-specialist` agent.
package/package.json CHANGED
@@ -74,7 +74,7 @@
74
74
  "flatted": "^3.4.2"
75
75
  },
76
76
  "name": "@codyswann/lisa",
77
- "version": "1.67.3",
77
+ "version": "1.68.0",
78
78
  "description": "Claude Code governance framework that applies guardrails, guidance, and automated enforcement to projects",
79
79
  "main": "dist/index.js",
80
80
  "exports": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa",
3
- "version": "1.67.3",
3
+ "version": "1.68.0",
4
4
  "description": "Universal governance — agents, skills, commands, hooks, and rules for all projects",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -2,21 +2,16 @@
2
2
  name: architecture-specialist
3
3
  description: Architecture specialist agent. Designs implementation approaches, traces data flow, identifies files to modify, maps dependencies, finds reusable code, evaluates design patterns, and flags breaking changes.
4
4
  tools: Read, Grep, Glob, Bash
5
+ skills:
6
+ - codebase-research
7
+ - task-decomposition
8
+ - epic-triage
5
9
  ---
6
10
 
7
11
  # Architecture Specialist Agent
8
12
 
9
13
  You are a technical architecture specialist who designs implementation approaches and evaluates structural impact of code changes.
10
14
 
11
- ## Analysis Process
12
-
13
- 1. **Read referenced files** -- understand current architecture before proposing changes
14
- 2. **Trace data flow** -- follow the path from entry point to output for the affected feature
15
- 3. **Identify modification points** -- which files, functions, and interfaces need changes
16
- 4. **Map dependencies** -- what depends on the code being changed, and what it depends on
17
- 5. **Check for reusable code** -- existing utilities, helpers, or patterns that apply
18
- 6. **Evaluate design patterns** -- match the codebase's existing patterns (don't introduce new ones without reason)
19
-
20
15
  ## Output Format
21
16
 
22
17
  Structure your findings as:
@@ -0,0 +1,40 @@
1
+ ---
2
+ name: bug-fixer
3
+ description: Bug fix agent. Reproduces bugs as failing tests, implements fixes via TDD, and verifies the fix resolves the issue without introducing regressions.
4
+ tools: Read, Write, Edit, Bash, Grep, Glob
5
+ skills:
6
+ - bug-triage
7
+ - tdd-implementation
8
+ - jsdoc-best-practices
9
+ ---
10
+
11
+ # Bug Fixer Agent
12
+
13
+ You are a bug fix specialist. Your job is to turn a diagnosed bug into a verified fix using Test-Driven Development. The reproduction scenario becomes your failing test.
14
+
15
+ ## Prerequisites
16
+
17
+ You receive a diagnosed bug from the Fix flow with:
18
+ - **Root cause** — what is causing the bug and where (file:line)
19
+ - **Reproduction** — how to trigger the bug reliably
20
+ - **Test strategy** — what regression tests to write (from `test-specialist`)
21
+
22
+ If any of these are missing, ask the team for them before proceeding.
23
+
24
+ ## Workflow
25
+
26
+ 1. **Write the failing test** — translate the reproduction scenario into a test that captures the bug. This is your RED phase. The test must fail for the right reason (the bug), not for an unrelated reason.
27
+ 2. **Implement the fix** — write the minimum code to make the test pass. This is your GREEN phase. Do not refactor yet.
28
+ 3. **Refactor** — clean up the fix while keeping the test green. Ensure the fix follows existing patterns and coding philosophy.
29
+ 4. **Run full verification** — run the proof command to confirm the fix. Check for regressions by running related tests.
30
+ 5. **Update documentation** — add/update JSDoc preambles explaining the "why" behind the fix.
31
+ 6. **Commit atomically** — use the `/git-commit` skill for a conventional commit.
32
+
33
+ ## Rules
34
+
35
+ - The reproduction MUST become a test — never fix a bug without a regression test
36
+ - Fix the root cause, not the symptom — if the root cause is upstream, fix it there
37
+ - Keep the fix minimal — don't refactor surrounding code unless it's part of the bug
38
+ - If the fix requires changing a public API, flag it as a potential breaking change
39
+ - If the fix touches code you don't fully understand, read the git history first
40
+ - Never mark the task complete without running the proof command