@r1z4x/tezgah 1.9.2 → 1.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (445) hide show
  1. package/CHANGELOG.md +415 -1
  2. package/MANIFEST +404 -144
  3. package/README.de.md +1 -1
  4. package/README.es.md +1 -1
  5. package/README.fr.md +1 -1
  6. package/README.md +5 -4
  7. package/README.tr.md +1 -1
  8. package/bin/codegen +5 -2
  9. package/bin/tezgah-design +288 -1
  10. package/bin/tezgah-docs +1 -1
  11. package/bin/tezgah-doctor +39 -2
  12. package/bin/tezgah-import-ai-research +26 -12
  13. package/bin/tezgah-ocr-review +296 -0
  14. package/bin/tezgah-research +255 -44
  15. package/bin/tezgah-review-quote +185 -0
  16. package/bin/tezgah-setup +1365 -55
  17. package/bin/tezgah-skill +1 -1
  18. package/bin/tezgah-status +201 -3
  19. package/bin/tezgah-task +258 -20
  20. package/commands/adhd.md +2 -2
  21. package/commands/ponytail.md +4 -4
  22. package/docs/architecture.md +2 -2
  23. package/docs/citations-baseline.json +3 -3
  24. package/docs/clarity-baseline.json +11 -5
  25. package/docs/contract.md +91 -43
  26. package/docs/environment.md +5 -2
  27. package/docs/evidence.md +109 -17
  28. package/docs/feature-audit.md +2 -2
  29. package/docs/gate.md +60 -33
  30. package/docs/glossary.md +6 -3
  31. package/docs/hosts.md +313 -17
  32. package/docs/index.json +34 -8
  33. package/docs/judge.md +4 -2
  34. package/docs/layers.md +4 -4
  35. package/docs/models.md +37 -9
  36. package/docs/operations.md +141 -5
  37. package/docs/research.md +815 -8
  38. package/docs/skills.md +137 -13
  39. package/docs/status-line.md +121 -1
  40. package/docs/testing.md +3 -1
  41. package/hooks/hooks.json +2 -2
  42. package/hooks/lang/en.json +21 -0
  43. package/hooks/lang/tr.json +22 -1
  44. package/hooks/projects-stop.py +2 -1
  45. package/hooks/tezgah_agents.py +65 -25
  46. package/hooks/tezgah_apps.py +18 -0
  47. package/hooks/tezgah_attest.py +79 -10
  48. package/hooks/tezgah_components.py +4 -0
  49. package/hooks/tezgah_context.py +207 -55
  50. package/hooks/tezgah_extension.py +337 -0
  51. package/hooks/tezgah_gate.py +267 -79
  52. package/hooks/tezgah_integrity.py +864 -143
  53. package/hooks/tezgah_judge.py +6 -4
  54. package/hooks/tezgah_models.py +59 -19
  55. package/hooks/tezgah_orca.py +1 -1
  56. package/hooks/tezgah_paths.py +145 -8
  57. package/hooks/tezgah_policy.py +128 -57
  58. package/hooks/tezgah_rank.py +9 -6
  59. package/hooks/tezgah_replay.py +12 -6
  60. package/hooks/tezgah_research.py +1414 -76
  61. package/hooks/tezgah_research_capture.py +1544 -0
  62. package/hooks/tezgah_research_evidence.py +842 -0
  63. package/hooks/tezgah_research_stats.py +258 -0
  64. package/hooks/tezgah_skill_pick.py +408 -106
  65. package/hooks/tezgah_stack.py +236 -1
  66. package/hooks/tezgah_stopspec.py +8 -1
  67. package/hooks/tezgah_task.py +14 -5
  68. package/hooks/tezgah_taste_ledger.py +1 -1
  69. package/hosts/amp/hook.py +217 -0
  70. package/hosts/amp/tezgah-plugin.ts.in +386 -0
  71. package/hosts/antigravity/hook.py +255 -0
  72. package/hosts/codex/hook.py +2 -1
  73. package/hosts/commandcode/hook.py +239 -0
  74. package/hosts/copilot/hook.py +284 -0
  75. package/hosts/cursor/hook.py +31 -3
  76. package/hosts/droid/hook.py +259 -0
  77. package/hosts/dsh/hooks.json +1 -1
  78. package/hosts/gemini/hook.py +213 -0
  79. package/hosts/goose/hook.py +145 -0
  80. package/hosts/omp/hook.py +4 -1
  81. package/hosts/omp/tezgah-hook.ts.in +30 -7
  82. package/hosts/opencode/plugins/tezgah.js +309 -48
  83. package/hosts/opencode/tui/cli/tui.tsx +100 -0
  84. package/hosts/opencode/tui/tezgah-tui.tsx +2 -1
  85. package/hosts/qwen/hook.py +206 -0
  86. package/output-styles/tezgah.md +20 -15
  87. package/package.json +1 -1
  88. package/skills/ai-research/SKILL.md +21 -14
  89. package/skills/ai-research/SOURCE +7 -5
  90. package/skills/ai-research/index/1-frame.md +6 -6
  91. package/skills/ai-research/index/2-data.md +9 -9
  92. package/skills/ai-research/index/3-train.md +36 -36
  93. package/skills/ai-research/index/4-measure.md +13 -13
  94. package/skills/ai-research/index/5-run.md +11 -11
  95. package/skills/ai-research/index/6-write.md +23 -23
  96. package/skills/ai-research/library.json +104 -104
  97. package/skills/analyze-app/SKILL.md +17 -12
  98. package/skills/design-contract/SKILL.md +42 -7
  99. package/skills/design-contract/data-views.md +2 -2
  100. package/skills/design-library/EVALS.md +1 -1
  101. package/skills/design-library/INDEX.md +39 -39
  102. package/skills/design-library/SKILL.md +19 -13
  103. package/skills/design-library/SOURCE +45 -43
  104. package/skills/feature-audit/SKILL.md +20 -14
  105. package/skills/hallmark/LICENSE +21 -0
  106. package/skills/hallmark/SKILL.md +154 -0
  107. package/skills/hallmark/SOURCE +207 -0
  108. package/skills/hallmark/agents/openai.yaml +13 -0
  109. package/skills/hallmark/references/anatomy.md +71 -0
  110. package/skills/hallmark/references/brand-truth.md +40 -0
  111. package/skills/hallmark/references/comp.md +104 -0
  112. package/skills/hallmark/references/craft.md +116 -0
  113. package/skills/hallmark/references/dark-mode.md +49 -0
  114. package/skills/hallmark/references/data-viz.md +48 -0
  115. package/skills/hallmark/references/design-md.md +53 -0
  116. package/skills/hallmark/references/direction.md +52 -0
  117. package/skills/hallmark/references/export-formats.md +80 -0
  118. package/skills/hallmark/references/flow.md +131 -0
  119. package/skills/hallmark/references/fonts.md +58 -0
  120. package/skills/hallmark/references/gates.md +243 -0
  121. package/skills/hallmark/references/genres/atmospheric.md +24 -0
  122. package/skills/hallmark/references/genres/editorial.md +24 -0
  123. package/skills/hallmark/references/genres/modern-minimal.md +24 -0
  124. package/skills/hallmark/references/genres/playful.md +24 -0
  125. package/skills/hallmark/references/imagery.md +99 -0
  126. package/skills/hallmark/references/interaction-and-states.md +89 -0
  127. package/skills/hallmark/references/layout.md +104 -0
  128. package/skills/hallmark/references/macrostructures/01-bento-grid.md +21 -0
  129. package/skills/hallmark/references/macrostructures/02-long-document.md +35 -0
  130. package/skills/hallmark/references/macrostructures/03-marquee-hero.md +21 -0
  131. package/skills/hallmark/references/macrostructures/04-stat-led.md +21 -0
  132. package/skills/hallmark/references/macrostructures/05-workbench.md +21 -0
  133. package/skills/hallmark/references/macrostructures/06-conversational-faq.md +28 -0
  134. package/skills/hallmark/references/macrostructures/07-manifesto.md +28 -0
  135. package/skills/hallmark/references/macrostructures/08-photographic.md +21 -0
  136. package/skills/hallmark/references/macrostructures/09-quote-led.md +21 -0
  137. package/skills/hallmark/references/macrostructures/10-specimen.md +21 -0
  138. package/skills/hallmark/references/macrostructures/11-catalogue.md +21 -0
  139. package/skills/hallmark/references/macrostructures/12-letter.md +21 -0
  140. package/skills/hallmark/references/macrostructures/13-index-first.md +21 -0
  141. package/skills/hallmark/references/macrostructures/14-narrative-workflow.md +21 -0
  142. package/skills/hallmark/references/macrostructures/15-split-studio.md +21 -0
  143. package/skills/hallmark/references/macrostructures/16-feature-stack.md +23 -0
  144. package/skills/hallmark/references/macrostructures/17-type-specimen.md +19 -0
  145. package/skills/hallmark/references/macrostructures/18-portfolio-grid.md +21 -0
  146. package/skills/hallmark/references/macrostructures/19-map-diagram.md +21 -0
  147. package/skills/hallmark/references/macrostructures/20-ecosystem-index.md +19 -0
  148. package/skills/hallmark/references/macrostructures/21-component-playground.md +21 -0
  149. package/skills/hallmark/references/macrostructures.md +119 -0
  150. package/skills/hallmark/references/microinteractions.md +80 -0
  151. package/skills/hallmark/references/patterns.md +202 -0
  152. package/skills/hallmark/references/redesign.md +88 -0
  153. package/skills/hallmark/references/responsive.md +46 -0
  154. package/skills/hallmark/references/review-finish.md +19 -0
  155. package/skills/hallmark/references/review-hero.md +20 -0
  156. package/skills/hallmark/references/scroll-choreography.md +110 -0
  157. package/skills/hallmark/references/texture.md +90 -0
  158. package/skills/hallmark/references/themes/README.md +58 -0
  159. package/skills/hallmark/references/themes/almanac.jpg +0 -0
  160. package/skills/hallmark/references/themes/almanac.md +103 -0
  161. package/skills/hallmark/references/themes/arcade.jpg +0 -0
  162. package/skills/hallmark/references/themes/arcade.md +102 -0
  163. package/skills/hallmark/references/themes/atelier.jpg +0 -0
  164. package/skills/hallmark/references/themes/atelier.md +98 -0
  165. package/skills/hallmark/references/themes/bloom.jpg +0 -0
  166. package/skills/hallmark/references/themes/bloom.md +102 -0
  167. package/skills/hallmark/references/themes/blueprint.jpg +0 -0
  168. package/skills/hallmark/references/themes/blueprint.md +103 -0
  169. package/skills/hallmark/references/themes/broadside.jpg +0 -0
  170. package/skills/hallmark/references/themes/broadside.md +108 -0
  171. package/skills/hallmark/references/themes/brutal.jpg +0 -0
  172. package/skills/hallmark/references/themes/brutal.md +95 -0
  173. package/skills/hallmark/references/themes/carnival.jpg +0 -0
  174. package/skills/hallmark/references/themes/carnival.md +104 -0
  175. package/skills/hallmark/references/themes/cobalt.jpg +0 -0
  176. package/skills/hallmark/references/themes/cobalt.md +101 -0
  177. package/skills/hallmark/references/themes/console.jpg +0 -0
  178. package/skills/hallmark/references/themes/console.md +99 -0
  179. package/skills/hallmark/references/themes/coral.jpg +0 -0
  180. package/skills/hallmark/references/themes/coral.md +102 -0
  181. package/skills/hallmark/references/themes/darkroom.jpg +0 -0
  182. package/skills/hallmark/references/themes/darkroom.md +99 -0
  183. package/skills/hallmark/references/themes/dose.jpg +0 -0
  184. package/skills/hallmark/references/themes/dose.md +98 -0
  185. package/skills/hallmark/references/themes/dusk.jpg +0 -0
  186. package/skills/hallmark/references/themes/dusk.md +105 -0
  187. package/skills/hallmark/references/themes/editorial.jpg +0 -0
  188. package/skills/hallmark/references/themes/editorial.md +97 -0
  189. package/skills/hallmark/references/themes/formwork.jpg +0 -0
  190. package/skills/hallmark/references/themes/formwork.md +107 -0
  191. package/skills/hallmark/references/themes/furrow.jpg +0 -0
  192. package/skills/hallmark/references/themes/furrow.md +98 -0
  193. package/skills/hallmark/references/themes/garden.jpg +0 -0
  194. package/skills/hallmark/references/themes/garden.md +97 -0
  195. package/skills/hallmark/references/themes/grid.jpg +0 -0
  196. package/skills/hallmark/references/themes/grid.md +101 -0
  197. package/skills/hallmark/references/themes/halftone.jpg +0 -0
  198. package/skills/hallmark/references/themes/halftone.md +106 -0
  199. package/skills/hallmark/references/themes/hedgerow.jpg +0 -0
  200. package/skills/hallmark/references/themes/hedgerow.md +104 -0
  201. package/skills/hallmark/references/themes/hum.jpg +0 -0
  202. package/skills/hallmark/references/themes/hum.md +99 -0
  203. package/skills/hallmark/references/themes/index.json +2191 -0
  204. package/skills/hallmark/references/themes/ink.jpg +0 -0
  205. package/skills/hallmark/references/themes/ink.md +106 -0
  206. package/skills/hallmark/references/themes/kiln.jpg +0 -0
  207. package/skills/hallmark/references/themes/kiln.md +108 -0
  208. package/skills/hallmark/references/themes/loom.jpg +0 -0
  209. package/skills/hallmark/references/themes/loom.md +106 -0
  210. package/skills/hallmark/references/themes/lumen.jpg +0 -0
  211. package/skills/hallmark/references/themes/lumen.md +103 -0
  212. package/skills/hallmark/references/themes/manifesto.jpg +0 -0
  213. package/skills/hallmark/references/themes/manifesto.md +101 -0
  214. package/skills/hallmark/references/themes/midnight.jpg +0 -0
  215. package/skills/hallmark/references/themes/midnight.md +97 -0
  216. package/skills/hallmark/references/themes/newsprint.jpg +0 -0
  217. package/skills/hallmark/references/themes/newsprint.md +102 -0
  218. package/skills/hallmark/references/themes/overprint.jpg +0 -0
  219. package/skills/hallmark/references/themes/overprint.md +101 -0
  220. package/skills/hallmark/references/themes/pasteup.jpg +0 -0
  221. package/skills/hallmark/references/themes/pasteup.md +100 -0
  222. package/skills/hallmark/references/themes/piste.jpg +0 -0
  223. package/skills/hallmark/references/themes/piste.md +99 -0
  224. package/skills/hallmark/references/themes/ribbon.jpg +0 -0
  225. package/skills/hallmark/references/themes/ribbon.md +106 -0
  226. package/skills/hallmark/references/themes/rim.jpg +0 -0
  227. package/skills/hallmark/references/themes/rim.md +96 -0
  228. package/skills/hallmark/references/themes/riso.jpg +0 -0
  229. package/skills/hallmark/references/themes/riso.md +98 -0
  230. package/skills/hallmark/references/themes/solstice.jpg +0 -0
  231. package/skills/hallmark/references/themes/solstice.md +104 -0
  232. package/skills/hallmark/references/themes/specimen.jpg +0 -0
  233. package/skills/hallmark/references/themes/specimen.md +100 -0
  234. package/skills/hallmark/references/themes/spore.jpg +0 -0
  235. package/skills/hallmark/references/themes/spore.md +104 -0
  236. package/skills/hallmark/references/themes/sport.jpg +0 -0
  237. package/skills/hallmark/references/themes/sport.md +101 -0
  238. package/skills/hallmark/references/themes/squeeze.jpg +0 -0
  239. package/skills/hallmark/references/themes/squeeze.md +99 -0
  240. package/skills/hallmark/references/themes/sticker.jpg +0 -0
  241. package/skills/hallmark/references/themes/sticker.md +106 -0
  242. package/skills/hallmark/references/themes/studio.jpg +0 -0
  243. package/skills/hallmark/references/themes/studio.md +99 -0
  244. package/skills/hallmark/references/themes/terminal.jpg +0 -0
  245. package/skills/hallmark/references/themes/terminal.md +96 -0
  246. package/skills/hallmark/references/themes/terrazzo.jpg +0 -0
  247. package/skills/hallmark/references/themes/terrazzo.md +106 -0
  248. package/skills/hallmark/references/themes/ultraviolet.jpg +0 -0
  249. package/skills/hallmark/references/themes/ultraviolet.md +106 -0
  250. package/skills/hallmark/references/themes/vellum.jpg +0 -0
  251. package/skills/hallmark/references/themes/vellum.md +105 -0
  252. package/skills/hallmark/references/themes/wayfind.jpg +0 -0
  253. package/skills/hallmark/references/themes/wayfind.md +105 -0
  254. package/skills/hallmark/references/themes/werkstatt.jpg +0 -0
  255. package/skills/hallmark/references/themes/werkstatt.md +105 -0
  256. package/skills/hallmark/scripts/capture.mjs +125 -0
  257. package/skills/hallmark/scripts/fixtures/exemplars/atmospheric.html +324 -0
  258. package/skills/hallmark/scripts/fixtures/exemplars/editorial.html +363 -0
  259. package/skills/hallmark/scripts/fixtures/exemplars/modern-minimal.html +527 -0
  260. package/skills/hallmark/scripts/fixtures/exemplars/playful.html +353 -0
  261. package/skills/hallmark/scripts/fixtures/eyebrow-fail/index.html +118 -0
  262. package/skills/hallmark/scripts/fixtures/eyebrow-pass/index.html +137 -0
  263. package/skills/hallmark/scripts/fixtures/kept/after.html +27 -0
  264. package/skills/hallmark/scripts/fixtures/kept/before.html +26 -0
  265. package/skills/hallmark/scripts/fixtures/slopped.html +145 -0
  266. package/skills/hallmark/scripts/fixtures/tailwind-fail/Feature.vue +14 -0
  267. package/skills/hallmark/scripts/fixtures/tailwind-fail/Hero.tsx +33 -0
  268. package/skills/hallmark/scripts/fixtures/tailwind-fail/index.html +74 -0
  269. package/skills/hallmark/scripts/fixtures/tailwind-fail/style.css +6 -0
  270. package/skills/hallmark/scripts/fixtures/tailwind-pass/Hero.tsx +33 -0
  271. package/skills/hallmark/scripts/fixtures/tailwind-pass/index.html +57 -0
  272. package/skills/hallmark/scripts/fixtures/tailwind-pass/style.css +15 -0
  273. package/skills/hallmark/scripts/fixtures/waiver/index.html +54 -0
  274. package/skills/hallmark/scripts/imagegen.mjs +85 -0
  275. package/skills/hallmark/scripts/install-hook.mjs +70 -0
  276. package/skills/hallmark/scripts/install.mjs +141 -0
  277. package/skills/hallmark/scripts/lint-hook.mjs +49 -0
  278. package/skills/hallmark/scripts/photos.json +1 -0
  279. package/skills/hallmark/scripts/picture.mjs +71 -0
  280. package/skills/hallmark/scripts/refcheck.mjs +352 -0
  281. package/skills/hallmark/scripts/sloplint-render.mjs +1252 -0
  282. package/skills/hallmark/scripts/sloplint.mjs +4422 -0
  283. package/skills/hallmark/scripts/theme.mjs +650 -0
  284. package/skills/harness/SKILL.md +17 -8
  285. package/skills/i-have-adhd/SKILL.md +32 -12
  286. package/skills/no-ai-slop/SKILL.md +15 -1
  287. package/skills/plan-add/SKILL.md +38 -27
  288. package/skills/plan-status/SKILL.md +13 -7
  289. package/skills/plan-sync/SKILL.md +18 -12
  290. package/skills/pm-frameworks/SKILL.md +19 -10
  291. package/skills/pm-frameworks/SOURCE +7 -5
  292. package/skills/ponytail/SKILL.md +19 -14
  293. package/skills/product-analysis/SKILL.md +22 -18
  294. package/skills/product-flow/SKILL.md +14 -9
  295. package/skills/research/SKILL.md +97 -48
  296. package/skills/rl-env/SKILL.md +25 -13
  297. package/skills/rl-env/SOURCE +8 -6
  298. package/skills/tezgah-contract/SKILL.md +65 -47
  299. package/statusline.py +20 -9
  300. package/workflows/graph-review.js +14 -2
  301. package/bin/tezgah-skill.py +0 -59
  302. /package/skills/ai-research/0-autoresearch-skill/{SKILL.md → ENTRY.md} +0 -0
  303. /package/skills/ai-research/01-model-architecture/litgpt/{SKILL.md → ENTRY.md} +0 -0
  304. /package/skills/ai-research/01-model-architecture/mamba/{SKILL.md → ENTRY.md} +0 -0
  305. /package/skills/ai-research/01-model-architecture/nanogpt/{SKILL.md → ENTRY.md} +0 -0
  306. /package/skills/ai-research/01-model-architecture/rwkv/{SKILL.md → ENTRY.md} +0 -0
  307. /package/skills/ai-research/01-model-architecture/torchtitan/{SKILL.md → ENTRY.md} +0 -0
  308. /package/skills/ai-research/02-tokenization/huggingface-tokenizers/{SKILL.md → ENTRY.md} +0 -0
  309. /package/skills/ai-research/02-tokenization/sentencepiece/{SKILL.md → ENTRY.md} +0 -0
  310. /package/skills/ai-research/03-fine-tuning/axolotl/{SKILL.md → ENTRY.md} +0 -0
  311. /package/skills/ai-research/03-fine-tuning/llama-factory/{SKILL.md → ENTRY.md} +0 -0
  312. /package/skills/ai-research/03-fine-tuning/peft/{SKILL.md → ENTRY.md} +0 -0
  313. /package/skills/ai-research/03-fine-tuning/unsloth/{SKILL.md → ENTRY.md} +0 -0
  314. /package/skills/ai-research/04-mechanistic-interpretability/nnsight/{SKILL.md → ENTRY.md} +0 -0
  315. /package/skills/ai-research/04-mechanistic-interpretability/pyvene/{SKILL.md → ENTRY.md} +0 -0
  316. /package/skills/ai-research/04-mechanistic-interpretability/saelens/{SKILL.md → ENTRY.md} +0 -0
  317. /package/skills/ai-research/04-mechanistic-interpretability/transformer-lens/{SKILL.md → ENTRY.md} +0 -0
  318. /package/skills/ai-research/05-data-processing/nemo-curator/{SKILL.md → ENTRY.md} +0 -0
  319. /package/skills/ai-research/05-data-processing/ray-data/{SKILL.md → ENTRY.md} +0 -0
  320. /package/skills/ai-research/06-post-training/grpo-rl-training/{SKILL.md → ENTRY.md} +0 -0
  321. /package/skills/ai-research/06-post-training/miles/{SKILL.md → ENTRY.md} +0 -0
  322. /package/skills/ai-research/06-post-training/openrlhf/{SKILL.md → ENTRY.md} +0 -0
  323. /package/skills/ai-research/06-post-training/simpo/{SKILL.md → ENTRY.md} +0 -0
  324. /package/skills/ai-research/06-post-training/slime/{SKILL.md → ENTRY.md} +0 -0
  325. /package/skills/ai-research/06-post-training/torchforge/{SKILL.md → ENTRY.md} +0 -0
  326. /package/skills/ai-research/06-post-training/trl-fine-tuning/{SKILL.md → ENTRY.md} +0 -0
  327. /package/skills/ai-research/06-post-training/verl/{SKILL.md → ENTRY.md} +0 -0
  328. /package/skills/ai-research/07-safety-alignment/constitutional-ai/{SKILL.md → ENTRY.md} +0 -0
  329. /package/skills/ai-research/07-safety-alignment/llamaguard/{SKILL.md → ENTRY.md} +0 -0
  330. /package/skills/ai-research/07-safety-alignment/nemo-guardrails/{SKILL.md → ENTRY.md} +0 -0
  331. /package/skills/ai-research/07-safety-alignment/prompt-guard/{SKILL.md → ENTRY.md} +0 -0
  332. /package/skills/ai-research/08-distributed-training/accelerate/{SKILL.md → ENTRY.md} +0 -0
  333. /package/skills/ai-research/08-distributed-training/deepspeed/{SKILL.md → ENTRY.md} +0 -0
  334. /package/skills/ai-research/08-distributed-training/megatron-core/{SKILL.md → ENTRY.md} +0 -0
  335. /package/skills/ai-research/08-distributed-training/pytorch-fsdp2/{SKILL.md → ENTRY.md} +0 -0
  336. /package/skills/ai-research/08-distributed-training/pytorch-lightning/{SKILL.md → ENTRY.md} +0 -0
  337. /package/skills/ai-research/08-distributed-training/ray-train/{SKILL.md → ENTRY.md} +0 -0
  338. /package/skills/ai-research/09-infrastructure/lambda-labs/{SKILL.md → ENTRY.md} +0 -0
  339. /package/skills/ai-research/09-infrastructure/modal/{SKILL.md → ENTRY.md} +0 -0
  340. /package/skills/ai-research/09-infrastructure/skypilot/{SKILL.md → ENTRY.md} +0 -0
  341. /package/skills/ai-research/10-optimization/awq/{SKILL.md → ENTRY.md} +0 -0
  342. /package/skills/ai-research/10-optimization/bitsandbytes/{SKILL.md → ENTRY.md} +0 -0
  343. /package/skills/ai-research/10-optimization/flash-attention/{SKILL.md → ENTRY.md} +0 -0
  344. /package/skills/ai-research/10-optimization/gguf/{SKILL.md → ENTRY.md} +0 -0
  345. /package/skills/ai-research/10-optimization/gptq/{SKILL.md → ENTRY.md} +0 -0
  346. /package/skills/ai-research/10-optimization/hqq/{SKILL.md → ENTRY.md} +0 -0
  347. /package/skills/ai-research/10-optimization/ml-training-recipes/{SKILL.md → ENTRY.md} +0 -0
  348. /package/skills/ai-research/11-evaluation/bigcode-evaluation-harness/{SKILL.md → ENTRY.md} +0 -0
  349. /package/skills/ai-research/11-evaluation/lm-evaluation-harness/{SKILL.md → ENTRY.md} +0 -0
  350. /package/skills/ai-research/11-evaluation/nemo-evaluator/{SKILL.md → ENTRY.md} +0 -0
  351. /package/skills/ai-research/12-inference-serving/llama-cpp/{SKILL.md → ENTRY.md} +0 -0
  352. /package/skills/ai-research/12-inference-serving/sglang/{SKILL.md → ENTRY.md} +0 -0
  353. /package/skills/ai-research/12-inference-serving/tensorrt-llm/{SKILL.md → ENTRY.md} +0 -0
  354. /package/skills/ai-research/12-inference-serving/vllm/{SKILL.md → ENTRY.md} +0 -0
  355. /package/skills/ai-research/13-mlops/mlflow/{SKILL.md → ENTRY.md} +0 -0
  356. /package/skills/ai-research/13-mlops/swanlab/{SKILL.md → ENTRY.md} +0 -0
  357. /package/skills/ai-research/13-mlops/tensorboard/{SKILL.md → ENTRY.md} +0 -0
  358. /package/skills/ai-research/13-mlops/weights-and-biases/{SKILL.md → ENTRY.md} +0 -0
  359. /package/skills/ai-research/14-agents/a-evolve/{SKILL.md → ENTRY.md} +0 -0
  360. /package/skills/ai-research/14-agents/autogpt/{SKILL.md → ENTRY.md} +0 -0
  361. /package/skills/ai-research/14-agents/crewai/{SKILL.md → ENTRY.md} +0 -0
  362. /package/skills/ai-research/14-agents/langchain/{SKILL.md → ENTRY.md} +0 -0
  363. /package/skills/ai-research/14-agents/llamaindex/{SKILL.md → ENTRY.md} +0 -0
  364. /package/skills/ai-research/15-rag/chroma/{SKILL.md → ENTRY.md} +0 -0
  365. /package/skills/ai-research/15-rag/faiss/{SKILL.md → ENTRY.md} +0 -0
  366. /package/skills/ai-research/15-rag/pinecone/{SKILL.md → ENTRY.md} +0 -0
  367. /package/skills/ai-research/15-rag/qdrant/{SKILL.md → ENTRY.md} +0 -0
  368. /package/skills/ai-research/15-rag/sentence-transformers/{SKILL.md → ENTRY.md} +0 -0
  369. /package/skills/ai-research/16-prompt-engineering/dspy/{SKILL.md → ENTRY.md} +0 -0
  370. /package/skills/ai-research/16-prompt-engineering/guidance/{SKILL.md → ENTRY.md} +0 -0
  371. /package/skills/ai-research/16-prompt-engineering/instructor/{SKILL.md → ENTRY.md} +0 -0
  372. /package/skills/ai-research/16-prompt-engineering/outlines/{SKILL.md → ENTRY.md} +0 -0
  373. /package/skills/ai-research/17-observability/langsmith/{SKILL.md → ENTRY.md} +0 -0
  374. /package/skills/ai-research/17-observability/phoenix/{SKILL.md → ENTRY.md} +0 -0
  375. /package/skills/ai-research/18-multimodal/audiocraft/{SKILL.md → ENTRY.md} +0 -0
  376. /package/skills/ai-research/18-multimodal/blip-2/{SKILL.md → ENTRY.md} +0 -0
  377. /package/skills/ai-research/18-multimodal/clip/{SKILL.md → ENTRY.md} +0 -0
  378. /package/skills/ai-research/18-multimodal/cosmos-policy/{SKILL.md → ENTRY.md} +0 -0
  379. /package/skills/ai-research/18-multimodal/llava/{SKILL.md → ENTRY.md} +0 -0
  380. /package/skills/ai-research/18-multimodal/openpi/{SKILL.md → ENTRY.md} +0 -0
  381. /package/skills/ai-research/18-multimodal/openvla-oft/{SKILL.md → ENTRY.md} +0 -0
  382. /package/skills/ai-research/18-multimodal/segment-anything/{SKILL.md → ENTRY.md} +0 -0
  383. /package/skills/ai-research/18-multimodal/stable-diffusion/{SKILL.md → ENTRY.md} +0 -0
  384. /package/skills/ai-research/18-multimodal/whisper/{SKILL.md → ENTRY.md} +0 -0
  385. /package/skills/ai-research/19-emerging-techniques/knowledge-distillation/{SKILL.md → ENTRY.md} +0 -0
  386. /package/skills/ai-research/19-emerging-techniques/long-context/{SKILL.md → ENTRY.md} +0 -0
  387. /package/skills/ai-research/19-emerging-techniques/model-merging/{SKILL.md → ENTRY.md} +0 -0
  388. /package/skills/ai-research/19-emerging-techniques/model-pruning/{SKILL.md → ENTRY.md} +0 -0
  389. /package/skills/ai-research/19-emerging-techniques/moe-training/{SKILL.md → ENTRY.md} +0 -0
  390. /package/skills/ai-research/19-emerging-techniques/speculative-decoding/{SKILL.md → ENTRY.md} +0 -0
  391. /package/skills/ai-research/20-ml-paper-writing/academic-plotting/{SKILL.md → ENTRY.md} +0 -0
  392. /package/skills/ai-research/20-ml-paper-writing/ml-paper-writing/{SKILL.md → ENTRY.md} +0 -0
  393. /package/skills/ai-research/20-ml-paper-writing/presenting-conference-talks/{SKILL.md → ENTRY.md} +0 -0
  394. /package/skills/ai-research/20-ml-paper-writing/systems-paper-writing/{SKILL.md → ENTRY.md} +0 -0
  395. /package/skills/ai-research/21-research-ideation/brainstorming-research-ideas/{SKILL.md → ENTRY.md} +0 -0
  396. /package/skills/ai-research/21-research-ideation/creative-thinking-for-research/{SKILL.md → ENTRY.md} +0 -0
  397. /package/skills/ai-research/22-agent-native-research-artifact/compiler/{SKILL.md → ENTRY.md} +0 -0
  398. /package/skills/ai-research/22-agent-native-research-artifact/research-manager/{SKILL.md → ENTRY.md} +0 -0
  399. /package/skills/ai-research/22-agent-native-research-artifact/rigor-reviewer/{SKILL.md → ENTRY.md} +0 -0
  400. /package/skills/design-library/adaptive-interfaces/skills/colour-independence/{SKILL.md → ENTRY.md} +0 -0
  401. /package/skills/design-library/adaptive-interfaces/skills/flexible-typography/{SKILL.md → ENTRY.md} +0 -0
  402. /package/skills/design-library/adaptive-interfaces/skills/information-density/{SKILL.md → ENTRY.md} +0 -0
  403. /package/skills/design-library/adaptive-interfaces/skills/preference-audit/{SKILL.md → ENTRY.md} +0 -0
  404. /package/skills/design-library/adaptive-interfaces/skills/responsive-accessibility/{SKILL.md → ENTRY.md} +0 -0
  405. /package/skills/design-library/adaptive-interfaces/skills/responsive-review/{SKILL.md → ENTRY.md} +0 -0
  406. /package/skills/design-library/adaptive-interfaces/skills/simplified-views/{SKILL.md → ENTRY.md} +0 -0
  407. /package/skills/design-library/adaptive-interfaces/skills/specify/{SKILL.md → ENTRY.md} +0 -0
  408. /package/skills/design-library/adaptive-interfaces/skills/user-preference-respect/{SKILL.md → ENTRY.md} +0 -0
  409. /package/skills/design-library/cognitive-accessibility/skills/adaptive-personalisation/{SKILL.md → ENTRY.md} +0 -0
  410. /package/skills/design-library/cognitive-accessibility/skills/assess-load/{SKILL.md → ENTRY.md} +0 -0
  411. /package/skills/design-library/cognitive-accessibility/skills/cognitive-load-assessment/{SKILL.md → ENTRY.md} +0 -0
  412. /package/skills/design-library/cognitive-accessibility/skills/contextual-help-design/{SKILL.md → ENTRY.md} +0 -0
  413. /package/skills/design-library/cognitive-accessibility/skills/error-prevention-recovery/{SKILL.md → ENTRY.md} +0 -0
  414. /package/skills/design-library/cognitive-accessibility/skills/focus-attention-design/{SKILL.md → ENTRY.md} +0 -0
  415. /package/skills/design-library/cognitive-accessibility/skills/memory-load-reduction/{SKILL.md → ENTRY.md} +0 -0
  416. /package/skills/design-library/cognitive-accessibility/skills/plain-language-design/{SKILL.md → ENTRY.md} +0 -0
  417. /package/skills/design-library/cognitive-accessibility/skills/review/{SKILL.md → ENTRY.md} +0 -0
  418. /package/skills/design-library/cognitive-accessibility/skills/simplify/{SKILL.md → ENTRY.md} +0 -0
  419. /package/skills/design-library/cognitive-accessibility/skills/wayfinding-navigation/{SKILL.md → ENTRY.md} +0 -0
  420. /package/skills/design-library/design-research/skills/behavioural-analytics/{SKILL.md → ENTRY.md} +0 -0
  421. /package/skills/design-library/design-research/skills/qual-quant-triangulation/{SKILL.md → ENTRY.md} +0 -0
  422. /package/skills/design-library/inclusive-interaction/skills/audit/{SKILL.md → ENTRY.md} +0 -0
  423. /package/skills/design-library/inclusive-interaction/skills/design-flow/{SKILL.md → ENTRY.md} +0 -0
  424. /package/skills/design-library/inclusive-interaction/skills/feedback-and-status/{SKILL.md → ENTRY.md} +0 -0
  425. /package/skills/design-library/inclusive-interaction/skills/gesture-alternatives/{SKILL.md → ENTRY.md} +0 -0
  426. /package/skills/design-library/inclusive-interaction/skills/keyboard-navigation/{SKILL.md → ENTRY.md} +0 -0
  427. /package/skills/design-library/inclusive-interaction/skills/keyboard-review/{SKILL.md → ENTRY.md} +0 -0
  428. /package/skills/design-library/inclusive-interaction/skills/motion-sensitivity/{SKILL.md → ENTRY.md} +0 -0
  429. /package/skills/design-library/inclusive-interaction/skills/multi-modal-input/{SKILL.md → ENTRY.md} +0 -0
  430. /package/skills/design-library/inclusive-interaction/skills/touch-target-design/{SKILL.md → ENTRY.md} +0 -0
  431. /package/skills/design-library/inclusive-interaction/skills/voice-interaction/{SKILL.md → ENTRY.md} +0 -0
  432. /package/skills/design-library/visual-critique/skills/critique-affordance/{SKILL.md → ENTRY.md} +0 -0
  433. /package/skills/design-library/visual-critique/skills/critique-brand-consistency/{SKILL.md → ENTRY.md} +0 -0
  434. /package/skills/design-library/visual-critique/skills/critique-color/{SKILL.md → ENTRY.md} +0 -0
  435. /package/skills/design-library/visual-critique/skills/critique-composition/{SKILL.md → ENTRY.md} +0 -0
  436. /package/skills/design-library/visual-critique/skills/critique-information-density/{SKILL.md → ENTRY.md} +0 -0
  437. /package/skills/design-library/visual-critique/skills/critique-typography/{SKILL.md → ENTRY.md} +0 -0
  438. /package/skills/design-library/visual-critique/skills/critique-visual-hierarchy/{SKILL.md → ENTRY.md} +0 -0
  439. /package/skills/pm-frameworks/intended-vs-implemented/{SKILL.md → ENTRY.md} +0 -0
  440. /package/skills/pm-frameworks/opportunity-solution-tree/{SKILL.md → ENTRY.md} +0 -0
  441. /package/skills/rl-env/generate-nemo-gym-env/{SKILL.md → ENTRY.md} +0 -0
  442. /package/skills/rl-env/generate-openenv-env/{SKILL.md → ENTRY.md} +0 -0
  443. /package/skills/rl-env/generate-ors-env/{SKILL.md → ENTRY.md} +0 -0
  444. /package/skills/rl-env/generate-verifiers-env/{SKILL.md → ENTRY.md} +0 -0
  445. /package/skills/rl-env/rl-env-from-description/{SKILL.md → ENTRY.md} +0 -0
