@r1z4x/tezgah 1.11.0 → 1.14.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 (109) hide show
  1. package/CHANGELOG.md +507 -1
  2. package/MANIFEST +40 -0
  3. package/NOTICE +152 -0
  4. package/README.de.md +41 -20
  5. package/README.es.md +39 -19
  6. package/README.fr.md +41 -20
  7. package/README.md +18 -10
  8. package/README.tr.md +39 -21
  9. package/bin/codegen +9 -2
  10. package/bin/consult +6 -0
  11. package/bin/tezgah-adhd +3 -0
  12. package/bin/tezgah-agents +3 -0
  13. package/bin/tezgah-capture +3 -0
  14. package/bin/tezgah-design +329 -54
  15. package/bin/tezgah-docs +158 -42
  16. package/bin/tezgah-dsh +1 -1
  17. package/bin/tezgah-gate +7 -2
  18. package/bin/tezgah-import-ai-research +16 -4
  19. package/bin/tezgah-index +3 -0
  20. package/bin/tezgah-lessons +13 -4
  21. package/bin/tezgah-mcp +4 -0
  22. package/bin/tezgah-migrate +3 -0
  23. package/bin/tezgah-ocr-review +2 -1
  24. package/bin/tezgah-optimize +4 -1
  25. package/bin/tezgah-pony +3 -0
  26. package/bin/tezgah-research +51 -10
  27. package/bin/tezgah-rollback +3 -0
  28. package/bin/tezgah-route +1 -1
  29. package/bin/tezgah-setup +1741 -95
  30. package/bin/tezgah-status +11 -1
  31. package/bin/tezgah-task +58 -17
  32. package/bin/tezgah.js +10 -3
  33. package/commands/adhd.md +1 -1
  34. package/docs/README.md +19 -8
  35. package/docs/architecture.md +2 -2
  36. package/docs/citations-baseline.json +11 -17
  37. package/docs/clarity-baseline.json +12 -6
  38. package/docs/contract.md +83 -34
  39. package/docs/environment.md +59 -24
  40. package/docs/evidence.md +128 -25
  41. package/docs/gate.md +77 -23
  42. package/docs/glossary.md +1 -1
  43. package/docs/hosts.md +343 -48
  44. package/docs/layers.md +2 -2
  45. package/docs/models.md +6 -0
  46. package/docs/operations.md +83 -29
  47. package/docs/research.md +37 -11
  48. package/docs/skills.md +31 -8
  49. package/docs/status-line.md +39 -23
  50. package/docs/testing.md +50 -17
  51. package/docs/vision.md +6 -2
  52. package/hooks/hooks.json +1 -1
  53. package/hooks/lang/en.json +16 -2
  54. package/hooks/lang/tr.json +14 -2
  55. package/hooks/projects-posttooluse.py +11 -3
  56. package/hooks/projects-stop.py +3 -2
  57. package/hooks/tezgah_agents.py +27 -3
  58. package/hooks/tezgah_attest.py +79 -10
  59. package/hooks/tezgah_context.py +61 -31
  60. package/hooks/tezgah_gate.py +480 -126
  61. package/hooks/tezgah_integrity.py +577 -133
  62. package/hooks/tezgah_lessons.py +5 -2
  63. package/hooks/tezgah_paths.py +60 -8
  64. package/hooks/tezgah_policy.py +48 -18
  65. package/hooks/tezgah_replay.py +8 -2
  66. package/hooks/tezgah_research.py +167 -24
  67. package/hooks/tezgah_skill_pick.py +1 -1
  68. package/hooks/tezgah_snapshot.py +6 -3
  69. package/hooks/tezgah_stack.py +236 -1
  70. package/hooks/tezgah_stopspec.py +2 -1
  71. package/hooks/tezgah_task.py +2 -1
  72. package/hosts/amp/hook.py +217 -0
  73. package/hosts/amp/tezgah-plugin.ts.in +396 -0
  74. package/hosts/antigravity/hook.py +255 -0
  75. package/hosts/codex/hook.py +3 -2
  76. package/hosts/commandcode/hook.py +239 -0
  77. package/hosts/copilot/hook.py +284 -0
  78. package/hosts/cursor/hook.py +4 -2
  79. package/hosts/droid/hook.py +259 -0
  80. package/hosts/dsh/hooks.json +1 -1
  81. package/hosts/gemini/hook.py +213 -0
  82. package/hosts/goose/hook.py +145 -0
  83. package/hosts/omp/hook.py +5 -2
  84. package/hosts/omp/tezgah-hook.ts.in +157 -42
  85. package/hosts/opencode/plugins/tezgah.js +209 -63
  86. package/hosts/qwen/hook.py +206 -0
  87. package/output-styles/tezgah.md +11 -6
  88. package/package.json +6 -3
  89. package/packaging/build.sh +4 -4
  90. package/packaging/install.sh +11 -0
  91. package/packaging/upgrade.sh +3 -0
  92. package/skills/ai-research/LICENSE +21 -0
  93. package/skills/design-contract/SKILL.md +27 -6
  94. package/skills/design-library/LICENSE +21 -0
  95. package/skills/harness/SKILL.md +2 -0
  96. package/skills/i-have-adhd/SKILL.md +10 -1
  97. package/skills/plan-add/SKILL.md +5 -1
  98. package/skills/plan-add/render_table.py +7 -0
  99. package/skills/pm-frameworks/LICENSE +21 -0
  100. package/skills/research/SKILL.md +22 -9
  101. package/skills/rl-env/LICENSE +201 -0
  102. package/skills/tezgah-contract/SKILL.md +21 -8
  103. package/statusline.py +20 -9
  104. package/third_party/open-code-review/LICENSE +201 -0
  105. package/third_party/open-code-review/README.md +15 -0
  106. package/third_party/open-code-review/prompts/main_task_system.md +26 -0
  107. package/third_party/open-code-review/prompts/review_filter_task_system.md +13 -0
  108. package/workflows/graph-map.js +14 -5
  109. package/workflows/graph-review.js +14 -2
