@codyswann/lisa 1.47.0 → 1.48.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 (216) hide show
  1. package/all/copy-overwrite/.claude/rules/lisa.md +23 -10
  2. package/all/copy-overwrite/.claude/settings.json +10 -230
  3. package/all/deletions.json +67 -1
  4. package/cdk/copy-overwrite/.claude/settings.json +80 -0
  5. package/cdk/create-only/.github/workflows/ci.yml +1 -1
  6. package/cdk/create-only/.github/workflows/deploy.yml +1 -1
  7. package/dist/core/lisa.d.ts +14 -0
  8. package/dist/core/lisa.d.ts.map +1 -1
  9. package/dist/core/lisa.js +47 -0
  10. package/dist/core/lisa.js.map +1 -1
  11. package/expo/copy-overwrite/.claude/settings.json +80 -0
  12. package/expo/copy-overwrite/eslint.expo.ts +2 -2
  13. package/expo/create-only/.github/workflows/ci.yml +1 -1
  14. package/expo/create-only/.github/workflows/deploy.yml +1 -1
  15. package/expo/deletions.json +33 -0
  16. package/expo/package-lisa/package.lisa.json +2 -2
  17. package/nestjs/copy-overwrite/.claude/settings.json +80 -0
  18. package/nestjs/create-only/.github/workflows/ci.yml +1 -1
  19. package/nestjs/create-only/.github/workflows/deploy.yml +1 -1
  20. package/nestjs/deletions.json +8 -0
  21. package/package.json +8 -4
  22. package/rails/copy-overwrite/.claude/settings.json +80 -0
  23. package/rails/create-only/.github/workflows/ci.yml +1 -1
  24. package/rails/deletions.json +11 -1
  25. package/typescript/copy-overwrite/.claude/settings.json +13 -231
  26. package/typescript/copy-overwrite/.github/workflows/claude-ci-auto-fix.yml +1 -0
  27. package/typescript/copy-overwrite/.github/workflows/claude-code-review-response.yml +11 -10
  28. package/typescript/copy-overwrite/.github/workflows/claude-deploy-auto-fix.yml +1 -0
  29. package/typescript/copy-overwrite/.github/workflows/claude-nightly-code-complexity.yml +1 -0
  30. package/typescript/copy-overwrite/.github/workflows/claude-nightly-test-coverage.yml +1 -0
  31. package/typescript/copy-overwrite/.github/workflows/claude-nightly-test-improvement.yml +2 -0
  32. package/typescript/copy-overwrite/.github/workflows/claude.yml +1 -0
  33. package/typescript/copy-overwrite/eslint.typescript.ts +1 -1
  34. package/typescript/create-only/.github/workflows/ci.yml +1 -1
  35. package/typescript/deletions.json +12 -1
  36. package/typescript/package-lisa/package.lisa.json +1 -1
  37. package/all/copy-overwrite/.claude/agents/agent-architect.md +0 -310
  38. package/all/copy-overwrite/.claude/agents/architecture-specialist.md +0 -53
  39. package/all/copy-overwrite/.claude/agents/debug-specialist.md +0 -204
  40. package/all/copy-overwrite/.claude/agents/git-history-analyzer.md +0 -183
  41. package/all/copy-overwrite/.claude/agents/hooks-expert.md +0 -74
  42. package/all/copy-overwrite/.claude/agents/implementer.md +0 -54
  43. package/all/copy-overwrite/.claude/agents/learner.md +0 -44
  44. package/all/copy-overwrite/.claude/agents/performance-specialist.md +0 -95
  45. package/all/copy-overwrite/.claude/agents/product-specialist.md +0 -72
  46. package/all/copy-overwrite/.claude/agents/quality-specialist.md +0 -55
  47. package/all/copy-overwrite/.claude/agents/security-specialist.md +0 -58
  48. package/all/copy-overwrite/.claude/agents/skill-evaluator.md +0 -246
  49. package/all/copy-overwrite/.claude/agents/slash-command-architect.md +0 -87
  50. package/all/copy-overwrite/.claude/agents/test-specialist.md +0 -64
  51. package/all/copy-overwrite/.claude/agents/verification-specialist.md +0 -189
  52. package/all/copy-overwrite/.claude/agents/web-search-researcher.md +0 -112
  53. package/all/copy-overwrite/.claude/commands/git/commit-and-submit-pr.md +0 -7
  54. package/all/copy-overwrite/.claude/commands/git/commit-submit-pr-and-verify.md +0 -7
  55. package/all/copy-overwrite/.claude/commands/git/commit-submit-pr-deploy-and-verify.md +0 -7
  56. package/all/copy-overwrite/.claude/commands/git/commit.md +0 -7
  57. package/all/copy-overwrite/.claude/commands/git/prune.md +0 -6
  58. package/all/copy-overwrite/.claude/commands/git/submit-pr.md +0 -7
  59. package/all/copy-overwrite/.claude/commands/jira/create.md +0 -7
  60. package/all/copy-overwrite/.claude/commands/jira/sync.md +0 -7
  61. package/all/copy-overwrite/.claude/commands/jira/verify.md +0 -7
  62. package/all/copy-overwrite/.claude/commands/lisa/review-implementation.md +0 -7
  63. package/all/copy-overwrite/.claude/commands/plan/add-test-coverage.md +0 -7
  64. package/all/copy-overwrite/.claude/commands/plan/create.md +0 -6
  65. package/all/copy-overwrite/.claude/commands/plan/execute.md +0 -7
  66. package/all/copy-overwrite/.claude/commands/plan/fix-linter-error.md +0 -7
  67. package/all/copy-overwrite/.claude/commands/plan/local-code-review.md +0 -6
  68. package/all/copy-overwrite/.claude/commands/plan/lower-code-complexity.md +0 -6
  69. package/all/copy-overwrite/.claude/commands/plan/reduce-max-lines-per-function.md +0 -7
  70. package/all/copy-overwrite/.claude/commands/plan/reduce-max-lines.md +0 -7
  71. package/all/copy-overwrite/.claude/commands/pull-request/review.md +0 -7
  72. package/all/copy-overwrite/.claude/commands/security/zap-scan.md +0 -6
  73. package/all/copy-overwrite/.claude/commands/sonarqube/check.md +0 -6
  74. package/all/copy-overwrite/.claude/commands/sonarqube/fix.md +0 -6
  75. package/all/copy-overwrite/.claude/commands/tasks/load.md +0 -7
  76. package/all/copy-overwrite/.claude/commands/tasks/sync.md +0 -7
  77. package/all/copy-overwrite/.claude/hooks/check-tired-boss.sh +0 -61
  78. package/all/copy-overwrite/.claude/hooks/debug-hook.sh +0 -47
  79. package/all/copy-overwrite/.claude/hooks/enforce-plan-rules.sh +0 -15
  80. package/all/copy-overwrite/.claude/hooks/notify-ntfy.sh +0 -183
  81. package/all/copy-overwrite/.claude/hooks/setup-jira-cli.sh +0 -52
  82. package/all/copy-overwrite/.claude/hooks/sync-tasks.sh +0 -107
  83. package/all/copy-overwrite/.claude/hooks/ticket-sync-reminder.sh +0 -23
  84. package/all/copy-overwrite/.claude/hooks/track-plan-sessions.sh +0 -164
  85. package/all/copy-overwrite/.claude/rules/coding-philosophy.md +0 -428
  86. package/all/copy-overwrite/.claude/rules/verfication.md +0 -541
  87. package/all/copy-overwrite/.claude/skills/agent-design-best-practices/SKILL.md +0 -219
  88. package/all/copy-overwrite/.claude/skills/git-commit/SKILL.md +0 -48
  89. package/all/copy-overwrite/.claude/skills/git-commit-and-submit-pr/SKILL.md +0 -8
  90. package/all/copy-overwrite/.claude/skills/git-commit-submit-pr-and-verify/SKILL.md +0 -7
  91. package/all/copy-overwrite/.claude/skills/git-commit-submit-pr-deploy-and-verify/SKILL.md +0 -7
  92. package/all/copy-overwrite/.claude/skills/git-prune/SKILL.md +0 -35
  93. package/all/copy-overwrite/.claude/skills/git-submit-pr/SKILL.md +0 -44
  94. package/all/copy-overwrite/.claude/skills/jira-create/SKILL.md +0 -41
  95. package/all/copy-overwrite/.claude/skills/jira-sync/SKILL.md +0 -63
  96. package/all/copy-overwrite/.claude/skills/jira-verify/SKILL.md +0 -29
  97. package/all/copy-overwrite/.claude/skills/lisa-review-implementation/SKILL.md +0 -209
  98. package/all/copy-overwrite/.claude/skills/plan-add-test-coverage/SKILL.md +0 -44
  99. package/all/copy-overwrite/.claude/skills/plan-execute/SKILL.md +0 -89
  100. package/all/copy-overwrite/.claude/skills/plan-fix-linter-error/SKILL.md +0 -45
  101. package/all/copy-overwrite/.claude/skills/plan-local-code-review/SKILL.md +0 -88
  102. package/all/copy-overwrite/.claude/skills/plan-lower-code-complexity/SKILL.md +0 -44
  103. package/all/copy-overwrite/.claude/skills/plan-reduce-max-lines/SKILL.md +0 -45
  104. package/all/copy-overwrite/.claude/skills/plan-reduce-max-lines-per-function/SKILL.md +0 -46
  105. package/all/copy-overwrite/.claude/skills/pull-request-review/SKILL.md +0 -68
  106. package/all/copy-overwrite/.claude/skills/security-zap-scan/SKILL.md +0 -33
  107. package/all/copy-overwrite/.claude/skills/skill-creator/LICENSE.txt +0 -202
  108. package/all/copy-overwrite/.claude/skills/skill-creator/SKILL.md +0 -210
  109. package/all/copy-overwrite/.claude/skills/skill-creator/scripts/__pycache__/quick_validate.cpython-312.pyc +0 -0
  110. package/all/copy-overwrite/.claude/skills/skill-creator/scripts/init_skill.py +0 -305
  111. package/all/copy-overwrite/.claude/skills/skill-creator/scripts/package_skill.py +0 -112
  112. package/all/copy-overwrite/.claude/skills/skill-creator/scripts/quick_validate.py +0 -67
  113. package/all/copy-overwrite/.claude/skills/sonarqube-check/SKILL.md +0 -11
  114. package/all/copy-overwrite/.claude/skills/sonarqube-fix/SKILL.md +0 -8
  115. package/all/copy-overwrite/.claude/skills/tasks-load/SKILL.md +0 -88
  116. package/all/copy-overwrite/.claude/skills/tasks-sync/SKILL.md +0 -108
  117. package/eslint-plugin-code-organization/README.md +0 -149
  118. package/eslint-plugin-code-organization/__tests__/enforce-statement-order.test.js +0 -473
  119. package/eslint-plugin-code-organization/index.js +0 -28
  120. package/eslint-plugin-code-organization/package.json +0 -10
  121. package/eslint-plugin-code-organization/rules/enforce-statement-order.js +0 -162
  122. package/expo/copy-overwrite/.claude/agents/ops-specialist.md +0 -124
  123. package/expo/copy-overwrite/.claude/rules/expo-verification.md +0 -261
  124. package/expo/copy-overwrite/.claude/skills/apollo-client/SKILL.md +0 -238
  125. package/expo/copy-overwrite/.claude/skills/apollo-client/references/mutation-patterns.md +0 -360
  126. package/expo/copy-overwrite/.claude/skills/atomic-design-gluestack/SKILL.md +0 -360
  127. package/expo/copy-overwrite/.claude/skills/atomic-design-gluestack/references/atomic-levels.md +0 -417
  128. package/expo/copy-overwrite/.claude/skills/atomic-design-gluestack/references/folder-structure.md +0 -257
  129. package/expo/copy-overwrite/.claude/skills/atomic-design-gluestack/references/gluestack-mapping.md +0 -233
  130. package/expo/copy-overwrite/.claude/skills/atomic-design-gluestack/scripts/validate_atomic_structure.py +0 -329
  131. package/expo/copy-overwrite/.claude/skills/container-view-pattern/SKILL.md +0 -299
  132. package/expo/copy-overwrite/.claude/skills/container-view-pattern/references/examples.md +0 -749
  133. package/expo/copy-overwrite/.claude/skills/container-view-pattern/references/patterns.md +0 -318
  134. package/expo/copy-overwrite/.claude/skills/container-view-pattern/scripts/create_component.py +0 -200
  135. package/expo/copy-overwrite/.claude/skills/container-view-pattern/scripts/validate_component.py +0 -209
  136. package/expo/copy-overwrite/.claude/skills/cross-platform-compatibility/SKILL.md +0 -268
  137. package/expo/copy-overwrite/.claude/skills/cross-platform-compatibility/references/common-issues.md +0 -619
  138. package/expo/copy-overwrite/.claude/skills/cross-platform-compatibility/references/file-extensions.md +0 -340
  139. package/expo/copy-overwrite/.claude/skills/cross-platform-compatibility/references/platform-api.md +0 -276
  140. package/expo/copy-overwrite/.claude/skills/cross-platform-compatibility/scripts/validate_cross_platform.py +0 -416
  141. package/expo/copy-overwrite/.claude/skills/directory-structure/SKILL.md +0 -202
  142. package/expo/copy-overwrite/.claude/skills/directory-structure/scripts/validate_structure.py +0 -445
  143. package/expo/copy-overwrite/.claude/skills/expo-env-config/SKILL.md +0 -309
  144. package/expo/copy-overwrite/.claude/skills/expo-env-config/references/validation-patterns.md +0 -417
  145. package/expo/copy-overwrite/.claude/skills/expo-router-best-practices/SKILL.md +0 -431
  146. package/expo/copy-overwrite/.claude/skills/expo-router-best-practices/references/official-docs.md +0 -290
  147. package/expo/copy-overwrite/.claude/skills/expo-router-best-practices/scripts/generate-route.py +0 -171
  148. package/expo/copy-overwrite/.claude/skills/gluestack-nativewind/SKILL.md +0 -411
  149. package/expo/copy-overwrite/.claude/skills/gluestack-nativewind/references/color-tokens.md +0 -343
  150. package/expo/copy-overwrite/.claude/skills/gluestack-nativewind/references/component-mapping.md +0 -307
  151. package/expo/copy-overwrite/.claude/skills/gluestack-nativewind/references/spacing-scale.md +0 -300
  152. package/expo/copy-overwrite/.claude/skills/gluestack-nativewind/scripts/validate_styling.py +0 -315
  153. package/expo/copy-overwrite/.claude/skills/local-state/SKILL.md +0 -362
  154. package/expo/copy-overwrite/.claude/skills/local-state/references/async-storage.md +0 -505
  155. package/expo/copy-overwrite/.claude/skills/local-state/references/persistence-patterns.md +0 -711
  156. package/expo/copy-overwrite/.claude/skills/local-state/references/reactive-variables.md +0 -446
  157. package/expo/copy-overwrite/.claude/skills/ops-browser-uat/SKILL.md +0 -124
  158. package/expo/copy-overwrite/.claude/skills/ops-check-logs/SKILL.md +0 -211
  159. package/expo/copy-overwrite/.claude/skills/ops-db-ops/SKILL.md +0 -119
  160. package/expo/copy-overwrite/.claude/skills/ops-deploy/SKILL.md +0 -119
  161. package/expo/copy-overwrite/.claude/skills/ops-monitor-errors/SKILL.md +0 -99
  162. package/expo/copy-overwrite/.claude/skills/ops-performance/SKILL.md +0 -165
  163. package/expo/copy-overwrite/.claude/skills/ops-run-local/SKILL.md +0 -166
  164. package/expo/copy-overwrite/.claude/skills/ops-verify-health/SKILL.md +0 -101
  165. package/expo/copy-overwrite/.claude/skills/owasp-zap/SKILL.md +0 -56
  166. package/expo/copy-overwrite/.claude/skills/playwright-selectors/SKILL.md +0 -223
  167. package/expo/copy-overwrite/.claude/skills/testing-library/SKILL.md +0 -314
  168. package/expo/copy-overwrite/.claude/skills/testing-library/references/async-patterns.md +0 -420
  169. package/expo/copy-overwrite/.claude/skills/testing-library/references/expo-router-testing.md +0 -556
  170. package/expo/copy-overwrite/.claude/skills/testing-library/references/mocking-patterns.md +0 -590
  171. package/expo/copy-overwrite/.claude/skills/testing-library/references/query-priority.md +0 -291
  172. package/expo/copy-overwrite/eslint-plugin-component-structure/README.md +0 -234
  173. package/expo/copy-overwrite/eslint-plugin-component-structure/__tests__/plugin-index.test.js +0 -89
  174. package/expo/copy-overwrite/eslint-plugin-component-structure/__tests__/require-memo-in-view.test.js +0 -201
  175. package/expo/copy-overwrite/eslint-plugin-component-structure/__tests__/single-component-per-file.test.js +0 -294
  176. package/expo/copy-overwrite/eslint-plugin-component-structure/index.js +0 -37
  177. package/expo/copy-overwrite/eslint-plugin-component-structure/package.json +0 -10
  178. package/expo/copy-overwrite/eslint-plugin-component-structure/rules/enforce-component-structure.js +0 -235
  179. package/expo/copy-overwrite/eslint-plugin-component-structure/rules/no-return-in-view.js +0 -96
  180. package/expo/copy-overwrite/eslint-plugin-component-structure/rules/require-memo-in-view.js +0 -183
  181. package/expo/copy-overwrite/eslint-plugin-component-structure/rules/single-component-per-file.js +0 -243
  182. package/expo/copy-overwrite/eslint-plugin-ui-standards/README.md +0 -192
  183. package/expo/copy-overwrite/eslint-plugin-ui-standards/index.js +0 -31
  184. package/expo/copy-overwrite/eslint-plugin-ui-standards/package.json +0 -10
  185. package/expo/copy-overwrite/eslint-plugin-ui-standards/rules/no-classname-outside-ui.js +0 -56
  186. package/expo/copy-overwrite/eslint-plugin-ui-standards/rules/no-direct-rn-imports.js +0 -60
  187. package/nestjs/copy-overwrite/.claude/skills/nestjs-graphql/SKILL.md +0 -176
  188. package/nestjs/copy-overwrite/.claude/skills/nestjs-graphql/references/advanced-features.md +0 -527
  189. package/nestjs/copy-overwrite/.claude/skills/nestjs-graphql/references/project-patterns.md +0 -483
  190. package/nestjs/copy-overwrite/.claude/skills/nestjs-graphql/references/quick-start.md +0 -257
  191. package/nestjs/copy-overwrite/.claude/skills/nestjs-graphql/references/resolvers-mutations.md +0 -413
  192. package/nestjs/copy-overwrite/.claude/skills/nestjs-graphql/references/types-scalars.md +0 -513
  193. package/nestjs/copy-overwrite/.claude/skills/nestjs-rules/SKILL.md +0 -536
  194. package/nestjs/copy-overwrite/.claude/skills/security-zap-scan/SKILL.md +0 -33
  195. package/nestjs/copy-overwrite/.claude/skills/typeorm-patterns/SKILL.md +0 -275
  196. package/nestjs/copy-overwrite/.claude/skills/typeorm-patterns/references/configuration-patterns.md +0 -487
  197. package/nestjs/copy-overwrite/.claude/skills/typeorm-patterns/references/entity-patterns.md +0 -450
  198. package/nestjs/copy-overwrite/.claude/skills/typeorm-patterns/references/observability-patterns.md +0 -536
  199. package/rails/copy-overwrite/.claude/skills/action-controller-best-practices/SKILL.md +0 -374
  200. package/rails/copy-overwrite/.claude/skills/action-view-best-practices/SKILL.md +0 -335
  201. package/rails/copy-overwrite/.claude/skills/active-record-model-best-practices/SKILL.md +0 -166
  202. package/rails/copy-overwrite/.claude/skills/plan-add-test-coverage/SKILL.md +0 -45
  203. package/rails/copy-overwrite/.claude/skills/plan-fix-linter-error/SKILL.md +0 -45
  204. package/rails/copy-overwrite/.claude/skills/plan-lower-code-complexity/SKILL.md +0 -48
  205. package/rails/copy-overwrite/.claude/skills/plan-reduce-max-lines/SKILL.md +0 -46
  206. package/rails/copy-overwrite/.claude/skills/plan-reduce-max-lines-per-function/SKILL.md +0 -46
  207. package/typescript/copy-overwrite/.claude/hooks/format-on-edit.sh +0 -76
  208. package/typescript/copy-overwrite/.claude/hooks/install-pkgs.sh +0 -64
  209. package/typescript/copy-overwrite/.claude/hooks/lint-on-edit.sh +0 -105
  210. package/typescript/copy-overwrite/.claude/hooks/sg-scan-on-edit.sh +0 -68
  211. package/typescript/copy-overwrite/.claude/skills/jsdoc-best-practices/SKILL.md +0 -432
  212. package/typescript/copy-overwrite/eslint-plugin-code-organization/README.md +0 -149
  213. package/typescript/copy-overwrite/eslint-plugin-code-organization/__tests__/enforce-statement-order.test.js +0 -473
  214. package/typescript/copy-overwrite/eslint-plugin-code-organization/index.js +0 -28
  215. package/typescript/copy-overwrite/eslint-plugin-code-organization/package.json +0 -10
  216. package/typescript/copy-overwrite/eslint-plugin-code-organization/rules/enforce-statement-order.js +0 -162
