novahiz 0.1.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 (1013) hide show
  1. package/LICENSE +202 -0
  2. package/NOTICE.md +46 -0
  3. package/README.md +123 -0
  4. package/adapters/README.md +13 -0
  5. package/adapters/opencode/agent/novahiz-agent.md +31 -0
  6. package/adapters/opencode/commands/novahiz-clean.md +15 -0
  7. package/adapters/opencode/commands/novahiz-doctor.md +9 -0
  8. package/adapters/opencode/commands/novahiz-plan.md +24 -0
  9. package/adapters/opencode/commands/novahiz-status.md +11 -0
  10. package/adapters/opencode/instructions.md +69 -0
  11. package/adapters/opencode/novahiz.ts +266 -0
  12. package/bin/novahiz.cmd +2 -0
  13. package/bin/novahiz.mjs +7 -0
  14. package/bundled-skills/AGENTS.md +50 -0
  15. package/bundled-skills/LICENSE +21 -0
  16. package/bundled-skills/README.md +202 -0
  17. package/bundled-skills/SKILL.md +313 -0
  18. package/bundled-skills/a11y-audit/SKILL.md +211 -0
  19. package/bundled-skills/a11y-audit/assets/sample-component.tsx +51 -0
  20. package/bundled-skills/a11y-audit/expected_outputs/sample-contrast-output.txt +39 -0
  21. package/bundled-skills/a11y-audit/expected_outputs/sample-scan-output.json +34 -0
  22. package/bundled-skills/a11y-audit/expected_outputs/sample-scan-report.md +63 -0
  23. package/bundled-skills/a11y-audit/references/aria-patterns.md +223 -0
  24. package/bundled-skills/a11y-audit/references/audit-report-template.md +46 -0
  25. package/bundled-skills/a11y-audit/references/ci-cd-integration.md +127 -0
  26. package/bundled-skills/a11y-audit/references/color-contrast-guide.md +83 -0
  27. package/bundled-skills/a11y-audit/references/examples-by-framework.md +312 -0
  28. package/bundled-skills/a11y-audit/references/framework-a11y-patterns.md +661 -0
  29. package/bundled-skills/a11y-audit/references/testing-checklist.md +41 -0
  30. package/bundled-skills/a11y-audit/references/wcag-22-new-criteria.md +79 -0
  31. package/bundled-skills/a11y-audit/references/wcag-quick-ref.md +113 -0
  32. package/bundled-skills/a11y-audit/scripts/a11y_scanner.py +684 -0
  33. package/bundled-skills/a11y-audit/scripts/contrast_checker.py +504 -0
  34. package/bundled-skills/ab-testing/SKILL.md +353 -0
  35. package/bundled-skills/ab-testing/evals/evals.json +105 -0
  36. package/bundled-skills/ab-testing/references/sample-size-guide.md +263 -0
  37. package/bundled-skills/ab-testing/references/test-templates.md +277 -0
  38. package/bundled-skills/ad-creative/SKILL.md +425 -0
  39. package/bundled-skills/ad-creative/assets/creative-review-template.html +400 -0
  40. package/bundled-skills/ad-creative/evals/evals.json +217 -0
  41. package/bundled-skills/ad-creative/references/creative-review-page.md +106 -0
  42. package/bundled-skills/ad-creative/references/creative-roadmap.md +118 -0
  43. package/bundled-skills/ad-creative/references/generative-tools.md +637 -0
  44. package/bundled-skills/ad-creative/references/hook-system.md +115 -0
  45. package/bundled-skills/ad-creative/references/imessage-video-ads.md +201 -0
  46. package/bundled-skills/ad-creative/references/meta-creative-formats.md +114 -0
  47. package/bundled-skills/ad-creative/references/motion-video-ads.md +126 -0
  48. package/bundled-skills/ad-creative/references/platform-specs.md +213 -0
  49. package/bundled-skills/ad-creative/references/short-form-video-specs.md +213 -0
  50. package/bundled-skills/ad-creative/references/static-ad-templates.md +308 -0
  51. package/bundled-skills/ads/SKILL.md +499 -0
  52. package/bundled-skills/ads/evals/evals.json +157 -0
  53. package/bundled-skills/ads/references/abm-playbook.md +93 -0
  54. package/bundled-skills/ads/references/ad-copy-templates.md +207 -0
  55. package/bundled-skills/ads/references/audience-targeting.md +243 -0
  56. package/bundled-skills/ads/references/audit-guardrails.md +83 -0
  57. package/bundled-skills/ads/references/b2b-paid-playbook.md +115 -0
  58. package/bundled-skills/ads/references/conversion-tracking.md +361 -0
  59. package/bundled-skills/ads/references/creative-research-automation.md +103 -0
  60. package/bundled-skills/ads/references/google-ads-audit-checklist.md +84 -0
  61. package/bundled-skills/ads/references/google-search-playbook.md +120 -0
  62. package/bundled-skills/ads/references/linkedin-b2b-playbook.md +107 -0
  63. package/bundled-skills/ads/references/meta-decision-system.md +176 -0
  64. package/bundled-skills/ads/references/payback-period.md +69 -0
  65. package/bundled-skills/ads/references/platform-setup-checklists.md +277 -0
  66. package/bundled-skills/ads/references/rsa-output-spec.md +88 -0
  67. package/bundled-skills/adversarial-reviewer/SKILL.md +247 -0
  68. package/bundled-skills/agent-device/SKILL.md +20 -0
  69. package/bundled-skills/ai-seo/SKILL.md +488 -0
  70. package/bundled-skills/ai-seo/evals/evals.json +135 -0
  71. package/bundled-skills/ai-seo/references/agent-readiness.md +57 -0
  72. package/bundled-skills/ai-seo/references/citations-vs-recommendations.md +85 -0
  73. package/bundled-skills/ai-seo/references/content-patterns.md +287 -0
  74. package/bundled-skills/ai-seo/references/content-types.md +71 -0
  75. package/bundled-skills/ai-seo/references/format-volatility.md +98 -0
  76. package/bundled-skills/ai-seo/references/okf.md +104 -0
  77. package/bundled-skills/ai-seo/references/platform-ranking-factors.md +154 -0
  78. package/bundled-skills/ai-seo/references/youtube-ai-citations.md +60 -0
  79. package/bundled-skills/analytics/SKILL.md +310 -0
  80. package/bundled-skills/analytics/evals/evals.json +90 -0
  81. package/bundled-skills/analytics/references/event-library.md +260 -0
  82. package/bundled-skills/analytics/references/ga4-implementation.md +300 -0
  83. package/bundled-skills/analytics/references/gtm-implementation.md +390 -0
  84. package/bundled-skills/android-emulator/SKILL.md +32 -0
  85. package/bundled-skills/anti-AI-design/SKILL.md +189 -0
  86. package/bundled-skills/anti-pattern-detector/SKILL.md +185 -0
  87. package/bundled-skills/anti-pattern-detector/references/async-network-patterns.md +581 -0
  88. package/bundled-skills/anti-pattern-detector/references/build-deploy-patterns.md +554 -0
  89. package/bundled-skills/anti-pattern-detector/references/cache-patterns.md +446 -0
  90. package/bundled-skills/anti-pattern-detector/references/cloud-infra-patterns.md +538 -0
  91. package/bundled-skills/anti-pattern-detector/references/concurrency-patterns.md +558 -0
  92. package/bundled-skills/anti-pattern-detector/references/language-specific-patterns.md +740 -0
  93. package/bundled-skills/anti-pattern-detector/references/monitoring-patterns.md +456 -0
  94. package/bundled-skills/api-design-reviewer/SKILL.md +433 -0
  95. package/bundled-skills/api-design-reviewer/references/api_antipatterns.md +680 -0
  96. package/bundled-skills/api-design-reviewer/references/rest_design_rules.md +487 -0
  97. package/bundled-skills/api-design-reviewer/scripts/api_linter.py +956 -0
  98. package/bundled-skills/api-design-reviewer/scripts/api_scorecard.py +1661 -0
  99. package/bundled-skills/api-design-reviewer/scripts/breaking_change_detector.py +1102 -0
  100. package/bundled-skills/apple-hig-expert/SKILL.md +108 -0
  101. package/bundled-skills/apple-hig-expert/references/accessibility.md +55 -0
  102. package/bundled-skills/apple-hig-expert/references/platform-specifics.md +48 -0
  103. package/bundled-skills/apple-hig-expert/references/visual-design.md +69 -0
  104. package/bundled-skills/apple-hig-expert/scripts/hig_checker.py +97 -0
  105. package/bundled-skills/apple-hig-expert/templates/hig-audit-template.md +83 -0
  106. package/bundled-skills/build-graph/SKILL.md +38 -0
  107. package/bundled-skills/claude-history-ingest/SKILL.md +463 -0
  108. package/bundled-skills/claude-history-ingest/references/claude-data-format.md +118 -0
  109. package/bundled-skills/clean-code/SKILL.md +99 -0
  110. package/bundled-skills/code-reviewer/README.md +92 -0
  111. package/bundled-skills/code-reviewer/SKILL.md +183 -0
  112. package/bundled-skills/code-reviewer/assets/sample_c_clean.c +71 -0
  113. package/bundled-skills/code-reviewer/assets/sample_c_smells.c +66 -0
  114. package/bundled-skills/code-reviewer/assets/sample_csharp_clean.cs +100 -0
  115. package/bundled-skills/code-reviewer/assets/sample_csharp_smells.cs +78 -0
  116. package/bundled-skills/code-reviewer/assets/sample_java_clean.java +55 -0
  117. package/bundled-skills/code-reviewer/assets/sample_java_smells.java +56 -0
  118. package/bundled-skills/code-reviewer/expected_outputs/sample_c_clean_quality.json +65 -0
  119. package/bundled-skills/code-reviewer/expected_outputs/sample_c_smells_quality.json +155 -0
  120. package/bundled-skills/code-reviewer/expected_outputs/sample_csharp_clean_quality.json +135 -0
  121. package/bundled-skills/code-reviewer/expected_outputs/sample_csharp_smells_quality.json +143 -0
  122. package/bundled-skills/code-reviewer/expected_outputs/sample_java_clean_quality.json +53 -0
  123. package/bundled-skills/code-reviewer/expected_outputs/sample_java_smells_quality.json +83 -0
  124. package/bundled-skills/code-reviewer/languages/c.md +103 -0
  125. package/bundled-skills/code-reviewer/languages/cpp.md +103 -0
  126. package/bundled-skills/code-reviewer/languages/csharp.md +97 -0
  127. package/bundled-skills/code-reviewer/languages/dart.md +108 -0
  128. package/bundled-skills/code-reviewer/languages/go.md +92 -0
  129. package/bundled-skills/code-reviewer/languages/java.md +103 -0
  130. package/bundled-skills/code-reviewer/languages/kotlin.md +88 -0
  131. package/bundled-skills/code-reviewer/languages/php.md +109 -0
  132. package/bundled-skills/code-reviewer/languages/python.md +94 -0
  133. package/bundled-skills/code-reviewer/languages/ruby.md +105 -0
  134. package/bundled-skills/code-reviewer/languages/rust.md +99 -0
  135. package/bundled-skills/code-reviewer/languages/swift.md +88 -0
  136. package/bundled-skills/code-reviewer/languages/typescript.md +97 -0
  137. package/bundled-skills/code-reviewer/rules/universal.md +49 -0
  138. package/bundled-skills/code-reviewer/scripts/code_quality_checker.py +1020 -0
  139. package/bundled-skills/code-reviewer/scripts/pr_analyzer.py +535 -0
  140. package/bundled-skills/code-reviewer/scripts/review_report_generator.py +505 -0
  141. package/bundled-skills/code-understand/SKILL.md +90 -0
  142. package/bundled-skills/codex-history-ingest/SKILL.md +248 -0
  143. package/bundled-skills/codex-history-ingest/references/codex-data-format.md +82 -0
  144. package/bundled-skills/cold-email/SKILL.md +159 -0
  145. package/bundled-skills/cold-email/evals/evals.json +94 -0
  146. package/bundled-skills/cold-email/references/benchmarks.md +83 -0
  147. package/bundled-skills/cold-email/references/follow-up-sequences.md +81 -0
  148. package/bundled-skills/cold-email/references/frameworks.md +90 -0
  149. package/bundled-skills/cold-email/references/personalization.md +79 -0
  150. package/bundled-skills/cold-email/references/subject-lines.md +53 -0
  151. package/bundled-skills/competitor-profiling/SKILL.md +415 -0
  152. package/bundled-skills/competitor-profiling/evals/evals.json +85 -0
  153. package/bundled-skills/competitor-profiling/references/templates.md +167 -0
  154. package/bundled-skills/competitor-profiling/references/tool-reference.md +179 -0
  155. package/bundled-skills/computer-use/SKILL.md +41 -0
  156. package/bundled-skills/content-strategy/SKILL.md +439 -0
  157. package/bundled-skills/content-strategy/evals/evals.json +116 -0
  158. package/bundled-skills/content-strategy/references/content-distribution.md +83 -0
  159. package/bundled-skills/content-strategy/references/headless-cms.md +194 -0
  160. package/bundled-skills/copilot-history-ingest/SKILL.md +376 -0
  161. package/bundled-skills/copilot-history-ingest/references/copilot-data-format.md +321 -0
  162. package/bundled-skills/copy-editing/SKILL.md +457 -0
  163. package/bundled-skills/copy-editing/evals/evals.json +89 -0
  164. package/bundled-skills/copy-editing/references/checklist.md +66 -0
  165. package/bundled-skills/copy-editing/references/content-refresh.md +38 -0
  166. package/bundled-skills/copy-editing/references/plain-english-alternatives.md +394 -0
  167. package/bundled-skills/copywriting/SKILL.md +256 -0
  168. package/bundled-skills/copywriting/evals/evals.json +126 -0
  169. package/bundled-skills/copywriting/references/copy-frameworks.md +433 -0
  170. package/bundled-skills/copywriting/references/natural-transitions.md +272 -0
  171. package/bundled-skills/cro/SKILL.md +187 -0
  172. package/bundled-skills/cro/evals/evals.json +111 -0
  173. package/bundled-skills/cro/references/experiments.md +248 -0
  174. package/bundled-skills/cro/references/form.md +422 -0
  175. package/bundled-skills/cross-linker/SKILL.md +309 -0
  176. package/bundled-skills/customer-research/SKILL.md +305 -0
  177. package/bundled-skills/customer-research/evals/evals.json +176 -0
  178. package/bundled-skills/customer-research/references/interviews-and-surveys.md +155 -0
  179. package/bundled-skills/customer-research/references/source-guides.md +401 -0
  180. package/bundled-skills/daily-update/SKILL.md +223 -0
  181. package/bundled-skills/dart-add-unit-test/SKILL.md +122 -0
  182. package/bundled-skills/dart-build-cli-app/SKILL.md +185 -0
  183. package/bundled-skills/dart-collect-coverage/SKILL.md +141 -0
  184. package/bundled-skills/dart-fix-runtime-errors/SKILL.md +166 -0
  185. package/bundled-skills/dart-generate-test-mocks/SKILL.md +155 -0
  186. package/bundled-skills/dart-migrate-to-checks-package/SKILL.md +528 -0
  187. package/bundled-skills/dart-resolve-package-conflicts/SKILL.md +116 -0
  188. package/bundled-skills/dart-run-static-analysis/SKILL.md +104 -0
  189. package/bundled-skills/dart-setup-ffi-assets/SKILL.md +419 -0
  190. package/bundled-skills/dart-use-doc-examples/SKILL.md +96 -0
  191. package/bundled-skills/dart-use-ffigen/SKILL.md +218 -0
  192. package/bundled-skills/dart-use-pattern-matching/SKILL.md +146 -0
  193. package/bundled-skills/dart-use-primary-constructors/SKILL.md +262 -0
  194. package/bundled-skills/dart-write-documentation/SKILL.md +136 -0
  195. package/bundled-skills/database-designer/README.md +388 -0
  196. package/bundled-skills/database-designer/SKILL.md +314 -0
  197. package/bundled-skills/database-designer/assets/sample_query_patterns.json +375 -0
  198. package/bundled-skills/database-designer/assets/sample_schema.json +372 -0
  199. package/bundled-skills/database-designer/assets/sample_schema.sql +207 -0
  200. package/bundled-skills/database-designer/expected_outputs/index_optimization_sample.txt +60 -0
  201. package/bundled-skills/database-designer/expected_outputs/migration_sample.txt +124 -0
  202. package/bundled-skills/database-designer/expected_outputs/schema_analysis_sample.txt +222 -0
  203. package/bundled-skills/database-designer/index_optimizer.py +926 -0
  204. package/bundled-skills/database-designer/migration_generator.py +1199 -0
  205. package/bundled-skills/database-designer/references/database-design-reference.md +476 -0
  206. package/bundled-skills/database-designer/references/database_selection_decision_tree.md +373 -0
  207. package/bundled-skills/database-designer/references/index_strategy_patterns.md +424 -0
  208. package/bundled-skills/database-designer/references/normalization_guide.md +354 -0
  209. package/bundled-skills/database-designer/schema_analyzer.py +982 -0
  210. package/bundled-skills/debug-issue/SKILL.md +28 -0
  211. package/bundled-skills/defuddle/SKILL.md +41 -0
  212. package/bundled-skills/dependency-auditor/README.md +524 -0
  213. package/bundled-skills/dependency-auditor/SKILL.md +85 -0
  214. package/bundled-skills/dependency-auditor/assets/sample_go.mod +53 -0
  215. package/bundled-skills/dependency-auditor/assets/sample_package.json +72 -0
  216. package/bundled-skills/dependency-auditor/assets/sample_requirements.txt +71 -0
  217. package/bundled-skills/dependency-auditor/expected_outputs/sample_license_report.txt +37 -0
  218. package/bundled-skills/dependency-auditor/expected_outputs/sample_upgrade_plan.txt +59 -0
  219. package/bundled-skills/dependency-auditor/expected_outputs/sample_vulnerability_report.json +71 -0
  220. package/bundled-skills/dependency-auditor/references/dependency_management_best_practices.md +643 -0
  221. package/bundled-skills/dependency-auditor/references/license_compatibility_matrix.md +238 -0
  222. package/bundled-skills/dependency-auditor/references/vulnerability_assessment_guide.md +461 -0
  223. package/bundled-skills/dependency-auditor/scripts/dep_scanner.py +794 -0
  224. package/bundled-skills/dependency-auditor/scripts/license_checker.py +996 -0
  225. package/bundled-skills/dependency-auditor/scripts/upgrade_planner.py +1029 -0
  226. package/bundled-skills/dependency-auditor/test-inventory.json +421 -0
  227. package/bundled-skills/dependency-auditor/test-project/package.json +72 -0
  228. package/bundled-skills/design-taste-frontend/SKILL.md +247 -0
  229. package/bundled-skills/dogfood/SKILL.md +27 -0
  230. package/bundled-skills/eas-app-stores/SKILL.md +176 -0
  231. package/bundled-skills/eas-app-stores/agents/openai.yaml +4 -0
  232. package/bundled-skills/eas-app-stores/references/app-store-metadata.md +497 -0
  233. package/bundled-skills/eas-app-stores/references/ios-app-store.md +376 -0
  234. package/bundled-skills/eas-app-stores/references/native-ios.md +167 -0
  235. package/bundled-skills/eas-app-stores/references/play-store.md +244 -0
  236. package/bundled-skills/eas-app-stores/references/testflight.md +62 -0
  237. package/bundled-skills/eas-app-stores/references/workflows.md +120 -0
  238. package/bundled-skills/eas-hosting/SKILL.md +431 -0
  239. package/bundled-skills/eas-hosting/agents/openai.yaml +4 -0
  240. package/bundled-skills/eas-observe/SKILL.md +54 -0
  241. package/bundled-skills/eas-observe/agents/openai.yaml +4 -0
  242. package/bundled-skills/eas-observe/references/metrics.md +98 -0
  243. package/bundled-skills/eas-observe/references/queries.md +403 -0
  244. package/bundled-skills/eas-observe/references/setup.md +476 -0
  245. package/bundled-skills/eas-observe/references/third-party.md +136 -0
  246. package/bundled-skills/eas-simulator/SKILL.md +208 -0
  247. package/bundled-skills/eas-simulator/agents/openai.yaml +4 -0
  248. package/bundled-skills/eas-simulator/references/controllers.md +106 -0
  249. package/bundled-skills/eas-simulator/references/run-your-app.md +224 -0
  250. package/bundled-skills/eas-simulator/references/troubleshooting.md +44 -0
  251. package/bundled-skills/eas-update/SKILL.md +146 -0
  252. package/bundled-skills/eas-update/agents/openai.yaml +4 -0
  253. package/bundled-skills/eas-update-insights/SKILL.md +238 -0
  254. package/bundled-skills/eas-update-insights/agents/openai.yaml +4 -0
  255. package/bundled-skills/eas-update-insights/references/channel-insights-schema.md +47 -0
  256. package/bundled-skills/eas-update-insights/references/update-insights-schema.md +69 -0
  257. package/bundled-skills/eas-workflows/SKILL.md +99 -0
  258. package/bundled-skills/eas-workflows/agents/openai.yaml +4 -0
  259. package/bundled-skills/eas-workflows/scripts/fetch.js +109 -0
  260. package/bundled-skills/eas-workflows/scripts/package.json +6 -0
  261. package/bundled-skills/emails/SKILL.md +311 -0
  262. package/bundled-skills/emails/evals/evals.json +93 -0
  263. package/bundled-skills/emails/references/copy-guidelines.md +113 -0
  264. package/bundled-skills/emails/references/email-types.md +515 -0
  265. package/bundled-skills/emails/references/sequence-templates.md +168 -0
  266. package/bundled-skills/engineering-standards/SKILL.md +736 -0
  267. package/bundled-skills/env-secrets-manager/SKILL.md +260 -0
  268. package/bundled-skills/env-secrets-manager/references/secret-patterns.md +41 -0
  269. package/bundled-skills/env-secrets-manager/references/validation-detection-rotation.md +358 -0
  270. package/bundled-skills/env-secrets-manager/scripts/env_auditor.py +145 -0
  271. package/bundled-skills/explore-codebase/SKILL.md +29 -0
  272. package/bundled-skills/expo-animation/LICENSE +21 -0
  273. package/bundled-skills/expo-animation/RECIPES.md +385 -0
  274. package/bundled-skills/expo-animation/SKILL.md +267 -0
  275. package/bundled-skills/expo-animation/agents/openai.yaml +4 -0
  276. package/bundled-skills/expo-app-clip/SKILL.md +290 -0
  277. package/bundled-skills/expo-app-clip/agents/openai.yaml +4 -0
  278. package/bundled-skills/expo-app-clip/references/native-module.md +96 -0
  279. package/bundled-skills/expo-brownfield/SKILL.md +62 -0
  280. package/bundled-skills/expo-brownfield/agents/openai.yaml +4 -0
  281. package/bundled-skills/expo-brownfield/references/brownfield-integrated.md +526 -0
  282. package/bundled-skills/expo-brownfield/references/brownfield-isolated.md +451 -0
  283. package/bundled-skills/expo-brownfield/references/comparison.md +63 -0
  284. package/bundled-skills/expo-brownfield/references/troubleshooting.md +88 -0
  285. package/bundled-skills/expo-data-fetching/SKILL.md +478 -0
  286. package/bundled-skills/expo-data-fetching/agents/openai.yaml +4 -0
  287. package/bundled-skills/expo-data-fetching/references/expo-router-loaders.md +341 -0
  288. package/bundled-skills/expo-data-fetching/references/offline-and-cancellation.md +68 -0
  289. package/bundled-skills/expo-design-system/SKILL.md +376 -0
  290. package/bundled-skills/expo-design-system/agents/openai.yaml +4 -0
  291. package/bundled-skills/expo-design-system/references/audit.md +190 -0
  292. package/bundled-skills/expo-design-system/references/native-slop.md +74 -0
  293. package/bundled-skills/expo-dev-client/SKILL.md +182 -0
  294. package/bundled-skills/expo-dev-client/agents/openai.yaml +4 -0
  295. package/bundled-skills/expo-dom/SKILL.md +425 -0
  296. package/bundled-skills/expo-dom/agents/openai.yaml +4 -0
  297. package/bundled-skills/expo-examples/SKILL.md +106 -0
  298. package/bundled-skills/expo-examples/agents/openai.yaml +4 -0
  299. package/bundled-skills/expo-examples/references/catalog.md +105 -0
  300. package/bundled-skills/expo-migrate-module/SKILL.md +113 -0
  301. package/bundled-skills/expo-migrate-module/agents/openai.yaml +4 -0
  302. package/bundled-skills/expo-migrate-module/references/compatibility.md +73 -0
  303. package/bundled-skills/expo-migrate-module/references/example.md +212 -0
  304. package/bundled-skills/expo-migrate-module/references/migration-map.md +306 -0
  305. package/bundled-skills/expo-module/SKILL.md +151 -0
  306. package/bundled-skills/expo-module/agents/openai.yaml +4 -0
  307. package/bundled-skills/expo-module/references/config-plugin.md +90 -0
  308. package/bundled-skills/expo-module/references/create-expo-module.md +206 -0
  309. package/bundled-skills/expo-module/references/lifecycle.md +127 -0
  310. package/bundled-skills/expo-module/references/module-config.md +48 -0
  311. package/bundled-skills/expo-module/references/native-module.md +286 -0
  312. package/bundled-skills/expo-module/references/native-view.md +171 -0
  313. package/bundled-skills/expo-native-ui/SKILL.md +201 -0
  314. package/bundled-skills/expo-native-ui/agents/openai.yaml +4 -0
  315. package/bundled-skills/expo-native-ui/references/controls.md +231 -0
  316. package/bundled-skills/expo-native-ui/references/gradients.md +106 -0
  317. package/bundled-skills/expo-native-ui/references/icons.md +232 -0
  318. package/bundled-skills/expo-native-ui/references/media.md +193 -0
  319. package/bundled-skills/expo-native-ui/references/storage.md +121 -0
  320. package/bundled-skills/expo-native-ui/references/visual-effects.md +198 -0
  321. package/bundled-skills/expo-native-ui/references/webgpu-three.md +605 -0
  322. package/bundled-skills/expo-overview/SKILL.md +115 -0
  323. package/bundled-skills/expo-overview/agents/openai.yaml +4 -0
  324. package/bundled-skills/expo-project-structure/SKILL.md +114 -0
  325. package/bundled-skills/expo-project-structure/agents/openai.yaml +4 -0
  326. package/bundled-skills/expo-router/SKILL.md +240 -0
  327. package/bundled-skills/expo-router/agents/openai.yaml +4 -0
  328. package/bundled-skills/expo-router/references/form-sheet.md +253 -0
  329. package/bundled-skills/expo-router/references/route-structure.md +229 -0
  330. package/bundled-skills/expo-router/references/search.md +248 -0
  331. package/bundled-skills/expo-router/references/tabs.md +433 -0
  332. package/bundled-skills/expo-router/references/toolbar-and-headers.md +284 -0
  333. package/bundled-skills/expo-router/references/zoom-transitions.md +158 -0
  334. package/bundled-skills/expo-skill-eval/SKILL.md +314 -0
  335. package/bundled-skills/expo-skill-eval/agents/visual-grader.md +52 -0
  336. package/bundled-skills/expo-skill-eval/references/design-rubric.md +45 -0
  337. package/bundled-skills/expo-skill-eval/references/runtime-matrix.md +34 -0
  338. package/bundled-skills/expo-skill-eval/scripts/check-static.sh +64 -0
  339. package/bundled-skills/expo-skill-eval/scripts/clean-fixture.sh +56 -0
  340. package/bundled-skills/expo-skill-eval/scripts/generate_viewer.py +450 -0
  341. package/bundled-skills/expo-skill-eval/scripts/latest-sdk.sh +46 -0
  342. package/bundled-skills/expo-skill-eval/scripts/make-fixture.sh +95 -0
  343. package/bundled-skills/expo-skill-eval/scripts/make-workspace.sh +31 -0
  344. package/bundled-skills/expo-skill-eval/scripts/snapshot-android.sh +284 -0
  345. package/bundled-skills/expo-skill-eval/scripts/snapshot-ios.sh +132 -0
  346. package/bundled-skills/expo-skill-eval/scripts/snapshot-web.sh +61 -0
  347. package/bundled-skills/expo-skill-feedback/SKILL.md +87 -0
  348. package/bundled-skills/expo-skill-feedback/agents/openai.yaml +4 -0
  349. package/bundled-skills/expo-skill-feedback/scripts/skill-event.cjs +180 -0
  350. package/bundled-skills/expo-skill-feedback/scripts/telemetry.cjs +65 -0
  351. package/bundled-skills/expo-skill-feedback/scripts/telemetry_common.cjs +171 -0
  352. package/bundled-skills/expo-ui/SKILL.md +101 -0
  353. package/bundled-skills/expo-ui/agents/openai.yaml +4 -0
  354. package/bundled-skills/expo-ui/references/drop-in-replacements.md +27 -0
  355. package/bundled-skills/expo-ui/references/jetpack-compose.md +73 -0
  356. package/bundled-skills/expo-ui/references/swift-ui.md +73 -0
  357. package/bundled-skills/expo-ui/references/universal.md +104 -0
  358. package/bundled-skills/expo-ui/scripts/list-components.js +193 -0
  359. package/bundled-skills/expo-upgrade/SKILL.md +150 -0
  360. package/bundled-skills/expo-upgrade/agents/openai.yaml +4 -0
  361. package/bundled-skills/expo-upgrade/references/expo-av-to-audio.md +132 -0
  362. package/bundled-skills/expo-upgrade/references/expo-av-to-video.md +160 -0
  363. package/bundled-skills/expo-upgrade/references/native-tabs.md +124 -0
  364. package/bundled-skills/expo-upgrade/references/new-architecture.md +79 -0
  365. package/bundled-skills/expo-upgrade/references/react-19.md +79 -0
  366. package/bundled-skills/expo-upgrade/references/react-compiler.md +59 -0
  367. package/bundled-skills/expo-upgrade/references/react-navigation-to-expo-router.md +61 -0
  368. package/bundled-skills/expo-web-to-native/SKILL.md +91 -0
  369. package/bundled-skills/expo-web-to-native/agents/openai.yaml +4 -0
  370. package/bundled-skills/expo-web-to-native/references/false-friends.md +119 -0
  371. package/bundled-skills/expo-web-to-native/references/native-patterns.md +39 -0
  372. package/bundled-skills/expo-web-to-native/references/run-as-goal.md +48 -0
  373. package/bundled-skills/expo-web-to-native/references/verify-on-device.md +45 -0
  374. package/bundled-skills/find-skills/SKILL.md +141 -0
  375. package/bundled-skills/fix/SKILL.md +113 -0
  376. package/bundled-skills/fix/flaky-taxonomy.md +134 -0
  377. package/bundled-skills/flutter-add-integration-test/SKILL.md +163 -0
  378. package/bundled-skills/flutter-add-widget-preview/SKILL.md +145 -0
  379. package/bundled-skills/flutter-add-widget-test/SKILL.md +154 -0
  380. package/bundled-skills/flutter-apply-architecture-best-practices/SKILL.md +162 -0
  381. package/bundled-skills/flutter-build-responsive-layout/SKILL.md +139 -0
  382. package/bundled-skills/flutter-fix-layout-issues/SKILL.md +130 -0
  383. package/bundled-skills/flutter-implement-json-serialization/SKILL.md +153 -0
  384. package/bundled-skills/flutter-setup-declarative-routing/SKILL.md +255 -0
  385. package/bundled-skills/flutter-setup-localization/SKILL.md +210 -0
  386. package/bundled-skills/flutter-use-http-package/SKILL.md +174 -0
  387. package/bundled-skills/gate/SKILL.md +13 -0
  388. package/bundled-skills/graph-colorize/SKILL.md +180 -0
  389. package/bundled-skills/hermes-history-ingest/SKILL.md +239 -0
  390. package/bundled-skills/hermes-history-ingest/references/hermes-data-format.md +131 -0
  391. package/bundled-skills/humanizer/SKILL.md +374 -0
  392. package/bundled-skills/impeccable/SKILL.md +89 -0
  393. package/bundled-skills/impeccable/reference/adapt.md +312 -0
  394. package/bundled-skills/impeccable/reference/adapt.native.md +58 -0
  395. package/bundled-skills/impeccable/reference/android.md +46 -0
  396. package/bundled-skills/impeccable/reference/animate.md +89 -0
  397. package/bundled-skills/impeccable/reference/audit.md +136 -0
  398. package/bundled-skills/impeccable/reference/audit.native.md +139 -0
  399. package/bundled-skills/impeccable/reference/bolder.md +33 -0
  400. package/bundled-skills/impeccable/reference/clarify.md +94 -0
  401. package/bundled-skills/impeccable/reference/colorize.md +86 -0
  402. package/bundled-skills/impeccable/reference/craft-floor.md +44 -0
  403. package/bundled-skills/impeccable/reference/craft.md +5 -0
  404. package/bundled-skills/impeccable/reference/critique.md +806 -0
  405. package/bundled-skills/impeccable/reference/degraded/asset-producer.md +37 -0
  406. package/bundled-skills/impeccable/reference/degraded/documenter.md +24 -0
  407. package/bundled-skills/impeccable/reference/degraded/finish-reviewer.md +38 -0
  408. package/bundled-skills/impeccable/reference/degraded/manual-edit-applier.md +92 -0
  409. package/bundled-skills/impeccable/reference/delight.md +70 -0
  410. package/bundled-skills/impeccable/reference/distill.md +111 -0
  411. package/bundled-skills/impeccable/reference/doctor.md +54 -0
  412. package/bundled-skills/impeccable/reference/document.md +416 -0
  413. package/bundled-skills/impeccable/reference/extract.md +69 -0
  414. package/bundled-skills/impeccable/reference/harden.md +336 -0
  415. package/bundled-skills/impeccable/reference/hooks.md +111 -0
  416. package/bundled-skills/impeccable/reference/init.md +131 -0
  417. package/bundled-skills/impeccable/reference/ios.md +51 -0
  418. package/bundled-skills/impeccable/reference/layout.md +84 -0
  419. package/bundled-skills/impeccable/reference/live-setup.md +104 -0
  420. package/bundled-skills/impeccable/reference/live.md +325 -0
  421. package/bundled-skills/impeccable/reference/new-work.md +145 -0
  422. package/bundled-skills/impeccable/reference/onboard.md +234 -0
  423. package/bundled-skills/impeccable/reference/operate.md +61 -0
  424. package/bundled-skills/impeccable/reference/optimize.md +258 -0
  425. package/bundled-skills/impeccable/reference/overdrive.md +127 -0
  426. package/bundled-skills/impeccable/reference/polish.md +105 -0
  427. package/bundled-skills/impeccable/reference/quieter.md +99 -0
  428. package/bundled-skills/impeccable/reference/routing.md +24 -0
  429. package/bundled-skills/impeccable/reference/shape.md +59 -0
  430. package/bundled-skills/impeccable/reference/typeset.md +80 -0
  431. package/bundled-skills/impeccable/reference/visualize.md +46 -0
  432. package/bundled-skills/impeccable/scripts/VERSION +1 -0
  433. package/bundled-skills/impeccable/scripts/bin/windows-x64/impeccable.exe +0 -0
  434. package/bundled-skills/impeccable/scripts/command-metadata.json +94 -0
  435. package/bundled-skills/impeccable/scripts/data/font-index-failures.json +121 -0
  436. package/bundled-skills/impeccable/scripts/data/font-index.json +1 -0
  437. package/bundled-skills/impeccable/scripts/impeccable +206 -0
  438. package/bundled-skills/impeccable/scripts/impeccable.cmd +214 -0
  439. package/bundled-skills/impeccable/scripts/live-browser-dom.js +167 -0
  440. package/bundled-skills/impeccable/scripts/live-browser-ignores.js +242 -0
  441. package/bundled-skills/impeccable/scripts/live-browser-session.js +144 -0
  442. package/bundled-skills/impeccable/scripts/live-browser.js +12990 -0
  443. package/bundled-skills/impeccable/scripts/modern-screenshot.umd.js +14 -0
  444. package/bundled-skills/impl-validator/SKILL.md +118 -0
  445. package/bundled-skills/ios-simulator/SKILL.md +32 -0
  446. package/bundled-skills/json-canvas/SKILL.md +244 -0
  447. package/bundled-skills/json-canvas/references/EXAMPLES.md +329 -0
  448. package/bundled-skills/launch/SKILL.md +381 -0
  449. package/bundled-skills/launch/evals/evals.json +106 -0
  450. package/bundled-skills/llm-wiki/SKILL.md +661 -0
  451. package/bundled-skills/llm-wiki/references/WRITING.md +28 -0
  452. package/bundled-skills/llm-wiki/references/karpathy-pattern.md +45 -0
  453. package/bundled-skills/marketing-plan/SKILL.md +300 -0
  454. package/bundled-skills/marketing-plan/evals/evals.json +112 -0
  455. package/bundled-skills/marketing-plan/references/aarrr-framework.md +180 -0
  456. package/bundled-skills/marketing-plan/references/budget-planning.md +168 -0
  457. package/bundled-skills/marketing-plan/references/client-types.md +373 -0
  458. package/bundled-skills/marketing-plan/references/current-state-rubric.md +255 -0
  459. package/bundled-skills/marketing-plan/references/example-quietude.md +972 -0
  460. package/bundled-skills/marketing-plan/references/funding-stage-unlocks.md +230 -0
  461. package/bundled-skills/marketing-plan/references/growth-patterns.md +190 -0
  462. package/bundled-skills/marketing-plan/references/idea-cross-reference.md +265 -0
  463. package/bundled-skills/marketing-plan/references/measurement-framework.md +213 -0
  464. package/bundled-skills/marketing-plan/references/methodology.md +363 -0
  465. package/bundled-skills/marketing-plan/references/ops-stack-mapping.md +197 -0
  466. package/bundled-skills/marketing-plan/references/plan-template.md +494 -0
  467. package/bundled-skills/marketing-plan/references/team-and-agency-model.md +278 -0
  468. package/bundled-skills/marketing-psychology/SKILL.md +455 -0
  469. package/bundled-skills/marketing-psychology/evals/evals.json +88 -0
  470. package/bundled-skills/mcp-server-builder/README.md +50 -0
  471. package/bundled-skills/mcp-server-builder/SKILL.md +100 -0
  472. package/bundled-skills/mcp-server-builder/references/openapi-extraction-guide.md +34 -0
  473. package/bundled-skills/mcp-server-builder/references/production-hardening-guide.md +78 -0
  474. package/bundled-skills/mcp-server-builder/references/python-server-template.md +22 -0
  475. package/bundled-skills/mcp-server-builder/references/typescript-server-template.md +19 -0
  476. package/bundled-skills/mcp-server-builder/references/validation-checklist.md +30 -0
  477. package/bundled-skills/mcp-server-builder/scripts/mcp_validator.py +186 -0
  478. package/bundled-skills/mcp-server-builder/scripts/openapi_to_mcp.py +284 -0
  479. package/bundled-skills/memory/SKILL.md +10 -0
  480. package/bundled-skills/memory-bridge/SKILL.md +163 -0
  481. package/bundled-skills/memory-save/SKILL.md +88 -0
  482. package/bundled-skills/migrate/SKILL.md +135 -0
  483. package/bundled-skills/migrate/cypress-mapping.md +79 -0
  484. package/bundled-skills/migrate/selenium-mapping.md +94 -0
  485. package/bundled-skills/novahiz-analyse/SKILL.md +74 -0
  486. package/bundled-skills/novahiz-audit/SKILL.md +75 -0
  487. package/bundled-skills/novahiz-clarify/SKILL.md +94 -0
  488. package/bundled-skills/novahiz-converge/SKILL.md +76 -0
  489. package/bundled-skills/novahiz-gate/SKILL.md +82 -0
  490. package/bundled-skills/novahiz-implement/SKILL.md +80 -0
  491. package/bundled-skills/novahiz-memory/SKILL.md +58 -0
  492. package/bundled-skills/novahiz-plan/SKILL.md +100 -0
  493. package/bundled-skills/novahiz-planner/SKILL.md +104 -0
  494. package/bundled-skills/novahiz-task/SKILL.md +105 -0
  495. package/bundled-skills/obsidian-bases/SKILL.md +499 -0
  496. package/bundled-skills/obsidian-bases/references/FUNCTIONS_REFERENCE.md +173 -0
  497. package/bundled-skills/obsidian-cli/SKILL.md +106 -0
  498. package/bundled-skills/obsidian-layout-adjustment/SKILL.md +226 -0
  499. package/bundled-skills/obsidian-layout-adjustment/evals/evals.json +53 -0
  500. package/bundled-skills/obsidian-layout-adjustment/references/workflow-reference.md +212 -0
  501. package/bundled-skills/obsidian-markdown/SKILL.md +196 -0
  502. package/bundled-skills/obsidian-markdown/references/CALLOUTS.md +58 -0
  503. package/bundled-skills/obsidian-markdown/references/EMBEDS.md +70 -0
  504. package/bundled-skills/obsidian-markdown/references/PROPERTIES.md +61 -0
  505. package/bundled-skills/offers/SKILL.md +155 -0
  506. package/bundled-skills/offers/evals/evals.json +21 -0
  507. package/bundled-skills/offers/references/bonus-stacking.md +150 -0
  508. package/bundled-skills/offers/references/examples.md +215 -0
  509. package/bundled-skills/offers/references/guarantee-design.md +172 -0
  510. package/bundled-skills/offers/references/offer-anatomy.md +203 -0
  511. package/bundled-skills/offers/references/offer-formats.md +240 -0
  512. package/bundled-skills/offers/references/saas-offers.md +116 -0
  513. package/bundled-skills/offers/references/scarcity-urgency.md +175 -0
  514. package/bundled-skills/offers/references/value-equation.md +134 -0
  515. package/bundled-skills/onboarding/SKILL.md +261 -0
  516. package/bundled-skills/onboarding/evals/evals.json +108 -0
  517. package/bundled-skills/onboarding/references/activation-models.md +57 -0
  518. package/bundled-skills/onboarding/references/experiments.md +258 -0
  519. package/bundled-skills/onboarding/references/minimum-path-to-value.md +49 -0
  520. package/bundled-skills/openclaw-history-ingest/SKILL.md +257 -0
  521. package/bundled-skills/openclaw-history-ingest/references/openclaw-data-format.md +154 -0
  522. package/bundled-skills/orchestration/SKILL.md +69 -0
  523. package/bundled-skills/pi-history-ingest/SKILL.md +312 -0
  524. package/bundled-skills/playwright-agent/SKILL.md +142 -0
  525. package/bundled-skills/postgresql-optimization/SKILL.md +179 -0
  526. package/bundled-skills/pricing/SKILL.md +295 -0
  527. package/bundled-skills/pricing/evals/evals.json +119 -0
  528. package/bundled-skills/pricing/references/pricing-models.md +66 -0
  529. package/bundled-skills/pricing/references/pricing-page-teardown.md +85 -0
  530. package/bundled-skills/pricing/references/research-methods.md +152 -0
  531. package/bundled-skills/pricing/references/tier-structure.md +232 -0
  532. package/bundled-skills/product-marketing/SKILL.md +255 -0
  533. package/bundled-skills/product-marketing/evals/evals.json +98 -0
  534. package/bundled-skills/prospecting/SKILL.md +262 -0
  535. package/bundled-skills/prospecting/evals/evals.json +122 -0
  536. package/bundled-skills/prospecting/references/b2b-prospecting.md +106 -0
  537. package/bundled-skills/prospecting/references/compliance.md +123 -0
  538. package/bundled-skills/prospecting/references/data-sources.md +287 -0
  539. package/bundled-skills/prospecting/references/demand-signals.md +129 -0
  540. package/bundled-skills/prospecting/references/local-prospecting.md +165 -0
  541. package/bundled-skills/prospecting/references/saas-prospecting.md +123 -0
  542. package/bundled-skills/refactor-safely/SKILL.md +29 -0
  543. package/bundled-skills/review-changes/SKILL.md +30 -0
  544. package/bundled-skills/review-delta/SKILL.md +46 -0
  545. package/bundled-skills/review-pr/SKILL.md +66 -0
  546. package/bundled-skills/sales-enablement/SKILL.md +359 -0
  547. package/bundled-skills/sales-enablement/evals/evals.json +91 -0
  548. package/bundled-skills/sales-enablement/references/deck-frameworks.md +263 -0
  549. package/bundled-skills/sales-enablement/references/demo-scripts.md +355 -0
  550. package/bundled-skills/sales-enablement/references/objection-library.md +270 -0
  551. package/bundled-skills/sales-enablement/references/one-pager-templates.md +208 -0
  552. package/bundled-skills/security-guidance/SKILL.md +161 -0
  553. package/bundled-skills/security-guidance/references/pretooluse_hook_canon.md +141 -0
  554. package/bundled-skills/senior-architect/SKILL.md +343 -0
  555. package/bundled-skills/senior-architect/references/architecture_patterns.md +470 -0
  556. package/bundled-skills/senior-architect/references/system_design_workflows.md +536 -0
  557. package/bundled-skills/senior-architect/references/tech_decision_guide.md +412 -0
  558. package/bundled-skills/senior-architect/scripts/architecture_diagram_generator.py +660 -0
  559. package/bundled-skills/senior-architect/scripts/dependency_analyzer.py +615 -0
  560. package/bundled-skills/senior-architect/scripts/project_architect.py +749 -0
  561. package/bundled-skills/senior-backend/SKILL.md +467 -0
  562. package/bundled-skills/senior-backend/profiles/django-monolith.json +57 -0
  563. package/bundled-skills/senior-backend/profiles/fastapi-python.json +58 -0
  564. package/bundled-skills/senior-backend/profiles/go-or-rust-microservice.json +62 -0
  565. package/bundled-skills/senior-backend/profiles/node-express.json +57 -0
  566. package/bundled-skills/senior-backend/references/api_design_patterns.md +530 -0
  567. package/bundled-skills/senior-backend/references/backend_security_practices.md +1075 -0
  568. package/bundled-skills/senior-backend/references/composition_map.md +58 -0
  569. package/bundled-skills/senior-backend/references/database_optimization_guide.md +593 -0
  570. package/bundled-skills/senior-backend/references/forcing_questions.md +100 -0
  571. package/bundled-skills/senior-backend/scripts/api_load_tester.py +607 -0
  572. package/bundled-skills/senior-backend/scripts/api_scaffolder.py +645 -0
  573. package/bundled-skills/senior-backend/scripts/backend_decision_engine.py +397 -0
  574. package/bundled-skills/senior-backend/scripts/database_migration_tool.py +858 -0
  575. package/bundled-skills/seo-audit/SKILL.md +499 -0
  576. package/bundled-skills/seo-audit/evals/evals.json +136 -0
  577. package/bundled-skills/seo-audit/references/ai-writing-detection.md +200 -0
  578. package/bundled-skills/seo-audit/references/international-seo.md +230 -0
  579. package/bundled-skills/session-brain/SKILL.md +101 -0
  580. package/bundled-skills/session-search/SKILL.md +97 -0
  581. package/bundled-skills/skill-creator/LICENSE.txt +202 -0
  582. package/bundled-skills/skill-creator/SKILL.md +485 -0
  583. package/bundled-skills/skill-creator/agents/analyzer.md +274 -0
  584. package/bundled-skills/skill-creator/agents/comparator.md +202 -0
  585. package/bundled-skills/skill-creator/agents/grader.md +223 -0
  586. package/bundled-skills/skill-creator/assets/eval_review.html +146 -0
  587. package/bundled-skills/skill-creator/eval-viewer/generate_review.py +471 -0
  588. package/bundled-skills/skill-creator/eval-viewer/viewer.html +1325 -0
  589. package/bundled-skills/skill-creator/references/schemas.md +430 -0
  590. package/bundled-skills/skill-creator/scripts/__init__.py +0 -0
  591. package/bundled-skills/skill-creator/scripts/aggregate_benchmark.py +401 -0
  592. package/bundled-skills/skill-creator/scripts/generate_report.py +326 -0
  593. package/bundled-skills/skill-creator/scripts/improve_description.py +247 -0
  594. package/bundled-skills/skill-creator/scripts/package_skill.py +136 -0
  595. package/bundled-skills/skill-creator/scripts/quick_validate.py +103 -0
  596. package/bundled-skills/skill-creator/scripts/run_eval.py +310 -0
  597. package/bundled-skills/skill-creator/scripts/run_loop.py +328 -0
  598. package/bundled-skills/skill-creator/scripts/utils.py +47 -0
  599. package/bundled-skills/social/SKILL.md +413 -0
  600. package/bundled-skills/social/evals/evals.json +107 -0
  601. package/bundled-skills/social/references/carousel-frameworks.md +141 -0
  602. package/bundled-skills/social/references/listening-sources-template.md +123 -0
  603. package/bundled-skills/social/references/listening.md +283 -0
  604. package/bundled-skills/social/references/platform-limits.md +110 -0
  605. package/bundled-skills/social/references/platforms.md +170 -0
  606. package/bundled-skills/social/references/post-templates.md +179 -0
  607. package/bundled-skills/social/references/reverse-engineering.md +195 -0
  608. package/bundled-skills/social/references/short-form-video.md +237 -0
  609. package/bundled-skills/spec-driven-workflow/SKILL.md +333 -0
  610. package/bundled-skills/spec-driven-workflow/references/acceptance_criteria_patterns.md +497 -0
  611. package/bundled-skills/spec-driven-workflow/references/bounded_autonomy_rules.md +273 -0
  612. package/bundled-skills/spec-driven-workflow/references/spec_format_guide.md +531 -0
  613. package/bundled-skills/spec-driven-workflow/scripts/spec_generator.py +338 -0
  614. package/bundled-skills/spec-driven-workflow/scripts/spec_validator.py +461 -0
  615. package/bundled-skills/spec-driven-workflow/scripts/test_extractor.py +431 -0
  616. package/bundled-skills/supabase/CHANGELOG.md +78 -0
  617. package/bundled-skills/supabase/SKILL.md +149 -0
  618. package/bundled-skills/supabase/assets/feedback-issue-template.md +17 -0
  619. package/bundled-skills/supabase/references/skill-feedback.md +17 -0
  620. package/bundled-skills/supabase-postgres-best-practices/CHANGELOG.md +73 -0
  621. package/bundled-skills/supabase-postgres-best-practices/SKILL.md +64 -0
  622. package/bundled-skills/supabase-postgres-best-practices/references/_contributing.md +170 -0
  623. package/bundled-skills/supabase-postgres-best-practices/references/_sections.md +39 -0
  624. package/bundled-skills/supabase-postgres-best-practices/references/_template.md +34 -0
  625. package/bundled-skills/supabase-postgres-best-practices/references/advanced-full-text-search.md +55 -0
  626. package/bundled-skills/supabase-postgres-best-practices/references/advanced-jsonb-indexing.md +49 -0
  627. package/bundled-skills/supabase-postgres-best-practices/references/conn-idle-timeout.md +46 -0
  628. package/bundled-skills/supabase-postgres-best-practices/references/conn-limits.md +44 -0
  629. package/bundled-skills/supabase-postgres-best-practices/references/conn-pooling.md +41 -0
  630. package/bundled-skills/supabase-postgres-best-practices/references/conn-prepared-statements.md +46 -0
  631. package/bundled-skills/supabase-postgres-best-practices/references/data-batch-inserts.md +54 -0
  632. package/bundled-skills/supabase-postgres-best-practices/references/data-n-plus-one.md +53 -0
  633. package/bundled-skills/supabase-postgres-best-practices/references/data-pagination.md +50 -0
  634. package/bundled-skills/supabase-postgres-best-practices/references/data-upsert.md +50 -0
  635. package/bundled-skills/supabase-postgres-best-practices/references/lock-advisory.md +56 -0
  636. package/bundled-skills/supabase-postgres-best-practices/references/lock-deadlock-prevention.md +68 -0
  637. package/bundled-skills/supabase-postgres-best-practices/references/lock-short-transactions.md +50 -0
  638. package/bundled-skills/supabase-postgres-best-practices/references/lock-skip-locked.md +54 -0
  639. package/bundled-skills/supabase-postgres-best-practices/references/monitor-explain-analyze.md +45 -0
  640. package/bundled-skills/supabase-postgres-best-practices/references/monitor-pg-stat-statements.md +55 -0
  641. package/bundled-skills/supabase-postgres-best-practices/references/monitor-vacuum-analyze.md +55 -0
  642. package/bundled-skills/supabase-postgres-best-practices/references/query-composite-indexes.md +44 -0
  643. package/bundled-skills/supabase-postgres-best-practices/references/query-covering-indexes.md +40 -0
  644. package/bundled-skills/supabase-postgres-best-practices/references/query-index-types.md +48 -0
  645. package/bundled-skills/supabase-postgres-best-practices/references/query-missing-indexes.md +43 -0
  646. package/bundled-skills/supabase-postgres-best-practices/references/query-partial-indexes.md +45 -0
  647. package/bundled-skills/supabase-postgres-best-practices/references/schema-constraints.md +80 -0
  648. package/bundled-skills/supabase-postgres-best-practices/references/schema-data-types.md +46 -0
  649. package/bundled-skills/supabase-postgres-best-practices/references/schema-foreign-key-indexes.md +59 -0
  650. package/bundled-skills/supabase-postgres-best-practices/references/schema-lowercase-identifiers.md +55 -0
  651. package/bundled-skills/supabase-postgres-best-practices/references/schema-partitioning.md +55 -0
  652. package/bundled-skills/supabase-postgres-best-practices/references/schema-primary-keys.md +61 -0
  653. package/bundled-skills/supabase-postgres-best-practices/references/security-privileges.md +54 -0
  654. package/bundled-skills/supabase-postgres-best-practices/references/security-rls-basics.md +50 -0
  655. package/bundled-skills/supabase-postgres-best-practices/references/security-rls-performance.md +63 -0
  656. package/bundled-skills/tag-taxonomy/SKILL.md +218 -0
  657. package/bundled-skills/typescript-expert/SKILL.md +431 -0
  658. package/bundled-skills/typescript-expert/references/tsconfig-strict.json +45 -0
  659. package/bundled-skills/typescript-expert/references/typescript-cheatsheet.md +383 -0
  660. package/bundled-skills/typescript-expert/references/utility-types.ts +335 -0
  661. package/bundled-skills/typescript-expert/scripts/ts_diagnostic.py +203 -0
  662. package/bundled-skills/ui-design-system/SKILL.md +379 -0
  663. package/bundled-skills/ui-design-system/assets/design_system_doc_template.md +180 -0
  664. package/bundled-skills/ui-design-system/references/component-architecture.md +396 -0
  665. package/bundled-skills/ui-design-system/references/developer-handoff.md +509 -0
  666. package/bundled-skills/ui-design-system/references/responsive-calculations.md +390 -0
  667. package/bundled-skills/ui-design-system/references/token-generation.md +324 -0
  668. package/bundled-skills/ui-design-system/scripts/design_token_generator.py +590 -0
  669. package/bundled-skills/vault-skill-factory/SKILL.md +143 -0
  670. package/bundled-skills/video/SKILL.md +346 -0
  671. package/bundled-skills/video/evals/evals.json +103 -0
  672. package/bundled-skills/video/references/ai-video-prompting.md +175 -0
  673. package/bundled-skills/video/references/edit-anatomy.md +84 -0
  674. package/bundled-skills/wiki-agent/SKILL.md +322 -0
  675. package/bundled-skills/wiki-capture/SKILL.md +337 -0
  676. package/bundled-skills/wiki-capture/references/RAW-FORMAT.md +115 -0
  677. package/bundled-skills/wiki-context-pack/SKILL.md +89 -0
  678. package/bundled-skills/wiki-dashboard/SKILL.md +472 -0
  679. package/bundled-skills/wiki-dedup/SKILL.md +320 -0
  680. package/bundled-skills/wiki-digest/SKILL.md +243 -0
  681. package/bundled-skills/wiki-export/SKILL.md +445 -0
  682. package/bundled-skills/wiki-history-ingest/SKILL.md +61 -0
  683. package/bundled-skills/wiki-import/SKILL.md +276 -0
  684. package/bundled-skills/wiki-ingest/SKILL.md +563 -0
  685. package/bundled-skills/wiki-ingest/references/ingest-prompts.md +54 -0
  686. package/bundled-skills/wiki-ingest/references/pageindex.md +72 -0
  687. package/bundled-skills/wiki-ingest/references/url-sources.md +295 -0
  688. package/bundled-skills/wiki-lint/SKILL.md +643 -0
  689. package/bundled-skills/wiki-narrate/SKILL.md +120 -0
  690. package/bundled-skills/wiki-narrate/references/voices.md +29 -0
  691. package/bundled-skills/wiki-query/SKILL.md +307 -0
  692. package/bundled-skills/wiki-rebuild/SKILL.md +212 -0
  693. package/bundled-skills/wiki-research/SKILL.md +319 -0
  694. package/bundled-skills/wiki-setup/SKILL.md +359 -0
  695. package/bundled-skills/wiki-stage-commit/SKILL.md +164 -0
  696. package/bundled-skills/wiki-status/SKILL.md +556 -0
  697. package/bundled-skills/wiki-switch/SKILL.md +115 -0
  698. package/bundled-skills/wiki-synthesize/SKILL.md +212 -0
  699. package/bundled-skills/wiki-update/SKILL.md +271 -0
  700. package/bundled-skills/write-a-skill/SKILL.md +141 -0
  701. package/bundled-skills/write-a-skill/references/companion_tooling.md +67 -0
  702. package/bundled-skills/write-a-skill/references/description_design_patterns.md +139 -0
  703. package/bundled-skills/write-a-skill/references/progressive_disclosure_principles.md +89 -0
  704. package/bundled-skills/write-a-skill/references/quality_gates_for_skills.md +158 -0
  705. package/bundled-skills/write-a-skill/scripts/skill_description_validator.py +255 -0
  706. package/bundled-skills/write-a-skill/scripts/skill_review_checklist_runner.py +268 -0
  707. package/bundled-skills/write-a-skill/scripts/skill_structure_validator.py +277 -0
  708. package/bundled-skills/zero-hallucination-coder/SKILL.md +271 -0
  709. package/catalog/categories.json +1030 -0
  710. package/catalog/overrides.json +525 -0
  711. package/catalog/providers.json +145 -0
  712. package/catalog/rules.json +112 -0
  713. package/docs/ARCHITECTURE.md +82 -0
  714. package/docs/CONSTITUTION.md +60 -0
  715. package/docs/EXECUTION.md +79 -0
  716. package/docs/HARNESSES.md +38 -0
  717. package/docs/INSTALL.md +123 -0
  718. package/docs/PROVIDERS.md +128 -0
  719. package/docs/ROADMAPS.md +74 -0
  720. package/docs/RULES.md +85 -0
  721. package/docs/TOKENS.md +48 -0
  722. package/install/bootstrap.mjs +273 -0
  723. package/install/install.mjs +466 -0
  724. package/install/install.ps1 +3 -0
  725. package/install/install.sh +4 -0
  726. package/install/lib.mjs +198 -0
  727. package/install/prompt.mjs +16 -0
  728. package/install/uninstall.mjs +109 -0
  729. package/mcp/novahiz-tools/README.md +26 -0
  730. package/mcp/novahiz-tools/index.mjs +452 -0
  731. package/novahiz.config.example.json +39 -0
  732. package/package.json +76 -0
  733. package/skills/a11y-audit/SKILL.md +211 -0
  734. package/skills/a11y-audit/assets/sample-component.tsx +51 -0
  735. package/skills/a11y-audit/expected_outputs/sample-contrast-output.txt +39 -0
  736. package/skills/a11y-audit/expected_outputs/sample-scan-output.json +34 -0
  737. package/skills/a11y-audit/expected_outputs/sample-scan-report.md +63 -0
  738. package/skills/a11y-audit/references/aria-patterns.md +223 -0
  739. package/skills/a11y-audit/references/audit-report-template.md +46 -0
  740. package/skills/a11y-audit/references/ci-cd-integration.md +127 -0
  741. package/skills/a11y-audit/references/color-contrast-guide.md +83 -0
  742. package/skills/a11y-audit/references/examples-by-framework.md +312 -0
  743. package/skills/a11y-audit/references/framework-a11y-patterns.md +661 -0
  744. package/skills/a11y-audit/references/testing-checklist.md +41 -0
  745. package/skills/a11y-audit/references/wcag-22-new-criteria.md +79 -0
  746. package/skills/a11y-audit/references/wcag-quick-ref.md +113 -0
  747. package/skills/a11y-audit/scripts/a11y_scanner.py +684 -0
  748. package/skills/a11y-audit/scripts/contrast_checker.py +504 -0
  749. package/skills/adversarial-reviewer/SKILL.md +247 -0
  750. package/skills/ai-security/SKILL.md +364 -0
  751. package/skills/ai-security/references/atlas-coverage.md +150 -0
  752. package/skills/ai-security/scripts/ai_threat_scanner.py +564 -0
  753. package/skills/anti-AI-design/SKILL.md +189 -0
  754. package/skills/anti-pattern-detector/SKILL.md +185 -0
  755. package/skills/anti-pattern-detector/references/async-network-patterns.md +581 -0
  756. package/skills/anti-pattern-detector/references/build-deploy-patterns.md +554 -0
  757. package/skills/anti-pattern-detector/references/cache-patterns.md +446 -0
  758. package/skills/anti-pattern-detector/references/cloud-infra-patterns.md +538 -0
  759. package/skills/anti-pattern-detector/references/concurrency-patterns.md +558 -0
  760. package/skills/anti-pattern-detector/references/language-specific-patterns.md +740 -0
  761. package/skills/anti-pattern-detector/references/monitoring-patterns.md +456 -0
  762. package/skills/api-design-reviewer/SKILL.md +433 -0
  763. package/skills/api-design-reviewer/references/api_antipatterns.md +680 -0
  764. package/skills/api-design-reviewer/references/rest_design_rules.md +487 -0
  765. package/skills/api-design-reviewer/scripts/api_linter.py +956 -0
  766. package/skills/api-design-reviewer/scripts/api_scorecard.py +1661 -0
  767. package/skills/api-design-reviewer/scripts/breaking_change_detector.py +1102 -0
  768. package/skills/apple-hig-expert/SKILL.md +108 -0
  769. package/skills/apple-hig-expert/references/accessibility.md +55 -0
  770. package/skills/apple-hig-expert/references/platform-specifics.md +48 -0
  771. package/skills/apple-hig-expert/references/visual-design.md +69 -0
  772. package/skills/apple-hig-expert/scripts/hig_checker.py +97 -0
  773. package/skills/apple-hig-expert/templates/hig-audit-template.md +83 -0
  774. package/skills/clean-code/SKILL.md +99 -0
  775. package/skills/code-reviewer/README.md +92 -0
  776. package/skills/code-reviewer/SKILL.md +183 -0
  777. package/skills/code-reviewer/assets/sample_c_clean.c +71 -0
  778. package/skills/code-reviewer/assets/sample_c_smells.c +66 -0
  779. package/skills/code-reviewer/assets/sample_csharp_clean.cs +100 -0
  780. package/skills/code-reviewer/assets/sample_csharp_smells.cs +78 -0
  781. package/skills/code-reviewer/assets/sample_java_clean.java +55 -0
  782. package/skills/code-reviewer/assets/sample_java_smells.java +56 -0
  783. package/skills/code-reviewer/expected_outputs/sample_c_clean_quality.json +65 -0
  784. package/skills/code-reviewer/expected_outputs/sample_c_smells_quality.json +155 -0
  785. package/skills/code-reviewer/expected_outputs/sample_csharp_clean_quality.json +135 -0
  786. package/skills/code-reviewer/expected_outputs/sample_csharp_smells_quality.json +143 -0
  787. package/skills/code-reviewer/expected_outputs/sample_java_clean_quality.json +53 -0
  788. package/skills/code-reviewer/expected_outputs/sample_java_smells_quality.json +83 -0
  789. package/skills/code-reviewer/languages/c.md +103 -0
  790. package/skills/code-reviewer/languages/cpp.md +103 -0
  791. package/skills/code-reviewer/languages/csharp.md +97 -0
  792. package/skills/code-reviewer/languages/dart.md +108 -0
  793. package/skills/code-reviewer/languages/go.md +92 -0
  794. package/skills/code-reviewer/languages/java.md +103 -0
  795. package/skills/code-reviewer/languages/kotlin.md +88 -0
  796. package/skills/code-reviewer/languages/php.md +109 -0
  797. package/skills/code-reviewer/languages/python.md +94 -0
  798. package/skills/code-reviewer/languages/ruby.md +105 -0
  799. package/skills/code-reviewer/languages/rust.md +99 -0
  800. package/skills/code-reviewer/languages/swift.md +88 -0
  801. package/skills/code-reviewer/languages/typescript.md +97 -0
  802. package/skills/code-reviewer/rules/universal.md +49 -0
  803. package/skills/code-reviewer/scripts/code_quality_checker.py +1020 -0
  804. package/skills/code-reviewer/scripts/pr_analyzer.py +535 -0
  805. package/skills/code-reviewer/scripts/review_report_generator.py +505 -0
  806. package/skills/code-understand/SKILL.md +90 -0
  807. package/skills/database-designer/README.md +388 -0
  808. package/skills/database-designer/SKILL.md +314 -0
  809. package/skills/database-designer/assets/sample_query_patterns.json +375 -0
  810. package/skills/database-designer/assets/sample_schema.json +372 -0
  811. package/skills/database-designer/assets/sample_schema.sql +207 -0
  812. package/skills/database-designer/expected_outputs/index_optimization_sample.txt +60 -0
  813. package/skills/database-designer/expected_outputs/migration_sample.txt +124 -0
  814. package/skills/database-designer/expected_outputs/schema_analysis_sample.txt +222 -0
  815. package/skills/database-designer/index_optimizer.py +926 -0
  816. package/skills/database-designer/migration_generator.py +1199 -0
  817. package/skills/database-designer/references/database-design-reference.md +476 -0
  818. package/skills/database-designer/references/database_selection_decision_tree.md +373 -0
  819. package/skills/database-designer/references/index_strategy_patterns.md +424 -0
  820. package/skills/database-designer/references/normalization_guide.md +354 -0
  821. package/skills/database-designer/schema_analyzer.py +982 -0
  822. package/skills/defuddle/SKILL.md +41 -0
  823. package/skills/dependency-auditor/README.md +524 -0
  824. package/skills/dependency-auditor/SKILL.md +85 -0
  825. package/skills/dependency-auditor/assets/sample_go.mod +53 -0
  826. package/skills/dependency-auditor/assets/sample_package.json +72 -0
  827. package/skills/dependency-auditor/assets/sample_requirements.txt +71 -0
  828. package/skills/dependency-auditor/expected_outputs/sample_license_report.txt +37 -0
  829. package/skills/dependency-auditor/expected_outputs/sample_upgrade_plan.txt +59 -0
  830. package/skills/dependency-auditor/expected_outputs/sample_vulnerability_report.json +71 -0
  831. package/skills/dependency-auditor/references/dependency_management_best_practices.md +643 -0
  832. package/skills/dependency-auditor/references/license_compatibility_matrix.md +238 -0
  833. package/skills/dependency-auditor/references/vulnerability_assessment_guide.md +461 -0
  834. package/skills/dependency-auditor/scripts/dep_scanner.py +794 -0
  835. package/skills/dependency-auditor/scripts/license_checker.py +996 -0
  836. package/skills/dependency-auditor/scripts/upgrade_planner.py +1029 -0
  837. package/skills/dependency-auditor/test-inventory.json +421 -0
  838. package/skills/dependency-auditor/test-project/package.json +72 -0
  839. package/skills/design-taste-frontend/SKILL.md +247 -0
  840. package/skills/engineering-standards/SKILL.md +736 -0
  841. package/skills/env-secrets-manager/SKILL.md +260 -0
  842. package/skills/env-secrets-manager/references/secret-patterns.md +41 -0
  843. package/skills/env-secrets-manager/references/validation-detection-rotation.md +358 -0
  844. package/skills/env-secrets-manager/scripts/env_auditor.py +145 -0
  845. package/skills/fix/SKILL.md +113 -0
  846. package/skills/fix/flaky-taxonomy.md +134 -0
  847. package/skills/gate/SKILL.md +13 -0
  848. package/skills/humanizer/SKILL.md +374 -0
  849. package/skills/mcp-server-builder/README.md +50 -0
  850. package/skills/mcp-server-builder/SKILL.md +100 -0
  851. package/skills/mcp-server-builder/references/openapi-extraction-guide.md +34 -0
  852. package/skills/mcp-server-builder/references/production-hardening-guide.md +78 -0
  853. package/skills/mcp-server-builder/references/python-server-template.md +22 -0
  854. package/skills/mcp-server-builder/references/typescript-server-template.md +19 -0
  855. package/skills/mcp-server-builder/references/validation-checklist.md +30 -0
  856. package/skills/mcp-server-builder/scripts/mcp_validator.py +186 -0
  857. package/skills/mcp-server-builder/scripts/openapi_to_mcp.py +284 -0
  858. package/skills/memory/SKILL.md +10 -0
  859. package/skills/migrate/SKILL.md +135 -0
  860. package/skills/migrate/cypress-mapping.md +79 -0
  861. package/skills/migrate/selenium-mapping.md +94 -0
  862. package/skills/novahiz-analyse/SKILL.md +74 -0
  863. package/skills/novahiz-audit/SKILL.md +75 -0
  864. package/skills/novahiz-clarify/SKILL.md +94 -0
  865. package/skills/novahiz-converge/SKILL.md +76 -0
  866. package/skills/novahiz-gate/SKILL.md +82 -0
  867. package/skills/novahiz-implement/SKILL.md +80 -0
  868. package/skills/novahiz-memory/SKILL.md +58 -0
  869. package/skills/novahiz-plan/SKILL.md +99 -0
  870. package/skills/novahiz-planner/SKILL.md +104 -0
  871. package/skills/novahiz-task/SKILL.md +105 -0
  872. package/skills/playwright-agent/SKILL.md +142 -0
  873. package/skills/postgresql-optimization/SKILL.md +179 -0
  874. package/skills/review-changes/SKILL.md +30 -0
  875. package/skills/security-guidance/SKILL.md +160 -0
  876. package/skills/security-guidance/references/pretooluse_hook_canon.md +141 -0
  877. package/skills/senior-architect/SKILL.md +343 -0
  878. package/skills/senior-architect/references/architecture_patterns.md +470 -0
  879. package/skills/senior-architect/references/system_design_workflows.md +536 -0
  880. package/skills/senior-architect/references/tech_decision_guide.md +412 -0
  881. package/skills/senior-architect/scripts/architecture_diagram_generator.py +660 -0
  882. package/skills/senior-architect/scripts/dependency_analyzer.py +615 -0
  883. package/skills/senior-architect/scripts/project_architect.py +749 -0
  884. package/skills/senior-backend/SKILL.md +467 -0
  885. package/skills/senior-backend/profiles/django-monolith.json +57 -0
  886. package/skills/senior-backend/profiles/fastapi-python.json +58 -0
  887. package/skills/senior-backend/profiles/go-or-rust-microservice.json +62 -0
  888. package/skills/senior-backend/profiles/node-express.json +57 -0
  889. package/skills/senior-backend/references/api_design_patterns.md +530 -0
  890. package/skills/senior-backend/references/backend_security_practices.md +1075 -0
  891. package/skills/senior-backend/references/composition_map.md +58 -0
  892. package/skills/senior-backend/references/database_optimization_guide.md +593 -0
  893. package/skills/senior-backend/references/forcing_questions.md +100 -0
  894. package/skills/senior-backend/scripts/api_load_tester.py +607 -0
  895. package/skills/senior-backend/scripts/api_scaffolder.py +645 -0
  896. package/skills/senior-backend/scripts/backend_decision_engine.py +397 -0
  897. package/skills/senior-backend/scripts/database_migration_tool.py +858 -0
  898. package/skills/senior-secops/SKILL.md +505 -0
  899. package/skills/senior-secops/references/compliance_requirements.md +792 -0
  900. package/skills/senior-secops/references/security_standards.md +718 -0
  901. package/skills/senior-secops/references/vulnerability_management_guide.md +487 -0
  902. package/skills/senior-secops/scripts/compliance_checker.py +1107 -0
  903. package/skills/senior-secops/scripts/security_scanner.py +471 -0
  904. package/skills/senior-secops/scripts/vulnerability_assessor.py +563 -0
  905. package/skills/skill-creator/LICENSE.txt +202 -0
  906. package/skills/skill-creator/SKILL.md +485 -0
  907. package/skills/skill-creator/agents/analyzer.md +274 -0
  908. package/skills/skill-creator/agents/comparator.md +202 -0
  909. package/skills/skill-creator/agents/grader.md +223 -0
  910. package/skills/skill-creator/assets/eval_review.html +146 -0
  911. package/skills/skill-creator/eval-viewer/generate_review.py +471 -0
  912. package/skills/skill-creator/eval-viewer/viewer.html +1325 -0
  913. package/skills/skill-creator/references/schemas.md +430 -0
  914. package/skills/skill-creator/scripts/__init__.py +0 -0
  915. package/skills/skill-creator/scripts/aggregate_benchmark.py +401 -0
  916. package/skills/skill-creator/scripts/generate_report.py +326 -0
  917. package/skills/skill-creator/scripts/improve_description.py +247 -0
  918. package/skills/skill-creator/scripts/package_skill.py +136 -0
  919. package/skills/skill-creator/scripts/quick_validate.py +103 -0
  920. package/skills/skill-creator/scripts/run_eval.py +310 -0
  921. package/skills/skill-creator/scripts/run_loop.py +328 -0
  922. package/skills/skill-creator/scripts/utils.py +47 -0
  923. package/skills/spec-driven-workflow/SKILL.md +333 -0
  924. package/skills/spec-driven-workflow/references/acceptance_criteria_patterns.md +497 -0
  925. package/skills/spec-driven-workflow/references/bounded_autonomy_rules.md +273 -0
  926. package/skills/spec-driven-workflow/references/spec_format_guide.md +531 -0
  927. package/skills/spec-driven-workflow/scripts/spec_generator.py +338 -0
  928. package/skills/spec-driven-workflow/scripts/spec_validator.py +461 -0
  929. package/skills/spec-driven-workflow/scripts/test_extractor.py +431 -0
  930. package/skills/supabase/CHANGELOG.md +78 -0
  931. package/skills/supabase/SKILL.md +149 -0
  932. package/skills/supabase/assets/feedback-issue-template.md +17 -0
  933. package/skills/supabase/references/skill-feedback.md +17 -0
  934. package/skills/supabase-postgres-best-practices/CHANGELOG.md +73 -0
  935. package/skills/supabase-postgres-best-practices/SKILL.md +64 -0
  936. package/skills/supabase-postgres-best-practices/references/_contributing.md +170 -0
  937. package/skills/supabase-postgres-best-practices/references/_sections.md +39 -0
  938. package/skills/supabase-postgres-best-practices/references/_template.md +34 -0
  939. package/skills/supabase-postgres-best-practices/references/advanced-full-text-search.md +55 -0
  940. package/skills/supabase-postgres-best-practices/references/advanced-jsonb-indexing.md +49 -0
  941. package/skills/supabase-postgres-best-practices/references/conn-idle-timeout.md +46 -0
  942. package/skills/supabase-postgres-best-practices/references/conn-limits.md +44 -0
  943. package/skills/supabase-postgres-best-practices/references/conn-pooling.md +41 -0
  944. package/skills/supabase-postgres-best-practices/references/conn-prepared-statements.md +46 -0
  945. package/skills/supabase-postgres-best-practices/references/data-batch-inserts.md +54 -0
  946. package/skills/supabase-postgres-best-practices/references/data-n-plus-one.md +53 -0
  947. package/skills/supabase-postgres-best-practices/references/data-pagination.md +50 -0
  948. package/skills/supabase-postgres-best-practices/references/data-upsert.md +50 -0
  949. package/skills/supabase-postgres-best-practices/references/lock-advisory.md +56 -0
  950. package/skills/supabase-postgres-best-practices/references/lock-deadlock-prevention.md +68 -0
  951. package/skills/supabase-postgres-best-practices/references/lock-short-transactions.md +50 -0
  952. package/skills/supabase-postgres-best-practices/references/lock-skip-locked.md +54 -0
  953. package/skills/supabase-postgres-best-practices/references/monitor-explain-analyze.md +45 -0
  954. package/skills/supabase-postgres-best-practices/references/monitor-pg-stat-statements.md +55 -0
  955. package/skills/supabase-postgres-best-practices/references/monitor-vacuum-analyze.md +55 -0
  956. package/skills/supabase-postgres-best-practices/references/query-composite-indexes.md +44 -0
  957. package/skills/supabase-postgres-best-practices/references/query-covering-indexes.md +40 -0
  958. package/skills/supabase-postgres-best-practices/references/query-index-types.md +48 -0
  959. package/skills/supabase-postgres-best-practices/references/query-missing-indexes.md +43 -0
  960. package/skills/supabase-postgres-best-practices/references/query-partial-indexes.md +45 -0
  961. package/skills/supabase-postgres-best-practices/references/schema-constraints.md +80 -0
  962. package/skills/supabase-postgres-best-practices/references/schema-data-types.md +46 -0
  963. package/skills/supabase-postgres-best-practices/references/schema-foreign-key-indexes.md +59 -0
  964. package/skills/supabase-postgres-best-practices/references/schema-lowercase-identifiers.md +55 -0
  965. package/skills/supabase-postgres-best-practices/references/schema-partitioning.md +55 -0
  966. package/skills/supabase-postgres-best-practices/references/schema-primary-keys.md +61 -0
  967. package/skills/supabase-postgres-best-practices/references/security-privileges.md +54 -0
  968. package/skills/supabase-postgres-best-practices/references/security-rls-basics.md +50 -0
  969. package/skills/supabase-postgres-best-practices/references/security-rls-performance.md +63 -0
  970. package/skills/typescript-expert/SKILL.md +431 -0
  971. package/skills/typescript-expert/references/tsconfig-strict.json +45 -0
  972. package/skills/typescript-expert/references/typescript-cheatsheet.md +383 -0
  973. package/skills/typescript-expert/references/utility-types.ts +335 -0
  974. package/skills/typescript-expert/scripts/ts_diagnostic.py +203 -0
  975. package/skills/ui-design-system/SKILL.md +379 -0
  976. package/skills/ui-design-system/assets/design_system_doc_template.md +180 -0
  977. package/skills/ui-design-system/references/component-architecture.md +396 -0
  978. package/skills/ui-design-system/references/developer-handoff.md +509 -0
  979. package/skills/ui-design-system/references/responsive-calculations.md +390 -0
  980. package/skills/ui-design-system/references/token-generation.md +324 -0
  981. package/skills/ui-design-system/scripts/design_token_generator.py +590 -0
  982. package/skills/write-a-skill/SKILL.md +141 -0
  983. package/skills/write-a-skill/references/companion_tooling.md +67 -0
  984. package/skills/write-a-skill/references/description_design_patterns.md +139 -0
  985. package/skills/write-a-skill/references/progressive_disclosure_principles.md +89 -0
  986. package/skills/write-a-skill/references/quality_gates_for_skills.md +158 -0
  987. package/skills/write-a-skill/scripts/skill_description_validator.py +255 -0
  988. package/skills/write-a-skill/scripts/skill_review_checklist_runner.py +268 -0
  989. package/skills/write-a-skill/scripts/skill_structure_validator.py +277 -0
  990. package/skills/zero-hallucination-coder/SKILL.md +271 -0
  991. package/src/catalog.ts +266 -0
  992. package/src/classify.ts +201 -0
  993. package/src/cli.ts +115 -0
  994. package/src/commands/clean.ts +114 -0
  995. package/src/commands/context.ts +130 -0
  996. package/src/commands/doctor.ts +191 -0
  997. package/src/commands/gate.ts +192 -0
  998. package/src/commands/inspect.ts +296 -0
  999. package/src/commands/report.ts +85 -0
  1000. package/src/commands/task.ts +310 -0
  1001. package/src/commands/tokens.ts +85 -0
  1002. package/src/content.ts +70 -0
  1003. package/src/db.ts +143 -0
  1004. package/src/deps.ts +36 -0
  1005. package/src/exec.ts +85 -0
  1006. package/src/gate.ts +261 -0
  1007. package/src/ledger.ts +468 -0
  1008. package/src/providers.ts +52 -0
  1009. package/src/relevance.ts +73 -0
  1010. package/src/render.ts +107 -0
  1011. package/src/spec.ts +306 -0
  1012. package/src/targets.ts +296 -0
  1013. package/tsconfig.json +15 -0
