@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
package/CHANGELOG.md CHANGED
@@ -6,6 +6,415 @@ adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [1.13.0] - 2026-10-29
10
+
11
+ ### Fixed
12
+
13
+ - **omp handed the Stop rule a message object, not the reply (plan 143).**
14
+ omp's `session_stop` carries `last_assistant_message` as the object its
15
+ `getLastAssistantMessage()` returns. The bridge passed it through, so the
16
+ rule judged `str(dict)`: one line, no list items, diluted prose.
17
+ - Every line-shaped class read a text with no lines: the list cap, the
18
+ residual sections, the question the reply ends on, the handed step. The
19
+ language check read a share that was not the reply's.
20
+ - Measured on the owner's evidence database: 1643 of 1656 omp `shape` rows
21
+ of 45 days carried `lines: 1`. Every other host wrote 209 multi-line of
22
+ 231. Of three days' refusals, 24 were `reply language` over such a row.
23
+ - `stop_reason` reads every reply through `reply_prose` now, so no host can
24
+ repeat it. The omp bridge sends the text blocks.
25
+
26
+ ### Added
27
+
28
+ - **The Stop rule knows the host's plan mode (plan 142).** Every Stop adapter
29
+ passes the host's `permission_mode` to the core now. omp's extension sends
30
+ `plan` from `ctx.sessionModes.getState()`. `plan` and Droid's `spec` are the
31
+ read-only ones.
32
+ - In such a turn the rule lets the approval question through. It used to
33
+ refuse it as a `needless ask` - the one question that mode allows.
34
+ - A first-person claim that a command or check ran, made in such a turn, is
35
+ the new `plan claim` class. Nothing could run, so the claim says what
36
+ cannot have happened. A check that passed anyway clears it, and a plan's
37
+ own acceptance line ("Done when all tests pass") is no claim.
38
+ - The new `handed step` class refuses a reply that tells the reader to run a
39
+ command. It asks only of a turn that ran commands of its own, outside plan
40
+ mode. An outward step, one no default may take, the owner's consent,
41
+ tezgah's own install and a `brew` step stay the user's. So does a line that
42
+ types its blocker, and an answer about how a command is run.
43
+ - Measured on the owner's transcripts: of 3307 user turns, 27 replies handed
44
+ back a command and no class refused any of them. The shipped shapes refuse
45
+ 9 turns, 8 of them a step the session could have taken.
46
+
47
+ ## [1.12.0] - 2026-10-29
48
+
49
+ ### Added
50
+
51
+ - **Amp is a host (`amp`, plan 140).** `tezgah-setup --install --hosts amp`
52
+ writes one TypeScript plugin, `tezgah.ts`, into Amp's system plugin dir.
53
+ That dir is `$XDG_CONFIG_HOME/amp/plugins/`, else `~/.config/amp/plugins/`.
54
+ The install renders it from `hosts/amp/tezgah-plugin.ts.in`. Amp loads every
55
+ `.ts` there, and a running Amp needs `plugins: reload`. The install links the
56
+ skills into `~/.config/amp/skills` and writes the always-on block into
57
+ `~/.config/amp/AGENTS.md`. It sets Amp's two commit trailers
58
+ (`amp.git.commit.coauthor.enabled`, `amp.git.commit.ampThread.enabled`) to
59
+ false in `settings.json` unless the user set them. It writes that file only
60
+ while it is plain JSON with no `settings.jsonc` beside it. The uninstall
61
+ removes the plugin only when it is tezgah's render. It drops a trailer key
62
+ only while that key is still false.
63
+ - The plugin spawns `hosts/amp/hook.py` without blocking. One plugin process
64
+ serves many threads, so it keys its state by thread id. A dead, slow or
65
+ crashing hook allows every call, and the plugin tells each thread once.
66
+ - `tool.call` refuses with `{action: "reject-and-continue"}`. It asks the gate
67
+ for `Bash`, `shell_command`, the edit tools, `Task` and MCP effect names. A
68
+ shell call's text reaches the gate as `command`, also when Amp sends `cmd`.
69
+ - A tool result counts as passed only with an integer `exitCode` on its
70
+ output object. `error` and `cancelled` are failures. A bare `done` shell
71
+ result is a run, never a pass.
72
+ - `agent.end` judges a `done` turn and continues it with `[tezgah:stop]
73
+ <reason>`. The plugin never sends that prompt as the user's. So it writes no
74
+ turn row, grants nothing and cannot reset the re-ask budget. A thread with
75
+ a parent thread is a subagent. It gets the subagent brief, and its end is a
76
+ record-only row.
77
+ - The session brief rides the thread's first `agent.start`. The status line
78
+ goes on Amp's experimental status item for the active thread.
79
+ - `--report` has Amp rows. `--report --live` loads the plugin with node and
80
+ drives its `tool.call` and `tool.result`. The row stays UNVERIFIED, since
81
+ Amp's own loader did not run it. `tezgah-doctor --stack` reads Amp's
82
+ guidance files, skills, plugins and `amp.mcpServers`. `read_web_page` is a
83
+ web channel for the untrusted label. README and docs name all fourteen
84
+ hosts.
85
+ - **Goose is a host (`goose`, plan 139 slice 5).** `tezgah-setup --install
86
+ --hosts goose` writes tezgah's own plugin dir, `~/.agents/plugins/tezgah/`.
87
+ It holds `plugin.json`, `hooks/hooks.json` and `skills/` links, and it is
88
+ wholly tezgah's. Goose loads the skills as `tezgah:<skill>`. The timeouts are in seconds: Stop 30, the
89
+ rest 5. `on_failure` stays at Goose's default `allow`, so the gate fails open
90
+ on a hook fault. The always-on block goes in `~/.config/goose/.goosehints`.
91
+ Goose adds no co-author trailer and names no setting for one, so there is
92
+ nothing to turn off. The uninstall deletes the plugin dir and the block and
93
+ leaves the rest of `~/.agents` alone.
94
+ - `hosts/goose/hook.py` handles SessionStart (attestation only),
95
+ UserPromptSubmit (the turn row only), PreToolUse, PostToolUse,
96
+ PostToolUseFailure and Stop. The event is the payload's `event`, the cwd its
97
+ `working_dir`, else the hook's own. `shell`, `write` and `edit` map to Bash,
98
+ Write and Edit, with `path` as `file_path` and `before`/`after` as
99
+ `old_string`/`new_string`. `<extension>__<tool>` becomes
100
+ `mcp__<extension>__<tool>`.
101
+ - PreToolUse and Stop block with `{"decision": "block", "reason": ...}` on
102
+ stdout. The outcome is the event: PostToolUse is a pass, PostToolUseFailure
103
+ a failure. Stop judges `last_assistant_message`, or writes a
104
+ `reply_unread` row. With no host block count, the turn rows bound the
105
+ re-asks.
106
+ - `--report` has Goose rows, including one for `disabledPlugins`. `--report
107
+ --live` probes the hook command with Goose's payload and block shape.
108
+ `tezgah-doctor --stack` reads Goose's hints, skills, plugins and the
109
+ `extensions:` map of `config.yaml`. No run has shown the binary obeying the
110
+ block. README and docs/layers.md now name all thirteen hosts.
111
+ - **Antigravity CLI is a host (`antigravity`, plan 139 slice 4).**
112
+ `tezgah-setup --install --hosts antigravity` writes tezgah's hook set under
113
+ the `tezgah` name of `~/.gemini/config/hooks.json`. The user's other names
114
+ stay. The Antigravity App and IDE load that file too. The timeouts are in
115
+ seconds: Stop 30, the rest 5. The status line goes in
116
+ `~/.gemini/antigravity-cli/settings.json` while it is plain JSON, and the skill
117
+ links go in `antigravity-cli/skills`. Antigravity adds no co-author
118
+ trailer of its own, so there is nothing to turn off. The always-on block is
119
+ the `~/.gemini/GEMINI.md` one Gemini CLI shares. An uninstall now keeps it only
120
+ while another armed host reads the same file, so with `GEMINI_CLI_HOME` set
121
+ the two blocks come and go apart.
122
+ - `hosts/antigravity/hook.py` handles SessionStart, PreInvocation,
123
+ PreToolUse, PostToolUse and Stop. The payload names no event, so each
124
+ command passes it as its first argument. `conversationId` is the session
125
+ and `workspacePaths[0]` the cwd. The adapter renames the PascalCase tool
126
+ arguments into the gate's fields: `CommandLine`, `TargetFile`, `CodeContent`,
127
+ `TargetContent`/`ReplacementContent` and `ReplacementChunks`.
128
+ - PreToolUse denies with a top-level `decision: deny`. An allowed call
129
+ answers `decision: allow`, since Antigravity requires the field. PostToolUse reads
130
+ the outcome off `error`: empty is a pass, anything else a failure. The first
131
+ invocation of a turn writes the turn row and carries the reminder as an
132
+ `ephemeralMessage`. A loop that a refusal re-entered writes no turn row, so
133
+ the refusal budget holds.
134
+ - Stop reads the reply from `transcriptPath`, or writes a `reply_unread` row.
135
+ It judges only an idle `model_stop`, and `decision: continue` sends the
136
+ model back into the loop with the reason.
137
+ - `--report` has Antigravity rows, including one for `enabled: false` on the
138
+ `tezgah` name. `--report --live` probes the hook command with Antigravity's
139
+ camelCase payload and deny shape. No run has shown the binary obeying the
140
+ deny.
141
+ - **Gemini CLI is a host (`gemini`, plan 139 slice 3).** `tezgah-setup
142
+ --install --hosts gemini` writes tezgah's own extension dir,
143
+ `~/.gemini/extensions/tezgah/`. It holds `gemini-extension.json`,
144
+ `hooks/hooks.json` and links to the skills.
145
+ `GEMINI_CLI_HOME` moves `~/.gemini` under it. The timeouts are in
146
+ milliseconds: AfterAgent 30000, the rest 5000. settings.json is never
147
+ written, since it is JSON with comments and holds the user's keys. Gemini's
148
+ default prompt adds no co-author trailer and no setting names one. The
149
+ always-on block goes in `~/.gemini/GEMINI.md`, which Antigravity reads too.
150
+ `--uninstall` deletes the extension dir and strips the block only while no
151
+ other host that reads it stays armed.
152
+ - `hosts/gemini/hook.py` handles SessionStart, BeforeAgent, BeforeTool,
153
+ AfterTool and AfterAgent. BeforeAgent writes the turn row and carries the
154
+ per-turn reminder. BeforeTool maps `run_shell_command`, `write_file`,
155
+ `replace`, the grep tools and the subagent tools into the gate's names, and
156
+ `mcp_<server>_<tool>` into `mcp__<server>_<tool>`. It denies with a
157
+ top-level `decision: deny` on exit 0.
158
+ - AfterTool reads the outcome off `tool_response`: an `error` is a failure,
159
+ and a shell result's `Exit Code: N` names a non-zero code. A shell run that
160
+ printed its `Output:` with no exit-code line is a pass, since Gemini writes
161
+ that line only for a non-zero code. AfterAgent judges `prompt_response` and
162
+ denies with `decision: deny`. Gemini sends the reason back through
163
+ BeforeAgent as the next prompt, and that turn row does not reset the
164
+ refusal budget. The status segment rides `systemMessage`.
165
+ - `--report` has Gemini rows, including one for `hooksConfig.enabled: false`
166
+ in settings.json, which runs no hook at all. `--report --live` probes the
167
+ hook command with Gemini's own payload and deny shape. No run has shown the
168
+ binary loading the extension or obeying the deny.
169
+ - **GitHub Copilot CLI is a host (`copilot`, plan 139 slice 2).** `tezgah-setup
170
+ --install --hosts copilot` writes `$COPILOT_HOME/hooks/tezgah.json`, a hooks
171
+ file that is wholly tezgah's. `COPILOT_HOME` defaults to `~/.copilot`. The
172
+ timeouts are in seconds: PreToolUse 10, Stop and SubagentStop 30, the rest 5.
173
+ The inline `hooks` key of settings.json is never used, since one bad item
174
+ there rejects every hook in it. The install sets two keys in settings.json
175
+ while it is plain JSON. The status line runs `tezgah-statusline --copilot`.
176
+ `includeCoAuthoredBy` is `false`, so the agent's commits carry no co-author
177
+ trailer. A value the user set stays. The install links the skills into
178
+ `$COPILOT_HOME/skills` and writes the always-on block in
179
+ `copilot-instructions.md`. `--uninstall` deletes tezgah.json and takes back
180
+ only tezgah's settings keys, links and block.
181
+ - `hosts/copilot/hook.py` uses the PascalCase events, so payloads carry
182
+ snake_case fields and Claude tool names. It maps the runtime spellings too.
183
+ An Edit that names no file but carries a patch reaches the gate as
184
+ `apply_patch`. An MCP tool's `<server>-<tool>` becomes
185
+ `mcp__<server>__<tool>` for a server `mcp-config.json` names. It denies
186
+ with a top-level `permissionDecision: deny` on exit 0.
187
+ - A PreToolUse hook that times out lets the call through, by Copilot's own
188
+ rule. One that crashes denies the call. A repo's `.claude/settings.json`
189
+ hooks run there too.
190
+ - PostToolUse records a pass and PostToolUseFailure a failure. A shell
191
+ result's `exit code N` overrides either. Stop carries no reply, so the hook
192
+ reads the last `assistant.message` from `transcript_path`. A turn end with
193
+ none there becomes a `reply_unread` row. Copilot drops a command hook's
194
+ UserPromptSubmit output, so there is no per-turn reminder. The event still
195
+ writes the turn row. subagentStart gives a delegate the brief. A
196
+ SubagentStop only records its verdict.
197
+ - `--report` has Copilot rows, and `--report --live` probes the hook command
198
+ with Copilot's own payload and deny shape. No run has shown the binary
199
+ obeying the deny.
200
+ - **Command Code is a host (`commandcode`, plan 139 slice 1).** `tezgah-setup
201
+ --install --hosts commandcode` merges tezgah's hook groups into the `hooks`
202
+ key of `~/.commandcode/settings.json` beside the user's. Their timeouts are in
203
+ seconds. The same write sets `attribution.commit` to `""`, so commits carry no
204
+ `CommandCodeBot` co-author trailer. A value the user set stays. The install
205
+ links the skills into `~/.commandcode/skills`. It writes the always-on block
206
+ in `~/.commandcode/AGENTS.md`. `--uninstall` takes back only tezgah's groups,
207
+ links and block. It drops the attribution key only while it holds what the
208
+ install wrote.
209
+ - Command Code's settings hooks see only shell, read, write and edit. So the
210
+ PreToolUse matcher is `shell|write|edit`. The gate there never sees read,
211
+ MCP, subagent or web calls, and plan mode skips every hook.
212
+ - `hosts/commandcode/hook.py` maps `shell_command`, `write_file` and
213
+ `edit_file` onto the gate. It folds a shell call's `args` into `command`.
214
+ It hands `old_value`/`new_value` over as `old_string`/`new_string`. It
215
+ denies with `permissionDecision: deny` on exit 0. It reads a shell call's
216
+ outcome off an `exit code N` in its result. A result with no code counts
217
+ as a run, never a pass.
218
+ - Stop carries no reply, so the hook reads it from `transcript_path`. A turn
219
+ end with none there becomes a `reply_unread` row. The status segment rides
220
+ `systemMessage` at SessionStart and Stop. There is no prompt event, so no
221
+ per-turn reminder.
222
+ - `--report` has Command Code rows, and `--report --live` probes the hook
223
+ command with Command Code's own payload. No run has shown the binary
224
+ obeying the deny.
225
+ - **Factory Droid is a host (`droid`, plan 138 wave 1).** `tezgah-setup --install
226
+ --hosts droid` merges tezgah's hook groups into `~/.factory/hooks.json` beside
227
+ the user's. Their timeouts are in seconds, as Droid reads them. The install
228
+ also links the skills into `~/.factory/skills` beside the user's own links.
229
+ It writes the always-on block in `~/.factory/AGENTS.md`. It sets the
230
+ `statusLine` command and `includeCoAuthoredByDroid: false` in `settings.json`.
231
+ The install edits a settings.json with comments in place and keeps its
232
+ comments (plan 141). `--uninstall` takes back only tezgah's groups, links and keys.
233
+ - Droid reads the `hooks` key of settings.json only while hooks.json is
234
+ absent. So the install creates no hooks.json beside such a key, and the
235
+ report row says why. Then settings.json stays untouched.
236
+ - `hosts/droid/hook.py` maps Droid's tool ids (`Execute`, `Create`,
237
+ `ApplyPatch`, `FetchUrl`) onto the gate and hands ApplyPatch's `input` over
238
+ as `patch`. It denies with `permissionDecision: deny` on exit 0 and reads a
239
+ shell call's outcome off its `[Process exited with code N]` line.
240
+ - Droid's Stop carries no reply, so the hook reads the reply from
241
+ `transcript_path`. A turn end whose reply is not there yet becomes a
242
+ `reply_unread` row and is not judged. SubagentStop records `task_result`
243
+ as a `subagent_end` row.
244
+ - `--report` has Droid rows, and `--report --live` probes the hook command
245
+ with Droid's own payload. `tests/e2e_droid.py` runs the real binary only
246
+ under `TEZGAH_E2E_SPEND=1`, because it spends a model call.
247
+
248
+ - **Qwen Code is a host (`qwen`, plan 138 wave 1).** `tezgah-setup --install
249
+ --hosts qwen` merges tezgah's hook groups into `~/.qwen/settings.json` beside
250
+ Orca's. Their timeouts are in milliseconds, as Qwen reads them. The install
251
+ also adds the `ui.statusLine` command, the skill links and the always-on
252
+ block in `~/.qwen/QWEN.md`. `--uninstall` takes back only tezgah's groups and keys.
253
+ - `hosts/qwen/hook.py` maps Qwen's tool ids (`run_shell_command`,
254
+ `write_file`, `edit`, `agent`, `grep_search`) onto the gate. It denies with
255
+ `permissionDecision: deny` on exit 0, blocks Stop on
256
+ `last_assistant_message`, briefs a subagent at SubagentStart and records
257
+ its end at SubagentStop.
258
+ - `--report` has Qwen rows, and `--report --live` probes the hook command
259
+ with Qwen's own payload. `tests/e2e_qwen.py` runs the real binary only
260
+ under `TEZGAH_E2E_SPEND=1`, because it spends a model call.
261
+ - `tezgah-doctor --stack` and the session attestation know the host. An
262
+ unknown host no longer crashes the attestation.
263
+ - A host-file backup is now owner-only, and a rewritten host config keeps
264
+ its file mode, because Qwen's settings.json holds provider keys.
265
+
266
+ - **Review rules taken from google/elephant-goldfish-model (plan 137).** The
267
+ owner chose them from research line `egm-lessons`. No EGM file ships:
268
+ - `tezgah-task review NNN <r> approve` refuses a plan with no review slice
269
+ record. A host with no slice journal passes `--no-slice "<why>"`, and the
270
+ reason lands on the review line (`bin/tezgah-task`).
271
+ - The contract says that no fresh subagent means no review verdict. It also
272
+ says the author contests a finding only with a file:line and never lowers
273
+ a severity (`hooks/tezgah_policy.py`).
274
+ - tezgah-reviewer has a plan-readiness mode for a plan file. A design choice
275
+ left to the implementer is a major finding, and so is a section it cannot
276
+ paraphrase. plan-add runs it before `phase implementation`
277
+ (`hooks/tezgah_agents.py`).
278
+ - graph-review merges findings with the same file, line and title before its
279
+ verification cap, and reports `caps.deduplicated`.
280
+ - `tests/test_links.py` resolves every relative markdown link the repository
281
+ owns.
282
+
283
+ ### Changed
284
+
285
+ - **The gate refuses a credit verb with "with" or "using" too.** The attribution
286
+ rule read `written by` and `built by`, so `Drafted with Claude` passed. The
287
+ credit verbs now include `drafted`, `produced` and `composed`, and each takes
288
+ `by`, `with` or `using` before a model or vendor name. Prose such as
289
+ `drafted with the owner` still passes (`hooks/tezgah_gate.py::_CREDIT`, plan
290
+ 137).
291
+
292
+ - **A release tag must sit on main.** A new `on-main` job in `release.yml`
293
+ fails the run on a tag off `origin/main`. Then no job builds or uploads
294
+ anything (plan 137).
295
+
296
+ - **An owner-only choice waits for the owner.** Class F now names three more
297
+ steps. One is picking a variant a research, analysis or review recommends.
298
+ The others are a way around a tezgah refusal and deciding about another
299
+ session's work. The core
300
+ Ask policy, the per-turn reminder and the ask warning carry them too. The Stop
301
+ rule's `needless ask` lets a question that asks the owner to pick between
302
+ options through (`OWNER_CHOICE`, `hooks/tezgah_integrity.py`). A worker returns
303
+ such a question as `ESCALATE: owner`, and the orchestrator relays it to the
304
+ user instead of answering it (plan 136).
305
+
306
+ - **A research line records the owner's pick apart from its own.** A rules-9
307
+ line writes its pick as `recommended:` in `decision.md`. A `chosen:` line
308
+ needs the owner's words, which `tezgah-research choose <slug> <decision>
309
+ <variant> --ack "<words>"` writes. The line's rules judge its own pick, never
310
+ the owner's, so an owner may take a dominated variant. `conclude` says when a
311
+ recommendation still waits for the owner (`hooks/tezgah_research.py`).
312
+
313
+ - **A line in flight no longer blocks `init --allow-open`.** A line whose only
314
+ `check` errors are pending verdicts is in flight, not broken. Both `init`
315
+ refusals now say that another session's line goes to the owner.
316
+
317
+ ### Fixed
318
+
319
+ - **Three new hosts no longer record a check that did not pass as a pass.**
320
+ Antigravity's PostToolUse has no output. A command that went to the
321
+ background also ends with an empty `error`. So the hook records each
322
+ Antigravity shell call as ran, never a pass, and Antigravity can never show
323
+ a passing check. A Copilot shell success with no `exit code N` text (a
324
+ background launch) is ran, never a pass. A Gemini result with a `Signal:`
325
+ line (a runner killed by a signal) is a failure.
326
+ - **The gate guards Gemini's and Goose's hook-off keys.** These are Gemini's
327
+ `hooksConfig` and Goose's `disabledPlugins`. Claude's `disableAllHooks` had
328
+ the same guard.
329
+ - **The Command Code uninstall removes tezgah's `attribution.commit: ""`
330
+ beside the user's other attribution keys**, not only when it stood alone.
331
+
332
+ - **A hidden research dir is no longer invisible.** A dot dir under
333
+ `.tezgah/research/` is an error in `status` and in `check` with no slug. The
334
+ gate refuses a write there (`research_hidden_reason`, `hooks/tezgah_gate.py`).
335
+ A session had run a whole line under `.tezgah/research/.staging/` after an
336
+ `init` refusal.
337
+
338
+ ## [1.11.0] - 2026-10-23
339
+
340
+ ### Added
341
+
342
+ - **A window names the row contract it read.** `tezgah-status --rates` now
343
+ counts each row's `v` per window. A window that read two contracts prints the
344
+ split, and a delta whose two windows lean on different contracts says so. The
345
+ reason is that `claims` is one quantity under `v2` and another under `v3`
346
+ (plan 135). A `v2` writer recorded every judged reply as a `claim` row. A `v3`
347
+ writer records a reply that claimed nothing as a `refusal` row. A share
348
+ compared across that seam is not one number, and the report no longer presents
349
+ it as one (`rates`, `hooks/tezgah_integrity.py`, `bin/tezgah-status`).
350
+
351
+ - **The ledger reads a window, not only a lifetime.** `tezgah-status --rates
352
+ --since DATE --until DATE` folds every real ledger's rows in that span. The
353
+ fold runs per window and per calendar day. It carries turns, `claim` rows and
354
+ the Stop classes that blocked them. It also carries the shape flags of each
355
+ judged reply, and denies by rule (`rates`, `hooks/tezgah_integrity.py`). The
356
+ rates are blocks per 100 turns and denies per 100 sessions. They also carry
357
+ the claim block and Stop shape shares, and blocked claims per 100 sessions by
358
+ class. `--until` is exclusive, so two adjacent windows partition the span. A
359
+ repeated `--since`/`--until` pair prints the pp delta between adjacent
360
+ windows. `counters_all()` keeps answering exactly what it answered on the
361
+ same ledger: the window lives in the new reader. `--json` prints
362
+ `{"windows": [...]}`, and `docs/status-line.md` carries the reading.
363
+
364
+ - **Hallmark ships as tezgah's UI generator.** `skills/hallmark` ships whole at revision `7ec8682`. It brings 48 themes, each with a picture, and 20 macrostructures. It also brings 98 reference pages and the zero-dependency `sloplint`. Every file is upstream's bytes, hashed in its own `SOURCE`. Upstream's `LICENSE` sits beside it. `tezgah-design slop --repo . [--render]` runs its gate list and writes `.tezgah/design/slop.json`. It exits 1 on a Floor FAIL. It exits 3 when Node or the skill is missing, which is a check that did not run. The Stop rule counts that verdict where it counts `tezgah-design check`. The UI floor is the union of both.
365
+
366
+ - **A contract reads Hallmark's locked `design.md`, and one precedence table decides the floor.** A `design.md` or `DESIGN.md` at the repository root now feeds `derive`. It gives the palette and font roles, with `source: design-md`. The palette converts from OKLCH to the hex `check` compares. A token file beside it no longer competes. The contract gains a `precedence` block. It names `ours` (states, components, evidence, facts) and `theirs` (material, motion character). It names `shared` (contrast, focus-visible, reduced-motion, tap-target) and `verbatim: style`. `check` refuses with exit 2 a key named by two classes. It also refuses `facts` handed to a theme or to the user's own words.
367
+
368
+
369
+ ### Changed
370
+
371
+ - **Skills reach the session on every armed host.** A UI ask arms a new conditional rule that names `design-contract`, `design-library`, `analyze-app` and `feature-audit`. `design-off` turns it off. The product rule also names `pm-frameworks`. A repeat match keeps the rule's action and its skill names (`ARMED_ACTIONS`), not a bare "Armed again". Every tezgah CLI in the injected text renders as its installed absolute path (`BIN_TOOLS`). Under a tight budget the skill hint now outlives the per-turn lessons and the index line. Shipped skill descriptions open with `Use when`, carry English and Turkish triggers and stay within 160 characters. Their longer text moved to a `## When to use` section, which the collision table now reads. Skill bodies call `~/.config/tezgah/bin/<cmd>`. The local skill hint ranks tezgah's and the project's skills before the hosts' global corpora. It folds Turkish letters, indexes five-letter prefixes and keeps one index per project that ships skills. The 144 vendored library entries are `ENTRY.md`, so codex and Cursor no longer list them as skills. `tezgah-skill` and `codegen` run through their `~/.config/tezgah/bin` symlink. `codegen --help` and `tezgah-research init --help` print their usage and exit zero. Cursor's per-turn text is cut to its 10000-unit hook limit, counted in UTF-16 units as Cursor counts, so Cursor no longer drops it whole. On opencode 2 the installer skips `tui.json` and `compaction.prune`, and the status line is a `cli.json` plugin. `--install --hosts X` keeps the hosts already recorded, and a partial uninstall takes its hosts off the record. A skill the repository ships reaches the hint by its path, marked as repository-provided data and read bounded. A UI build goes to `tezgah-standard`, whose brief loads `design-contract`. Agent briefs and the gate and Stop refusals name the installed CLI path too (plan 126).
372
+
373
+ ### Fixed
374
+
375
+ - **A runner's flag does not hide its check.** `pnpm --filter mobile test` was
376
+ read as a plain command. The same held for `npm`, `yarn` and `bun`. A check the
377
+ turn really ran recorded as `run`. The Stop rule then refused the claim it
378
+ supported (`no verify_ok`). `VERIFY` now reads a run of flags before the task.
379
+ It reads the value a flag takes too: `--filter <name>`, `--prefix <dir>`,
380
+ `-C <dir>` and `--workspace <name>`. `uv run --project <dir> pytest` and
381
+ `uv run python -m pytest` join the table. So does
382
+ `pnpm --filter <name> exec <tool>`, which reaches the JS tool entry the same
383
+ way. A formatter's write mode is still a change. An information form still
384
+ checks nothing (`hooks/tezgah_integrity.py`, `tests/test_integrity.py`).
385
+
386
+ - **A turn of reads owes no check, and the shell readers agree with bash**. The Stop rule refused an advice turn of reads in a `for` loop or a `$( )`. The model then answered in self-defence rather than acting. Such a turn now ends without a check. An edit, or a done/tested claim, is still refused. The readers that decide what a command runs now follow bash on these shapes. Both readers delete a backslash-newline exactly where bash deletes it. A `)` closing a substitution is part of the word. A `#` after a backtick, an escaped boundary or a `)` is mid-word. An fd number glued to its redirect is no program word, while `1 <` stays a program. An arm after a negated command stays alive. A `printf -v` or a `set -o` is no read. The opencode port answers the same, and `tests/fuzz_shell.py` draws these shapes so real bash checks the readers.
387
+
388
+ - **More rules-8 refusals give way.** A registered metric that rewords the lock (`read-path p95 latency` for `p95 latency of the read path`) matches it. A run log above 16 MiB files whole with `source --ack "<the user's words>"`, which the refusal now names. A draw after labels is a `gold ... --redraw --ack "<the user's words>"`, which `check` reads as the draw every rule uses. A gold sample too small to reach the `mde` leaves the instrument `unvalidated`, not `rejected`. `search` takes PubMed, Scopus and ACM DL. Scopus needs `TEZGAH_SCOPUS_KEY`. ACM DL reads through Crossref's ACM member, because its site answers a browser check. `orx runs`'s table is read as runs for the census, since orx 0.2.20 has no `--json`. A quote still matches where an extraction dropped a space (`human-inthe-loop`).
389
+
390
+ - **Rules-8 checks stop refusing sound lines.** A quote passes when any cited note's capture holds it. Its refusal names the notes it searched. A superseded claim's quotes go unchecked. Normalisation drops inner quotation marks and reads arXiv TeX as rendered. An open-access landing page under 100 body sentences captures as `abstract`, a step instead of a refusal. A receipt naming another id for the work warns instead of refusing. The report's share takes `closed-access`, `not full text` or `abstract-only`. Ledgers keep each version's rows in order, so merged appends pass and `check` refuses a reorder. Receipt and search rows carry their `parser` version. `check` re-derives every row and refuses one from a newer parser. `cite` keeps only 200 answers, and `check --online` compares only those. A `metric:` list no longer splits inside parentheses, digit groups or the locked name, and a word prefix matches the lock both ways. `source` refuses before writing over a metric other than the locked one or an uncommitted arena. The `not_reported` message names the exit that still works before and after the run. Log numbers read with a unit glued on. A label a refile left stale reads unlabelled. A concluded line reads its evaluator as sealed at its conclusion, and `check` also finds it in the checkout it runs in. `commit` with nothing to commit exits 0. `gold` refuses over uncommitted verdict rows. `docs/research.md` covers each change and the formats a new line writes by hand (plan 128).
391
+
392
+ ## [1.10.1] - 2026-10-19
393
+
394
+ ### Fixed
395
+
396
+ - **The opencode member of a second opinion answers again.** `consult` and the judge ran `opencode run --pure`, whose exit 1 left that member silent. Both argv sites now run `opencode run` the way the user's own CLI does. No 2.x flag replaces `--pure`, so the judge's inline config still denies its tools, and `docs/judge.md` lists the flags each CLI really takes.
397
+ - **A worktree made outside tezgah links the workspace instead of forking it.** `ensure_workspace` made a second `.tezgah` there, with its own `git init`. Research, migrate and the session start all forked the store that way. It now links the main checkout's workspace and returns it, the link a session start already made. A relative `.tezgah/...` write from the worktree lands in the one store. The link is also made on a compaction and on a delegated agent's first call. A worktree Orca or a plain `git worktree add` made stayed without one until a session started there.
398
+
399
+ ## [1.10.0] - 2026-10-19
400
+
401
+ ### Added
402
+
403
+ - **A repository extends the status line with its own chips.** The repository puts `.tezgah/extension.json` at its top and names a command that prints segments. `health_segments()` walks up to the nearest manifest and runs it once per render, with the repo root as cwd. Each call reaches the child as one JSON object on its stdin: `api`, `event`, `cwd`, `repo_root` and `session_id`. The extension then knows which repository and which session asked it. It appends what comes back after every built-in mark. An extension produces data - `{key, state, glyph, text}` - and tezgah draws it. Color, the narrow-surface drop and the group separators then stay identical. The extension belongs to the user's repo in whatever language, so it runs as a bounded subprocess and never an import. A missing or malformed manifest, an absent command, a non-zero exit, a timeout or a bad shape all cost it its chips. A repo with no manifest pays one `os.path.isfile` per level.
404
+ - **A repository says its workspace is not this harness's.** Tezgah armed every repository under a root, and no project could opt out. A committed `tezgah.owner` at the repository's top now says who owns the workspace, and its two settings turn seams off. `tasks: off` stops the plan and task machine. No active task, no per-turn phase line, and no `tezgah-task` command that writes a record runs - the slice journal and `sweep` included. The gate holds no write to its own plan files. The scope gate, research and lessons keep reading the repository. `harness: excluded` takes the repository out of every root, and nothing runs there. A repository cloned inside a marked one answers for itself, since the file comes from the nearest `.git` top. A file that cannot be …
405
+
406
+ ### Changed
407
+
408
+ - **The no-plan refusal on a trunk offers no bind route.** On `main` or `master` it used to offer `tezgah-task start NNN --branch <trunk>`. The gate never honoured that binding, so the next write met the same refusal. The text now names the `plan/NNN-slug` route or a non-trunk branch a plan declares. `tezgah-task start --branch main` or `--branch master` now exits 2 and writes nothing.
409
+ - **The impacted run checks a changelog entry's prose.** `tests/impacted.py` now maps `CHANGELOG.md` to `test_clarity.py` too. Before, the impacted run stayed green on an entry the ratchet refuses. The v1.9.1 release CI failed on exactly that.
410
+ - **A linked worktree starts with its main checkout's code graph.** A new worktree had no index, so its slices fell back to text search. The auto-index now copies the main checkout's index into a worktree that has none, before the worker starts. The worker then runs the incremental `codegraph sync` on that copy. On this repository that took 1 s, against 10 s for a full `init`. `tezgah-task start` run inside a worktree does the same when it binds the plan. A copy that fails falls back to `init`.
411
+
412
+ ### Fixed
413
+
414
+ - **A stopped installer leaves no orphan behind.** A Ctrl-C or a timeout kills the installer's whole process group. On macOS under load, a member caught mid-fork could survive that kill and hold the caller's pipes open. The cleanup now signals the group again until it is empty, for at most 2 s. Under load, 1800 runs gave 0 hangs, against 6 in about 638 before the fix.
415
+ - **A subagent message no longer counts as a product file.** The no-plan rule read `agent://<id>` or `local://x.md` as a checkout file. Two such messages and one real file on `main` met the third-file refusal. A path with a URI scheme other than `file://` now never counts. A `file://` URL now counts as the local file it names, for the no-plan rule and the cross-session write guard alike. A Windows drive path such as `C:/x` still counts. The write guard now matches another URI such as `s3://bucket/key` on its spelling, so two sessions in different directories still race on it.
416
+ - **The replay lists only the writers the race rule refuses on.** The replay named another writer in three cases the live race rule skips. They are a temp file, a shell target whose `$VAR` has no value, and a file an ended subagent of this session wrote. `tezgah-gate replay` and the rule now read one gate helper, so the page lists only writers the live rule would weigh. A live refusal names at most three of them, for its first path.
417
+
9
418
  ## [1.9.2] - 2026-10-17
