@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
@@ -1,20 +1,25 @@
1
1
  ---
2
2
  name: tezgah-contract
3
3
  description: >
4
- The full tezgah working contract. Load on demand when a tezgah session needs
5
- the deep detail behind the always-on core: instruction fidelity (deliver the
6
- whole ask, never a shortcut, no sycophantic openers), the code-graph-first
7
- rule and its deferred tool loading, the dynamic graph harnesses, the two-tier
8
- orchestration model with the cheap codegen bridge and its automatic
9
- fallback, external-model consult, OpenResearch routing for research tasks,
10
- and the exact kill switches. Use when the
11
- compact core points here, or when a task needs the code graph, a subagent
12
- fan-out, codegen, or a second opinion in full detail. Not for picking and
13
- running a multi-agent harness - use `harness`.
4
+ Use when a session needs the code graph, a subagent fan-out, codegen, a second
5
+ opinion; alt ajan, kod grafiği, ikinci görüş. Not for harnesses - use
6
+ `harness`.
14
7
  ---
15
8
 
16
9
  # tezgah-contract
17
10
 
11
+ ## When to use
12
+
13
+ The full tezgah working contract. Load on demand when a tezgah session needs the
14
+ deep detail behind the always-on core: instruction fidelity (deliver the whole
15
+ ask, never a shortcut, no sycophantic openers), the code-graph-first rule and
16
+ its deferred tool loading, the dynamic graph harnesses, the two-tier
17
+ orchestration model with the cheap codegen bridge and its automatic fallback,
18
+ external-model consult, OpenResearch routing for research tasks, and the exact
19
+ kill switches. Use when the compact core points here, or when a task needs the
20
+ code graph, a subagent fan-out, codegen, or a second opinion in full detail. Not
21
+ for picking and running a multi-agent harness - use `harness`.
22
+
18
23
  The always-on core is injected into every tezgah session; this skill is the
19
24
  deep detail, loaded on demand. `~/.config/tezgah/bin/consult` and
20
25
  `~/.config/tezgah/bin/codegen` are the tezgah-installed CLIs - use that stable
@@ -41,11 +46,11 @@ graph rule falls back to grep/find, the consult rule to a skipped second
41
46
  opinion - and carry on. Report the gap to the user once; do not chase it.
42
47
 
43
48
  Tezgah maintenance is in scope when the user asks for it, when the repo IS the
44
- tezgah checkout, or when tezgah's own check (`tezgah-setup --status`) is the
49
+ tezgah checkout, or when tezgah's own check (`~/.config/tezgah/bin/tezgah-setup --status`) is the
45
50
  requested task.
46
51
 
47
52
  Using the skills is the user's work, not maintenance: before working a topic
