@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,364 @@
1
+ # Data Encryption Security Expertise
2
+
3
+ > **Purpose:** Reference for AI agents implementing proper encryption at rest and in transit.
4
+ > **Last updated:** 2026-03-08 | **Sources:** NIST SP 800-111, FIPS 203/204/205, PCI-DSS v4.0.1, GDPR Art. 32, HIPAA, AWS/GCP docs, OWASP
5
+
6
+ ---
7
+
8
+ ## 1. Threat Landscape
9
+
10
+ ### Attack Vectors
11
+
12
+ | Vector | Description | Impact |
13
+ |---|---|---|
14
+ | Unencrypted storage | PII/PHI stored plaintext in databases | Full exposure on any breach |
15
+ | Man-in-the-middle | Interception of unencrypted network traffic | Credential theft, session hijacking |
16
+ | Stolen backups | Backup media exfiltrated without encryption | Offline data exposure |
17
+ | Cloud misconfiguration | S3 buckets, databases exposed unencrypted | Mass data exfiltration |
18
+ | Key co-location | Keys stored alongside encrypted data | Encryption rendered useless |
19
+ | Weak algorithms | MD5, SHA-1, DES, RC4, TLS 1.0/1.1 | Feasible brute-force or known attacks |
20
+
21
+ ### Real-World Breaches
22
+
23
+ **Capital One (2019) -- 106M Records.** SSRF vulnerability in a misconfigured WAF let an attacker obtain IAM credentials from AWS metadata service. ~30 GB of data (SSNs, bank accounts, credit scores) was accessed -- much stored unencrypted in S3. The IAM role had decrypt permissions, so encryption provided no defense once credentials were compromised. Undetected March-July 2019.
24
+ - **Lesson:** Encryption without proper key access controls is insufficient. Use envelope encryption with separate policies per data classification. Enforce IMDSv2 for SSRF protection.
25
+
26
+ **Marriott/Starwood (2018) -- 383M Records.** Starwood's network was compromised in 2014 (before Marriott's acquisition). 5.25 million passport numbers were stored completely unencrypted. Encrypted credit card keys were stored on the same system.
27
+ - **Lesson:** Encrypt all sensitive fields, especially government IDs. Never co-locate keys with data. M&A due diligence must include security posture assessment.
28
+
29
+ **National Public Data (2023-2024) -- 2.9B Records.** Background check firm breach exposed SSNs, names, addresses. Unencrypted records were freely leaked in a 4TB dump on cybercrime forums.
30
+ - **Lesson:** Data aggregators are high-value targets. Field-level encryption of SSNs and government IDs is essential.
31
+
32
+ ---
33
+
34
+ ## 2. Core Security Principles
35
+
36
+ ### Encryption at Rest
37
+ - **Full Disk Encryption (FDE):** BitLocker, FileVault, dm-crypt/LUKS -- encrypts entire volumes
38
+ - **Database Encryption:** TDE (whole-database) or column/field-level for targeted protection
39
+ - **Object Storage:** AWS S3 SSE, GCP Cloud Storage default encryption
40
+
41
+ ### Encryption in Transit
42
+ - **TLS 1.3** (RFC 8446) is the current standard. TLS 1.2 acceptable with proper ciphers. TLS 1.0/1.1 deprecated (RFC 8996).
43
+ - **mTLS:** Both client and server authenticate -- required for zero-trust service-to-service.
44
+ - **VPN/WireGuard/IPsec:** Network-level encrypted tunnels.
45
+
46
+ ### Envelope Encryption
47
+ Two-tier key hierarchy: KMS manages a Key Encryption Key (KEK) that encrypts locally-generated Data Encryption Keys (DEKs). DEKs encrypt the actual data. Only the small DEK goes to KMS, reducing API calls by up to 99% (AWS). Each data object gets its own DEK, limiting blast radius. The KEK never leaves the HSM.
48
+
49
+ ### Key Management Lifecycle
50
+
51
+ | Phase | Requirements |
52
+ |---|---|
53
+ | Generation | CSPRNG, minimum AES-256 |
54
+ | Storage | HSMs or managed KMS -- never alongside data |
55
+ | Rotation | Annually minimum, immediately after suspected compromise |
56
+ | Destruction | Cryptographic erasure, eliminate all copies |
57
+
58
+ ### Crypto Agility
59
+ Ability to swap algorithms without major changes. Critical for post-quantum transition (NIST targets 2035). Abstract crypto behind interfaces, store algorithm identifiers with encrypted data, version encryption schemas.
60
+
61
+ ---
62
+
63
+ ## 3. Implementation Patterns
64
+
65
+ ### 3.1 TLS 1.3 Configuration (Nginx)
66
+
67
+ ```nginx
68
+ server {
69
+ listen 443 ssl http2;
70
+ ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
71
+ ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
72
+ ssl_protocols TLSv1.2 TLSv1.3;
73
+ ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305';
74
+ ssl_prefer_server_ciphers off; # Let clients optimize for their hardware
75
+ ssl_session_timeout 1d;
76
+ ssl_session_cache shared:SSL:10m;
77
+ ssl_session_tickets off;
78
+ # HSTS (1 year, subdomains, preload-ready)
79
+ add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
80
+ # Note: Let's Encrypt discontinued OCSP in 2025 -- stapling has no effect with LE certs
81
+ }
82
+ server { listen 80; return 301 https://$host$request_uri; } # Force HTTPS
83
+ ```
84
+
85
+ ### 3.2 Field-Level Encryption (TypeScript)
86
+
87
+ ```typescript
88
+ import { createCipheriv, createDecipheriv, randomBytes } from 'crypto';
89
+
90
+ interface EncryptedField {
91
+ v: number; iv: string; ct: string; tag: string;
92
+ }
93
+
94
+ export function encryptField(plaintext: string, key: Buffer): EncryptedField {
95
+ if (key.length !== 32) throw new Error('Key must be 32 bytes (AES-256)');
96
+ const iv = randomBytes(12); // 96-bit IV per NIST
97
+ const cipher = createCipheriv('aes-256-gcm', key, iv, { authTagLength: 16 });
98
+ const encrypted = Buffer.concat([cipher.update(plaintext, 'utf8'), cipher.final()]);
99
+ return {
100
+ v: 1, iv: iv.toString('base64'),
101
+ ct: encrypted.toString('base64'), tag: cipher.getAuthTag().toString('base64'),
102
+ };
103
+ }
104
+
105
+ export function decryptField(field: EncryptedField, key: Buffer): string {
106
+ const decipher = createDecipheriv('aes-256-gcm', key,
107
+ Buffer.from(field.iv, 'base64'), { authTagLength: 16 });
108
+ decipher.setAuthTag(Buffer.from(field.tag, 'base64'));
109
+ return Buffer.concat([
110
+ decipher.update(Buffer.from(field.ct, 'base64')), decipher.final()
111
+ ]).toString('utf8');
112
+ }
113
+ // Key from KMS: const key = await fetchKeyFromKMS('alias/user-pii-key');
114
+ ```
115
+
116
+ ### 3.3 Envelope Encryption (TypeScript + AWS KMS)
117
+
118
+ ```typescript
119
+ import { KMSClient, GenerateDataKeyCommand, DecryptCommand } from '@aws-sdk/client-kms';
120
+ import { createCipheriv, createDecipheriv, randomBytes } from 'crypto';
121
+
122
+ const kms = new KMSClient({ region: 'us-east-1' });
123
+
124
+ export async function envelopeEncrypt(plaintext: Buffer) {
125
+ const { Plaintext: dek, CiphertextBlob: encDek } = await kms.send(
126
+ new GenerateDataKeyCommand({ KeyId: 'alias/my-key', KeySpec: 'AES_256' }));
127
+ try {
128
+ const iv = randomBytes(12);
129
+ const cipher = createCipheriv('aes-256-gcm', dek!, iv);
130
+ const ct = Buffer.concat([cipher.update(plaintext), cipher.final()]);
131
+ return { encryptedDEK: Buffer.from(encDek!).toString('base64'),
132
+ iv: iv.toString('base64'), ciphertext: ct.toString('base64'),
133
+ tag: cipher.getAuthTag().toString('base64') };
134
+ } finally { (dek as Buffer).fill(0); } // Clear plaintext DEK from memory
135
+ }
136
+
137
+ export async function envelopeDecrypt(envelope: any): Promise<Buffer> {
138
+ const { Plaintext: dek } = await kms.send(
139
+ new DecryptCommand({ CiphertextBlob: Buffer.from(envelope.encryptedDEK, 'base64') }));
140
+ try {
141
+ const decipher = createDecipheriv('aes-256-gcm', dek!,
142
+ Buffer.from(envelope.iv, 'base64'));
143
+ decipher.setAuthTag(Buffer.from(envelope.tag, 'base64'));
144
+ return Buffer.concat([
145
+ decipher.update(Buffer.from(envelope.ciphertext, 'base64')), decipher.final()]);
146
+ } finally { (dek as Buffer).fill(0); }
147
+ }
148
+ ```
149
+
150
+ ### 3.4 Database Column Encryption (PostgreSQL pgcrypto)
151
+
152
+ ```sql
153
+ CREATE EXTENSION IF NOT EXISTS pgcrypto;
154
+
155
+ -- VULNERABLE: plaintext SSN
156
+ CREATE TABLE users_bad (id SERIAL, ssn TEXT, credit_card TEXT);
157
+
158
+ -- SECURE: encrypted columns
159
+ CREATE TABLE users_secure (id SERIAL PRIMARY KEY, name TEXT,
160
+ ssn_enc BYTEA, credit_card_enc BYTEA);
161
+
162
+ INSERT INTO users_secure (name, ssn_enc, credit_card_enc) VALUES ('Jane Doe',
163
+ pgp_sym_encrypt('123-45-6789', current_setting('app.encryption_key')),
164
+ pgp_sym_encrypt('4111111111111111', current_setting('app.encryption_key')));
165
+ -- Key loaded from KMS at connection time via: SET app.encryption_key = '...';
166
+ ```
167
+
168
+ ---
169
+
170
+ ## 4. Vulnerability Catalog
171
+
172
+ | ID | Vulnerability | Risk | Remediation |
173
+ |---|---|---|---|
174
+ | V-ENC-01 | Unencrypted PII in database | CRITICAL | Field-level AES-256-GCM encryption before storage |
175
+ | V-ENC-02 | TLS 1.0/1.1 enabled | HIGH | Disable; use TLS 1.2+ only (`ssl_protocols TLSv1.2 TLSv1.3`) |
176
+ | V-ENC-03 | Self-signed certs in production | HIGH | Use trusted CA (Let's Encrypt). Automate renewal with Certbot |
177
+ | V-ENC-04 | Unencrypted backups | CRITICAL | Encrypt pipelines (GPG/KMS). Never write plaintext to disk |
178
+ | V-ENC-05 | Key stored next to data | CRITICAL | Store keys in KMS/HSM with separate access policies |
179
+ | V-ENC-06 | Weak cipher suites (RC4, DES, CBC) | HIGH | Allow only AEAD suites (AES-GCM, ChaCha20-Poly1305) |
180
+ | V-ENC-07 | Missing HSTS header | MEDIUM | Set `Strict-Transport-Security: max-age=31536000; includeSubDomains` |
181
+ | V-ENC-08 | Hardcoded encryption keys | CRITICAL | Use KMS/Vault/env vars. Scan with truffleHog/gitleaks |
182
+ | V-ENC-09 | Plaintext internal service comms | HIGH | Enforce mTLS between services (Istio, Linkerd) |
183
+ | V-ENC-10 | ECB mode encryption | HIGH | Use GCM (preferred) or CCM. ECB preserves data patterns |
184
+ | V-ENC-11 | IV/nonce reuse in GCM | CRITICAL | Random 96-bit IV per operation. Rotate key before 2^32 ops |
185
+ | V-ENC-12 | Missing cert pinning (mobile) | HIGH | Pin certificates or public keys with backup pins |
186
+ | V-ENC-13 | Unencrypted data in logs | HIGH | Sanitize/mask sensitive fields before logging |
187
+ | V-ENC-14 | MD5/SHA-1 for integrity | MEDIUM | Use SHA-256 or SHA-3. HMAC-SHA-256 for authentication |
188
+ | V-ENC-15 | Encryption key in browser storage | HIGH | Use Web Crypto API with non-extractable keys |
189
+
190
+ ### Vulnerable vs. Secure Code Pairs
191
+
192
+ ```typescript
193
+ // V-ENC-01: VULNERABLE -- plaintext PII
194
+ await db.query('INSERT INTO users (ssn) VALUES ($1)', [ssn]);
195
+ // SECURE -- encrypted
196
+ const enc = encryptField(ssn, await getKeyFromKMS('alias/pii-key'));
197
+ await db.query('INSERT INTO users (ssn_enc) VALUES ($1)', [JSON.stringify(enc)]);
198
+
199
+ // V-ENC-08: VULNERABLE -- hardcoded key
200
+ const KEY = Buffer.from('a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6');
201
+ // SECURE -- from KMS
202
+ const KEY = Buffer.from(process.env.ENCRYPTION_KEY!, 'base64');
203
+
204
+ // V-ENC-02: VULNERABLE Nginx
205
+ // ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
206
+ // SECURE
207
+ // ssl_protocols TLSv1.2 TLSv1.3;
208
+ ```
209
+
210
+ ---
211
+
212
+ ## 5. Security Checklist
213
+
214
+ ### Data at Rest (8 items)
215
+ - [ ] All PII/PHI fields use field-level encryption (AES-256-GCM)
216
+ - [ ] Database backups encrypted before written to disk
217
+ - [ ] Full-disk encryption on all servers and workstations
218
+ - [ ] Cloud storage uses SSE-KMS (preferred over SSE-S3)
219
+ - [ ] Keys stored in KMS/HSM, never alongside data
220
+ - [ ] Key rotation automated (minimum annually)
221
+ - [ ] Decommissioned media undergoes cryptographic erasure
222
+ - [ ] Log files contain no plaintext sensitive data
223
+
224
+ ### Data in Transit (8 items)
225
+ - [ ] TLS 1.2+ enforced; TLS 1.0/1.1 disabled
226
+ - [ ] Only AEAD cipher suites allowed
227
+ - [ ] HSTS headers set (min 1-year max-age)
228
+ - [ ] Certificate automation (Certbot/cert-manager)
229
+ - [ ] Internal service traffic uses mTLS
230
+ - [ ] Certificate expiration monitoring with alerts
231
+ - [ ] No self-signed certificates in production
232
+ - [ ] HTTP-to-HTTPS redirect on all endpoints
233
+
234
+ ### Key Management (7 items)
235
+ - [ ] Keys generated with CSPRNG, AES-256 minimum
236
+ - [ ] Separate keys per data classification (PII, financial, general)
237
+ - [ ] Key access audit logging enabled (CloudTrail for AWS KMS)
238
+ - [ ] Emergency key revocation procedure documented and tested
239
+ - [ ] Keys never in source code, logs, or error messages
240
+ - [ ] Envelope encryption for large data volumes
241
+ - [ ] Post-quantum migration plan documented (target: 2035)
242
+
243
+ ### Application Layer (6 items)
244
+ - [ ] Crypto abstracted behind interfaces (crypto agility)
245
+ - [ ] Encryption version stored with encrypted data
246
+ - [ ] No deprecated algorithms (MD5, SHA-1, DES, RC4, ECB)
247
+ - [ ] IV/nonce uniqueness enforced; key rotation before 2^32 ops
248
+ - [ ] Auth tags verified before processing decrypted data
249
+ - [ ] Sensitive data zeroed from memory after use
250
+
251
+ ---
252
+
253
+ ## 6. Tools and Automation
254
+
255
+ | Category | Tool | Purpose |
256
+ |---|---|---|
257
+ | TLS Testing | **SSL Labs** (ssllabs.com) | Online TLS grading (target A+) |
258
+ | TLS Testing | **testssl.sh** | Offline scanner: `./testssl.sh --severity HIGH example.com` |
259
+ | Certs | **Certbot** | Let's Encrypt automation (90-day certs) |
260
+ | Certs | **cert-manager** | Kubernetes certificate lifecycle |
261
+ | Config | **Mozilla SSL Config Generator** | Secure configs for Nginx/Apache/HAProxy |
262
+ | KMS | **AWS KMS** | HSM-backed, CloudTrail audit, auto-rotation |
263
+ | KMS | **GCP Cloud KMS** | CMEK, envelope encryption, EKM |
264
+ | KMS | **HashiCorp Vault** | Multi-cloud secrets, transit encryption, PKI |
265
+ | Secrets Scan | **truffleHog / gitleaks** | Detect hardcoded keys in git repos |
266
+ | Cloud Audit | **Prowler / ScoutSuite** | Check encryption configs across cloud |
267
+ | IaC Scan | **tfsec / trivy** | Flag encryption misconfigs in Terraform |
268
+ | DB Encryption | **pgcrypto** (PostgreSQL) | Column-level SQL encryption |
269
+ | DB Encryption | **MongoDB CSFLE** | Client-side field-level encryption |
270
+
271
+ ---
272
+
273
+ ## 7. Platform-Specific Guidance
274
+
275
+ ### AWS Encryption
276
+
277
+ **S3 SSE options:** SSE-S3 (AWS-managed, free, default), SSE-KMS (audit trails, granular control, $1/key/month), SSE-C (customer-provided keys, full ownership).
278
+
279
+ ```json
280
+ { "Statement": [{ "Effect": "Deny", "Principal": "*", "Action": "s3:PutObject",
281
+ "Resource": "arn:aws:s3:::my-bucket/*",
282
+ "Condition": { "StringNotEquals": { "s3:x-amz-server-side-encryption": "aws:kms" }}}]}
283
+ ```
284
+
285
+ Best practices: default encryption on all buckets, KMS key policies restricting IAM roles, CloudTrail for KMS calls, VPC endpoints for KMS, EBS encryption by default.
286
+
287
+ ### GCP Encryption
288
+ Default: all data AES-256 at rest. CMEK for key control/audit. CSEK for customer-supplied keys. EKM for keys outside Google. Use Tink library for envelope encryption.
289
+
290
+ ### MongoDB CSFLE
291
+ Encrypts fields before they leave the application -- DBAs cannot see plaintext.
292
+ - **Deterministic** encryption: same plaintext = same ciphertext. Allows equality queries. Use for searchable fields (email, SSN).
293
+ - **Random** encryption: more secure, no query support. Use for read-only fields (medical records, notes).
294
+
295
+ ### Mobile Encryption
296
+
297
+ **iOS Data Protection:** Hardware-backed AES-256. Use `NSFileProtectionComplete` for sensitive files (accessible only when unlocked). Store secrets in Keychain with `kSecAttrAccessibleWhenUnlockedThisDeviceOnly`.
298
+
299
+ **Android:** Use `EncryptedSharedPreferences` (AES256-SIV keys, AES256-GCM values). Store secrets via Android Keystore. Use hardware-backed StrongBox when available.
300
+
301
+ **Both platforms:** Enable cert pinning, encrypt local databases (SQLCipher), never store keys in app code.
302
+
303
+ ---
304
+
305
+ ## 8. Incident Patterns
306
+
307
+ ### Unencrypted Data Exposure
308
+ **Detect:** Cloud scanner flags (Prowler, ScoutSuite), schema audit finds TEXT columns for SSN/credit card, network inspection reveals plaintext in HTTP.
309
+ **Respond:** Enable encryption immediately, rotate exposed credentials, assess access logs for exposure window, determine notification obligations (GDPR 72h, HIPAA 60d).
310
+
311
+ ### Certificate Issues
312
+ **Detect:** Monitoring alerts for expiring certs, browser warnings, service failures.
313
+ **Respond:** Renew immediately, verify complete chain, test with SSL Labs, review automation.
314
+
315
+ ### Key Compromise
316
+ **Respond:** (1) Disable/revoke key in KMS immediately, (2) identify all data encrypted with key, (3) generate new keys and re-encrypt affected data, (4) rotate dependent credentials, (5) investigate root cause, (6) post-mortem and update procedures, (7) determine notification requirements.
317
+
318
+ ---
319
+
320
+ ## 9. Compliance and Standards
321
+
322
+ ### PCI-DSS v4.0.1 (Requirements 3-4)
323
+ - **Req 3:** Protect stored account data. PAN rendered unreadable (AES-256, hash, truncation, tokenization). Keys managed by fewest custodians; split knowledge/dual control.
324
+ - **Req 4:** Protect cardholder data in transit with TLS 1.2+ and strong ciphers.
325
+ - **Minimum:** AES-128 (AES-256 recommended).
326
+
327
+ ### GDPR Article 32
328
+ Explicitly names encryption as an appropriate safeguard. Encrypted data breached without key compromise may not require notification (Recital 83). DPIAs should evaluate encryption measures.
329
+
330
+ ### HIPAA
331
+ - **At rest (164.312(a)):** Encrypt ePHI per NIST SP 800-111. "Addressable" specification.
332
+ - **In transit (164.312(e)):** TLS 1.2+ with strong ciphers.
333
+ - **Safe Harbor:** Encrypted ePHI breach with uncompromised keys is NOT reportable.
334
+
335
+ ### NIST Standards Reference
336
+
337
+ | Standard | Scope |
338
+ |---|---|
339
+ | SP 800-111 | Storage encryption for end-user devices |
340
+ | SP 800-52 Rev. 2 | TLS implementation (TLS 1.2+ required) |
341
+ | SP 800-57 | Key management lifecycle |
342
+ | FIPS 140-3 | Cryptographic module validation (HSMs) |
343
+ | FIPS 197 | AES specification (128/192/256-bit) |
344
+ | FIPS 203 (2024) | Post-quantum key encapsulation (ML-KEM, from CRYSTALS-KYBER) |
345
+ | FIPS 204 (2024) | Post-quantum signatures (ML-DSA, from CRYSTALS-Dilithium) |
346
+ | FIPS 205 (2024) | Post-quantum signatures (SLH-DSA, from SPHINCS+) |
347
+
348
+ **Post-quantum timeline:** NIST targets widespread PQC adoption by 2035. HQC selected March 2025. FALCON forthcoming as FIPS 206. Begin crypto inventory, implement agility, test hybrid approaches now.
349
+
350
+ ---
351
+
352
+ ## References
353
+
354
+ - NIST SP 800-111: https://csrc.nist.gov/pubs/sp/800/111/final
355
+ - NIST PQC Standards (Aug 2024): https://www.nist.gov/news-events/news/2024/08/nist-releases-first-3-finalized-post-quantum-encryption-standards
356
+ - PCI-DSS v4.0.1: https://www.thoropass.com/blog/pci-dss-encryption-requirements
357
+ - AWS KMS Best Practices: https://docs.aws.amazon.com/prescriptive-guidance/latest/encryption-best-practices/general-encryption-best-practices.html
358
+ - GCP Envelope Encryption: https://cloud.google.com/kms/docs/envelope-encryption
359
+ - Capital One Breach: https://krebsonsecurity.com/2019/08/what-we-can-learn-from-the-capital-one-hack/
360
+ - Marriott Breach: https://www.nbcnews.com/tech/tech-news/marriott-reveals-5-million-unencrypted-passport-numbers-were-leaked-2018-n954791
361
+ - MongoDB CSFLE: https://www.mongodb.com/docs/manual/core/csfle/
362
+ - PostgreSQL pgcrypto: https://www.postgresql.org/docs/current/pgcrypto.html
363
+ - HIPAA Encryption: https://www.hipaajournal.com/hipaa-encryption-requirements/
364
+ - SSL Labs: https://www.ssllabs.com/ssltest/