novahiz 0.2.2 → 0.2.5

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 (565) hide show
  1. package/NOTICE.md +25 -15
  2. package/README.md +353 -355
  3. package/adapters/README.md +1 -1
  4. package/adapters/opencode/agent/novahiz.md +1 -2
  5. package/adapters/opencode/commands/novahiz-init.md +10 -0
  6. package/adapters/opencode/instructions.md +1 -1
  7. package/adapters/opencode/novahiz.ts +182 -4
  8. package/bin/novahiz.cmd +2 -2
  9. package/catalog/categories.json +1085 -1093
  10. package/catalog/overrides.json +12 -13
  11. package/catalog/providers.json +18 -34
  12. package/catalog/rules.json +15 -22
  13. package/docs/ARCHITECTURE.md +2 -2
  14. package/docs/CATALOG.md +7 -6
  15. package/docs/CONFIGURATION.md +5 -5
  16. package/docs/CONSTITUTION.md +4 -4
  17. package/docs/GATE.md +7 -11
  18. package/docs/HARNESSES.md +11 -0
  19. package/docs/INSTALL.md +7 -5
  20. package/docs/PLUGIN.md +24 -6
  21. package/docs/PROVIDERS.md +12 -10
  22. package/docs/ROADMAPS.md +4 -3
  23. package/docs/RULES.md +11 -10
  24. package/install/bootstrap.mjs +9 -19
  25. package/install/install.mjs +23 -41
  26. package/mcp/novahiz-tools/index.mjs +35 -6
  27. package/novahiz.config.example.json +1 -5
  28. package/package.json +6 -7
  29. package/skills/apple-ui-audit/SKILL.md +95 -0
  30. package/skills/apple-ui-audit/references/screen-walkthrough.md +29 -0
  31. package/skills/browser-session/SKILL.md +61 -0
  32. package/skills/browser-session/references/session-run-sheet.md +30 -0
  33. package/skills/browser-session/scripts/browser_session_preflight.mjs +74 -0
  34. package/skills/browser-session/scripts/sample-run.json +5 -0
  35. package/skills/code-standards/SKILL.md +85 -0
  36. package/skills/code-standards/references/pr-review-worksheet.md +35 -0
  37. package/skills/design-token-pipeline/SKILL.md +85 -0
  38. package/skills/design-token-pipeline/references/dtcg-sample.json +37 -0
  39. package/skills/llm-threat-review/SKILL.md +99 -0
  40. package/skills/llm-threat-review/references/review-worksheet.md +34 -0
  41. package/skills/llm-threat-review/scripts/llm_risk_lint.mjs +105 -0
  42. package/skills/novahiz-audit/SKILL.md +1 -1
  43. package/skills/novahiz-gate/SKILL.md +7 -6
  44. package/skills/novahiz-humanizer/SKILL.md +1 -1
  45. package/skills/novahiz-implement/SKILL.md +1 -1
  46. package/skills/novahiz-init/SKILL.md +112 -0
  47. package/skills/novahiz-planner/SKILL.md +1 -2
  48. package/skills/openapi-mcp-server/SKILL.md +76 -0
  49. package/skills/openapi-mcp-server/references/mcp-ship-checklist.md +30 -0
  50. package/skills/openapi-mcp-server/references/tool-worksheet.md +30 -0
  51. package/skills/openapi-mcp-server/scripts/openapi_mcp_lint.mjs +133 -0
  52. package/skills/package-risk-audit/SKILL.md +83 -0
  53. package/skills/package-risk-audit/references/intake-worksheet.md +19 -0
  54. package/skills/package-risk-audit/scripts/dep_risk_lint.mjs +131 -0
  55. package/skills/secrets-hygiene/SKILL.md +62 -0
  56. package/skills/secrets-hygiene/references/rotation-playbook.md +27 -0
  57. package/skills/secrets-hygiene/scripts/secret_scan.mjs +120 -0
  58. package/skills/skill-authoring/SKILL.md +93 -0
  59. package/skills/skill-authoring/references/skill-template.md +59 -0
  60. package/skills/skill-authoring/scripts/skill_frontmatter_lint.mjs +65 -0
  61. package/skills/skill-eval-loop/SKILL.md +103 -0
  62. package/skills/skill-eval-loop/references/negative-patterns.md +12 -0
  63. package/skills/skill-eval-loop/references/run-sheet.md +40 -0
  64. package/skills/skill-eval-loop/scripts/skill_structure_check.mjs +100 -0
  65. package/skills/ui-craft-rules/SKILL.md +96 -0
  66. package/skills/ui-slop-remover/SKILL.md +110 -0
  67. package/skills/ui-slop-remover/references/tell-catalogue.md +58 -0
  68. package/skills/ui-slop-remover/scripts/slop_lint.mjs +119 -0
  69. package/src/autodocs.ts +192 -0
  70. package/src/cli.ts +8 -1
  71. package/src/commands/autodocs.ts +250 -0
  72. package/src/commands/doctor.ts +226 -217
  73. package/src/commands/gate.ts +16 -5
  74. package/src/commands/init.ts +356 -0
  75. package/src/commands/task.ts +20 -7
  76. package/src/gate.ts +401 -401
  77. package/src/ledger.ts +39 -0
  78. package/src/targets.ts +43 -7
  79. package/bundled-skills/ab-testing/SKILL.md +0 -353
  80. package/bundled-skills/ab-testing/evals/evals.json +0 -105
  81. package/bundled-skills/ab-testing/references/sample-size-guide.md +0 -263
  82. package/bundled-skills/ab-testing/references/test-templates.md +0 -277
  83. package/bundled-skills/ad-creative/SKILL.md +0 -425
  84. package/bundled-skills/ad-creative/assets/creative-review-template.html +0 -400
  85. package/bundled-skills/ad-creative/evals/evals.json +0 -217
  86. package/bundled-skills/ad-creative/references/creative-review-page.md +0 -106
  87. package/bundled-skills/ad-creative/references/creative-roadmap.md +0 -118
  88. package/bundled-skills/ad-creative/references/generative-tools.md +0 -637
  89. package/bundled-skills/ad-creative/references/hook-system.md +0 -115
  90. package/bundled-skills/ad-creative/references/imessage-video-ads.md +0 -201
  91. package/bundled-skills/ad-creative/references/meta-creative-formats.md +0 -114
  92. package/bundled-skills/ad-creative/references/motion-video-ads.md +0 -126
  93. package/bundled-skills/ad-creative/references/platform-specs.md +0 -213
  94. package/bundled-skills/ad-creative/references/short-form-video-specs.md +0 -213
  95. package/bundled-skills/ad-creative/references/static-ad-templates.md +0 -308
  96. package/bundled-skills/ads/SKILL.md +0 -499
  97. package/bundled-skills/ads/evals/evals.json +0 -157
  98. package/bundled-skills/ads/references/abm-playbook.md +0 -93
  99. package/bundled-skills/ads/references/ad-copy-templates.md +0 -207
  100. package/bundled-skills/ads/references/audience-targeting.md +0 -243
  101. package/bundled-skills/ads/references/audit-guardrails.md +0 -83
  102. package/bundled-skills/ads/references/b2b-paid-playbook.md +0 -115
  103. package/bundled-skills/ads/references/conversion-tracking.md +0 -361
  104. package/bundled-skills/ads/references/creative-research-automation.md +0 -103
  105. package/bundled-skills/ads/references/google-ads-audit-checklist.md +0 -84
  106. package/bundled-skills/ads/references/google-search-playbook.md +0 -120
  107. package/bundled-skills/ads/references/linkedin-b2b-playbook.md +0 -107
  108. package/bundled-skills/ads/references/meta-decision-system.md +0 -176
  109. package/bundled-skills/ads/references/payback-period.md +0 -69
  110. package/bundled-skills/ads/references/platform-setup-checklists.md +0 -277
  111. package/bundled-skills/ads/references/rsa-output-spec.md +0 -88
  112. package/bundled-skills/agent-device/SKILL.md +0 -20
  113. package/bundled-skills/ai-seo/SKILL.md +0 -488
  114. package/bundled-skills/ai-seo/evals/evals.json +0 -135
  115. package/bundled-skills/ai-seo/references/agent-readiness.md +0 -57
  116. package/bundled-skills/ai-seo/references/citations-vs-recommendations.md +0 -85
  117. package/bundled-skills/ai-seo/references/content-patterns.md +0 -287
  118. package/bundled-skills/ai-seo/references/content-types.md +0 -71
  119. package/bundled-skills/ai-seo/references/format-volatility.md +0 -98
  120. package/bundled-skills/ai-seo/references/okf.md +0 -104
  121. package/bundled-skills/ai-seo/references/platform-ranking-factors.md +0 -154
  122. package/bundled-skills/ai-seo/references/youtube-ai-citations.md +0 -60
  123. package/bundled-skills/analytics/SKILL.md +0 -310
  124. package/bundled-skills/analytics/evals/evals.json +0 -90
  125. package/bundled-skills/analytics/references/event-library.md +0 -260
  126. package/bundled-skills/analytics/references/ga4-implementation.md +0 -300
  127. package/bundled-skills/analytics/references/gtm-implementation.md +0 -390
  128. package/bundled-skills/android-emulator/SKILL.md +0 -32
  129. package/bundled-skills/android-reverse-engineering/LICENSE +0 -190
  130. package/bundled-skills/android-reverse-engineering/SKILL.md +0 -313
  131. package/bundled-skills/android-reverse-engineering/references/api-extraction-patterns.md +0 -197
  132. package/bundled-skills/android-reverse-engineering/references/call-flow-analysis.md +0 -210
  133. package/bundled-skills/android-reverse-engineering/references/fernflower-usage.md +0 -115
  134. package/bundled-skills/android-reverse-engineering/references/jadx-usage.md +0 -116
  135. package/bundled-skills/android-reverse-engineering/references/kotlin-name-recovery.md +0 -108
  136. package/bundled-skills/android-reverse-engineering/references/setup-guide.md +0 -221
  137. package/bundled-skills/android-reverse-engineering/references/third_party_hosts.txt +0 -122
  138. package/bundled-skills/android-reverse-engineering/scripts/check-deps.ps1 +0 -165
  139. package/bundled-skills/android-reverse-engineering/scripts/check-deps.sh +0 -129
  140. package/bundled-skills/android-reverse-engineering/scripts/decompile.ps1 +0 -400
  141. package/bundled-skills/android-reverse-engineering/scripts/decompile.sh +0 -578
  142. package/bundled-skills/android-reverse-engineering/scripts/find-api-calls.ps1 +0 -121
  143. package/bundled-skills/android-reverse-engineering/scripts/find-api-calls.sh +0 -339
  144. package/bundled-skills/android-reverse-engineering/scripts/fingerprint.sh +0 -241
  145. package/bundled-skills/android-reverse-engineering/scripts/install-dep.ps1 +0 -345
  146. package/bundled-skills/android-reverse-engineering/scripts/install-dep.sh +0 -448
  147. package/bundled-skills/android-reverse-engineering/scripts/lookup-name.sh +0 -85
  148. package/bundled-skills/android-reverse-engineering/scripts/recover-kotlin-names.sh +0 -140
  149. package/bundled-skills/build-graph/SKILL.md +0 -38
  150. package/bundled-skills/claude-history-ingest/SKILL.md +0 -463
  151. package/bundled-skills/claude-history-ingest/references/claude-data-format.md +0 -118
  152. package/bundled-skills/codex-history-ingest/SKILL.md +0 -248
  153. package/bundled-skills/codex-history-ingest/references/codex-data-format.md +0 -82
  154. package/bundled-skills/cold-email/SKILL.md +0 -159
  155. package/bundled-skills/cold-email/evals/evals.json +0 -94
  156. package/bundled-skills/cold-email/references/benchmarks.md +0 -83
  157. package/bundled-skills/cold-email/references/follow-up-sequences.md +0 -81
  158. package/bundled-skills/cold-email/references/frameworks.md +0 -90
  159. package/bundled-skills/cold-email/references/personalization.md +0 -79
  160. package/bundled-skills/cold-email/references/subject-lines.md +0 -53
  161. package/bundled-skills/competitor-profiling/SKILL.md +0 -415
  162. package/bundled-skills/competitor-profiling/evals/evals.json +0 -85
  163. package/bundled-skills/competitor-profiling/references/templates.md +0 -167
  164. package/bundled-skills/competitor-profiling/references/tool-reference.md +0 -179
  165. package/bundled-skills/computer-use/SKILL.md +0 -41
  166. package/bundled-skills/content-strategy/SKILL.md +0 -439
  167. package/bundled-skills/content-strategy/evals/evals.json +0 -116
  168. package/bundled-skills/content-strategy/references/content-distribution.md +0 -83
  169. package/bundled-skills/content-strategy/references/headless-cms.md +0 -194
  170. package/bundled-skills/copilot-history-ingest/SKILL.md +0 -376
  171. package/bundled-skills/copilot-history-ingest/references/copilot-data-format.md +0 -321
  172. package/bundled-skills/copy-editing/SKILL.md +0 -457
  173. package/bundled-skills/copy-editing/evals/evals.json +0 -89
  174. package/bundled-skills/copy-editing/references/checklist.md +0 -66
  175. package/bundled-skills/copy-editing/references/content-refresh.md +0 -38
  176. package/bundled-skills/copy-editing/references/plain-english-alternatives.md +0 -394
  177. package/bundled-skills/copywriting/SKILL.md +0 -256
  178. package/bundled-skills/copywriting/evals/evals.json +0 -126
  179. package/bundled-skills/copywriting/references/copy-frameworks.md +0 -433
  180. package/bundled-skills/copywriting/references/natural-transitions.md +0 -272
  181. package/bundled-skills/cro/SKILL.md +0 -187
  182. package/bundled-skills/cro/evals/evals.json +0 -111
  183. package/bundled-skills/cro/references/experiments.md +0 -248
  184. package/bundled-skills/cro/references/form.md +0 -422
  185. package/bundled-skills/cross-linker/SKILL.md +0 -309
  186. package/bundled-skills/customer-research/SKILL.md +0 -305
  187. package/bundled-skills/customer-research/evals/evals.json +0 -176
  188. package/bundled-skills/customer-research/references/interviews-and-surveys.md +0 -155
  189. package/bundled-skills/customer-research/references/source-guides.md +0 -401
  190. package/bundled-skills/daily-update/SKILL.md +0 -223
  191. package/bundled-skills/dart-add-unit-test/SKILL.md +0 -122
  192. package/bundled-skills/dart-build-cli-app/SKILL.md +0 -185
  193. package/bundled-skills/dart-collect-coverage/SKILL.md +0 -141
  194. package/bundled-skills/dart-fix-runtime-errors/SKILL.md +0 -166
  195. package/bundled-skills/dart-generate-test-mocks/SKILL.md +0 -155
  196. package/bundled-skills/dart-migrate-to-checks-package/SKILL.md +0 -528
  197. package/bundled-skills/dart-resolve-package-conflicts/SKILL.md +0 -116
  198. package/bundled-skills/dart-run-static-analysis/SKILL.md +0 -104
  199. package/bundled-skills/dart-setup-ffi-assets/SKILL.md +0 -419
  200. package/bundled-skills/dart-use-doc-examples/SKILL.md +0 -96
  201. package/bundled-skills/dart-use-ffigen/SKILL.md +0 -218
  202. package/bundled-skills/dart-use-pattern-matching/SKILL.md +0 -146
  203. package/bundled-skills/dart-use-primary-constructors/SKILL.md +0 -262
  204. package/bundled-skills/dart-write-documentation/SKILL.md +0 -136
  205. package/bundled-skills/debug-issue/SKILL.md +0 -28
  206. package/bundled-skills/dogfood/SKILL.md +0 -27
  207. package/bundled-skills/eas-app-stores/SKILL.md +0 -176
  208. package/bundled-skills/eas-app-stores/agents/openai.yaml +0 -4
  209. package/bundled-skills/eas-app-stores/references/app-store-metadata.md +0 -497
  210. package/bundled-skills/eas-app-stores/references/ios-app-store.md +0 -376
  211. package/bundled-skills/eas-app-stores/references/native-ios.md +0 -167
  212. package/bundled-skills/eas-app-stores/references/play-store.md +0 -244
  213. package/bundled-skills/eas-app-stores/references/testflight.md +0 -62
  214. package/bundled-skills/eas-app-stores/references/workflows.md +0 -120
  215. package/bundled-skills/eas-hosting/SKILL.md +0 -431
  216. package/bundled-skills/eas-hosting/agents/openai.yaml +0 -4
  217. package/bundled-skills/eas-observe/SKILL.md +0 -54
  218. package/bundled-skills/eas-observe/agents/openai.yaml +0 -4
  219. package/bundled-skills/eas-observe/references/metrics.md +0 -98
  220. package/bundled-skills/eas-observe/references/queries.md +0 -403
  221. package/bundled-skills/eas-observe/references/setup.md +0 -476
  222. package/bundled-skills/eas-observe/references/third-party.md +0 -136
  223. package/bundled-skills/eas-simulator/SKILL.md +0 -208
  224. package/bundled-skills/eas-simulator/agents/openai.yaml +0 -4
  225. package/bundled-skills/eas-simulator/references/controllers.md +0 -106
  226. package/bundled-skills/eas-simulator/references/run-your-app.md +0 -224
  227. package/bundled-skills/eas-simulator/references/troubleshooting.md +0 -44
  228. package/bundled-skills/eas-update/SKILL.md +0 -146
  229. package/bundled-skills/eas-update/agents/openai.yaml +0 -4
  230. package/bundled-skills/eas-update-insights/SKILL.md +0 -238
  231. package/bundled-skills/eas-update-insights/agents/openai.yaml +0 -4
  232. package/bundled-skills/eas-update-insights/references/channel-insights-schema.md +0 -47
  233. package/bundled-skills/eas-update-insights/references/update-insights-schema.md +0 -69
  234. package/bundled-skills/eas-workflows/SKILL.md +0 -99
  235. package/bundled-skills/eas-workflows/agents/openai.yaml +0 -4
  236. package/bundled-skills/eas-workflows/scripts/fetch.js +0 -109
  237. package/bundled-skills/eas-workflows/scripts/package.json +0 -6
  238. package/bundled-skills/emails/SKILL.md +0 -311
  239. package/bundled-skills/emails/evals/evals.json +0 -93
  240. package/bundled-skills/emails/references/copy-guidelines.md +0 -113
  241. package/bundled-skills/emails/references/email-types.md +0 -515
  242. package/bundled-skills/emails/references/sequence-templates.md +0 -168
  243. package/bundled-skills/explore-codebase/SKILL.md +0 -29
  244. package/bundled-skills/expo-animation/LICENSE +0 -21
  245. package/bundled-skills/expo-animation/RECIPES.md +0 -385
  246. package/bundled-skills/expo-animation/SKILL.md +0 -267
  247. package/bundled-skills/expo-animation/agents/openai.yaml +0 -4
  248. package/bundled-skills/expo-app-clip/SKILL.md +0 -290
  249. package/bundled-skills/expo-app-clip/agents/openai.yaml +0 -4
  250. package/bundled-skills/expo-app-clip/references/native-module.md +0 -96
  251. package/bundled-skills/expo-brownfield/SKILL.md +0 -62
  252. package/bundled-skills/expo-brownfield/agents/openai.yaml +0 -4
  253. package/bundled-skills/expo-brownfield/references/brownfield-integrated.md +0 -526
  254. package/bundled-skills/expo-brownfield/references/brownfield-isolated.md +0 -451
  255. package/bundled-skills/expo-brownfield/references/comparison.md +0 -63
  256. package/bundled-skills/expo-brownfield/references/troubleshooting.md +0 -88
  257. package/bundled-skills/expo-data-fetching/SKILL.md +0 -478
  258. package/bundled-skills/expo-data-fetching/agents/openai.yaml +0 -4
  259. package/bundled-skills/expo-data-fetching/references/expo-router-loaders.md +0 -341
  260. package/bundled-skills/expo-data-fetching/references/offline-and-cancellation.md +0 -68
  261. package/bundled-skills/expo-design-system/SKILL.md +0 -376
  262. package/bundled-skills/expo-design-system/agents/openai.yaml +0 -4
  263. package/bundled-skills/expo-design-system/references/audit.md +0 -190
  264. package/bundled-skills/expo-design-system/references/native-slop.md +0 -74
  265. package/bundled-skills/expo-dev-client/SKILL.md +0 -182
  266. package/bundled-skills/expo-dev-client/agents/openai.yaml +0 -4
  267. package/bundled-skills/expo-dom/SKILL.md +0 -425
  268. package/bundled-skills/expo-dom/agents/openai.yaml +0 -4
  269. package/bundled-skills/expo-examples/SKILL.md +0 -106
  270. package/bundled-skills/expo-examples/agents/openai.yaml +0 -4
  271. package/bundled-skills/expo-examples/references/catalog.md +0 -105
  272. package/bundled-skills/expo-migrate-module/SKILL.md +0 -113
  273. package/bundled-skills/expo-migrate-module/agents/openai.yaml +0 -4
  274. package/bundled-skills/expo-migrate-module/references/compatibility.md +0 -73
  275. package/bundled-skills/expo-migrate-module/references/example.md +0 -212
  276. package/bundled-skills/expo-migrate-module/references/migration-map.md +0 -306
  277. package/bundled-skills/expo-module/SKILL.md +0 -151
  278. package/bundled-skills/expo-module/agents/openai.yaml +0 -4
  279. package/bundled-skills/expo-module/references/config-plugin.md +0 -90
  280. package/bundled-skills/expo-module/references/create-expo-module.md +0 -206
  281. package/bundled-skills/expo-module/references/lifecycle.md +0 -127
  282. package/bundled-skills/expo-module/references/module-config.md +0 -48
  283. package/bundled-skills/expo-module/references/native-module.md +0 -286
  284. package/bundled-skills/expo-module/references/native-view.md +0 -171
  285. package/bundled-skills/expo-native-ui/SKILL.md +0 -201
  286. package/bundled-skills/expo-native-ui/agents/openai.yaml +0 -4
  287. package/bundled-skills/expo-native-ui/references/controls.md +0 -231
  288. package/bundled-skills/expo-native-ui/references/gradients.md +0 -106
  289. package/bundled-skills/expo-native-ui/references/icons.md +0 -232
  290. package/bundled-skills/expo-native-ui/references/media.md +0 -193
  291. package/bundled-skills/expo-native-ui/references/storage.md +0 -121
  292. package/bundled-skills/expo-native-ui/references/visual-effects.md +0 -198
  293. package/bundled-skills/expo-native-ui/references/webgpu-three.md +0 -605
  294. package/bundled-skills/expo-overview/SKILL.md +0 -115
  295. package/bundled-skills/expo-overview/agents/openai.yaml +0 -4
  296. package/bundled-skills/expo-project-structure/SKILL.md +0 -114
  297. package/bundled-skills/expo-project-structure/agents/openai.yaml +0 -4
  298. package/bundled-skills/expo-router/SKILL.md +0 -240
  299. package/bundled-skills/expo-router/agents/openai.yaml +0 -4
  300. package/bundled-skills/expo-router/references/form-sheet.md +0 -253
  301. package/bundled-skills/expo-router/references/route-structure.md +0 -229
  302. package/bundled-skills/expo-router/references/search.md +0 -248
  303. package/bundled-skills/expo-router/references/tabs.md +0 -433
  304. package/bundled-skills/expo-router/references/toolbar-and-headers.md +0 -284
  305. package/bundled-skills/expo-router/references/zoom-transitions.md +0 -158
  306. package/bundled-skills/expo-skill-eval/SKILL.md +0 -314
  307. package/bundled-skills/expo-skill-eval/agents/visual-grader.md +0 -52
  308. package/bundled-skills/expo-skill-eval/references/design-rubric.md +0 -45
  309. package/bundled-skills/expo-skill-eval/references/runtime-matrix.md +0 -34
  310. package/bundled-skills/expo-skill-eval/scripts/check-static.sh +0 -64
  311. package/bundled-skills/expo-skill-eval/scripts/clean-fixture.sh +0 -56
  312. package/bundled-skills/expo-skill-eval/scripts/generate_viewer.py +0 -450
  313. package/bundled-skills/expo-skill-eval/scripts/latest-sdk.sh +0 -46
  314. package/bundled-skills/expo-skill-eval/scripts/make-fixture.sh +0 -95
  315. package/bundled-skills/expo-skill-eval/scripts/make-workspace.sh +0 -31
  316. package/bundled-skills/expo-skill-eval/scripts/snapshot-android.sh +0 -284
  317. package/bundled-skills/expo-skill-eval/scripts/snapshot-ios.sh +0 -132
  318. package/bundled-skills/expo-skill-eval/scripts/snapshot-web.sh +0 -61
  319. package/bundled-skills/expo-skill-feedback/SKILL.md +0 -87
  320. package/bundled-skills/expo-skill-feedback/agents/openai.yaml +0 -4
  321. package/bundled-skills/expo-skill-feedback/scripts/skill-event.cjs +0 -180
  322. package/bundled-skills/expo-skill-feedback/scripts/telemetry.cjs +0 -65
  323. package/bundled-skills/expo-skill-feedback/scripts/telemetry_common.cjs +0 -171
  324. package/bundled-skills/expo-ui/SKILL.md +0 -101
  325. package/bundled-skills/expo-ui/agents/openai.yaml +0 -4
  326. package/bundled-skills/expo-ui/references/drop-in-replacements.md +0 -27
  327. package/bundled-skills/expo-ui/references/jetpack-compose.md +0 -73
  328. package/bundled-skills/expo-ui/references/swift-ui.md +0 -73
  329. package/bundled-skills/expo-ui/references/universal.md +0 -104
  330. package/bundled-skills/expo-ui/scripts/list-components.js +0 -193
  331. package/bundled-skills/expo-upgrade/SKILL.md +0 -150
  332. package/bundled-skills/expo-upgrade/agents/openai.yaml +0 -4
  333. package/bundled-skills/expo-upgrade/references/expo-av-to-audio.md +0 -132
  334. package/bundled-skills/expo-upgrade/references/expo-av-to-video.md +0 -160
  335. package/bundled-skills/expo-upgrade/references/native-tabs.md +0 -124
  336. package/bundled-skills/expo-upgrade/references/new-architecture.md +0 -79
  337. package/bundled-skills/expo-upgrade/references/react-19.md +0 -79
  338. package/bundled-skills/expo-upgrade/references/react-compiler.md +0 -59
  339. package/bundled-skills/expo-upgrade/references/react-navigation-to-expo-router.md +0 -61
  340. package/bundled-skills/expo-web-to-native/SKILL.md +0 -91
  341. package/bundled-skills/expo-web-to-native/agents/openai.yaml +0 -4
  342. package/bundled-skills/expo-web-to-native/references/false-friends.md +0 -119
  343. package/bundled-skills/expo-web-to-native/references/native-patterns.md +0 -39
  344. package/bundled-skills/expo-web-to-native/references/run-as-goal.md +0 -48
  345. package/bundled-skills/expo-web-to-native/references/verify-on-device.md +0 -45
  346. package/bundled-skills/find-skills/SKILL.md +0 -141
  347. package/bundled-skills/flutter-add-integration-test/SKILL.md +0 -163
  348. package/bundled-skills/flutter-add-widget-preview/SKILL.md +0 -145
  349. package/bundled-skills/flutter-add-widget-test/SKILL.md +0 -154
  350. package/bundled-skills/flutter-apply-architecture-best-practices/SKILL.md +0 -162
  351. package/bundled-skills/flutter-build-responsive-layout/SKILL.md +0 -139
  352. package/bundled-skills/flutter-fix-layout-issues/SKILL.md +0 -130
  353. package/bundled-skills/flutter-implement-json-serialization/SKILL.md +0 -153
  354. package/bundled-skills/flutter-setup-declarative-routing/SKILL.md +0 -255
  355. package/bundled-skills/flutter-setup-localization/SKILL.md +0 -210
  356. package/bundled-skills/flutter-use-http-package/SKILL.md +0 -174
  357. package/bundled-skills/graph-colorize/SKILL.md +0 -180
  358. package/bundled-skills/hermes-history-ingest/SKILL.md +0 -239
  359. package/bundled-skills/hermes-history-ingest/references/hermes-data-format.md +0 -131
  360. package/bundled-skills/impl-validator/SKILL.md +0 -118
  361. package/bundled-skills/ios-simulator/SKILL.md +0 -32
  362. package/bundled-skills/json-canvas/SKILL.md +0 -244
  363. package/bundled-skills/json-canvas/references/EXAMPLES.md +0 -329
  364. package/bundled-skills/launch/SKILL.md +0 -381
  365. package/bundled-skills/launch/evals/evals.json +0 -106
  366. package/bundled-skills/llm-wiki/SKILL.md +0 -661
  367. package/bundled-skills/llm-wiki/references/WRITING.md +0 -28
  368. package/bundled-skills/llm-wiki/references/karpathy-pattern.md +0 -45
  369. package/bundled-skills/marketing-plan/SKILL.md +0 -300
  370. package/bundled-skills/marketing-plan/evals/evals.json +0 -112
  371. package/bundled-skills/marketing-plan/references/aarrr-framework.md +0 -180
  372. package/bundled-skills/marketing-plan/references/budget-planning.md +0 -168
  373. package/bundled-skills/marketing-plan/references/client-types.md +0 -373
  374. package/bundled-skills/marketing-plan/references/current-state-rubric.md +0 -255
  375. package/bundled-skills/marketing-plan/references/example-quietude.md +0 -972
  376. package/bundled-skills/marketing-plan/references/funding-stage-unlocks.md +0 -230
  377. package/bundled-skills/marketing-plan/references/growth-patterns.md +0 -190
  378. package/bundled-skills/marketing-plan/references/idea-cross-reference.md +0 -265
  379. package/bundled-skills/marketing-plan/references/measurement-framework.md +0 -213
  380. package/bundled-skills/marketing-plan/references/methodology.md +0 -363
  381. package/bundled-skills/marketing-plan/references/ops-stack-mapping.md +0 -197
  382. package/bundled-skills/marketing-plan/references/plan-template.md +0 -494
  383. package/bundled-skills/marketing-plan/references/team-and-agency-model.md +0 -278
  384. package/bundled-skills/marketing-psychology/SKILL.md +0 -455
  385. package/bundled-skills/marketing-psychology/evals/evals.json +0 -88
  386. package/bundled-skills/memory-bridge/SKILL.md +0 -163
  387. package/bundled-skills/memory-save/SKILL.md +0 -88
  388. package/bundled-skills/obsidian-bases/SKILL.md +0 -499
  389. package/bundled-skills/obsidian-bases/references/FUNCTIONS_REFERENCE.md +0 -173
  390. package/bundled-skills/obsidian-cli/SKILL.md +0 -106
  391. package/bundled-skills/obsidian-layout-adjustment/SKILL.md +0 -226
  392. package/bundled-skills/obsidian-layout-adjustment/evals/evals.json +0 -53
  393. package/bundled-skills/obsidian-layout-adjustment/references/workflow-reference.md +0 -212
  394. package/bundled-skills/obsidian-markdown/SKILL.md +0 -196
  395. package/bundled-skills/obsidian-markdown/references/CALLOUTS.md +0 -58
  396. package/bundled-skills/obsidian-markdown/references/EMBEDS.md +0 -70
  397. package/bundled-skills/obsidian-markdown/references/PROPERTIES.md +0 -61
  398. package/bundled-skills/offers/SKILL.md +0 -155
  399. package/bundled-skills/offers/evals/evals.json +0 -21
  400. package/bundled-skills/offers/references/bonus-stacking.md +0 -150
  401. package/bundled-skills/offers/references/examples.md +0 -215
  402. package/bundled-skills/offers/references/guarantee-design.md +0 -172
  403. package/bundled-skills/offers/references/offer-anatomy.md +0 -203
  404. package/bundled-skills/offers/references/offer-formats.md +0 -240
  405. package/bundled-skills/offers/references/saas-offers.md +0 -116
  406. package/bundled-skills/offers/references/scarcity-urgency.md +0 -175
  407. package/bundled-skills/offers/references/value-equation.md +0 -134
  408. package/bundled-skills/onboarding/SKILL.md +0 -261
  409. package/bundled-skills/onboarding/evals/evals.json +0 -108
  410. package/bundled-skills/onboarding/references/activation-models.md +0 -57
  411. package/bundled-skills/onboarding/references/experiments.md +0 -258
  412. package/bundled-skills/onboarding/references/minimum-path-to-value.md +0 -49
  413. package/bundled-skills/openclaw-history-ingest/SKILL.md +0 -257
  414. package/bundled-skills/openclaw-history-ingest/references/openclaw-data-format.md +0 -154
  415. package/bundled-skills/orchestration/SKILL.md +0 -69
  416. package/bundled-skills/pi-history-ingest/SKILL.md +0 -312
  417. package/bundled-skills/pricing/SKILL.md +0 -295
  418. package/bundled-skills/pricing/evals/evals.json +0 -119
  419. package/bundled-skills/pricing/references/pricing-models.md +0 -66
  420. package/bundled-skills/pricing/references/pricing-page-teardown.md +0 -85
  421. package/bundled-skills/pricing/references/research-methods.md +0 -152
  422. package/bundled-skills/pricing/references/tier-structure.md +0 -232
  423. package/bundled-skills/product-marketing/SKILL.md +0 -255
  424. package/bundled-skills/product-marketing/evals/evals.json +0 -98
  425. package/bundled-skills/prospecting/SKILL.md +0 -262
  426. package/bundled-skills/prospecting/evals/evals.json +0 -122
  427. package/bundled-skills/prospecting/references/b2b-prospecting.md +0 -106
  428. package/bundled-skills/prospecting/references/compliance.md +0 -123
  429. package/bundled-skills/prospecting/references/data-sources.md +0 -287
  430. package/bundled-skills/prospecting/references/demand-signals.md +0 -129
  431. package/bundled-skills/prospecting/references/local-prospecting.md +0 -165
  432. package/bundled-skills/prospecting/references/saas-prospecting.md +0 -123
  433. package/bundled-skills/refactor-safely/SKILL.md +0 -29
  434. package/bundled-skills/review-delta/SKILL.md +0 -46
  435. package/bundled-skills/review-pr/SKILL.md +0 -66
  436. package/bundled-skills/sales-enablement/SKILL.md +0 -359
  437. package/bundled-skills/sales-enablement/evals/evals.json +0 -91
  438. package/bundled-skills/sales-enablement/references/deck-frameworks.md +0 -263
  439. package/bundled-skills/sales-enablement/references/demo-scripts.md +0 -355
  440. package/bundled-skills/sales-enablement/references/objection-library.md +0 -270
  441. package/bundled-skills/sales-enablement/references/one-pager-templates.md +0 -208
  442. package/bundled-skills/seo-audit/SKILL.md +0 -499
  443. package/bundled-skills/seo-audit/evals/evals.json +0 -136
  444. package/bundled-skills/seo-audit/references/ai-writing-detection.md +0 -200
  445. package/bundled-skills/seo-audit/references/international-seo.md +0 -230
  446. package/bundled-skills/session-brain/SKILL.md +0 -101
  447. package/bundled-skills/session-search/SKILL.md +0 -97
  448. package/bundled-skills/social/SKILL.md +0 -413
  449. package/bundled-skills/social/evals/evals.json +0 -107
  450. package/bundled-skills/social/references/carousel-frameworks.md +0 -141
  451. package/bundled-skills/social/references/listening-sources-template.md +0 -123
  452. package/bundled-skills/social/references/listening.md +0 -283
  453. package/bundled-skills/social/references/platform-limits.md +0 -110
  454. package/bundled-skills/social/references/platforms.md +0 -170
  455. package/bundled-skills/social/references/post-templates.md +0 -179
  456. package/bundled-skills/social/references/reverse-engineering.md +0 -195
  457. package/bundled-skills/social/references/short-form-video.md +0 -237
  458. package/bundled-skills/tag-taxonomy/SKILL.md +0 -218
  459. package/bundled-skills/vault-skill-factory/SKILL.md +0 -143
  460. package/bundled-skills/video/SKILL.md +0 -346
  461. package/bundled-skills/video/evals/evals.json +0 -103
  462. package/bundled-skills/video/references/ai-video-prompting.md +0 -175
  463. package/bundled-skills/video/references/edit-anatomy.md +0 -84
  464. package/bundled-skills/wiki-agent/SKILL.md +0 -322
  465. package/bundled-skills/wiki-capture/SKILL.md +0 -337
  466. package/bundled-skills/wiki-capture/references/RAW-FORMAT.md +0 -115
  467. package/bundled-skills/wiki-context-pack/SKILL.md +0 -89
  468. package/bundled-skills/wiki-dashboard/SKILL.md +0 -472
  469. package/bundled-skills/wiki-dedup/SKILL.md +0 -320
  470. package/bundled-skills/wiki-digest/SKILL.md +0 -243
  471. package/bundled-skills/wiki-export/SKILL.md +0 -445
  472. package/bundled-skills/wiki-history-ingest/SKILL.md +0 -61
  473. package/bundled-skills/wiki-import/SKILL.md +0 -276
  474. package/bundled-skills/wiki-ingest/SKILL.md +0 -563
  475. package/bundled-skills/wiki-ingest/references/ingest-prompts.md +0 -54
  476. package/bundled-skills/wiki-ingest/references/pageindex.md +0 -72
  477. package/bundled-skills/wiki-ingest/references/url-sources.md +0 -295
  478. package/bundled-skills/wiki-lint/SKILL.md +0 -643
  479. package/bundled-skills/wiki-narrate/SKILL.md +0 -120
  480. package/bundled-skills/wiki-narrate/references/voices.md +0 -29
  481. package/bundled-skills/wiki-query/SKILL.md +0 -307
  482. package/bundled-skills/wiki-rebuild/SKILL.md +0 -212
  483. package/bundled-skills/wiki-research/SKILL.md +0 -319
  484. package/bundled-skills/wiki-setup/SKILL.md +0 -359
  485. package/bundled-skills/wiki-stage-commit/SKILL.md +0 -164
  486. package/bundled-skills/wiki-status/SKILL.md +0 -556
  487. package/bundled-skills/wiki-switch/SKILL.md +0 -115
  488. package/bundled-skills/wiki-synthesize/SKILL.md +0 -212
  489. package/bundled-skills/wiki-update/SKILL.md +0 -271
  490. package/skills/ai-security/SKILL.md +0 -132
  491. package/skills/ai-security/references/atlas-coverage.md +0 -60
  492. package/skills/ai-security/scripts/ai_threat_scanner.py +0 -373
  493. package/skills/anti-AI-design/SKILL.md +0 -72
  494. package/skills/apple-hig-audit/SKILL.md +0 -64
  495. package/skills/apple-hig-audit/references/accessibility.md +0 -78
  496. package/skills/apple-hig-audit/references/platform-specifics.md +0 -57
  497. package/skills/apple-hig-audit/references/visual-design.md +0 -68
  498. package/skills/apple-hig-audit/scripts/hig_checker.py +0 -115
  499. package/skills/apple-hig-audit/templates/hig-audit-template.md +0 -114
  500. package/skills/dependency-auditor/README.md +0 -98
  501. package/skills/dependency-auditor/SKILL.md +0 -114
  502. package/skills/dependency-auditor/assets/sample_go.mod +0 -53
  503. package/skills/dependency-auditor/assets/sample_package.json +0 -72
  504. package/skills/dependency-auditor/assets/sample_requirements.txt +0 -71
  505. package/skills/dependency-auditor/expected_outputs/sample_license_report.txt +0 -37
  506. package/skills/dependency-auditor/expected_outputs/sample_upgrade_plan.txt +0 -59
  507. package/skills/dependency-auditor/expected_outputs/sample_vulnerability_report.json +0 -71
  508. package/skills/dependency-auditor/references/dependency_management_best_practices.md +0 -46
  509. package/skills/dependency-auditor/references/license_compatibility_matrix.md +0 -57
  510. package/skills/dependency-auditor/references/vulnerability_assessment_guide.md +0 -62
  511. package/skills/dependency-auditor/scripts/dep_scanner.py +0 -595
  512. package/skills/dependency-auditor/scripts/license_checker.py +0 -442
  513. package/skills/dependency-auditor/scripts/upgrade_planner.py +0 -490
  514. package/skills/dependency-auditor/test-inventory.json +0 -421
  515. package/skills/dependency-auditor/test-project/package.json +0 -72
  516. package/skills/design-system-tokens/SKILL.md +0 -90
  517. package/skills/design-system-tokens/assets/design_system_doc_template.md +0 -129
  518. package/skills/design-system-tokens/references/component-architecture.md +0 -88
  519. package/skills/design-system-tokens/references/developer-handoff.md +0 -61
  520. package/skills/design-system-tokens/references/responsive-calculations.md +0 -72
  521. package/skills/design-system-tokens/references/token-generation.md +0 -62
  522. package/skills/design-system-tokens/scripts/design_token_generator.py +0 -315
  523. package/skills/engineering-code-standards/SKILL.md +0 -174
  524. package/skills/env-secrets-manager/SKILL.md +0 -102
  525. package/skills/env-secrets-manager/references/secret-patterns.md +0 -56
  526. package/skills/env-secrets-manager/references/validation-detection-rotation.md +0 -76
  527. package/skills/env-secrets-manager/scripts/env_auditor.py +0 -340
  528. package/skills/frontend-design-taste/SKILL.md +0 -62
  529. package/skills/mcp-server-builder/README.md +0 -42
  530. package/skills/mcp-server-builder/SKILL.md +0 -144
  531. package/skills/mcp-server-builder/references/openapi-extraction-guide.md +0 -34
  532. package/skills/mcp-server-builder/references/production-hardening-guide.md +0 -80
  533. package/skills/mcp-server-builder/references/python-server-template.md +0 -22
  534. package/skills/mcp-server-builder/references/spec-compatibility.md +0 -129
  535. package/skills/mcp-server-builder/references/typescript-server-template.md +0 -19
  536. package/skills/mcp-server-builder/references/validation-checklist.md +0 -30
  537. package/skills/mcp-server-builder/scripts/mcp_validator.py +0 -180
  538. package/skills/mcp-server-builder/scripts/openapi_to_mcp.py +0 -279
  539. package/skills/playwright-agent/SKILL.md +0 -147
  540. package/skills/skill-creator/LICENSE.txt +0 -14
  541. package/skills/skill-creator/SKILL.md +0 -471
  542. package/skills/skill-creator/agents/analyzer.md +0 -274
  543. package/skills/skill-creator/agents/comparator.md +0 -202
  544. package/skills/skill-creator/agents/grader.md +0 -223
  545. package/skills/skill-creator/assets/eval_review.html +0 -143
  546. package/skills/skill-creator/eval-viewer/generate_review.py +0 -471
  547. package/skills/skill-creator/eval-viewer/viewer.html +0 -1321
  548. package/skills/skill-creator/references/schemas.md +0 -430
  549. package/skills/skill-creator/scripts/__init__.py +0 -0
  550. package/skills/skill-creator/scripts/aggregate_benchmark.py +0 -401
  551. package/skills/skill-creator/scripts/generate_report.py +0 -322
  552. package/skills/skill-creator/scripts/improve_description.py +0 -247
  553. package/skills/skill-creator/scripts/package_skill.py +0 -136
  554. package/skills/skill-creator/scripts/quick_validate.py +0 -103
  555. package/skills/skill-creator/scripts/run_eval.py +0 -310
  556. package/skills/skill-creator/scripts/run_loop.py +0 -328
  557. package/skills/skill-creator/scripts/utils.py +0 -47
  558. package/skills/write-a-skill/SKILL.md +0 -111
  559. package/skills/write-a-skill/references/companion_tooling.md +0 -61
  560. package/skills/write-a-skill/references/description_design_patterns.md +0 -136
  561. package/skills/write-a-skill/references/progressive_disclosure_principles.md +0 -87
  562. package/skills/write-a-skill/references/quality_gates_for_skills.md +0 -158
  563. package/skills/write-a-skill/scripts/skill_description_validator.py +0 -241
  564. package/skills/write-a-skill/scripts/skill_review_checklist_runner.py +0 -257
  565. package/skills/write-a-skill/scripts/skill_structure_validator.py +0 -265
