exonous 0.0.0-stage → 2.10.4

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 (385) hide show
  1. package/README.md +100 -2
  2. package/assets/THIRD-PARTY-NOTICES.md +29 -0
  3. package/assets/adapters/opencode/exonous.js +54 -0
  4. package/assets/agents/exo-backend.md +22 -0
  5. package/assets/agents/exo-cto.md +22 -0
  6. package/assets/agents/exo-data-ai.md +22 -0
  7. package/assets/agents/exo-designer.md +22 -0
  8. package/assets/agents/exo-devops.md +22 -0
  9. package/assets/agents/exo-frontend.md +22 -0
  10. package/assets/agents/exo-infra.md +22 -0
  11. package/assets/agents/exo-mobile.md +22 -0
  12. package/assets/agents/exo-pm.md +22 -0
  13. package/assets/agents/exo-qa.md +22 -0
  14. package/assets/agents/exo-researcher.md +22 -0
  15. package/assets/agents/exo-security.md +22 -0
  16. package/assets/agents/roster.json +209 -0
  17. package/assets/agents/taxis.js +189 -0
  18. package/assets/editors/cursor/frontend-skills.mdc +27 -0
  19. package/assets/editors/hooks/cursor/hooks.json +11 -0
  20. package/assets/machine/PR-TEMPLATE.md +21 -0
  21. package/assets/machine/hooks/anamnesis.cjs +61 -0
  22. package/assets/machine/hooks/ethos.cjs +48 -0
  23. package/assets/machine/hooks/kairos.cjs +46 -0
  24. package/assets/machine/hooks/lib/cli-options.cjs +133 -0
  25. package/assets/machine/hooks/lib/memory.cjs +488 -0
  26. package/assets/machine/hooks/lib/metron.cjs +52 -0
  27. package/assets/machine/hooks/lib/paths.cjs +99 -0
  28. package/assets/machine/hooks/lib/payload.cjs +81 -0
  29. package/assets/machine/hooks/lib/pr-template-validate.cjs +103 -0
  30. package/assets/machine/hooks/lib/release.cjs +58 -0
  31. package/assets/machine/hooks/lib/repo.cjs +138 -0
  32. package/assets/machine/hooks/lib/sanitize.cjs +37 -0
  33. package/assets/machine/hooks/lib/selfupdate.cjs +354 -0
  34. package/assets/machine/hooks/lib/shell.cjs +722 -0
  35. package/assets/machine/hooks/lib/template.cjs +70 -0
  36. package/assets/machine/hooks/lib/token.cjs +110 -0
  37. package/assets/machine/hooks/lib/validate-pr-body.cjs +21 -0
  38. package/assets/machine/hooks/pyle.cjs +302 -0
  39. package/assets/rules/nomos.md +59 -0
  40. package/assets/rules/praxis.md +38 -0
  41. package/assets/skills/code-review/SKILL.md +124 -0
  42. package/assets/skills/commit-changes/SKILL.md +49 -0
  43. package/assets/skills/deliver/SKILL.md +114 -0
  44. package/assets/skills/deliver/references/parallel.md +37 -0
  45. package/assets/skills/doc/SKILL.md +140 -0
  46. package/assets/skills/doc/doc.mjs +277 -0
  47. package/assets/skills/issue-board/SKILL.md +84 -0
  48. package/assets/skills/issue-board/board.mjs +389 -0
  49. package/assets/skills/issue-board/config.example.json +9 -0
  50. package/assets/skills/issue-board/render.py +189 -0
  51. package/assets/skills/make-pr/SKILL.md +24 -0
  52. package/assets/skills/native-ui/SKILL.md +67 -0
  53. package/assets/skills/native-ui/reference/apple.md +180 -0
  54. package/assets/skills/native-ui/reference/mobile-feel.md +221 -0
  55. package/assets/skills/native-ui/reference/swift.md +289 -0
  56. package/assets/skills/project-memory/SKILL.md +59 -0
  57. package/assets/skills/project-memory/config.example.json +4 -0
  58. package/assets/skills/project-memory/project-memory.mjs +478 -0
  59. package/assets/skills/security-review/SKILL.md +102 -0
  60. package/assets/skills/session-handoff/SKILL.md +23 -0
  61. package/assets/skills/session-handoff/config.example.json +3 -0
  62. package/assets/skills/ui-design/SKILL.md +75 -0
  63. package/assets/skills/ui-design/reference/adapt.md +151 -0
  64. package/assets/skills/ui-design/reference/adapt.native.md +35 -0
  65. package/assets/skills/ui-design/reference/android.md +50 -0
  66. package/assets/skills/ui-design/reference/animate.md +87 -0
  67. package/assets/skills/ui-design/reference/audit.md +76 -0
  68. package/assets/skills/ui-design/reference/audit.native.md +126 -0
  69. package/assets/skills/ui-design/reference/bolder.md +33 -0
  70. package/assets/skills/ui-design/reference/clarify.md +84 -0
  71. package/assets/skills/ui-design/reference/colorize.md +86 -0
  72. package/assets/skills/ui-design/reference/craft-floor.md +25 -0
  73. package/assets/skills/ui-design/reference/critique.md +345 -0
  74. package/assets/skills/ui-design/reference/degraded/asset-producer.md +35 -0
  75. package/assets/skills/ui-design/reference/degraded/documenter.md +23 -0
  76. package/assets/skills/ui-design/reference/degraded/finish-reviewer.md +43 -0
  77. package/assets/skills/ui-design/reference/degraded/manual-edit-applier.md +56 -0
  78. package/assets/skills/ui-design/reference/delight.md +63 -0
  79. package/assets/skills/ui-design/reference/distill.md +98 -0
  80. package/assets/skills/ui-design/reference/doctor.md +49 -0
  81. package/assets/skills/ui-design/reference/document.md +273 -0
  82. package/assets/skills/ui-design/reference/extract.md +52 -0
  83. package/assets/skills/ui-design/reference/harden.md +122 -0
  84. package/assets/skills/ui-design/reference/hooks.md +114 -0
  85. package/assets/skills/ui-design/reference/init.md +47 -0
  86. package/assets/skills/ui-design/reference/ios.md +55 -0
  87. package/assets/skills/ui-design/reference/layout.md +81 -0
  88. package/assets/skills/ui-design/reference/live-setup.md +75 -0
  89. package/assets/skills/ui-design/reference/live.md +326 -0
  90. package/assets/skills/ui-design/reference/new-work.md +350 -0
  91. package/assets/skills/ui-design/reference/onboard.md +85 -0
  92. package/assets/skills/ui-design/reference/operate.md +29 -0
  93. package/assets/skills/ui-design/reference/optimize.md +101 -0
  94. package/assets/skills/ui-design/reference/overdrive.md +83 -0
  95. package/assets/skills/ui-design/reference/polish.md +77 -0
  96. package/assets/skills/ui-design/reference/quieter.md +95 -0
  97. package/assets/skills/ui-design/reference/routing.md +37 -0
  98. package/assets/skills/ui-design/reference/shape.md +43 -0
  99. package/assets/skills/ui-design/reference/styles/brutalist.md +45 -0
  100. package/assets/skills/ui-design/reference/styles/design-md.md +70 -0
  101. package/assets/skills/ui-design/reference/styles/direction.md +95 -0
  102. package/assets/skills/ui-design/reference/styles/full-output.md +42 -0
  103. package/assets/skills/ui-design/reference/styles/minimalist.md +64 -0
  104. package/assets/skills/ui-design/reference/styles/premium.md +65 -0
  105. package/assets/skills/ui-design/reference/styles/redesign.md +59 -0
  106. package/assets/skills/ui-design/reference/typeset.md +73 -0
  107. package/assets/skills/ui-design/reference/visualize.md +156 -0
  108. package/assets/skills/ui-design/scripts/ENGINE-LICENSE +191 -0
  109. package/assets/skills/ui-design/scripts/VERSION +1 -0
  110. package/assets/skills/ui-design/scripts/bin/darwin-arm64/impeccable +0 -0
  111. package/assets/skills/ui-design/scripts/command-metadata.json +94 -0
  112. package/assets/skills/ui-design/scripts/data/font-index-failures.json +121 -0
  113. package/assets/skills/ui-design/scripts/data/font-index.json +1 -0
  114. package/assets/skills/ui-design/scripts/impeccable +206 -0
  115. package/assets/skills/ui-design/scripts/impeccable.cmd +214 -0
  116. package/assets/skills/ui-design/scripts/live-browser-dom.js +167 -0
  117. package/assets/skills/ui-design/scripts/live-browser-ignores.js +242 -0
  118. package/assets/skills/ui-design/scripts/live-browser-session.js +144 -0
  119. package/assets/skills/ui-design/scripts/live-browser.js +12990 -0
  120. package/assets/skills/ui-design/scripts/modern-screenshot.umd.js +14 -0
  121. package/assets/skills/ui-design/scripts/ui-design +6 -0
  122. package/assets/skills/ui-design/scripts/ui-design.cmd +3 -0
  123. package/assets/skills/ui-design/scripts/ui-design.mjs +124 -0
  124. package/assets/skills/ui-mockup/SKILL.md +68 -0
  125. package/assets/skills/ui-mockup/reference/brandkit.md +101 -0
  126. package/assets/skills/ui-mockup/reference/image-to-code.md +83 -0
  127. package/assets/skills/ui-mockup/reference/mobile-comps.md +94 -0
  128. package/assets/skills/ui-mockup/reference/web-comps.md +83 -0
  129. package/assets/skills/ui-motion/SKILL.md +112 -0
  130. package/assets/skills/ui-motion/reference/expo.md +224 -0
  131. package/assets/skills/ui-motion/reference/opportunities.md +81 -0
  132. package/assets/skills/ui-motion/reference/prototype.md +238 -0
  133. package/assets/skills/ui-motion/reference/review.md +163 -0
  134. package/assets/skills/ui-motion/reference/toasts.md +144 -0
  135. package/assets/skills/ui-motion/reference/ui-libraries.md +71 -0
  136. package/assets/skills/ui-motion/reference/vocabulary.md +130 -0
  137. package/assets/skills/ui-motion/reference/web.md +294 -0
  138. package/assets/skills/ui-patterns/SKILL.md +105 -0
  139. package/assets/skills/ui-patterns/references/stacks/html-tailwind.md +40 -0
  140. package/assets/skills/ui-patterns/references/stacks/nextjs.md +52 -0
  141. package/assets/skills/ui-patterns/references/stacks/nuxt.md +100 -0
  142. package/assets/skills/ui-patterns/references/stacks/react-native.md +48 -0
  143. package/assets/skills/ui-patterns/references/stacks/react.md +49 -0
  144. package/assets/skills/ui-patterns/references/stacks/shadcn.md +57 -0
  145. package/assets/skills/ui-patterns/references/stacks/vue.md +37 -0
  146. package/assets/techne/.claude-plugin/marketplace.json +31 -0
  147. package/assets/techne/.claude-plugin/plugin.json +24 -0
  148. package/assets/techne/.mcp.json +8 -0
  149. package/assets/techne/commands/build-fix.md +48 -0
  150. package/assets/techne/commands/refactor-clean.md +46 -0
  151. package/assets/techne/commands/test-coverage.md +42 -0
  152. package/assets/techne/hooks/hooks.json +49 -0
  153. package/assets/techne/rules/angular/coding-style.md +49 -0
  154. package/assets/techne/rules/angular/hooks.md +23 -0
  155. package/assets/techne/rules/angular/patterns.md +48 -0
  156. package/assets/techne/rules/angular/security.md +26 -0
  157. package/assets/techne/rules/angular/testing.md +46 -0
  158. package/assets/techne/rules/arkts/coding-style.md +63 -0
  159. package/assets/techne/rules/arkts/hooks.md +38 -0
  160. package/assets/techne/rules/arkts/patterns.md +42 -0
  161. package/assets/techne/rules/arkts/security.md +35 -0
  162. package/assets/techne/rules/arkts/testing.md +39 -0
  163. package/assets/techne/rules/common/agents.md +6 -0
  164. package/assets/techne/rules/common/code-review.md +15 -0
  165. package/assets/techne/rules/common/coding-style.md +13 -0
  166. package/assets/techne/rules/common/development-workflow.md +5 -0
  167. package/assets/techne/rules/common/git-workflow.md +30 -0
  168. package/assets/techne/rules/common/hooks.md +7 -0
  169. package/assets/techne/rules/common/patterns.md +3 -0
  170. package/assets/techne/rules/common/performance.md +3 -0
  171. package/assets/techne/rules/common/security.md +5 -0
  172. package/assets/techne/rules/common/testing.md +3 -0
  173. package/assets/techne/rules/cpp/coding-style.md +31 -0
  174. package/assets/techne/rules/cpp/hooks.md +26 -0
  175. package/assets/techne/rules/cpp/patterns.md +31 -0
  176. package/assets/techne/rules/cpp/security.md +37 -0
  177. package/assets/techne/rules/cpp/testing.md +31 -0
  178. package/assets/techne/rules/csharp/coding-style.md +30 -0
  179. package/assets/techne/rules/csharp/hooks.md +24 -0
  180. package/assets/techne/rules/csharp/patterns.md +28 -0
  181. package/assets/techne/rules/csharp/security.md +32 -0
  182. package/assets/techne/rules/csharp/testing.md +27 -0
  183. package/assets/techne/rules/dart/coding-style.md +47 -0
  184. package/assets/techne/rules/dart/hooks.md +26 -0
  185. package/assets/techne/rules/dart/patterns.md +38 -0
  186. package/assets/techne/rules/dart/security.md +44 -0
  187. package/assets/techne/rules/dart/testing.md +39 -0
  188. package/assets/techne/rules/fsharp/coding-style.md +34 -0
  189. package/assets/techne/rules/fsharp/hooks.md +25 -0
  190. package/assets/techne/rules/fsharp/patterns.md +43 -0
  191. package/assets/techne/rules/fsharp/security.md +32 -0
  192. package/assets/techne/rules/fsharp/testing.md +27 -0
  193. package/assets/techne/rules/golang/coding-style.md +30 -0
  194. package/assets/techne/rules/golang/hooks.md +17 -0
  195. package/assets/techne/rules/golang/patterns.md +43 -0
  196. package/assets/techne/rules/golang/security.md +33 -0
  197. package/assets/techne/rules/golang/testing.md +20 -0
  198. package/assets/techne/rules/java/coding-style.md +51 -0
  199. package/assets/techne/rules/java/hooks.md +18 -0
  200. package/assets/techne/rules/java/patterns.md +55 -0
  201. package/assets/techne/rules/java/security.md +33 -0
  202. package/assets/techne/rules/java/testing.md +33 -0
  203. package/assets/techne/rules/kotlin/coding-style.md +50 -0
  204. package/assets/techne/rules/kotlin/hooks.md +17 -0
  205. package/assets/techne/rules/kotlin/patterns.md +44 -0
  206. package/assets/techne/rules/kotlin/security.md +34 -0
  207. package/assets/techne/rules/kotlin/testing.md +38 -0
  208. package/assets/techne/rules/nuxt/coding-style.md +20 -0
  209. package/assets/techne/rules/nuxt/hooks.md +16 -0
  210. package/assets/techne/rules/nuxt/patterns.md +46 -0
  211. package/assets/techne/rules/nuxt/security.md +19 -0
  212. package/assets/techne/rules/nuxt/testing.md +15 -0
  213. package/assets/techne/rules/perl/coding-style.md +33 -0
  214. package/assets/techne/rules/perl/hooks.md +22 -0
  215. package/assets/techne/rules/perl/patterns.md +43 -0
  216. package/assets/techne/rules/perl/security.md +39 -0
  217. package/assets/techne/rules/perl/testing.md +42 -0
  218. package/assets/techne/rules/php/coding-style.md +30 -0
  219. package/assets/techne/rules/php/hooks.md +24 -0
  220. package/assets/techne/rules/php/patterns.md +26 -0
  221. package/assets/techne/rules/php/security.md +27 -0
  222. package/assets/techne/rules/php/testing.md +28 -0
  223. package/assets/techne/rules/python/coding-style.md +38 -0
  224. package/assets/techne/rules/python/fastapi.md +57 -0
  225. package/assets/techne/rules/python/hooks.md +19 -0
  226. package/assets/techne/rules/python/patterns.md +37 -0
  227. package/assets/techne/rules/python/security.md +26 -0
  228. package/assets/techne/rules/python/testing.md +32 -0
  229. package/assets/techne/rules/react/coding-style.md +24 -0
  230. package/assets/techne/rules/react/hooks.md +62 -0
  231. package/assets/techne/rules/react/patterns.md +48 -0
  232. package/assets/techne/rules/react/security.md +45 -0
  233. package/assets/techne/rules/react/testing.md +42 -0
  234. package/assets/techne/rules/react-native/accessibility.md +14 -0
  235. package/assets/techne/rules/react-native/coding-style.md +16 -0
  236. package/assets/techne/rules/react-native/hooks.md +16 -0
  237. package/assets/techne/rules/react-native/patterns.md +18 -0
  238. package/assets/techne/rules/react-native/performance.md +14 -0
  239. package/assets/techne/rules/react-native/production-readiness.md +16 -0
  240. package/assets/techne/rules/react-native/security.md +16 -0
  241. package/assets/techne/rules/react-native/testing.md +14 -0
  242. package/assets/techne/rules/ruby/coding-style.md +40 -0
  243. package/assets/techne/rules/ruby/hooks.md +33 -0
  244. package/assets/techne/rules/ruby/patterns.md +33 -0
  245. package/assets/techne/rules/ruby/security.md +39 -0
  246. package/assets/techne/rules/ruby/testing.md +35 -0
  247. package/assets/techne/rules/rust/coding-style.md +41 -0
  248. package/assets/techne/rules/rust/hooks.md +16 -0
  249. package/assets/techne/rules/rust/patterns.md +42 -0
  250. package/assets/techne/rules/rust/security.md +33 -0
  251. package/assets/techne/rules/rust/testing.md +30 -0
  252. package/assets/techne/rules/swift/coding-style.md +30 -0
  253. package/assets/techne/rules/swift/hooks.md +20 -0
  254. package/assets/techne/rules/swift/patterns.md +30 -0
  255. package/assets/techne/rules/swift/security.md +22 -0
  256. package/assets/techne/rules/swift/testing.md +28 -0
  257. package/assets/techne/rules/typescript/coding-style.md +38 -0
  258. package/assets/techne/rules/typescript/hooks.md +14 -0
  259. package/assets/techne/rules/typescript/patterns.md +12 -0
  260. package/assets/techne/rules/typescript/security.md +14 -0
  261. package/assets/techne/rules/typescript/testing.md +12 -0
  262. package/assets/techne/rules/vue/coding-style.md +19 -0
  263. package/assets/techne/rules/vue/hooks.md +13 -0
  264. package/assets/techne/rules/vue/patterns.md +29 -0
  265. package/assets/techne/rules/vue/security.md +11 -0
  266. package/assets/techne/rules/vue/testing.md +11 -0
  267. package/assets/techne/rules/web/coding-style.md +25 -0
  268. package/assets/techne/rules/web/design-quality.md +21 -0
  269. package/assets/techne/rules/web/hooks.md +39 -0
  270. package/assets/techne/rules/web/patterns.md +23 -0
  271. package/assets/techne/rules/web/performance.md +25 -0
  272. package/assets/techne/rules/web/security.md +23 -0
  273. package/assets/techne/rules/web/testing.md +21 -0
  274. package/assets/techne/scripts/hooks/config-guard.js +50 -0
  275. package/assets/techne/scripts/hooks/edit-tracker.js +26 -0
  276. package/assets/techne/scripts/hooks/lib/shell.js +204 -0
  277. package/assets/techne/scripts/hooks/no-verify-guard.js +205 -0
  278. package/assets/techne/scripts/hooks/run.js +92 -0
  279. package/assets/techne/scripts/hooks/stop-checks.js +136 -0
  280. package/assets/techne/skills/angular/SKILL.md +34 -0
  281. package/assets/techne/skills/angular/reference/components-and-templates.md +63 -0
  282. package/assets/techne/skills/angular/reference/dependency-injection.md +44 -0
  283. package/assets/techne/skills/angular/reference/forms.md +97 -0
  284. package/assets/techne/skills/angular/reference/routing.md +50 -0
  285. package/assets/techne/skills/angular/reference/signals-and-state.md +59 -0
  286. package/assets/techne/skills/angular/reference/styling-motion-a11y.md +54 -0
  287. package/assets/techne/skills/angular/reference/testing.md +52 -0
  288. package/assets/techne/skills/angular/reference/tooling.md +31 -0
  289. package/assets/techne/skills/cpp/SKILL.md +27 -0
  290. package/assets/techne/skills/cpp/reference/coding-standards.md +160 -0
  291. package/assets/techne/skills/databases/SKILL.md +35 -0
  292. package/assets/techne/skills/databases/reference/clickhouse.md +102 -0
  293. package/assets/techne/skills/databases/reference/migrations.md +94 -0
  294. package/assets/techne/skills/databases/reference/mysql.md +101 -0
  295. package/assets/techne/skills/databases/reference/postgres.md +72 -0
  296. package/assets/techne/skills/databases/reference/prisma.md +105 -0
  297. package/assets/techne/skills/databases/reference/redis.md +108 -0
  298. package/assets/techne/skills/delivery/SKILL.md +35 -0
  299. package/assets/techne/skills/delivery/reference/deployment-patterns.md +58 -0
  300. package/assets/techne/skills/delivery/reference/docker-patterns.md +77 -0
  301. package/assets/techne/skills/delivery/reference/git-workflow.md +64 -0
  302. package/assets/techne/skills/delivery/reference/github-ops.md +67 -0
  303. package/assets/techne/skills/delivery/reference/jira-integration.md +53 -0
  304. package/assets/techne/skills/delivery/reference/kubernetes-patterns.md +67 -0
  305. package/assets/techne/skills/dotnet/SKILL.md +27 -0
  306. package/assets/techne/skills/dotnet/reference/dotnet-core.md +131 -0
  307. package/assets/techne/skills/flutter/SKILL.md +29 -0
  308. package/assets/techne/skills/flutter/reference/code-review.md +76 -0
  309. package/assets/techne/skills/flutter/reference/patterns.md +201 -0
  310. package/assets/techne/skills/go/SKILL.md +28 -0
  311. package/assets/techne/skills/go/reference/patterns.md +87 -0
  312. package/assets/techne/skills/go/reference/testing.md +142 -0
  313. package/assets/techne/skills/java/SKILL.md +29 -0
  314. package/assets/techne/skills/java/reference/java-standards.md +117 -0
  315. package/assets/techne/skills/java/reference/springboot.md +108 -0
  316. package/assets/techne/skills/kotlin/SKILL.md +35 -0
  317. package/assets/techne/skills/kotlin/reference/android-clean-architecture.md +115 -0
  318. package/assets/techne/skills/kotlin/reference/compose-multiplatform-patterns.md +113 -0
  319. package/assets/techne/skills/kotlin/reference/kotlin-coroutines-flows.md +93 -0
  320. package/assets/techne/skills/kotlin/reference/kotlin-patterns.md +74 -0
  321. package/assets/techne/skills/kotlin/reference/kotlin-testing.md +115 -0
  322. package/assets/techne/skills/ml/SKILL.md +34 -0
  323. package/assets/techne/skills/ml/reference/ai-regression-testing.md +99 -0
  324. package/assets/techne/skills/ml/reference/cost-aware-llm-pipeline.md +133 -0
  325. package/assets/techne/skills/ml/reference/eval-harness.md +94 -0
  326. package/assets/techne/skills/ml/reference/mle-workflow.md +177 -0
  327. package/assets/techne/skills/ml/reference/prompt-optimizer.md +107 -0
  328. package/assets/techne/skills/ml/reference/pytorch-patterns.md +164 -0
  329. package/assets/techne/skills/php/SKILL.md +27 -0
  330. package/assets/techne/skills/php/reference/laravel.md +142 -0
  331. package/assets/techne/skills/python/SKILL.md +33 -0
  332. package/assets/techne/skills/python/reference/django.md +104 -0
  333. package/assets/techne/skills/python/reference/fastapi.md +118 -0
  334. package/assets/techne/skills/python/reference/python-core.md +88 -0
  335. package/assets/techne/skills/python/reference/python-testing.md +105 -0
  336. package/assets/techne/skills/quality/SKILL.md +34 -0
  337. package/assets/techne/skills/quality/reference/benchmark.md +55 -0
  338. package/assets/techne/skills/quality/reference/browser-qa.md +60 -0
  339. package/assets/techne/skills/quality/reference/coding-standards.md +88 -0
  340. package/assets/techne/skills/quality/reference/e2e-testing.md +99 -0
  341. package/assets/techne/skills/quality/reference/tdd-workflow.md +89 -0
  342. package/assets/techne/skills/quality/reference/verification-loop.md +80 -0
  343. package/assets/techne/skills/react/SKILL.md +30 -0
  344. package/assets/techne/skills/react/reference/nextjs-turbopack.md +42 -0
  345. package/assets/techne/skills/react/reference/react-patterns.md +139 -0
  346. package/assets/techne/skills/react/reference/react-performance.md +101 -0
  347. package/assets/techne/skills/react/reference/react-testing.md +139 -0
  348. package/assets/techne/skills/react-native/SKILL.md +28 -0
  349. package/assets/techne/skills/react-native/reference/expo-patterns.md +196 -0
  350. package/assets/techne/skills/research/SKILL.md +35 -0
  351. package/assets/techne/skills/research/reference/architecture-decision-records.md +65 -0
  352. package/assets/techne/skills/research/reference/codebase-onboarding.md +44 -0
  353. package/assets/techne/skills/research/reference/deep-research.md +50 -0
  354. package/assets/techne/skills/research/reference/iterative-retrieval.md +62 -0
  355. package/assets/techne/skills/research/reference/product-lens.md +38 -0
  356. package/assets/techne/skills/research/reference/search-first.md +50 -0
  357. package/assets/techne/skills/rust/SKILL.md +28 -0
  358. package/assets/techne/skills/rust/reference/patterns.md +108 -0
  359. package/assets/techne/skills/rust/reference/testing.md +142 -0
  360. package/assets/techne/skills/services/SKILL.md +32 -0
  361. package/assets/techne/skills/services/reference/api-contracts.md +139 -0
  362. package/assets/techne/skills/services/reference/backend-layers.md +95 -0
  363. package/assets/techne/skills/services/reference/errors-and-resilience.md +146 -0
  364. package/assets/techne/skills/services/reference/hexagonal-boundaries.md +93 -0
  365. package/assets/techne/skills/services/reference/mcp-servers.md +50 -0
  366. package/assets/techne/skills/services/reference/nestjs.md +96 -0
  367. package/assets/techne/skills/swift/SKILL.md +29 -0
  368. package/assets/techne/skills/swift/reference/concurrency.md +83 -0
  369. package/assets/techne/skills/swift/reference/swiftui.md +139 -0
  370. package/assets/techne/skills/vue/SKILL.md +29 -0
  371. package/assets/techne/skills/vue/reference/nuxt4-patterns.md +90 -0
  372. package/assets/techne/skills/vue/reference/ui-to-vue.md +90 -0
  373. package/assets/techne/skills/vue/reference/vue-patterns.md +151 -0
  374. package/assets/techne/skills/web/SKILL.md +30 -0
  375. package/assets/techne/skills/web/reference/bun-runtime.md +55 -0
  376. package/assets/techne/skills/web/reference/frontend-patterns.md +54 -0
  377. package/assets/techne/skills/web/reference/seo.md +77 -0
  378. package/assets/techne/skills/web/reference/vite-patterns.md +96 -0
  379. package/bin/native.cjs +30 -0
  380. package/native/aarch64-apple-darwin/exonous +0 -0
  381. package/native/aarch64-unknown-linux-gnu/exonous +0 -0
  382. package/native/x86_64-apple-darwin/exonous +0 -0
  383. package/native/x86_64-pc-windows-msvc/exonous.exe +0 -0
  384. package/native/x86_64-unknown-linux-gnu/exonous +0 -0
  385. package/package.json +1 -6