10
419
 
11
420
  ### Fixed
@@ -1219,7 +1628,12 @@ adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
1219
1628
  the copy could not find `hooks/` and died on import. It now links into the
1220
1629
  installed tree, and also installs the command as `tezgah`.
1221
1630
 
1222
- [Unreleased]: https://github.com/r1z4x/tezgah/compare/v1.9.2...HEAD
1631
+ [Unreleased]: https://github.com/r1z4x/tezgah/compare/v1.13.0...HEAD
1632
+ [1.13.0]: https://github.com/r1z4x/tezgah/releases/tag/v1.13.0
1633
+ [1.12.0]: https://github.com/r1z4x/tezgah/releases/tag/v1.12.0
1634
+ [1.11.0]: https://github.com/r1z4x/tezgah/releases/tag/v1.11.0
1635
+ [1.10.1]: https://github.com/r1z4x/tezgah/releases/tag/v1.10.1
1636
+ [1.10.0]: https://github.com/r1z4x/tezgah/releases/tag/v1.10.0
1223
1637
  [1.9.2]: https://github.com/r1z4x/tezgah/releases/tag/v1.9.2
1224
1638
  [1.9.1]: https://github.com/r1z4x/tezgah/releases/tag/v1.9.1
1225
1639
  [1.9.0]: https://github.com/r1z4x/tezgah/releases/tag/v1.9.0