@@ -0,0 +1,85 @@
1
+ ---
2
+ name: "code-standards"
3
+ description: "Pragmatic engineering standards for production code: deep modules over micro-functions, review bar that improves code health, ASVS-aligned security checks, naming and error handling, test strategy. Use when writing or reviewing application code, setting a team style, or checking a PR against a shared bar. Prefer trade-offs over Clean Code dogma."
4
+ license: "Apache-2.0"
5
+ metadata:
6
+ author: Novahiz
7
+ organization: Novahiz
8
+ version: "1.0.0"
9
+ date: September 2026
10
+ ---
11
+
12
+ # code-standards
13
+
14
+ A shared bar for code that other people will read and change. Optimize for change cost and debuggability. Line counts and rule purity are secondary.
15
+
16
+ ## Review standard (Google eng-practices shape)
17
+
18
+ Approve a change when it improves overall code health, even if it is imperfect. Do not block for weeks chasing polish. Technical facts and the style guide beat personal taste.
19
+
20
+ Blocking:
21
+
22
+ - Makes the system worse (unclear ownership of a bug fix, silent behavior change without tests).
23
+ - Security or data-loss risk with no mitigation in the PR.
24
+ - Breaks the agreed style guide where the guide already speaks.
25
+
26
+ Non-blocking (mark as nit):
27
+
28
+ - Naming and formatting the guide does not cover.
29
+ - “Could be nicer” refactors that belong in a follow-up.
30
+ - Educational comments that do not change the decision.
31
+
32
+ Escalate when author and reviewer disagree after one round. Do not let a PR idle.
33
+
34
+ ## Design: depth over micro-cuts
35
+
36
+ A module earns its place when a simple interface hides real work (deep module). Splitting every helper into three lines usually creates entanglement: the reader flips between files to understand one path.
37
+
38
+ - Prefer one clear function that does the job over a constellation of one-liners.
39
+ - Extract when the interface is simpler than the body. A length rule alone is a weak reason.
40
+ - Duplication that is still evolving may stay until a stable abstraction appears.
41
+ - Comments explain contracts and non-obvious why. Restating the function name in a comment is noise.
42
+
43
+ ## Naming and structure
44
+
45
+ - Names use the problem domain (`postPayment`, not `handleThing3`).
46
+ - Command or query: a function does something or answers something. A method that both mutates and returns a “status” confuses every caller.
47
+ - Module boundaries match change ownership. Cross-module edits without a contract change are a smell.
48
+ - Error handling returns enough context to act. Swallowed exceptions and bare `null` returns hide production incidents.
49
+
50
+ ## Security floor (ASVS-shaped)
51
+
52
+ Pick an ASVS level per app (L1 minimum, L2 for sensitive data). At every level:
53
+
54
+ - Validate untrusted input on a trusted server path; encode output for the interpreter that will run it.
55
+ - Auth and session checks on every non-public resource; deny by default.
56
+ - Secrets never in source; load from a secret store or env injected by the platform.
57
+ - Log security-relevant events without writing passwords, tokens, or full PII into logs.
58
+ - HTTPS and pinned or well-known trust for outbound calls.
59
+
60
+ Architecture checks (threat model, trust boundaries) belong in design review as well as in CI.
61
+
62
+ ## Testing bar
63
+
64
+ - Behavior-changing code ships with tests that fail if the behavior regresses.
65
+ - Unit tests are fast, independent, repeatable, self-validating.
66
+ - Integration tests cover the seams that unit tests fake (DB, auth, queues).
67
+ - Flaky tests are bugs. Quarantine with a ticket or fix; do not re-run until green and forget.
68
+
69
+ ## When style fights the codebase
70
+
71
+ The style guide wins on covered points. On uncovered points, match existing code unless the change makes health worse. Automate what reviewers keep repeating (linters, formatters); a PR that only argues whitespace is a tooling gap.
72
+
73
+ ## Checklist (PR)
74
+
75
+ - [ ] Intent clear from title and first screen of the diff.
76
+ - [ ] Correctness: edge cases, empty inputs, concurrent use if relevant.
77
+ - [ ] Tests for behavior change; assertions match user-visible outcomes.
78
+ - [ ] No secret, token, or PII in code or logs.
79
+ - [ ] Names and structure match the domain; no dead branches.
80
+ - [ ] Error paths return actionable information.
81
+ - [ ] Docs or migration notes when public interfaces move.
82
+
83
+ ## Sources
84
+
85
+ Google Engineering Practices (code review standard); OWASP ASVS 4.0 levels and control chapters; A Philosophy of Software Design (deep modules); Pragmatic Programmer patterns. Original Novahiz synthesis; no upstream skill text.
@@ -0,0 +1,35 @@
1
+ # PR review worksheet
2
+
3
+ Copy into the review or keep beside the checklist in SKILL.md.
4
+
5
+ ## Change
6
+
7
+ - Title / ticket:
8
+ - Surface touched (api, ui, data, infra):
9
+ - ASVS level targeted (1 / 2 / 3):
10
+
11
+ ## Blocking
12
+
13
+ | Finding | Evidence (file:line) | Fix direction |
14
+ |---|---|---|
15
+ | | | |
16
+
17
+ ## Non-blocking (nit)
18
+
19
+ -
20
+
21
+ ## Security spot-check
22
+
23
+ - [ ] Input validated where untrusted data enters
24
+ - [ ] Output encoded for the right sink
25
+ - [ ] Authz on every new route or mutation
26
+ - [ ] No secrets or raw PII in code, tests, or logs
27
+ - [ ] Dependencies pinned; lockfile updated if deps changed
28
+
29
+ ## Decision
30
+
31
+ - [ ] Approve
32
+ - [ ] Request changes (list blockers only)
33
+ - [ ] Comment (questions, follow-up ticket)
34
+
35
+ Escalation if disagreement remains after one clarifying round: tech lead or codeowner, same day.
@@ -0,0 +1,85 @@
1
+ ---
2
+ name: "design-token-pipeline"
3
+ description: "Design token architecture and pipeline: DTCG 2025.10 format ($value/$type/aliases), base/semantic/component layers, Style Dictionary v4 builds, Figma Variables round-trip, theming and governance. Use when creating or migrating token files, CSS custom properties from a system, multi-brand themes, or design-dev handoff of color/type/spacing."
4
+ license: "Apache-2.0"
5
+ metadata:
6
+ author: Novahiz
7
+ organization: Novahiz
8
+ version: "1.0.0"
9
+ date: September 2026
10
+ ---
11
+
12
+ # design-token-pipeline
13
+
14
+ Tokens are the contract between design tools and shipped code. This skill covers the format, the layer model, the build, and the governance rules the format does not prescribe.
15
+
16
+ ## Format: DTCG 2025.10
17
+
18
+ Stable spec from the W3C Design Tokens Community Group (October 2025). Prefer it for new files.
19
+
20
+ | Property | Role |
21
+ |---|---|
22
+ | `$value` | The value (reserved word) |
23
+ | `$type` | Kind: `color`, `dimension`, `fontFamily`, `fontWeight`, `duration`, `cubicBezier`, `number`, `string`, `boolean`, `strokeStyle`, `border`, `transition`, `shadow`, `gradient`, `typography`, `fontStyle` |
24
+ | `$description` | Human doc that travels with the token |
25
+ | `$extensions` | Vendor/team metadata, namespaced keys |
26
+
27
+ - Spec keys use `$`. Token and group names must not start with `$`.
28
+ - A token is an object with `$value`. Without it, the object is a group.
29
+ - Groups may set `$type` (inherited), `$description`, `$deprecated`, `$extends`, `$root`.
30
+ - Aliases: `{color.brand.blue}` curly-brace path references.
31
+ - Colors in 2025.10 are objects with a colour space plus components (`srgb`, `hsl`, `hwb`, `lab`, `lch`, `oklab`, `oklch`), not bare hex. Keep an optional hex only as a fallback for old tools.
32
+ - Do not put `{` `}` `.` in token/group names (alias and path rules).
33
+
34
+ Style Dictionary v4 reads DTCG natively. Full 2025.10 colour-object support is still landing in v5; check the version you pin before migrating hex-only colour tokens.
35
+
36
+ ## Layer model (the spec does not mandate one)
37
+
38
+ The spec standardizes the container. Layering is your architecture decision. The common stack:
39
+
40
+ ```
41
+ base (primitives) → semantic (intent) → component (instance)
42
+ #bada55 color.accent.brand button.primary.bg
43
+ spacing.4 text.muted card.padding
44
+ ```
45
+
46
+ | Layer | Names answer | Change cost |
47
+ |---|---|---|
48
+ | Base | What is the literal? | Low (internal) |
49
+ | Semantic | What is it for? | Medium (meaning is public) |
50
+ | Component | Which control? | High (scattered consumers) |
51
+
52
+ Reference upward with aliases. Theme swaps change base (or a semantic override set), not each component file.
53
+
54
+ `outputReferences: true` in Style Dictionary keeps `var(--…)` chains in CSS when base and semantic ship in the same bundle. Hardcode when a semantic file must stand alone.
55
+
56
+ ## Pipeline shape
57
+
58
+ 1. Author tokens in DTCG JSON (Figma Variables export or hand-maintained).
59
+ 2. Validate against the format (structure, types, unresolved aliases).
60
+ 3. Build with Style Dictionary (or Terrazzo): transforms per platform.
61
+ 4. Emit CSS custom properties, iOS/Android/Flutter sources as needed.
62
+ 5. Point components only at semantic (or component) names, never raw hex in JSX.
63
+
64
+ Multi-platform: DTCG `dimension` has `px`/`rem`/`em`, not iOS `pt` or Android `dp`. Conversion is an explicit transform step with a documented ratio.
65
+
66
+ ## Governance (outside the spec)
67
+
68
+ - Who may add a semantic token? Review rule in the repo.
69
+ - Deprecate with `$deprecated`, do not leave `blue-v2-new` beside `blue`.
70
+ - One naming dialect documented (e.g. `color.text.muted`, not mixed `--textColorMuted` and `color-text-muted` at the same layer).
71
+ - Delete unused base tokens on a schedule; cruft accumulates silently.
72
+
73
+ ## Checklist
74
+
75
+ - [ ] New work is DTCG-shaped (`$value` / `$type`), not legacy `value`/`type`.
76
+ - [ ] Three layers (or a documented reason for fewer).
77
+ - [ ] Components import semantic names only.
78
+ - [ ] Light/dark (and brand) are data, not forked component CSS.
79
+ - [ ] Alias graph resolves; no circular references.
80
+ - [ ] Platform transforms documented for non-web targets.
81
+ - [ ] Governance rule written where contributors will see it.
82
+
83
+ ## Sources
84
+
85
+ Design Tokens Format Module 2025.10 (designtokens.org), Style Dictionary DTCG docs, W3C Design Tokens CG announcements, Nathan Curtis / Cosima writing on token naming layers. Original Novahiz synthesis.
@@ -0,0 +1,37 @@
1
+ {
2
+ "$description": "Example DTCG 2025.10 snippet: base → semantic → component aliases.",
3
+ "color": {
4
+ "base": {
5
+ "$type": "color",
6
+ "brand": {
7
+ "600": {
8
+ "$value": { "colorSpace": "oklch", "components": [0.55, 0.15, 250] },
9
+ "$description": "Primary brand",
10
+ "$extensions": { "novahiz.fallbackHex": "#3B5BDB" }
11
+ }
12
+ },
13
+ "neutral": {
14
+ "0": { "$value": { "colorSpace": "oklch", "components": [1, 0, 0] } },
15
+ "900": { "$value": { "colorSpace": "oklch", "components": [0.2, 0.02, 250] } }
16
+ }
17
+ },
18
+ "semantic": {
19
+ "text": {
20
+ "default": { "$value": "{color.base.neutral.900}", "$type": "color" },
21
+ "muted": {
22
+ "$value": "{color.base.neutral.900}",
23
+ "$type": "color",
24
+ "$description": "Secondary text; raise contrast if it drops below AA"
25
+ }
26
+ },
27
+ "action": {
28
+ "primary": { "$value": "{color.base.brand.600}", "$type": "color" }
29
+ }
30
+ }
31
+ },
32
+ "button": {
33
+ "primary": {
34
+ "bg": { "$value": "{color.semantic.action.primary}", "$type": "color" }
35
+ }
36
+ }
37
+ }
@@ -0,0 +1,99 @@
1
+ ---
2
+ name: "llm-threat-review"
3
+ description: "Security review for LLM and agent features: OWASP LLM Top 10 2025, MITRE ATLAS technique mapping, prompt injection and excessive agency checks, tool least privilege, output handling, logging. Use when designing or reviewing chat, RAG, or agentic code paths, before ship or during threat modeling."
4
+ license: "Apache-2.0"
5
+ metadata:
6
+ author: Novahiz
7
+ organization: Novahiz
8
+ version: "1.0.0"
9
+ date: September 2026
10
+ ---
11
+
12
+ # llm-threat-review
13
+
14
+ Review checklist for systems that call a model, retrieve context, or let a model call tools. Findings carry severity and a control. Score against OWASP LLM Top 10 (2025) and map to MITRE ATLAS where a technique id helps.
15
+
16
+ ## Scope
17
+
18
+ Chat UIs, RAG pipelines, agent loops, tool/function calling, fine-tunes that ingest user data. Classic web vulns in the host app stay with `novahiz-security` / ASVS work; this skill covers the model surface.
19
+
20
+ ## 1. Threat model first
21
+
22
+ Answer before listing controls:
23
+
24
+ 1. What private data can the model read?
25
+ 2. What untrusted content enters the prompt (user text, web, email, tickets, files)?
26
+ 3. What can the model do (call tools, write, spend, message)?
27
+ 4. Where does output go (user, HTML, SQL, shell, another model)?
28
+
29
+ If one path combines private data, untrusted content, and an external action, treat it as critical. That combination is the lethal trifecta agents often assemble by default.
30
+
31
+ ## 2. OWASP LLM 2025 map (review each)
32
+
33
+ | ID | Risk | Review question | Typical control |
34
+ |---|---|---|---|
35
+ | LLM01 | Prompt injection | Can user or retrieved text override system rules? | Separate instruction from data; ignore embedded orders; HITL on high-impact tools |
36
+ | LLM02 | Sensitive info disclosure | Can the model echo secrets, PII, or system prompt? | Redact before send; restrict what the system prompt may contain; output filters |
37
+ | LLM03 | Supply chain | Where do models, plugins, and datasets come from? | Pin versions; verify hashes/signatures; vendor review; SBOM/ML-BOM |
38
+ | LLM04 | Data and model poisoning | Can training, fine-tune, or RAG data be poisoned? | Provenance on data; sandbox imports; monitor eval regressions |
39
+ | LLM05 | Improper output handling | Is model output fed to interpreter, SQL, or browser without checks? | Parameterized queries; HTML sanitize; no raw shell from model text |
40
+ | LLM06 | Excessive agency | Do tools run with more privilege than the task needs? | Least-privilege tokens; allowlists; confirm destructive calls |
41
+ | LLM07 | System prompt leakage | Is the system prompt secret that matters? | Keep secrets out of the prompt; accept that prompts leak if treated as public |
42
+ | LLM08 | Vector and embedding weaknesses | Who can poison or read the vector store? | Tenant isolation; authz on retrieval; tamper checks on indexes |
43
+ | LLM09 | Misinformation | Where does unverified model text become a decision? | Grounding; citations; human review for high-stakes answers |
44
+ | LLM10 | Unbounded consumption | Can an attacker burn tokens or loop tools? | Rate limits; budgets; max steps; circuit breakers |
45
+
46
+ ## 3. Injection and jailbreak defenses
47
+
48
+ No single filter stops all injection. Layer:
49
+
50
+ - Constrain role and allowed topics in the system prompt; instruct the model to treat retrieved content as data.
51
+ - Structure prompts so instructions and untrusted content are visually and logically separate (tags, fields).
52
+ - Deterministic validation of output shape (JSON schema, enums) before side effects.
53
+ - Input screening (pattern + optional classifier) on user text and on every external chunk (web, email, tickets).
54
+ - Output screening before render or tool call; block exfil patterns and unexpected tool names.
55
+ - Human approval for money, deletes, production deploys, mass messages.
56
+ - Rate limit and anomaly-log multi-turn and encoded payloads (base64, zero-width, homoglyphs).
57
+
58
+ Treat regex alone as weak against creative obfuscation. Best-of-N style attacks eventually slip past static filters; budget and monitoring matter as much as the filter.
59
+
60
+ ## 4. Agency and tools
61
+
62
+ - Each tool gets the minimum scope (read vs write, record-level limits).
63
+ - Prefer app-held credentials over passing API keys into the prompt.
64
+ - Dual pattern when stakes are high: one process reads untrusted content, another holds tools and only receives structured summaries.
65
+ - Max iteration count and wall-clock budget per user session.
66
+ - Log every tool call with actor, arguments hash, and outcome.
67
+
68
+ ## 5. Output handling
69
+
70
+ Model text is untrusted input to the next system:
71
+
72
+ - HTML: sanitize allowlists before DOM insert.
73
+ - SQL: parameterize; never interpolate model identifiers into DDL.
74
+ - Shell: do not execute model-authored commands without an allowlist and sandbox.
75
+ - URLs: validate scheme and host before fetch (SSRF discipline).
76
+
77
+ ## 6. Logging and redaction
78
+
79
+ Log prompts and outputs for incident work, but redact secrets and unnecessary PII. Alert on: tool calls outside the user’s role, repeated injection-shaped inputs, sudden token spend.
80
+
81
+ ## Report format
82
+
83
+ ```
84
+ ## LLM threat review
85
+ Verdict: PASS | PASS_WITH_FIXES | FAIL
86
+
87
+ ### Findings
88
+ - [HIGH|MED|LOW] area : finding (OWASP LLMxx / ATLAS AML.Txxxx if known)
89
+ Control: ...
90
+
91
+ ### Accepted risk
92
+ - ...
93
+ ```
94
+
95
+ Every finding names a concrete path (route, tool, retrieval source).
96
+
97
+ ## Sources
98
+
99
+ OWASP Top 10 for LLM Applications 2025 (genai.owasp.org); OWASP LLM Prompt Injection Prevention Cheat Sheet; MITRE ATLAS technique data (AML.T0051 family, agent tool techniques); BSI guidance on evasion attacks. Original Novahiz checklist synthesis.
@@ -0,0 +1,34 @@
1
+ # LLM review worksheet
2
+
3
+ ## Inventory
4
+
5
+ | Path | Model | Tools | Untrusted in | Output sink |
6
+ |---|---|---|---|---|
7
+ | | | | | |
8
+
9
+ ## Lethal trifecta
10
+
11
+ - [ ] Private data in context
12
+ - [ ] Untrusted content in context
13
+ - [ ] External action or exfil channel
14
+
15
+ If all three: severity floor HIGH until a control breaks the chain.
16
+
17
+ ## Findings
18
+
19
+ | ID | Severity | Control |
20
+ |---|---|---|
21
+ | LLM01 | | |
22
+ | LLM05 | | |
23
+ | LLM06 | | |
24
+ | LLM10 | | |
25
+
26
+ ## Sign-off
27
+
28
+ - [ ] Tool scopes minimal and tested
29
+ - [ ] HITL on destructive tools
30
+ - [ ] Output sanitization for the real sink
31
+ - [ ] Budgets and rate limits on
32
+ - [ ] Logs redacted
33
+
34
+ Verdict: PASS | PASS_WITH_FIXES | FAIL
@@ -0,0 +1,105 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * llm-threat-review: static heuristics on prompt/tool code paths.
4
+ * Flags high-risk patterns for human review. Not a proof of safety.
5
+ *
6
+ * Usage: node scripts/llm_risk_lint.mjs <file-or-dir> [...]
7
+ * Exit 1 if any HIGH finding.
8
+ */
9
+
10
+ import { readFileSync, readdirSync, statSync } from "node:fs";
11
+ import { join, extname } from "node:path";
12
+
13
+ const EXTS = new Set([".ts", ".tsx", ".js", ".jsx", ".mjs", ".cjs", ".py"]);
14
+
15
+ const RULES = [
16
+ {
17
+ id: "tool-shell-from-model",
18
+ level: "HIGH",
19
+ re: /exec(?:Sync)?\s*\(\s*(?:result|output|completion|text|message)|child_process[\s\S]{0,120}(?:result|completion|modelOutput)/i,
20
+ msg: "Possible shell exec of model output",
21
+ },
22
+ {
23
+ id: "sql-interpolate-model",
24
+ level: "HIGH",
25
+ re: /(?:query|execute|raw)\s*\(\s*[`'"](?:SELECT|INSERT|UPDATE|DELETE)[\s\S]{0,80}(?:\$\{|output|completion|model)/i,
26
+ msg: "Possible SQL built from model text",
27
+ },
28
+ {
29
+ id: "html-inject-model",
30
+ level: "HIGH",
31
+ re: /innerHTML\s*=\s*(?:result|output|completion|message\.(?:content|text))|dangerouslySetInnerHTML\s*\{\s*__html:\s*(?:result|output|completion)/i,
32
+ msg: "Model output assigned to HTML sink without visible sanitize",
33
+ },
34
+ {
35
+ id: "system-prompt-secret",
36
+ level: "HIGH",
37
+ re: /system(?:Prompt|_prompt)?[\s\S]{0,80}(?:API_KEY|SECRET|PASSWORD|PRIVATE_KEY)\s*=/i,
38
+ msg: "Credential-like value near system prompt (LLM07)",
39
+ },
40
+ {
41
+ id: "unbounded-agent-loop",
42
+ level: "MED",
43
+ re: /while\s*\(\s*true\s*\)[\s\S]{0,200}(?:tool|agent|llm|openai|anthropic)/i,
44
+ msg: "Unbounded loop around agent/tool calls (LLM10)",
45
+ },
46
+ {
47
+ id: "tool-all-scope",
48
+ level: "MED",
49
+ re: /scope:\s*['"][\w:.*]+\s*\*/i,
50
+ msg: "Wildcard scope on credential or tool",
51
+ },
52
+ {
53
+ id: "fetch-untrusted-url",
54
+ level: "MED",
55
+ re: /fetch\s*\(\s*(?:url|href|link|inputUrl)\b/i,
56
+ msg: "Fetch of caller-controlled URL; check SSRF allowlist",
57
+ },
58
+ ];
59
+
60
+ function walk(path, out = []) {
61
+ const st = statSync(path);
62
+ if (st.isDirectory()) {
63
+ for (const name of readdirSync(path)) {
64
+ if (name === "node_modules" || name === ".git" || name === "dist") continue;
65
+ walk(join(path, name), out);
66
+ }
67
+ } else if (EXTS.has(extname(path).toLowerCase())) {
68
+ out.push(path);
69
+ }
70
+ return out;
71
+ }
72
+
73
+ function scanFile(file) {
74
+ const text = readFileSync(file, "utf8");
75
+ const findings = [];
76
+ for (const rule of RULES) {
77
+ const m = rule.re.exec(text);
78
+ if (m) {
79
+ const line = text.slice(0, m.index).split(/\r?\n/).length;
80
+ findings.push({ file, line, ...rule });
81
+ }
82
+ }
83
+ return findings;
84
+ }
85
+
86
+ const roots = process.argv.slice(2);
87
+ if (roots.length === 0) {
88
+ console.error("usage: node scripts/llm_risk_lint.mjs <file-or-dir> [...]");
89
+ process.exit(2);
90
+ }
91
+
92
+ const files = roots.flatMap((r) => walk(r));
93
+ const all = files.flatMap(scanFile);
94
+ const byLevel = { HIGH: [], MED: [], LOW: [] };
95
+ for (const f of all) byLevel[f.level].push(f);
96
+
97
+ for (const level of ["HIGH", "MED", "LOW"]) {
98
+ for (const f of byLevel[level]) {
99
+ console.log(`${level}\t${f.id}\t${f.file}:${f.line}\t${f.msg}`);
100
+ }
101
+ }
102
+
103
+ const high = byLevel.HIGH.length;
104
+ console.error(`llm_risk_lint: ${files.length} files, ${all.length} findings (${high} HIGH)`);
105
+ process.exit(high > 0 ? 1 : 0);
@@ -45,7 +45,7 @@ Agent memory is never evidence. If a claim cannot be traced to one of the four s
45
45
 
46
46
  Fourteen categories are checked when encountered: `code`, `debug`, `review`, `audit`, `browser`, `design-ui`, `database-supabase`, `docs-writing`, `planning`, `devops`, `data`, `test`, `security`, `general`.
47
47
 
48
- `general` carries the rules that apply everywhere (humanizer on prose, honesty, todo discipline). A category not in the list falls back to `general` only.
48
+ `general` carries the rules that apply everywhere (honesty, todo discipline). Design skills (`novahiz-humanizer`, `ui-slop-remover`) are checked only under `design-ui`. A category not in the list falls back to `general` only.
49
49
 
50
50
  ## Rules of the audit
51
51
 
@@ -26,10 +26,11 @@ Le gate pose une seule question : les skills exigées par le contexte sont-elles
26
26
 
27
27
  | Règle | Se déclenche sur | Exige |
28
28
  |---|---|---|
29
- | R1-docs | texte, data, config | `novahiz-humanizer` |
30
- | R1-code-prose | code ou design dont le contenu porte de la prose | `novahiz-humanizer` |
29
+ | R13-design-craft | tâche design frontend (catégorie design-ui, fichiers style css/scss/html/…) | `novahiz-humanizer`, `ui-slop-remover`, `ui-craft-rules` |
31
30
  | R3-supabase | chemin `**/supabase/**` ou `**/migrations/**`, catégorie `database-supabase` | `supabase`, `supabase-postgres-best-practices` |
32
31
 
32
+ Hors design frontend, `novahiz-humanizer` et `ui-slop-remover` ne sont plus exigés par le gate.
33
+
33
34
  **Les étapes de roadmap** (`catalog/categories.json`) : seules celles marquées `kind: "skill"` sans `optional` bloquent. Les étapes `edit`, `verify` et `advisory` apparaissent dans `requiredSkills` mais ne refusent rien.
34
35
 
35
36
  ## Sémantique de l'index (gate.ts, lignes 229 à 236)
@@ -50,11 +51,11 @@ Trois conséquences à connaître :
50
51
  ```json
51
52
  {
52
53
  "allow": false,
53
- "missingSkills": ["humanizer"],
54
+ "missingSkills": ["novahiz-humanizer", "ui-slop-remover"],
54
55
  "indexMissing": false,
55
56
  "targets": [{
56
- "path": "...", "fileClass": "text", "roadmap": "feature",
57
- "matchedRules": ["R1-docs"], "reasons": ["missing skill: humanizer"]
57
+ "path": "...", "fileClass": "design", "roadmap": "design",
58
+ "matchedRules": ["R13-design-craft"], "reasons": ["missing skill: novahiz-humanizer"]
58
59
  }]
59
60
  }
60
61
  ```
@@ -67,7 +68,7 @@ Charger chaque skill manquante avec `skill({name})`. Le chargement est enregistr
67
68
 
68
69
  ## Contournement
69
70
 
70
- Le seul prévu par le code : `novahiz_GATE=off` (ou `0`, `false`, `no`, `disabled`) dans l'environnement, lu via `gate.envEscape`. L'utilisateur peut aussi demander explicitement de passer outre. Dans les deux cas, la dérogation se dit à voix haute et se rattrape après coup. Le jugement de l'agent n'est pas un contournement valide.
71
+ Le seul prévu par le code : `NOVAHIZ_GATE=off` (ou `0`, `false`, `no`, `disabled`) dans l'environnement. Le nom de la variable est codé en dur (le champ `gate.envEscape` de la config ne le redirige pas). L'utilisateur peut aussi demander explicitement de passer outre. Dans les deux cas, la dérogation se dit à voix haute et se rattrape après coup. Le jugement de l'agent n'est pas un contournement valide.
71
72
 
72
73
  ## Anti-patterns
73
74
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: novahiz-humanizer
3
- description: "Remove AI writing patterns from text. Rewrite AI-sounding prose so it reads like the human writer: not-X-but-Y contrasts, forced triads, em dashes, chatbot residue, inflated significance, and statistical tells. Use novahiz-humanizer on every text, documentation, commit message, PR description, or code comment meant for a reader."
3
+ description: "Remove AI writing patterns from text. Rewrite AI-sounding prose so it reads like the human writer: not-X-but-Y contrasts, forced triads, em dashes, chatbot residue, inflated significance, and statistical tells. Use novahiz-humanizer on frontend design tasks (R13); it is not required by the gate outside design."
4
4
  license: MIT
5
5
  metadata:
6
6
  author: Novahiz
@@ -47,7 +47,7 @@ novahiz_task action="done" id="<todo>" proof="<command and result>"
47
47
 
48
48
  ## The gate will trigger
49
49
 
50
- Writing code fires rules: R1-code-prose requires `novahiz-humanizer` whenever the content carries prose (comments, messages, labels). Load it before writing, ahead of the refusal.
50
+ Writing code fires rules. On frontend design work, R13 requires `novahiz-humanizer`, `ui-slop-remover` and `ui-craft-rules`. Outside design, those skills are not required by the gate. Load design skills before writing, ahead of the refusal.
51
51
 
52
52
  ## Writing rules
53
53
 
@@ -0,0 +1,112 @@
1
+ ---
2
+ name: novahiz-init
3
+ description: |
4
+ novahiz-init bootstraps Novahiz inside a project: memory skeleton, novahiz-docs/,
5
+ deep read of the codebase, documentation fill-in, and a reviewed cleanup list.
6
+ Use when the user says "/novahiz init", "init novahiz", "initialize novahiz in this project",
7
+ "set up project docs and memory", or wants a one-shot project onboarding.
8
+ license: Apache-2.0
9
+ compatibility: opencode
10
+ metadata:
11
+ author: Novahiz
12
+ organization: Novahiz
13
+ version: "1.0.0"
14
+ ---
15
+
16
+ # novahiz-init
17
+
18
+ One entry point to bring Novahiz into the current project: scaffold first, then deepen with an agent read.
19
+
20
+ ## When to run
21
+
22
+ - `/novahiz init` or `novahiz init` in the project root
23
+ - A new repo needs docs + `project-memory/`
24
+ - Docs or memory are missing after a clone
25
+
26
+ Do **not** use this to install Novahiz on the machine. That stays `novahiz setup` / `install.mjs`.
27
+
28
+ ## Pipeline
29
+
30
+ ```
31
+ 1. CLI scaffold novahiz init [--dry-run] [--docs-only|--memory-only]
32
+ 2. Deep read novahiz-analyse on the real code
33
+ 3. Fill docs novahiz-docs templates already created by CLI
34
+ 4. Seed memory memory_write a baseline slot from findings
35
+ 5. Cleanup review confirm list, then novahiz init --apply --json
36
+ ```
37
+
38
+ ### 1. Scaffold (CLI, deterministic)
39
+
40
+ From the project root:
41
+
42
+ ```
43
+ novahiz init --dry-run --json
44
+ ```
45
+
46
+ Review the plan, then run without `--dry-run` unless the user only wanted a preview.
47
+
48
+ Flags:
49
+
50
+ | Flag | Effect |
51
+ |---|---|
52
+ | `--dry-run` | Print steps and cleanup candidates, write nothing |
53
+ | `--docs-only` | Only `novahiz-docs/` |
54
+ | `--memory-only` | Only `project-memory/` |
55
+ | `--no-seed` | Create memory root without the baseline slot |
56
+ | `--apply` | Delete the listed cleanup candidates (never without review) |
57
+ | `--json` | Machine-readable result |
58
+
59
+ The CLI creates:
60
+
61
+ - `project-memory/index.json` + `slots/` (plus one baseline slot unless `--no-seed`)
62
+ - `novahiz-docs/{ARCHITECTURE,CONVENTIONS,DECISIONS,STANDARDS}.md` from the `novahiz-docs` templates when the folder is absent
63
+ - A cleanup candidate list (logs, `*.orig`, `*.novahiz-bak`, …). Nothing is deleted without `--apply`.
64
+
65
+ ### 2. Deep read
66
+
67
+ Load `novahiz-analyse` and walk manifests, entry points, and data flow. Every claim cites a path. This step is agent work; the CLI does not invent architecture.
68
+
69
+ ### 3. Fill documentation
70
+
71
+ Edit only the four files under `novahiz-docs/`:
72
+
73
+ - Replace HTML comment placeholders with observed facts
74
+ - Keep DECISIONS.md empty until a real decision exists
75
+ - If older docs live in `README.md` or `docs/`, migrate unique facts into the right file, then leave a pointer in the README. Do not delete the README.
76
+
77
+ On frontend design docs or style copy, load `novahiz-humanizer` (R13). Outside design it is not required by the gate.
78
+
79
+ ### 4. Seed memory
80
+
81
+ After docs are filled, append one slot via MCP `memory_write` or `novahiz init` baseline (already written by CLI):
82
+
83
+ - stack and markers
84
+ - entry points
85
+ - where docs live
86
+ - open unknowns
87
+
88
+ ### 5. Cleanup (optional, reviewed)
89
+
90
+ 1. Show the CLI cleanup list to the user.
91
+ 2. Use the `question` tool: apply all, apply none, or hand-pick.
92
+ 3. Only after an explicit choice:
93
+
94
+ ```
95
+ novahiz init --apply --json
96
+ ```
97
+
98
+ `--yes` alone is never enough to delete files the user has not seen.
99
+
100
+ ## Exit criteria
101
+
102
+ - `novahiz init --json` has `failed: []`
103
+ - `novahiz-docs/` has four files with no remaining fill-in comments on architecture/conventions/standards
104
+ - `project-memory/` has at least one slot
105
+ - Cleanup either applied with consent or left unapplied on purpose
106
+
107
+ ## Pitfalls
108
+
109
+ - Running `novahiz init` thinking it installs the global tool (`setup` does that).
110
+ - Filling templates with guessed architecture instead of a real read.
111
+ - Deleting cleanup candidates without showing the list.
112
+ - Duplicating content that already belongs in `novahiz-docs` update / converge.