@@ -0,0 +1,26 @@
1
+ ---
2
+ paths:
3
+ - "**/*.component.ts"
4
+ - "**/*.component.html"
5
+ - "**/*.service.ts"
6
+ - "**/*.interceptor.ts"
7
+ ---
8
+ > Builds on the shared rules in `../common/security.md`.
9
+
10
+ # Angular security
11
+
12
+ Angular sanitizes bound values by default — do not call `bypassSecurityTrust*` on user-controlled strings without review.
13
+
14
+ Prefer `innerText` or sanitizing pipes over `[innerHTML]` for untrusted content.
15
+
16
+ Use `HttpClient` so auth/error interceptors always run — avoid ad hoc `fetch`.
17
+
18
+ Environment files describe shape; inject real secrets via CI/CD env or secret manager — not committed literals.
19
+
20
+ Protect admin routes with functional guards (`canMatch` prevents lazy chunk download). UI hiding is not authorization.
21
+
22
+ SSR: never transfer private config through `TransferState`; gate DOM APIs with `isPlatformBrowser`.
23
+
24
+ Configure CSP without `unsafe-eval`; use nonces for unavoidable inline scripts during SSR.
25
+
26
+ **exo-security** / `security-review` before merging auth or PII features.
@@ -0,0 +1,46 @@
1
+ ---
2
+ paths:
3
+ - "**/*.spec.ts"
4
+ - "**/*.test.ts"
5
+ ---
6
+ > Builds on the shared rules in `../common/testing.md`.
7
+
8
+ # Angular testing
9
+
10
+ Detect runner from `angular.json` / `package.json` (Vitest, Jest, or Karma/Jasmine).
11
+
12
+ ## TestBed
13
+
14
+ Import standalone components directly; `compileComponents()` when using external templates.
15
+
16
+ Signal inputs: `fixture.componentRef.setInput('name', value)` then `detectChanges()`.
17
+
18
+ ## UI interaction
19
+
20
+ Prefer CDK component harnesses over `nativeElement.querySelector` — survives template refactors.
21
+
22
+ ## Router
23
+
24
+ `RouterTestingHarness.create()` + `navigateByUrl` for components coupled to routes.
25
+
26
+ ## Async
27
+
28
+ `fakeAsync` + `tick` for deterministic timers; `waitForAsync` + `fixture.whenStable()` for real async.
29
+
30
+ ## HTTP
31
+
32
+ Provide `provideHttpClientTesting()`; inject `HttpTestingController`; `afterEach(() => httpMock.verify())`.
33
+
34
+ ## Services
35
+
36
+ Configure TestBed providers only; inject service without component fixture for pure logic.
37
+
38
+ ## E2E
39
+
40
+ Use project standard (Cypress/Playwright). Stable `data-cy` attributes — not CSS classes copied from design tokens.
41
+
42
+ ## Coverage
43
+
44
+ ≥80% on services/pipes; components assert behavior via harnesses, not private fields.
45
+
46
+ **techne:angular** skill for signal/form harness recipes.
@@ -0,0 +1,63 @@
1
+ ---
2
+ paths:
3
+ - "**/*.ets"
4
+ - "**/*.ts"
5
+ - "**/module.json5"
6
+ - "**/oh-package.json5"
7
+ - "**/build-profile.json5"
8
+ ---
9
+ # HarmonyOS / ArkTS Coding Style
10
+
11
+ > Builds on the shared rules in `../common/coding-style.md`.
12
+
13
+ ArkTS is a strict TypeScript subset — violations fail compile.
14
+
15
+ ## Type system (hard limits)
16
+
17
+ Explicit types only — no `any`/`unknown`; no indexed access types, conditional types, mapped types, `infer`, intersections, structural typing, `typeof` types, or `as const`. Utility types limited to `Partial`, `Required`, `Readonly`, `Record` (`Record` indexes may be `undefined`). No type annotations in `catch`.
18
+
19
+ ## Functions / classes
20
+
21
+ Arrow functions only (no function expressions/generators); no `apply`/`call`/`bind`; fields declared in class body; `this` restricted to instance methods; no `new.target`; definite-assignment assertions are banned; one static block; classes are types — do not treat as runtime values.
22
+
23
+ ## Objects
24
+
25
+ Static property access (`obj.field`); no dynamic keys/`delete`; no `in` — use `instanceof`; no reassigning methods; no `globalThis`; spread only for arrays/rest.
26
+
27
+ ## Modules
28
+
29
+ ESM `import`/`export` only — no `require`, `export =`, import assertions, wildcards; imports before other statements; TS must not import ArkTS (reverse allowed).
30
+
31
+ ## Other
32
+
33
+ `let`/`const` only; no `for...in`, `with`, JSX, `#` privates; no declaration merging; explicit return types when inference crosses omitted returns.
34
+
35
+ ## Naming
36
+
37
+ camelCase functions/vars; PascalCase types; `UPPER_SNAKE` constants; PascalCase component files, camelCase utilities.
38
+
39
+ ## Format
40
+
41
+ Double-quoted strings; semicolons; full type annotations on public APIs.
42
+
43
+ ## Files
44
+
45
+ One `@ComponentV2` per component file; one ViewModel per file; ~400 lines target (~800 max before split).
46
+
47
+ ## Errors
48
+
49
+ ```typescript
50
+ try {
51
+ const value = await riskyCall()
52
+ return value
53
+ } catch (error) {
54
+ hilog.error(0x0000, 'Module', 'failed: %{public}s', error)
55
+ throw new Error('Safe user message')
56
+ }
57
+ ```
58
+
59
+ ## Immutability
60
+
61
+ Return new model instances — do not mutate shared `@ObservedV2` fields in place when updating UI state.
62
+
63
+ Depth: HarmonyOS references in project docs; mobile UX audits via `ui-design` skill when applicable.
@@ -0,0 +1,38 @@
1
+ ---
2
+ paths:
3
+ - "**/*.ets"
4
+ - "**/*.ts"
5
+ - "**/module.json5"
6
+ - "**/oh-package.json5"
7
+ ---
8
+ # HarmonyOS / ArkTS Hooks
9
+
10
+ > Builds on the shared rules in `../common/hooks.md`.
11
+
12
+ `EXONOUS_HOOK_PROFILE` / `EXONOUS_DISABLED_HOOKS` — async hvigor/ohpm steps usually `standard` or `strict` only.
13
+
14
+ ## Build
15
+
16
+ ```bash
17
+ hvigorw assembleHap -p product=default
18
+ hvigorw clean
19
+ ohpm install
20
+ ```
21
+
22
+ ## PostToolUse (standard/strict)
23
+
24
+ After `.ets`/`.ts` edits: `hvigorw assembleHap -p product=default` (surface last errors).
25
+
26
+ After `module.json5`: verify permissions/abilities.
27
+
28
+ After `oh-package.json5`: `ohpm install`.
29
+
30
+ ## Guard
31
+
32
+ Warn on V1 state decorators (`@State`, `@Prop`, `@Link`, …) — use **V2** (`@ComponentV2`, `@Local`, `@Param`, …).
33
+
34
+ ## Checklist
35
+
36
+ - HAP builds clean
37
+ - No `@ohos.router` in new code — use `Navigation` + `NavPathStack`
38
+ - Permissions declared; deps in oh-package; i18n strings + dark theme colors for new resources
@@ -0,0 +1,42 @@
1
+ ---
2
+ paths:
3
+ - "**/*.ets"
4
+ - "**/*.ts"
5
+ ---
6
+ # HarmonyOS / ArkTS Patterns
7
+
8
+ > Builds on the shared rules in `../common/patterns.md`.
9
+
10
+ ## State V2 only
11
+
12
+ Use `@ComponentV2`, `@Local`, `@Param`, `@Event`, `@Provider`/`@Consumer`, `@Monitor`, `@Computed`, `@ObservedV2`, `@Trace`. Do **not** use V1 `@State`/`@Prop`/`@Link`/`@Component`.
13
+
14
+ ## Routing
15
+
16
+ `Navigation` + `NavPathStack` — `pushPath`, `replacePath`, `pop`, `clear`; subpages in `NavDestination`. No legacy router module.
17
+
18
+ ## MVVM layout
19
+
20
+ ```
21
+ feature/
22
+ model/ @ObservedV2 data
23
+ viewmodel/ logic
24
+ view/ @ComponentV2 UI
25
+ service/ network/storage
26
+ ```
27
+
28
+ `build()` renders only; business rules in ViewModels.
29
+
30
+ ## Lists
31
+
32
+ `LazyForEach` + stable keys for large lists.
33
+
34
+ ## Animation
35
+
36
+ State-driven; prefer `transform`/`opacity`; avoid animating layout (`width`/`height`/`padding`/`margin`); `renderGroup(true)` for heavy subtrees.
37
+
38
+ ## Resources
39
+
40
+ UI strings/colors/sizes via `$r('app.*')` — no magic literals in widgets.
41
+
42
+ Depth: consult platform docs via `biblos` MCP for API drift.
@@ -0,0 +1,35 @@
1
+ ---
2
+ paths:
3
+ - "**/*.ets"
4
+ - "**/*.ts"
5
+ - "**/module.json5"
6
+ ---
7
+ # HarmonyOS / ArkTS Security
8
+
9
+ > Builds on the shared rules in `../common/security.md`.
10
+
11
+ ## Permissions
12
+
13
+ Declare in `module.json5` with user-visible `reason` strings; request runtime grants for sensitive APIs; check before call with graceful denial handling.
14
+
15
+ ## Secrets
16
+
17
+ No keys in source; non-sensitive endpoints via build profiles; sensitive material via HUKS/Keystore patterns — not Preferences.
18
+
19
+ ## Input
20
+
21
+ Validate before navigation (allowlisted deep-link paths); sanitize before display.
22
+
23
+ ## Network
24
+
25
+ HTTPS; cert validation; timeouts/retries; never log tokens or credentials.
26
+
27
+ ## Storage
28
+
29
+ Encrypt sensitive local data; clear on logout; classify data before choosing storage API.
30
+
31
+ ## Dependencies
32
+
33
+ Official ohpm registry; pin versions; review third-party updates.
34
+
35
+ Review: `security-review` skill / `exo-security` agent.
@@ -0,0 +1,39 @@
1
+ ---
2
+ paths:
3
+ - "**/*.ets"
4
+ - "**/*.ts"
5
+ - "**/ohosTest/**"
6
+ ---
7
+ # HarmonyOS / ArkTS Testing
8
+
9
+ > Builds on the shared rules in `../common/testing.md`.
10
+
11
+ ## Layout
12
+
13
+ Production under `src/main/ets/`; tests under `src/ohosTest/ets/test/` with `TestRunner` entry.
14
+
15
+ ## Run
16
+
17
+ ```bash
18
+ hvigorw testHap -p product=default
19
+ ```
20
+
21
+ Device UI tests via `@ohos.UiTest` + Hypium on hardware/emulator when required.
22
+
23
+ ## Unit style
24
+
25
+ Hypium `describe`/`it`/`expect` on ViewModels and services — assert initial state, mutations, empty/error inputs.
26
+
27
+ ## TDD loop
28
+
29
+ Red test in ohosTest → minimal main code → refactor → `hvigorw assembleHap` → device/emulator verify.
30
+
31
+ ## Coverage targets
32
+
33
+ ~80% on ViewModels, services, utilities; integration for API/DB; UI tests for login/navigation/submit flows; include permission denial and empty/network failure cases.
34
+
35
+ ## Practice
36
+
37
+ Independent tests; mock network/system APIs in unit layer; name `should_<behavior>_when_<condition>`; assert `@Trace` updates and `NavPathStack` flows without testing framework internals.
38
+
39
+ Workflow: `techne:quality` skill.
@@ -0,0 +1,6 @@
1
+ # Agent orchestration
2
+
3
+ Roster, tiers and report contract: `~/.claude/rules/nomos.md` § Agents. Multi-step delivery: `/deliver`.
4
+
5
+ - Complex feature → exo-pm / exo-cto · after code changes → exo-qa or `code-review` · sensitive surface → exo-security or `security-review`.
6
+ - Never finish while subagents still run — collect and merge first.
@@ -0,0 +1,15 @@
1
+ # Code review
2
+
3
+ Review after substantive edits and before merge on shared branches, auth/data changes, or API shifts.
4
+
5
+ Pre-review: CI green, conflicts resolved, up to date with target.
6
+
7
+ Checklist: readable code; functions ~<50 lines; files ~<800 lines; nesting ≤4; explicit errors; no secrets/debug logs; tests for new behavior (often ≥80% coverage).
8
+
9
+ Escalate to **exo-security** / `security-review` for auth, input, SQL, FS, external HTTP, crypto, payments.
10
+
11
+ Severity: CRITICAL blocks; HIGH should fix; MEDIUM/LOW as time allows.
12
+
13
+ Flow: diff → security → quality → tests → **exo-qa** / `code-review` skill.
14
+
15
+ See [testing.md](./testing.md), [security.md](./security.md).
@@ -0,0 +1,13 @@
1
+ # Coding style
2
+
3
+ Prefer immutable updates for shared state. KISS, DRY (real duplication only), YAGNI.
4
+
5
+ Organize by feature; ~200–400 lines typical, ~800 soft max for hand-written sources.
6
+
7
+ Validate at boundaries; schema tools when available; safe user messages, detailed server logs.
8
+
9
+ Naming: descriptive; booleans as predicates. Language folders override casing.
10
+
11
+ Avoid deep nesting, magic numbers, and oversized functions.
12
+
13
+ Done: small units, handled errors, no hardcoded secrets.
@@ -0,0 +1,5 @@
1
+ # Development workflow
2
+
3
+ Before git: reuse (**atlas**, **biblos**, registries) → plan (**exo-pm**/**exo-cto**, economical models) → TDD → review (**exo-qa**) → commit per [git-workflow.md](./git-workflow.md) → `/session-handoff`.
4
+
5
+ Use robust models only for implementation coding.
@@ -0,0 +1,30 @@
1
+ # Git workflow
2
+
3
+ ## Commits
4
+
5
+ ```text
6
+ <type>: <description>
7
+
8
+ <optional body>
9
+ ```
10
+
11
+ Types: `feat`, `fix`, `refactor`, `docs`, `test`, `chore`, `perf`, `ci`.
12
+
13
+ **Never** add `Co-Authored-By`, Cursor/AI attribution lines, or similar trailers.
14
+
15
+ **Never** bypass hooks (`--no-verify`, `--no-gpg-sign`, etc.) unless the user explicitly requests it in the current instruction.
16
+
17
+ **Never** force-push shared branches. **Never** auto-merge dependency bumps without human review.
18
+
19
+ Only commit when the user asks (or project harness authorizes via its commit skill/token).
20
+
21
+ ## Pull requests
22
+
23
+ 1. Inspect all commits since branching — not only HEAD.
24
+ 2. `git diff <base>...HEAD` for the full change set.
25
+ 3. Body: summary bullets + test plan checklist.
26
+ 4. First push: `git push -u origin <branch>`.
27
+
28
+ Cross-session progress: `/session-handoff`.
29
+
30
+ Implementation order before git: [development-workflow.md](./development-workflow.md).
@@ -0,0 +1,7 @@
1
+ # Harness hooks
2
+
3
+ Phases: PreToolUse (validate), PostToolUse (format/lint/typecheck), Stop (build/audit).
4
+
5
+ Controls: `EXONOUS_HOOK_PROFILE` (`minimal`|`standard`|`strict`); `EXONOUS_DISABLED_HOOKS` (comma-separated ids).
6
+
7
+ No blanket permission bypass. Use scoped allowed-tools when automating.
@@ -0,0 +1,3 @@
1
+ # Shared patterns
2
+
3
+ Start from vetted skeletons when possible. Repository interface for data access. API responses: success flag, data, error, optional pagination meta.
@@ -0,0 +1,3 @@
1
+ # Performance and context
2
+
3
+ Follow model tiers in [agents.md](./agents.md). Keep context headroom for multi-file work. Fix build failures incrementally with the smallest verifying command after each change.
@@ -0,0 +1,5 @@
1
+ # Security baseline
2
+
3
+ No secrets in repo; validate input; parameterized SQL; XSS/CSRF controls; server-side authz; rate limits; safe errors.
4
+
5
+ Secrets via env/secret manager. On finding: stop, **exo-security** / `security-review`, fix CRITICAL, rotate credentials, sweep similar code.
@@ -0,0 +1,3 @@
1
+ # Testing baseline
2
+
3
+ Often ≥80% unit+integration; E2E on critical paths. Red-green-refactor. AAA structure; behavior-named tests. **exo-qa** for strategy; stack rules for runners.
@@ -0,0 +1,31 @@
1
+ ---
2
+ paths:
3
+ - "**/*.cpp"
4
+ - "**/*.hpp"
5
+ - "**/*.cc"
6
+ - "**/*.hh"
7
+ - "**/*.cxx"
8
+ - "**/*.h"
9
+ - "**/CMakeLists.txt"
10
+ ---
11
+ # C++ Coding Style
12
+
13
+ > Builds on the shared rules in `../common/coding-style.md`.
14
+
15
+ ## Modern C++
16
+
17
+ Prefer C++17/20/23 over C idioms: `auto` when obvious, `constexpr`, structured bindings.
18
+
19
+ ## RAII
20
+
21
+ No manual `new`/`delete`; `unique_ptr` default ownership; `shared_ptr` only when sharing is real; `make_unique` / `make_shared`.
22
+
23
+ ## Naming
24
+
25
+ PascalCase types; snake_case or camelCase functions (match project); `kConstant` or `UPPER_SNAKE`; lowercase namespaces; trailing `_` or `m_` for members per repo rule.
26
+
27
+ ## Format
28
+
29
+ **clang-format** before commit.
30
+
31
+ Depth: `techne:cpp` skill.
@@ -0,0 +1,26 @@
1
+ ---
2
+ paths:
3
+ - "**/*.cpp"
4
+ - "**/*.hpp"
5
+ - "**/*.cc"
6
+ - "**/*.hh"
7
+ - "**/*.cxx"
8
+ - "**/*.h"
9
+ - "**/CMakeLists.txt"
10
+ ---
11
+ # C++ Hooks
12
+
13
+ > Builds on the shared rules in `../common/hooks.md`.
14
+
15
+ `EXONOUS_HOOK_PROFILE` / `EXONOUS_DISABLED_HOOKS` select pre-commit automation.
16
+
17
+ ## Local gate (standard/strict)
18
+
19
+ ```bash
20
+ clang-format --dry-run --Werror src/*.cpp src/*.hpp
21
+ clang-tidy src/*.cpp -- -std=c++17
22
+ cmake --build build
23
+ ctest --test-dir build --output-on-failure
24
+ ```
25
+
26
+ CI order: format → tidy → cppcheck → build → ctest (sanitizers on strict).
@@ -0,0 +1,31 @@
1
+ ---
2
+ paths:
3
+ - "**/*.cpp"
4
+ - "**/*.hpp"
5
+ - "**/*.cc"
6
+ - "**/*.hh"
7
+ - "**/*.cxx"
8
+ - "**/*.h"
9
+ - "**/CMakeLists.txt"
10
+ ---
11
+ # C++ Patterns
12
+
13
+ > Builds on the shared rules in `../common/patterns.md`.
14
+
15
+ ## RAII handles
16
+
17
+ Acquire in ctor, release in dtor; deleted copy/move when ownership is unique.
18
+
19
+ ## Rule of Zero / Five
20
+
21
+ Prefer zero special members; if you customize one, define all five.
22
+
23
+ ## Values
24
+
25
+ Small types by value; large by `const&`; return by value (RVO); move sinks.
26
+
27
+ ## Errors
28
+
29
+ Exceptions for exceptional paths; `optional` for absence; `expected` (C++23) or result types for expected failures.
30
+
31
+ Depth: `techne:cpp` skill.
@@ -0,0 +1,37 @@
1
+ ---
2
+ paths:
3
+ - "**/*.cpp"
4
+ - "**/*.hpp"
5
+ - "**/*.cc"
6
+ - "**/*.hh"
7
+ - "**/*.cxx"
8
+ - "**/*.h"
9
+ - "**/CMakeLists.txt"
10
+ ---
11
+ # C++ Security
12
+
13
+ > Builds on the shared rules in `../common/security.md`.
14
+
15
+ ## Memory
16
+
17
+ Smart pointers; `std::vector` / `std::array` not C arrays; no `malloc`/`free` in app code; avoid `reinterpret_cast`.
18
+
19
+ ## Strings
20
+
21
+ `std::string`, `.at()` when bounds matter; ban `strcpy`/`sprintf` — use safe formatters.
22
+
23
+ ## UB hygiene
24
+
25
+ Initialize variables; no signed overflow; no dangling/null deref.
26
+
27
+ ## CI sanitizers
28
+
29
+ ```bash
30
+ cmake -DCMAKE_CXX_FLAGS="-fsanitize=address,undefined" ..
31
+ ```
32
+
33
+ ## Static analysis
34
+
35
+ clang-tidy and cppcheck on touched translation units.
36
+
37
+ Depth: `techne:cpp` skill.
@@ -0,0 +1,31 @@
1
+ ---
2
+ paths:
3
+ - "**/*.cpp"
4
+ - "**/*.hpp"
5
+ - "**/*.cc"
6
+ - "**/*.hh"
7
+ - "**/*.cxx"
8
+ - "**/*.h"
9
+ - "**/CMakeLists.txt"
10
+ ---
11
+ # C++ Testing
12
+
13
+ > Builds on the shared rules in `../common/testing.md`.
14
+
15
+ ## Stack
16
+
17
+ GoogleTest + GoogleMock via CMake/CTest.
18
+
19
+ ```bash
20
+ cmake --build build && ctest --test-dir build --output-on-failure
21
+ ```
22
+
23
+ ## Coverage
24
+
25
+ Build with `--coverage`, run ctest, capture with lcov.
26
+
27
+ ## Sanitizers
28
+
29
+ Address + UB sanitizers in CI test jobs.
30
+
31
+ Depth: `techne:quality` skill for TDD loop; `techne:cpp` for patterns.
@@ -0,0 +1,30 @@
1
+ ---
2
+ paths:
3
+ - "**/*.cs"
4
+ - "**/*.csx"
5
+ ---
6
+ # C# Coding Style
7
+
8
+ > Builds on the shared rules in `../common/coding-style.md`.
9
+
10
+ ## Baseline
11
+
12
+ Current .NET conventions; nullable reference types on; explicit modifiers on public/internal API; one primary type per file.
13
+
14
+ ## Models
15
+
16
+ `record` / `record struct` for immutable DTOs; `class` for entities; interfaces at boundaries; no `dynamic` in app code.
17
+
18
+ ## Immutability
19
+
20
+ `init` accessors, constructor-only mutation, immutable collections for shared state; `with` for updates.
21
+
22
+ ## Async
23
+
24
+ `async`/`await` only — no `.Result`/`.Wait()`; thread `CancellationToken` through public async methods; log with structured properties; throw specific exceptions.
25
+
26
+ ## Format
27
+
28
+ `dotnet format`; tidy usings; expression bodies when still readable.
29
+
30
+ Depth: `techne:dotnet` skill.
@@ -0,0 +1,24 @@
1
+ ---
2
+ paths:
3
+ - "**/*.cs"
4
+ - "**/*.csx"
5
+ - "**/*.csproj"
6
+ - "**/*.sln"
7
+ - "**/Directory.Build.props"
8
+ - "**/Directory.Build.targets"
9
+ ---
10
+ # C# Hooks
11
+
12
+ > Builds on the shared rules in `../common/hooks.md`.
13
+
14
+ `EXONOUS_HOOK_PROFILE` / `EXONOUS_DISABLED_HOOKS`.
15
+
16
+ ## PostToolUse
17
+
18
+ - **dotnet format** on edited C#
19
+ - **dotnet build**
20
+ - **dotnet test --no-build** when behavior changed (standard/strict)
21
+
22
+ ## Stop
23
+
24
+ Strict profile: final **dotnet build** after wide edits; warn on touched `appsettings*.json` (secrets).
@@ -0,0 +1,28 @@
1
+ ---
2
+ paths:
3
+ - "**/*.cs"
4
+ - "**/*.csx"
5
+ ---
6
+ # C# Patterns
7
+
8
+ > Builds on the shared rules in `../common/patterns.md`.
9
+
10
+ ## API wrapper
11
+
12
+ ```csharp
13
+ public sealed record ApiResult<T>(bool Ok, T? Payload = default, string? Error = null);
14
+ ```
15
+
16
+ ## Repository
17
+
18
+ Async CRUD interface with `CancellationToken` on each method.
19
+
20
+ ## Options
21
+
22
+ Strongly typed `IOptions<T>` sections — no magic string keys scattered in code.
23
+
24
+ ## DI lifetimes
25
+
26
+ Singleton for stateless/shared infra; scoped per request; transient for cheap workers; split god-services instead of huge constructors.
27
+
28
+ Depth: `techne:dotnet` skill.