telchines 1.0.0__tar.gz

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 (66) hide show
  1. telchines-1.0.0/CHANGELOG.md +26 -0
  2. telchines-1.0.0/CONTRIBUTING.md +59 -0
  3. telchines-1.0.0/LICENSE +21 -0
  4. telchines-1.0.0/MANIFEST.in +6 -0
  5. telchines-1.0.0/PKG-INFO +312 -0
  6. telchines-1.0.0/README.md +278 -0
  7. telchines-1.0.0/SECURITY.md +35 -0
  8. telchines-1.0.0/docs/adapters.md +45 -0
  9. telchines-1.0.0/docs/assets/readme-architecture.svg +46 -0
  10. telchines-1.0.0/docs/assets/readme-hero.svg +33 -0
  11. telchines-1.0.0/docs/assets/readme-workflow.svg +40 -0
  12. telchines-1.0.0/docs/compatibility.md +41 -0
  13. telchines-1.0.0/docs/evaluation.md +39 -0
  14. telchines-1.0.0/docs/examples.md +49 -0
  15. telchines-1.0.0/docs/external-retrieval-policy.md +51 -0
  16. telchines-1.0.0/docs/providers.md +81 -0
  17. telchines-1.0.0/docs/quickstart.md +97 -0
  18. telchines-1.0.0/docs/release-checklist.md +33 -0
  19. telchines-1.0.0/pyproject.toml +68 -0
  20. telchines-1.0.0/setup.cfg +4 -0
  21. telchines-1.0.0/src/telchines/__init__.py +5 -0
  22. telchines-1.0.0/src/telchines/__main__.py +7 -0
  23. telchines-1.0.0/src/telchines/adapters/__init__.py +1 -0
  24. telchines-1.0.0/src/telchines/adapters/base.py +130 -0
  25. telchines-1.0.0/src/telchines/adapters/open_tools.py +187 -0
  26. telchines-1.0.0/src/telchines/adapters/parsing.py +58 -0
  27. telchines-1.0.0/src/telchines/adapters/registry.py +27 -0
  28. telchines-1.0.0/src/telchines/cli.py +315 -0
  29. telchines-1.0.0/src/telchines/config.py +230 -0
  30. telchines-1.0.0/src/telchines/errors.py +21 -0
  31. telchines-1.0.0/src/telchines/eval.py +483 -0
  32. telchines-1.0.0/src/telchines/models.py +357 -0
  33. telchines-1.0.0/src/telchines/operations.py +405 -0
  34. telchines-1.0.0/src/telchines/providers.py +1210 -0
  35. telchines-1.0.0/src/telchines/retrieval.py +405 -0
  36. telchines-1.0.0/src/telchines/run_store.py +139 -0
  37. telchines-1.0.0/src/telchines/shell.py +1022 -0
  38. telchines-1.0.0/src/telchines/utils.py +87 -0
  39. telchines-1.0.0/src/telchines/waveforms.py +187 -0
  40. telchines-1.0.0/src/telchines/workflows/__init__.py +1 -0
  41. telchines-1.0.0/src/telchines/workflows/coverage.py +483 -0
  42. telchines-1.0.0/src/telchines/workflows/gen_cocotb.py +240 -0
  43. telchines-1.0.0/src/telchines/workflows/gen_sva.py +176 -0
  44. telchines-1.0.0/src/telchines/workflows/repair.py +183 -0
  45. telchines-1.0.0/src/telchines/workflows/triage.py +298 -0
  46. telchines-1.0.0/src/telchines.egg-info/PKG-INFO +312 -0
  47. telchines-1.0.0/src/telchines.egg-info/SOURCES.txt +64 -0
  48. telchines-1.0.0/src/telchines.egg-info/dependency_links.txt +1 -0
  49. telchines-1.0.0/src/telchines.egg-info/entry_points.txt +3 -0
  50. telchines-1.0.0/src/telchines.egg-info/requires.txt +6 -0
  51. telchines-1.0.0/src/telchines.egg-info/top_level.txt +1 -0
  52. telchines-1.0.0/tests/test_adapters.py +70 -0
  53. telchines-1.0.0/tests/test_backlog.py +18 -0
  54. telchines-1.0.0/tests/test_cli.py +722 -0
  55. telchines-1.0.0/tests/test_config.py +69 -0
  56. telchines-1.0.0/tests/test_coverage.py +126 -0
  57. telchines-1.0.0/tests/test_eval.py +39 -0
  58. telchines-1.0.0/tests/test_models.py +21 -0
  59. telchines-1.0.0/tests/test_parsing.py +12 -0
  60. telchines-1.0.0/tests/test_release_assets.py +48 -0
  61. telchines-1.0.0/tests/test_repair.py +104 -0
  62. telchines-1.0.0/tests/test_retrieval.py +89 -0
  63. telchines-1.0.0/tests/test_run_store.py +29 -0
  64. telchines-1.0.0/tests/test_shell.py +107 -0
  65. telchines-1.0.0/tests/test_triage.py +83 -0
  66. telchines-1.0.0/tests/test_waveforms.py +28 -0