package/README.fr.md CHANGED
@@ -25,8 +25,10 @@
25
25
  ---
26
26
 
27
27
  Tezgah arme chaque assistant de codage IA que vous exécutez — **omp, l'hôte
28
- principal**, plus Claude Code, Codex, Cursor, opencode et le dsh de DeepSeek —
29
- avec un seul contrat de travail, à l'intérieur des racines de dépôts que vous
28
+ principal**, plus Claude Code, Codex, Cursor, opencode, le dsh de DeepSeek,
29
+ Qwen Code, Factory Droid, Command Code, GitHub Copilot CLI, Gemini CLI,
30
+ Antigravity CLI, Goose et Amp — avec un seul contrat de travail, à l'intérieur
31
+ des racines de dépôts que vous
30
32
  configurez. Laissés à eux-mêmes, les assistants divergent : l'un répond en
31
33
  turc pendant qu'un autre répond en anglais ; l'un utilise grep là où un autre
32
34
  interroge un graphe de code ; l'un annonce « terminé » sans exécuter de test.
@@ -36,11 +38,14 @@ modifiée à un endroit atteint chaque hôte de la même façon.
36
38
 
37
39
  ## Ce que tezgah impose et enregistre
38
40
 
39
- - **Un contrat, six hôtes.** omp, Claude Code, Codex, Cursor, opencode et dsh
40
- voient les mêmes règles, car chaque hôte est un adaptateur léger au-dessus
41
- d'un seul cœur partagé — modifiez une règle une fois, tous l'adoptent.
41
+ - **Un contrat, quatorze hôtes.** omp, Claude Code, Codex, Cursor, opencode,
42
+ dsh, Qwen Code, Factory Droid, Command Code, GitHub Copilot CLI, Gemini CLI,
43
+ Antigravity CLI, Goose et Amp voient les mêmes règles, car chaque hôte est un
44
+ adaptateur léger au-dessus d'un seul cœur partagé — modifiez une règle une
45
+ fois, tous l'adoptent.
42
46
  - **Annoncer « terminé » exige une vérification réussie dans le registre.**
43
- Une porte de 15 refus arrête la vérification neutralisée — `--no-verify`,
47
+ Une porte de 17 règles de refus et un rappel unique par session arrête la
48
+ vérification neutralisée — `--no-verify`,
44
49
  `|| true`, un test redirigé vers `tail`, un skip ajouté en plein vol — et la
45
50
  règle Stop refuse une affirmation d'achèvement que le registre de preuves de
46
51
  la session ne peut pas étayer. Elle refuse le tour ; elle ne peut pas
@@ -48,7 +53,7 @@ modifiée à un endroit atteint chaque hôte de la même façon.
48
53
  - **La recherche arrive avec sa bibliothèque.** Les tâches de recherche
49
54
  passent par OpenResearch avec une bibliothèque intégrée de 98 compétences
50
55
  upstream, chargée une entrée à la fois pour que le contexte reste petit.
51
- - **Chaque règle a un interrupteur.** Dix-sept interrupteurs — plus des
56
+ - **Chaque règle a un interrupteur.** Dix-sept interrupteurs de règle — plus des
52
57
  marques par dépôt — retirent le texte de la règle de la session ; la règle
53
58
  s'arrête vraiment au lieu de simplement figurer comme désactivée.
