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,124 @@
1
+ ---
2
+ description: Code review — local uncommitted/staged changes or GitHub PR (pass PR number/URL for PR mode)
3
+ argument-hint: [pr-number | pr-url | blank for local review]
4
+ model: sonnet
5
+ ---
6
+
7
+ # Code Review
8
+
9
+ **Input**: $ARGUMENTS
10
+
11
+ Required by `exonous` `/commit-changes`. Run against the staged or branch diff before committing. Block the commit path if CRITICAL or HIGH findings remain unfixed.
12
+
13
+ ---
14
+
15
+ ## Mode Selection
16
+
17
+ If `$ARGUMENTS` contains a PR number, PR URL, or `--pr`:
18
+ → Jump to **PR Review Mode** below.
19
+
20
+ Otherwise:
21
+ → Use **Local Review Mode**.
22
+
23
+ ---
24
+
25
+ ## Local Review Mode
26
+
27
+ ### Phase 1 — GATHER
28
+
29
+ ```bash
30
+ git status --short
31
+ git diff --name-only HEAD
32
+ git diff --staged --name-only
33
+ ```
34
+
35
+ Prefer reviewing **staged** changes when present; otherwise review the full working-tree diff vs `HEAD`. If nothing changed, stop: "Nothing to review."
36
+
37
+ ### Phase 2 — REVIEW
38
+
39
+ Read each changed file (full file when practical; otherwise hunks + surrounding context). Check for:
40
+
41
+ **Security Issues (CRITICAL):**
42
+ - Hardcoded credentials, API keys, tokens
43
+ - SQL/command injection
44
+ - XSS / unsanitized HTML
45
+ - Missing input validation on trust boundaries
46
+ - Path traversal / unsafe file access
47
+ - Secrets in logs or error messages
48
+
49
+ **Correctness & Quality (HIGH):**
50
+ - Logic errors, null/edge cases, race conditions
51
+ - Missing error handling
52
+ - Broken TypeScript types / use of `any` where forbidden by project rules
53
+ - Debug leftovers (`console.log`, debugger)
54
+
55
+ **Best Practices (MEDIUM / LOW):**
56
+ - Missing tests for new business logic
57
+ - Unclear naming, deep nesting, dead code
58
+ - Accessibility issues on UI changes
59
+
60
+ ### Phase 3 — REPORT
61
+
62
+ Produce a compact report:
63
+
64
+ | Severity | Location (file:line) | Finding | Suggested fix |
65
+ |----------|----------------------|---------|---------------|
66
+
67
+ **Decision:**
68
+ - CRITICAL or HIGH → **BLOCK** — fix before `/commit-changes` continues
69
+ - Only MEDIUM/LOW → **PASS** with notes
70
+ - No findings → **PASS**
71
+
72
+ Never approve code with unresolved CRITICAL/HIGH security or correctness issues.
73
+
74
+ ---
75
+
76
+ ## PR Review Mode
77
+
78
+ ### Phase 1 — FETCH
79
+
80
+ | Input | Action |
81
+ |---|---|
82
+ | Number (e.g. `42`) | Use as PR number |
83
+ | URL (`github.com/.../pull/42`) | Extract PR number |
84
+ | Branch name | Find PR via `gh pr list --head <branch>` |
85
+
86
+ ```bash
87
+ gh pr view <NUMBER> --json number,title,body,author,baseRefName,headRefName,changedFiles,additions,deletions
88
+ gh pr diff <NUMBER>
89
+ ```
90
+
91
+ ### Phase 2 — REVIEW
92
+
93
+ Read changed files with surrounding context. Apply the same checklist as Local Review Mode, plus:
94
+
95
+ | Category | What to Check |
96
+ |---|---|
97
+ | **Pattern Compliance** | Matches project conventions |
98
+ | **Completeness** | Tests, docs, migrations |
99
+ | **Performance** | N+1, unbounded loops, large payloads |
100
+
101
+ ### Phase 3 — DECIDE & PUBLISH
102
+
103
+ | Condition | Decision |
104
+ |---|---|
105
+ | Zero CRITICAL/HIGH | **APPROVE** (or approve with comments) |
106
+ | Any HIGH or validation failures | **REQUEST CHANGES** |
107
+ | Any CRITICAL | **BLOCK** |
108
+
109
+ If `gh` is available, post with `gh pr review`. If not, report locally only and warn.
110
+
111
+ ### Phase 4 — OUTPUT
112
+
113
+ ```
114
+ PR #<NUMBER>: <TITLE>
115
+ Decision: <APPROVE|REQUEST_CHANGES|BLOCK>
116
+ Issues: <critical> critical, <high> high, <medium> medium, <low> low
117
+ ```
118
+
119
+ ---
120
+
121
+ ## Notes
122
+
123
+ - Prefer project rules in `CLAUDE.md`, `AGENTS.md`, and `.claude/rules/` when judging pattern compliance.
124
+ - For `/commit-changes`, Local Review Mode is the default and must run before `exonous token commit`.
@@ -0,0 +1,49 @@
1
+ ---
2
+ description: Commit the current changes with semantic commits, scan for leaks, do a quick review, then push.
3
+ model: sonnet
4
+ ---
5
+
6
+ Commit the current changes with semantic commits, scan for leaks, do a quick review, then push.
7
+
8
+ ## Gates
9
+
10
+ exonous gates `git commit`, `git push` and `gh pr create` in every gated AI tool (`exonous doctor` lists them), machine-wide:
11
+
12
+ ```
13
+ /commit-changes → /security-review → /code-review → exonous token commit → git commit (token: one commit of the staged tree, 15 min)
14
+ force-push or push to main/master → only on the user's explicit request → exonous token push → git push
15
+ /make-pr → ≤ 30 changed files → body at `exonous draft-path` → exonous validate-pr <file> → gh pr create --body-file <file>
16
+ ```
17
+
18
+ - Run each gated command **alone** (optionally after one `cd <dir> &&`): no `&&` chains, pipes, `;`, wrappers, `sh -c`, `-a`/`-i`/`-o`/`-p` or pathspecs on `git commit`.
19
+ - If the gate blocks you, read its reason, run `exonous workflow commit` (or `pr`), fix what it names, then retry. Never work around it.
20
+
21
+ Steps:
22
+ 1. Run `git status --short` and `git branch --show-current`. If there is nothing to commit and nothing unpushed, say so and stop.
23
+ 2. **Branch guard:** if the current branch is `main` or `master`, do NOT commit there. Create a new branch first with `git checkout -b <name>`, where `<name>` follows the established pattern `type/short-kebab-description` (type ∈ feat | fix | refactor | docs | chore | test, chosen from the dominant change). Derive the description from what actually changed.
24
+ 3. **Semantic commits:** group the changes into cohesive units and commit each with a Conventional Commits message **in English** — `type: short description`, subject ≤ 100 chars, body only when the "why" isn't obvious. Prefer several small cohesive commits over one big commit.
25
+ - Stage only the files for each unit (`git add <paths>`), never `git add -A` blindly.
26
+ - NEVER use `git add -f`/`--force` on `.gitignore`d paths — if a file won't stage, ask the user.
27
+ 4. **Authorship:** commits are authored solely by the repository's configured git identity (the current user). NEVER pass `--author`, and NEVER add `Co-Authored-By`, "Generated with", Claude, Cursor, or any AI/agent mention to the message or trailer.
28
+ 5. **Leak / sensitive-data scan (before push):** use the project's available tooling to confirm nothing sensitive is going out:
29
+ - Run the repo's secret scanner if present (e.g. `gitleaks git --staged`; the commit gate also runs it and blocks on findings or a staged `gitleaks:allow` — respect its result).
30
+ - **Required:** invoke `/security-review` on the staged (or branch) diff. Do not skip. If it reports CRITICAL or HIGH findings, fix them before continuing — do not mint the commit token yet.
31
+ - Verify no real `.env*` file is staged (only `*.env.example`/template files with placeholder values are allowed) and that no tokens, API keys, credentials, private certs, or PII appear in the diff.
32
+ - If anything leaks, STOP, unstage/amend as needed, and report — do not push.
33
+ 6. **Mandatory cleanup (before push):** in every modified file, remove logs and debuggers, and remove comments that don't state a relevant business rule. Comments that stay are one terse line; any comment longer than 2 lines gets cut to one (`nomos.md` § Engineering).
34
+ 7. **Quick code review (before push):** **Required:** invoke `/code-review` on the staged (or branch) diff. Do not skip. Fix CRITICAL/HIGH findings before continuing; surface MEDIUM/LOW to the user. Do not mint the commit token until `/code-review` passes (no unresolved CRITICAL/HIGH).
35
+ 8. **Mint the commit token:** stage the unit first, then run `exonous token commit`. It allows exactly one commit of what is staged right now and expires in 15 minutes; staging anything afterwards invalidates it. Only mint it **after** `/security-review` and `/code-review` have passed.
36
+ 9. Commit with a HEREDOC message, as its own command:
37
+ `git commit -m "$(cat <<'EOF'`
38
+ `Commit message here.`
39
+ `EOF`
40
+ `)"`
41
+ - Mint a fresh token before **each** commit in a multi-commit run (each commit consumes its token).
42
+ 10. **Push:** `git push -u origin <current-branch>` needs no token. Never force-push and never push directly to `main`/`master`: the gate blocks both. Only when the user explicitly asked for one of them, run `exonous token push` right before that push (it allows one push of the current HEAD).
43
+ 11. **Memory drift (warn, never block):** run `exonous project-memory validate` when a vault is configured; list drifted memories in the report so they get fixed.
44
+ 12. Report: branch used, the commits created (hashes + subjects), leak-scan result, review summary, and push status.
45
+
46
+ Notes:
47
+ - If `$ARGUMENTS` is provided, use it as a hint for the branch name and/or commit grouping/scope.
48
+ - Follow the user's global commit conventions in `~/.claude/CLAUDE.md` ("Git and organization").
49
+ - The exonous gate enforces this flow: `git commit` without a valid token for the staged tree is blocked. This is not optional — it is the actual enforcement mechanism.
@@ -0,0 +1,114 @@
1
+ ---
2
+ name: deliver
3
+ description: Delivery workflow — classify → discuss → plan → execute → verify → close, run with the 12 exo-* agents, plan memories in project-memory and compact JSON reports. Use for any multi-step change ("implement", "build", "ship", "execute the plan", "fix this issue end to end", "plan this feature"), to resume a saved plan, or to see open plans. Replaces the old phase-workflow commands.
4
+ ---
5
+
6
+ # deliver
7
+
8
+ One loop for every delivery, sized to the work. The session is the **coordinator**: it scopes packets, picks branches, judges gates and owns memory writes. It implements inline only when the work is Trivial.
9
+
10
+ ```bash
11
+ M="exonous project-memory"
12
+ ```
13
+
14
+ | Call | Does |
15
+ |---|---|
16
+ | `/deliver <request>` | full loop |
17
+ | `/deliver plan <request>` | stop after the plan memory is saved |
18
+ | `/deliver resume [plan-id]` | continue a saved plan (no id → `$M list --kind plan --status open`, ask which) |
19
+ | `/deliver status` | open plans + their next step, nothing else |
20
+
21
+ ## 0. Load context — cheap first
22
+
23
+ - `git status --short --branch`.
24
+ - `$M search "<topic>" --limit 5` for related plans/ADRs; `$M show` only the hits that change the work.
25
+ - Code locations: `atlas` (`search_graph` → `get_code_snippet`) or one `exo-researcher` navigator packet. Never pass agents a broad dump.
26
+
27
+ ## 1. Classify — state it before any agent runs
28
+
29
+ | Class | When | Runs |
30
+ |---|---|---|
31
+ | **Trivial** | ≤ 5 files, one domain, no shared flow, no boundary, no auth/input/secrets | inline in the main thread → verify → close. No agents. |
32
+ | **Standard** | multi-file or cross-domain, no boundary change | plan → implementer(s) → `exo-qa` |
33
+ | **Complex** | module boundary, data model, new dependency, shared flow, or security surface | `exo-cto` (record ADR) → plan → implementers → `exo-qa` ∥ `exo-security` ∥ `exo-designer` as gates apply |
34
+
35
+ Also state the **branch strategy**: on `main`/`master` ask before creating `type/short-description`; one branch for direct/sequential work; one worktree per editing lane (`isolation: "worktree"`) for parallel work.
36
+
37
+ ## 2. Discuss — only when something is genuinely ambiguous
38
+
39
+ Answer from code and memory first. Then ask one question at a time, each with a recommended answer. Record each decision that would be expensive to reverse as an `adr` as soon as the user settles it. Skip this step when the request is clear.
40
+
41
+ ## 3. Plan
42
+
43
+ - Trivial: a TodoWrite list, `step → verify: <check>`. No memory.
44
+ - Standard/Complex: `exo-pm` (Complex: after `exo-cto`) returns tasks with **owner agent, files, done-check, dependencies, parallel marks**. The plan must be self-contained — an executor with zero context of this session must succeed with it.
45
+ - Save it: `$M add plan --title "<goal>" --body-file <plan.md> --tag <area> --link file:<main path>`. `/deliver plan` stops here and prints the plan id.
46
+
47
+ ## 4. Execute
48
+
49
+ Pick the shape from real dependencies:
50
+
51
+ - **Direct** — one lane, one implementer chain on one branch.
52
+ - **Sequential** — tasks depend on earlier outputs; run lane by lane, gate between them.
53
+ - **Parallel** — independent lanes, no shared files; read `references/parallel.md` first.
54
+
55
+ Implementers by domain (opus): `exo-frontend`, `exo-backend` (default), `exo-mobile`, `exo-data-ai`, `exo-devops`, `exo-infra`. Independent agents go out in one message.
56
+
57
+ **Packet** (coordinator → agent), nothing else:
58
+
59
+ ```
60
+ Goal: <one action sentence>
61
+ Plan: <plan-id> · task <n> — <excerpt of that task only>
62
+ Branch/worktree: <name>
63
+ Files in scope: <paths> · Do not touch: <paths>
64
+ Done when: <runnable checks>
65
+ Context: <navigator block / ADR ids that matter>
66
+ ```
67
+
68
+ **Report** (agent → coordinator): first line `{"status":"done|partial|blocked","cause":"…","risks":["…"]}`, then files touched, evidence (command → result), findings `file:line — impact — fix`. The coordinator reads reports, not diffs.
69
+
70
+ ## 5. Verify and review
71
+
72
+ Gate agents fetch the diff themselves (`git diff <base>...HEAD`) — the packet names the base and the acceptance criteria.
73
+
74
+ | Gate | When |
75
+ |---|---|
76
+ | `exo-qa` | every Standard/Complex change; runs types, lint, affected tests, the changed path |
77
+ | `exo-security` | auth, input handling, secrets, dependencies, data exposure changed |
78
+ | `exo-cto` | boundaries, abstractions or shared flows changed |
79
+ | `exo-designer` | visible UI changed |
80
+
81
+ Trivial: run the checks yourself and quote the output.
82
+
83
+ **Revision loop:** findings go back to the **same** implementer with `SendMessage` (its context is intact — never respawn). Stop and surface to the user, writing the blocker into the plan memory, when:
84
+ - 2 revision rounds are spent, or
85
+ - a round makes no progress on the gate it targeted, or
86
+ - the same failure repeats with the same cause.
87
+
88
+ ## 6. Close
89
+
90
+ 1. Milestones: `$M update <plan-id> --status in-progress --body-file <updated plan>` so progress survives the session.
91
+ 2. Done and verified: record decisions as `adr` (with `--link`/`--evidence`); add a `doc` only when behavior genuinely needs explaining, written fresh. Then `$M remove <plan-id>`.
92
+ 3. Follow-up work found along the way → a new `plan`, never silent scope growth.
93
+ 4. `$M validate` when the change moved code that memories anchor to; fix what drifted.
94
+ 5. Commit/PR only if the user asked: `/commit-changes`, then `/make-pr`. Mid-task pause → `/session-handoff`.
95
+
96
+ ## Checklist
97
+
98
+ - [ ] Class and branch strategy stated before the first agent.
99
+ - [ ] Every agent got a packet, every report starts with the JSON line.
100
+ - [ ] Required gates ran, or were skipped with a stated reason.
101
+ - [ ] Revision rounds reused the same agent; stop conditions respected.
102
+ - [ ] Plan memory reflects reality: updated, removed, or holding the blocker.
103
+ - [ ] Real check output quoted — no claim without evidence.
104
+
105
+ ## Old workflow commands
106
+
107
+ | Was | Now |
108
+ |---|---|
109
+ | quick task | `/deliver <request>` (classifies as Trivial) |
110
+ | discuss / plan phase | `/deliver plan <request>` |
111
+ | execute phase | `/deliver resume <plan-id>` |
112
+ | progress | `/deliver status` |
113
+ | debug | `diagnose` skill or a `exo-qa` debug packet |
114
+ | pause / resume work | `/session-handoff` |
@@ -0,0 +1,37 @@
1
+ # Parallel lanes
2
+
3
+ Use only when lanes are independent: no shared mutable files, no lane needs another's output. Anything uncertain runs sequentially.
4
+
5
+ ## Before dispatch
6
+
7
+ Classify each task: **independent** (run now) · **sequential** (needs another lane's output) · **shared-file risk** (merge conflict likely) · **shared-domain risk** (decisions may clash even with different files). Parallelize only the independent ones.
8
+
9
+ State the lane map in the session — plan id + task numbers, worktree/branch, done-checks. Write it into the plan memory only if it must survive the session.
10
+
11
+ ## Lanes
12
+
13
+ - One implementer per lane, `isolation: "worktree"`, named so it stays addressable. Long lanes: `run_in_background: true`.
14
+ - Each packet is self-contained: the lane's task excerpt, owned files, do-not-touch areas, done-checks. Agents do not inherit this conversation.
15
+ - Lanes do not talk to each other; facts one lane needs from another travel through the coordinator's next packet.
16
+ - Follow-ups and revisions go to the same lane agent via `SendMessage`.
17
+
18
+ ## Safe to run in parallel
19
+
20
+ - navigator lookups on different areas
21
+ - implementation lanes on disjoint files
22
+ - `exo-security` dependency inventory while code is still moving
23
+ - reviews of a committed snapshot
24
+
25
+ ## Never in parallel
26
+
27
+ - two agents editing the same file
28
+ - reviewing code another lane is still changing
29
+ - declaring the plan done before every lane is merged and verified together
30
+
31
+ ## Merge
32
+
33
+ 1. Collect every lane report; any `blocked` → resolve or stop before merging.
34
+ 2. Merge lane branches one at a time (git is the coordinator's job).
35
+ 3. Conflicts in source → a packet to the implementer that owns those files, with both lanes' reports; the coordinator does not hand-edit.
36
+ 4. Run the gates of `SKILL.md` §5 once more on the merged result — `exo-qa` always, the others as they apply.
37
+ 5. Close per `SKILL.md` §6.
@@ -0,0 +1,140 @@
1
+ ---
2
+ name: doc
3
+ description: Acha o vault Obsidian de documentação do repositório atual e, com base no resumo da última sessão (ou na conversa atual), aponta o que precisa mudar na documentação e aplica o que o usuário aprovar, e fecha com commit e PR só da doc. Sem vault, alerta e sugere criar um. Genérica para qualquer projeto. Use quando o usuário pedir "/doc", "atualiza a doc", "o que mudar na documentação", "revisa o vault do projeto".
4
+ ---
5
+
6
+ # Doc
7
+
8
+ Mantém o vault Obsidian **do projeto** (dentro do repo, versionado com o código) em dia com o que a sessão mudou.
9
+
10
+ Esta skill não conhece nenhum projeto. O vault é qualquer pasta do repo que contenha `.obsidian/`. A parte mecânica usa o comando nativo `exonous doc` e git, sem depender de Node.
11
+
12
+ Não confunda os dois vaults:
13
+
14
+ | | Vault do projeto | Vault de sessões |
15
+ |---|---|---|
16
+ | Onde | dentro do repo (ex.: `docs/<Projeto>/`) | fora de qualquer repo, definido por `exonous vault`; configs legadas entram via `exonous vault consolidate` |
17
+ | O quê | regras, arquitetura, invariantes, armadilhas | o que aconteceu numa sessão |
18
+ | Esta skill | **lê e edita** | **só lê** a última nota, como fonte |
19
+
20
+ ## 1. Localizar
21
+
22
+ ```bash
23
+ exonous doc locate
24
+ ```
25
+
26
+ A saída é um JSON com `repo`, `vaults` (caminho, número de notas e a nota de entrada, como `_CONTEXTO` ou `README`) e `session` (última nota de sessão do repo). Trate pelo código de saída:
27
+
28
+ - **2 (fora de um repo git):** diga isso e pare.
29
+ - **3 (nenhum vault):**
30
+ - se `vaultsInMainCheckout` veio preenchido, você está num worktree cuja branch saiu antes de o vault existir. Não crie vault: diga isso e sugira atualizar a branch a partir da base (`git merge` ou `rebase`);
31
+ - senão, vá para a seção 5.
32
+ - **Mais de um vault:** um repo pode documentar a si mesmo e a um sistema vizinho. Escolha pelo assunto da sessão. Se não der para saber, pergunte com AskUserQuestion.
33
+
34
+ ## 2. Montar o resumo da sessão
35
+
36
+ Fonte, nesta ordem:
37
+
38
+ 1. **A conversa atual**, se nela houve mudança de código, decisão ou descoberta.
39
+ 2. **A nota em `session.note`**, quando a conversa atual não tem esse conteúdo (ex.: `/doc` logo depois de um `/clear`). Diga ao usuário qual nota usou e a data dela.
40
+ 3. Nenhuma das duas: use `git log --since=<data> --stat` e peça ao usuário o período.
41
+
42
+ Extraia só o que pode afetar a documentação:
43
+ - **decisões do usuário** (mudam regra de negócio ou de arquitetura);
44
+ - **comportamento alterado** (commits e PRs, com os arquivos tocados);
45
+ - **armadilhas** confirmadas;
46
+ - a seção **"Candidatos a promoção"** da nota, que já é uma lista pronta;
47
+ - **arquivos-chave** tocados.
48
+
49
+ Ignore status de tarefa, autorizações e passos de operação: isso é da sessão, não do projeto.
50
+
51
+ ## 3. Achar o que ficou desatualizado
52
+
53
+ 1. Leia a nota de entrada do vault (`vaults[].entry`) para entender a organização e as convenções: frontmatter, callouts, numeração, como cita código. Com `entry: null`, leia a lista de pastas da raiz do vault e as notas alteradas mais recentemente (`git log -5 --name-only -- "<vault>"`).
54
+ 2. Cruze as referências `arquivo:linha` das notas com o que mudou:
55
+ ```bash
56
+ exonous doc refs "<vault>" --since <git-ref ou AAAA-MM-DD do início da sessão>
57
+ ```
58
+ - `notasQueCitamArquivosAlterados`: notas que provavelmente descrevem código que mudou. O cruzamento inclui mudanças ainda não commitadas e arquivos novos. **Abra cada `arquivo:linha` citado e confira se a linha ainda diz o que a nota afirma**: estar fora de `quebradas` só prova que a linha existe, não que está certa.
59
+ - `quebradas`: referência a arquivo inexistente ou a uma linha além do fim do arquivo. Antes de propor correção, veja se o arquivo mora em **outro repo** que o vault também documenta; nesse caso não está quebrada.
60
+ - `ambiguas`: nome citado sem caminho que casa com mais de um arquivo (`candidatos`). Só mexa se a nota tocar o assunto da sessão.
61
+ - `ignoradasPorParecerHost`: `host:porta` e `ip:porta`, que não são arquivo. Não proponha corrigir.
62
+ 3. Memórias do projeto (`adr`/`plan`/`doc` do `project-memory`), se a skill existir: `exonous project-memory validate` aponta evidência que mudou de lugar (`moved`) ou de conteúdo (`drift`) e links que não resolvem. Inclua esses itens nas propostas.
63
+ 4. Procure no vault com `exonous project-memory search "<termos>"` (ou Grep, sem a skill) os termos do resumo: nomes de função, rota, tabela, flag, decisão. Assim aparecem as notas que falam do assunto sem citar arquivo.
64
+
65
+ ## 4. Propor, confirmar, aplicar
66
+
67
+ **Verifique no código antes de propor.** Toda afirmação nova ou corrigida precisa de `arquivo:linha` conferido nesta sessão. O que não der para confirmar entra marcado como não verificado, no padrão do vault (ex.: `> [!todo] Não verificado`), nunca como fato.
68
+
69
+ Mostre a proposta numa tabela, a mais importante primeiro:
70
+
71
+ | # | Nota | Mudança | Por quê (evidência) |
72
+ |---|---|---|---|
73
+ | 1 | `<nota>` (exemplo) | adicionar a regra N+1: ... | decisão "..." + `src/x.ts:40` |
74
+
75
+ Pergunte o que aplicar com AskUserQuestion: **"Aplicar todas"**, **"Escolher por número"** ou **"Nenhuma"**. Na escolha por número, peça os números. Sem AskUserQuestion, faça a mesma pergunta em texto e espere a resposta: não aplique nada sem ela.
76
+
77
+ Antes de editar, prepare a branch (seção 6, passo 1).
78
+
79
+ Ao aplicar:
80
+ - Siga as convenções do vault: idioma, frontmatter, callouts, `[[wikilinks]]` entre notas do **próprio** vault e a numeração existente (continue a sequência, não renumere).
81
+ - Se o vault usa um campo de data de atualização no frontmatter, atualize-o nas notas tocadas.
82
+ - Corrija referências `arquivo:linha` que ficaram erradas nas notas que você editar.
83
+ - Nota nova só quando nenhuma existente cobre o assunto; ligue-a na nota de entrada.
84
+ - Nunca copie segredo, token, credencial ou dado de cliente para o vault. Cite o nome da env var ou do secret.
85
+ - Nunca grave nota de sessão no vault do projeto.
86
+ - Depois de aplicar, siga a seção 6: commit e PR fazem parte do `/doc`.
87
+
88
+ Se a proposta usou "Candidatos a promoção" de uma nota de sessão, acrescente ao item nessa nota ` — promovido em AAAA-MM-DD para <caminho>`. É a única escrita permitida no vault de sessões.
89
+
90
+ Nada a mudar: diga isso em uma linha e cite o que foi conferido (quais notas, qual intervalo do git).
91
+
92
+ ## 5. Sem vault
93
+
94
+ Alerte o usuário:
95
+
96
+ > Este repositório não tem vault Obsidian de documentação. Sem ele, decisões e armadilhas descobertas nas sessões não ficam registradas junto do código.
97
+
98
+ Este vault é o do projeto, não o vault central do exonous (`exonous vault`, que guarda sessões e memória): não use um no lugar do outro.
99
+
100
+ Pergunte com AskUserQuestion se quer criar agora. Se não quiser, pare. Se quiser:
101
+
102
+ 1. Proponha o local `docs/<Nome-Do-Repo>/`, ou use outro que o usuário indicar.
103
+ 2. Proponha a estrutura mínima abaixo. Nomes de pasta, de arquivo e o idioma são sugestão: confirme com o usuário ou siga o idioma do repo.
104
+ ```
105
+ docs/<Nome>/
106
+ ├── .obsidian/app.json {}
107
+ ├── .gitignore .obsidian/workspace*.json
108
+ ├── 00 - Navegação/_CONTEXTO.md
109
+ └── 01 - Validação/
110
+ ├── _INVARIANTES.md
111
+ └── _EDGE-CASES.md
112
+ ```
113
+ 3. `_CONTEXTO.md`: o que o projeto é, stack, tabela "área do código → o que ler antes de mexer" e as convenções do vault. Leia antes o README, o CLAUDE.md/AGENTS.md e a estrutura de pastas. Não invente: o que não der para confirmar fica marcado como não verificado.
114
+ 4. `_INVARIANTES.md` (regras que não podem quebrar, `I-01`…) e `_EDGE-CASES.md` (comportamentos contra-intuitivos, `EC-01`…): comece com o que a sessão atual confirmou, cada item com `arquivo:linha`. Se não houver nada confirmado, deixe só o cabeçalho e a explicação do formato.
115
+ 5. Mostre a árvore criada e siga a seção 6.
116
+
117
+ Frontmatter mínimo de cada nota:
118
+
119
+ ```yaml
120
+ ---
121
+ title: <título>
122
+ tags: [<área>]
123
+ atualizado: AAAA-MM-DD
124
+ ---
125
+ ```
126
+
127
+ ## 6. Commit e PR
128
+
129
+ A aprovação da seção 4 ("Aplicar todas" ou os números escolhidos) já autoriza commit e PR **só da doc**. Não pergunte de novo.
130
+
131
+ 1. **Branch, antes de editar.** Base: `develop` se `git ls-remote --exit-code --heads origin develop` responder; senão a branch padrão (`gh repo view --json defaultBranchRef -q .defaultBranchRef.name`). Crie `docs/<assunto-curto>` a partir de `origin/<base>` (`git fetch origin <base>` e `git checkout -b docs/<assunto> origin/<base>`) quando qualquer um destes valer:
132
+ - a branch atual é `main`, `master` ou a própria base;
133
+ - a PR da branch atual já foi mergeada ou fechada (`gh pr list --head <branch> --state all --json state`);
134
+ - a branch atual é de outro assunto e tem mudanças que não são desta doc.
135
+ Se a troca de branch falhar por mudança local, pare e diga qual arquivo bloqueou. Não use `stash` nem `reset` sem pedir.
136
+ 2. **Stage só o que você editou no vault** (e a nota de entrada, se ligou nota nova): `git add <caminhos>`. Nunca `git add -A`. O que não é desta doc fica de fora.
137
+ 3. **Commit:** rode `/commit-changes` (ou o fluxo de commit do projeto, conforme CLAUDE.md/AGENTS.md). Um commit `docs(...)`, no idioma de commit do projeto.
138
+ 4. **PR:** rode `/make-pr` com a base do passo 1 explícita. Se a sessão tratou de uma issue, referencie no corpo ("Relacionada a #N", nunca `Closes`) e, se o projeto pede (board no CLAUDE.md), comente o link da PR na issue.
139
+ 5. **Sem skill de commit ou PR no ambiente:** pare depois do passo 2, liste os arquivos e diga o que falta.
140
+ 6. No fim, mostre a URL da PR, a branch e os arquivos do commit.