@@ -0,0 +1,100 @@
1
+ /** @jsxImportSource @opentui/solid */
2
+ // tezgah status line for the opencode 2 terminal (a CLI plugin).
3
+ //
4
+ // opencode 2 ignores tui.json: a local CLI plugin is a DIRECTORY listed in
5
+ // ~/.config/opencode/cli.json `plugins` (a spec naming a file is skipped), whose
6
+ // `tui` module default-exports Plugin.define({ id, setup }). Same data and marks
7
+ // as ../tezgah-tui.tsx (the opencode 1 shape, kept for v1 installs): one
8
+ // `tezgah-status <dir> --json [sessionID]` call per refresh, each segment colored
9
+ // green in force, yellow on-demand, red off, and a palette command for the legend.
10
+ import { Plugin } from "@opencode/plugin/tui"
11
+ import { createSignal, onCleanup, For } from "solid-js"
12
+ import { run } from "../tezgah-tui.tsx"
13
+
14
+ const SAFETY_MS = 30000
15
+ // Server events arrive per streamed part; one status call per burst is enough.
16
+ const DEBOUNCE_MS = 250
17
+
18
+ type Seg = { key: string; state: string; glyph: string; text: string; group?: number }
19
+ type Tone = { base: string }
20
+ // The part of the CLI plugin context this file reads (opencode.ai/v2/docs/build/plugins/cli).
21
+ type Ctx = {
22
+ location?: { directory?: string }
23
+ theme: { text: { muted: string; feedback: { success: Tone; warning: Tone; error: Tone } } }
24
+ data: { location: { default(): { directory?: string } | undefined }; listen(fn: () => void): () => void }
25
+ ui: { router: { current(): { type: string; sessionID?: string } | undefined } }
26
+ }
27
+
28
+ function color(ctx: Ctx, state: string) {
29
+ const t = ctx.theme.text
30
+ if (state === "on") return t.feedback.success.base
31
+ if (state === "ready") return t.feedback.warning.base
32
+ if (state === "off") return t.feedback.error.base
33
+ return t.muted
34
+ }
35
+
36
+ function args(ctx: Ctx): string[] {
37
+ const dir = ctx.location?.directory || ctx.data.location.default()?.directory || process.cwd()
38
+ // The active session id is what lets the used marks (graph/consult/orch) light.
39
+ const route = ctx.ui.router.current()
40
+ return route?.type === "session" && route.sessionID ? [dir, "--json", route.sessionID] : [dir, "--json"]
41
+ }
42
+
43
+ function TezgahBar(props: { ctx: Ctx }) {
44
+ const [segs, setSegs] = createSignal<Seg[]>([])
45
+ const update = () => {
46
+ try {
47
+ setSegs(JSON.parse(run(args(props.ctx)) || "[]"))
48
+ } catch {
49
+ setSegs([])
50
+ }
51
+ }
52
+ let pending: Timer | undefined
53
+ const soon = () => {
54
+ clearTimeout(pending)
55
+ pending = setTimeout(update, DEBOUNCE_MS)
56
+ }
57
+
58
+ update()
59
+ const stop = props.ctx.data.listen(soon)
60
+ const timer = setInterval(update, SAFETY_MS)
61
+ onCleanup(() => {
62
+ stop()
63
+ clearTimeout(pending)
64
+ clearInterval(timer)
65
+ })
66
+
67
+ return (
68
+ <box paddingLeft={1} flexShrink={0} flexDirection="row">
69
+ <For each={segs()}>
70
+ {(s, i) => (
71
+ <box flexDirection="row">
72
+ <text fg={color(props.ctx, s.state)}>{s.text + (s.glyph || "")}</text>
73
+ <text fg={props.ctx.theme.text.muted}>
74
+ {i() < segs().length - 1
75
+ ? (segs()[i() + 1].group === s.group ? " " : " · ")
76
+ : ""}
77
+ </text>
78
+ </box>
79
+ )}
80
+ </For>
81
+ </box>
82
+ )
83
+ }
84
+
85
+ export default Plugin.define({
86
+ id: "tezgah.status",
87
+ setup(ctx) {
88
+ ctx.keymap.layer(() => ({
89
+ mode: "global",
90
+ commands: [{
91
+ id: "tezgah.legend",
92
+ title: "tezgah: status legend",
93
+ group: "tezgah",
94
+ palette: true,
95
+ run: () => ctx.ui.dialog.alert({ title: "tezgah status marks", message: run(["--legend"]) }),
96
+ }],
97
+ }))
98
+ return ctx.ui.slot({ append: "prompt.footer", render: () => <TezgahBar ctx={ctx} /> })
99
+ },
100
+ })
@@ -51,7 +51,8 @@ function pythonBin(): string {
51
51
  return (pythonMemo = found || names[0])
52
52
  }