@@ -0,0 +1,1107 @@
1
+ #!/usr/bin/env python3
2
+ """
3
+ Compliance Checker - Verify security compliance against SOC 2, PCI-DSS, HIPAA, GDPR.
4
+
5
+ Table of Contents:
6
+ ComplianceChecker - Main class for compliance verification
7
+ __init__ - Initialize with target path and framework
8
+ check() - Run compliance checks for selected framework
9
+ check_soc2() - Check SOC 2 Type II controls
10
+ check_pci_dss() - Check PCI-DSS v4.0 requirements
11
+ check_hipaa() - Check HIPAA security rule requirements
12
+ check_gdpr() - Check GDPR data protection requirements
13
+ _check_encryption_at_rest() - Verify data encryption
14
+ _check_access_controls() - Verify access control implementation
15
+ _check_logging() - Verify audit logging
16
+ _check_secrets_management() - Verify secrets handling
17
+ _calculate_compliance_score() - Calculate overall compliance score
18
+ main() - CLI entry point
19
+
20
+ Usage:
21
+ python compliance_checker.py /path/to/project
22
+ python compliance_checker.py /path/to/project --framework soc2
23
+ python compliance_checker.py /path/to/project --framework pci-dss --output report.json
24
+ """
25
+
26
+ import os
27
+ import sys
28
+ import json
29
+ import re
30
+ import argparse
31
+ from pathlib import Path
32
+ from typing import Dict, List, Optional, Tuple
33
+ from dataclasses import dataclass, asdict
34
+ from datetime import datetime
35
+
36
+
37
+ @dataclass
38
+ class ComplianceControl:
39
+ """Represents a compliance control check result."""
40
+ control_id: str
41
+ framework: str
42
+ category: str
43
+ title: str
44
+ description: str
45
+ status: str # passed, failed, warning, not_applicable
46
+ evidence: List[str]
47
+ recommendation: str
48
+ severity: str # critical, high, medium, low
49
+
50
+
51
+ class ComplianceChecker:
52
+ """Verify security compliance against industry frameworks."""
53
+
54
+ FRAMEWORKS = ['soc2', 'pci-dss', 'hipaa', 'gdpr', 'all']
55
+
56
+ def __init__(
57
+ self,
58
+ target_path: str,
59
+ framework: str = "all",
60
+ verbose: bool = False
61
+ ):
62
+ """
63
+ Initialize the compliance checker.
64
+
65
+ Args:
66
+ target_path: Directory to scan
67
+ framework: Compliance framework to check (soc2, pci-dss, hipaa, gdpr, all)
68
+ verbose: Enable verbose output
69
+ """
70
+ self.target_path = Path(target_path)
71
+ self.framework = framework.lower()
72
+ self.verbose = verbose
73
+ self.controls: List[ComplianceControl] = []
74
+ self.files_scanned = 0
75
+
76
+ def check(self) -> Dict:
77
+ """
78
+ Run compliance checks for selected framework.
79
+
80
+ Returns:
81
+ Dict with compliance results
82
+ """
83
+ print(f"Compliance Checker - Scanning: {self.target_path}")
84
+ print(f"Framework: {self.framework.upper()}")
85
+ print()
86
+
87
+ if not self.target_path.exists():
88
+ return {"status": "error", "message": f"Path not found: {self.target_path}"}
89
+
90
+ start_time = datetime.now()
91
+
92
+ # Run framework-specific checks
93
+ if self.framework in ('soc2', 'all'):
94
+ self.check_soc2()
95
+ if self.framework in ('pci-dss', 'all'):
96
+ self.check_pci_dss()
97
+ if self.framework in ('hipaa', 'all'):
98
+ self.check_hipaa()
99
+ if self.framework in ('gdpr', 'all'):
100
+ self.check_gdpr()
101
+
102
+ end_time = datetime.now()
103
+ scan_duration = (end_time - start_time).total_seconds()
104
+
105
+ # Calculate statistics
106
+ passed = len([c for c in self.controls if c.status == 'passed'])
107
+ failed = len([c for c in self.controls if c.status == 'failed'])
108
+ warnings = len([c for c in self.controls if c.status == 'warning'])
109
+ na = len([c for c in self.controls if c.status == 'not_applicable'])
110
+
111
+ compliance_score = self._calculate_compliance_score()
112
+
113
+ result = {
114
+ "status": "completed",
115
+ "target": str(self.target_path),
116
+ "framework": self.framework,
117
+ "scan_duration_seconds": round(scan_duration, 2),
118
+ "compliance_score": compliance_score,
119
+ "compliance_level": self._get_compliance_level(compliance_score),
120
+ "summary": {
121
+ "passed": passed,
122
+ "failed": failed,
123
+ "warnings": warnings,
124
+ "not_applicable": na,
125
+ "total": len(self.controls)
126
+ },
127
+ "controls": [asdict(c) for c in self.controls]
128
+ }
129
+
130
+ self._print_summary(result)
131
+
132
+ return result
133
+
134
+ def check_soc2(self):
135
+ """Check SOC 2 Type II controls."""
136
+ if self.verbose:
137
+ print(" Checking SOC 2 Type II controls...")
138
+
139
+ # CC1: Control Environment - Access Controls
140
+ self._check_access_controls_soc2()
141
+
142
+ # CC2: Communication and Information
143
+ self._check_documentation()
144
+
145
+ # CC3: Risk Assessment
146
+ self._check_risk_assessment()
147
+
148
+ # CC6: Logical and Physical Access Controls
149
+ self._check_authentication()
150
+
151
+ # CC7: System Operations
152
+ self._check_logging()
153
+
154
+ # CC8: Change Management
155
+ self._check_change_management()
156
+
157
+ def check_pci_dss(self):
158
+ """Check PCI-DSS v4.0 requirements."""
159
+ if self.verbose:
160
+ print(" Checking PCI-DSS v4.0 requirements...")
161
+
162
+ # Requirement 3: Protect stored cardholder data
163
+ self._check_data_encryption()
164
+
165
+ # Requirement 4: Encrypt transmission of cardholder data
166
+ self._check_transmission_encryption()
167
+
168
+ # Requirement 6: Develop and maintain secure systems
169
+ self._check_secure_development()
170
+
171
+ # Requirement 8: Identify users and authenticate access
172
+ self._check_strong_authentication()
173
+
174
+ # Requirement 10: Log and monitor all access
175
+ self._check_audit_logging()
176
+
177
+ # Requirement 11: Test security of systems regularly
178
+ self._check_security_testing()
179
+
180
+ def check_hipaa(self):
181
+ """Check HIPAA security rule requirements."""
182
+ if self.verbose:
183
+ print(" Checking HIPAA Security Rule requirements...")
184
+
185
+ # 164.312(a)(1): Access Control
186
+ self._check_hipaa_access_control()
187
+
188
+ # 164.312(b): Audit Controls
189
+ self._check_hipaa_audit()
190
+
191
+ # 164.312(c)(1): Integrity Controls
192
+ self._check_hipaa_integrity()
193
+
194
+ # 164.312(d): Person or Entity Authentication
195
+ self._check_hipaa_authentication()
196
+
197
+ # 164.312(e)(1): Transmission Security
198
+ self._check_hipaa_transmission()
199
+
200
+ def check_gdpr(self):
201
+ """Check GDPR data protection requirements."""
202
+ if self.verbose:
203
+ print(" Checking GDPR requirements...")
204
+
205
+ # Article 25: Data protection by design
206
+ self._check_privacy_by_design()
207
+
208
+ # Article 32: Security of processing
209
+ self._check_gdpr_security()
210
+
211
+ # Article 33/34: Breach notification
212
+ self._check_breach_notification()
213
+
214
+ # Article 17: Right to erasure
215
+ self._check_data_deletion()
216
+
217
+ # Article 20: Data portability
218
+ self._check_data_export()
219
+
220
+ def _check_access_controls_soc2(self):
221
+ """SOC 2 CC1/CC6: Check access control implementation."""
222
+ evidence = []
223
+ status = 'failed'
224
+
225
+ # Look for authentication middleware
226
+ auth_patterns = [
227
+ r'authMiddleware',
228
+ r'requireAuth',
229
+ r'isAuthenticated',
230
+ r'@login_required',
231
+ r'@authenticated',
232
+ r'passport\.authenticate',
233
+ r'jwt\.verify',
234
+ r'verifyToken'
235
+ ]
236
+
237
+ for pattern in auth_patterns:
238
+ files = self._search_files(pattern)
239
+ if files:
240
+ evidence.extend(files[:3])
241
+ status = 'passed'
242
+ break
243
+
244
+ # Check for RBAC implementation
245
+ rbac_patterns = [r'role', r'permission', r'authorize', r'can\(', r'hasRole']
246
+ for pattern in rbac_patterns:
247
+ files = self._search_files(pattern)
248
+ if files:
249
+ evidence.extend(files[:2])
250
+ if status == 'failed':
251
+ status = 'warning'
252
+ break
253
+
254
+ self.controls.append(ComplianceControl(
255
+ control_id='SOC2-CC6.1',
256
+ framework='SOC 2',
257
+ category='Logical Access Controls',
258
+ title='Access Control Implementation',
259
+ description='Verify authentication and authorization controls are implemented',
260
+ status=status,
261
+ evidence=evidence[:5],
262
+ recommendation='Implement authentication middleware and role-based access control (RBAC)',
263
+ severity='high' if status == 'failed' else 'low'
264
+ ))
265
+
266
+ def _check_documentation(self):
267
+ """SOC 2 CC2: Check security documentation."""
268
+ evidence = []
269
+ status = 'failed'
270
+
271
+ doc_files = [
272
+ 'SECURITY.md',
273
+ 'docs/security.md',
274
+ 'CONTRIBUTING.md',
275
+ 'docs/security-policy.md',
276
+ '.github/SECURITY.md'
277
+ ]
278
+
279
+ for doc in doc_files:
280
+ doc_path = self.target_path / doc
281
+ if doc_path.exists():
282
+ evidence.append(str(doc))
283
+ status = 'passed' if 'security' in doc.lower() else 'warning'
284
+ break
285
+
286
+ self.controls.append(ComplianceControl(
287
+ control_id='SOC2-CC2.1',
288
+ framework='SOC 2',
289
+ category='Communication and Information',
290
+ title='Security Documentation',
291
+ description='Verify security policies and procedures are documented',
292
+ status=status,
293
+ evidence=evidence,
294
+ recommendation='Create SECURITY.md documenting security policies, incident response, and vulnerability reporting',
295
+ severity='medium' if status == 'failed' else 'low'
296
+ ))
297
+
298
+ def _check_risk_assessment(self):
299
+ """SOC 2 CC3: Check risk assessment artifacts."""
300
+ evidence = []
301
+ status = 'failed'
302
+
303
+ # Look for security scanning configuration
304
+ scan_configs = [
305
+ '.snyk',
306
+ '.github/workflows/security.yml',
307
+ '.github/workflows/codeql.yml',
308
+ 'trivy.yaml',
309
+ '.semgrep.yml',
310
+ 'sonar-project.properties'
311
+ ]
312
+
313
+ for config in scan_configs:
314
+ config_path = self.target_path / config
315
+ if config_path.exists():
316
+ evidence.append(str(config))
317
+ status = 'passed'
318
+ break
319
+
320
+ # Check for dependabot/renovate
321
+ dep_configs = [
322
+ '.github/dependabot.yml',
323
+ 'renovate.json',
324
+ '.github/renovate.json'
325
+ ]
326
+
327
+ for config in dep_configs:
328
+ config_path = self.target_path / config
329
+ if config_path.exists():
330
+ evidence.append(str(config))
331
+ if status == 'failed':
332
+ status = 'warning'
333
+ break
334
+
335
+ self.controls.append(ComplianceControl(
336
+ control_id='SOC2-CC3.1',
337
+ framework='SOC 2',
338
+ category='Risk Assessment',
339
+ title='Automated Security Scanning',
340
+ description='Verify automated vulnerability scanning is configured',
341
+ status=status,
342
+ evidence=evidence,
343
+ recommendation='Configure automated security scanning (Snyk, CodeQL, Trivy) and dependency updates (Dependabot)',
344
+ severity='high' if status == 'failed' else 'low'
345
+ ))
346
+
347
+ def _check_authentication(self):
348
+ """SOC 2 CC6: Check authentication strength."""
349
+ evidence = []
350
+ status = 'failed'
351
+
352
+ # Check for MFA/2FA
353
+ mfa_patterns = [r'mfa', r'2fa', r'totp', r'authenticator', r'twoFactor']
354
+ for pattern in mfa_patterns:
355
+ files = self._search_files(pattern, case_sensitive=False)
356
+ if files:
357
+ evidence.extend(files[:2])
358
+ status = 'passed'
359
+ break
360
+
361
+ # Check for password hashing
362
+ hash_patterns = [r'bcrypt', r'argon2', r'scrypt', r'pbkdf2']
363
+ for pattern in hash_patterns:
364
+ files = self._search_files(pattern, case_sensitive=False)
365
+ if files:
366
+ evidence.extend(files[:2])
367
+ if status == 'failed':
368
+ status = 'warning'
369
+ break
370
+
371
+ self.controls.append(ComplianceControl(
372
+ control_id='SOC2-CC6.2',
373
+ framework='SOC 2',
374
+ category='Authentication',
375
+ title='Strong Authentication',
376
+ description='Verify multi-factor authentication and secure password storage',
377
+ status=status,
378
+ evidence=evidence[:5],
379
+ recommendation='Implement MFA/2FA and use bcrypt/argon2 for password hashing',
380
+ severity='critical' if status == 'failed' else 'low'
381
+ ))
382
+
383
+ def _check_logging(self):
384
+ """SOC 2 CC7: Check audit logging implementation."""
385
+ evidence = []
386
+ status = 'failed'
387
+
388
+ # Check for logging configuration
389
+ log_patterns = [
390
+ r'winston',
391
+ r'pino',
392
+ r'bunyan',
393
+ r'logging\.getLogger',
394
+ r'log\.info',
395
+ r'logger\.',
396
+ r'audit.*log'
397
+ ]
398
+
399
+ for pattern in log_patterns:
400
+ files = self._search_files(pattern)
401
+ if files:
402
+ evidence.extend(files[:3])
403
+ status = 'passed'
404
+ break
405
+
406
+ # Check for structured logging
407
+ struct_patterns = [r'json.*log', r'structured.*log', r'log.*format']
408
+ for pattern in struct_patterns:
409
+ files = self._search_files(pattern, case_sensitive=False)
410
+ if files:
411
+ evidence.extend(files[:2])
412
+ break
413
+
414
+ self.controls.append(ComplianceControl(
415
+ control_id='SOC2-CC7.1',
416
+ framework='SOC 2',
417
+ category='System Operations',
418
+ title='Audit Logging',
419
+ description='Verify comprehensive audit logging is implemented',
420
+ status=status,
421
+ evidence=evidence[:5],
422
+ recommendation='Implement structured audit logging with security events (auth, access, changes)',
423
+ severity='high' if status == 'failed' else 'low'
424
+ ))
425
+
426
+ def _check_change_management(self):
427
+ """SOC 2 CC8: Check change management controls."""
428
+ evidence = []
429
+ status = 'failed'
430
+
431
+ # Check for CI/CD configuration
432
+ ci_configs = [
433
+ '.github/workflows',
434
+ '.gitlab-ci.yml',
435
+ 'Jenkinsfile',
436
+ '.circleci/config.yml',
437
+ 'azure-pipelines.yml'
438
+ ]
439
+
440
+ for config in ci_configs:
441
+ config_path = self.target_path / config
442
+ if config_path.exists():
443
+ evidence.append(str(config))
444
+ status = 'passed'
445
+ break
446
+
447
+ # Check for branch protection indicators
448
+ branch_patterns = [r'protected.*branch', r'require.*review', r'pull.*request']
449
+ for pattern in branch_patterns:
450
+ files = self._search_files(pattern, case_sensitive=False)
451
+ if files:
452
+ evidence.extend(files[:2])
453
+ break
454
+
455
+ self.controls.append(ComplianceControl(
456
+ control_id='SOC2-CC8.1',
457
+ framework='SOC 2',
458
+ category='Change Management',
459
+ title='CI/CD and Code Review',
460
+ description='Verify automated deployment pipeline and code review process',
461
+ status=status,
462
+ evidence=evidence[:5],
463
+ recommendation='Implement CI/CD pipeline with required code reviews and branch protection',
464
+ severity='medium' if status == 'failed' else 'low'
465
+ ))
466
+
467
+ def _check_data_encryption(self):
468
+ """PCI-DSS Req 3: Check encryption at rest."""
469
+ evidence = []
470
+ status = 'failed'
471
+
472
+ encryption_patterns = [
473
+ r'AES',
474
+ r'encrypt',
475
+ r'crypto\.createCipher',
476
+ r'Fernet',
477
+ r'KMS',
478
+ r'encryptedField'
479
+ ]
480
+
481
+ for pattern in encryption_patterns:
482
+ files = self._search_files(pattern)
483
+ if files:
484
+ evidence.extend(files[:3])
485
+ status = 'passed'
486
+ break
487
+
488
+ self.controls.append(ComplianceControl(
489
+ control_id='PCI-DSS-3.5',
490
+ framework='PCI-DSS',
491
+ category='Protect Stored Data',
492
+ title='Encryption at Rest',
493
+ description='Verify sensitive data is encrypted at rest',
494
+ status=status,
495
+ evidence=evidence[:5],
496
+ recommendation='Implement AES-256 encryption for sensitive data storage using approved libraries',
497
+ severity='critical' if status == 'failed' else 'low'
498
+ ))
499
+
500
+ def _check_transmission_encryption(self):
501
+ """PCI-DSS Req 4: Check encryption in transit."""
502
+ evidence = []
503
+ status = 'failed'
504
+
505
+ tls_patterns = [
506
+ r'https://',
507
+ r'TLS',
508
+ r'SSL',
509
+ r'secure.*cookie',
510
+ r'HSTS'
511
+ ]
512
+
513
+ for pattern in tls_patterns:
514
+ files = self._search_files(pattern, case_sensitive=False)
515
+ if files:
516
+ evidence.extend(files[:3])
517
+ status = 'passed'
518
+ break
519
+
520
+ self.controls.append(ComplianceControl(
521
+ control_id='PCI-DSS-4.1',
522
+ framework='PCI-DSS',
523
+ category='Encrypt Transmissions',
524
+ title='TLS/HTTPS Enforcement',
525
+ description='Verify TLS 1.2+ is enforced for all transmissions',
526
+ status=status,
527
+ evidence=evidence[:5],
528
+ recommendation='Enforce HTTPS with TLS 1.2+, enable HSTS, use secure cookies',
529
+ severity='critical' if status == 'failed' else 'low'
530
+ ))
531
+
532
+ def _check_secure_development(self):
533
+ """PCI-DSS Req 6: Check secure development practices."""
534
+ evidence = []
535
+ status = 'failed'
536
+
537
+ # Check for input validation
538
+ validation_patterns = [
539
+ r'validator',
540
+ r'sanitize',
541
+ r'escape',
542
+ r'zod',
543
+ r'yup',
544
+ r'joi'
545
+ ]
546
+
547
+ for pattern in validation_patterns:
548
+ files = self._search_files(pattern, case_sensitive=False)
549
+ if files:
550
+ evidence.extend(files[:3])
551
+ status = 'passed'
552
+ break
553
+
554
+ self.controls.append(ComplianceControl(
555
+ control_id='PCI-DSS-6.5',
556
+ framework='PCI-DSS',
557
+ category='Secure Development',
558
+ title='Input Validation',
559
+ description='Verify input validation and sanitization is implemented',
560
+ status=status,
561
+ evidence=evidence[:5],
562
+ recommendation='Use validation libraries (Joi, Zod, validator.js) for all user input',
563
+ severity='high' if status == 'failed' else 'low'
564
+ ))
565
+
566
+ def _check_strong_authentication(self):
567
+ """PCI-DSS Req 8: Check authentication requirements."""
568
+ evidence = []
569
+ status = 'failed'
570
+
571
+ # Check for session management
572
+ session_patterns = [
573
+ r'session.*timeout',
574
+ r'maxAge',
575
+ r'expiresIn',
576
+ r'session.*expire'
577
+ ]
578
+
579
+ for pattern in session_patterns:
580
+ files = self._search_files(pattern, case_sensitive=False)
581
+ if files:
582
+ evidence.extend(files[:3])
583
+ status = 'passed'
584
+ break
585
+
586
+ self.controls.append(ComplianceControl(
587
+ control_id='PCI-DSS-8.6',
588
+ framework='PCI-DSS',
589
+ category='Authentication',
590
+ title='Session Management',
591
+ description='Verify session timeout and management controls',
592
+ status=status,
593
+ evidence=evidence[:5],
594
+ recommendation='Implement 15-minute session timeout, secure session tokens, and session invalidation on logout',
595
+ severity='high' if status == 'failed' else 'low'
596
+ ))
597
+
598
+ def _check_audit_logging(self):
599
+ """PCI-DSS Req 10: Check audit logging."""
600
+ # Reuse SOC 2 logging check logic
601
+ evidence = []
602
+ status = 'failed'
603
+
604
+ log_patterns = [r'audit', r'log.*event', r'security.*log']
605
+ for pattern in log_patterns:
606
+ files = self._search_files(pattern, case_sensitive=False)
607
+ if files:
608
+ evidence.extend(files[:3])
609
+ status = 'passed'
610
+ break
611
+
612
+ self.controls.append(ComplianceControl(
613
+ control_id='PCI-DSS-10.2',
614
+ framework='PCI-DSS',
615
+ category='Logging and Monitoring',
616
+ title='Security Event Logging',
617
+ description='Verify security events are logged with sufficient detail',
618
+ status=status,
619
+ evidence=evidence[:5],
620
+ recommendation='Log all authentication events, access to cardholder data, and administrative actions',
621
+ severity='high' if status == 'failed' else 'low'
622
+ ))
623
+
624
+ def _check_security_testing(self):
625
+ """PCI-DSS Req 11: Check security testing."""
626
+ evidence = []
627
+ status = 'failed'
628
+
629
+ # Check for test configuration
630
+ test_patterns = [
631
+ r'security.*test',
632
+ r'penetration.*test',
633
+ r'vulnerability.*scan'
634
+ ]
635
+
636
+ for pattern in test_patterns:
637
+ files = self._search_files(pattern, case_sensitive=False)
638
+ if files:
639
+ evidence.extend(files[:3])
640
+ status = 'passed'
641
+ break
642
+
643
+ # Check for SAST/DAST configuration
644
+ sast_configs = ['.snyk', '.semgrep.yml', 'sonar-project.properties']
645
+ for config in sast_configs:
646
+ if (self.target_path / config).exists():
647
+ evidence.append(config)
648
+ if status == 'failed':
649
+ status = 'warning'
650
+ break
651
+
652
+ self.controls.append(ComplianceControl(
653
+ control_id='PCI-DSS-11.3',
654
+ framework='PCI-DSS',
655
+ category='Security Testing',
656
+ title='Vulnerability Assessment',
657
+ description='Verify regular security testing is performed',
658
+ status=status,
659
+ evidence=evidence[:5],
660
+ recommendation='Configure SAST/DAST scanning and schedule quarterly penetration tests',
661
+ severity='high' if status == 'failed' else 'low'
662
+ ))
663
+
664
+ def _check_hipaa_access_control(self):
665
+ """HIPAA 164.312(a)(1): Access Control."""
666
+ evidence = []
667
+ status = 'failed'
668
+
669
+ # Check for user identification
670
+ auth_patterns = [r'user.*id', r'authentication', r'identity']
671
+ for pattern in auth_patterns:
672
+ files = self._search_files(pattern, case_sensitive=False)
673
+ if files:
674
+ evidence.extend(files[:3])
675
+ status = 'passed'
676
+ break
677
+
678
+ self.controls.append(ComplianceControl(
679
+ control_id='HIPAA-164.312(a)(1)',
680
+ framework='HIPAA',
681
+ category='Access Control',
682
+ title='Unique User Identification',
683
+ description='Verify unique user identification for accessing PHI',
684
+ status=status,
685
+ evidence=evidence[:5],
686
+ recommendation='Implement unique user accounts with individual credentials for all PHI access',
687
+ severity='critical' if status == 'failed' else 'low'
688
+ ))
689
+
690
+ def _check_hipaa_audit(self):
691
+ """HIPAA 164.312(b): Audit Controls."""
692
+ evidence = []
693
+ status = 'failed'
694
+
695
+ audit_patterns = [r'audit.*trail', r'access.*log', r'phi.*log']
696
+ for pattern in audit_patterns:
697
+ files = self._search_files(pattern, case_sensitive=False)
698
+ if files:
699
+ evidence.extend(files[:3])
700
+ status = 'passed'
701
+ break
702
+
703
+ self.controls.append(ComplianceControl(
704
+ control_id='HIPAA-164.312(b)',
705
+ framework='HIPAA',
706
+ category='Audit Controls',
707
+ title='PHI Access Audit Trail',
708
+ description='Verify audit trails for PHI access are maintained',
709
+ status=status,
710
+ evidence=evidence[:5],
711
+ recommendation='Implement comprehensive audit logging for all PHI access with who/what/when/where',
712
+ severity='critical' if status == 'failed' else 'low'
713
+ ))
714
+
715
+ def _check_hipaa_integrity(self):
716
+ """HIPAA 164.312(c)(1): Integrity Controls."""
717
+ evidence = []
718
+ status = 'failed'
719
+
720
+ integrity_patterns = [r'checksum', r'hash', r'signature', r'integrity']
721
+ for pattern in integrity_patterns:
722
+ files = self._search_files(pattern, case_sensitive=False)
723
+ if files:
724
+ evidence.extend(files[:3])
725
+ status = 'passed'
726
+ break
727
+
728
+ self.controls.append(ComplianceControl(
729
+ control_id='HIPAA-164.312(c)(1)',
730
+ framework='HIPAA',
731
+ category='Integrity',
732
+ title='Data Integrity Controls',
733
+ description='Verify mechanisms to protect PHI from improper alteration',
734
+ status=status,
735
+ evidence=evidence[:5],
736
+ recommendation='Implement checksums, digital signatures, or hashing for PHI integrity verification',
737
+ severity='high' if status == 'failed' else 'low'
738
+ ))
739
+
740
+ def _check_hipaa_authentication(self):
741
+ """HIPAA 164.312(d): Authentication."""
742
+ evidence = []
743
+ status = 'failed'
744
+
745
+ auth_patterns = [r'mfa', r'two.*factor', r'biometric', r'token.*auth']
746
+ for pattern in auth_patterns:
747
+ files = self._search_files(pattern, case_sensitive=False)
748
+ if files:
749
+ evidence.extend(files[:3])
750
+ status = 'passed'
751
+ break
752
+
753
+ self.controls.append(ComplianceControl(
754
+ control_id='HIPAA-164.312(d)',
755
+ framework='HIPAA',
756
+ category='Authentication',
757
+ title='Person Authentication',
758
+ description='Verify mechanisms to authenticate person or entity accessing PHI',
759
+ status=status,
760
+ evidence=evidence[:5],
761
+ recommendation='Implement multi-factor authentication for all PHI access',
762
+ severity='critical' if status == 'failed' else 'low'
763
+ ))
764
+
765
+ def _check_hipaa_transmission(self):
766
+ """HIPAA 164.312(e)(1): Transmission Security."""
767
+ evidence = []
768
+ status = 'failed'
769
+
770
+ transmission_patterns = [r'tls', r'ssl', r'https', r'encrypt.*transit']
771
+ for pattern in transmission_patterns:
772
+ files = self._search_files(pattern, case_sensitive=False)
773
+ if files:
774
+ evidence.extend(files[:3])
775
+ status = 'passed'
776
+ break
777
+
778
+ self.controls.append(ComplianceControl(
779
+ control_id='HIPAA-164.312(e)(1)',
780
+ framework='HIPAA',
781
+ category='Transmission Security',
782
+ title='PHI Transmission Encryption',
783
+ description='Verify PHI is encrypted during transmission',
784
+ status=status,
785
+ evidence=evidence[:5],
786
+ recommendation='Enforce TLS 1.2+ for all PHI transmissions, implement end-to-end encryption',
787
+ severity='critical' if status == 'failed' else 'low'
788
+ ))
789
+
790
+ def _check_privacy_by_design(self):
791
+ """GDPR Article 25: Privacy by design."""
792
+ evidence = []
793
+ status = 'failed'
794
+
795
+ privacy_patterns = [
796
+ r'data.*minimization',
797
+ r'privacy.*config',
798
+ r'consent',
799
+ r'gdpr'
800
+ ]
801
+
802
+ for pattern in privacy_patterns:
803
+ files = self._search_files(pattern, case_sensitive=False)
804
+ if files:
805
+ evidence.extend(files[:3])
806
+ status = 'passed'
807
+ break
808
+
809
+ self.controls.append(ComplianceControl(
810
+ control_id='GDPR-25',
811
+ framework='GDPR',
812
+ category='Privacy by Design',
813
+ title='Data Minimization',
814
+ description='Verify data collection is limited to necessary purposes',
815
+ status=status,
816
+ evidence=evidence[:5],
817
+ recommendation='Implement data minimization, purpose limitation, and privacy-by-default configurations',
818
+ severity='high' if status == 'failed' else 'low'
819
+ ))
820
+
821
+ def _check_gdpr_security(self):
822
+ """GDPR Article 32: Security of processing."""
823
+ evidence = []
824
+ status = 'failed'
825
+
826
+ security_patterns = [r'encrypt', r'pseudonymization', r'anonymization']
827
+ for pattern in security_patterns:
828
+ files = self._search_files(pattern, case_sensitive=False)
829
+ if files:
830
+ evidence.extend(files[:3])
831
+ status = 'passed'
832
+ break
833
+
834
+ self.controls.append(ComplianceControl(
835
+ control_id='GDPR-32',
836
+ framework='GDPR',
837
+ category='Security',
838
+ title='Pseudonymization and Encryption',
839
+ description='Verify appropriate security measures for personal data',
840
+ status=status,
841
+ evidence=evidence[:5],
842
+ recommendation='Implement encryption and pseudonymization for personal data processing',
843
+ severity='high' if status == 'failed' else 'low'
844
+ ))
845
+
846
+ def _check_breach_notification(self):
847
+ """GDPR Article 33/34: Breach notification."""
848
+ evidence = []
849
+ status = 'failed'
850
+
851
+ breach_patterns = [
852
+ r'breach.*notification',
853
+ r'incident.*response',
854
+ r'security.*incident'
855
+ ]
856
+
857
+ for pattern in breach_patterns:
858
+ files = self._search_files(pattern, case_sensitive=False)
859
+ if files:
860
+ evidence.extend(files[:3])
861
+ status = 'passed'
862
+ break
863
+
864
+ # Check for incident response documentation
865
+ incident_docs = ['SECURITY.md', 'docs/incident-response.md', '.github/SECURITY.md']
866
+ for doc in incident_docs:
867
+ if (self.target_path / doc).exists():
868
+ evidence.append(doc)
869
+ if status == 'failed':
870
+ status = 'warning'
871
+ break
872
+
873
+ self.controls.append(ComplianceControl(
874
+ control_id='GDPR-33',
875
+ framework='GDPR',
876
+ category='Breach Notification',
877
+ title='Incident Response Procedure',
878
+ description='Verify breach notification procedures are documented',
879
+ status=status,
880
+ evidence=evidence[:5],
881
+ recommendation='Document incident response procedures with 72-hour notification capability',
882
+ severity='high' if status == 'failed' else 'low'
883
+ ))
884
+
885
+ def _check_data_deletion(self):
886
+ """GDPR Article 17: Right to erasure."""
887
+ evidence = []
888
+ status = 'failed'
889
+
890
+ deletion_patterns = [
891
+ r'delete.*user',
892
+ r'erasure',
893
+ r'right.*forgotten',
894
+ r'data.*deletion',
895
+ r'gdpr.*delete'
896
+ ]
897
+
898
+ for pattern in deletion_patterns:
899
+ files = self._search_files(pattern, case_sensitive=False)
900
+ if files:
901
+ evidence.extend(files[:3])
902
+ status = 'passed'
903
+ break
904
+
905
+ self.controls.append(ComplianceControl(
906
+ control_id='GDPR-17',
907
+ framework='GDPR',
908
+ category='Data Subject Rights',
909
+ title='Right to Erasure',
910
+ description='Verify data deletion capability is implemented',
911
+ status=status,
912
+ evidence=evidence[:5],
913
+ recommendation='Implement complete user data deletion including all backups and third-party systems',
914
+ severity='high' if status == 'failed' else 'low'
915
+ ))
916
+
917
+ def _check_data_export(self):
918
+ """GDPR Article 20: Data portability."""
919
+ evidence = []
920
+ status = 'failed'
921
+
922
+ export_patterns = [
923
+ r'export.*data',
924
+ r'data.*portability',
925
+ r'download.*data',
926
+ r'gdpr.*export'
927
+ ]
928
+
929
+ for pattern in export_patterns:
930
+ files = self._search_files(pattern, case_sensitive=False)
931
+ if files:
932
+ evidence.extend(files[:3])
933
+ status = 'passed'
934
+ break
935
+
936
+ self.controls.append(ComplianceControl(
937
+ control_id='GDPR-20',
938
+ framework='GDPR',
939
+ category='Data Subject Rights',
940
+ title='Data Portability',
941
+ description='Verify data export capability is implemented',
942
+ status=status,
943
+ evidence=evidence[:5],
944
+ recommendation='Implement data export in machine-readable format (JSON, CSV)',
945
+ severity='medium' if status == 'failed' else 'low'
946
+ ))
947
+
948
+ def _search_files(self, pattern: str, case_sensitive: bool = True) -> List[str]:
949
+ """Search files for pattern matches."""
950
+ matches = []
951
+ flags = 0 if case_sensitive else re.IGNORECASE
952
+
953
+ try:
954
+ for root, dirs, files in os.walk(self.target_path):
955
+ # Skip common non-relevant directories
956
+ dirs[:] = [d for d in dirs if d not in {
957
+ 'node_modules', '.git', '__pycache__', 'venv', '.venv',
958
+ 'dist', 'build', 'coverage', '.next'
959
+ }]
960
+
961
+ for filename in files:
962
+ if filename.endswith(('.js', '.ts', '.py', '.go', '.java', '.md', '.yml', '.yaml', '.json')):
963
+ file_path = Path(root) / filename
964
+ try:
965
+ content = file_path.read_text(encoding='utf-8', errors='ignore')
966
+ if re.search(pattern, content, flags):
967
+ rel_path = str(file_path.relative_to(self.target_path))
968
+ matches.append(rel_path)
969
+ self.files_scanned += 1
970
+ except Exception:
971
+ pass
972
+ except Exception:
973
+ pass
974
+
975
+ return matches[:10] # Limit results
976
+
977
+ def _calculate_compliance_score(self) -> float:
978
+ """Calculate overall compliance score (0-100)."""
979
+ if not self.controls:
980
+ return 0.0
981
+
982
+ # Weight by severity
983
+ severity_weights = {'critical': 4.0, 'high': 3.0, 'medium': 2.0, 'low': 1.0}
984
+ status_scores = {'passed': 1.0, 'warning': 0.5, 'failed': 0.0, 'not_applicable': None}
985
+
986
+ total_weight = 0.0
987
+ total_score = 0.0
988
+
989
+ for control in self.controls:
990
+ score = status_scores.get(control.status)
991
+ if score is not None: # Skip N/A
992
+ weight = severity_weights.get(control.severity, 1.0)
993
+ total_weight += weight
994
+ total_score += score * weight
995
+
996
+ return round((total_score / total_weight) * 100, 1) if total_weight > 0 else 0.0
997
+
998
+ def _get_compliance_level(self, score: float) -> str:
999
+ """Get compliance level from score."""
1000
+ if score >= 90:
1001
+ return "COMPLIANT"
1002
+ elif score >= 70:
1003
+ return "PARTIALLY_COMPLIANT"
1004
+ elif score >= 50:
1005
+ return "NON_COMPLIANT"
1006
+ return "CRITICAL_GAPS"
1007
+
1008
+ def _print_summary(self, result: Dict):
1009
+ """Print compliance summary."""
1010
+ print("\n" + "=" * 60)
1011
+ print("COMPLIANCE CHECK SUMMARY")
1012
+ print("=" * 60)
1013
+ print(f"Target: {result['target']}")
1014
+ print(f"Framework: {result['framework'].upper()}")
1015
+ print(f"Scan duration: {result['scan_duration_seconds']}s")
1016
+ print(f"Compliance score: {result['compliance_score']}% ({result['compliance_level']})")
1017
+ print()
1018
+
1019
+ summary = result['summary']
1020
+ print(f"Controls checked: {summary['total']}")
1021
+ print(f" Passed: {summary['passed']}")
1022
+ print(f" Failed: {summary['failed']}")
1023
+ print(f" Warning: {summary['warnings']}")
1024
+ print(f" N/A: {summary['not_applicable']}")
1025
+ print("=" * 60)
1026
+
1027
+ # Show failed controls
1028
+ failed = [c for c in result['controls'] if c['status'] == 'failed']
1029
+ if failed:
1030
+ print("\nFailed controls requiring remediation:")
1031
+ for control in failed[:5]:
1032
+ print(f"\n [{control['severity'].upper()}] {control['control_id']}")
1033
+ print(f" {control['title']}")
1034
+ print(f" Recommendation: {control['recommendation']}")
1035
+
1036
+
1037
+ def main():
1038
+ """Main entry point for CLI."""
1039
+ parser = argparse.ArgumentParser(
1040
+ description="Check compliance against SOC 2, PCI-DSS, HIPAA, GDPR",
1041
+ formatter_class=argparse.RawDescriptionHelpFormatter,
1042
+ epilog="""
1043
+ Examples:
1044
+ %(prog)s /path/to/project
1045
+ %(prog)s /path/to/project --framework soc2
1046
+ %(prog)s /path/to/project --framework pci-dss --output report.json
1047
+ %(prog)s . --framework all --verbose
1048
+ """
1049
+ )
1050
+
1051
+ parser.add_argument(
1052
+ "target",
1053
+ help="Directory to check for compliance"
1054
+ )
1055
+ parser.add_argument(
1056
+ "--framework", "-f",
1057
+ choices=["soc2", "pci-dss", "hipaa", "gdpr", "all"],
1058
+ default="all",
1059
+ help="Compliance framework to check (default: all)"
1060
+ )
1061
+ parser.add_argument(
1062
+ "--verbose", "-v",
1063
+ action="store_true",
1064
+ help="Enable verbose output"
1065
+ )
1066
+ parser.add_argument(
1067
+ "--json",
1068
+ action="store_true",
1069
+ help="Output results as JSON"
1070
+ )
1071
+ parser.add_argument(
1072
+ "--output", "-o",
1073
+ help="Output file path"
1074
+ )
1075
+
1076
+ args = parser.parse_args()
1077
+
1078
+ checker = ComplianceChecker(
1079
+ target_path=args.target,
1080
+ framework=args.framework,
1081
+ verbose=args.verbose
1082
+ )
1083
+
1084
+ result = checker.check()
1085
+
1086
+ if args.json:
1087
+ output = json.dumps(result, indent=2)
1088
+ if args.output:
1089
+ with open(args.output, 'w') as f:
1090
+ f.write(output)
1091
+ print(f"\nResults written to {args.output}")
1092
+ else:
1093
+ print(output)
1094
+ elif args.output:
1095
+ with open(args.output, 'w') as f:
1096
+ json.dump(result, f, indent=2)
1097
+ print(f"\nResults written to {args.output}")
1098
+
1099
+ # Exit with error code based on compliance level
1100
+ if result.get('compliance_level') == 'CRITICAL_GAPS':
1101
+ sys.exit(2)
1102
+ if result.get('compliance_level') == 'NON_COMPLIANT':
1103
+ sys.exit(1)
1104
+
1105
+
1106
+ if __name__ == "__main__":
1107
+ main()