54
59
  - **Une forme de réponse fixe.** Les réponses sont en turc, sauf si vous choisissez une autre langue, et
@@ -79,8 +84,14 @@ aucun des deux bras :
79
84
  - **Un point faible du lecteur d'affirmations de la règle Stop :** il a
80
85
  signalé 115/132 exécutions avec tezgah et 90/131 sans, mais seuls 10% et 20%
81
86
  de ses signalements étaient de vraies annonces de fin. Avec tezgah, l'agent
82
- répondait en turc, et le lecteur compte `doğrulandı` (vérifié) sur un
83
- correctif partiel comme une affirmation. C'est consigné, pas encore corrigé.
87
+ répondait en turc, et le lecteur comptait `doğrulandı` (vérifié) sur un
88
+ correctif partiel comme une affirmation, même à côté d'un `doğrulanmadı`
89
+ (non vérifié) pour le test qui échoue. Cette forme est corrigée (commit
90
+ 9cb4d1d ; rappel sur l'ensemble réservé 0.857, sous le seuil de 0.9 du
91
+ plan). Un résidu plus étroit demeure : un correctif partiel en turc formulé
92
+ sans mot d'aveu (`hâlâ başarısız`, échoue encore ; `kısmen`, partiellement)
93
+ se lit encore comme terminé et vérifié, alors que son jumeau anglais se lit
94
+ comme une vérification seulement.
84
95
 
85
96
  L'exécution avait des défauts d'instrument, entre autres des agents des deux
86
97
  bras qui pouvaient lire la vérité terrain du benchmark. Les agrégats, les
@@ -92,8 +103,12 @@ comptes par tâche et chaque réserve sont dans le
92
103
  ## Installation
93
104
 
94
105
  Une ligne, sur macOS, Linux ou WSL (Python 3.10+, `curl`, `tar`). Elle
95
- télécharge la dernière version, vérifie son sha256 et arme chaque hôte
96
- trouvé (Claude Code par sa propre CLI `claude plugin`) :
106
+ télécharge la dernière version, vérifie son sha256, arme chaque hôte trouvé
107
+ (Claude Code par sa propre CLI `claude plugin`) et installe les outils
108
+ optionnels manquants que tezgah utilise lui-même (orx ; `TEZGAH_NO_DEPS=1`
109
+ les ignore). Elle n'installe jamais la CLI propre d'un hôte (cursor-agent,
110
+ pnpm, dsh) : elle affiche la commande à la place, ou l'exécute sous
111
+ `tezgah-setup --install --host-deps`.
97
112
 