53
53
 
54
- function run(args: string[]): string {
54
+ // Exported for cli/tui.tsx, the opencode 2 shape of this plugin.
55
+ export function run(args: string[]): string {
55
56
  try {
56
57
  const proc = Bun.spawnSync({ cmd: [pythonBin(), STATUS, ...args], stdout: "pipe", stderr: "ignore" })
57
58
  return new TextDecoder().decode(proc.stdout).trim()
@@ -0,0 +1,206 @@
1
+ #!/usr/bin/env python3
2
+ """Qwen Code lifecycle hook. Reads Qwen's JSON on stdin and answers in Qwen's own
3
+ output shape, onto the shared tezgah core (hooks/).
4
+
5
+ Qwen Code 0.21.13 fires SessionStart, UserPromptSubmit, PreToolUse, PostToolUse,
6
+ PostToolUseFailure, SubagentStart, SubagentStop and Stop here
7
+ (`bin/tezgah-setup::QWEN_HOOK_EVENTS`); anything else is ignored. Inert outside
8
+ the roots.
9
+
10
+ The always-on core is the managed block in `~/.qwen/QWEN.md`, which Qwen loads
11
+ into every session, so SessionStart repeats it only when that block is missing.
12
+ PreToolUse translates Qwen's runtime tool ids into the gate's vocabulary and
13
+ denies with `hookSpecificOutput.permissionDecision` on exit 0 - never exit 2,
14
+ whose stderr channel carries no reason the ledger and the probe can read. Qwen
15
+ fires PostToolUse for a successful call and PostToolUseFailure for a failed one
16
+ (a shell exit Qwen counts as an error, `isShellExitError`), so the event is the
17
+ call's outcome. Stop blocks a done/tested claim with no successful check behind
18
+ it, judged on `last_assistant_message`, the same rule Claude's Stop hook enforces
19
+ (hooks/tezgah_integrity.py). The status line is `tezgah-statusline --qwen`, Qwen's
20
+ `ui.statusLine` command, so no event here carries it.
21
+ """
22
+ import json
23
+ import os
24
+ import sys
25
+
26
+ ROOT = os.path.dirname(os.path.dirname(os.path.dirname(os.path.realpath(__file__))))
27
+ sys.path.insert(0, os.path.join(ROOT, "hooks"))
28
+ from tezgah_guard import attest_session, import_failed, safe # noqa: E402
29
+ try:
30
+ from tezgah_context import command_text, context_for, record, shell_kind # noqa: E402
31
+ from tezgah_gate import cross_project_note, decision, graph_advice # noqa: E402
32
+ from tezgah_integrity import ( # noqa: E402
33
+ SUBAGENT_CHANNEL, bind_session, note, note_tool, ran_nothing, report_bytes,
34
+ stop_reason, untrusted_source)
35
+ from tezgah_paths import HOST_DIRS, off, root_for # noqa: E402
36
+ from tezgah_taste import write_note # noqa: E402
37
+ from tezgah_untrusted import marks # noqa: E402
38
+ except Exception as exc:
39
+ import_failed(exc)
40
+
41
+ # Qwen's runtime tool ids (the `ToolNames` table in the 0.21.13 bundle) -> the
42
+ # shared gate's vocabulary. `replace` is the edit tool's id in older builds; the
43
+ # 0.21.13 bundle has none, and an unknown id passes the gate untouched. MCP tools
44
+ # arrive as `mcp__<server>__<tool>`, the shared shape, and pass through.
45
+ # `monitor` runs a shell command too (Qwen's headless deny list pairs it with
46
+ # SHELL), and `notebook_edit` writes an .ipynb (review of plan 138).
47
+ GATE_TOOLS = {
48
+ "run_shell_command": "Bash",
49
+ "monitor": "Bash",
50
+ "write_file": "Write",
51
+ "edit": "Edit",
52
+ "replace": "Edit",
53
+ "notebook_edit": "NotebookEdit",
54
+ "agent": "Task",
55
+ "grep_search": "Grep",
56
+ }
57
+
58
+
59
+ def gate_name(name):
60
+ """The tool name the gate denies under and the ledger row records.
61
+
62
+ `call_id` hashes the name it is handed, so both halves map through here: a
63
+ PostToolUse row under the raw id would never match the PreToolUse call and
64
+ the loop guard would never deny (`hosts/codex/hook.py::gate_name`)."""
65
+ return GATE_TOOLS.get(name, name)
66
+
67
+
68
+ def classify(payload):
69
+ """The used-tool kind for a tool payload, or None."""
70
+ name = payload.get("tool_name", "") or ""
71
+ if name.startswith("mcp__") and "codegraph" in name:
72
+ return "graph"
73
+ if name == "agent":
74
+ return "orch"
75
+ if name == "run_shell_command":
76
+ return shell_kind(command_text(payload.get("tool_input")))
77
+ return None
78
+
79
+
80
+ def subagent_id(payload):
81
+ """The subagent id Qwen adds to a hook input run inside a subagent, else None."""
82
+ aid = payload.get("agent_id")
83
+ return aid if isinstance(aid, str) and aid else None
84
+
85
+
86
+ def rules_carry_core():
87
+ """True when `QWEN.md` in Qwen's home holds tezgah-setup's managed block."""
88
+ try:
89
+ with open(os.path.join(HOST_DIRS["qwen"], "QWEN.md"), encoding="utf-8") as fh:
90
+ return "<!-- tezgah:start" in fh.read()
91
+ except OSError:
92
+ return False
93
+
94
+
95
+ def result_size(result):
96
+ """The result's top-level length, the Claude-family writer's measure; a value
97
+ with no length counts as non-empty and only a missing result is None."""
98
+ if isinstance(result, (str, bytes, bytearray, list, tuple, dict, set, frozenset)):
99
+ return len(result)
100
+ return 1 if result is not None else None
101
+
102
+
103
+ def inp_of(payload):
104
+ inp = payload.get("tool_input")
105
+ return inp if isinstance(inp, dict) else {}
106
+
107
+
108
+ def post_tool(payload, cwd, session_id, failed):
109
+ """The ledger row for one finished call, and the notice for the model."""
110
+ tool = gate_name(payload.get("tool_name", ""))
111
+ inp = inp_of(payload)
112
+ # a `monitor` PostToolUse fires when the watch starts ("Monitor started"),
113
+ # long before its command ends: it records a run, never a pass (review of
114
+ # plan 138, round 2); a failed start still arrives as PostToolUseFailure
115
+ if payload.get("tool_name") == "monitor" and failed is False:
116
+ failed = None
117
+ safe(session_id, record, session_id, classify(payload))
118
+ if not root_for(cwd):
119
+ return None
120
+ result = payload.get("tool_response")
121
+ # read before this call's row lands: `source` is the taint's own mark
122
+ got = safe(session_id, marks, tool, inp, session_id, result)
123
+ source, notice = got or (None, None)
124
+ safe(session_id, note_tool, session_id, tool, inp, failed=failed,
125
+ interrupted=bool(failed and payload.get("is_interrupt") is True),
126
+ source=source, cwd=cwd,
127
+ out_bytes=(report_bytes(result)
128
+ if untrusted_source(tool, inp) == SUBAGENT_CHANNEL
129
+ else result_size(result)),
130
+ empty_run=ran_nothing(result), agent=subagent_id(payload))
131
+ advice = safe(session_id, graph_advice, tool, inp, cwd, "qwen")
132
+ taste = cross = None
133
+ if not failed:
134
+ taste = safe(session_id, write_note, session_id, inp, cwd, tool)
135
+ cross = safe(session_id, cross_project_note, session_id, tool, inp, cwd)
136
+ return "\n".join(p for p in (notice, advice, taste, cross) if p)
137
+
138
+
139
+ def context(event, text):
140
+ return {"hookSpecificOutput": {"hookEventName": event,
141
+ "additionalContext": text}} if text else {}
142
+
143
+
144
+ def main():
145
+ try:
146
+ payload = json.load(sys.stdin)
147
+ except Exception:
148
+ return
149
+ if not isinstance(payload, dict):
150
+ return
151
+ event = payload.get("hook_event_name") or ""
152
+ cwd = payload.get("cwd") or os.getcwd()
153
+ session_id = payload.get("session_id")
154
+ safe(session_id, bind_session, session_id) # the switch latch (tezgah_paths.off)
155
+ out = {}
156
+ if event == "PreToolUse":
157
+ reason = safe(session_id, decision, gate_name(payload.get("tool_name", "")),
158
+ inp_of(payload), cwd, session_id, agent=subagent_id(payload))
159
+ if reason:
160
+ out = {"hookSpecificOutput": {
161
+ "hookEventName": "PreToolUse",
162
+ "permissionDecision": "deny",
163
+ "permissionDecisionReason": reason,
164
+ }}
165
+ elif event in ("PostToolUse", "PostToolUseFailure"):
166
+ out = context(event, post_tool(payload, cwd, session_id,
167
+ event == "PostToolUseFailure"))
168
+ elif event == "SessionStart":
169
+ safe(session_id, attest_session, "qwen", session_id, cwd)
170
+ out = context(event, safe(session_id, context_for, "session_start", cwd,
171
+ payload, with_core=not rules_carry_core()))
172
+ elif event == "UserPromptSubmit":
173
+ out = context(event, safe(session_id, context_for, "user_prompt", cwd, payload))
174
+ elif event == "SubagentStart":
175
+ safe(session_id, record, session_id, "orch")
176
+ kind = payload.get("agent_type")
177
+ if subagent_id(payload) and isinstance(kind, str) and root_for(cwd):
178
+ safe(session_id, note, session_id, "subagent_start", kind,
179
+ agent=subagent_id(payload))
180
+ # the delegate is a fresh context: Qwen documents additionalContext here
181
+ # as the subagent's initial context
182
+ out = context(event, safe(session_id, context_for, "subagent_start", cwd,
183
+ payload))
184
+ elif event == "SubagentStop":
185
+ # a subagent's end is judged record-only (ADR 011): one `subagent_end`
186
+ # row from its last message, never a block
187
+ safe(session_id, record, session_id, "orch")
188
+ if not off("verify-off") and root_for(cwd):
189
+ safe(session_id, stop_reason, payload.get("last_assistant_message") or "",
190
+ session_id, cwd=cwd, subagent=True)
191
+ elif event == "Stop":
192
+ # Qwen's Stop carries `last_assistant_message` and `stop_hook_active`,
193
+ # and takes {"decision": "block", "reason": ...}. The reply after a block
194
+ # is judged again and refused at most once more (tezgah_integrity).
195
+ if not off("verify-off") and root_for(cwd):
196
+ reason = safe(session_id, stop_reason,
197
+ payload.get("last_assistant_message"), session_id,
198
+ cwd=cwd, after_block=bool(payload.get("stop_hook_active")),
199
+ mode=payload.get("permission_mode"))
200
+ if reason:
201
+ out = {"decision": "block", "reason": reason}
202
+ if out:
203
+ print(json.dumps(out))
204
+
205
+
206
+ main()
@@ -36,7 +36,7 @@ one small test); a one-liner needs none. A complex ask ships the lazy version
36
36
  and names the fuller one in the same reply instead of stalling. Reply: code
37
37
  first; write what was cut only when you consciously cut something the user asked
38
38
  for, in at most three lines. In force from the first turn; levels
39
- lite|full|ultra are set with `tezgah-pony` and ride the per-turn reminder when
39
+ lite|full|ultra are set with `~/.config/tezgah/bin/tezgah-pony` and ride the per-turn reminder when
40
40
  not `full`; read the full `ponytail` skill from the router for the level table
41
41
  and examples. Off: "stop ponytail".
42
42
 
@@ -47,7 +47,10 @@ bounded action per step, and while it is in flight its position is restated in
47
47
  one line - the todo list is that source, never re-narrate the plan. End with the
48
48
  approval questions the Ask policy (below) leaves, or with nothing when none is
49
49
  left; a step you can take yourself is taken, never handed
50
- over. Finish the issue in hand before raising a second one; an error states
50
+ over, and in the host's plan mode, where nothing can run, the plan is the
51
+ deliverable: its approval is the question that turn asks and nothing is
52
+ reported as done or tested.
53
+ Finish the issue in hand before raising a second one; an error states
51
54
  location, cause and fix with no drama, naming a cause only when the evidence
52
55
  identifies it (else what is known and what would confirm it); after a change say
53
56
  what now works. A list shows at most five items, ranked, the rest kept in
@@ -62,7 +65,7 @@ assumption and ask one diagnostic question. Before sending, delete an opening
62
65
  sentence that announces, a closing one that recaps or asks "anything else?", any
63
66
  by-the-way sidebar and any hedge that carries no real uncertainty. In force from
64
67
  the first answer; read the full `i-have-adhd` skill from the router for the
65
- examples. Off: `tezgah-adhd off`, or the repo's `.no-adhd`.
68
+ examples. Off: `~/.config/tezgah/bin/tezgah-adhd off`, or the repo's `.no-adhd`.
66
69
 
67
70
  **Deliver the whole ask; never the shortcut.** The request defines the
68
71
  deliverable: every named item is in scope until the user says otherwise, and the
@@ -112,15 +115,17 @@ lines: item - blocker - evidence - what unblocks it. No blockers: no heading.
112
115
  Work and process - the order, "shall I go on", a check, a plan, a consult
113
116
  member, a spend within `spend_cap`, a local merge of the session's branch,
114
117
  removing its worktree - are taken and stated in one line, never asked; a taste
115
- or intent fork goes in the batch with a default taken this turn, but building a
116
- plan this turn wrote waits for the answer. An outward step
118
+ or intent fork goes in the batch with a default taken this turn, but the
119
+ never-default items below wait for the answer. An outward step
117
120
  on the user's own remote (push, PR, release, their package) runs on a grant
118
121
  ("push without asking", "I approve", "bana sormadan pushla", "onay veriyorum"), else is asked once. Never on a
119
122
  default - ask and wait for an answer naming action and target: a force push,
120
123
  deleting what the session did not make, production, a credential, a third
121
- party, a spend over the cap. The batch: one "Approval questions"/"Onay için sorular" heading, waiting
124
+ party, a spend over the cap, building a plan this turn wrote, picking a
125
+ recommended variant, a way around a tezgah refusal, another session's work. The batch: one "Approval questions"/"Onay için sorular" heading, waiting
122
126
  items first, each numbered item with "Recommended:"/"Öneri:" its default; an ask tool
123
- sets a recommended option.
127
+ sets a recommended option. No fresh subagent, no review verdict: say so and
128
+ ask. Contest a finding only with a file:line; never lower a severity.
124
129
  **Say what a number was measured on.** A figure produced by a fixture - a temp
125
130
  HOME, a generated repository, a stand-in, a hand-written sample - is evidence
126
131
  about the code path, never a property of the running system, and it is reported
@@ -169,19 +174,19 @@ issue for one of its tools mid-session. Name a missing capability in one line,
169
174
  use the documented fallback (grep/find, or the second opinion skipped), and carry
170
175
  on with the task in hand. Tezgah maintenance is in scope when the user asks for
171
176
  it, or when the repo IS the tezgah checkout. Before working a topic an
172
- installed skill covers, run `tezgah-skill <words>` and read only the range it
177
+ installed skill covers, run `~/.config/tezgah/bin/tezgah-skill <words>` and read only the range it
173
178
  returns.
174
179
 
175
180
  **Workspace: `.tezgah/` only.** Every per-project tezgah artifact - plans,
176
- research lines, analysis, lessons - lives under `<repo>/.tezgah/`, which the
177
- project's `.gitignore` excludes and which keeps its own private git repository
178
- (`git -C .tezgah ...`). Never create `plans/`, `research/` or `analysis/` at the
179
- project root and never `git add -f` anything under `.tezgah/`. Off:
181
+ research lines, analysis, lessons - lives under `<repo>/.tezgah/`, ignored by
182
+ the project, committed with `git -C .tezgah ...` - or, if the project tracks
183
+ it, plain `git add`/`git commit`. Never create `plans/`, `research/` or
184
+ `analysis/` at the project root and never `git add -f` under `.tezgah/`. Off:
180
185
  `workspace-off`.
181
186
 
182
187
  **Kill switches:** each one removes its own rule from this text, not just the
183
188
  status mark. `~/.config/tezgah/`: `exec-mode.off`, `orchestrate-off`,
184
- `consult-off`, `research-off`, `ponytail-auto.off`, `adhd-off`, `spec-off`,
189
+ `consult-off`, `research-off`, `ponytail-auto.off`, `adhd-off`, `spec-off`, `design-off`,
185
190
  `reminder-off`, `verify-off` (the integrity rule: its prompt text, the shortcut
186
191
  denials and the Stop gate), `task-off` (the task rule), `judge-off` (the
187
192
  judgement seam: the triage, the docs fallback and the skill hint), `triage-off`,
@@ -189,6 +194,6 @@ judgement seam: the triage, the docs fallback and the skill hint), `triage-off`,
189
194
  rule), `workspace-off` (the root plans/research/analysis refusal),
