@r1z4x/tezgah 1.13.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.
- package/CHANGELOG.md +175 -1
- package/MANIFEST +18 -0
- package/NOTICE +152 -0
- package/README.de.md +41 -20
- package/README.es.md +39 -19
- package/README.fr.md +41 -20
- package/README.md +15 -8
- package/README.tr.md +39 -21
- package/bin/codegen +9 -2
- package/bin/consult +6 -0
- package/bin/tezgah-adhd +3 -0
- package/bin/tezgah-agents +3 -0
- package/bin/tezgah-capture +3 -0
- package/bin/tezgah-design +329 -54
- package/bin/tezgah-docs +157 -41
- package/bin/tezgah-dsh +1 -1
- package/bin/tezgah-gate +7 -2
- package/bin/tezgah-import-ai-research +16 -4
- package/bin/tezgah-index +3 -0
- package/bin/tezgah-lessons +13 -4
- package/bin/tezgah-mcp +4 -0
- package/bin/tezgah-migrate +3 -0
- package/bin/tezgah-ocr-review +2 -1
- package/bin/tezgah-optimize +4 -1
- package/bin/tezgah-pony +3 -0
- package/bin/tezgah-research +12 -6
- package/bin/tezgah-rollback +3 -0
- package/bin/tezgah-route +1 -1
- package/bin/tezgah-setup +596 -157
- package/bin/tezgah-status +11 -1
- package/bin/tezgah-task +3 -0
- package/bin/tezgah.js +10 -3
- package/commands/adhd.md +1 -1
- package/docs/README.md +19 -8
- package/docs/architecture.md +2 -2
- package/docs/citations-baseline.json +11 -17
- package/docs/clarity-baseline.json +3 -3
- package/docs/contract.md +77 -31
- package/docs/environment.md +58 -24
- package/docs/evidence.md +49 -19
- package/docs/gate.md +71 -21
- package/docs/hosts.md +65 -52
- package/docs/layers.md +1 -1
- package/docs/operations.md +67 -24
- package/docs/research.md +1 -1
- package/docs/skills.md +31 -8
- package/docs/status-line.md +33 -23
- package/docs/testing.md +48 -17
- package/docs/vision.md +6 -2
- package/hooks/lang/en.json +5 -2
- package/hooks/lang/tr.json +3 -2
- package/hooks/projects-posttooluse.py +11 -3
- package/hooks/projects-stop.py +1 -1
- package/hooks/tezgah_context.py +40 -23
- package/hooks/tezgah_gate.py +404 -106
- package/hooks/tezgah_integrity.py +367 -97
- package/hooks/tezgah_lessons.py +5 -2
- package/hooks/tezgah_paths.py +17 -6
- package/hooks/tezgah_policy.py +13 -5
- package/hooks/tezgah_skill_pick.py +1 -1
- package/hooks/tezgah_snapshot.py +6 -3
- package/hooks/tezgah_stopspec.py +2 -1
- package/hosts/amp/hook.py +1 -1
- package/hosts/amp/tezgah-plugin.ts.in +13 -3
- package/hosts/antigravity/hook.py +1 -1
- package/hosts/codex/hook.py +1 -1
- package/hosts/commandcode/hook.py +1 -1
- package/hosts/copilot/hook.py +1 -1
- package/hosts/cursor/hook.py +2 -1
- package/hosts/droid/hook.py +1 -1
- package/hosts/gemini/hook.py +1 -1
- package/hosts/goose/hook.py +1 -1
- package/hosts/omp/hook.py +1 -1
- package/hosts/omp/tezgah-hook.ts.in +127 -35
- package/hosts/opencode/plugins/tezgah.js +209 -63
- package/hosts/qwen/hook.py +1 -1
- package/output-styles/tezgah.md +1 -1
- package/package.json +6 -3
- package/packaging/build.sh +4 -4
- package/packaging/install.sh +11 -0
- package/packaging/upgrade.sh +3 -0
- package/skills/ai-research/LICENSE +21 -0
- package/skills/design-contract/SKILL.md +27 -6
- package/skills/design-library/LICENSE +21 -0
- package/skills/plan-add/render_table.py +7 -0
- package/skills/pm-frameworks/LICENSE +21 -0
- package/skills/rl-env/LICENSE +201 -0
- package/skills/tezgah-contract/SKILL.md +2 -2
- package/third_party/open-code-review/LICENSE +201 -0
- package/third_party/open-code-review/README.md +15 -0
- package/third_party/open-code-review/prompts/main_task_system.md +26 -0
- package/third_party/open-code-review/prompts/review_filter_task_system.md +13 -0
- package/workflows/graph-map.js +14 -5
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,175 @@ adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
|
6
6
|
|
|
7
7
|
## [Unreleased]
|
|
8
8
|
|
|
9
|
+
## [1.14.0] - 2026-11-01
|
|
10
|
+
|
|
11
|
+
### Fixed
|
|
12
|
+
|
|
13
|
+
- **The gate reads hook skips behind wrappers (plan 147).** It refuses a hook
|
|
14
|
+
skip behind a wrapper with arguments (`nice -n 5`, `timeout 60`). That covers
|
|
15
|
+
long value options, option clusters and `env -S`. It also refuses one inside
|
|
16
|
+
`eval`, `eval --` or `builtin eval`. One wrapper reader serves three rules:
|
|
17
|
+
shortcut, control and `VERIFY`. So a wrapped check meets the neuter and piped
|
|
18
|
+
refusals. A check piped into `rg`, `awk`, `sort`, `cat`, `less`, `sed` or
|
|
19
|
+
`tee` meets a refusal too. A trap other than plain cleanup on exit records
|
|
20
|
+
the check as ran, never as passed.
|
|
21
|
+
|
|
22
|
+
- **The gate closes control-plane, credit, language and credential bypasses
|
|
23
|
+
(plan 148).** Git config hooks settings meet a refusal: `core.hooksPath`,
|
|
24
|
+
`include.path`, `includeIf` and worktree config. The gate reads them in a
|
|
25
|
+
file, in `git config`, in `--file` and in `-c`. It refuses credits through `--trailer`, a git
|
|
26
|
+
path or `bash -c`. It refuses non-English names from `git worktree add -b`,
|
|
27
|
+
`git branch -m`, `gh -t`, `git tag` and push refspecs. It refuses credential
|
|
28
|
+
files staged by `git stage`, `git commit <path>` or `update-index --add`. It
|
|
29
|
+
refuses `ditto`, `mkfifo` and `${VAR:-…}` into the control plane. It refuses
|
|
30
|
+
MCP writes, moves and deletes into protected paths. It refuses a write racing
|
|
31
|
+
another session's in-flight write.
|
|
32
|
+
|
|
33
|
+
- **opencode sends shell writes to the core gate first (plan 149).** Every shell
|
|
34
|
+
write, swallowed check and hook-skipping line goes to the core gate. It gets
|
|
35
|
+
the core control, credential, workspace and shortcut refusals verbatim. A
|
|
36
|
+
refusal the plugin decides itself writes the `began` row the core writes.
|
|
37
|
+
`TEZGAH_HOME` is no longer exported.
|
|
38
|
+
|
|
39
|
+
- **The Stop rule reads more claim shapes (plan 150).** An empty Claude Bash
|
|
40
|
+
result is no pass. English past-tense and bare test claims and "not
|
|
41
|
+
tested/checked" admissions read like their Turkish twins. Prose-only and
|
|
42
|
+
benchmark claim reads honour the question and negation window. A plan claim
|
|
43
|
+
records as a claim. A subagent brief authorizes no switch.
|
|
44
|
+
|
|
45
|
+
- **Uninstall restores what the install found (plans 151, 152, 154).** Every
|
|
46
|
+
key and file goes back to its pre-install state. That covers your statusLine,
|
|
47
|
+
opencode compaction, omp codegraph row and `{}` settings files. It covers the
|
|
48
|
+
no-attribution values of Copilot, Command Code, Amp and Droid, and JSON
|
|
49
|
+
indent. It removes the directories tezgah created. It counts only tezgah's
|
|
50
|
+
own markers as leftovers. A partial uninstall keeps the farm the still-armed
|
|
51
|
+
hosts run from. A HOME behind a symlink no longer leaves
|
|
52
|
+
`~/.codex/bin/consult`.
|
|
53
|
+
|
|
54
|
+
- **Install names a host file it cannot read (plan 152).** Such a host rules or
|
|
55
|
+
settings file makes install exit 1. It no longer overwrites that file or
|
|
56
|
+
crashes. Install skips a commented host settings file with exit 0 and names it.
|
|
57
|
+
|
|
58
|
+
- **omp gates MCP device writes and `ast_edit` (plan 153).** An MCP device write
|
|
59
|
+
(`xd://mcp__…`) and `ast_edit` reach the gate as the calls they carry. The
|
|
60
|
+
device write itself meets the gate too. A glob or directory edit target takes the
|
|
61
|
+
control state it reaches. An MCP query records as external, not an edit.
|
|
62
|
+
|
|
63
|
+
- **`--uninstall` fails while anything tezgah wrote survives (plan 154).** It
|
|
64
|
+
exits 1 in that case. The farm carries `tezgah-optimize` and `tezgah-taste`.
|
|
65
|
+
Install refuses abbreviated flags. Piped `--upgrade` output reads in order.
|
|
66
|
+
Install names an unwritable HOME instead of printing a traceback. It refuses
|
|
67
|
+
Python below 3.10 early and names the version found.
|
|
68
|
+
|
|
69
|
+
- **The npm package and the READMEs match what ships (plan 156).** The package
|
|
70
|
+
ships NOTICE and the open-code-review prompts and no `__pycache__`. Every
|
|
71
|
+
vendored skill tree carries its upstream LICENSE. package.json and all five
|
|
72
|
+
READMEs name the fourteen hosts and the 17 refusal rules plus the nudge. They
|
|
73
|
+
also name the 17 rule switches and the current state of the Turkish claim
|
|
74
|
+
reader.
|
|
75
|
+
|
|
76
|
+
- **Farm CLIs answer help (plan 158).** They answer `-h/--help` with exit 0 and
|
|
77
|
+
refuse unknown flags. The `consult` CLI no longer sends a mistyped flag to the
|
|
78
|
+
panel. `tezgah-research check --json` prints pure JSON. `tezgah-status
|
|
79
|
+
--observable=` refuses an unknown measure.
|
|
80
|
+
|
|
81
|
+
- **Build and upgrade scripts fail clearly (plan 159).** `build.sh` without
|
|
82
|
+
`--version` names the artifact after the newest release heading instead of
|
|
83
|
+
`Unreleased`. `upgrade.sh` stops early with a clear message when `curl` or
|
|
84
|
+
`tar` is missing. The Windows CI leg checks that `install.ps1` refuses a
|
|
85
|
+
tampered artifact.
|
|
86
|
+
|
|
87
|
+
- **The graph-map workflow names a failed agent (plan 160).** A failed survey,
|
|
88
|
+
module reader, synthesize or gap-check agent lands in an `unknown` list. It is
|
|
89
|
+
no longer reported as an empty, clean result.
|
|
90
|
+
|
|
91
|
+
- **Subagents read the parent's switches (plan 165).** A subagent latches kill
|
|
92
|
+
switches on its parent's first ledger row when that came first. Every adapter
|
|
93
|
+
takes the parent from the host, the omp and Amp bridges and the opencode
|
|
94
|
+
plugin included. A switch the parent made mid-session no longer disarms rules
|
|
95
|
+
in subagents it spawns later.
|
|
96
|
+
|
|
97
|
+
- **The design chain reaches real UI work (plan 144).** `uygulamayı redesign et`
|
|
98
|
+
arms the design rule, and the frozen arming corpus stays the same. A
|
|
99
|
+
route-file write (`src/app/dashboard/page.tsx`, `src/routes/+page.svelte`)
|
|
100
|
+
owes the design check. `tezgah-design derive` reads a nested Tailwind palette
|
|
101
|
+
(`brand: {50..900}`) and every config in a monorepo, not only the first.
|
|
102
|
+
|
|
103
|
+
- **The citation ratchet holds in every checkout (plan 168).** `bin/tezgah-docs
|
|
104
|
+
--citations` never judges a path under the private `.tezgah/`. The unjudged
|
|
105
|
+
ratchet now holds the same in CI, worktrees and the main checkout.
|
|
106
|
+
|
|
107
|
+
### Added
|
|
108
|
+
|
|
109
|
+
- **`derive` reads JS/TS theme modules (plan 145).** A repository whose only
|
|
110
|
+
token source is a module such as `src/config/theme.ts` now derives a contract.
|
|
111
|
+
It carries `source: theme-module` with its colours, spacing unit and type
|
|
112
|
+
scale. `read_text` opens each path component with `O_NOFOLLOW` under the
|
|
113
|
+
repository root. It refuses a parent swapped for a symlink.
|
|
114
|
+
|
|
115
|
+
- **`derive --suggest` prints a candidate component inventory (plan 146).** It
|
|
116
|
+
lists `{name, kind}` candidates read off component files and writes nothing.
|
|
117
|
+
It skips tests, stories and names already in the contract. It guesses `kind`
|
|
118
|
+
only from the name and exits 2 when there is no candidate. A person adds the
|
|
119
|
+
ones the repository owns.
|
|
120
|
+
|
|
121
|
+
- **`tezgah-docs --citations` judges more citation shapes (plan 166).** It
|
|
122
|
+
judges bare `(N-M)` and `:N-M` ranges after a cited path, and JS/TS top-level
|
|
123
|
+
symbols. It flags ranges past a file end. Stale opencode plugin citations are
|
|
124
|
+
re-anchored by symbol.
|
|
125
|
+
|
|
126
|
+
### Changed
|
|
127
|
+
|
|
128
|
+
- **Two sessions meet on their first write of one file (plan 171).** The race
|
|
129
|
+
rule counts another session's unanswered write for 60 seconds. After that it
|
|
130
|
+
counts only if that host answers its writes. A refused prompt holds the file
|
|
131
|
+
about a minute.
|
|
132
|
+
|
|
133
|
+
- **The gate parses a command once per call (plan 169).** Its readers share
|
|
134
|
+
one parse of a command's heredocs and shell commands. Median gate latency is
|
|
135
|
+
back at the 1.13.0 figure.
|
|
136
|
+
|
|
137
|
+
- **Docs match the code again (plan 161).** The hosts, operations, skills,
|
|
138
|
+
research and testing pages document the tezgah-mcp tools and tezgah-decisions.
|
|
139
|
+
They list the omp events and the opencode `event` hook. They state that
|
|
140
|
+
`--install --dry-run` writes. Live probes no longer read as host obedience.
|
|
141
|
+
Drifted citations now name their symbol. tests/test_docs_reach.py keeps them
|
|
142
|
+
in step.
|
|
143
|
+
|
|
144
|
+
- **Ledger rows carry their version (plan 162).** Snapshot and rollback rows now
|
|
145
|
+
carry the row version `v`. The evidence page (`docs/evidence.md`) lists every
|
|
146
|
+
ledger kind, all optional fields and every `subagent_end` writer. It also
|
|
147
|
+
lists the exact prose-exemption names, and a new test checks it.
|
|
148
|
+
|
|
149
|
+
- **docs/contract.md and docs/environment.md match the code (plan 157).** They
|
|
150
|
+
cover the switch table, every environment variable read, budgets, DROP_ORDER
|
|
151
|
+
and the label-anchored composition order. The core and the reminder name the
|
|
152
|
+
kill-switch directory from XDG_CONFIG_HOME. The Ponytail Off line names its
|
|
153
|
+
switches. The suite never runs a real gh on upgrade.
|
|
154
|
+
|
|
155
|
+
- **Status-line marks and docs are complete (plan 163).** `python3
|
|
156
|
+
bin/tezgah-docs` and `python3 bin/tezgah-research` earn the judge and research
|
|
157
|
+
marks. The legend and docs name every host that cannot observe skill reads.
|
|
158
|
+
docs/status-line.md documents the extension `{"segments": [...]}` output and
|
|
159
|
+
an unknown `--observable` measure exiting 2. `/tezgah:adhd` states `on` as the
|
|
160
|
+
default.
|
|
161
|
+
|
|
162
|
+
- **`reminder-off` drops only the per-turn reminder line (plan 164).** Armed
|
|
163
|
+
rules, the gate-inactive notice and the off-note stay. Kill-switch off-notes
|
|
164
|
+
also name the matching section of the `tezgah` output style.
|
|
165
|
+
|
|
166
|
+
- **The impacted test map covers docs pages (plan 167).** tests/impacted.py runs
|
|
167
|
+
tests/test_docs_reach.py for docs/ page changes. It maps the omp status-line
|
|
168
|
+
e2e by the generic helper rule. The research seal test parses `check --json`
|
|
169
|
+
stdout as pure JSON.
|
|
170
|
+
|
|
171
|
+
- **Neuter rows for the audit guards (plan 155).** The neuter matrix gains 59
|
|
172
|
+
rows. Each guard the audit fixes added has one, with a behavioural killer.
|
|
173
|
+
It writes its killer cache only with `--update-killers`.
|
|
174
|
+
It answers `--help`. It runs on a push touching any mutated file. Gate vectors
|
|
175
|
+
cover every refusal rule: stateless ones by vector, stateful ones by named
|
|
176
|
+
tests.
|
|
177
|
+
|
|
9
178
|
## [1.13.0] - 2026-10-29
|
|
10
179
|
|
|
11
180
|
### Fixed
|
|
@@ -365,6 +534,10 @@ adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
|
365
534
|
|
|
366
535
|
- **A contract reads Hallmark's locked `design.md`, and one precedence table decides the floor.** A `design.md` or `DESIGN.md` at the repository root now feeds `derive`. It gives the palette and font roles, with `source: design-md`. The palette converts from OKLCH to the hex `check` compares. A token file beside it no longer competes. The contract gains a `precedence` block. It names `ours` (states, components, evidence, facts) and `theirs` (material, motion character). It names `shared` (contrast, focus-visible, reduced-motion, tap-target) and `verbatim: style`. `check` refuses with exit 2 a key named by two classes. It also refuses `facts` handed to a theme or to the user's own words.
|
|
367
536
|
|
|
537
|
+
- **`tezgah-ocr-review` runs open-code-review's loop on omp's model.** It reaches the model through a loopback shim.
|
|
538
|
+
|
|
539
|
+
- **`tezgah-review-quote` places review findings on the diff.** It finds each finding's location by the code it quotes.
|
|
540
|
+
|
|
368
541
|
|
|
369
542
|
### Changed
|
|
370
543
|
|
|
@@ -1628,7 +1801,8 @@ adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
|
1628
1801
|
the copy could not find `hooks/` and died on import. It now links into the
|
|
1629
1802
|
installed tree, and also installs the command as `tezgah`.
|
|
1630
1803
|
|
|
1631
|
-
[Unreleased]: https://github.com/r1z4x/tezgah/compare/v1.
|
|
1804
|
+
[Unreleased]: https://github.com/r1z4x/tezgah/compare/v1.14.0...HEAD
|
|
1805
|
+
[1.14.0]: https://github.com/r1z4x/tezgah/releases/tag/v1.14.0
|
|
1632
1806
|
[1.13.0]: https://github.com/r1z4x/tezgah/releases/tag/v1.13.0
|
|
1633
1807
|
[1.12.0]: https://github.com/r1z4x/tezgah/releases/tag/v1.12.0
|
|
1634
1808
|
[1.11.0]: https://github.com/r1z4x/tezgah/releases/tag/v1.11.0
|
package/MANIFEST
CHANGED
|
@@ -556,6 +556,7 @@ skills/ai-research/22-agent-native-research-artifact/research-manager/references
|
|
|
556
556
|
skills/ai-research/22-agent-native-research-artifact/research-manager/references/session-protocol.md
|
|
557
557
|
skills/ai-research/22-agent-native-research-artifact/rigor-reviewer/ENTRY.md
|
|
558
558
|
skills/ai-research/22-agent-native-research-artifact/rigor-reviewer/references/review-dimensions.md
|
|
559
|
+
skills/ai-research/LICENSE
|
|
559
560
|
skills/ai-research/SKILL.md
|
|
560
561
|
skills/ai-research/SOURCE
|
|
561
562
|
skills/ai-research/index/1-frame.md
|
|
@@ -572,6 +573,7 @@ skills/design-contract/SKILL.md
|
|
|
572
573
|
skills/design-contract/data-views.md
|
|
573
574
|
skills/design-library/EVALS.md
|
|
574
575
|
skills/design-library/INDEX.md
|
|
576
|
+
skills/design-library/LICENSE
|
|
575
577
|
skills/design-library/SKILL.md
|
|
576
578
|
skills/design-library/SOURCE
|
|
577
579
|
skills/design-library/adaptive-interfaces/skills/colour-independence/ENTRY.md
|
|
@@ -808,6 +810,7 @@ skills/plan-status/EVALS.md
|
|
|
808
810
|
skills/plan-status/SKILL.md
|
|
809
811
|
skills/plan-sync/EVALS.md
|
|
810
812
|
skills/plan-sync/SKILL.md
|
|
813
|
+
skills/pm-frameworks/LICENSE
|
|
811
814
|
skills/pm-frameworks/SKILL.md
|
|
812
815
|
skills/pm-frameworks/SOURCE
|
|
813
816
|
skills/pm-frameworks/intended-vs-implemented/ENTRY.md
|
|
@@ -820,6 +823,7 @@ skills/product-flow/EVALS.md
|
|
|
820
823
|
skills/product-flow/SKILL.md
|
|
821
824
|
skills/research/EVALS.md
|
|
822
825
|
skills/research/SKILL.md
|
|
826
|
+
skills/rl-env/LICENSE
|
|
823
827
|
skills/rl-env/SKILL.md
|
|
824
828
|
skills/rl-env/SOURCE
|
|
825
829
|
skills/rl-env/generate-nemo-gym-env/ENTRY.md
|
|
@@ -929,6 +933,7 @@ tests/test_cheap_source.py
|
|
|
929
933
|
tests/test_clarity.py
|
|
930
934
|
tests/test_claude_adapters.py
|
|
931
935
|
tests/test_claude_registration.py
|
|
936
|
+
tests/test_cli_flags.py
|
|
932
937
|
tests/test_codegen.py
|
|
933
938
|
tests/test_codex_hook.py
|
|
934
939
|
tests/test_commandcode_hook.py
|
|
@@ -937,6 +942,7 @@ tests/test_constraint_pinning.py
|
|
|
937
942
|
tests/test_consult_arena.py
|
|
938
943
|
tests/test_context.py
|
|
939
944
|
tests/test_context_diet.py
|
|
945
|
+
tests/test_context_switch_text.py
|
|
940
946
|
tests/test_control_plane.py
|
|
941
947
|
tests/test_copilot_hook.py
|
|
942
948
|
tests/test_cursor_cap.py
|
|
@@ -944,19 +950,26 @@ tests/test_cursor_hook.py
|
|
|
944
950
|
tests/test_decisions.py
|
|
945
951
|
tests/test_design_cli.py
|
|
946
952
|
tests/test_docs.py
|
|
953
|
+
tests/test_docs_citations.py
|
|
954
|
+
tests/test_docs_reach.py
|
|
947
955
|
tests/test_docs_router.py
|
|
948
956
|
tests/test_doctor.py
|
|
949
957
|
tests/test_droid_hook.py
|
|
950
958
|
tests/test_dsh_hooks.py
|
|
951
959
|
tests/test_dsh_launcher.py
|
|
952
960
|
tests/test_dsh_statusline.py
|
|
961
|
+
tests/test_e2e_omp_statusline.py
|
|
953
962
|
tests/test_embed.py
|
|
954
963
|
tests/test_encoding.py
|
|
955
964
|
tests/test_enforcers.py
|
|
965
|
+
tests/test_env_vars_audit.py
|
|
966
|
+
tests/test_evidence_docs.py
|
|
956
967
|
tests/test_evidence_store.py
|
|
957
968
|
tests/test_extension.py
|
|
958
969
|
tests/test_fuzz_shell.py
|
|
959
970
|
tests/test_gate.py
|
|
971
|
+
tests/test_gate_rules_audit.py
|
|
972
|
+
tests/test_gate_shell_audit.py
|
|
960
973
|
tests/test_gate_vectors.py
|
|
961
974
|
tests/test_gemini_hook.py
|
|
962
975
|
tests/test_goose_hook.py
|
|
@@ -988,6 +1001,7 @@ tests/test_mcp_server.py
|
|
|
988
1001
|
tests/test_migrate.py
|
|
989
1002
|
tests/test_models.py
|
|
990
1003
|
tests/test_neuter_matrix.py
|
|
1004
|
+
tests/test_npm_shim_probe.py
|
|
991
1005
|
tests/test_ocr_review.py
|
|
992
1006
|
tests/test_omp_extension.py
|
|
993
1007
|
tests/test_omp_hook.py
|
|
@@ -1016,6 +1030,7 @@ tests/test_research_seal.py
|
|
|
1016
1030
|
tests/test_research_stats.py
|
|
1017
1031
|
tests/test_review_quote.py
|
|
1018
1032
|
tests/test_setup.py
|
|
1033
|
+
tests/test_setup_farm.py
|
|
1019
1034
|
tests/test_shapes.py
|
|
1020
1035
|
tests/test_skill_pick.py
|
|
1021
1036
|
tests/test_skill_search.py
|
|
@@ -1026,6 +1041,8 @@ tests/test_stack.py
|
|
|
1026
1041
|
tests/test_statusline.py
|
|
1027
1042
|
tests/test_stop_after_block.py
|
|
1028
1043
|
tests/test_stopspec.py
|
|
1044
|
+
tests/test_store_concurrency.py
|
|
1045
|
+
tests/test_switch_latch_subagent.py
|
|
1029
1046
|
tests/test_switch_latching.py
|
|
1030
1047
|
tests/test_task.py
|
|
1031
1048
|
tests/test_taste.py
|
|
@@ -1033,6 +1050,7 @@ tests/test_taste_cli.py
|
|
|
1033
1050
|
tests/test_taste_ledger.py
|
|
1034
1051
|
tests/test_tezgah_mcp_wiring.py
|
|
1035
1052
|
tests/test_triage.py
|
|
1053
|
+
tests/test_uninstall_roundtrip.py
|
|
1036
1054
|
tests/test_untrusted.py
|
|
1037
1055
|
tests/test_update.py
|
|
1038
1056
|
third_party/open-code-review/LICENSE
|
package/NOTICE
ADDED
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
Third-party material vendored into or adapted by this repository. The MIT LICENSE
|
|
2
|
+
at the root covers tezgah's own files; the copies below keep their original terms.
|
|
3
|
+
Each vendored tree (a directory with a SOURCE file) carries upstream's LICENSE
|
|
4
|
+
beside its SOURCE, verbatim at the revision SOURCE names.
|
|
5
|
+
|
|
6
|
+
skills/no-ai-slop - MIT, Peter Yang, https://github.com/petergyang/no-ai-slop
|
|
7
|
+
skills/ponytail - MIT. Origin not recorded at vendoring time; if you are the
|
|
8
|
+
author, open an issue and the attribution will be corrected.
|
|
9
|
+
skills/i-have-adhd - MIT, ayghri, https://github.com/ayghri/i-have-adhd.
|
|
10
|
+
Adapted for tezgah: the ten rules are kept and two are
|
|
11
|
+
rewritten (the state restatement points at the todo list
|
|
12
|
+
instead of duplicating it, and a time estimate is marked
|
|
13
|
+
as an estimate), the user-invocation frontmatter is
|
|
14
|
+
dropped so the skill is model-invocable from the router,
|
|
15
|
+
and the trigger phrases are tezgah's.
|
|
16
|
+
skills/research - MIT, Orchestra Research. Adapts the orchestration layer of
|
|
17
|
+
its AI-research-SKILLs library (the autoresearch,
|
|
18
|
+
ara-rigor-reviewer and ara-research-manager skills):
|
|
19
|
+
https://github.com/orchestra-research/AI-research-SKILLs
|
|
20
|
+
Nothing is copied verbatim.
|
|
21
|
+
skills/product-analysis - MIT. Adapts the intended-vs-implemented method (a gap
|
|
22
|
+
is a finding only when the documented intent and the code
|
|
23
|
+
that enforces it are both cited) and the opportunity-score
|
|
24
|
+
framing from https://github.com/phuryn/pm-skills, whose
|
|
25
|
+
pm-ai-shipping and pm-product-discovery skills attribute
|
|
26
|
+
those in turn to Teresa Torres, Dan Olsen and Alberto
|
|
27
|
+
Savoia. Nothing is copied verbatim: the evidence classes,
|
|
28
|
+
the two-axis rule, the artifact shape and the scorecard are
|
|
29
|
+
tezgah's, and the skill points at the marketplace by URL
|
|
30
|
+
instead of reproducing its text.
|
|
31
|
+
|
|
32
|
+
skills/pm-frameworks - MIT, Pawel Huryn, https://github.com/phuryn/pm-skills.
|
|
33
|
+
VENDORED at revision
|
|
34
|
+
8607e3b077817f89bf4a9b623246219734ac3be0 (2026-09-19): two
|
|
35
|
+
skills, byte-for-byte upstream -
|
|
36
|
+
`intended-vs-implemented/ENTRY.md` and
|
|
37
|
+
`opportunity-solution-tree/ENTRY.md`, each upstream's
|
|
38
|
+
`SKILL.md` renamed so a host that lists every `SKILL.md`
|
|
39
|
+
below its skills directory does not list it. The entry point
|
|
40
|
+
`skills/pm-frameworks/SKILL.md` is tezgah's own and is not
|
|
41
|
+
part of the manifest; the other 67 skills and the plugin
|
|
42
|
+
manifest are not copied. `skills/pm-frameworks/SOURCE`
|
|
43
|
+
records the upstream paths and the per-file sha256, and
|
|
44
|
+
`tests/test_skills.py` holds the tree to it.
|
|
45
|
+
|
|
46
|
+
skills/ai-research - MIT, Orchestra Research. VENDORED from the same library at
|
|
47
|
+
revision 773a52944ba4747a18bd4ae9ade53fff041adcbc
|
|
48
|
+
(2026-06-15): 98 skills in 23 categories, each with its
|
|
49
|
+
markdown references, in the upstream layout. The bodies are
|
|
50
|
+
byte-for-byte upstream, frontmatter included - 96 keep
|
|
51
|
+
Orchestra Research's `author` line, two
|
|
52
|
+
(`ml-training-recipes`, `a-evolve`) keep the contributing
|
|
53
|
+
author's - and a markdown file with no frontmatter carries
|
|
54
|
+
one attribution comment. Each entry's `SKILL.md` sits at
|
|
55
|
+
the upstream path renamed `ENTRY.md`, bytes unchanged, so a
|
|
56
|
+
host that lists every `SKILL.md` below its skills directory
|
|
57
|
+
does not list it.
|
|
58
|
+
Three machine-scraped reference dumps and the LaTeX template
|
|
59
|
+
trees are not copied, and every drop is named in
|
|
60
|
+
skills/ai-research/SOURCE. `bin/tezgah-import-ai-research
|
|
61
|
+
--check` verifies the tree against its manifest.
|
|
62
|
+
|
|
63
|
+
skills/hallmark - MIT, Hallmark contributors, made by Together AI,
|
|
64
|
+
https://github.com/Nutlope/hallmark. VENDORED at revision
|
|
65
|
+
7ec868225c6caa040558c321ee0fefa0e73f83a8 (2026-10-22): the
|
|
66
|
+
whole `skills/hallmark/` tree - one `SKILL.md` (the workflow
|
|
67
|
+
itself, listed in its manifest because tezgah ships no entry
|
|
68
|
+
point of its own for it), 98 reference pages including 48
|
|
69
|
+
themes with their pictures and 20 macrostructures, and 10
|
|
70
|
+
zero-dependency Node scripts. Byte-for-byte upstream;
|
|
71
|
+
nothing is adapted, and upstream's own LICENSE sits at
|
|
72
|
+
`skills/hallmark/LICENSE`. `skills/hallmark/SOURCE` holds
|
|
73
|
+
the sha256 of every file and the checkout command; its own
|
|
74
|
+
test (`tests/test_skills.py::HallmarkVendor`) fails on a
|
|
75
|
+
body that drifted, a listed file that is missing, or a file
|
|
76
|
+
beside them the table does not list.
|
|
77
|
+
The tier map `scripts/sloplint.mjs` grades by is
|
|
78
|
+
`references/gates.md` itself, which wins on disagreement.
|
|
79
|
+
|
|
80
|
+
skills/design-library (inclusive-design-skills) - MIT, MC Dean,
|
|
81
|
+
https://github.com/Owl-Listener/inclusive-design-skills.
|
|
82
|
+
VENDORED at revision
|
|
83
|
+
6e0740f04b2130af60bc57abe3401b91e460e70d (2026-06-09): three
|
|
84
|
+
of its plugins - cognitive-accessibility,
|
|
85
|
+
adaptive-interfaces, inclusive-interaction - every skill in
|
|
86
|
+
them, 30 `SKILL.md`, at the upstream path, each renamed
|
|
87
|
+
`ENTRY.md` (bytes unchanged) so a host that lists every
|
|
88
|
+
`SKILL.md` below its skills directory does not list it.
|
|
89
|
+
ADAPTED, one body -
|
|
90
|
+
cognitive-accessibility/skills/adaptive-personalisation/ENTRY.md
|
|
91
|
+
carries `name: contextual-help-design` upstream, which is
|
|
92
|
+
the sibling `contextual-help-design` skill's name and not
|
|
93
|
+
its own directory; this copy's `name` matches its
|
|
94
|
+
directory, because a host that loads a skill from its
|
|
95
|
+
directory skips one whose name disagrees with it.
|
|
96
|
+
|
|
97
|
+
skills/design-library (designer-skills) - MIT, MC Dean,
|
|
98
|
+
https://github.com/Owl-Listener/designer-skills. VENDORED at
|
|
99
|
+
revision 9a6930cf84a822eb458624bd11c61aac5bbdf224
|
|
100
|
+
(2026-09-05): the whole visual-critique plugin (7
|
|
101
|
+
`SKILL.md`, renamed `ENTRY.md` the same way) and two
|
|
102
|
+
skills of design-research
|
|
103
|
+
(`behavioural-analytics`, `qual-quant-triangulation`),
|
|
104
|
+
byte-for-byte upstream. Nothing in this half is adapted;
|
|
105
|
+
the 12 other design-research skills and the plugin
|
|
106
|
+
packaging surface are not copied.
|
|
107
|
+
|
|
108
|
+
ADAPTED across the library, one statement: the
|
|
109
|
+
inclusive-design-skills copy of
|
|
110
|
+
inclusive-interaction/skills/touch-target-design/ENTRY.md
|
|
111
|
+
states the touch minimum as `44x44 CSS pixels (WCAG 2.2
|
|
112
|
+
Level AA)`. WCAG 2.2 SC 2.5.8 Target Size (Minimum) is
|
|
113
|
+
Level AA at 24x24 CSS px and SC 2.5.5 Target Size
|
|
114
|
+
(Enhanced) is Level AAA at 44x44, and tezgah's own checker
|
|
115
|
+
enforces 24 (bin/tezgah-design, `TAP_TARGET`); the adopted
|
|
116
|
+
copy states 24x24 as the AA floor with its success
|
|
117
|
+
criterion and keeps 44x44 as the AAA floor and the common
|
|
118
|
+
platform guideline. Every other adopted byte is upstream's,
|
|
119
|
+
and `skills/design-library/SOURCE` records the per-file
|
|
120
|
+
sha256 and names both departures.
|
|
121
|
+
`skills/design-library/SKILL.md`, `INDEX.md` and `EVALS.md`
|
|
122
|
+
are tezgah's own files and are not part of the manifest.
|
|
123
|
+
|
|
124
|
+
skills/rl-env - Apache-2.0, Adithya S Kolavi and the FineEnvs authors,
|
|
125
|
+
https://github.com/adithya-s-k/FineEnvs. VENDORED at
|
|
126
|
+
revision 26ab9c60915005b6f536968ac0928482bb18c0f8
|
|
127
|
+
(2026-10-01): the five environment-authoring skills and
|
|
128
|
+
every reference file they ship, 14 files under
|
|
129
|
+
`skills/rl-env/<skill>/`, byte-for-byte upstream including
|
|
130
|
+
frontmatter, at their upstream path under `.claude/skills/`,
|
|
131
|
+
each entry's `SKILL.md` renamed `ENTRY.md` so a host that
|
|
132
|
+
lists every `SKILL.md` below its skills directory does not
|
|
133
|
+
list it.
|
|
134
|
+
Nothing is adapted and nothing is dropped. The entry point
|
|
135
|
+
`skills/rl-env/SKILL.md` is tezgah's own and is not part of
|
|
136
|
+
the manifest, and upstream's own install route
|
|
137
|
+
(`npx skills add adithya-s-k/FineEnvs`) is deliberately not
|
|
138
|
+
used: it writes into a host's skill directory, which is
|
|
139
|
+
outside tezgah's router, its install report and this record.
|
|
140
|
+
`skills/rl-env/SOURCE` carries the upstream paths and the
|
|
141
|
+
per-file sha256.
|
|
142
|
+
|
|
143
|
+
third_party/open-code-review - Apache-2.0, the open-code-review authors,
|
|
144
|
+
https://github.com/alibaba/open-code-review. VENDORED at
|
|
145
|
+
commit 375f64cd6f67a48a135da83cfcf59c52669a09cb: two prompts,
|
|
146
|
+
`prompts/main_task_system.md` and
|
|
147
|
+
`prompts/review_filter_task_system.md`, from upstream's
|
|
148
|
+
`internal/config/template/prompts/`. MODIFIED: each prompt
|
|
149
|
+
carries one added first line, the modification notice; the
|
|
150
|
+
rest of each file is unchanged. Upstream's LICENSE sits at
|
|
151
|
+
`third_party/open-code-review/LICENSE`, and
|
|
152
|
+
`third_party/open-code-review/README.md` records the source.
|
package/README.de.md
CHANGED
|
@@ -25,8 +25,10 @@
|
|
|
25
25
|
---
|
|
26
26
|
|
|
27
27
|
Tezgah rüstet jeden KI-Programmierassistenten, den Sie ausführen — **omp, den
|
|
28
|
-
primären Host**, plus Claude Code, Codex, Cursor, opencode
|
|
29
|
-
|
|
28
|
+
primären Host**, plus Claude Code, Codex, Cursor, opencode, DeepSeeks dsh, Qwen
|
|
29
|
+
Code, Factory Droid, Command Code, GitHub Copilot CLI, Gemini CLI, Antigravity
|
|
30
|
+
CLI, Goose und Amp — innerhalb der von Ihnen konfigurierten
|
|
31
|
+
Repository-Stammverzeichnisse mit einem
|
|
30
32
|
funktionierenden Vertrag aus. Sich selbst überlassen, driften die Assistenten:
|
|
31
33
|
Einer antwortet auf Türkisch, ein anderer auf Englisch; einer nutzt Grep, ein
|
|
32
34
|
anderer fragt einen Code-Graphen ab; einer meldet „fertig“, ohne einen Test
|
|
@@ -37,11 +39,14 @@ auf dieselbe Weise.
|
|
|
37
39
|
|
|
38
40
|
## Was tezgah durchsetzt und aufzeichnet
|
|
39
41
|
|
|
40
|
-
- **Ein Vertrag,
|
|
41
|
-
dsh
|
|
42
|
-
|
|
42
|
+
- **Ein Vertrag, vierzehn Hosts.** omp, Claude Code, Codex, Cursor, opencode,
|
|
43
|
+
dsh, Qwen Code, Factory Droid, Command Code, GitHub Copilot CLI, Gemini CLI,
|
|
44
|
+
Antigravity CLI, Goose und Amp sehen dieselben Regeln, denn jeder Host ist
|
|
45
|
+
ein dünner Adapter über einem gemeinsamen Kern — eine Regel einmal ändern,
|
|
46
|
+
alle übernehmen sie.
|
|
43
47
|
- **Eine Fertig-Meldung braucht eine bestandene Prüfung im Protokoll.** Ein
|
|
44
|
-
Gate aus
|
|
48
|
+
Gate aus 17 Verweigerungsregeln und einem einmaligen Hinweis pro Sitzung
|
|
49
|
+
stoppt die entschärfte Prüfung — `--no-verify`,
|
|
45
50
|
`|| true`, ein in `tail` gepipeter Test, ein mitten im Flug ergänzter Skip —
|
|
46
51
|
und die Stop-Regel verweigert einen Fertigstellungsanspruch, den das
|
|
47
52
|
Evidenzprotokoll der Sitzung nicht stützt. Sie verweigert den Zug; sie kann
|
|
@@ -49,7 +54,7 @@ auf dieselbe Weise.
|
|
|
49
54
|
- **Forschung kommt mit eigener Bibliothek.** Forschungsaufgaben laufen über
|
|
50
55
|
OpenResearch, mit einer integrierten Bibliothek aus 98 Upstream-Skills, die
|
|
51
56
|
Eintrag für Eintrag geladen wird, damit der Kontext klein bleibt.
|
|
52
|
-
- **Jede Regel hat einen Ausschalter.** Siebzehn
|
|
57
|
+
- **Jede Regel hat einen Ausschalter.** Siebzehn Regel-Schalter — dazu
|
|
53
58
|
Repo-Markierungen — entfernen den Regeltext aus der Sitzung; die Regel
|
|
54
59
|
stoppt damit wirklich, statt nur als aus zu erscheinen.
|
|
55
60
|
- **Eine feste Antwortform.** Antworten sind türkisch, sofern Sie keine andere Sprache wählen, und
|
|
@@ -81,8 +86,14 @@ das Modell in beiden Armen kaum schummelte:
|
|
|
81
86
|
- **Eine Schwachstelle im Anspruchsleser der Stop-Regel:** Er markierte
|
|
82
87
|
115/132 Läufe mit tezgah und 90/131 ohne, aber nur 10% bzw. 20% seiner
|
|
83
88
|
Markierungen waren echte Fertig-Meldungen. Mit tezgah antwortete der Agent
|
|
84
|
-
auf Türkisch, und der Leser
|
|
85
|
-
Teilkorrektur als Anspruch
|
|
89
|
+
auf Türkisch, und der Leser zählte `doğrulandı` (verifiziert) bei einer
|
|
90
|
+
Teilkorrektur als Anspruch, selbst neben einem `doğrulanmadı` (nicht
|
|
91
|
+
verifiziert) für den fehlschlagenden Test. Diese Form ist behoben (Commit
|
|
92
|
+
9cb4d1d; Recall auf der zurückgehaltenen Menge 0.857, unter der Schwelle
|
|
93
|
+
von 0.9 des Plans). Ein engerer Rest bleibt: Eine türkische Teilkorrektur
|
|
94
|
+
ohne Eingeständniswort (`hâlâ başarısız`, schlägt noch fehl; `kısmen`,
|
|
95
|
+
teilweise) liest sich weiter als fertig und verifiziert, während ihr
|
|
96
|
+
englisches Gegenstück nur als Verifikation gilt.
|
|
86
97
|
|
|
87
98
|
Der Lauf hatte Messmängel, darunter Agenten in beiden Armen, die die
|
|
88
99
|
Grundwahrheit des Benchmarks lesen konnten. Die Aggregate, die Zählungen pro
|
|
@@ -94,8 +105,12 @@ Aufgabe und jede Einschränkung stehen im
|
|
|
94
105
|
## Installation
|
|
95
106
|
|
|
96
107
|
Eine Zeile, auf macOS, Linux oder WSL (Python 3.10+, `curl`, `tar`). Sie lädt
|
|
97
|
-
die neueste Version herunter, prüft ihre sha256
|
|
98
|
-
|
|
108
|
+
die neueste Version herunter, prüft ihre sha256, rüstet jeden gefundenen Host
|
|
109
|
+
(Claude Code über dessen eigene `claude plugin`-CLI) und installiert die
|
|
110
|
+
fehlenden optionalen Werkzeuge, die tezgah selbst nutzt (orx;
|
|
111
|
+
`TEZGAH_NO_DEPS=1` überspringt sie). Die eigene CLI eines Hosts
|
|
112
|
+
(cursor-agent, pnpm, dsh) installiert es nie: Es gibt stattdessen den Befehl
|
|
113
|
+
aus oder führt ihn unter `tezgah-setup --install --host-deps` aus.
|
|
99
114
|
|
|
100
115
|
```bash
|
|
101
116
|
curl -fsSL https://raw.githubusercontent.com/r1z4x/tezgah/main/packaging/install.sh | sh
|
|
@@ -116,18 +131,24 @@ gerüstet ist.
|
|
|
116
131
|
`~/.omp/agent/RULES.md`). Claude Codes Hooks kommen in einem Plugin, das über
|
|
117
132
|
`claude plugin` registriert wird; ohne `claude`-CLI bleibt Claude ungerüstet,
|
|
118
133
|
und der Bericht sagt es.
|
|
119
|
-
- **Agent-Dateien
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
134
|
+
- **Agent-Dateien.** Die Installation schreibt tezgahs Subagent-Rollen nach
|
|
135
|
+
`~/.claude/agents/`, `$CODEX_HOME/agents/` (Standard `~/.codex/agents/`) und
|
|
136
|
+
`~/.omp/agent/agents/`. In den konfigurierten Wurzeln schreibt eine Sitzung
|
|
137
|
+
sie in die `.cursor/agents/` und `.opencode/agents/` des Repositorys und
|
|
138
|
+
trägt diese Verzeichnisse in die eigene `.git/info/exclude` des Klons ein
|
|
139
|
+
(`TEZGAH_NO_EXCLUDE=1` stoppt das).
|
|
123
140
|
- **Eine tägliche Update-Prüfung.** Die Statuszeile fragt höchstens einmal am
|
|
124
141
|
Tag nach einer neueren Version; `~/.config/tezgah/update-check-off` oder
|
|
125
142
|
`TEZGAH_UPDATE_CHECK=0` schaltet sie ab.
|
|
126
143
|
- **orx.** Die Installation lädt die OpenResearch-CLI, über die
|
|
127
144
|
Forschungsaufgaben laufen; `TEZGAH_NO_DEPS=1` überspringt sie.
|
|
128
|
-
- **Antwortsprache.**
|
|
129
|
-
|
|
130
|
-
|
|
145
|
+
- **Antwortsprache.** Eine Erstinstallation wählt Antworten in der Sprache
|
|
146
|
+
Ihrer Locale (`LANG` und verwandte Variablen), wenn tezgah dafür ein Paket
|
|
147
|
+
mitbringt (`tr`, `en`), sonst Englisch; eine bestehende Installation behält
|
|
148
|
+
ihre Sprache. `--language en` verlangt Englisch und `any` Ihre eigene
|
|
149
|
+
Sprache: `curl -fsSL … | sh -s -- --reply-lang en` (die ältere Schreibweise
|
|
150
|
+
des Installers für `--language`). Nur türkische Antworten prüft die
|
|
151
|
+
Stop-Regel.
|
|
131
152
|
|
|
132
153
|
Lieber der Coding-Assistent erledigen? Fügen Sie dies in omp, Claude Code,
|
|
133
154
|
Codex, Cursor oder opencode ein (der Prompt bleibt Englisch; der Assistent
|
|
@@ -157,7 +178,7 @@ Upgrades und die optionalen Integrationen stehen in der [Dokumentation](docs/REA
|
|
|
157
178
|
|
|
158
179
|
## Unterstützte Hosts
|
|
159
180
|
|
|
160
|
-
**omp** (der primäre Host, gegen den entwickelt und verifiziert wird), **Claude Code**, **Codex**, **Cursor**, **opencode**, **dsh** — dünne Adapter über einem gemeinsamen Kern.
|
|
181
|
+
**omp** (der primäre Host, gegen den entwickelt und verifiziert wird), **Claude Code**, **Codex**, **Cursor**, **opencode**, **dsh**, **Qwen Code**, **Factory Droid**, **Command Code**, **GitHub Copilot CLI**, **Gemini CLI**, **Antigravity CLI**, **Goose**, **Amp** — dünne Adapter über einem gemeinsamen Kern. Bei den letzten acht hat noch kein Lauf ihrer Binaries gezeigt, dass sie ein Deny befolgen, und die letzten sechs sind allein nach der Dokumentation ihrer Hersteller angebunden ([Hosts](docs/hosts.md), Englisch).
|
|
161
182
|
|
|
162
183
|
## Wo die Tiefe liegt
|
|
163
184
|
|
|
@@ -166,4 +187,4 @@ Gate, Evidence-Ledger, Host-Adapter, Konfiguration und Entwicklung liegen in [do
|
|
|
166
187
|
## Lizenz
|
|
167
188
|
|
|
168
189
|
MIT — siehe [LICENSE](LICENSE).
|
|
169
|
-
Vendorte Skills
|
|
190
|
+
Vendorte und adaptierte Skills und Texte Dritter behalten ihre eigenen Bedingungen (MIT oder Apache-2.0), verzeichnet in [NOTICE](NOTICE).
|