98
113
  ```bash
99
114
  curl -fsSL https://raw.githubusercontent.com/r1z4x/tezgah/main/packaging/install.sh | sh
@@ -113,18 +128,24 @@ non nul quand un hôte prévu n'est pas armé.
113
128
  hooks de Claude Code sont livrés dans un plugin enregistré par
114
129
  `claude plugin` ; sans CLI `claude`, Claude reste non armé et le rapport le
115
130
  dit.
116
- - **Des fichiers d'agents dans vos dépôts.** Dans les racines configurées, une
117
- session écrit des fichiers de sous-agents dans `.claude/agents/`,
118
- `.codex/agents/` et `.opencode/agents/`, et ajoute ces répertoires au
119
- `.git/info/exclude` propre au clone (`TEZGAH_NO_EXCLUDE=1` l'empêche).
131
+ - **Des fichiers d'agents.** L'installation écrit les rôles de sous-agents de
132
+ tezgah dans `~/.claude/agents/`, `$CODEX_HOME/agents/` (par défaut
133
+ `~/.codex/agents/`) et `~/.omp/agent/agents/`. Dans les racines configurées,
134
+ une session les écrit dans `.cursor/agents/` et `.opencode/agents/` du
135
+ dépôt, et ajoute ces répertoires au `.git/info/exclude` propre au clone
136
+ (`TEZGAH_NO_EXCLUDE=1` l'empêche).
120
137
  - **Une vérification quotidienne des mises à jour.** La ligne d'état demande
121
138
  une nouvelle version au plus une fois par jour ;
122
139
  `~/.config/tezgah/update-check-off` ou `TEZGAH_UPDATE_CHECK=0` la coupe.
123
140
  - **orx.** L'installation télécharge la CLI OpenResearch par laquelle passent
124
141
  les tâches de recherche ; `TEZGAH_NO_DEPS=1` l'ignore.
125
- - **Langue des réponses.** Les réponses sont en turc par défaut et la règle
126
- Stop les y tient. `--reply-lang en` demande l'anglais, et `any` votre propre
127
- langue ; aucun des deux n'est contrôlé : `curl -fsSL … | sh -s -- --reply-lang en`.
142
+ - **Langue des réponses.** Une première installation demande des réponses
143
+ dans la langue de votre locale (`LANG` et variables voisines) quand tezgah
144
+ livre un pack pour elle (`tr`, `en`), sinon en anglais ; une installation
145
+ existante garde sa langue. `--language en` demande l'anglais et `any` votre
146
+ propre langue : `curl -fsSL … | sh -s -- --reply-lang en` (l'ancienne
147
+ graphie de `--language` dans l'installeur). La règle Stop ne contrôle que
148
+ les réponses en turc.
128
149
 
129
150
  Vous préférez laisser votre assistant de codage s'en charger ? Collez ceci
130
151
  dans omp, Claude Code, Codex, Cursor ou opencode (le prompt reste en anglais
@@ -154,7 +175,7 @@ mises à niveau et intégrations optionnelles sont dans la [documentation](docs/
154
175
 
155
176
  ## Hôtes pris en charge
156
177
 
157
- **omp** (l'hôte principal, contre lequel tezgah est développé et vérifié), **Claude Code**, **Codex**, **Cursor**, **opencode**, **dsh** — des adaptateurs légers au-dessus d'un seul cœur partagé.
178
+ **omp** (l'hôte principal, contre lequel tezgah est développé et vérifié), **Claude Code**, **Codex**, **Cursor**, **opencode**, **dsh**, **Qwen Code**, **Factory Droid**, **Command Code**, **GitHub Copilot CLI**, **Gemini CLI**, **Antigravity CLI**, **Goose**, **Amp** — des adaptateurs légers au-dessus d'un seul cœur partagé. Aucune exécution des binaires des huit derniers n'a encore montré qu'ils obéissent à un refus, et les six derniers sont câblés à partir de la seule documentation de leurs éditeurs ([hôtes](docs/hosts.md), en anglais).
158
179
 
159
180
  ## Où se trouve la profondeur
160
181
 
@@ -163,4 +184,4 @@ La porte, le registre de preuves, les adaptateurs d'hôtes, la configuration et
163
184
  ## Licence
164
185
 
165
186
  MIT — voir [LICENSE](LICENSE).
166
- Les compétences intégrées (`ponytail`, `no-ai-slop`, `i-have-adhd`) suivent leurs propres termes MIT, consignés dans [NOTICE](NOTICE).
187
+ Les compétences et textes tiers intégrés et adaptés gardent leurs propres termes (MIT ou Apache-2.0), consignés dans [NOTICE](NOTICE).
package/README.md CHANGED
@@ -25,8 +25,10 @@
25
25
  ---
26
26
 
27
27
  Tezgah arms every AI coding assistant you run — **omp, the primary host**,
28
- plus Claude Code, Codex, Cursor, opencode and DeepSeek's dsh harness — with
29
- one working contract, inside the repository roots you configure. Left alone, each
28
+ plus Claude Code, Codex, Cursor, opencode, DeepSeek's dsh harness, Qwen Code,
29
+ Factory Droid, Command Code, GitHub Copilot CLI, Gemini CLI, Antigravity CLI,
30
+ Goose and Amp — with one working contract, inside the repository roots you
31
+ configure. Left alone, each
30
32
  assistant drifts: one answers in Turkish while another answers in English, one
31
33
  greps where another queries a code graph, one reports "done" without running a
32
34
  test. The rules live once in a shared core; each host gets a thin adapter that
@@ -35,10 +37,12 @@ reaches every host the same way.
35
37
 
36
38
  ## What tezgah enforces and records
37
39
 
38
- - **One contract, six hosts.** omp, Claude Code, Codex, Cursor, opencode and
39
- dsh see the same rules, because every host is a thin adapter over one shared
40
+ - **One contract, fourteen hosts.** omp, Claude Code, Codex, Cursor, opencode,
41
+ dsh, Qwen Code, Factory Droid, Command Code, GitHub Copilot CLI, Gemini CLI,
42
+ Antigravity CLI, Goose and Amp see the same rules, because every host is a thin adapter over one shared
40
43
  core — change a rule once and all of them pick it up.
41
- - **A done claim needs a passing check on record.** A gate of 15 refusals stops
44
+ - **A done claim needs a passing check on record.** A gate of 17 refusal rules
45
+ and a once-per-session nudge stops
42
46
  the neutered check — `--no-verify`, `|| true`, a test piped into `tail`, a
43
47
  skip added mid-flight — and the Stop rule refuses a completion claim the
44
48
  session's evidence ledger cannot back. It refuses the turn; it cannot make
@@ -46,7 +50,7 @@ reaches every host the same way.
46
50
  - **Research ships with its library.** Research tasks route through
47
51
  OpenResearch with a vendored library of 98 upstream skills, loaded one entry
48
52
  at a time so the context stays small.
49
- - **Every rule has an off switch.** Seventeen kill switches — plus per-repo
53
+ - **Every rule has an off switch.** Seventeen rule switches — plus per-repo
50
54
  marks — remove a rule's text from the session, so the rule actually stops
51
55
  rather than merely showing as off.
52
56
  - **A fixed reply shape.** Replies lead with the outcome, in Turkish unless
@@ -74,8 +78,12 @@ either arm:
74
78
  - **A weak spot in the Stop rule's claim reader:** it flagged 115/132 runs
75
79
  with tezgah and 90/131 without, but only 10% and 20% of the flags it raised
76
80
  were real done claims. With tezgah the agent replied in Turkish, and the
77
- reader counts `doğrulandı` (verified) on a partial fix as a claim. This is
78
- recorded, not yet fixed.
81
+ reader counted `doğrulandı` (verified) on a partial fix as a claim, even
82
+ beside a `doğrulanmadı` (not verified) for the failing test. That shape is
83
+ fixed (commit 9cb4d1d; held-out recall 0.857, below the plan's 0.9 bar). A
84
+ narrower residual remains: a Turkish partial fix stated with no admission
85
+ word (`hâlâ başarısız`, still failing; `kısmen`, partially) still reads as
86
+ done and verified, while its English twin reads as verification only.
79
87
 
80
88
  The run had instrument flaws, among them agents in both arms that could read
81
89
  the benchmark's ground truth. The aggregates, per-task counts and every caveat
@@ -154,7 +162,7 @@ and the optional integrations are in the [docs](docs/README.md).
154
162
 
155
163
  ## Supported hosts
156
164
 
157
- **omp** (the primary host, developed and verified against), **Claude Code**, **Codex**, **Cursor**, **opencode**, **dsh** — thin adapters over one shared core.
165
+ **omp** (the primary host, developed and verified against), **Claude Code**, **Codex**, **Cursor**, **opencode**, **dsh**, **Qwen Code**, **Factory Droid**, **Command Code**, **GitHub Copilot CLI**, **Gemini CLI**, **Antigravity CLI**, **Goose**, **Amp** — thin adapters over one shared core. No run of the last eight's binaries has shown them obeying a deny yet, and the last six are wired from their vendors' docs alone ([hosts](docs/hosts.md)).
158
166
 
159
167
  ## Where the depth lives
160
168
 
@@ -163,4 +171,4 @@ The gate, the evidence ledger, the host adapters, configuration and development
163
171
  ## License
164
172
 
165
173
  MIT — see [LICENSE](LICENSE).
166
- Vendored skills (`ponytail`, `no-ai-slop`, `i-have-adhd`) carry their own MIT terms, recorded in [NOTICE](NOTICE).
174
+ Vendored and adapted third-party skills and texts keep their own terms (MIT or Apache-2.0), recorded in [NOTICE](NOTICE).
package/README.tr.md CHANGED
@@ -25,8 +25,10 @@
25
25
  ---
26
26
 
27
27
  Tezgah, çalıştırdığınız her yapay zeka kodlama asistanını — **birincil
28
- barındırıcı olan omp** ve Claude Code, Codex, Cursor, opencode ile DeepSeek'in
29
- dsh donanımı — yapılandırdığınız depo kökleri içinde tek bir çalışma
28
+ barındırıcı olan omp** ve Claude Code, Codex, Cursor, opencode, DeepSeek'in
29
+ dsh donanımı, Qwen Code, Factory Droid, Command Code, GitHub Copilot CLI,
30
+ Gemini CLI, Antigravity CLI, Goose ile Amp — yapılandırdığınız depo kökleri
31
+ içinde tek bir çalışma
30
32
  sözleşmesiyle donatır. Kendi haline bırakıldığında her asistan sapar: biri
31
33
  Türkçe yanıt verirken diğeri İngilizce yanıt verir, biri grep kullanırken
32
34
  diğeri bir kod grafiğini sorgular, biri test çalıştırmadan "tamamlandı" der.
@@ -36,11 +38,14 @@ değiştirdiğinizde her barındırıcıya aynı şekilde ulaşır.
36
38
 
37
39
  ## tezgah neyi zorunlu kılar ve kaydeder
38
40
 
39
- - **Tek sözleşme, altı barındırıcı.** omp, Claude Code, Codex, Cursor,
40
- opencode ve dsh aynı kuralları görür, çünkü her barındırıcı paylaşılan tek
41
- bir çekirdeğin ince bir adaptörüdür — kuralı bir kez değiştirin, hepsi alır.
42
- - **"Tamamlandı" demek için kayıtta geçmiş bir kontrol gerekir.** 15 reddin
43
- olduğu bir kapı, etkisizleştirilmiş kontrolü durdurur — `--no-verify`,
41
+ - **Tek sözleşme, on dört barındırıcı.** omp, Claude Code, Codex, Cursor,
42
+ opencode, dsh, Qwen Code, Factory Droid, Command Code, GitHub Copilot CLI,
43
+ Gemini CLI, Antigravity CLI, Goose ve Amp aynı kuralları görür, çünkü her
44
+ barındırıcı paylaşılan tek bir çekirdeğin ince bir adaptörüdür — kuralı bir
45
+ kez değiştirin, hepsi alır.
46
+ - **"Tamamlandı" demek için kayıtta geçmiş bir kontrol gerekir.** 17 ret
47
+ kuralı ve oturum başına bir kez uyarıdan oluşan bir kapı, etkisizleştirilmiş
48
+ kontrolü durdurur — `--no-verify`,
44
49
  `|| true`, `tail`'e yönlendirilmiş bir test, uçuş sırasında eklenen bir
45
50
  skip — ve Stop kuralı, oturumun kanıt defterinin desteklemediği tamamlanma
46
51
  iddiasını reddeder. Turu reddeder; modelin bu iddiayı dile getirmesini
@@ -48,7 +53,7 @@ değiştirdiğinizde her barındırıcıya aynı şekilde ulaşır.
48
53
  - **Araştırma kütüphanesiyle birlikte gelir.** Araştırma görevleri,
49
54
  bağlamın küçük kalması için tek tek yüklenen 98 becerilik gömülü
50
55
  bir kütüphaneyle OpenResearch üzerinden yürütülür.
51
- - **Her kuralın bir kapatma anahtarı vardır.** On yedi kapatma anahtarı — ve
56
+ - **Her kuralın bir kapatma anahtarı vardır.** On yedi kural anahtarı — ve
52
57
  depo başına işaretler — kuralın metnini oturumdan kaldırır; böylece kural
53
58
  yalnızca kapalı görünmez, gerçekten durur.
54
59
  - **Sabit bir yanıt biçimi.** Yanıtlar, başka bir dil seçmediyseniz Türkçedir ve sonuçla
@@ -76,8 +81,12 @@ ile tam tezgah kurulumu karşılaştırıldı) hilede ölçülebilir bir azalma
76
81
  - **Stop kuralının iddia okuyucusunda bir zayıf nokta:** tezgah ile 115/132,
77
82
  tezgah'sız 90/131 çalıştırmayı işaretledi, ama işaretlerinin yalnızca %10'u
78
83
  ve %20'si gerçek "bitti" iddiasıydı. tezgah ile ajan Türkçe yanıt verdi ve
79
- okuyucu kısmi bir düzeltmedeki `doğrulandı` sözcüğünü iddia sayıyor. Bu
80
- kayda geçti, henüz düzeltilmedi.
84
+ okuyucu kısmi bir düzeltmedeki `doğrulandı` sözcüğünü, başarısız test için
85
+ yazılmış bir `doğrulanmadı` yanında bile iddia sayıyordu. Bu biçim düzeltildi
86
+ (commit 9cb4d1d; ayrılmış kümede duyarlılık 0.857, planın 0.9 eşiğinin
87
+ altında). Daha dar bir artık kalıyor: kabul sözcüğü içermeyen Türkçe bir
88
+ kısmi düzeltme (`hâlâ başarısız`, `kısmen`) hâlâ bitti ve doğrulandı olarak
89
+ okunuyor; İngilizce ikizi ise yalnızca doğrulama olarak okunuyor.
81
90
 
82
91
  Çalıştırmada ölçüm aracı kusurları vardı; bunların arasında, iki koldaki
83
92
  ajanların benchmark'ın doğru cevaplarını okuyabilmesi de var. Toplamlar, görev
@@ -89,8 +98,12 @@ başına sayımlar ve her çekince
89
98
  ## Kurulum
90
99
 
91
100
  Tek satır, macOS, Linux veya WSL'de (Python 3.10+, `curl`, `tar`). Son sürümü
92
- indirir, sha256'sını doğrular ve bulduğu her barındırıcıyı kurar (Claude
93
- Code'u kendi `claude plugin` CLI'ı üzerinden):
101
+ indirir, sha256'sını doğrular, bulduğu her barındırıcıyı kurar (Claude Code'u
102
+ kendi `claude plugin` CLI'ı üzerinden) ve tezgah'ın kendi kullandığı eksik
103
+ isteğe bağlı araçları kurar (orx; `TEZGAH_NO_DEPS=1` bunları atlar). Bir
104
+ barındırıcının kendi CLI'ını (cursor-agent, pnpm, dsh) asla kurmaz: bunun
105
+ yerine komutu yazdırır ya da `tezgah-setup --install --host-deps` altında
106
+ çalıştırır.
94
107
 
95
108
  ```bash
