@wazir-dev/cli 1.0.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 (629) hide show
  1. package/AGENTS.md +111 -0
  2. package/CHANGELOG.md +14 -0
  3. package/CONTRIBUTING.md +101 -0
  4. package/LICENSE +21 -0
  5. package/README.md +314 -0
  6. package/assets/composition-engine.mmd +34 -0
  7. package/assets/demo-script.sh +17 -0
  8. package/assets/logo-dark.svg +14 -0
  9. package/assets/logo.svg +14 -0
  10. package/assets/pipeline.mmd +39 -0
  11. package/assets/record-demo.sh +51 -0
  12. package/docs/README.md +51 -0
  13. package/docs/adapters/context-mode.md +60 -0
  14. package/docs/concepts/architecture.md +87 -0
  15. package/docs/concepts/artifact-model.md +60 -0
  16. package/docs/concepts/composition-engine.md +36 -0
  17. package/docs/concepts/indexing-and-recall.md +160 -0
  18. package/docs/concepts/observability.md +41 -0
  19. package/docs/concepts/roles-and-workflows.md +59 -0
  20. package/docs/concepts/terminology-policy.md +27 -0
  21. package/docs/getting-started/01-installation.md +78 -0
  22. package/docs/getting-started/02-first-run.md +102 -0
  23. package/docs/getting-started/03-adding-to-project.md +15 -0
  24. package/docs/getting-started/04-host-setup.md +15 -0
  25. package/docs/guides/ci-integration.md +15 -0
  26. package/docs/guides/creating-skills.md +15 -0
  27. package/docs/guides/expertise-module-authoring.md +15 -0
  28. package/docs/guides/hook-development.md +15 -0
  29. package/docs/guides/memory-and-learnings.md +34 -0
  30. package/docs/guides/multi-host-export.md +15 -0
  31. package/docs/guides/troubleshooting.md +101 -0
  32. package/docs/guides/writing-custom-roles.md +15 -0
  33. package/docs/plans/2026-03-15-cli-pipeline-integration-design.md +592 -0
  34. package/docs/plans/2026-03-15-cli-pipeline-integration-plan.md +598 -0
  35. package/docs/plans/2026-03-15-docs-enforcement-plan.md +238 -0
  36. package/docs/readmes/INDEX.md +99 -0
  37. package/docs/readmes/features/expertise/README.md +171 -0
  38. package/docs/readmes/features/exports/README.md +222 -0
  39. package/docs/readmes/features/hooks/README.md +103 -0
  40. package/docs/readmes/features/hooks/loop-cap-guard.md +133 -0
  41. package/docs/readmes/features/hooks/post-tool-capture.md +121 -0
  42. package/docs/readmes/features/hooks/post-tool-lint.md +130 -0
  43. package/docs/readmes/features/hooks/pre-compact-summary.md +122 -0
  44. package/docs/readmes/features/hooks/pre-tool-capture-route.md +100 -0
  45. package/docs/readmes/features/hooks/protected-path-write-guard.md +128 -0
  46. package/docs/readmes/features/hooks/session-start.md +119 -0
  47. package/docs/readmes/features/hooks/stop-handoff-harvest.md +125 -0
  48. package/docs/readmes/features/roles/README.md +157 -0
  49. package/docs/readmes/features/roles/clarifier.md +152 -0
  50. package/docs/readmes/features/roles/content-author.md +190 -0
  51. package/docs/readmes/features/roles/designer.md +193 -0
  52. package/docs/readmes/features/roles/executor.md +184 -0
  53. package/docs/readmes/features/roles/learner.md +210 -0
  54. package/docs/readmes/features/roles/planner.md +182 -0
  55. package/docs/readmes/features/roles/researcher.md +164 -0
  56. package/docs/readmes/features/roles/reviewer.md +184 -0
  57. package/docs/readmes/features/roles/specifier.md +162 -0
  58. package/docs/readmes/features/roles/verifier.md +215 -0
  59. package/docs/readmes/features/schemas/README.md +178 -0
  60. package/docs/readmes/features/skills/README.md +63 -0
  61. package/docs/readmes/features/skills/brainstorming.md +96 -0
  62. package/docs/readmes/features/skills/debugging.md +148 -0
  63. package/docs/readmes/features/skills/design.md +120 -0
  64. package/docs/readmes/features/skills/prepare-next.md +109 -0
  65. package/docs/readmes/features/skills/run-audit.md +159 -0
  66. package/docs/readmes/features/skills/scan-project.md +109 -0
  67. package/docs/readmes/features/skills/self-audit.md +176 -0
  68. package/docs/readmes/features/skills/tdd.md +137 -0
  69. package/docs/readmes/features/skills/using-skills.md +92 -0
  70. package/docs/readmes/features/skills/verification.md +120 -0
  71. package/docs/readmes/features/skills/writing-plans.md +104 -0
  72. package/docs/readmes/features/tooling/README.md +320 -0
  73. package/docs/readmes/features/workflows/README.md +186 -0
  74. package/docs/readmes/features/workflows/author.md +181 -0
  75. package/docs/readmes/features/workflows/clarify.md +154 -0
  76. package/docs/readmes/features/workflows/design-review.md +171 -0
  77. package/docs/readmes/features/workflows/design.md +169 -0
  78. package/docs/readmes/features/workflows/discover.md +162 -0
  79. package/docs/readmes/features/workflows/execute.md +173 -0
  80. package/docs/readmes/features/workflows/learn.md +167 -0
  81. package/docs/readmes/features/workflows/plan-review.md +165 -0
  82. package/docs/readmes/features/workflows/plan.md +170 -0
  83. package/docs/readmes/features/workflows/prepare-next.md +167 -0
  84. package/docs/readmes/features/workflows/review.md +169 -0
  85. package/docs/readmes/features/workflows/run-audit.md +191 -0
  86. package/docs/readmes/features/workflows/spec-challenge.md +159 -0
  87. package/docs/readmes/features/workflows/specify.md +160 -0
  88. package/docs/readmes/features/workflows/verify.md +177 -0
  89. package/docs/readmes/packages/README.md +50 -0
  90. package/docs/readmes/packages/ajv.md +117 -0
  91. package/docs/readmes/packages/context-mode.md +118 -0
  92. package/docs/readmes/packages/gray-matter.md +116 -0
  93. package/docs/readmes/packages/node-test.md +137 -0
  94. package/docs/readmes/packages/yaml.md +112 -0
  95. package/docs/reference/configuration-reference.md +159 -0
  96. package/docs/reference/expertise-index.md +52 -0
  97. package/docs/reference/git-flow.md +43 -0
  98. package/docs/reference/hooks.md +87 -0
  99. package/docs/reference/host-exports.md +50 -0
  100. package/docs/reference/launch-checklist.md +172 -0
  101. package/docs/reference/marketplace-listings.md +76 -0
  102. package/docs/reference/release-process.md +34 -0
  103. package/docs/reference/roles-reference.md +77 -0
  104. package/docs/reference/skills.md +33 -0
  105. package/docs/reference/templates.md +29 -0
  106. package/docs/reference/tooling-cli.md +94 -0
  107. package/docs/truth-claims.yaml +222 -0
  108. package/expertise/PROGRESS.md +63 -0
  109. package/expertise/README.md +18 -0
  110. package/expertise/antipatterns/PROGRESS.md +56 -0
  111. package/expertise/antipatterns/backend/api-design-antipatterns.md +1271 -0
  112. package/expertise/antipatterns/backend/auth-antipatterns.md +1195 -0
  113. package/expertise/antipatterns/backend/caching-antipatterns.md +622 -0
  114. package/expertise/antipatterns/backend/database-antipatterns.md +1038 -0
  115. package/expertise/antipatterns/backend/index.md +24 -0
  116. package/expertise/antipatterns/backend/microservices-antipatterns.md +850 -0
  117. package/expertise/antipatterns/code/architecture-antipatterns.md +919 -0
  118. package/expertise/antipatterns/code/async-antipatterns.md +622 -0
  119. package/expertise/antipatterns/code/code-smells.md +1186 -0
  120. package/expertise/antipatterns/code/dependency-antipatterns.md +1209 -0
  121. package/expertise/antipatterns/code/error-handling-antipatterns.md +1360 -0
  122. package/expertise/antipatterns/code/index.md +27 -0
  123. package/expertise/antipatterns/code/naming-and-abstraction.md +1118 -0
  124. package/expertise/antipatterns/code/state-management-antipatterns.md +1076 -0
  125. package/expertise/antipatterns/code/testing-antipatterns.md +1053 -0
  126. package/expertise/antipatterns/design/accessibility-antipatterns.md +1136 -0
  127. package/expertise/antipatterns/design/dark-patterns.md +1121 -0
  128. package/expertise/antipatterns/design/index.md +22 -0
  129. package/expertise/antipatterns/design/ui-antipatterns.md +1202 -0
  130. package/expertise/antipatterns/design/ux-antipatterns.md +680 -0
  131. package/expertise/antipatterns/frontend/css-layout-antipatterns.md +691 -0
  132. package/expertise/antipatterns/frontend/flutter-antipatterns.md +1827 -0
  133. package/expertise/antipatterns/frontend/index.md +23 -0
  134. package/expertise/antipatterns/frontend/mobile-antipatterns.md +573 -0
  135. package/expertise/antipatterns/frontend/react-antipatterns.md +1128 -0
  136. package/expertise/antipatterns/frontend/spa-antipatterns.md +1235 -0
  137. package/expertise/antipatterns/index.md +31 -0
  138. package/expertise/antipatterns/performance/index.md +20 -0
  139. package/expertise/antipatterns/performance/performance-antipatterns.md +1013 -0
  140. package/expertise/antipatterns/performance/premature-optimization.md +623 -0
  141. package/expertise/antipatterns/performance/scaling-antipatterns.md +785 -0
  142. package/expertise/antipatterns/process/ai-coding-antipatterns.md +853 -0
  143. package/expertise/antipatterns/process/code-review-antipatterns.md +656 -0
  144. package/expertise/antipatterns/process/deployment-antipatterns.md +920 -0
  145. package/expertise/antipatterns/process/index.md +23 -0
  146. package/expertise/antipatterns/process/technical-debt-antipatterns.md +647 -0
  147. package/expertise/antipatterns/security/index.md +20 -0
  148. package/expertise/antipatterns/security/secrets-antipatterns.md +849 -0
  149. package/expertise/antipatterns/security/security-theater.md +843 -0
  150. package/expertise/antipatterns/security/vulnerability-patterns.md +801 -0
  151. package/expertise/architecture/PROGRESS.md +70 -0
  152. package/expertise/architecture/data/caching-architecture.md +671 -0
  153. package/expertise/architecture/data/data-consistency.md +574 -0
  154. package/expertise/architecture/data/data-modeling.md +536 -0
  155. package/expertise/architecture/data/event-streams-and-queues.md +634 -0
  156. package/expertise/architecture/data/index.md +25 -0
  157. package/expertise/architecture/data/search-architecture.md +663 -0
  158. package/expertise/architecture/data/sql-vs-nosql.md +708 -0
  159. package/expertise/architecture/decisions/architecture-decision-records.md +640 -0
  160. package/expertise/architecture/decisions/build-vs-buy.md +616 -0
  161. package/expertise/architecture/decisions/index.md +23 -0
  162. package/expertise/architecture/decisions/monolith-to-microservices.md +790 -0
  163. package/expertise/architecture/decisions/technology-selection.md +616 -0
  164. package/expertise/architecture/distributed/cap-theorem-and-tradeoffs.md +800 -0
  165. package/expertise/architecture/distributed/circuit-breaker-bulkhead.md +741 -0
  166. package/expertise/architecture/distributed/consensus-and-coordination.md +796 -0
  167. package/expertise/architecture/distributed/distributed-systems-fundamentals.md +564 -0
  168. package/expertise/architecture/distributed/idempotency-and-retry.md +796 -0
  169. package/expertise/architecture/distributed/index.md +25 -0
  170. package/expertise/architecture/distributed/saga-pattern.md +797 -0
  171. package/expertise/architecture/foundations/architectural-thinking.md +460 -0
  172. package/expertise/architecture/foundations/coupling-and-cohesion.md +770 -0
  173. package/expertise/architecture/foundations/design-principles-solid.md +649 -0
  174. package/expertise/architecture/foundations/domain-driven-design.md +719 -0
  175. package/expertise/architecture/foundations/index.md +25 -0
  176. package/expertise/architecture/foundations/separation-of-concerns.md +472 -0
  177. package/expertise/architecture/foundations/twelve-factor-app.md +797 -0
  178. package/expertise/architecture/index.md +34 -0
  179. package/expertise/architecture/integration/api-design-graphql.md +638 -0
  180. package/expertise/architecture/integration/api-design-grpc.md +804 -0
  181. package/expertise/architecture/integration/api-design-rest.md +892 -0
  182. package/expertise/architecture/integration/index.md +25 -0
  183. package/expertise/architecture/integration/third-party-integration.md +795 -0
  184. package/expertise/architecture/integration/webhooks-and-callbacks.md +1152 -0
  185. package/expertise/architecture/integration/websockets-realtime.md +791 -0
  186. package/expertise/architecture/mobile-architecture/index.md +22 -0
  187. package/expertise/architecture/mobile-architecture/mobile-app-architecture.md +780 -0
  188. package/expertise/architecture/mobile-architecture/mobile-backend-for-frontend.md +670 -0
  189. package/expertise/architecture/mobile-architecture/offline-first.md +719 -0
  190. package/expertise/architecture/mobile-architecture/push-and-sync.md +782 -0
  191. package/expertise/architecture/patterns/cqrs-event-sourcing.md +717 -0
  192. package/expertise/architecture/patterns/event-driven.md +797 -0
  193. package/expertise/architecture/patterns/hexagonal-clean-architecture.md +870 -0
  194. package/expertise/architecture/patterns/index.md +27 -0
  195. package/expertise/architecture/patterns/layered-architecture.md +736 -0
  196. package/expertise/architecture/patterns/microservices.md +753 -0
  197. package/expertise/architecture/patterns/modular-monolith.md +692 -0
  198. package/expertise/architecture/patterns/monolith.md +626 -0
  199. package/expertise/architecture/patterns/plugin-architecture.md +735 -0
  200. package/expertise/architecture/patterns/serverless.md +780 -0
  201. package/expertise/architecture/scaling/database-scaling.md +615 -0
  202. package/expertise/architecture/scaling/feature-flags-and-rollouts.md +757 -0
  203. package/expertise/architecture/scaling/horizontal-vs-vertical.md +606 -0
  204. package/expertise/architecture/scaling/index.md +24 -0
  205. package/expertise/architecture/scaling/multi-tenancy.md +800 -0
  206. package/expertise/architecture/scaling/stateless-design.md +787 -0
  207. package/expertise/backend/embedded-firmware.md +625 -0
  208. package/expertise/backend/go.md +853 -0
  209. package/expertise/backend/index.md +24 -0
  210. package/expertise/backend/java-spring.md +448 -0
  211. package/expertise/backend/node-typescript.md +625 -0
  212. package/expertise/backend/python-fastapi.md +724 -0
  213. package/expertise/backend/rust.md +458 -0
  214. package/expertise/backend/solidity.md +711 -0
  215. package/expertise/composition-map.yaml +443 -0
  216. package/expertise/content/foundations/content-modeling.md +395 -0
  217. package/expertise/content/foundations/editorial-standards.md +449 -0
  218. package/expertise/content/foundations/index.md +24 -0
  219. package/expertise/content/foundations/microcopy.md +455 -0
  220. package/expertise/content/foundations/terminology-governance.md +509 -0
  221. package/expertise/content/index.md +34 -0
  222. package/expertise/content/patterns/accessibility-copy.md +518 -0
  223. package/expertise/content/patterns/index.md +24 -0
  224. package/expertise/content/patterns/notification-content.md +433 -0
  225. package/expertise/content/patterns/sample-content.md +486 -0
  226. package/expertise/content/patterns/state-copy.md +439 -0
  227. package/expertise/design/PROGRESS.md +58 -0
  228. package/expertise/design/disciplines/dark-mode-theming.md +577 -0
  229. package/expertise/design/disciplines/design-systems.md +595 -0
  230. package/expertise/design/disciplines/index.md +25 -0
  231. package/expertise/design/disciplines/information-architecture.md +800 -0
  232. package/expertise/design/disciplines/interaction-design.md +788 -0
  233. package/expertise/design/disciplines/responsive-design.md +552 -0
  234. package/expertise/design/disciplines/usability-testing.md +516 -0
  235. package/expertise/design/disciplines/user-research.md +792 -0
  236. package/expertise/design/foundations/accessibility-design.md +796 -0
  237. package/expertise/design/foundations/color-theory.md +797 -0
  238. package/expertise/design/foundations/iconography.md +795 -0
  239. package/expertise/design/foundations/index.md +26 -0
  240. package/expertise/design/foundations/motion-and-animation.md +653 -0
  241. package/expertise/design/foundations/rtl-design.md +585 -0
  242. package/expertise/design/foundations/spacing-and-layout.md +607 -0
  243. package/expertise/design/foundations/typography.md +800 -0
  244. package/expertise/design/foundations/visual-hierarchy.md +761 -0
  245. package/expertise/design/index.md +32 -0
  246. package/expertise/design/patterns/authentication-flows.md +474 -0
  247. package/expertise/design/patterns/content-consumption.md +789 -0
  248. package/expertise/design/patterns/data-display.md +618 -0
  249. package/expertise/design/patterns/e-commerce.md +1494 -0
  250. package/expertise/design/patterns/feedback-and-states.md +642 -0
  251. package/expertise/design/patterns/forms-and-input.md +819 -0
  252. package/expertise/design/patterns/gamification.md +801 -0
  253. package/expertise/design/patterns/index.md +31 -0
  254. package/expertise/design/patterns/microinteractions.md +449 -0
  255. package/expertise/design/patterns/navigation.md +800 -0
  256. package/expertise/design/patterns/notifications.md +705 -0
  257. package/expertise/design/patterns/onboarding.md +700 -0
  258. package/expertise/design/patterns/search-and-filter.md +601 -0
  259. package/expertise/design/patterns/settings-and-preferences.md +768 -0
  260. package/expertise/design/patterns/social-and-community.md +748 -0
  261. package/expertise/design/platforms/desktop-native.md +612 -0
  262. package/expertise/design/platforms/index.md +25 -0
  263. package/expertise/design/platforms/mobile-android.md +825 -0
  264. package/expertise/design/platforms/mobile-cross-platform.md +983 -0
  265. package/expertise/design/platforms/mobile-ios.md +699 -0
  266. package/expertise/design/platforms/tablet.md +794 -0
  267. package/expertise/design/platforms/web-dashboard.md +790 -0
  268. package/expertise/design/platforms/web-responsive.md +550 -0
  269. package/expertise/design/psychology/behavioral-nudges.md +449 -0
  270. package/expertise/design/psychology/cognitive-load.md +1191 -0
  271. package/expertise/design/psychology/error-psychology.md +778 -0
  272. package/expertise/design/psychology/index.md +22 -0
  273. package/expertise/design/psychology/persuasive-design.md +736 -0
  274. package/expertise/design/psychology/user-mental-models.md +623 -0
  275. package/expertise/design/tooling/open-pencil.md +266 -0
  276. package/expertise/frontend/angular.md +1073 -0
  277. package/expertise/frontend/desktop-electron.md +546 -0
  278. package/expertise/frontend/flutter.md +782 -0
  279. package/expertise/frontend/index.md +27 -0
  280. package/expertise/frontend/native-android.md +409 -0
  281. package/expertise/frontend/native-ios.md +490 -0
  282. package/expertise/frontend/react-native.md +1160 -0
  283. package/expertise/frontend/react.md +808 -0
  284. package/expertise/frontend/vue.md +1089 -0
  285. package/expertise/humanize/domain-rules-code.md +79 -0
  286. package/expertise/humanize/domain-rules-content.md +67 -0
  287. package/expertise/humanize/domain-rules-technical-docs.md +56 -0
  288. package/expertise/humanize/index.md +35 -0
  289. package/expertise/humanize/self-audit-checklist.md +87 -0
  290. package/expertise/humanize/sentence-patterns.md +218 -0
  291. package/expertise/humanize/vocabulary-blacklist.md +105 -0
  292. package/expertise/i18n/PROGRESS.md +65 -0
  293. package/expertise/i18n/advanced/accessibility-and-i18n.md +28 -0
  294. package/expertise/i18n/advanced/bidirectional-text-algorithm.md +38 -0
  295. package/expertise/i18n/advanced/complex-scripts.md +30 -0
  296. package/expertise/i18n/advanced/performance-and-i18n.md +27 -0
  297. package/expertise/i18n/advanced/testing-i18n.md +28 -0
  298. package/expertise/i18n/content/content-adaptation.md +23 -0
  299. package/expertise/i18n/content/locale-specific-formatting.md +23 -0
  300. package/expertise/i18n/content/machine-translation-integration.md +28 -0
  301. package/expertise/i18n/content/translation-management.md +29 -0
  302. package/expertise/i18n/foundations/date-time-calendars.md +67 -0
  303. package/expertise/i18n/foundations/i18n-architecture.md +272 -0
  304. package/expertise/i18n/foundations/locale-and-language-tags.md +79 -0
  305. package/expertise/i18n/foundations/numbers-currency-units.md +61 -0
  306. package/expertise/i18n/foundations/pluralization-and-gender.md +109 -0
  307. package/expertise/i18n/foundations/string-externalization.md +236 -0
  308. package/expertise/i18n/foundations/text-direction-bidi.md +241 -0
  309. package/expertise/i18n/foundations/unicode-and-encoding.md +86 -0
  310. package/expertise/i18n/index.md +38 -0
  311. package/expertise/i18n/platform/backend-i18n.md +31 -0
  312. package/expertise/i18n/platform/flutter-i18n.md +148 -0
  313. package/expertise/i18n/platform/native-android-i18n.md +36 -0
  314. package/expertise/i18n/platform/native-ios-i18n.md +36 -0
  315. package/expertise/i18n/platform/react-i18n.md +103 -0
  316. package/expertise/i18n/platform/web-css-i18n.md +81 -0
  317. package/expertise/i18n/rtl/arabic-specific.md +175 -0
  318. package/expertise/i18n/rtl/hebrew-specific.md +149 -0
  319. package/expertise/i18n/rtl/rtl-animations-and-transitions.md +111 -0
  320. package/expertise/i18n/rtl/rtl-forms-and-input.md +161 -0
  321. package/expertise/i18n/rtl/rtl-fundamentals.md +211 -0
  322. package/expertise/i18n/rtl/rtl-icons-and-images.md +181 -0
  323. package/expertise/i18n/rtl/rtl-layout-mirroring.md +252 -0
  324. package/expertise/i18n/rtl/rtl-navigation-and-gestures.md +107 -0
  325. package/expertise/i18n/rtl/rtl-testing-and-qa.md +147 -0
  326. package/expertise/i18n/rtl/rtl-typography.md +160 -0
  327. package/expertise/index.md +113 -0
  328. package/expertise/index.yaml +216 -0
  329. package/expertise/infrastructure/cloud-aws.md +597 -0
  330. package/expertise/infrastructure/cloud-gcp.md +599 -0
  331. package/expertise/infrastructure/cybersecurity.md +816 -0
  332. package/expertise/infrastructure/database-mongodb.md +447 -0
  333. package/expertise/infrastructure/database-postgres.md +400 -0
  334. package/expertise/infrastructure/devops-cicd.md +787 -0
  335. package/expertise/infrastructure/index.md +27 -0
  336. package/expertise/performance/PROGRESS.md +50 -0
  337. package/expertise/performance/backend/api-latency.md +1204 -0
  338. package/expertise/performance/backend/background-jobs.md +506 -0
  339. package/expertise/performance/backend/connection-pooling.md +1209 -0
  340. package/expertise/performance/backend/database-query-optimization.md +515 -0
  341. package/expertise/performance/backend/index.md +23 -0
  342. package/expertise/performance/backend/rate-limiting-and-throttling.md +971 -0
  343. package/expertise/performance/foundations/algorithmic-complexity.md +954 -0
  344. package/expertise/performance/foundations/caching-strategies.md +489 -0
  345. package/expertise/performance/foundations/concurrency-and-parallelism.md +847 -0
  346. package/expertise/performance/foundations/index.md +24 -0
  347. package/expertise/performance/foundations/measuring-and-profiling.md +440 -0
  348. package/expertise/performance/foundations/memory-management.md +964 -0
  349. package/expertise/performance/foundations/performance-budgets.md +1314 -0
  350. package/expertise/performance/index.md +31 -0
  351. package/expertise/performance/infrastructure/auto-scaling.md +1059 -0
  352. package/expertise/performance/infrastructure/cdn-and-edge.md +1081 -0
  353. package/expertise/performance/infrastructure/index.md +22 -0
  354. package/expertise/performance/infrastructure/load-balancing.md +1081 -0
  355. package/expertise/performance/infrastructure/observability.md +1079 -0
  356. package/expertise/performance/mobile/index.md +23 -0
  357. package/expertise/performance/mobile/mobile-animations.md +544 -0
  358. package/expertise/performance/mobile/mobile-memory-battery.md +416 -0
  359. package/expertise/performance/mobile/mobile-network.md +452 -0
  360. package/expertise/performance/mobile/mobile-rendering.md +599 -0
  361. package/expertise/performance/mobile/mobile-startup-time.md +505 -0
  362. package/expertise/performance/platform-specific/flutter-performance.md +647 -0
  363. package/expertise/performance/platform-specific/index.md +22 -0
  364. package/expertise/performance/platform-specific/node-performance.md +1307 -0
  365. package/expertise/performance/platform-specific/postgres-performance.md +1366 -0
  366. package/expertise/performance/platform-specific/react-performance.md +1403 -0
  367. package/expertise/performance/web/bundle-optimization.md +1239 -0
  368. package/expertise/performance/web/image-and-media.md +636 -0
  369. package/expertise/performance/web/index.md +24 -0
  370. package/expertise/performance/web/network-optimization.md +1133 -0
  371. package/expertise/performance/web/rendering-performance.md +1098 -0
  372. package/expertise/performance/web/ssr-and-hydration.md +918 -0
  373. package/expertise/performance/web/web-vitals.md +1374 -0
  374. package/expertise/quality/accessibility.md +985 -0
  375. package/expertise/quality/evidence-based-verification.md +499 -0
  376. package/expertise/quality/index.md +24 -0
  377. package/expertise/quality/ml-model-audit.md +614 -0
  378. package/expertise/quality/performance.md +600 -0
  379. package/expertise/quality/testing-api.md +891 -0
  380. package/expertise/quality/testing-mobile.md +496 -0
  381. package/expertise/quality/testing-web.md +849 -0
  382. package/expertise/security/PROGRESS.md +54 -0
  383. package/expertise/security/agentic-identity.md +540 -0
  384. package/expertise/security/compliance-frameworks.md +601 -0
  385. package/expertise/security/data/data-encryption.md +364 -0
  386. package/expertise/security/data/data-privacy-gdpr.md +692 -0
  387. package/expertise/security/data/database-security.md +1171 -0
  388. package/expertise/security/data/index.md +22 -0
  389. package/expertise/security/data/pii-handling.md +531 -0
  390. package/expertise/security/foundations/authentication.md +1041 -0
  391. package/expertise/security/foundations/authorization.md +603 -0
  392. package/expertise/security/foundations/cryptography.md +1001 -0
  393. package/expertise/security/foundations/index.md +25 -0
  394. package/expertise/security/foundations/owasp-top-10.md +1354 -0
  395. package/expertise/security/foundations/secrets-management.md +1217 -0
  396. package/expertise/security/foundations/secure-sdlc.md +700 -0
  397. package/expertise/security/foundations/supply-chain-security.md +698 -0
  398. package/expertise/security/index.md +31 -0
  399. package/expertise/security/infrastructure/cloud-security-aws.md +1296 -0
  400. package/expertise/security/infrastructure/cloud-security-gcp.md +1376 -0
  401. package/expertise/security/infrastructure/container-security.md +721 -0
  402. package/expertise/security/infrastructure/incident-response.md +1295 -0
  403. package/expertise/security/infrastructure/index.md +24 -0
  404. package/expertise/security/infrastructure/logging-and-monitoring.md +1618 -0
  405. package/expertise/security/infrastructure/network-security.md +1337 -0
  406. package/expertise/security/mobile/index.md +23 -0
  407. package/expertise/security/mobile/mobile-android-security.md +1218 -0
  408. package/expertise/security/mobile/mobile-binary-protection.md +1229 -0
  409. package/expertise/security/mobile/mobile-data-storage.md +1265 -0
  410. package/expertise/security/mobile/mobile-ios-security.md +1401 -0
  411. package/expertise/security/mobile/mobile-network-security.md +1520 -0
  412. package/expertise/security/smart-contract-security.md +594 -0
  413. package/expertise/security/testing/index.md +22 -0
  414. package/expertise/security/testing/penetration-testing.md +1258 -0
  415. package/expertise/security/testing/security-code-review.md +1765 -0
  416. package/expertise/security/testing/threat-modeling.md +1074 -0
  417. package/expertise/security/testing/vulnerability-scanning.md +1062 -0
  418. package/expertise/security/web/api-security.md +586 -0
  419. package/expertise/security/web/cors-and-headers.md +433 -0
  420. package/expertise/security/web/csrf.md +562 -0
  421. package/expertise/security/web/file-upload.md +1477 -0
  422. package/expertise/security/web/index.md +25 -0
  423. package/expertise/security/web/injection.md +1375 -0
  424. package/expertise/security/web/session-management.md +1101 -0
  425. package/expertise/security/web/xss.md +1158 -0
  426. package/exports/README.md +17 -0
  427. package/exports/hosts/claude/.claude/agents/clarifier.md +42 -0
  428. package/exports/hosts/claude/.claude/agents/content-author.md +63 -0
  429. package/exports/hosts/claude/.claude/agents/designer.md +55 -0
  430. package/exports/hosts/claude/.claude/agents/executor.md +55 -0
  431. package/exports/hosts/claude/.claude/agents/learner.md +51 -0
  432. package/exports/hosts/claude/.claude/agents/planner.md +53 -0
  433. package/exports/hosts/claude/.claude/agents/researcher.md +43 -0
  434. package/exports/hosts/claude/.claude/agents/reviewer.md +54 -0
  435. package/exports/hosts/claude/.claude/agents/specifier.md +47 -0
  436. package/exports/hosts/claude/.claude/agents/verifier.md +71 -0
  437. package/exports/hosts/claude/.claude/commands/author.md +42 -0
  438. package/exports/hosts/claude/.claude/commands/clarify.md +38 -0
  439. package/exports/hosts/claude/.claude/commands/design-review.md +46 -0
  440. package/exports/hosts/claude/.claude/commands/design.md +44 -0
  441. package/exports/hosts/claude/.claude/commands/discover.md +37 -0
  442. package/exports/hosts/claude/.claude/commands/execute.md +48 -0
  443. package/exports/hosts/claude/.claude/commands/learn.md +38 -0
  444. package/exports/hosts/claude/.claude/commands/plan-review.md +42 -0
  445. package/exports/hosts/claude/.claude/commands/plan.md +39 -0
  446. package/exports/hosts/claude/.claude/commands/prepare-next.md +37 -0
  447. package/exports/hosts/claude/.claude/commands/review.md +40 -0
  448. package/exports/hosts/claude/.claude/commands/run-audit.md +41 -0
  449. package/exports/hosts/claude/.claude/commands/spec-challenge.md +41 -0
  450. package/exports/hosts/claude/.claude/commands/specify.md +38 -0
  451. package/exports/hosts/claude/.claude/commands/verify.md +37 -0
  452. package/exports/hosts/claude/.claude/settings.json +34 -0
  453. package/exports/hosts/claude/CLAUDE.md +19 -0
  454. package/exports/hosts/claude/export.manifest.json +38 -0
  455. package/exports/hosts/claude/host-package.json +67 -0
  456. package/exports/hosts/codex/AGENTS.md +19 -0
  457. package/exports/hosts/codex/export.manifest.json +38 -0
  458. package/exports/hosts/codex/host-package.json +41 -0
  459. package/exports/hosts/cursor/.cursor/hooks.json +16 -0
  460. package/exports/hosts/cursor/.cursor/rules/wazir-core.mdc +19 -0
  461. package/exports/hosts/cursor/export.manifest.json +38 -0
  462. package/exports/hosts/cursor/host-package.json +42 -0
  463. package/exports/hosts/gemini/GEMINI.md +19 -0
  464. package/exports/hosts/gemini/export.manifest.json +38 -0
  465. package/exports/hosts/gemini/host-package.json +41 -0
  466. package/hooks/README.md +18 -0
  467. package/hooks/definitions/loop_cap_guard.yaml +21 -0
  468. package/hooks/definitions/post_tool_capture.yaml +24 -0
  469. package/hooks/definitions/pre_compact_summary.yaml +19 -0
  470. package/hooks/definitions/pre_tool_capture_route.yaml +19 -0
  471. package/hooks/definitions/protected_path_write_guard.yaml +19 -0
  472. package/hooks/definitions/session_start.yaml +19 -0
  473. package/hooks/definitions/stop_handoff_harvest.yaml +20 -0
  474. package/hooks/loop-cap-guard +17 -0
  475. package/hooks/post-tool-lint +36 -0
  476. package/hooks/protected-path-write-guard +17 -0
  477. package/hooks/session-start +41 -0
  478. package/llms-full.txt +2355 -0
  479. package/llms.txt +43 -0
  480. package/package.json +79 -0
  481. package/roles/README.md +20 -0
  482. package/roles/clarifier.md +42 -0
  483. package/roles/content-author.md +63 -0
  484. package/roles/designer.md +55 -0
  485. package/roles/executor.md +55 -0
  486. package/roles/learner.md +51 -0
  487. package/roles/planner.md +53 -0
  488. package/roles/researcher.md +43 -0
  489. package/roles/reviewer.md +54 -0
  490. package/roles/specifier.md +47 -0
  491. package/roles/verifier.md +71 -0
  492. package/schemas/README.md +24 -0
  493. package/schemas/accepted-learning.schema.json +20 -0
  494. package/schemas/author-artifact.schema.json +156 -0
  495. package/schemas/clarification.schema.json +19 -0
  496. package/schemas/design-artifact.schema.json +80 -0
  497. package/schemas/docs-claim.schema.json +18 -0
  498. package/schemas/export-manifest.schema.json +20 -0
  499. package/schemas/hook.schema.json +67 -0
  500. package/schemas/host-export-package.schema.json +18 -0
  501. package/schemas/implementation-plan.schema.json +19 -0
  502. package/schemas/proposed-learning.schema.json +19 -0
  503. package/schemas/research.schema.json +18 -0
  504. package/schemas/review.schema.json +29 -0
  505. package/schemas/run-manifest.schema.json +18 -0
  506. package/schemas/spec-challenge.schema.json +18 -0
  507. package/schemas/spec.schema.json +20 -0
  508. package/schemas/usage.schema.json +102 -0
  509. package/schemas/verification-proof.schema.json +29 -0
  510. package/schemas/wazir-manifest.schema.json +173 -0
  511. package/skills/README.md +40 -0
  512. package/skills/brainstorming/SKILL.md +77 -0
  513. package/skills/debugging/SKILL.md +50 -0
  514. package/skills/design/SKILL.md +61 -0
  515. package/skills/dispatching-parallel-agents/SKILL.md +128 -0
  516. package/skills/executing-plans/SKILL.md +70 -0
  517. package/skills/finishing-a-development-branch/SKILL.md +169 -0
  518. package/skills/humanize/SKILL.md +123 -0
  519. package/skills/init-pipeline/SKILL.md +124 -0
  520. package/skills/prepare-next/SKILL.md +20 -0
  521. package/skills/receiving-code-review/SKILL.md +123 -0
  522. package/skills/requesting-code-review/SKILL.md +105 -0
  523. package/skills/requesting-code-review/code-reviewer.md +108 -0
  524. package/skills/run-audit/SKILL.md +197 -0
  525. package/skills/scan-project/SKILL.md +41 -0
  526. package/skills/self-audit/SKILL.md +153 -0
  527. package/skills/subagent-driven-development/SKILL.md +154 -0
  528. package/skills/subagent-driven-development/code-quality-reviewer-prompt.md +26 -0
  529. package/skills/subagent-driven-development/implementer-prompt.md +102 -0
  530. package/skills/subagent-driven-development/spec-reviewer-prompt.md +61 -0
  531. package/skills/tdd/SKILL.md +23 -0
  532. package/skills/using-git-worktrees/SKILL.md +163 -0
  533. package/skills/using-skills/SKILL.md +95 -0
  534. package/skills/verification/SKILL.md +22 -0
  535. package/skills/wazir/SKILL.md +463 -0
  536. package/skills/writing-plans/SKILL.md +30 -0
  537. package/skills/writing-skills/SKILL.md +157 -0
  538. package/skills/writing-skills/anthropic-best-practices.md +122 -0
  539. package/skills/writing-skills/persuasion-principles.md +50 -0
  540. package/templates/README.md +20 -0
  541. package/templates/artifacts/README.md +10 -0
  542. package/templates/artifacts/accepted-learning.md +19 -0
  543. package/templates/artifacts/accepted-learning.template.json +12 -0
  544. package/templates/artifacts/author.md +74 -0
  545. package/templates/artifacts/author.template.json +19 -0
  546. package/templates/artifacts/clarification.md +21 -0
  547. package/templates/artifacts/clarification.template.json +12 -0
  548. package/templates/artifacts/execute-notes.md +19 -0
  549. package/templates/artifacts/implementation-plan.md +21 -0
  550. package/templates/artifacts/implementation-plan.template.json +11 -0
  551. package/templates/artifacts/learning-proposal.md +19 -0
  552. package/templates/artifacts/next-run-handoff.md +21 -0
  553. package/templates/artifacts/plan-review.md +19 -0
  554. package/templates/artifacts/proposed-learning.template.json +12 -0
  555. package/templates/artifacts/research.md +21 -0
  556. package/templates/artifacts/research.template.json +12 -0
  557. package/templates/artifacts/review-findings.md +19 -0
  558. package/templates/artifacts/review.template.json +11 -0
  559. package/templates/artifacts/run-manifest.template.json +8 -0
  560. package/templates/artifacts/spec-challenge.md +19 -0
  561. package/templates/artifacts/spec-challenge.template.json +11 -0
  562. package/templates/artifacts/spec.md +21 -0
  563. package/templates/artifacts/spec.template.json +12 -0
  564. package/templates/artifacts/verification-proof.md +19 -0
  565. package/templates/artifacts/verification-proof.template.json +11 -0
  566. package/templates/examples/accepted-learning.example.json +14 -0
  567. package/templates/examples/author.example.json +152 -0
  568. package/templates/examples/clarification.example.json +15 -0
  569. package/templates/examples/docs-claim.example.json +8 -0
  570. package/templates/examples/export-manifest.example.json +7 -0
  571. package/templates/examples/host-export-package.example.json +11 -0
  572. package/templates/examples/implementation-plan.example.json +17 -0
  573. package/templates/examples/proposed-learning.example.json +13 -0
  574. package/templates/examples/research.example.json +15 -0
  575. package/templates/examples/research.example.md +6 -0
  576. package/templates/examples/review.example.json +17 -0
  577. package/templates/examples/run-manifest.example.json +9 -0
  578. package/templates/examples/spec-challenge.example.json +14 -0
  579. package/templates/examples/spec.example.json +21 -0
  580. package/templates/examples/verification-proof.example.json +21 -0
  581. package/templates/examples/wazir-manifest.example.yaml +65 -0
  582. package/templates/task-definition-schema.md +99 -0
  583. package/tooling/README.md +20 -0
  584. package/tooling/src/adapters/context-mode.js +50 -0
  585. package/tooling/src/capture/command.js +376 -0
  586. package/tooling/src/capture/store.js +99 -0
  587. package/tooling/src/capture/usage.js +270 -0
  588. package/tooling/src/checks/branches.js +50 -0
  589. package/tooling/src/checks/brand-truth.js +110 -0
  590. package/tooling/src/checks/changelog.js +231 -0
  591. package/tooling/src/checks/command-registry.js +36 -0
  592. package/tooling/src/checks/commits.js +102 -0
  593. package/tooling/src/checks/docs-drift.js +103 -0
  594. package/tooling/src/checks/docs-truth.js +201 -0
  595. package/tooling/src/checks/runtime-surface.js +156 -0
  596. package/tooling/src/cli.js +116 -0
  597. package/tooling/src/command-options.js +56 -0
  598. package/tooling/src/commands/validate.js +320 -0
  599. package/tooling/src/doctor/command.js +91 -0
  600. package/tooling/src/export/command.js +77 -0
  601. package/tooling/src/export/compiler.js +498 -0
  602. package/tooling/src/guards/loop-cap-guard.js +52 -0
  603. package/tooling/src/guards/protected-path-write-guard.js +67 -0
  604. package/tooling/src/index/command.js +152 -0
  605. package/tooling/src/index/storage.js +1061 -0
  606. package/tooling/src/index/summarizers.js +261 -0
  607. package/tooling/src/loaders.js +18 -0
  608. package/tooling/src/project-root.js +22 -0
  609. package/tooling/src/recall/command.js +225 -0
  610. package/tooling/src/schema-validator.js +30 -0
  611. package/tooling/src/state-root.js +40 -0
  612. package/tooling/src/status/command.js +71 -0
  613. package/wazir.manifest.yaml +135 -0
  614. package/workflows/README.md +19 -0
  615. package/workflows/author.md +42 -0
  616. package/workflows/clarify.md +38 -0
  617. package/workflows/design-review.md +46 -0
  618. package/workflows/design.md +44 -0
  619. package/workflows/discover.md +37 -0
  620. package/workflows/execute.md +48 -0
  621. package/workflows/learn.md +38 -0
  622. package/workflows/plan-review.md +42 -0
  623. package/workflows/plan.md +39 -0
  624. package/workflows/prepare-next.md +37 -0
  625. package/workflows/review.md +40 -0
  626. package/workflows/run-audit.md +41 -0
  627. package/workflows/spec-challenge.md +41 -0
  628. package/workflows/specify.md +38 -0
  629. package/workflows/verify.md +37 -0