190
195
  `pretooluse-off` (the whole gate);
191
196
  per-repo `.no-ponytail`, `.no-adhd`, `.no-graph`, `.no-lessons`.
192
- The ponytail intensity level is not a switch: `tezgah-pony lite|full|ultra`.
197
+ The ponytail intensity level is not a switch: `~/.config/tezgah/bin/tezgah-pony lite|full|ultra`.
193
198
 
194
- **On-demand rules (armed when the task class matches; full text in the `tezgah-contract` skill).** Spec-first for an underspecified or quality-only ask. A second opinion before a call that is hard to reverse or that one model would answer with unearned confidence. OpenResearch routing for research. Product analysis is a five-axis evidence task - value, usability (the running app, not the source), feasibility (a cited `path:line`), competition, and keep/fix/cut/bet triage - with one named evidence class per finding. The code graph for "who calls X" and "what breaks if Z changes". Two or more independent items fan out to parallel subagents in one message, one git worktree per writing slice. The design floor a UI turn is judged against is `.tezgah/design-contract.md`: `tezgah-design derive` writes it from the repository's own tokens, `tezgah-design check` measures a change against it, and the `design-contract` skill owns its shape.
199
+ **On-demand rules (armed when the task class matches; full text in the `tezgah-contract` skill).** Spec-first for an underspecified or quality-only ask. A second opinion before a call that is hard to reverse or that one model would answer with unearned confidence. OpenResearch routing for research. Product analysis is a five-axis evidence task - value, usability (the running app, not the source), feasibility (a cited `path:line`), competition, and keep/fix/cut/bet triage - with one named evidence class per finding (`product-analysis`, `pm-frameworks`). The code graph for "who calls X" and "what breaks if Z changes". Two or more independent items fan out to parallel subagents in one message, one git worktree per writing slice. A UI turn reads the `design-contract` skill (`design-library`, `analyze-app`) and is judged against `.tezgah/design-contract.md`: `~/.config/tezgah/bin/tezgah-design derive` writes it from the repository's own tokens and its `check` measures a change against it.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@r1z4x/tezgah",
3
- "version": "1.9.2",
3
+ "version": "1.13.0",
4
4
  "description": "One shared working contract for every AI coding assistant you run: Claude Code, Codex, Cursor, opencode, dsh and oh-my-pi (omp).",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -1,17 +1,22 @@