96
109
  curl -fsSL https://raw.githubusercontent.com/r1z4x/tezgah/main/packaging/install.sh | sh
@@ -110,18 +123,23 @@ planladığı bir barındırıcı kurulamazsa sıfırdan farklı bir kodla çık
110
123
  yönetilen bir sözleşme bloğunu alır. Claude Code'un hook'ları `claude plugin`
111
124
  ile kaydedilen bir eklentide gelir; `claude` CLI'ı yoksa Claude kurulmamış
112
125
  kalır ve rapor bunu söyler.
113
- - **Depolarınızdaki ajan dosyaları.** Yapılandırılan köklerde bir oturum
114
- `.claude/agents/`, `.codex/agents/` ve `.opencode/agents/` altına alt ajan
115
- dosyaları yazar ve bu dizinleri klonun kendi `.git/info/exclude` dosyasına
116
- ekler (`TEZGAH_NO_EXCLUDE=1` bunu durdurur).
126
+ - **Ajan dosyaları.** Kurulum, tezgah'ın alt ajan rollerini
127
+ `~/.claude/agents/`, `$CODEX_HOME/agents/` (varsayılan `~/.codex/agents/`) ve
128
+ `~/.omp/agent/agents/` altına yazar. Yapılandırılan köklerde bir oturum
129
+ bunları deponun `.cursor/agents/` ve `.opencode/agents/` dizinlerine yazar ve
130
+ bu dizinleri klonun kendi `.git/info/exclude` dosyasına ekler
131
+ (`TEZGAH_NO_EXCLUDE=1` bunu durdurur).
117
132
  - **Günlük güncelleme denetimi.** Durum satırı yeni bir sürümü günde en fazla