@@ -0,0 +1,853 @@
1
+ # AI Coding Anti-Patterns
2
+
3
+ > AI coding agents produce code that compiles, passes superficial review, and reads authoritatively -- yet harbors systematic defects that human-written code rarely exhibits. These anti-patterns arise from the fundamental mechanics of next-token prediction operating without ground truth, persistent memory, or genuine understanding. A 2026 CodeRabbit analysis of 470 open-source repositories found AI-generated code contains 1.7x more bugs than human code, with 75% more logic errors and 57% more security findings per pull request. A USENIX Security 2025 study of 576,000 code samples found 20% of AI-recommended packages do not exist. This module catalogs the 20 most damaging patterns, grounded in documented incidents and empirical research.
4
+
5
+ > **Domain:** Process -- AI-Assisted Development
6
+ > **Anti-patterns covered:** 20
7
+ > **Highest severity:** Critical
8
+ > **Primary audience:** AI agents performing self-evaluation; human reviewers auditing AI output
9
+
10
+ ---
11
+
12
+ ## Anti-Patterns
13
+
14
+ ### AP-01: Hallucinated APIs
15
+
16
+ **Also known as:** Phantom Functions, Slopsquatting Vector, Confabulated Interfaces
17
+ **Frequency:** Very Common
18
+ **Severity:** Critical
19
+ **Detection difficulty:** Moderate
20
+
21
+ **What it looks like:**
22
+
23
+ ```python
24
+ # AI-generated code for OpenAI API
25
+ from openai import ChatCompletion
26
+ response = ChatCompletion.create(model="gpt-4", messages=[...])
27
+ # ChatCompletion.create() was removed in openai>=1.0.0
28
+ # Correct: client.chat.completions.create(...)
29
+ ```
30
+
31
+ ```javascript
32
+ import { useFormState } from 'react';
33
+ // useFormState does not exist -- it was briefly in react-dom canary,
34
+ // then renamed to useActionState in React 19
35
+ ```
36
+
37
+ **Why AI agents do it:**
38
+
39
+ Training data contains both old and new API surfaces. The model blends them, producing calls that are syntactically plausible but reference a version that never existed in that form. A Stanford/Hugging Face study found over 42% of code snippets from major AI tools contain hallucinations. Worse, hallucinated package names create a supply-chain attack vector called "slopsquatting": USENIX 2025 researchers found 38% of hallucinated packages are conflations (e.g., `express-mongoose`), 13% are typo variants, and 51% are pure fabrications. One hallucinated package, `huggingface-cli`, was downloaded 30,000+ times in three months despite containing no code.
40
+
41
+ **What goes wrong:**
42
+
43
+ `AttributeError` or `ModuleNotFoundError` at runtime. Attackers register packages with hallucinated names, embedding malware. 43% of hallucinated packages are repeated deterministically across runs, making them reliable attack targets.
44
+
45
+ **The fix:**
46
+
47
+ Pin library versions in prompts: "Using openai==1.30.0, use `client.chat.completions.create()`." Verify every import against installed package exports. Lock dependencies to approved registries.
48
+
49
+ **Detection rule:**
50
+
51
+ Run `python -c "import <module>; dir(<module>)"` to verify imported names. Flag function calls absent from type stubs. Verify all packages exist in the public registry before `pip install` or `npm install`.
52
+
53
+ ---
54
+
55
+ ### AP-02: Outdated Patterns
56
+
57
+ **Also known as:** Temporal Mismatch, Legacy Style, Training Data Lag
58
+ **Frequency:** Very Common
59
+ **Severity:** High
60
+ **Detection difficulty:** Hard
61
+
62
+ **What it looks like:**
63
+
64
+ ```javascript
65
+ // AI writes class components in React 2025
66
+ class UserProfile extends React.Component {
67
+ constructor(props) {
68
+ super(props);
69
+ this.state = { user: null };
70
+ }
71
+ componentDidMount() { /* ... */ }
72
+ render() { return <div>{this.state.user?.name}</div>; }
73
+ }
74
+ // Class components have been discouraged since React 16.8 (2019)
75
+ ```
76
+
77
+ **Why AI agents do it:**
78
+
79
+ Training data overrepresents older patterns because they existed longer and appear in more Stack Overflow answers and GitHub repos. A 2024 study of seven LLMs across 145 API mappings from eight Python libraries found systematic deprecated API usage. Frequency in training data acts as a confidence proxy, so older patterns score higher.
80
+
81
+ **What goes wrong:**
82
+
83
+ Code misses performance improvements, security patches, and ergonomic features. Deprecated APIs become removal time bombs. Developers propagate outdated practices learned from AI output.
84
+
85
+ **The fix:**
86
+
87
+ Specify exact framework version and patterns: "Using React 19 with functional components and hooks only -- no class components." Include a "do not use" list for known deprecated APIs.
88
+
89
+ **Detection rule:**
90
+
91
+ Maintain a deprecated-API watchlist per framework. Flag `class X extends React.Component`, `componentDidMount` in React. Flag `flask.ext.*` imports. Cross-reference against deprecation changelogs.
92
+
93
+ ---
94
+
95
+ ### AP-03: Context Blindness
96
+
97
+ **Also known as:** Codebase Ignorance, Island Code, Convention Deafness
98
+ **Frequency:** Very Common
99
+ **Severity:** High
100
+ **Detection difficulty:** Moderate
101
+
102
+ **What it looks like:**
103
+
104
+ ```typescript
105
+ // Existing codebase has a centralized API client with interceptors
106
+ // AI generates a standalone fetch call ignoring all of it:
107
+ async function getUser(id: string) {
108
+ const response = await fetch(`https://api.example.com/users/${id}`, {
109
+ headers: { 'Authorization': `Bearer ${localStorage.getItem('token')}` }
110
+ });
111
+ return response.json();
112
+ }
113
+ // The codebase already has: apiClient.get<User>(`/users/${id}`)
114
+ // with automatic auth, retry, error handling, and type inference
115
+ ```
116
+
117
+ **Why AI agents do it:**
118
+
119
+ The AI operates on whatever is in its context window. JetBrains (2025) research shows that as context grows, the attention mechanism deprioritizes foundational instructions in favor of recent tokens. The AI defaults to "standard" implementations from training data rather than matching codebase conventions.
120
+
121
+ **What goes wrong:**
122
+
123
+ Parallel implementations diverge over time. Centralized error handling, logging, and retry logic are bypassed. Hardcoded URLs and tokens bypass configuration management. New developers assume AI output represents project conventions.
124
+
125
+ **The fix:**
126
+
127
+ Include an `architecture.md` describing patterns, API clients, and utilities. After generation, search for existing utilities: `grep -r "function.*getUser\|fetchUser"`.
128
+
129
+ **Detection rule:**
130
+
131
+ Flag `fetch`, `axios`, or `http` imports when the project has a centralized API client. Flag hardcoded URLs or tokens. Flag new utility functions whose signatures match existing ones.
132
+
133
+ ---
134
+
135
+ ### AP-04: Confident Wrongness
136
+
137
+ **Also known as:** Authoritative Incorrectness, Hallucinated Certainty, Plausible Nonsense
138
+ **Frequency:** Common
139
+ **Severity:** Critical
140
+ **Detection difficulty:** Very Hard
141
+
142
+ **What it looks like:**
143
+
144
+ ```python
145
+ def verify_token(token: str) -> dict:
146
+ """Verify and decode a JWT token."""
147
+ decoded = jwt.decode(
148
+ token,
149
+ options={"verify_signature": False} # AI: "decode first, verify after"
150
+ )
151
+ # Signature verification DISABLED -- accepts any forged token
152
+ return decoded
153
+ ```
154
+
155
+ **Why AI agents do it:**
156
+
157
+ LLMs have no internal uncertainty signal mapped to correctness -- equally confident when right and wrong. Research shows ChatGPT is wrong more than half the time on Stack Overflow questions, yet programmers failed to identify incorrect answers 39.34% of the time. IEEE Spectrum reported newer LLMs fail more "insidiously" -- older models produced broken syntax, while newer models produce plausible code with subtle logical flaws requiring domain expertise to detect.
158
+
159
+ **What goes wrong:**
160
+
161
+ Security vulnerabilities ship because code "looked right." The JWT example passes all functional tests while accepting forged tokens. Newer models increasingly generate code that avoids crashes by removing safety checks or creating fake output matching the desired format.
162
+
163
+ **The fix:**
164
+
165
+ Treat every AI-generated security-critical path as untrusted. Require explicit verification: "Show me where signature verification happens and what happens when it fails." Cross-reference against official documentation.
166
+
167
+ **Detection rule:**
168
+
169
+ Flag `verify_signature: False`, `verify: False`, `check_hostname=False`. Flag auth code lacking explicit failure paths. Require documentation citations for security-critical functions.
170
+
171
+ ---
172
+
173
+ ### AP-05: Over-Engineering
174
+
175
+ **Also known as:** Astronaut Architecture, Abstraction Addiction, Enterprise-Grade Hello World
176
+ **Frequency:** Common
177
+ **Severity:** Medium
178
+ **Detection difficulty:** Easy
179
+
180
+ **What it looks like:**
181
+
182
+ ```java
183
+ // User asks: "Send a welcome email"
184
+ // AI generates: AbstractEmailService, EmailServiceFactory,
185
+ // EmailTemplateStrategy, WelcomeEmailServiceImpl...
186
+ // 200 lines to send one email.
187
+ // What was needed:
188
+ // sendEmail(to, "Welcome!", renderTemplate("welcome", {name}))
189
+ ```
190
+
191
+ **Why AI agents do it:**
192
+
193
+ Training data from enterprise codebases overrepresents design patterns. RLHF rewards "thorough" responses, biasing toward elaborate output. Augment Code (2025) found AI tools make experienced developers 19% slower, partly from simplifying over-engineered AI output.
194
+
195
+ **What goes wrong:**
196
+
197
+ Simple features become hard to understand and debug. Abstractions are speculative -- built for flexibility never exercised. Boilerplate-to-logic ratios exceed 3:1.
198
+
199
+ **The fix:**
200
+
201
+ State constraints: "Single function, no interfaces or abstract classes unless two implementations already exist." Apply the rule of three: no abstraction until the third use case.
202
+
203
+ **Detection rule:**
204
+
205
+ Flag interfaces with one implementation. Flag abstract classes with one subclass. Flag boilerplate-to-logic ratios above 3:1.
206
+
207
+ ---
208
+
209
+ ### AP-06: Partial Updates
210
+
211
+ **Also known as:** Incomplete Refactoring, Dangling References, Half-Done Migration
212
+ **Frequency:** Very Common
213
+ **Severity:** Critical
214
+ **Detection difficulty:** Moderate
215
+
216
+ **What it looks like:**
217
+
218
+ ```python
219
+ # AI renames function in auth/service.py
220
+ def authenticate_user(email, password): # renamed from verify_user
221
+ ...
222
+
223
+ # routes/login.py -- NOT updated
224
+ from auth.service import verify_user # ImportError at runtime
225
+ ```
226
+
227
+ **Why AI agents do it:**
228
+
229
+ The AI processes files individually. Refactoring is a graph traversal problem -- changes cascade to call sites, types, imports, tests, and docs. VentureBeat (2025) identified broken refactors as a key reason AI agents are not production-ready: agents update definitions but miss call sites, and even when prompted to update references, the process is slow and error-prone. The 66% developer frustration rate with "almost right" AI solutions is largely driven by this pattern.
230
+
231
+ **What goes wrong:**
232
+
233
+ `ImportError` or `NameError` in files the AI never touched. In dynamic languages, errors surface only when affected code paths execute -- potentially in production.
234
+
235
+ **The fix:**
236
+
237
+ After any rename: "Search the entire codebase for all references to the old name and update every occurrence." Run `mypy .`, `tsc --noEmit`, or `grep -rn "old_name"`.
238
+
239
+ **Detection rule:**
240
+
241
+ Flag any diff modifying a function signature without corresponding changes in importing files. Run `grep` for the old name -- remaining hits indicate partial update.
242
+
243
+ ---
244
+
245
+ ### AP-07: Broken Imports
246
+
247
+ **Also known as:** Import Hallucination, Module Confusion, Path Fabrication
248
+ **Frequency:** Very Common
249
+ **Severity:** High
250
+ **Detection difficulty:** Easy
251
+
252
+ **What it looks like:**
253
+
254
+ ```javascript
255
+ import { useAuth } from '@/hooks/useAuth'; // actual: '@/composables/useAuth'
256
+ import { Button } from '@mui/core'; // actual: '@mui/material'
257
+ import { createClient } from '@supabase/supabase'; // actual: '@supabase/supabase-js'
258
+ ```
259
+
260
+ **Why AI agents do it:**
261
+
262
+ Import paths combine three failure modes: (1) library restructuring between versions, (2) project-specific path conventions that vary per codebase, (3) similar-sounding package names. The model generates the most statistically likely path from training data.
263
+
264
+ **What goes wrong:**
265
+
266
+ Immediate `ModuleNotFoundError`. With JavaScript bundlers that have silent fallbacks, the wrong module may be imported with different behavior.
267
+
268
+ **The fix:**
269
+
270
+ Examine existing import patterns: `grep -rn "import.*from" --include="*.ts" | head -20`. Verify package names against `package.json` or `requirements.txt`.
271
+
272
+ **Detection rule:**
273
+
274
+ Run `tsc --noEmit` or attempt each import in isolation. Flag `@/` paths not matching existing files. Flag library imports not in the dependency file.
275
+
276
+ ---
277
+
278
+ ### AP-08: Test Theater
279
+
280
+ **Also known as:** Green Wash Testing, Coverage Illusion, Tautological Tests
281
+ **Frequency:** Very Common
282
+ **Severity:** Critical
283
+ **Detection difficulty:** Hard
284
+
285
+ **What it looks like:**
286
+
287
+ ```python
288
+ # Tautology: asserts code equals itself
289
+ def test_calculate_discount():
290
+ result = calculate_discount(100, 0.2)
291
+ assert result == calculate_discount(100, 0.2) # always passes
292
+
293
+ # Mirror: re-implements the function
294
+ def test_tax():
295
+ assert calculate_tax(100) == 100 * 0.08 # just re-implements
296
+
297
+ # Mock theater: tests that the mock works
298
+ def test_user_service():
299
+ mock_repo = Mock()
300
+ mock_repo.find.return_value = User(name="Alice")
301
+ service = UserService(mock_repo)
302
+ assert service.get_user(1).name == "Alice" # only tests mock config
303
+ ```
304
+
305
+ **Why AI agents do it:**
306
+
307
+ The AI reads the implementation and generates assertions it satisfies. It has no independent specification to derive what code *should* do. On real-world code, LLM-generated tests hit only 40% mutation kills -- they execute every line but miss 96% of potential bugs. The ground truth problem means the AI's only source of truth is the potentially-buggy code itself.
308
+
309
+ **What goes wrong:**
310
+
311
+ 100% coverage with zero defect detection. Bugs survive because tests match buggy behavior. Teams reduce manual testing, shipping defects with false confidence.
312
+
313
+ **The fix:**
314
+
315
+ Write tests from requirements, not code: "Test that 20% discount on $100 yields $80." Use mutation testing (mutmut, Stryker). Require at least one spec-derived test per function.
316
+
317
+ **Detection rule:**
318
+
319
+ Flag assertions replicating implementation logic. Flag tests where every assertion passes on first run. Flag tests asserting only mock return values. Run mutation testing: surviving mutants indicate theatrical tests.
320
+
321
+ ---
322
+
323
+ ### AP-09: Security Blindspot
324
+
325
+ **Also known as:** Insecure Defaults, Vulnerability Planting, Happy-Path Security
326
+ **Frequency:** Common
327
+ **Severity:** Critical
328
+ **Detection difficulty:** Hard
329
+
330
+ **What it looks like:**
331
+
332
+ ```python
333
+ # SQL injection
334
+ def search_users(query: str):
335
+ cursor.execute(f"SELECT * FROM users WHERE name LIKE '%{query}%'")
336
+
337
+ # Path traversal
338
+ @app.route('/upload', methods=['POST'])
339
+ def upload():
340
+ file = request.files['file']
341
+ file.save(os.path.join('/uploads', file.filename))
342
+
343
+ # Hardcoded secret
344
+ JWT_SECRET = "super-secret-key-12345"
345
+ ```
346
+
347
+ **Why AI agents do it:**
348
+
349
+ Security is a negative requirement -- defining what must NOT happen, which is harder for a predictor optimized for what SHOULD happen. Veracode's 2025 report found 45% of AI-generated code contains security vulnerabilities, with Java at over 70% failure rates. Missing input sanitization is the most common flaw; models generate insecure code 88% of the time for Log Injection. Repositories using Copilot leak 40% more secrets. The "Rules File Backdoor" attack showed hidden unicode in AI config files can instruct agents to inject malicious code.
350
+
351
+ **What goes wrong:**
352
+
353
+ SQL injection enables data exfiltration. Path traversal allows reading `/etc/passwd`. Hardcoded secrets are scraped by bots within minutes. Architectural drift -- subtle design changes breaking security invariants without violating syntax -- evades static analysis and human reviewers.
354
+
355
+ **The fix:**
356
+
357
+ Security checklist per task: parameterized queries, input validation, secrets from environment only. Run SAST tools (Semgrep, Bandit) on all AI output. Include adversarial inputs in tests.
358
+
359
+ **Detection rule:**
360
+
361
+ Flag string interpolation in SQL. Flag `file.save()` without sanitization. Flag high-entropy string literals. Flag routes without auth middleware. Run `bandit -r .` or `semgrep --config=p/security-audit`.
362
+
363
+ ---
364
+
365
+ ### AP-10: Eager Rewrite
366
+
367
+ **Also known as:** Scorched Earth Refactoring, Rewrite Compulsion, Clean Slate Syndrome
368
+ **Frequency:** Common
369
+ **Severity:** High
370
+ **Detection difficulty:** Easy
371
+
372
+ **What it looks like:**
373
+
374
+ ```
375
+ # User: "Fix the off-by-one error in pagination"
376
+ # AI: "I've rewritten the entire pagination module with improved structure!"
377
+ # Original: 200 lines, one bug on line 47
378
+ # Result: 350 lines, different structure, bug fixed, new bugs introduced
379
+ ```
380
+
381
+ **Why AI agents do it:**
382
+
383
+ Generating new code is the model's core competency. Surgical editing requires understanding precise semantics and preserving all behavior except the fix. When encountering "messy" code, the model is biased toward rewriting. In autonomous fix mode, agents "helpfully" refactor adjacent code, triggering chains of regressions.
384
+
385
+ **What goes wrong:**
386
+
387
+ Working code replaced with untested code. Subtle edge-case handling silently dropped. Diffs become unreviewable. Regression bugs appear in unrelated areas.
388
+
389
+ **The fix:**
390
+
391
+ Constrain scope: "Change ONLY lines necessary to fix the bug. Do not rename, restructure, or change unrelated lines." Review diffs line-by-line.
392
+
393
+ **Detection rule:**
394
+
395
+ If >20% of file changed for a single bug fix, flag for review. Flag variable renames not in the task. Flag new functions added during bug fixes.
396
+
397
+ ---
398
+
399
+ ### AP-11: Scope Creep
400
+
401
+ **Also known as:** Feature Drift, Gold Plating, Unsolicited Enhancement
402
+ **Frequency:** Common
403
+ **Severity:** Medium
404
+ **Detection difficulty:** Easy
405
+
406
+ **What it looks like:**
407
+
408
+ ```python
409
+ # User: "Add a /health endpoint that returns 200 OK"
410
+ # AI generates: database checks, Redis checks, disk space, memory usage,
411
+ # uptime, version info, degraded status logic...
412
+ # User wanted: return jsonify({'status': 'ok'}), 200
413
+ ```
414
+
415
+ **Why AI agents do it:**
416
+
417
+ RLHF rewards "helpful" and "thorough," biasing toward more rather than less. Training data associates health endpoints with comprehensive monitoring. Red Hat (2026) noted that without specifications, AI overengineers or underdelivers, and constraints that list scope prevent hallucinations about irrelevant features.
418
+
419
+ **What goes wrong:**
420
+
421
+ New dependencies, failure modes, and maintenance burden. The health endpoint fails when Redis is down, even if the app does not use Redis.
422
+
423
+ **The fix:**
424
+
425
+ Be explicit: "Implement ONLY a /health endpoint returning `{'status': 'ok'}` with HTTP 200. No dependency checks." Delete everything not requested.
426
+
427
+ **Detection rule:**
428
+
429
+ Compare functionality against request word-by-word. Flag functions not mentioned in the task. Flag new imports not in existing dependencies.
430
+
431
+ ---
432
+
433
+ ### AP-12: Missing Error Handling
434
+
435
+ **Also known as:** Happy Path Only, Optimistic Programming, Silent Failure
436
+ **Frequency:** Very Common
437
+ **Severity:** High
438
+ **Detection difficulty:** Moderate
439
+
440
+ **What it looks like:**
441
+
442
+ ```javascript
443
+ async function fetchUserData(userId) {
444
+ const response = await fetch(`/api/users/${userId}`);
445
+ const data = await response.json();
446
+ return data;
447
+ // Network down? Server 404? Response not JSON? userId null?
448
+ }
449
+ ```
450
+
451
+ **Why AI agents do it:**
452
+
453
+ Error handling is verbose and context-dependent. Training examples omit it for brevity. The AI cannot predict deployment failure modes: timeouts, disk full, permissions, concurrency. Research shows AI code particularly produces "silent failures" -- code that runs in testing but fails under real-world conditions with memory leaks, pagination bugs on large datasets, and race conditions.
454
+
455
+ **What goes wrong:**
456
+
457
+ Unhandled exceptions crash the app or produce generic 500 errors with no diagnostic information. Failures surface only under specific conditions in production.
458
+
459
+ **The fix:**
460
+
461
+ For every function, ask: "What are the failure modes?" Require every HTTP call to check response status, every JSON parse to handle errors, every file operation to handle missing files.
462
+
463
+ **Detection rule:**
464
+
465
+ Flag `fetch()` without `.ok` checks. Flag `JSON.parse()` without try/catch. Flag I/O functions without error handling.
466
+
467
+ ---
468
+
469
+ ### AP-13: Copy-Paste Duplication
470
+
471
+ **Also known as:** Clone-and-Modify, Redundant Implementation, Utility Blindness
472
+ **Frequency:** Common
473
+ **Severity:** Medium
474
+ **Detection difficulty:** Moderate
475
+
476
+ **What it looks like:**
477
+
478
+ ```python
479
+ # AI generates identical email validation in routes/users.py,
480
+ # routes/invitations.py, and routes/contacts.py:
481
+ if not re.match(r'^[\w.+-]+@[\w-]+\.[\w.]+$', request.json['email']):
482
+ return jsonify({'error': 'invalid email'}), 400
483
+ # Three copies of the same regex, same error message, same logic
484
+ ```
485
+
486
+ **Why AI agents do it:**
487
+
488
+ Each prompt is processed with limited awareness of other files. The model generates self-contained solutions because training examples are standalone. Even with both files in context, statistical preference favors complete code blocks.
489
+
490
+ **What goes wrong:**
491
+
492
+ When the regex needs updating, it must change in every copy. Missed copies become inconsistent bugs. The codebase grows larger without growing more capable.
493
+
494
+ **The fix:**
495
+
496
+ Review for duplicated logic and extract shared functions. Instruct: "Check if the codebase already has validation utilities." Run jscpd or PMD CPD.
497
+
498
+ **Detection rule:**
499
+
500
+ Flag 5+ identical lines in multiple files. Flag identical regex patterns across files. Flag functions with matching signatures and similar bodies in different modules.
501
+
502
+ ---
503
+
504
+ ### AP-14: Framework Mismatch
505
+
506
+ **Also known as:** Framework Confusion, Paradigm Mixing, Stack Contamination
507
+ **Frequency:** Common
508
+ **Severity:** High
509
+ **Detection difficulty:** Moderate
510
+
511
+ **What it looks like:**
512
+
513
+ ```python
514
+ # FastAPI project, but AI generates Django ORM:
515
+ user = User.objects.get(pk=user_id) # Django ORM in FastAPI
516
+ # Should be: await db.execute(select(User).where(User.id == user_id))
517
+ ```
518
+
519
+ **Why AI agents do it:**
520
+
521
+ Framework APIs share conceptual similarities. The model draws from Flask, Django, FastAPI, and Bottle simultaneously when prompted for "Python web API." Within ecosystems (Vue 2 vs 3, React class vs hooks), distinctions are harder because the same library name is used.
522
+
523
+ **What goes wrong:**
524
+
525
+ Obvious cases fail immediately. Subtle cases -- synchronous ORM in async framework -- work in development but deadlock under concurrent load.
526
+
527
+ **The fix:**
528
+
529
+ State exact framework and version: "FastAPI 0.110 with SQLAlchemy 2.0 async." Include examples of existing patterns.
530
+
531
+ **Detection rule:**
532
+
533
+ Cross-reference every import against `package.json`, `requirements.txt`, or `go.mod`. Flag imports from frameworks not in the dependency file. Flag synchronous I/O in async frameworks.
534
+
535
+ ---
536
+
537
+ ### AP-15: State Inconsistency
538
+
539
+ **Also known as:** State Desync, Orphaned State, Update Amnesia
540
+ **Frequency:** Common
541
+ **Severity:** High
542
+ **Detection difficulty:** Hard
543
+
544
+ **What it looks like:**
545
+
546
+ ```javascript
547
+ async function updateUserEmail(userId, newEmail) {
548
+ await db.users.update({ id: userId }, { email: newEmail });
549
+ return { success: true };
550
+ // Cache still has old email -- reads return stale data
551
+ // Search index not updated -- user unfindable by new email
552
+ }
553
+ ```
554
+
555
+ **Why AI agents do it:**
556
+
557
+ State dependencies are implicit and distributed. The AI sees the explicit operation but not implicit dependencies: cache invalidation, derived state recalculation, event emission, audit logs. These depend on convention and tribal knowledge absent from visible code.
558
+
559
+ **What goes wrong:**
560
+
561
+ Users see stale data. Shopping carts show wrong totals. In distributed systems, inconsistency propagates through event queues, creating cascading data corruption that is intermittent and environment-dependent.
562
+
563
+ **The fix:**
564
+
565
+ Document state dependencies: "When updating email: invalidate cache, update search index, update notification preferences." After any mutation, ask: "What else reads this data?"
566
+
567
+ **Detection rule:**
568
+
569
+ Flag database writes without cache invalidation when a caching layer exists. Flag state mutations without derived state updates. Search for the updated field across the codebase.
570
+
571
+ ---
572
+
573
+ ### AP-16: Ignoring Constraints
574
+
575
+ **Also known as:** Requirement Blindness, Specification Drift, Constraint Amnesia
576
+ **Frequency:** Common
577
+ **Severity:** High
578
+ **Detection difficulty:** Moderate
579
+
580
+ **What it looks like:**
581
+
582
+ ```python
583
+ # Prompt: "Use ONLY the standard library. No external packages."
584
+ import requests # external -- violates constraint
585
+ import pandas as pd # external -- violates constraint
586
+ ```
587
+
588
+ **Why AI agents do it:**
589
+
590
+ LLMs are weaker at adhering to negations than affirmations. The concrete task ("fetch data") receives more attention than the constraint ("stdlib only"). `requests` and `pandas` are so strongly associated with their tasks in training data that they override explicit constraints. In long prompts, early constraints may fall outside effective attention.
591
+
592
+ **What goes wrong:**
593
+
594
+ Architectural decisions violated: dependency restrictions, performance budgets, compatibility requirements. External packages in constrained environments cause deployment failures.
595
+
596
+ **The fix:**
597
+
598
+ State constraints at beginning AND end (recency bias). Make constraints verifiable: "Zero imports outside Python stdlib." Mechanically verify post-generation.
599
+
600
+ **Detection rule:**
601
+
602
+ Extract constraints as a checklist. Verify each mechanically: count queries, check imports, measure sizes. Flag prohibited patterns.
603
+
604
+ ---
605
+
606
+ ### AP-17: Plausible-But-Wrong Logic
607
+
608
+ **Also known as:** Semantic Correctness Failure, Almost-Right Algorithm, Statistical Confidence Bug
609
+ **Frequency:** Common
610
+ **Severity:** Critical
611
+ **Detection difficulty:** Very Hard
612
+
613
+ **What it looks like:**
614
+
615
+ ```python
616
+ def next_business_day(date):
617
+ next_day = date + timedelta(days=1)
618
+ while next_day.weekday() in [5, 6]:
619
+ next_day += timedelta(days=1)
620
+ return next_day
621
+ # Ignores holidays. In financial systems: incorrect settlement dates.
622
+
623
+ def binary_search(arr, target):
624
+ low, high = 0, len(arr) - 1
625
+ while low <= high:
626
+ mid = (low + high) // 2 # overflow in fixed-width integer languages
627
+ ...
628
+ # Safe in Python, wrong when ported to Java/C++.
629
+ ```
630
+
631
+ **Why AI agents do it:**
632
+
633
+ The model generates structurally similar code to correct implementations but lacks understanding of invariants and domain-specific requirements. The binary search overflow bug existed in Java's stdlib for nine years. IEEE Spectrum found newer LLMs produce "silent failures" -- code avoiding crashes by removing safety checks or creating fake output matching the desired format.
634
+
635
+ **What goes wrong:**
636
+
637
+ Passes simple tests, fails on edge cases surfacing months later. Off-by-one in pagination appears only with large datasets. Time zone bugs appear only in specific regions. Financial errors accumulate over thousands of transactions.
638
+
639
+ **The fix:**
640
+
641
+ Request invariant explanations. Use property-based testing (Hypothesis, fast-check). Specify exact domain rules including edge cases: "Business days exclude weekends AND holidays from this list."
642
+
643
+ **Detection rule:**
644
+
645
+ Flag algorithms without edge-case tests. Flag date operations without timezone handling. Flag financial calculations using floating-point. Flag loops without termination proofs.
646
+
647
+ ---
648
+
649
+ ### AP-18: Fake Progress
650
+
651
+ **Also known as:** Stub Hell, TODO-Driven Development, Placeholder Permanence
652
+ **Frequency:** Common
653
+ **Severity:** High
654
+ **Detection difficulty:** Moderate
655
+
656
+ **What it looks like:**
657
+
658
+ ```python
659
+ class AuthenticationService:
660
+ def login(self, email, password) -> str:
661
+ # TODO: implement login
662
+ return "fake-token"
663
+
664
+ def verify_token(self, token) -> User:
665
+ # TODO: implement verification
666
+ return User(id=1, email="test@test.com") # hardcoded!
667
+
668
+ def reset_password(self, email) -> bool:
669
+ # TODO: implement
670
+ return True # always succeeds
671
+ ```
672
+
673
+ **Why AI agents do it:**
674
+
675
+ When tasks exceed context or knowledge limits, the model generates structure (inferrable from patterns) while leaving substance as stubs. Stubs return plausible defaults that allow calling code to function, creating the illusion of a working system. The model may also hit output length limits.
676
+
677
+ **What goes wrong:**
678
+
679
+ Stubs enter version control because they "work." `verify_token` accepts any string as valid authentication. `reset_password` always returns True. These are active security vulnerabilities disguised as implementations.
680
+
681
+ **The fix:**
682
+
683
+ Ban `pass`, `TODO`, and hardcoded returns in production. Require `raise NotImplementedError("description")` for unfinished code. Search for `TODO`, `FIXME`, `pass`, `return True`, `return []`.
684
+
685
+ **Detection rule:**
686
+
687
+ Flag functions whose body is `pass`, `return None`, `return True`, or a hardcoded literal. Flag functions containing `TODO`/`FIXME`. Flag functions returning values without referencing their parameters.
688
+
689
+ ---
690
+
691
+ ### AP-19: Over-Mocking
692
+
693
+ **Also known as:** Mock Abuse, Test Isolation Theater, Dependency Erasure
694
+ **Frequency:** Common
695
+ **Severity:** High
696
+ **Detection difficulty:** Moderate
697
+
698
+ **What it looks like:**
699
+
700
+ ```python
701
+ def test_process_order():
702
+ mock_db = Mock()
703
+ mock_cache = Mock()
704
+ mock_payment = Mock()
705
+ mock_email = Mock()
706
+ mock_inventory = Mock()
707
+ mock_payment.charge.return_value = PaymentResult(success=True)
708
+ mock_inventory.check.return_value = True
709
+ mock_db.save.return_value = Order(id=1)
710
+
711
+ service = OrderService(mock_db, mock_cache, mock_payment,
712
+ mock_email, mock_inventory)
713
+ result = service.process(order_data)
714
+ assert result.success == True # tests mock returns what we told it
715
+ mock_payment.charge.assert_called_once() # tests we called the mock
716
+ # NOT tested: charge amount, inventory decrement, email content, failure paths
717
+ ```
718
+
719
+ **Why AI agents do it:**
720
+
721
+ A 2025 empirical study found AI agents use mock-type test doubles 95% of the time, versus varied doubles from human developers. Mocks make any test pass by construction. Mocked tests require no infrastructure setup. The agent's success criterion is passing tests -- it will mock the module under test itself to achieve that goal.
722
+
723
+ **What goes wrong:**
724
+
725
+ Tests pass when code is correct and when it is broken. If `process()` sends the wrong payment amount, tests still pass. When real APIs change interfaces, mocks use the old interface and stay green while production breaks.
726
+
727
+ **The fix:**
728
+
729
+ Testing pyramid: unit tests for pure logic (no mocks), integration tests with real dependencies, minimal mocking for truly external services. For every mock, ask: "What behavior am I hiding?" Require at least one integration test per critical path.
730
+
731
+ **Detection rule:**
732
+
733
+ Flag tests creating more than 3 mocks. Flag tests asserting only mock return values or `assert_called`. Flag test files with `Mock()` appearing 10+ times. Require 30% integration tests.
734
+
735
+ ---
736
+
737
+ ### AP-20: Resumption Errors
738
+
739
+ **Also known as:** Context Amnesia, Session Fragmentation, Continuity Failure
740
+ **Frequency:** Common
741
+ **Severity:** High
742
+ **Detection difficulty:** Hard
743
+
744
+ **What it looks like:**
745
+
746
+ ```python
747
+ # Session 1: "Use UUID for all entity IDs"
748
+ class User:
749
+ id: UUID
750
+ class Order:
751
+ id: UUID
752
+ user_id: UUID
753
+
754
+ # Session 2 (after context reset): forgets UUID decision
755
+ class Product:
756
+ id: int # auto-increment -- contradicts UUID decision
757
+ class OrderItem:
758
+ order_id: int # should be UUID to match Order.id
759
+ ```
760
+
761
+ **Why AI agents do it:**
762
+
763
+ LLMs are fundamentally stateless. Each session begins fresh. After 30-60 minutes, agents forget earlier decisions, re-read processed files, contradict prior choices, and eventually undo their own work. Research shows agents continue working confidently with incomplete context, producing "increasingly unreliable outputs." The more text in context, the harder attention prioritizes foundational rules -- recent tokens overpower older instructions.
764
+
765
+ **What goes wrong:**
766
+
767
+ Type mismatches between entities from different sessions: `Order.id` is UUID but `OrderItem.order_id` is int. Convention drift: `camelCase` early, `snake_case` later. Error strategy changes: Result types early, exceptions later. The codebase reads as if written by developers who never communicated.
768
+
769
+ **The fix:**
770
+
771
+ Maintain `architecture.md` documenting all conventions. Include it in every session. After breaks, re-inject decisions: "We use UUIDs, snake_case, Result types." Review existing models before generating new ones.
772
+
773
+ **Detection rule:**
774
+
775
+ Diff generated code against existing patterns. Flag type mismatches in related fields. Flag naming inconsistencies across files. Run consistency checks: `grep -rn "id:" --include="*.py" | sort`.
776
+
777
+ ---
778
+
779
+ ## Root Cause Analysis
780
+
781
+ | Root Cause | Contributing Anti-Patterns | Systemic Fix |
782
+ |---|---|---|
783
+ | **Training data is a snapshot, not current reality** | AP-01, AP-02, AP-07 | Pin library versions; verify imports against installed packages; approved package registries |
784
+ | **No persistent memory across sessions** | AP-03, AP-15, AP-20 | Architecture decision records; convention files in every session; explicit re-injection after compaction |
785
+ | **Optimized for plausibility, not correctness** | AP-04, AP-17, AP-18 | Adversarial testing; require invariant proofs; ban stubs in production; independent specification |
786
+ | **No ground truth or specification** | AP-08, AP-12, AP-19 | TDD with spec-derived tests; mutation testing; integration tests with real dependencies |
787
+ | **Negative requirements weakly attended** | AP-09, AP-16 | Constraints at start AND end of prompt; automated SAST scanning; mechanical constraint verification |
788
+ | **Reward model favors length and completeness** | AP-05, AP-11, AP-13 | Explicit scope boundaries; minimal-change principle; complexity budgets; delete unrequested code |
789
+ | **File-at-a-time processing limits** | AP-06, AP-14, AP-03 | Full-codebase grep after refactoring; type checker as gate; framework-specific linting |
790
+ | **Generation easier than editing** | AP-10, AP-13 | "Change only these lines" instructions; diff-size limits; reject rewrites for bug fixes |
791
+
792
+ ## Self-Check Questions
793
+
794
+ An AI coding agent should ask itself these questions before submitting generated code:
795
+
796
+ 1. **Import verification:** Have I confirmed every import path exists and every library function I called exists in the installed version?
797
+
798
+ 2. **Version currency:** Am I using the current API for this library version, or patterns from an older version in my training data?
799
+
800
+ 3. **Codebase alignment:** Does this code follow the existing project's conventions for naming, error handling, and architecture? Have I checked neighboring files?
801
+
802
+ 4. **Confidence calibration:** Am I confident because I verified correctness, or because it looks right? For security code, have I cited documentation?
803
+
804
+ 5. **Scope discipline:** Am I implementing exactly what was requested? Can I map every function to a specific requirement?
805
+
806
+ 6. **Completeness of change:** If I renamed something, have I updated EVERY reference? Have I run grep for the old name?
807
+
808
+ 7. **Error path coverage:** For every external call, what happens when it fails? Have I handled that explicitly?
809
+
810
+ 8. **Test independence:** Do my tests verify behavior against a spec, or confirm what the code currently does? Would any test catch a bug?
811
+
812
+ 9. **Security posture:** Is every input validated? Are there hardcoded secrets, disabled checks, or missing auth gates?
813
+
814
+ 10. **Minimal change:** If fixing a bug, did I change only necessary lines? Or did I rewrite beyond scope?
815
+
816
+ 11. **State consistency:** If I mutated state, have I updated all caches, derived values, and dependent computations?
817
+
818
+ 12. **Constraint compliance:** Have I re-read every constraint and verified compliance -- dependencies, performance budgets, prohibited patterns?
819
+
820
+ 13. **Stub detection:** Are there functions returning hardcoded values or containing TODO? Will they fail loudly or silently?
821
+
822
+ 14. **Framework fidelity:** Am I using patterns from the correct framework and version?
823
+
824
+ 15. **Continuity check:** After a session break, have I reviewed existing code for conventions before generating new code?
825
+
826
+ ## Code Smell Quick Reference
827
+
828
+ | Anti-Pattern | Severity | Frequency | Key Signal | First Action |
829
+ |---|---|---|---|---|
830
+ | AP-01 Hallucinated APIs | Critical | Very Common | `AttributeError` on AI call | Verify against library docs |
831
+ | AP-02 Outdated Patterns | High | Very Common | Deprecated API warnings | Check migration guide |
832
+ | AP-03 Context Blindness | High | Very Common | Duplicates existing utility | Search codebase first |
833
+ | AP-04 Confident Wrongness | Critical | Common | No hedging on complex logic | Cross-ref official docs |
834
+ | AP-05 Over-Engineering | Medium | Common | Interface with 1 impl | Delete single-use abstractions |
835
+ | AP-06 Partial Updates | Critical | Very Common | `ImportError` after rename | Grep old name across codebase |
836
+ | AP-07 Broken Imports | High | Very Common | `ModuleNotFoundError` | Run type checker |
837
+ | AP-08 Test Theater | Critical | Very Common | 100% coverage, 0 mutation kills | Run mutation testing |
838
+ | AP-09 Security Blindspot | Critical | Common | String concat in SQL | Run SAST tools |
839
+ | AP-10 Eager Rewrite | High | Common | Diff too large for task | Reject if >20% changed |
840
+ | AP-11 Scope Creep | Medium | Common | Features not requested | Delete unrequested code |
841
+ | AP-12 Missing Error Handling | High | Very Common | No try/catch around I/O | Add failure handling |
842
+ | AP-13 Copy-Paste Duplication | Medium | Common | Identical blocks in files | Extract shared utility |
843
+ | AP-14 Framework Mismatch | High | Common | Wrong framework import | Check dependency file |
844
+ | AP-15 State Inconsistency | High | Common | Stale cache after write | Audit caches after mutation |
845
+ | AP-16 Ignoring Constraints | High | Common | External pkg when stdlib required | Verify constraints mechanically |
846
+ | AP-17 Plausible-But-Wrong | Critical | Common | Passes simple, fails edge | Property-based testing |
847
+ | AP-18 Fake Progress | High | Common | Hardcoded return values | Ban pass/TODO in production |
848
+ | AP-19 Over-Mocking | High | Common | More mocks than assertions | Require integration tests |
849
+ | AP-20 Resumption Errors | High | Common | Mixed ID types across files | Architecture file in every session |
850
+
851
+ ---
852
+
853
+ *Researched: 2026-03-08 | Sources: [CodeRabbit AI vs Human Code Generation Report (2026)](https://www.coderabbit.ai/blog/state-of-ai-vs-human-code-generation-report); [USENIX Security 2025: Package Hallucination Study](https://arxiv.org/abs/2406.10279); [Aikido: Slopsquatting Attacks](https://www.aikido.dev/blog/slopsquatting-ai-package-hallucination-attacks); [Simon Willison: Hallucinations in Code](https://simonwillison.net/2025/Mar/2/hallucinations-in-code/); [IEEE Spectrum: AI Coding Degrades](https://spectrum.ieee.org/ai-coding-degrades); [Stack Overflow: Bugs with AI Agents (2026)](https://stackoverflow.blog/2026/01/28/are-bugs-and-incidents-inevitable-with-ai-coding-agents/); [Veracode 2025 GenAI Code Security Report](https://www.veracode.com/blog/secure-ai-code-generation-in-practice/); [arXiv: LLMs Meet Library Evolution](https://arxiv.org/abs/2406.09834); [arXiv: Deep Dive Into LLM Code Mistakes](https://arxiv.org/html/2411.01414v1); [arXiv: Over-Mocked Tests by Coding Agents](https://arxiv.org/pdf/2602.00409); [VentureBeat: AI Agents Not Production-Ready](https://venturebeat.com/ai/why-ai-coding-agents-arent-production-ready-brittle-context-windows-broken); [Red Hat: Uncomfortable Truth About Vibe Coding (2026)](https://developers.redhat.com/articles/2026/02/17/uncomfortable-truth-about-vibe-coding); [Augment Code: AI Tools Make Developers 19% Slower](https://www.augmentcode.com/guides/why-ai-coding-tools-make-experienced-developers-19-slower-and-how-to-fix-it); [Pillar Security: Rules File Backdoor](https://www.pillar.security/blog/new-vulnerability-in-github-copilot-and-cursor-how-hackers-can-weaponize-code-agents); [Addy Osmani: LLM Coding Workflow 2026](https://addyosmani.com/blog/ai-coding-workflow/); [JetBrains: Efficient Context Management (2025)](https://blog.jetbrains.com/research/2025/12/efficient-context-management/)*