@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,22 @@
1
+ # Directory Purpose
2
+
3
+ The `data` security directory establishes rules for protecting sensitive information, complying with privacy laws, and securing storage layers.
4
+
5
+ # Key Concepts
6
+
7
+ - Data anonymization and masking
8
+ - Managing Personally Identifiable Information (PII)
9
+ - Applying cryptographic standards
10
+
11
+ # File Map
12
+
13
+ - `data-encryption.md` — AES, RSA, key rotation, and encryption at rest
14
+ - `data-privacy-gdpr.md` — consent, right to be forgotten, and privacy by design
15
+ - `database-security.md` — row-level security, least privilege roles, and audits
16
+ - `pii-handling.md` — tokenization, masking, and safe logging of user data
17
+
18
+ # Reading Guide
19
+
20
+ If designing a schema containing user data → read `pii-handling.md`
21
+ If storing passwords or tokens → read `data-encryption.md`
22
+ If configuring database access → read `database-security.md`
@@ -0,0 +1,531 @@
1
+ # PII Handling Security Expertise Module
2
+
3
+ > **Purpose:** Guide AI agents and development teams on securely handling Personally Identifiable
4
+ > Information (PII) across the software lifecycle.
5
+ >
6
+ > **Last Updated:** 2026-03-08
7
+
8
+ ---
9
+
10
+ ## 1. Threat Landscape
11
+
12
+ ### 1.1 Scale
13
+
14
+ In 2024, the US recorded 3,158 data breaches affecting 1.35 billion individuals. Over 53% of all
15
+ breaches involve customer PII. The average US breach cost reached $10.22 million -- an all-time
16
+ high. 91% of organizations reported identity-related incidents in the past year (SpyCloud 2025).
17
+
18
+ ### 1.2 Major PII Breaches
19
+
20
+ | Breach | Year | Records | Root Cause |
21
+ |--------|------|---------|------------|
22
+ | **Equifax** | 2017 | 147M SSNs | Unpatched Apache Struts (CVE-2017-5638); $700M+ settlement |
23
+ | **Facebook** | 2019 | 540M records | PII on publicly accessible S3 buckets |
24
+ | **National Public Data** | 2024 | 2.9B records, 272M unique SSNs | Inadequate access controls; company bankrupted |
25
+ | **Ticketmaster** | 2024 | 560M | Third-party supply chain compromise |
26
+ | **Dell** | 2024 | 49M | API abuse / scraping |
27
+ | **Prosper Marketplace** | 2025 | 17.6M | Unauthorized system access |
28
+ | **Yale New Haven Health** | 2025 | 5.5M PII+PHI | Ransomware |
29
+
30
+ **Lessons:** Patch management failures (Equifax), default-deny cloud policies (Facebook/S3),
31
+ data broker aggregation risk (NPD), and supply chain due diligence (Ticketmaster) are recurring
32
+ themes. Verizon's 2025 DBIR found a 100% increase in third-party attacks.
33
+
34
+ ### 1.3 Common Exposure Vectors
35
+
36
+ - **Logs:** Stack traces and debug logs containing emails, IPs, session tokens
37
+ - **API responses:** Over-fetching full user objects when only a name is needed
38
+ - **Error messages:** Database values or user emails exposed in error pages
39
+ - **URLs/query strings:** PII captured in browser history, server logs, referrer headers
40
+ - **Analytics/telemetry:** User IDs and IPs sent to third parties without masking
41
+ - **Backups:** Unencrypted database backups with overly broad access
42
+ - **Caches:** Redis/Memcached holding PII without TTL or access restrictions
43
+ - **AI prompts:** 8.5% of LLM prompts include PII or credentials (Help Net Security, 2025)
44
+ - **Non-production environments:** Production clones with real PII and weaker controls
45
+
46
+ ### 1.4 Enforcement Trends
47
+
48
+ GDPR fines exceed EUR 4.5B cumulatively. Under 2025 rules, penalties for similar breaches face
49
+ doubling. CCPA/CPRA added neural data as sensitive PI in 2025. Credential abuse remains the
50
+ top breach vector (22%), with vulnerability exploitation up 34% year-over-year.
51
+
52
+ ---
53
+
54
+ ## 2. Core Security Principles
55
+
56
+ ### 2.1 Data Minimization
57
+
58
+ Collect only what you need. Store only what you must. Delete when you can. Four pillars:
59
+ **Adequacy** (enough for the purpose), **Relevance** (each field serves a documented purpose),
60
+ **Limitedness** (minimum volume), **Timeliness** (delete when purpose is fulfilled).
61
+
62
+ ### 2.2 Purpose Limitation and Storage Limitation
63
+
64
+ PII collected for one purpose cannot be repurposed without consent. Define retention periods
65
+ for every category: session tokens (24h), support tickets (2y), payment records (7y),
66
+ marketing preferences (until withdrawn), account data (30 days post-deletion).
67
+
68
+ ### 2.3 PII Classification
69
+
70
+ | Level | Examples | Controls |
71
+ |-------|----------|----------|
72
+ | **L1 Public** | Display name, public profile | Basic access control |
73
+ | **L2 Internal** | Email, phone, employer | Auth required, audit logging |
74
+ | **L3 Confidential** | DOB, home address, IP | Encryption at rest, RBAC |
75
+ | **L4 Restricted** | SSN, passport, biometrics, health records | Field-level encryption, MFA, audit, masking in non-prod |
76
+
77
+ NIST SP 800-122 uses Low/Moderate/High impact levels based on identifiability, quantity,
78
+ sensitivity, context, obligations, and access patterns.
79
+
80
+ ### 2.4 Pseudonymization vs. Anonymization
81
+
82
+ **Pseudonymization** (tokenization, hashing, deterministic coding) is reversible and still PII
83
+ under GDPR. Preserves data utility for production use. Mapping tables must be secured separately.
84
+
85
+ **Anonymization** (suppression, generalization, aggregation, k-anonymity, differential privacy)
86
+ is irreversible and falls outside GDPR scope. Lower data utility; suited for research and
87
+ non-production environments.
88
+
89
+ ### 2.5 Right to Deletion
90
+
91
+ GDPR Article 17 and CCPA mandate erasure rights. Implementation requires: authenticated request
92
+ intake, identity verification, automated cross-system data discovery, dependency checks (legal
93
+ holds), hard delete or anonymize, propagation to third-party processors, backup handling
94
+ (exclusion from restores or scheduled rotation), confirmation within 30 days (GDPR) or 45 days
95
+ (CCPA), and audit records without the PII itself.
96
+
97
+ ---
98
+
99
+ ## 3. Implementation Patterns
100
+
101
+ ### 3.1 PII Field Identification
102
+
103
+ Maintain a centralized PII data dictionary mapping every field, its classification, purpose,
104
+ retention, encryption method, masking strategy, and which systems store it. Tag PII fields in
105
+ database schemas, ORM models, and API schemas for automated policy enforcement.
106
+
107
+ ### 3.2 Data Masking in Logs
108
+
109
+ **Never log raw PII.** Enforce at the framework level:
110
+ - Allowlist approach: only log explicitly safe fields; deny by default
111
+ - Pattern-based redaction: regex for emails, SSNs, credit cards, phones, IPs
112
+ - PII-aware serializers: override `toString()`/`toJSON()` to exclude PII
113
+ - Log sink filtering: redaction at Datadog/Splunk/ELK as defense-in-depth
114
+
115
+ ### 3.3 Tokenization
116
+
117
+ Replace sensitive PII with vault-backed or format-preserving tokens. **Vaulted:** original in
118
+ secure vault, token is random UUID. **Format-preserving (FPE):** token matches original format.
119
+ **Vaultless:** deterministic encryption, no vault lookup needed. Use for payment cards (PCI DSS),
120
+ SSNs, government IDs, and L4-Restricted fields.
121
+
122
+ ### 3.4 Encryption Layers
123
+
124
+ | Layer | Technique | Protects Against |
125
+ |-------|-----------|-----------------|
126
+ | In transit | TLS 1.3 minimum | Network sniffing, MITM |
127
+ | At rest (volume) | AES-256 disk encryption | Physical theft |
128
+ | At rest (field) | AES-256-GCM application-level | DB admin access, SQLi exfiltration, backup exposure |
129
+ | In use | Confidential computing / enclaves | Memory dumps, side-channel |
130
+
131
+ Field-level encryption is critical for L4 data -- volume encryption alone does not protect
132
+ against application-layer attacks.
133
+
134
+ ### 3.5 Secure PII APIs
135
+
136
+ - Reject PII in query parameters; use POST bodies
137
+ - Return only authorized PII fields per caller role (allowlist, not denylist)
138
+ - Dedicated `/pii` endpoints with stricter auth, rate limiting, and request-reason headers
139
+ - Set `Cache-Control: no-store` on PII responses
140
+
141
+ ### 3.6 PII in Analytics
142
+
143
+ - **K-anonymity:** Each record indistinguishable from k-1 others (k>=5, k>=10 for sensitive)
144
+ - **Differential privacy:** Calibrated noise (Laplace/Gaussian) on query results; epsilon 1-3
145
+ - **Aggregation:** Report on cohorts (50+ users), not individuals
146
+ - **Purpose-built IDs:** Analytics-specific pseudonymous IDs without joinability
147
+
148
+ ### 3.7 Retention and RTBF
149
+
150
+ Tag every PII record with creation timestamp and retention category. Run automated
151
+ deletion jobs. Handle cascading deletions across databases, caches, third parties. Maintain
152
+ deletion audit logs (category + timestamp, never the PII). Test that purge jobs actually work
153
+ across all storage layers.
154
+
155
+ ---
156
+
157
+ ## 4. Vulnerability Catalog
158
+
159
+ ### V-01: PII in Application Logs
160
+ **Severity: High** | Logs accessible to developers, SREs, log services; retained for years.
161
+ ```typescript
162
+ // VULNERABLE
163
+ logger.info('User login', { user: req.user }); // logs email, ssn, etc.
164
+ // SECURE
165
+ logger.info('User login', { userId: req.user.id, action: 'login' });
166
+ ```
167
+
168
+ ### V-02: PII in Error Messages
169
+ ```typescript
170
+ // VULNERABLE
171
+ throw new Error(`User ${email} not found`); // returned to client
172
+ // SECURE
173
+ throw new AppError('USER_NOT_FOUND', 'The requested account was not found');
174
+ ```
175
+
176
+ ### V-03: PII in URLs
177
+ URLs logged by servers, proxies, CDNs, browsers, and sent via referrer headers.
178
+ ```
179
+ # BAD: GET /api/users?email=john@example.com&ssn=123-45-6789
180
+ # GOOD: POST /api/users/lookup { "email": "..." }
181
+ ```
182
+
183
+ ### V-04: Overly Permissive API Responses
184
+ ```typescript
185
+ // VULNERABLE: returns full DB record including ssn, dob, payment info
186
+ res.json(await db.users.findById(id));
187
+ // SECURE: explicit projection by role
188
+ res.json(pick(user, getFieldsByRole(req.auth.role)));
189
+ ```
190
+
191
+ ### V-05: PII in Analytics/Telemetry
192
+ Send hashed anonymous IDs, price ranges, and regions -- never raw emails, names, or addresses.
193
+
194
+ ### V-06: Unmasked PII in Non-Production
195
+ Never clone production PII to dev/staging. Use synthetic data (Faker.js, Mimesis), masked
196
+ copies, or subset databases with test accounts only.
197
+
198
+ ### V-07: PII in Caches
199
+ Cache only non-PII data. If PII must be cached, encrypt values and use short TTLs (60s).
200
+
201
+ ### V-08: PII in Client-Side Storage
202
+ Never store L3/L4 PII in localStorage (XSS surface). Use HttpOnly secure cookies for auth,
203
+ sessionStorage for non-sensitive display data only.
204
+
205
+ ### V-09: PII in File Exports
206
+ Apply same field-level access control to exports. Mask by default, watermark, auto-expire
207
+ download links (15-minute TTL).
208
+
209
+ ### V-10: PII in Database Backups
210
+ Encrypt all backups (AES-256, KMS-managed keys). Apply same access controls as production.
211
+ For RTBF: rotate backups on schedule or maintain deletion ledgers applied on restore.
212
+
213
+ ### V-11: PII in HTTP Headers
214
+ Use opaque identifiers (`X-User-Id: uuid`), never raw emails or phones in custom headers.
215
+
216
+ ### V-12: PII in Source Code
217
+ Pre-commit hooks scanning for SSN/email/CC patterns. Use obviously fake data in fixtures.
218
+
219
+ ### V-13: PII via GraphQL Introspection
220
+ Disable introspection in production. Use field-level auth directives and persisted queries.
221
+
222
+ ### V-14: PII in Message Queues
223
+ Include only opaque user IDs in events. Encrypt PII in payloads if unavoidable. Apply
224
+ topic-level access controls.
225
+
226
+ ---
227
+
228
+ ## 5. Security Checklist
229
+
230
+ - [ ] All PII fields inventoried in a centralized data dictionary with classification (L1-L4)
231
+ - [ ] Every PII field has documented purpose and legal basis for collection
232
+ - [ ] Data flow diagrams map PII through all systems and third parties
233
+ - [ ] Automated PII discovery scans run regularly across all data stores
234
+ - [ ] Collection follows data minimization -- only necessary fields collected
235
+ - [ ] Explicit consent obtained where required (GDPR Art. 6, CCPA opt-out)
236
+ - [ ] L3-L4 PII encrypted at rest (AES-256); L4 uses field-level encryption
237
+ - [ ] All PII encrypted in transit (TLS 1.2+ minimum, TLS 1.3 preferred)
238
+ - [ ] Encryption keys in dedicated KMS with rotation policies
239
+ - [ ] Database backups encrypted and access-controlled
240
+ - [ ] PII access follows least-privilege RBAC; L4 access requires MFA
241
+ - [ ] All PII access audit-logged (user identity, timestamp, purpose)
242
+ - [ ] Production PII never in non-production without masking/anonymization
243
+ - [ ] Application logs never contain raw PII (framework-level redaction enforced)
244
+ - [ ] Error messages never expose PII; PII never in URLs/query params
245
+ - [ ] API responses filtered to authorized fields only (allowlist approach)
246
+ - [ ] PII API endpoints have rate limiting and anomaly detection
247
+ - [ ] Third-party agreements include PII protection requirements
248
+ - [ ] Retention periods defined and enforced via automated deletion jobs
249
+ - [ ] RTBF requests fulfillable within regulatory timelines (30d GDPR / 45d CCPA)
250
+ - [ ] Deletion propagates to all systems: DBs, caches, backups, third parties
251
+ - [ ] PII breach response plan exists and tested annually
252
+ - [ ] Breach notification meets 72-hour GDPR requirement
253
+ - [ ] DSAR processes handle requests within regulatory windows
254
+
255
+ ---
256
+
257
+ ## 6. Tools and Automation
258
+
259
+ ### 6.1 PII Discovery and Scanning
260
+
261
+ | Tool | Type | Best For |
262
+ |------|------|----------|
263
+ | **AWS Macie** | Cloud-native | S3 data lakes; ML-based classification and alerting |
264
+ | **Google Cloud DLP** | Cloud-native | 150+ detectors; multi-cloud structured/unstructured data |
265
+ | **Microsoft Presidio** | Open-source | On-prem; text/image/audio PII detection and anonymization |
266
+ | **Microsoft Purview** | Enterprise | M365/Azure ecosystem; endpoint DLP |
267
+ | **BigID** | Enterprise DSPM | Complex data landscapes; DSAR automation |
268
+ | **Nightfall AI** | SaaS DLP | Slack, GitHub, Jira, email; ML-based real-time detection |
269
+
270
+ ### 6.2 Log Redaction
271
+
272
+ Datadog Sensitive Data Scanner, Splunk Data Anonymization, Elastic `redact` ingest processor,
273
+ Fluentd/Fluent Bit filter plugins, and custom application-level middleware (see Section 10).
274
+
275
+ ### 6.3 Data Masking
276
+
277
+ Delphix (dynamic/static masking), Informatica Persistent Data Masking, K2View (entity-based),
278
+ Tonic.ai (synthetic data), Faker.js/Mimesis/Bogus (open-source fake data generation).
279
+
280
+ ### 6.4 DSAR Automation
281
+
282
+ OneTrust, TrustArc, Securiti.ai, BigID -- automate intake, identity verification, cross-system
283
+ discovery, response generation. Leading platforms reduce DSAR time from weeks to hours.
284
+
285
+ ### 6.5 Pre-Commit Scanning
286
+
287
+ GitLeaks, TruffleHog, GitHub Secret Scanning (extendable with PII patterns), custom regex
288
+ hooks for SSN/CC/email detection in staged diffs (see Section 10).
289
+
290
+ ---
291
+
292
+ ## 7. Platform-Specific Guidance
293
+
294
+ ### 7.1 Web
295
+
296
+ - `autocomplete="off"` on sensitive fields; `type="password"` for SSN/tax ID inputs
297
+ - Never store L3/L4 PII in localStorage/indexedDB; use HttpOnly Secure SameSite=Strict cookies
298
+ - CSP headers prevent PII exfiltration via XSS; SRI on third-party scripts
299
+ - `Referrer-Policy: strict-origin-when-cross-origin` prevents URL PII leaking via Referer
300
+
301
+ ### 7.2 Mobile
302
+
303
+ - iOS: Keychain with `kSecAttrAccessibleWhenUnlockedThisDeviceOnly`; Android: EncryptedSharedPreferences
304
+ - Wipe PII from memory on app background; exclude from device backups
305
+ - Audit analytics SDKs (many collect IPs/device IDs by default); disable IP collection
306
+ - Screenshot protection for PII screens; clear clipboard after PII paste; no PII in push payloads
307
+
308
+ ### 7.3 Backend
309
+
310
+ - Single logging middleware as the ONLY log emission path; test that PII never appears in output
311
+ - API gateway response filtering (allowlist per endpoint/role) as defense-in-depth
312
+ - `Cache-Control: no-store` on PII responses; parameterized queries only
313
+ - Query-level audit logging for L3/L4 tables; DB views or row-level security by role
314
+
315
+ ### 7.4 Cloud
316
+
317
+ - Data residency: configure regions per GDPR/regulatory requirements
318
+ - Default encryption on all storage; block public access at account level
319
+ - Access logging on all PII buckets; pre-signed URLs with short expiry
320
+ - IaC scanning (Checkov, tfsec) for misconfigurations exposing PII
321
+
322
+ ---
323
+
324
+ ## 8. Incident Patterns
325
+
326
+ ### 8.1 Detection
327
+
328
+ Layer multiple detection methods: real-time anomaly monitoring (bulk retrieval, unusual access),
329
+ DLP scanning of stores/logs/traffic, dark web monitoring (SpyCloud, HIBP), bug bounty programs,
330
+ and CI/CD pipeline checks scanning outputs for PII patterns.
331
+
332
+ ### 8.2 Breach Notification Requirements
333
+
334
+ | Regulation | Deadline | Who to Notify |
335
+ |------------|----------|---------------|
336
+ | **GDPR Art. 33** | 72 hours from awareness | Supervisory authority (DPA) |
337
+ | **GDPR Art. 34** | Without undue delay | Affected individuals (high risk) |
338
+ | **CCPA/CPRA** | Most expedient time possible | AG (500+ CA residents) + individuals |
339
+ | **HIPAA** | 60 days | HHS + individuals + media (500+) |
340
+ | **PCI DSS** | Immediately | Card brands, acquiring bank |
341
+
342
+ The GDPR 72-hour clock starts at "sufficient awareness," not full technical details. Partial
343
+ notification with follow-up is acceptable.
344
+
345
+ ### 8.3 Response Playbook
346
+
347
+ **Phase 1 -- Triage (0-4h):** Confirm breach scope, activate IR team, contain (revoke access,
348
+ isolate systems), preserve evidence, start regulatory clock.
349
+
350
+ **Phase 2 -- Investigate (4-48h):** Determine PII fields/individuals affected, identify vector,
351
+ assess impact by classification level, check jurisdictional obligations.
352
+
353
+ **Phase 3 -- Notify (24-72h):** DPA notification (GDPR 72h), assess individual notification
354
+ requirement, prepare clear communications, notify card brands if applicable.
355
+
356
+ **Phase 4 -- Remediate (72h-30d):** Patch vulnerability, implement additional controls, offer
357
+ credit monitoring, update risk assessments, document lessons learned.
358
+
359
+ **Phase 5 -- Post-Incident (30-90d):** Regulatory follow-up, litigation management, process
360
+ improvement, targeted training, verification of remediation effectiveness.
361
+
362
+ ---
363
+
364
+ ## 9. Compliance and Standards
365
+
366
+ ### 9.1 GDPR
367
+
368
+ **Art. 5:** Lawfulness, fairness, transparency; purpose limitation; data minimization; accuracy;
369
+ storage limitation; integrity/confidentiality; accountability.
370
+ **Art. 6:** Lawful basis required (consent, contract, legal obligation, vital interests, public
371
+ task, legitimate interests). **Art. 17:** Right to erasure when data unnecessary, consent
372
+ withdrawn, or unlawfully processed. **Art. 32:** Appropriate technical/organizational measures
373
+ including pseudonymization, encryption, confidentiality/integrity/availability assurance,
374
+ resilience, and regular testing.
375
+
376
+ ### 9.2 CCPA/CPRA
377
+
378
+ Covers 11 categories: identifiers, protected classifications, commercial info, biometrics,
379
+ internet activity, geolocation, sensory data, professional/employment info, education,
380
+ inferences, and sensitive PI (government IDs, financial data, precise geolocation,
381
+ racial/ethnic origin, biometrics, health, sex life, and neural data as of 2025).
382
+
383
+ ### 9.3 HIPAA PHI
384
+
385
+ 18 identifiers (names, sub-state geography, dates, phone, fax, email, SSN, medical record
386
+ numbers, health plan IDs, account numbers, license numbers, vehicle/device IDs, URLs, IPs,
387
+ biometrics, photos, other unique IDs). De-identification via Safe Harbor (remove all 18) or
388
+ Expert Determination (statistical re-identification risk certified "very small").
389
+
390
+ ### 9.4 PCI DSS 4.0
391
+
392
+ Effective April 2025. PAN must be unreadable when stored. MFA required for all cardholder data
393
+ access. Minimum 12-character passwords. Stronger encryption algorithms mandated. Continuous
394
+ automated monitoring required. Risk-based customized approach replaces rigid checklists.
395
+ Non-compliance: up to $500K fines plus fraud liability.
396
+
397
+ ### 9.5 NIST SP 800-122
398
+
399
+ Identify all PII; assign Low/Moderate/High impact levels based on identifiability, quantity,
400
+ sensitivity, context, obligations, and access patterns. Apply proportional safeguards. Minimize
401
+ PII in testing/development. Conduct privacy impact assessments.
402
+
403
+ ---
404
+
405
+ ## 10. Code Examples
406
+
407
+ ### 10.1 Log Redaction Middleware (TypeScript)
408
+
409
+ ```typescript
410
+ const PII_PATTERNS: Record<string, RegExp> = {
411
+ email: /[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}/g,
412
+ ssn: /\b\d{3}-?\d{2}-?\d{4}\b/g,
413
+ creditCard: /\b\d{4}[- ]?\d{4}[- ]?\d{4}[- ]?\d{4}\b/g,
414
+ phone: /\b(\+?1?[-.\s]?)?\(?\d{3}\)?[-.\s]?\d{3}[-.\s]?\d{4}\b/g,
415
+ };
416
+ const REDACTED_FIELDS = new Set([
417
+ 'password','ssn','taxId','creditCard','cardNumber','cvv','dob','passport',
418
+ 'driversLicense','bankAccount','routingNumber','biometric',
419
+ ]);
420
+
421
+ export function redactPII(obj: unknown, depth = 0): unknown {
422
+ if (depth > 10) return '[MAX_DEPTH]';
423
+ if (typeof obj === 'string') {
424
+ let r = obj;
425
+ for (const [name, pat] of Object.entries(PII_PATTERNS))
426
+ r = r.replace(pat, `[REDACTED_${name.toUpperCase()}]`);
427
+ return r;
428
+ }
429
+ if (Array.isArray(obj)) return obj.map(i => redactPII(i, depth + 1));
430
+ if (obj && typeof obj === 'object') {
431
+ const out: Record<string, unknown> = {};
432
+ for (const [k, v] of Object.entries(obj as Record<string, unknown>))
433
+ out[k] = REDACTED_FIELDS.has(k.toLowerCase()) ? '[REDACTED]' : redactPII(v, depth + 1);
434
+ return out;
435
+ }
436
+ return obj;
437
+ }
438
+
439
+ // Wrap any logger: createPIISafeLogger(winston.createLogger({...}))
440
+ export function createPIISafeLogger(base: any) {
441
+ return Object.fromEntries(
442
+ ['info','warn','error','debug'].map(l => [l, (m: string, meta?: object) =>
443
+ base[l](m, meta ? redactPII(meta) : undefined)])
444
+ );
445
+ }
446
+ ```
447
+
448
+ ### 10.2 PII Field Encryption (TypeScript)
449
+
450
+ ```typescript
451
+ import { createCipheriv, createDecipheriv, randomBytes, scryptSync } from 'crypto';
452
+
453
+ export class PIIFieldEncryptor {
454
+ private key: Buffer;
455
+ constructor(masterKey: string) {
456
+ this.key = scryptSync(masterKey, process.env.PII_KEY_SALT!, 32);
457
+ }
458
+ encrypt(plaintext: string): string {
459
+ const iv = randomBytes(16);
460
+ const cipher = createCipheriv('aes-256-gcm', this.key, iv);
461
+ const enc = cipher.update(plaintext, 'utf8', 'hex') + cipher.final('hex');
462
+ return `${iv.toString('hex')}:${cipher.getAuthTag().toString('hex')}:${enc}`;
463
+ }
464
+ decrypt(value: string): string {
465
+ const [ivH, tagH, enc] = value.split(':');
466
+ const d = createDecipheriv('aes-256-gcm', this.key, Buffer.from(ivH, 'hex'));
467
+ d.setAuthTag(Buffer.from(tagH, 'hex'));
468
+ return d.update(enc, 'hex', 'utf8') + d.final('utf8');
469
+ }
470
+ }
471
+ // ORM middleware: encrypt before write, decrypt after read for specified fields
472
+ ```
473
+
474
+ ### 10.3 API Response Filtering (TypeScript)
475
+
476
+ ```typescript
477
+ type Role = 'public' | 'user' | 'support' | 'admin' | 'compliance';
478
+
479
+ const FIELD_POLICIES: Record<string, { roles: Role[]; mask?: (v: string) => string }> = {
480
+ id: { roles: ['public','user','support','admin','compliance'] },
481
+ displayName: { roles: ['public','user','support','admin','compliance'] },
482
+ email: { roles: ['user','support','admin','compliance'],
483
+ mask: v => `${v[0]}***@${v.split('@')[1]}` },
484
+ phone: { roles: ['user','admin','compliance'],
485
+ mask: v => `***-***-${v.slice(-4)}` },
486
+ ssn: { roles: ['compliance'], mask: v => `***-**-${v.slice(-4)}` },
487
+ };
488
+
489
+ export function filterResponse(user: Record<string, any>, role: Role) {
490
+ const out: Record<string, any> = {};
491
+ for (const [field, policy] of Object.entries(FIELD_POLICIES)) {
492
+ if (!(field in user) || !policy.roles.includes(role)) continue;
493
+ out[field] = (policy.mask && role !== 'user') ? policy.mask(user[field]) : user[field];
494
+ }
495
+ return out;
496
+ }
497
+ // Express middleware: override res.json to apply filterResponse + Cache-Control: no-store
498
+ ```
499
+
500
+ ### 10.4 Data Masking Utilities (TypeScript)
501
+
502
+ ```typescript
503
+ export const mask = {
504
+ email: (v: string) => `${v[0]}${'*'.repeat(v.indexOf('@')-2)}${v.slice(v.indexOf('@')-1)}`,
505
+ phone: (v: string) => `***-***-${v.replace(/\D/g,'').slice(-4)}`,
506
+ ssn: (v: string) => `***-**-${v.replace(/\D/g,'').slice(-4)}`,
507
+ creditCard: (v: string) => `****-****-****-${v.replace(/\D/g,'').slice(-4)}`,
508
+ ip: (v: string) => v.split('.').slice(0,3).join('.') + '.0',
509
+ };
510
+ ```
511
+
512
+ ---
513
+
514
+ ## References
515
+
516
+ **Breach Reports:** [Secureframe Statistics](https://secureframe.com/blog/data-breach-statistics) |
517
+ [IBM NPD Breach](https://www.ibm.com/think/news/national-public-data-breach-publishes-private-data-billions-us-citizens) |
518
+ [Troy Hunt NPD](https://www.troyhunt.com/inside-the-3-billion-people-national-public-data-breach/) |
519
+ [SpyCloud 2025](https://spycloud.com/resource/report/spycloud-annual-identity-exposure-report-2025/) |
520
+ [PKWARE 2025](https://www.pkware.com/blog/recent-data-breaches)
521
+
522
+ **Regulations:** [GDPR Art. 5](https://gdpr-info.eu/art-5-gdpr/) |
523
+ [CCPA](https://oag.ca.gov/privacy/ccpa) |
524
+ [NIST 800-122](https://csrc.nist.gov/pubs/sp/800/122/final) |
525
+ [HIPAA PHI](https://cphs.berkeley.edu/hipaa/hipaa18.html) |
526
+ [PCI DSS 4.0](https://www.scrut.io/hub/pci-dss/pci-dss-4)
527
+
528
+ **Tools:** [Strac PII Scanners](https://www.strac.io/blog/top-10-data-scanning-tools) |
529
+ [Presidio](https://microsoft.github.io/presidio/) |
530
+ [AWS Macie](https://aws.amazon.com/macie/) |
531
+ [GDPR Breach Guide](https://breachresponsefirms.com/gdpr-breach/)