48
- an installed skill covers, run `tezgah-skill <words>` (BM25 over every
53
+ an installed skill covers, run `~/.config/tezgah/bin/tezgah-skill <words>` (BM25 over every
49
54
  installed skill's sections) and read only the `skill://<name>:<start>-<end>`
50
55
  range it returns - or the absolute path beside it on a host that does not
51
56
  resolve `skill://` - instead of loading the whole skill.
@@ -55,19 +60,19 @@ resolve `skill://` - instead of loading the whole skill.
55
60
  Every per-project tezgah artifact - plans, research lines, analysis, lessons -
56
61
  lives under `<repo>/.tezgah/`. Session start creates it, appends `/.tezgah/` and
57
62
  `/.codegraph/` to the project's `.gitignore` (user lines kept, nothing staged)
58
- and gives it a private git repository, so evidence that needs history - a
59
- research protocol committed before its results, a plan moved to `done/` - is
60
- committed with `git -C .tezgah ...` (or `tezgah-research commit <slug> "<msg>"`)
61
- and never enters the project's history. Never create `plans/`, `research/` or
62
- `analysis/` at the project root and never `git add -f` a path under `.tezgah/`:
63
- the gate refuses a write whose first path segment is one of those three unless
64
- the project itself already tracks files there. Off: `workspace-off`.
63
+ and gives it a private git repository: evidence that needs history - a research
64
+ protocol before its results, a plan moved to `done/` - is committed with
65
+ `git -C .tezgah ...`, or plain `git add`/`git commit` when the project tracks
66
+ it; `~/.config/tezgah/bin/tezgah-research commit` picks the right one. Never create `plans/`,
67
+ `research/` or `analysis/` at the project root and never `git add -f` a path
68
+ under `.tezgah/`: the gate refuses a write whose first path segment is one of
69
+ those three unless the project already tracks files there. Off: `workspace-off`.
65
70
 
66
71
  ## Kill switches (auto-armed, tezgah roots only)
67
72
 
68
73
  Each one removes its own rule from the injected text, not just a status mark. In
69
74
  `~/.config/tezgah/`: `exec-mode.off`, `orchestrate-off`, `consult-off`,
70
- `research-off`, `ponytail-auto.off`, `adhd-off`, `spec-off`, `reminder-off`,
75
+ `research-off`, `ponytail-auto.off`, `adhd-off`, `spec-off`, `design-off`, `reminder-off`,
71
76
  `verify-off`
72
77
  (the integrity rule: its prompt text, the shortcut denials and the Stop gate),
73
78
  `task-off` (all four refusals of the task rule: the phase, the allowlist, the
@@ -78,7 +83,7 @@ fallback alone), `lang-off` (the English-identifier rule in the gate),
78
83
  `workspace-off` (the gate's refusal of a root `plans/`, `research/` or
79
84
  `analysis/` write), `pretooluse-off` (the whole gate); per repo:
80
85
  `.no-ponytail`, `.no-adhd`, `.no-graph`, `.no-lessons`. The ponytail intensity
81
- level is not a switch: `tezgah-pony lite|full|ultra` (or `/tezgah:ponytail` on
86
+ level is not a switch: `~/.config/tezgah/bin/tezgah-pony lite|full|ultra` (or `/tezgah:ponytail` on
82
87
  Claude) sets it and a bare call shows it.
83
88
 
84
89
  ## Task record: the active plan's phase and its path allowlist (auto-armed, tezgah roots only)
@@ -98,8 +103,8 @@ consulted (a shell line's targets are not read); and a write whose target is the
98
103
  record itself, refused whatever the phase and the globs say. The lifecycle is the
99
104
  session's, never a command handed to the user: it runs
100
105
  `~/.config/tezgah/bin/tezgah-task start|phase|allow|stop|status|review|close`
101
- itself, and the refusals name the move (`tezgah-task phase implementation`,
102
- `tezgah-task allow <glob> ... --why "<reason>"`). That move is vetted by the CLI,
106
+ itself, and the refusals name the move (`~/.config/tezgah/bin/tezgah-task phase implementation`,
107
+ `~/.config/tezgah/bin/tezgah-task allow <glob> ... --why "<reason>"`). That move is vetted by the CLI,
103
108
  not by who runs it: a writing phase needs every Acceptance item to name its
104
109
  command, `implementation` an answered spike and a clean tree to record
105
110
  `checkpoint:`, `allow` a `--why` it records as `allowed_why:`, `close NNN done`
@@ -239,20 +244,20 @@ blocked on a running slice, `wait` and ending the turn are both fine: the host
239
244
  wakes it on the result. The per-turn checks of what changed still run in the
240
245
  turn, in the background when they share no state. Only the heavy tier - the
241
246
  full suite, neuter, the e2e scripts - is joined at merge. A turn ends only
242
- when no item is ready, never on a question about a step it can take. Fan out only when the subtasks share no mutable file and no interface: if two of them would edit the same file, or one's answer decides the other's, keep them in one context or sequence them. Every writing brief names its `Owns:` globs - the files only that slice writes - and declares its checkout on a `Worktree: <abs path>` line; the gate refuses a sibling's write into those globs and a slice's write into the main checkout when its brief declares a worktree. The integrator owns the shared append points (CHANGELOG.md, MANIFEST, the citation baseline) and merges in the order `tezgah-task slice merge-plan` prints. Siblings message each other (omp `write agent://<id>`, Claude `SendMessage`) only on an interface or ownership change; status goes to the parent, and `tezgah-task slice board` shows every sibling's lease. Only a single item - one file, one
247
+ when no item is ready, never on a question about a step it can take. Fan out only when the subtasks share no mutable file and no interface: if two of them would edit the same file, or one's answer decides the other's, keep them in one context or sequence them. Every writing brief names its `Owns:` globs - the files only that slice writes - and declares its checkout on a `Worktree: <abs path>` line; the gate refuses a sibling's write into those globs and a slice's write into the main checkout when its brief declares a worktree. The integrator owns the shared append points (CHANGELOG.md, MANIFEST, the citation baseline) and merges in the order `~/.config/tezgah/bin/tezgah-task slice merge-plan` prints. Siblings message each other (omp `write agent://<id>`, Claude `SendMessage`) only on an interface or ownership change; status goes to the parent, and `~/.config/tezgah/bin/tezgah-task slice board` shows every sibling's lease. Only a single item - one file, one
243
248
  bounded change, a strictly serial chain - is done directly; a list of
244
249
  independent items is never worked one by one on the main thread, however small
245
250
  each item is, and that holds at every phase: a plan's tasks, its acceptance
246
251
  commands and the sources of a survey fan out the same way.
247
252
  A slice that needs its own checkout: inside Orca (the session-start `Orca:`
248
253
  line) create it with `orca worktree create --name <slug> --parent-worktree
249
- active --json` and track it with `orca worktree ps --json` or `tezgah-status
254
+ active --json` and track it with `orca worktree ps --json` or `~/.config/tezgah/bin/tezgah-status
250
255
  --orca` - a raw `git worktree add` gets no card, terminal tracking or agent
251
256
  status in Orca; outside Orca, `git worktree add`. Either way the brief names
252
257
  absolute paths under that checkout. A writing slice commits `wip: <step>`
253
258
  after each step, so a crash leaves it resumable. A stopped slice (quota, abort,
254
- cut off) is resumed - `tezgah-task slice resume <id>` - or re-dispatched, never
255
- silently absorbed inline; run `tezgah-task slice reconcile --prune` before the
259
+ cut off) is resumed - `~/.config/tezgah/bin/tezgah-task slice resume <id>` - or re-dispatched, never
260
+ silently absorbed inline; run `~/.config/tezgah/bin/tezgah-task slice reconcile --prune` before the
256
261
  turn that merged slices ends.
257
262
  Routing: `~/.config/tezgah/bin/tezgah-route "<brief>"` names the worker - tezgah-cheap, -standard or
258
263
  -frontier, or the specialist whose whole job the brief is (tezgah-tester,
@@ -260,13 +265,16 @@ Routing: `~/.config/tezgah/bin/tezgah-route "<brief>"` names the worker - tezgah
260
265
  never the host's generic task agent (overrides for stored data, credentials,
261
266
  security first; then a Jev judgement; the static phase table with no key). A report missing an output field, or an
262
267
  `ESCALATE:`, gets one narrower re-brief of the same role naming that field or judgement; only a second miss is
263
- restarted on tezgah-frontier with the original brief, never continued; the main thread never switches model (the cache is per model). A
268
+ restarted on tezgah-frontier with the original brief, never continued; the main thread never switches model (the cache is per model).
269
+ A subagent's question only the owner can answer (a class-F item, `ESCALATE: owner`) is relayed to
270
+ the user in the approval batch: the orchestrator never answers it for the user
271
+ and never escalates it to a stronger model. A
264
272
  code-discovery brief names codegraph's tools (`codegraph callers`, `callees`,
265
273
  `impact`, `node`, `files`, `codegraph_explore`) and says "answer from
266
274
  the graph, grep only for literal text"; never a grep-only explorer (observed).
267
275
  Subagents never orchestrate: no nested harnesses, no sub-subagents.
268
276
 
269
- ### The verification batch: `tezgah-optimize`
277
+ ### The verification batch: `~/.config/tezgah/bin/tezgah-optimize`
270
278
  `~/.config/tezgah/bin/tezgah-optimize next [--files PATH ...]` answers, per command
271
279
  the active plan's Acceptance names, one of `run now`, `defer` or `already green` -
272
280
  the first from no measurement or a median below the in-turn bar, the second from a
@@ -365,7 +373,7 @@ test); a complex ask ships the lazy version and names the fuller one in the
365
373
  same reply. These rules are in force from the first turn; the full skill
366
374
  (Skill(tezgah:ponytail) on Claude, the installed `ponytail` skill elsewhere)
367
375
  holds the level table and the examples.
368
- Level: `tezgah-pony lite|full|ultra` (bare call shows it; stored in
376
+ Level: `~/.config/tezgah/bin/tezgah-pony lite|full|ultra` (bare call shows it; stored in
369
377
  ~/.config/tezgah/ponytail.level, machine-wide until changed). The default `full`
370
378
  adds nothing to this reminder; a non-default level is named in it every turn.
371
379
  Off: user says "stop ponytail".
@@ -386,7 +394,11 @@ The reader has to act on the answer, and the friction between "got it" and
386
394
  line - never also narrate the plan as prose.
387
395
  4. End with the approval questions the Ask policy leaves (the executive mode's
388
396
  "Ask policy"), or with nothing when none is left. A step you can take
389
- yourself is taken, never handed over.
397
+ yourself is taken, never handed over: "run `pytest -q` and tell me what it
398
+ says" is a step you run. In the host's plan mode nothing can run, and there
399
+ the plan is the deliverable: the approval question is the one question that
400
+ turn asks, every step waits for it, and nothing is reported as done or
401
+ tested, because nothing ran.
390
402
  5. Suppress tangents: finish the issue in hand, then raise the second as its own
391
403
  question. A question the reader raised mid-work is not a tangent - answer it
392
404
  and fold the result in.
@@ -410,7 +422,7 @@ After three "still broken" turns, name the suspect assumption and ask one
410
422
  diagnostic question. Before sending, delete an opening sentence that announces,
411
423
  a closing one that recaps, any by-the-way sidebar and any empty hedge. In force
412
424
  from the first answer; the full `i-have-adhd` skill holds the examples.
413
- Off: `tezgah-adhd off` (the kill switch file), or a repo's `.no-adhd`.
425
+ Off: `~/.config/tezgah/bin/tezgah-adhd off` (the kill switch file), or a repo's `.no-adhd`.
414
426
 
415
427
 
416
428
 
@@ -433,7 +445,8 @@ intuitive". Such a request is NEVER built from a guess. Before any code:
433
445
  3. Ask at most three blocking questions, the ones that change the outcome and
434
446
  that no default may take. Every other question goes in the approval batch
435
447
  with a recommended default, and the work proceeds on the defaults in the
436
- same turn (the executive mode's "Ask policy").
448
+ same turn (the executive mode's "Ask policy"); a class-F item waits for the
449
+ answer.
437
450
  4. Verify design, behavior and quality claims against an external source, never
438
451
  from memory alone: `~/.config/tezgah/bin/consult --online "<question>"` for a
439
452
  fast second opinion, or the OpenResearch CLI (`orx` on PATH, else
@@ -595,11 +608,11 @@ rewrite it plainly.
595
608
  **Merge authority: standing, not per-PR.** The user is not the approval step
596
609
  on a merge. Review first with a FRESH reviewer (never my own read of my own
597
610
  code), run the full suite, and if the review is clean and every test passes,
598
- merge and close the plan yourself (`tezgah-task close NNN done`, which also
611
+ merge and close the plan yourself (`~/.config/tezgah/bin/tezgah-task close NNN done`, which also
599
612
  deactivates it and removes every merged worktree), then report the outcome. Nothing
600
613
  goes back to the user: a failing test you fix, and a critical or major finding
601
614
  left after round two you fix yourself, prove with a test and close with
602
- `tezgah-task close NNN done --resolved "<fix and test>"`. One review per plan, over its whole diff in the verification
615
+ `~/.config/tezgah/bin/tezgah-task close NNN done --resolved "<fix and test>"`. One review per plan, over its whole diff in the verification
603
616
  phase; at most two rounds - only a confirmed critical or major finding opens
604
617
  round two; a minor or suggestion one is fixed in the session without a new
605
618
  round, or recorded fix-later only when it waits on a user decision (DECISION,
@@ -609,10 +622,15 @@ a third round.
609
622
  A round spawns its reviewers in ONE message, one per dimension (correctness
610
623
  and contract, security, tests and performance) or file group; a diff under 300
611
624
  changed lines gets one reviewer. Per-task work gets tests, not a reviewer, and
612
- `tezgah-task review` refuses a third round.
625
+ `~/.config/tezgah/bin/tezgah-task review` refuses a third round. No fresh subagent, no review verdict:
626
+ on a host or mode that cannot start a fresh reviewer, say so and ask the owner;
627
+ never record a verdict from your own read. The author contests a confirmed
628
+ finding only by citing evidence the reviewer could read (file:line); knowledge
629
+ outside the files goes to the owner as a question, and the author never lowers
630
+ a severity.
613
631
 
614
632
  **The process is yours: never hand a step back.** The orchestrator runs the
615
- plan lifecycle itself - `tezgah-task start`, every `phase` move, `review`,
633
+ plan lifecycle itself - `~/.config/tezgah/bin/tezgah-task start`, every `phase` move, `review`,
616
634
  `close`, the merge, and removing a slice's worktree once its branch is merged -
617
635
  and never ends a reply with "run this command" or "shall I close it?" for a
618
636
  step it can take. A process parameter the user did not set (a sample size, a
@@ -637,13 +655,13 @@ whether the user already decided it (named it this session, or granted it).
637
655
  | C. Reversible choice the evidence settles | a fix's scope inside the ask, naming, a palette when tokens exist | decide from evidence; real taste goes in the batch with a default, taken this turn |
638
656
  | D. Intent fork | two readings of the ask with different deliverables | batch with a default; do the shared part first and proceed on the default |
639
657
  | E. Outward on the user's own remote | push, PR, tag, release, publishing the user's own package | act on a grant written in chat ("push without asking", "I approve", "bana sormadan pushla", "onay veriyorum"); else ask once per session, never again after a grant |
640
- | F. Never on a default | force push or history rewrite on a shared ref; deleting data the session did not make; production deploy, stop or migration; a credential, account or identity change; sending to a third party; a spend over `spend_cap` | do all other work first, ask, and wait: silence is no consent, and only an answer that names the action and its target clears it |
658
+ | F. Never on a default | force push or history rewrite on a shared ref; deleting data the session did not make; production deploy, stop or migration; a credential, account or identity change; sending to a third party; a spend over `spend_cap`; building a plan this turn wrote from a research, analysis, review or plan ask; choosing a variant or option a research, analysis or review recommends; a way around a tezgah refusal (another folder, a hidden dir, a hatch the owner did not grant); deciding about another session's work (its line, plan or branch) | do all other work first, ask, and wait: silence is no consent, and only an answer that names the action and its target clears it |
641
659
  | G. ACCESS | a credential or grant no tool supplies | take every route that needs none first, then ask once, naming what it unlocks |
642
660
 
643
661
  A grant is read from the user's prompt and recorded for the session; "artık
644
662
  bana sor", "ask me again" or a later "don't push" lifts it. The batch is one
645
663
  block in the reply language: one "Approval questions"/"Onay için sorular" heading, one line saying
646
- the work proceeds on the defaults when no answer comes, then numbered items -
664
+ the work proceeds on the defaults when no answer comes (a class-F item waits for its answer), then numbered items -
647
665
  the question in bold, one line of context, "Recommended:"/"Öneri:" the default, and
648
666
  the other option. Class-F items come first, marked as waiting; the defaulted
649
667
  items follow, with no count cap, because they do not block. An ask tool (omp
@@ -783,7 +801,7 @@ stays on the codegraph index.
783
801
  **Lock the line to the question asked.** Restate the user's question verbatim as
784
802
  the line's scope (`--ask`) and name what is in it and what is out (`--in`,
785
803
  `--out`: state.json `scope`). Every finding answers an in-scope item - a claim's
786
- `trace` names its `S<n>`, and `tezgah-research check` refuses one that names none -
804
+ `trace` names its `S<n>`, and `~/.config/tezgah/bin/tezgah-research check` refuses one that names none -
787
805
  and a finding that answers nothing asked is dropped, not reported as a bonus. Do
788
806
  not widen the question, add sub-questions or chase an adjacent topic; a tangent
789
807
  worth having is one line under Open questions for the user to pick. The question
@@ -798,12 +816,12 @@ stating its confidence (high, medium or low, and why); a summary of summaries is
798
816
  not an answer.
799
817
 
800
818
  **New ideas are an exploratory line.** When the user asks for new ideas, methods
801
- or approaches rather than an answer, open `tezgah-research init --method
819
+ or approaches rather than an answer, open `~/.config/tezgah/bin/tezgah-research init --method
802
820
  exploratory` with `--ask` and its arena - `--arena` (the problem, verbatim), `--in`,
803
821
  `--out`, `--budget`, and `--evaluator` with `--metric` when a number can judge a candidate -
804
822
  committed before the first idea; every other line keeps the question lock above.
805
823
  Ideas, stage moves and judged matches are rows (`idea`, `stage`, `match`), a
806
- ranking is a prior and never a verdict, and `tezgah-research board <slug>` names
824
+ ranking is a prior and never a verdict, and `~/.config/tezgah/bin/tezgah-research board <slug>` names
807
825
  each idea's next step.
808
826
 
809
827
  When the task is research and the OpenResearch CLI is installed, drive it
@@ -811,8 +829,8 @@ through that CLI instead of ad-hoc local scripting. Resolve it as `orx` on PATH,
811
829
  else `~/.cargo/bin/orx` (the installer's location, which a non-interactive shell
812
830
  does not put on PATH). Load the operating manual first:
813
831
  the `orx` skill if the host has it, otherwise run `orx skill` from the shell; then
814
- the module the method needs - `orx skill lit-review` for sources,
815
- `orx skill experiment-tree` and `orx skill evidence` for a measured line. On a
832
+ the module the method needs - `orx skill lit-review` for sources, `orx skill experiment-tree`,
833
+ `orx skill orx-results` and `orx skill orx-logs` for a measured line. On a
816
834
  measured line its cardinal rules are not style preferences - they
817
835
  are what keeps results comparable, and breaking one silently invalidates the run:
818
836
  never edit a node once a run has answered it (branch a child instead); the run
@@ -844,7 +862,7 @@ in the report, a decision or a claim `trace`, or written `A<n> not delivered:
844
862
  <reason>`. A design or plan the user will choose between is produced as >= 3
845
863
  variants in
846
864
  `decisions/<id>/` - `criteria.json` committed before any cell, `variants.jsonl` (V0
847
- the status quo), cells appended by `tezgah-research compare`, `decision.md` naming
865
+ the status quo), cells appended by `~/.config/tezgah/bin/tezgah-research compare`, `decision.md` naming
848
866
  the chosen id, each rejected id with the criterion that ruled it out, and a `flip:`
849
867
  condition (an analysis answers its question once); a new version of a line is
850
868
  opened `init --supersedes <old>` and carries
@@ -852,7 +870,7 @@ the old one as a variant. Code or config variants are sibling orx nodes under on
852
870
  head node. Literature is found with `orx discover` and read with `orx paper`; an
853
871
  agent's summary is indexed as `agent-report` and never alone carries a literature
854
872
  claim. At most one line is open at a time; `init --allow-open "<reason>"` is refused
855
- beside a line `check` fails, and `tezgah-research close <slug> --limit "<reason>"`
873
+ beside a line `check` fails, and `~/.config/tezgah/bin/tezgah-research close <slug> --limit "<reason>"`
856
874
  concludes a line as a deliberate limit, writing what was left.
857
875
  Load the `research` skill for the two-loop rhythm, the ideation step, the
858
876
  six-dimension review a claim passes before it is reported, and the provenance tags
@@ -956,7 +974,7 @@ best, cited. Read the `product-analysis` skill for the artifact shape and the
956
974
  scorecard - the same 1-5 anchors as the `research` skill, so two sessions'
957
975
  analyses stay comparable - and `feature-audit` for the layer-coherence matrices
958
976
  when the ask is one feature. A new capability built from data or an ask runs the
959
- `product-flow` skill: `tezgah-research next --topic <t>` is the step source, and
977
+ `product-flow` skill: `~/.config/tezgah/bin/tezgah-research next --topic <t>` is the step source, and
960
978
  its first missing or due step is the next one. Kill switch: `research-off`.
961
979
 
962
980
 
package/statusline.py CHANGED
@@ -3,6 +3,10 @@
3
3
 
4
4
  python3 statusline.py # Claude Code (or any Claude-format status line)
5
5
  python3 statusline.py --cursor # Cursor CLI (same stdin shape, no Orca passthrough)
6
+ python3 statusline.py --qwen # Qwen Code `ui.statusLine` command (same fields read)
7
+ python3 statusline.py --droid # Factory Droid `statusLine` command (`current_dir`)
8
+ python3 statusline.py --copilot # Copilot CLI `statusLine` command (fields undocumented)
9
+ python3 statusline.py --antigravity # Antigravity CLI `statusLine` command (`workspace`)
6
10
 
7
11
  Claude Code's statusLine pipes session JSON on stdin; Cursor's spec is aligned
8
12
  with it. This wraps Orca's own status line for Claude, then appends the tezgah
@@ -35,8 +39,9 @@ except Exception as exc:
35
39
 
36
40
  HOME = os.path.expanduser("~")
37
41
  ORCA = os.path.join(HOME, ".orca", "agent-hooks", "claude-statusline.sh")
38
- HOST = "cursor" if ("--cursor" in sys.argv or
39
- os.environ.get("TEZGAH_STATUS_HOST") == "cursor") else "claude"
42
+ HOST = next((h for h in ("cursor", "qwen", "droid", "copilot", "antigravity")
43
+ if "--" + h in sys.argv
44
+ or os.environ.get("TEZGAH_STATUS_HOST") == h), "claude")
40
45
 
41
46
  data = sys.stdin.read()
42
47
  try:
@@ -54,8 +59,11 @@ if HOST == "claude" and os.access(ORCA, os.X_OK):
54
59
  except Exception:
55
60
  orca_out = ""
56
61
 
57
- cwd = ((payload.get("workspace") or {}).get("current_dir")
58
- or payload.get("cwd") or "")
62
+ # Droid 0.251.0 sends `current_dir` at the top level (its status line snapshot
63
+ # carries session_id, transcript_path, current_dir, workspace, model)
64
+ workspace = payload.get("workspace")
65
+ cwd = ((workspace if isinstance(workspace, dict) else {}).get("current_dir")
66
+ or payload.get("current_dir") or payload.get("cwd") or "")
59
67
  try:
60
68
  real = os.path.realpath(cwd) if cwd else ""
61
69
  except OSError:
@@ -113,11 +121,14 @@ def claude_used():
113
121
  return used
114
122
 
115
123
 
116
- seen = used_kinds(payload.get("session_id")) if HOST == "cursor" else claude_used()
117
- # Cursor's line reads tezgah's store, which sees the tool calls its hook fires on
118
- # and nothing else; Claude's transcript carries the skill reads too.
119
- observable = TOOL_USE_MEASURES if HOST == "cursor" else None
120
- segs = health_segments(real or os.getcwd(), payload.get("session_id"),
124
+ # Copilot documents its status line input only as "session JSON", so its
125
+ # camelCase spelling is read too
126
+ session_id = payload.get("session_id") or payload.get("sessionId")
127
+ seen = used_kinds(session_id) if HOST != "claude" else claude_used()
128
+ # Cursor's, Qwen's, Droid's, Copilot's and Antigravity's lines read tezgah's store, which sees the tool calls their
129
+ # hook fires on and nothing else; Claude's transcript carries the skill reads too.
130
+ observable = TOOL_USE_MEASURES if HOST != "claude" else None
131
+ segs = health_segments(real or os.getcwd(), session_id,
121
132
  used_override=seen, observable=observable)
122
133
  # Claude Code and Cursor render ANSI; let a user or a plain terminal opt out.
123
134
  color = color_default()
@@ -114,7 +114,18 @@ const unknown = DIMENSIONS.filter((d, i) => !reviewed[i]).map(d => `review:${d.k
114
114
  const reviews = reviewed.filter(Boolean)
115
115
 
116
116
  const rank = { high: 0, medium: 1, low: 2 }
117
- const all = reviews.flatMap(r => r.findings || []).sort((a, b) => rank[a.severity] - rank[b.severity])
117
+ // two lenses often raise one defect: merge on (file, line, lowercased title), keep the higher severity
118
+ const byKey = new Map()
119
+ let raised = 0
120
+ reviewed.forEach((r, i) => ((r && r.findings) || []).forEach(f => {
121
+ raised++
122
+ const key = `${f.file}\u0000${f.line || ''}\u0000${String(f.title).trim().toLowerCase()}`
123
+ const prev = byKey.get(key)
124
+ const keep = prev && rank[prev.severity] <= rank[f.severity] ? prev : f
125
+ byKey.set(key, { ...keep, dimensions: [...new Set([...((prev && prev.dimensions) || []), DIMENSIONS[i].key])] })
126
+ }))
127
+ const all = [...byKey.values()].sort((a, b) => rank[a.severity] - rank[b.severity])
128
+ const caps = { max_verified: MAX_VERIFIED, raised, deduplicated: raised - all.length }
118
129
  if (!all.length) {
119
130
  const note = !unknown.length ? 'all four dimensions came back clean'
120
131
  : !reviews.length ? 'every dimension failed - nothing was reviewed; unknown, not clean'
@@ -124,7 +135,7 @@ if (!all.length) {
124
135
 
125
136
  const toVerify = all.slice(0, MAX_VERIFIED)
126
137
  if (all.length > toVerify.length) {
127
- log(`${all.length} findings raised; verifying the ${toVerify.length} most severe. NOT verified (reported as unverified): ${all.slice(MAX_VERIFIED).map(f => f.title).join('; ')}`)
138
+ log(`${all.length} distinct findings (${caps.deduplicated} duplicates merged); verifying the ${toVerify.length} most severe. NOT verified (reported as unverified): ${all.slice(MAX_VERIFIED).map(f => f.title).join('; ')}`)
128
139
  }
129
140
 
130
141
  phase('Verify')
@@ -167,4 +178,5 @@ return {
167
178
  unverified: unsettled.map(v => ({ ...v.finding, verdict: 'UNVERIFIED - every refuter failed' }))
168
179
  .concat(all.slice(MAX_VERIFIED).map(f => ({ ...f, verdict: 'UNVERIFIED - budget cap' }))),
169
180
  unknown,
181
+ caps,
170
182
  }
@@ -1,59 +0,0 @@
1
- #!/usr/bin/env python3
2
- """tezgah-skill [-k N] [--json] [--root DIR] QUERY... - find the skill section
3
- that answers a topic.
4
-
5
- The roster a session meets is hundreds of one-line names, so the skill that
6
- holds the answer is a guess unless something searches the bodies. This is that
7
- search: every installed skill root on the machine (the plugin's own, omp's user
8
- and custom-directories corpora, Claude/Codex/Agents/opencode), indexed by
9
- heading, ranked by the same BM25 the per-turn lessons block uses. Each hit is a
10
- section, not a file:
11
-
12
- skill://attack-jwt:26-122 /abs/SKILL.md JWT Token Attack
13
-
14
- The `skill://<name>:<start>-<end>` address is what omp's read tool resolves
15
- (line selectors included); the absolute path is for the hosts that have no
16
- skill:// transport, and is also the tiebreaker where two roots hold different
17
- skills under one name (the search reports the first root's copy, omp's own
18
- precedence order - it does not resolve the collision for you).
19
-
20
- --root DIR adds a directory to the discovered roots (a project's vendored
21
- skills); --json prints the machine shape. Exit 0 hits, 1 none, 2 usage.
22
- """
23
- import argparse
24
- import json
25
- import os
26
- import sys
27
-
28
- HERE = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
29
- sys.path.insert(0, os.path.join(HERE, "hooks"))
30
- import tezgah_skill_pick as sp # noqa: E402
31
-
32
-
33
- def main(argv=None):
34
- parser = argparse.ArgumentParser(
35
- prog="tezgah-skill", description=__doc__.splitlines()[0])
36
- parser.add_argument("query", nargs="+", help="the topic to search for")
37
- parser.add_argument("-k", type=int, default=5, metavar="N",
38
- help="sections to print (default 5)")
39
- parser.add_argument("--root", action="append", default=[], metavar="DIR",
40
- help="an extra skills directory to index (repeatable)")
41
- parser.add_argument("--json", action="store_true",
42
- help="print [{skill, uri, path, title, start, end}]")
43
- args = parser.parse_args(argv)
44
- query = " ".join(args.query)
45
- hits = sp.search(query, k=max(1, args.k),
46
- roots=(sp.skill_roots(args.root) if args.root else None))
47
- if args.json:
48
- print(json.dumps([{"skill": h[0],
49
- "uri": "skill://%s:%d-%d" % (h[0], h[3], h[4]),
50
- "path": h[1], "title": h[2],
51
- "start": h[3], "end": h[4]} for h in hits], indent=1))
52
- else:
53
- for skill, path, title, start, end in hits:
54
- print("skill://%s:%d-%d\t%s\t%s" % (skill, start, end, path, title))
55
- return 0 if hits else 1
56
-
57
-
58
- if __name__ == "__main__":
59
- sys.exit(main())