118
133
  bir kez sorar; `~/.config/tezgah/update-check-off` ya da
119
134
  `TEZGAH_UPDATE_CHECK=0` bunu kapatır.
120
135
  - **orx.** Kurulum, araştırma görevlerinin yönlendirildiği OpenResearch CLI'ını
121
136
  indirir; `TEZGAH_NO_DEPS=1` bunu atlar.
122
- - **Yanıt dili.** Yanıtlar varsayılan olarak Türkçedir ve Stop kuralı bunu
123
- denetler. `--reply-lang en` İngilizce, `any` ise sizin dilinizi ister;
124
- ikisi de denetlenmez: `curl -fsSL … | sh -s -- --reply-lang en`.
137
+ - **Yanıt dili.** İlk kurulum, tezgah o dil için bir paket taşıyorsa (`tr`,
138
+ `en`) yerel ayarınızın dilinde (`LANG` ve benzerleri), yoksa İngilizce yanıt
139
+ ister; mevcut bir kurulum dilini korur. `--language en` İngilizce, `any` ise
140
+ sizin dilinizi ister: `curl -fsSL … | sh -s -- --reply-lang en` (kurucunun
141
+ `--language` için eski yazımı). Stop kuralı yalnızca Türkçe yanıtları
142
+ denetler.
125
143
 