@@ -1,541 +0,0 @@
1
- # Empirical Verification
2
-
3
- This repository supports AI agents as first-class contributors.
4
-
5
- This file is the operational contract that defines how agents plan work, execute changes, verify outcomes, and escalate when blocked.
6
-
7
- If anything here conflicts with other repo docs, treat this file as authoritative for agent behavior.
8
-
9
- ---
10
-
11
- ## Core Principle
12
-
13
- Agents must close the loop between code changes and observable system behavior.
14
-
15
- No agent may claim success without evidence from runtime verification.
16
-
17
- Never assume something works because the code "looks correct." Run a command, observe the output, compare to expected result.
18
-
19
- ---
20
-
21
- ## Roles
22
-
23
- ### Builder Agent
24
-
25
- Implements the change in code and infrastructure.
26
-
27
- ### Verifier Agent
28
-
29
- Acts as the end user (human user, API client, operator, attacker, or system) and produces proof artifacts.
30
-
31
- Verifier Agent must be independent from Builder Agent when possible.
32
-
33
- ### Human Overseer
34
-
35
- Approves risky operations, security boundary crossings, and any work the agents cannot fully verify.
36
-
37
- ---
38
-
39
- ## Verification Levels
40
-
41
- Agents must label every task outcome with exactly one of these:
42
-
43
- - **FULLY VERIFIED**: Verified in the target environment with end-user simulation and captured artifacts.
44
- - **PARTIALLY VERIFIED**: Verified in a lower-fidelity environment or with incomplete surfaces, with explicit gaps documented.
45
- - **UNVERIFIED**: Verification blocked, human action required, no claim of correctness permitted.
46
-
47
- ---
48
-
49
- ## Verification Types Quick Reference
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'` |
59
-
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
- ## End-User Verification Patterns
154
-
155
- Agents must choose the pattern that fits the task.
156
-
157
- ### UI and UX Feature or Bug
158
-
159
- End user: human in browser or native device.
160
-
161
- Required proof:
162
-
163
- - Automated session recording (Playwright preferred)
164
- - Screenshots of key states
165
- - Network calls and console errors captured when relevant
166
-
167
- #### Example: UI Feature (Playwright browser verification)
168
-
169
- **Task**: Add logout button to the dashboard header
170
-
171
- **Wrong verification**: "I added the button component to the header"
172
-
173
- **Correct verification** -- use Playwright to interact with the app as a real user:
174
-
175
- ```bash
176
- npx playwright test --headed -g "logout button" 2>&1 | tail -20
177
- ```
178
-
179
- Or for ad-hoc verification without a test file, use the Playwright CLI browser tools or `browser_run_code`:
180
-
181
- ```javascript
182
- async (page) => {
183
- await page.goto('http://localhost:3000/dashboard');
184
- const logoutButton = page.getByRole('button', { name: 'Logout' });
185
- await logoutButton.waitFor({ state: 'visible' });
186
- await logoutButton.click();
187
- await page.waitForURL('**/login');
188
- return { url: page.url(), title: await page.title() };
189
- }
190
- ```
191
-
192
- **Expected**: Browser navigates to `/login` after clicking the logout button
193
-
194
- #### Example: UI Visual/Behavioral (Screenshot comparison)
195
-
196
- **Task**: Fix mobile nav menu not closing after link click
197
-
198
- **Wrong verification**: "I added an onClick handler that closes the menu"
199
-
200
- **Correct verification** -- open a browser and perform the exact user action:
201
-
202
- ```javascript
203
- async (page) => {
204
- await page.setViewportSize({ width: 375, height: 812 });
205
- await page.goto('http://localhost:3000');
206
- await page.getByRole('button', { name: 'Menu' }).click();
207
- await page.getByRole('link', { name: 'About' }).click();
208
- const menu = page.locator('[data-testid="mobile-nav"]');
209
- const isVisible = await menu.isVisible();
210
- return { menuVisibleAfterClick: isVisible, url: page.url() };
211
- }
212
- ```
213
-
214
- **Expected**: `menuVisibleAfterClick: false`, url contains `/about`
215
-
216
- ### API, GraphQL, or RPC Change
217
-
218
- End user: API client.
219
-
220
- Required proof:
221
-
222
- - Curl or a minimal script checked into the repo or attached to PR
223
- - Response payload showing schema and expected data
224
- - Negative case if applicable (auth failure, validation error)
225
-
226
- #### Example: API Endpoint (E2E with curl)
227
-
228
- **Task**: Add health check endpoint
229
-
230
- **Wrong verification**: "I added the route handler"
231
-
232
- **Correct verification**:
233
-
234
- ```bash
235
- curl -s http://localhost:3000/health | jq '.status'
236
- ```
237
-
238
- **Expected**: `"ok"`
239
-
240
- #### Example: API Workflow (Multi-step E2E)
241
-
242
- **Task**: Add user registration endpoint
243
-
244
- **Wrong verification**: "The route handler creates a user record"
245
-
246
- **Correct verification** -- write a small client script that exercises the full flow:
247
-
248
- ```bash
249
- # Create user
250
- RESPONSE=$(curl -s -w "\n%{http_code}" -X POST http://localhost:3000/api/users \
251
- -H "Content-Type: application/json" \
252
- -d '{"email":"test@example.com","name":"Test User"}')
253
- HTTP_CODE=$(echo "$RESPONSE" | tail -1)
254
- BODY=$(echo "$RESPONSE" | sed '$d')
255
- echo "Create status: $HTTP_CODE"
256
- echo "Create body: $BODY"
257
-
258
- # Verify the user exists by fetching it back
259
- USER_ID=$(echo "$BODY" | jq -r '.id')
260
- curl -s "http://localhost:3000/api/users/$USER_ID" | jq '.email'
261
- ```
262
-
263
- **Expected**: Create returns `201`, fetch returns `"test@example.com"`
264
-
265
- ### Authentication and Authorization
266
-
267
- End user: user with specific identity and role.
268
-
269
- Required proof:
270
-
271
- - Verification across at least two roles (allowed and denied)
272
- - Explicit status codes or UI outcomes
273
- - Artifact showing enforcement (screenshots or HTTP traces)
274
-
275
- #### Example: API with Authentication (E2E flow)
276
-
277
- **Task**: Add rate limiting to the search endpoint
278
-
279
- **Wrong verification**: "I added the rate limiter middleware"
280
-
281
- **Correct verification** -- actually hit the rate limit:
282
-
283
- ```bash
284
- # Fire requests until rate limited
285
- for i in $(seq 1 25); do
286
- CODE=$(curl -s -o /dev/null -w "%{http_code}" \
287
- -H "Authorization: Bearer $TEST_TOKEN" \
288
- "http://localhost:3000/api/search?q=test")
289
- echo "Request $i: $CODE"
290
- done | tail -5
291
- ```
292
-
293
- **Expected**: First requests return `200`, later requests return `429`
294
-
295
- ### Database Migration or Backfill
296
-
297
- End user: application and operators.
298
-
299
- Required proof:
300
-
301
- - Schema verification
302
- - Backfill verification with before/after counts
303
- - Rollback plan validated when possible
304
-
305
- #### Example: Database Migration
306
-
307
- **Task**: Add `last_login_at` column to users table
308
-
309
- **Wrong verification**: "The migration file creates the column"
310
-
311
- **Correct verification**:
312
-
313
- ```bash
314
- # Run migration
315
- npm run migration:run
316
-
317
- # Verify column exists and has correct type
318
- psql "$DATABASE_URL" -c "\d users" | grep last_login_at
319
- ```
320
-
321
- **Expected**: `last_login_at | timestamp with time zone |`
322
-
323
- ### Background Jobs, Queues, Events
324
-
325
- End user: system operator and downstream consumers.
326
-
327
- Required proof:
328
-
329
- - Evidence of enqueue, processing, and final state change
330
- - Queue depth and worker logs
331
- - Idempotency check when relevant
332
-
333
- ### Caching and Performance
334
-
335
- End user: API consumer or UI user.
336
-
337
- Required proof:
338
-
339
- - Measured latency or throughput before and after
340
- - Cache hit evidence (logs, metrics, key inspection)
341
- - TTL behavior where relevant
342
-
343
- ### Infrastructure and Autoscaling
344
-
345
- End user: operator and workload.
346
-
347
- Required proof:
348
-
349
- - Load simulation that triggers scaling or behavior change
350
- - Metrics showing scale-out and scale-in
351
- - Evidence of stability (error rates, latency) during the event
352
-
353
- ### Security Fixes
354
-
355
- End user: attacker and defender.
356
-
357
- Required proof:
358
-
359
- - Reproduction of exploit pre-fix
360
- - Demonstration of exploit failure post-fix
361
- - Evidence of safe handling (sanitization, rejection, rate limit)
362
-
363
- ---
364
-
365
- ## Escalation Protocol
366
-
367
- Agents must escalate when verification is blocked, ambiguous, or requires tools that are missing or inaccessible.
368
-
369
- Common blockers:
370
-
371
- - VPN required
372
- - MFA, OTP, SMS codes
373
- - Hardware token requirement
374
- - Missing CLI, MCP server, or internal API required for verification
375
- - Missing documentation on how to access required tooling
376
- - Production-only access gates
377
- - Compliance restrictions
378
-
379
- When blocked, agents must do the following:
380
-
381
- 1. Identify the exact boundary preventing verification.
382
- 2. Identify which verification surfaces and tooling surfaces are missing.
383
- 3. Attempt safe fallback verification (local, staging, mocks) and label it clearly.
384
- 4. Declare verification level as PARTIALLY VERIFIED or UNVERIFIED.
385
- 5. Produce a Human Action Packet.
386
- 6. Pause until explicit human confirmation or tooling is provided.
387
-
388
- Agents must never proceed past an unverified boundary without surfacing it to the human overseer.
389
-
390
- ### Human Action Packet Format
391
-
392
- Agents must provide:
393
-
394
- - What is blocked and why
395
- - What tool or access is missing
396
- - Exactly what the human must do
397
- - How to confirm completion
398
- - What the agent will do immediately after
399
- - What artifacts the agent will produce after access is restored
400
-
401
- Example:
402
-
403
- - Blocked: Cannot reach DB, VPN required.
404
- - Missing: `psql` access to `db.host` and internal logs viewer MCP.
405
- - Human steps: Connect VPN "CorpVPN", confirm access by running `nc -vz db.host 5432`, provide MCP endpoint or credentials.
406
- - Confirmation: Reply "VPN ACTIVE" and "MCP READY".
407
- - Next: Agent runs migration verification script and captures schema diff and query outputs.
408
-
409
- Agents must pause until explicit human confirmation.
410
-
411
- Agents must never bypass security controls to proceed.
412
-
413
- ---
414
-
415
- ## Environments and Safety Rules
416
-
417
- ### Allowed Environments
418
-
419
- - Local development
420
- - Preview environments
421
- - Staging
422
- - Production read-only, only if explicitly approved and configured for safe access
423
-
424
- ### Prohibited Actions Without Human Approval
425
-
426
- - Writing to production data stores
427
- - Disabling MFA or security policies
428
- - Modifying IAM roles or firewall rules beyond scoped change requests
429
- - Running destructive migrations
430
- - Triggering external billing or payment flows
431
-
432
- If an operation is irreversible or risky, escalate first.
433
-
434
- ---
435
-
436
- ## Repository Conventions
437
-
438
- ### Code Style and Structure
439
-
440
- - Follow existing patterns in the codebase.
441
- - Do not introduce new frameworks or architectural patterns without justification in the PR.
442
- - Prefer small, reviewable changes with clear commit messages.
443
-
444
- ### Tests
445
-
446
- - Run the fastest relevant test suite locally.
447
- - Expand to integration or end-to-end tests based on impact.
448
- - If tests are flaky or slow, document it and propose a follow-up.
449
-
450
- ### Logging and Observability
451
-
452
- - Include correlation IDs where supported.
453
- - Prefer structured logs over ad hoc strings.
454
- - For behavior changes, include log evidence in proof artifacts.
455
-
456
- ---
457
-
458
- ## Artifact Storage and PR Requirements
459
-
460
- Every PR must include:
461
-
462
- - Goal summary
463
- - Verification level
464
- - Proof artifacts links or embedded outputs
465
- - How to reproduce verification locally
466
- - Known limitations and follow-up items
467
-
468
- Preferred artifact locations:
469
-
470
- - PR description
471
- - Repo-local scripts under `scripts/verification/`
472
- - CI artifacts linked from the build
473
-
474
- ---
475
-
476
- ## Quick Commands
477
-
478
- These commands are consistent across all Lisa-managed projects. Stack-specific commands (Expo, NestJS, CDK) are documented in their respective `.claude/rules/` files.
479
-
480
- ### Local
481
-
482
- - Install: `bun install`
483
- - Run app: `bun run start:local` (Expo: dev server; NestJS: serverless offline)
484
- - Run unit tests: `bun run test:unit`
485
- - Run integration tests: `bun run test:integration`
486
- - Run all tests: `bun run test`
487
- - Run tests with coverage: `bun run test:cov`
488
- - Lint: `bun run lint`
489
- - Format check: `bun run format:check`
490
- - Format fix: `bun run format`
491
- - Type check: `bun run typecheck`
492
-
493
- ### UI Verification (Expo)
494
-
495
- - Playwright tests (web): `bun run playwright:test`
496
- - Playwright interactive: `bun run playwright:test:ui`
497
- - Maestro tests (native): `bun run maestro:test`
498
- - Maestro smoke tests: `bun run maestro:test:smoke`
499
- - Maestro studio: `bun run maestro:studio`
500
- - Ad-hoc browser verification: Use Playwright MCP tools (`browser_snapshot`, `browser_console_messages`, `browser_network_requests`)
501
-
502
- ### API Verification (NestJS)
503
-
504
- - Start local server: `bun run start:local`
505
- - GraphQL endpoint (local): `http://localhost:3000/graphql`
506
- - Health check: `curl -s http://localhost:3000/graphql -H 'Content-Type: application/json' -d '{"query":"{ healthCheck }"}'`
507
-
508
- ### Deployment
509
-
510
- - Expo OTA update (fast, JS-only): `bun run eas:publish:<env>`
511
- - Expo full build (native changes): `bun run eas:deploy:<env>`
512
- - NestJS deploy: `bun run deploy:<env>`
513
- - NestJS deploy single function: `FUNCTION_NAME=<name> bun run deploy:function:<env>`
514
- - Environments: `dev`, `staging`, `production`
515
-
516
- ### Observability
517
-
518
- - Sentry issues: Use `search_issues` MCP tool (Sentry plugin)
519
- - Sentry issue details: Use `get_issue_details` MCP tool
520
- - Sentry root cause analysis: Use `analyze_issue_with_seer` MCP tool
521
- - Sentry event search: Use `search_events` MCP tool
522
- - Sentry trace lookup: Use `get_trace_details` MCP tool
523
- - Browser console logs: Use `browser_console_messages` MCP tool (Playwright plugin)
524
- - Browser network requests: Use `browser_network_requests` MCP tool (Playwright plugin)
525
- - Backend logs (local): Check terminal output from `bun run start:local`
526
- - Backend logs (remote): Check companion backend repo's CLAUDE.md for CloudWatch/log commands
527
-
528
- ---
529
-
530
- ## Definition of Done
531
-
532
- A task is done only when:
533
-
534
- - End user is identified
535
- - Verification pattern is applied
536
- - Required verification surfaces and tooling surfaces are used or explicitly unavailable
537
- - Proof artifacts are captured
538
- - Verification level is declared
539
- - Risks and gaps are documented
540
-
541
- If any of these are missing, the work is not complete.