1
1
  ---
2
2
  name: ai-research
3
3
  description: >
4
- The vendored AI-research-SKILLs library - 98 upstream skills in 23 categories,
5
- MIT - that now ships with tezgah. Use when a research line needs AI or ML
6
- machinery: training or fine-tuning a model, serving or quantizing one,
7
- evaluating a benchmark, reading model internals, building a retrieval or agent
8
- pipeline, tracking runs, or writing the result up. Read the one entry the work
9
- needs, never the tree. Do NOT use for code discovery ("where is X", "who calls
10
- Y") - that is the code graph.
4
+ Use when a research line needs AI/ML machinery: training, fine-tuning,
5
+ serving, evals; ince ayar, dil modeli. Not for RL environments - use `rl-env`.
11
6
  ---
12
7
 
13
8
  # ai-research
14
9
 
10
+ ## When to use
11
+
12
+ The vendored AI-research-SKILLs library - 98 upstream skills in 23 categories,
13
+ MIT - that now ships with tezgah. Use when a research line needs AI or ML
14
+ machinery: training or fine-tuning a model, serving or quantizing one,
15
+ evaluating a benchmark, reading model internals, building a retrieval or agent
16
+ pipeline, tracking runs, or writing the result up. Read the one entry the work
17
+ needs, never the tree. Do NOT use for code discovery ("where is X", "who calls
18
+ Y") - that is the code graph.
19
+
15
20
  Ninety-eight skills from Orchestra Research's `AI-research-SKILLs`, vendored into
16
21
  this repository at revision `773a529` (2026-06-15, MIT) and kept in the upstream
17
22
  layout, so a path here is the path there. Re-vendor, or verify the tree, with
@@ -27,8 +32,10 @@ before.
27
32
 
28
33
  1. **`index/<stage>.md`** - six files, one per stage of a research line. Read the
29
34
  one that matches the work in hand; it lists every entry with its purpose.
30
- 2. **the entry's `SKILL.md`** - the file the index line names, e.g.
31
- `11-evaluation/lm-evaluation-harness/SKILL.md`. That is the upstream body.
35
+ 2. **the entry's `ENTRY.md`** - the file the index line names, e.g.
36
+ `11-evaluation/lm-evaluation-harness/ENTRY.md`. That is the upstream body:
37
+ upstream's `SKILL.md`, renamed so a host that lists every `SKILL.md` below its
38
+ skills directory does not list it. A body that says `SKILL.md` means this file.
32
39
  3. **its `references/`** - the detail the body points at, when the body is not
33
40
  enough.
34
41
 
@@ -57,7 +64,7 @@ Each index line can carry a flag, and they are not decoration:
57
64
  live links in the same entry still work.
58
65
 
59
66
  An entry with no body vendored would be a line without a file - there is none:
60
- every one of the 98 ships its `SKILL.md`.
67
+ every one of the 98 ships its `ENTRY.md`.
61
68
 
62
69
  ## Where tezgah's own rules still win
63
70
 
@@ -75,14 +82,14 @@ account, a paid service or the user's data still needs the user's yes first.
75
82
  this contract's protocol-before-run rule.
76
83
  - `20-ml-paper-writing/ml-paper-writing/references/citation-workflow.md` - how to
77
84
  verify a reference instead of writing one from memory.
78
- - `20-ml-paper-writing/academic-plotting/SKILL.md` - chart-type rules, a
85
+ - `20-ml-paper-writing/academic-plotting/ENTRY.md` - chart-type rules, a
79
86
  colourblind-safe palette and venue column widths; every line ends in a figure.
80
- - `22-agent-native-research-artifact/rigor-reviewer/SKILL.md` - the 1-5 scoring
87
+ - `22-agent-native-research-artifact/rigor-reviewer/ENTRY.md` - the 1-5 scoring
81
88
  anchors and severity inventory behind this contract's six-dimension review.
82
- - `22-agent-native-research-artifact/compiler/SKILL.md` - evidence fidelity: exact
89
+ - `22-agent-native-research-artifact/compiler/ENTRY.md` - evidence fidelity: exact
83
90
  numbers, a derived subset never named `Table N`, every evidence file carrying
84
91
  its source.
85
- - `11-evaluation/lm-evaluation-harness/SKILL.md` - the runnable benchmark recipe a
92
+ - `11-evaluation/lm-evaluation-harness/ENTRY.md` - the runnable benchmark recipe a
86
93
  research line usually quotes.
87
94
 
88
95
  ## Provenance
@@ -10,12 +10,14 @@ contributing author of that entry. Checkout for a re-vendor:
10
10
 
11
11
  Every skill's `SKILL.md` and every markdown file beside it, in the upstream
12
12
  layout, because a vendored path is its provenance. 98 skills across 23
13
- categories, 365 files, 4202519 bytes.
13
+ categories, 365 files, 4202519 bytes. One rename: each entry's `SKILL.md` sits at
14
+ the upstream path as `ENTRY.md`, bytes unchanged, so a host that lists every
15
+ `SKILL.md` below its skills directory (codex, Cursor) does not list it.
14
16
 
15
17
  ## What is not, and why
16
18
 
17
19
  Files: `03-fine-tuning/unsloth/references/llms-full.md`, `03-fine-tuning/unsloth/references/llms-txt.md`, `08-distributed-training/deepspeed/references/tutorials.md` - machine-scraped reference dumps, which the entry's own
18
- `SKILL.md` already distils.
20
+ `ENTRY.md` already distils.
19
21
 
20
22
  Directories: `20-ml-paper-writing/ml-paper-writing/templates`, `20-ml-paper-writing/systems-paper-writing/templates` - LaTeX class/bst/bib trees and example PDFs,
21
23
  re-downloadable from each venue.
@@ -27,9 +29,9 @@ is dropped by the importer's `*.md` filter, and `demos/`, `docs/`,
27
29
  ## The only modification
28
30
 
29
31
  A markdown file that carries no YAML frontmatter gets one attribution
30
- comment on its first line. `SKILL.md` files are byte-for-byte upstream,
31
- frontmatter included. `skills/ai-research/SKILL.md` is tezgah's own and is
32
- not part of the manifest.
32
+ comment on its first line. `ENTRY.md` files are byte-for-byte upstream
33
+ `SKILL.md`, frontmatter included. `skills/ai-research/SKILL.md` is
34
+ tezgah's own and is not part of the manifest.
33
35
 
34
36
  ## Re-vendoring
35
37
 
@@ -10,9 +10,9 @@ links N reference files upstream does not ship.
10
10
 
11
11
  | entry | file | what it covers | flags |
12
12
  |---|---|---|---|
13
- | `0-autoresearch-skill` | `0-autoresearch-skill/SKILL.md` | Orchestrates end-to-end autonomous AI research projects using a two-loop architecture. | |
14
- | `brainstorming-research-ideas` | `21-research-ideation/brainstorming-research-ideas/SKILL.md` | Guides researchers through structured ideation frameworks to discover high-impact research directions. | |
15
- | `creative-thinking-for-research` | `21-research-ideation/creative-thinking-for-research/SKILL.md` | Applies cognitive science frameworks for creative thinking to CS and AI research ideation. | |
16
- | `compiler` | `22-agent-native-research-artifact/compiler/SKILL.md` | Compiles any research input — PDF papers, GitHub repositories, experiment logs, code directories, or raw notes — into a complete Agent-Native Research Artifact (ARA) with ... | |
17
- | `research-manager` | `22-agent-native-research-artifact/research-manager/SKILL.md` | Records research provenance as a post-task epilogue, scanning conversation history at the end of a coding or research session to extract decisions, experiments, dead ends, claims ... | |
18
- | `rigor-reviewer` | `22-agent-native-research-artifact/rigor-reviewer/SKILL.md` | Performs ARA Seal Level 2 semantic epistemic review on Agent-Native Research Artifacts, scoring six dimensions (evidence relevance, falsifiability, scope calibration, argument ... | |
13
+ | `0-autoresearch-skill` | `0-autoresearch-skill/ENTRY.md` | Orchestrates end-to-end autonomous AI research projects using a two-loop architecture. | |
14
+ | `brainstorming-research-ideas` | `21-research-ideation/brainstorming-research-ideas/ENTRY.md` | Guides researchers through structured ideation frameworks to discover high-impact research directions. | |
15
+ | `creative-thinking-for-research` | `21-research-ideation/creative-thinking-for-research/ENTRY.md` | Applies cognitive science frameworks for creative thinking to CS and AI research ideation. | |
16
+ | `compiler` | `22-agent-native-research-artifact/compiler/ENTRY.md` | Compiles any research input — PDF papers, GitHub repositories, experiment logs, code directories, or raw notes — into a complete Agent-Native Research Artifact (ARA) with ... | |
17
+ | `research-manager` | `22-agent-native-research-artifact/research-manager/ENTRY.md` | Records research provenance as a post-task epilogue, scanning conversation history at the end of a coding or research session to extract decisions, experiments, dead ends, claims ... | |
18
+ | `rigor-reviewer` | `22-agent-native-research-artifact/rigor-reviewer/ENTRY.md` | Performs ARA Seal Level 2 semantic epistemic review on Agent-Native Research Artifacts, scoring six dimensions (evidence relevance, falsifiability, scope calibration, argument ... | |
@@ -10,12 +10,12 @@ links N reference files upstream does not ship.
10
10
 
11
11
  | entry | file | what it covers | flags |
12
12
  |---|---|---|---|
13
- | `huggingface-tokenizers` | `02-tokenization/huggingface-tokenizers/SKILL.md` | Fast tokenizers optimized for research and production. | |
14
- | `sentencepiece` | `02-tokenization/sentencepiece/SKILL.md` | Language-independent tokenizer treating text as raw Unicode. | |
15
- | `nemo-curator` | `05-data-processing/nemo-curator/SKILL.md` | GPU-accelerated data curation for LLM training. | |
16
- | `ray-data` | `05-data-processing/ray-data/SKILL.md` | Scalable data processing for ML workloads. | |
17
- | `chroma` | `15-rag/chroma/SKILL.md` | Open-source embedding database for AI applications. | |
18
- | `faiss` | `15-rag/faiss/SKILL.md` | Facebook's library for efficient similarity search and clustering of dense vectors. | |
19
- | `pinecone` | `15-rag/pinecone/SKILL.md` | Managed vector database for production AI applications. | |
20
- | `qdrant` | `15-rag/qdrant/SKILL.md` | High-performance vector similarity search engine for RAG and semantic search. | |
21
- | `sentence-transformers` | `15-rag/sentence-transformers/SKILL.md` | Framework for state-of-the-art sentence, text, and image embeddings. | |
13
+ | `huggingface-tokenizers` | `02-tokenization/huggingface-tokenizers/ENTRY.md` | Fast tokenizers optimized for research and production. | |
14
+ | `sentencepiece` | `02-tokenization/sentencepiece/ENTRY.md` | Language-independent tokenizer treating text as raw Unicode. | |
15
+ | `nemo-curator` | `05-data-processing/nemo-curator/ENTRY.md` | GPU-accelerated data curation for LLM training. | |
16
+ | `ray-data` | `05-data-processing/ray-data/ENTRY.md` | Scalable data processing for ML workloads. | |
17
+ | `chroma` | `15-rag/chroma/ENTRY.md` | Open-source embedding database for AI applications. | |
18
+ | `faiss` | `15-rag/faiss/ENTRY.md` | Facebook's library for efficient similarity search and clustering of dense vectors. | |
19
+ | `pinecone` | `15-rag/pinecone/ENTRY.md` | Managed vector database for production AI applications. | |
20
+ | `qdrant` | `15-rag/qdrant/ENTRY.md` | High-performance vector similarity search engine for RAG and semantic search. | |
21
+ | `sentence-transformers` | `15-rag/sentence-transformers/ENTRY.md` | Framework for state-of-the-art sentence, text, and image embeddings. | |