126
144
  Kurulumu kodlama asistanınıza yaptırmak isterseniz bunu omp, Claude Code,
127
145
  Codex, Cursor veya opencode'a yapıştırın (istem İngilizce; asistan her dilde
@@ -151,7 +169,7 @@ yükseltme ve isteğe bağlı entegrasyonlar [docs](docs/README.md) altındadır
151
169
 
152
170
  ## Desteklenen barındırıcılar
153
171
 
154
- **omp** (birincil barındırıcı; tezgah buna göre geliştirilir ve doğrulanır), **Claude Code**, **Codex**, **Cursor**, **opencode**, **dsh** — paylaşılan tek çekirdeğin ince adaptörleri.
172
+ **omp** (birincil barındırıcı; tezgah buna göre geliştirilir ve doğrulanır), **Claude Code**, **Codex**, **Cursor**, **opencode**, **dsh**, **Qwen Code**, **Factory Droid**, **Command Code**, **GitHub Copilot CLI**, **Gemini CLI**, **Antigravity CLI**, **Goose**, **Amp** — paylaşılan tek çekirdeğin ince adaptörleri. Son sekizinin ikili dosyalarının bir deny'a uyduğunu gösteren bir çalıştırma henüz yok; son altısı yalnızca üreticilerinin belgelerine göre bağlandı ([barındırıcılar](docs/hosts.md), İngilizce).
155
173
 