@@ -0,0 +1,26 @@
1
+ # Changelog
2
+
3
+ ## 1.0.0 - 2026-04-23
4
+
5
+ First public CLI-first `v1` release target.
6
+
7
+ Highlights:
8
+
9
+ - stabilized the documented `1.x` CLI surface
10
+ - promoted package metadata and versioning for public distribution
11
+ - added `--version` support to `tel` and `telchines`
12
+ - documented install, quickstart, providers, adapters, evaluation, compatibility, and release process
13
+ - added public repo assets: license, contributing guide, security policy, changelog
14
+ - added GitHub Actions for CI and release publishing
15
+ - formalized the external retrieval policy and adapter contribution contract
16
+
17
+ Workflow surface included in `v1`:
18
+
19
+ - repair
20
+ - triage
21
+ - retrieval
22
+ - waveform inspection
23
+ - spec-to-SVA generation
24
+ - DUT-to-cocotb generation
25
+ - coverage planning
26
+ - benchmark evaluation
@@ -0,0 +1,59 @@
1
+ # Contributing
2
+
3
+ Telchines is a CLI-first verification workflow platform. Contributions should preserve three product properties:
4
+
5
+ - deterministic or inspectable workflow behavior
6
+ - clear evidence and replay artifacts
7
+ - stable user-facing interfaces in the `1.x` line
8
+
9
+ ## Development Setup
10
+
11
+ ```bash
12
+ python -m venv .venv
13
+ . .venv/Scripts/activate
14
+ pip install -e .[dev]
15
+ pytest
16
+ ```
17
+
18
+ ## What To Include In A Change
19
+
20
+ - code changes for the intended behavior
21
+ - tests for user-visible behavior or schema changes
22
+ - docs for any new command, config field, workflow, or contract change
23
+
24
+ ## Change Guidelines
25
+
26
+ - keep workflows replayable
27
+ - preserve provenance in retrieval and generation outputs
28
+ - do not silently widen policy or egress behavior
29
+ - prefer additive CLI changes over breaking command renames
30
+ - keep generated artifacts reviewable by a human
31
+
32
+ ## Adapters
33
+
34
+ If you add or extend an adapter:
35
+
36
+ - document the tool category and validation mode
37
+ - normalize outputs into structured observations
38
+ - define failure behavior clearly when the external tool is unavailable
39
+ - add isolated tests that cover parsing and command construction
40
+
41
+ See [docs/adapters.md](docs/adapters.md) for the current support contract.
42
+
43
+ ## Providers
44
+
45
+ If you add provider behavior:
46
+
47
+ - preserve policy enforcement for `model_mode` and `no_egress`
48
+ - keep request and response artifacts replayable
49
+ - document new config fields in [docs/providers.md](docs/providers.md)
50
+
51
+ ## Release Expectations
52
+
53
+ Before merging release-facing changes, verify:
54
+
55
+ - `pytest` passes
56
+ - CLI help and version still work
57
+ - docs match the implemented command surface
58
+
59
+ See [docs/release-checklist.md](docs/release-checklist.md) for the full release gate.
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Telchines contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,6 @@
1
+ include LICENSE
2
+ include CHANGELOG.md
3
+ include CONTRIBUTING.md
4
+ include SECURITY.md
5
+ include README.md
6
+ graft docs
@@ -0,0 +1,312 @@
1
+ Metadata-Version: 2.4
2
+ Name: telchines
3
+ Version: 1.0.0
4
+ Summary: CLI-first verification workflow platform for grounded AI-assisted hardware validation
5
+ Author: Telchines contributors
6
+ License-Expression: MIT
7
+ Project-URL: Homepage, https://github.com/ivanbard/telchines
8
+ Project-URL: Repository, https://github.com/ivanbard/telchines
9
+ Project-URL: Issues, https://github.com/ivanbard/telchines/issues
10
+ Project-URL: Changelog, https://github.com/ivanbard/telchines/blob/main/CHANGELOG.md
11
+ Project-URL: Documentation, https://github.com/ivanbard/telchines/tree/main/docs
12
+ Keywords: asic,fpga,rtl,verification,sva,cocotb,cli
13
+ Classifier: Development Status :: 5 - Production/Stable
14
+ Classifier: Environment :: Console
15
+ Classifier: Intended Audience :: Developers
16
+ Classifier: Intended Audience :: Science/Research
17
+ Classifier: Operating System :: Microsoft :: Windows
18
+ Classifier: Operating System :: POSIX :: Linux
19
+ Classifier: Programming Language :: Python :: 3
20
+ Classifier: Programming Language :: Python :: 3.11
21
+ Classifier: Programming Language :: Python :: 3.12
22
+ Classifier: Programming Language :: Python :: 3.13
23
+ Classifier: Topic :: Scientific/Engineering :: Electronic Design Automation (EDA)
24
+ Classifier: Topic :: Software Development :: Testing
25
+ Requires-Python: >=3.11
26
+ Description-Content-Type: text/markdown
27
+ License-File: LICENSE
28
+ Requires-Dist: prompt_toolkit<4.0,>=3.0
29
+ Requires-Dist: rich<15.0,>=14.0
30
+ Requires-Dist: typer<1.0,>=0.17
31
+ Provides-Extra: dev
32
+ Requires-Dist: pytest>=9.0; extra == "dev"
33
+ Dynamic: license-file
34
+
35
+ # Telchines
36
+
37
+ <p align="center">
38
+ <img src="docs/assets/readme-hero.svg" alt="Telchines hero banner" width="100%">
39
+ </p>
40
+
41
+ <p align="center">
42
+ <a href="https://github.com/ivanbard/telchines/actions/workflows/ci.yml"><img src="https://img.shields.io/github/actions/workflow/status/ivanbard/telchines/ci.yml?branch=main&style=flat-square&label=CI" alt="CI status"></a>
43
+ <img src="https://img.shields.io/badge/version-v1.0.0-0f172a?style=flat-square" alt="Version 1.0.0">
44
+ <img src="https://img.shields.io/badge/python-3.11%2B-0b7285?style=flat-square" alt="Python 3.11+">
45
+ <img src="https://img.shields.io/badge/license-MIT-14532d?style=flat-square" alt="MIT License">
46
+ <img src="https://img.shields.io/badge/benchmarks-18%20cases-7c2d12?style=flat-square" alt="18 benchmark cases">
47
+ </p>
48
+
49
+ <p align="center">
50
+ CLI-first verification workflows for hardware teams that want grounded, replayable AI instead of generic repo chat.
51
+ </p>
52
+
53
+ <p align="center">
54
+ <a href="#quick-start"><strong>Quick Start</strong></a> |
55
+ <a href="#what-you-can-do-with-v1"><strong>v1 Workflows</strong></a> |
56
+ <a href="#how-it-works"><strong>How It Works</strong></a> |
57
+ <a href="#documentation"><strong>Documentation</strong></a>
58
+ </p>
59
+
60
+ ## Why Telchines
61
+
62
+ Generic coding assistants are weak at verification work because the real loop is not just text generation. It is specs, RTL, logs, tool feedback, coverage holes, prior runs, and the ability to replay what happened.
63
+
64
+ Telchines is built around that loop:
65
+
66
+ - retrieve evidence from RTL, docs, logs, and run history
67
+ - run verification-native workflows instead of generic chat prompts
68
+ - preserve replay artifacts and citations
69
+ - validate outputs through adapters and deterministic gates
70
+ - keep model routing local-first and policy-aware
71
+
72
+ > Telchines is not trying to replace simulators or formal tools. It is the orchestration layer that helps engineers move from signal to next action faster.
73
+
74
+ ## What You Can Do With v1
75
+
76
+ | Workflow | What it does | Primary command |
77
+ | --- | --- | --- |
78
+ | Retrieval | Builds task-aware evidence packs from repo and run history | `tel retrieve "query"` |
79
+ | Repair | Proposes and validates minimal fixes from tool output | `tel repair --tool ... --file ...` |
80
+ | Triage | Clusters repeated regressions with evidence and history | `tel triage --logs logs/regressions` |
81
+ | Spec-to-SVA | Generates first-pass assertions from spec plus RTL | `tel gen-sva --spec docs/uart.md --rtl rtl/uart_rx.sv` |
82
+ | DUT-to-Cocotb | Scaffolds a grounded cocotb starter testbench | `tel gen-cocotb --dut rtl/uart_rx.sv --spec docs/uart.md` |
83
+ | Coverage Planning | Classifies uncovered items and ranks next actions | `tel coverage-plan --report cov/coverage.json ...` |
84
+ | Waveform Debug | Parses VCDs and inspects signals from CLI or shell | `tel waveforms show ...` |
85
+ | Benchmarks | Runs the built-in offline evaluation suite | `tel eval run` |
86
+
87
+ ## What It Looks Like
88
+
89
+ ```text
90
+ $ tel
91
+
92
+ tel[uart] sample_project> /index
93
+ Index Complete
94
+ indexed 18 chunks
95
+
96
+ tel[uart] sample_project> /triage --logs logs/regressions
97
+ Triage Summary
98
+ run run_... produced 2 cluster(s)
99
+
100
+ 1. UART receiver start-bit regressions grouped together
101
+ likely cause: missing stimulus or broken start-bit detection path
102
+ suggested action: inspect uart_rx start-bit handling and nearby waveform evidence
103
+ evidence: docs/uart.md#L1, rtl/uart_rx.sv#L1, logs/regressions/run_a.log#L1
104
+
105
+ tel[uart] sample_project> /gen-sva --spec docs/uart.md --rtl rtl/uart_rx.sv
106
+ Spec-to-SVA Result
107
+ provider: heuristic
108
+ status: validated
109
+ artifact: .tel/artifacts/generated/uart_rx_assertions.sv
110
+ validation: passed
111
+ ```
112
+
113
+ ## How It Works
114
+
115
+ <p align="center">
116
+ <img src="docs/assets/readme-workflow.svg" alt="Telchines workflow diagram" width="100%">
117
+ </p>
118
+
119
+ Telchines keeps the loop explicit:
120
+
121
+ 1. Index the project and build retrieval context.
122
+ 2. Run a verification workflow such as repair, triage, generation, or coverage planning.
123
+ 3. Store evidence, artifacts, validation output, and replay metadata under `.tel/`.
124
+ 4. Reuse prior runs and benchmark the behavior over time.
125
+
126
+ ## Architecture Snapshot
127
+
128
+ <p align="center">
129
+ <img src="docs/assets/readme-architecture.svg" alt="Telchines architecture diagram" width="100%">
130
+ </p>
131
+
132
+ ## Quick Start
133
+
134
+ Install from PyPI:
135
+
136
+ ```bash
137
+ pip install telchines
138
+ ```
139
+
140
+ Or from source:
141
+
142
+ ```bash
143
+ python -m venv .venv
144
+ . .venv/Scripts/activate
145
+ pip install -e .[dev]
146
+ ```
147
+
148
+ Validate the install:
149
+
150
+ ```bash
151
+ tel --version
152
+ telchines --help
153
+ ```
154
+
155
+ Initialize and index a project:
156
+
157
+ ```bash
158
+ tel project init .
159
+ tel index
160
+ tel providers list
161
+ ```
162
+
163
+ Run a few common workflows:
164
+
165
+ ```bash
166
+ tel retrieve "uart timeout handling"
167
+ tel triage --logs logs/regressions --format human
168
+ tel gen-sva --spec docs/uart.md --rtl rtl/uart_rx.sv
169
+ tel gen-cocotb --dut rtl/uart_rx.sv --spec docs/uart.md --intent "smoke the start-bit path"
170
+ tel coverage-plan --report cov/coverage.json --rtl rtl/uart_rx.sv --spec docs/uart.md --format human
171
+ ```
172
+
173
+ ## Interactive Shell
174
+
175
+ Running `tel` with no arguments opens the shell. Slash commands and lightweight plain-text intents are both supported.
176
+
177
+ ```text
178
+ tel> /help
179
+ tel> /providers
180
+ tel> /index
181
+ tel> /triage --logs logs/regressions
182
+ tel> /gen-sva --spec docs/uart.md --rtl rtl/uart_rx.sv
183
+ tel> show my providers
184
+ tel> triage the regression logs
185
+ tel> /exit
186
+ ```
187
+
188
+ ## Adapter And Provider Model
189
+
190
+ Built-in adapters in `v1`:
191
+
192
+ - `verilator`
193
+ - `iverilog`
194
+ - `slang`
195
+ - `verible`
196
+ - `symbiyosys`
197
+
198
+ Provider kinds in `v1`:
199
+
200
+ - `heuristic`
201
+ - `openai_compatible`
202
+ - `local_command`
203
+
204
+ Policy controls:
205
+
206
+ - `model_mode=local` blocks remote providers
207
+ - `model_mode=remote` blocks local command providers
208
+ - `model_mode=hybrid` allows both
209
+ - `no_egress=true` blocks networked providers
210
+
211
+ See [docs/adapters.md](docs/adapters.md) and [docs/providers.md](docs/providers.md) for the exact support contract.
212
+
213
+ ## Benchmarks And Release Validation
214
+
215
+ Telchines ships with an offline benchmark suite covering:
216
+
217
+ - repair
218
+ - triage
219
+ - retrieval
220
+ - spec-to-SVA
221
+ - DUT-to-cocotb
222
+ - coverage planning
223
+
224
+ Run it with:
225
+
226
+ ```bash
227
+ tel eval run
228
+ tel eval report
229
+ ```
230
+
231
+ The current default suite contains **18 cases** and is part of the `v1` credibility story, not optional polish.
232
+
233
+ ## v1 Scope
234
+
235
+ Included:
236
+
237
+ - interactive shell and one-shot CLI
238
+ - project indexing and retrieval
239
+ - run storage and replay
240
+ - repair, triage, waveform inspection, `gen-sva`, `gen-cocotb`, and `coverage-plan`
241
+ - provider policy controls for `local`, `hybrid`, `remote`, and `no_egress`
242
+ - built-in benchmark suite
243
+
244
+ Not in `v1`:
245
+
246
+ - web UI
247
+ - hosted service
248
+ - enterprise-only integrations
249
+ - richer shell affordances like command palettes and `@file` mentions
250
+ - broader regression-manager integrations beyond the current adapter surface
251
+
252
+ ## Documentation
253
+
254
+ - [Quickstart](docs/quickstart.md)
255
+ - [Worked Examples](docs/examples.md)
256
+ - [Provider Configuration](docs/providers.md)
257
+ - [Adapter Support And Contribution Contract](docs/adapters.md)
258
+ - [External Retrieval Policy](docs/external-retrieval-policy.md)
259
+ - [Evaluation And Benchmarks](docs/evaluation.md)
260
+ - [Compatibility Promise](docs/compatibility.md)
261
+ - [Release Checklist](docs/release-checklist.md)
262
+
263
+ ## Stability Promise For v1
264
+
265
+ The `1.x` line treats these interfaces as stable unless explicitly deprecated:
266
+
267
+ - top-level CLI command names
268
+ - `.tel/config.json` layout
269
+ - run-store replay artifacts
270
+ - JSON output shape for the main workflow commands
271
+
272
+ See [docs/compatibility.md](docs/compatibility.md) for the exact boundary.
273
+
274
+ <details>
275
+ <summary><strong>Full CLI Surface</strong></summary>
276
+
277
+ - `tel`
278
+ - `tel shell`
279
+ - `tel project init`
280
+ - `tel index`
281
+ - `tel retrieve`
282
+ - `tel repair`
283
+ - `tel triage`
284
+ - `tel coverage-plan`
285
+ - `tel gen-sva`
286
+ - `tel gen-cocotb`
287
+ - `tel waveforms list`
288
+ - `tel waveforms show`
289
+ - `tel waveforms signals`
290
+ - `tel waveforms inspect`
291
+ - `tel runs list`
292
+ - `tel runs show`
293
+ - `tel runs replay`
294
+ - `tel adapters list`
295
+ - `tel providers list`
296
+ - `tel eval run`
297
+ - `tel eval report`
298
+
299
+ </details>
300
+
301
+ ## Development
302
+
303
+ ```bash
304
+ pip install -e .[dev]
305
+ pytest
306
+ ```
307
+
308
+ Project contribution and disclosure guidance:
309
+
310
+ - [CONTRIBUTING.md](CONTRIBUTING.md)
311
+ - [SECURITY.md](SECURITY.md)
312
+ - [CHANGELOG.md](CHANGELOG.md)
@@ -0,0 +1,278 @@
1
+ # Telchines
2
+
3
+ <p align="center">
4
+ <img src="docs/assets/readme-hero.svg" alt="Telchines hero banner" width="100%">
5
+ </p>
6
+
7
+ <p align="center">
8
+ <a href="https://github.com/ivanbard/telchines/actions/workflows/ci.yml"><img src="https://img.shields.io/github/actions/workflow/status/ivanbard/telchines/ci.yml?branch=main&style=flat-square&label=CI" alt="CI status"></a>
9
+ <img src="https://img.shields.io/badge/version-v1.0.0-0f172a?style=flat-square" alt="Version 1.0.0">
10
+ <img src="https://img.shields.io/badge/python-3.11%2B-0b7285?style=flat-square" alt="Python 3.11+">
11
+ <img src="https://img.shields.io/badge/license-MIT-14532d?style=flat-square" alt="MIT License">
12
+ <img src="https://img.shields.io/badge/benchmarks-18%20cases-7c2d12?style=flat-square" alt="18 benchmark cases">
13
+ </p>
14
+
15
+ <p align="center">
16
+ CLI-first verification workflows for hardware teams that want grounded, replayable AI instead of generic repo chat.
17
+ </p>
18
+
19
+ <p align="center">
20
+ <a href="#quick-start"><strong>Quick Start</strong></a> |
21
+ <a href="#what-you-can-do-with-v1"><strong>v1 Workflows</strong></a> |
22
+ <a href="#how-it-works"><strong>How It Works</strong></a> |
23
+ <a href="#documentation"><strong>Documentation</strong></a>
24
+ </p>
25
+
26
+ ## Why Telchines
27
+
28
+ Generic coding assistants are weak at verification work because the real loop is not just text generation. It is specs, RTL, logs, tool feedback, coverage holes, prior runs, and the ability to replay what happened.
29
+
30
+ Telchines is built around that loop:
31
+
32
+ - retrieve evidence from RTL, docs, logs, and run history
33
+ - run verification-native workflows instead of generic chat prompts
34
+ - preserve replay artifacts and citations
35
+ - validate outputs through adapters and deterministic gates
36
+ - keep model routing local-first and policy-aware
37
+
38
+ > Telchines is not trying to replace simulators or formal tools. It is the orchestration layer that helps engineers move from signal to next action faster.
39
+
40
+ ## What You Can Do With v1
41
+
42
+ | Workflow | What it does | Primary command |
43
+ | --- | --- | --- |
44
+ | Retrieval | Builds task-aware evidence packs from repo and run history | `tel retrieve "query"` |
45
+ | Repair | Proposes and validates minimal fixes from tool output | `tel repair --tool ... --file ...` |
46
+ | Triage | Clusters repeated regressions with evidence and history | `tel triage --logs logs/regressions` |
47
+ | Spec-to-SVA | Generates first-pass assertions from spec plus RTL | `tel gen-sva --spec docs/uart.md --rtl rtl/uart_rx.sv` |
48
+ | DUT-to-Cocotb | Scaffolds a grounded cocotb starter testbench | `tel gen-cocotb --dut rtl/uart_rx.sv --spec docs/uart.md` |
49
+ | Coverage Planning | Classifies uncovered items and ranks next actions | `tel coverage-plan --report cov/coverage.json ...` |
50
+ | Waveform Debug | Parses VCDs and inspects signals from CLI or shell | `tel waveforms show ...` |
51
+ | Benchmarks | Runs the built-in offline evaluation suite | `tel eval run` |
52
+
53
+ ## What It Looks Like
54
+
55
+ ```text
56
+ $ tel
57
+
58
+ tel[uart] sample_project> /index
59
+ Index Complete
60
+ indexed 18 chunks
61
+
62
+ tel[uart] sample_project> /triage --logs logs/regressions
63
+ Triage Summary
64
+ run run_... produced 2 cluster(s)
65
+
66
+ 1. UART receiver start-bit regressions grouped together
67
+ likely cause: missing stimulus or broken start-bit detection path
68
+ suggested action: inspect uart_rx start-bit handling and nearby waveform evidence
69
+ evidence: docs/uart.md#L1, rtl/uart_rx.sv#L1, logs/regressions/run_a.log#L1
70
+
71
+ tel[uart] sample_project> /gen-sva --spec docs/uart.md --rtl rtl/uart_rx.sv
72
+ Spec-to-SVA Result
73
+ provider: heuristic
74
+ status: validated
75
+ artifact: .tel/artifacts/generated/uart_rx_assertions.sv
76
+ validation: passed
77
+ ```
78
+
79
+ ## How It Works
80
+
81
+ <p align="center">
82
+ <img src="docs/assets/readme-workflow.svg" alt="Telchines workflow diagram" width="100%">
83
+ </p>
84
+
85
+ Telchines keeps the loop explicit:
86
+
87
+ 1. Index the project and build retrieval context.
88
+ 2. Run a verification workflow such as repair, triage, generation, or coverage planning.
89
+ 3. Store evidence, artifacts, validation output, and replay metadata under `.tel/`.
90
+ 4. Reuse prior runs and benchmark the behavior over time.
91
+
92
+ ## Architecture Snapshot
93
+
94
+ <p align="center">
95
+ <img src="docs/assets/readme-architecture.svg" alt="Telchines architecture diagram" width="100%">
96
+ </p>
97
+
98
+ ## Quick Start
99
+
100
+ Install from PyPI:
101
+
102
+ ```bash
103
+ pip install telchines
104
+ ```
105
+
106
+ Or from source:
107
+
108
+ ```bash
109
+ python -m venv .venv
110
+ . .venv/Scripts/activate
111
+ pip install -e .[dev]
112
+ ```
113
+
114
+ Validate the install:
115
+
116
+ ```bash
117
+ tel --version
118
+ telchines --help
119
+ ```
120
+
121
+ Initialize and index a project:
122
+
123
+ ```bash
124
+ tel project init .
125
+ tel index
126
+ tel providers list
127
+ ```
128
+
129
+ Run a few common workflows:
130
+
131
+ ```bash
132
+ tel retrieve "uart timeout handling"
133
+ tel triage --logs logs/regressions --format human
134
+ tel gen-sva --spec docs/uart.md --rtl rtl/uart_rx.sv
135
+ tel gen-cocotb --dut rtl/uart_rx.sv --spec docs/uart.md --intent "smoke the start-bit path"
136
+ tel coverage-plan --report cov/coverage.json --rtl rtl/uart_rx.sv --spec docs/uart.md --format human
137
+ ```
138
+
139
+ ## Interactive Shell
140
+
141
+ Running `tel` with no arguments opens the shell. Slash commands and lightweight plain-text intents are both supported.
142
+
143
+ ```text
144
+ tel> /help
145
+ tel> /providers
146
+ tel> /index
147
+ tel> /triage --logs logs/regressions
148
+ tel> /gen-sva --spec docs/uart.md --rtl rtl/uart_rx.sv
149
+ tel> show my providers
150
+ tel> triage the regression logs
151
+ tel> /exit
152
+ ```
153
+
154
+ ## Adapter And Provider Model
155
+
156
+ Built-in adapters in `v1`:
157
+
158
+ - `verilator`
159
+ - `iverilog`
160
+ - `slang`
161
+ - `verible`
162
+ - `symbiyosys`
163
+
164
+ Provider kinds in `v1`:
165
+
166
+ - `heuristic`
167
+ - `openai_compatible`
168
+ - `local_command`
169
+
170
+ Policy controls:
171
+
172
+ - `model_mode=local` blocks remote providers
173
+ - `model_mode=remote` blocks local command providers
174
+ - `model_mode=hybrid` allows both
175
+ - `no_egress=true` blocks networked providers
176
+
177
+ See [docs/adapters.md](docs/adapters.md) and [docs/providers.md](docs/providers.md) for the exact support contract.
178
+
179
+ ## Benchmarks And Release Validation
180
+
181
+ Telchines ships with an offline benchmark suite covering:
182
+
183
+ - repair
184
+ - triage
185
+ - retrieval
186
+ - spec-to-SVA
187
+ - DUT-to-cocotb
188
+ - coverage planning
189
+
190
+ Run it with:
191
+
192
+ ```bash
193
+ tel eval run
194
+ tel eval report
195
+ ```
196
+
197
+ The current default suite contains **18 cases** and is part of the `v1` credibility story, not optional polish.
198
+
199
+ ## v1 Scope
200
+
201
+ Included:
202
+
203
+ - interactive shell and one-shot CLI
204
+ - project indexing and retrieval
205
+ - run storage and replay
206
+ - repair, triage, waveform inspection, `gen-sva`, `gen-cocotb`, and `coverage-plan`
207
+ - provider policy controls for `local`, `hybrid`, `remote`, and `no_egress`
208
+ - built-in benchmark suite
209
+
210
+ Not in `v1`:
211
+
212
+ - web UI
213
+ - hosted service
214
+ - enterprise-only integrations
215
+ - richer shell affordances like command palettes and `@file` mentions
216
+ - broader regression-manager integrations beyond the current adapter surface
217
+
218
+ ## Documentation
219
+
220
+ - [Quickstart](docs/quickstart.md)
221
+ - [Worked Examples](docs/examples.md)
222
+ - [Provider Configuration](docs/providers.md)
223
+ - [Adapter Support And Contribution Contract](docs/adapters.md)
224
+ - [External Retrieval Policy](docs/external-retrieval-policy.md)
225
+ - [Evaluation And Benchmarks](docs/evaluation.md)
226
+ - [Compatibility Promise](docs/compatibility.md)
227
+ - [Release Checklist](docs/release-checklist.md)
228
+
229
+ ## Stability Promise For v1
230
+
231
+ The `1.x` line treats these interfaces as stable unless explicitly deprecated:
232
+
233
+ - top-level CLI command names
234
+ - `.tel/config.json` layout
235
+ - run-store replay artifacts
236
+ - JSON output shape for the main workflow commands
237
+
238
+ See [docs/compatibility.md](docs/compatibility.md) for the exact boundary.
239
+
240
+ <details>
241
+ <summary><strong>Full CLI Surface</strong></summary>
242
+
243
+ - `tel`
244
+ - `tel shell`
245
+ - `tel project init`
246
+ - `tel index`
247
+ - `tel retrieve`
248
+ - `tel repair`
249
+ - `tel triage`
250
+ - `tel coverage-plan`
251
+ - `tel gen-sva`
252
+ - `tel gen-cocotb`
253
+ - `tel waveforms list`
254
+ - `tel waveforms show`
255
+ - `tel waveforms signals`
256
+ - `tel waveforms inspect`
257
+ - `tel runs list`
258
+ - `tel runs show`
259
+ - `tel runs replay`
260
+ - `tel adapters list`
261
+ - `tel providers list`
262
+ - `tel eval run`
263
+ - `tel eval report`
264
+
265
+ </details>
266
+
267
+ ## Development
268
+
269
+ ```bash
270
+ pip install -e .[dev]
271
+ pytest
272
+ ```
273
+
274
+ Project contribution and disclosure guidance:
275
+
276
+ - [CONTRIBUTING.md](CONTRIBUTING.md)
277
+ - [SECURITY.md](SECURITY.md)
278
+ - [CHANGELOG.md](CHANGELOG.md)