156
174
  ## Ayrıntılar nerede
157
175
 
@@ -160,4 +178,4 @@ Kapı, kanıt defteri, barındırıcı adaptörleri, yapılandırma ve geliştir
160
178
  ## Lisans
161
179
 
162
180
  MIT — bkz. [LICENSE](LICENSE).
163
- Katıştırılmış beceriler (`ponytail`, `no-ai-slop`, `i-have-adhd`) kendi MIT koşullarıyla gelir; bkz. [NOTICE](NOTICE).
181
+ Katıştırılmış ve uyarlanmış üçüncü taraf beceri ve metinler kendi koşullarını (MIT ya da Apache-2.0) korur; bkz. [NOTICE](NOTICE).
package/bin/codegen CHANGED
@@ -218,6 +218,13 @@ def ask(task, files, model, provider, timeout, max_tokens):
218
218
  return (msg.get("content") or "").strip(), out.get("usage") or {}
219
219
 
220
220
 
221
+ def whole(flag, value):
222
+ """`value` as a whole number, or the misuse exit (1) naming `flag`."""
223
+ if not value.isdecimal():
224
+ sys.exit("codegen: %s needs a whole number, not %r" % (flag, value))
225
+ return int(value)
226
+
227
+
221
228
  def main():
222
229
  args = sys.argv[1:]
223
230
  if args and args[0] in ("-h", "--help"):
@@ -239,11 +246,11 @@ def main():
239
246
  if args[i] == "--model" and i + 1 < len(args):
240
247
  model = args[i + 1]; i += 2; continue
241
248
  if args[i] == "--timeout" and i + 1 < len(args):
242
- timeout = int(args[i + 1]); i += 2; continue
249
+ timeout = whole(args[i], args[i + 1]); i += 2; continue
243
250
  if args[i] == "--out-dir" and i + 1 < len(args):
244
251
  out_dir = args[i + 1]; i += 2; continue
245
252
  if args[i] == "--max-tokens" and i + 1 < len(args):
246
- max_tokens = int(args[i + 1]); i += 2; continue
253
+ max_tokens = whole(args[i], args[i + 1]); i += 2; continue
247
254
  sys.exit(f"codegen: unknown argument {args[i]}")
248
255
  if provider not in PROVIDERS:
249
256
  sys.exit("codegen: unknown provider %r (use %s)"
package/bin/consult CHANGED
@@ -582,8 +582,14 @@ def main():
582
582
  referee = False
583
583
  i += 1
584
584
  elif args[i] == "--timeout" and i + 1 < len(args):
585
+ if not args[i + 1].isdecimal():
586
+ sys.exit("consult: --timeout needs whole seconds, not %r" % args[i + 1])
585
587
  timeout = int(args[i + 1])
586
588
  i += 2
589
+ elif args[i].startswith("--"):
590
+ # a lone typo was the question: a paid panel call for `--bogus`.
591
+ # A question that starts with `--` still comes in via `consult -`.
592
+ sys.exit("consult: unknown flag %r" % args[i])
587
593
  elif question is None:
588
594
  question = args[i]
589
595
  i += 1
package/bin/tezgah-adhd CHANGED
@@ -25,6 +25,9 @@ def main(argv):
25
25
  print(__doc__.strip())
26
26
  return 0
27
27
  args = [a for a in argv if not a.startswith("-")]
28
+ if len(args) != len(argv):
29
+ print("%s\narguments: on, off" % USAGE, file=sys.stderr)
30
+ return 2
28
31
  if not args:
29
32
  print("off" if off(SWITCH) else "on")
30
33
  return 0
package/bin/tezgah-agents CHANGED
@@ -28,6 +28,9 @@ def main():
28
28
  if "-h" in args or "--help" in args:
29
29
  print(__doc__.strip())
30
30
  return 0
31
+ if any(a.startswith("-") and a not in ("--list", "--json") for a in args):
32
+ print("usage: tezgah-agents [--json] [PATH] | --list", file=sys.stderr)
33
+ return 2
31
34
  if "--list" in args:
32
35
  for name, desc, _cap, _body, readonly in ROLES:
33
36
  print("%s tier=%s %s\n %s" % (
@@ -36,6 +36,9 @@ USAGE = ('usage: tezgah-capture \'{"tool": "Edit", "input": {"file_path": "a.py"
36
36
 
37
37
 
38
38
  def main(argv):
39
+ if argv in (["-h"], ["--help"]):
40
+ print(__doc__.strip())
41
+ return 0
39
42
  if len(argv) != 1 or not argv[0].strip():
40
43
  print(USAGE, file=sys.stderr)
41
44
  return 2