Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -475,6 +475,7 @@ The [independent model research](community/projects/tools/README.md#independent-
- [Testimonial miner](https://github.com/AppitStudio/testimonial-miner) - Python CLI that finds quotable user praise in Gmail mailboxes with one Jev request per email (message kind, app, praise quality, and a Noul per sentence) and stores verbatim quotes for review; requires a TypeSafe key and Google app passwords, and sends cleaned email text to TypeSafe. [Project guide](community/projects/tools/testimonial-miner.md).
- [toolgate](https://github.com/RiskAverseTech/toolgate) - Open Claude Code PreToolUse and MCP tool-call firewall with static rules, TypeSafe Jev judgments, YAML policy, and a local audit log. [Project guide](community/projects/tools/toolgate.md).
- [Tripwire](https://github.com/anuran-de/tripwire) - Streaming proxy that trips on partial LLM output and can abort upstream mid-flight, with TypeSafe Jev or a heuristic detector. [Project guide](community/projects/tools/tripwire.md).
- [tdd-gate](https://github.com/bensheridan/tdd-gate) - Keeps test and code agents on one plan: TypeSafe Jev judges coverage, blame, gaming, weakening, and drift. [Project guide](community/projects/tools/tdd-gate.md).
- [triagedy](https://github.com/m0rphtail/triagedy) - UNIX-filter security-alert triage: JSONL in, typed TypeSafe Jev decisions out; policy routing stays in Rust code. [Project guide](community/projects/tools/triagedy.md).
- [typesafe-agent-gates](https://github.com/ThiagaoBR/typesafe_agent_gates) - LangChain/Deep Agents middleware using TypeSafe Jev for shell gates, issue triage, MR detection, and test-spec review. [Project guide](community/projects/tools/typesafe-agent-gates.md).
- [TypeSafe Mario](https://github.com/fhshaik/typesafe-mario) - Selects emulator controller inputs with Jev from structured Mario telemetry; includes a synthetic state demo, with upstream licensing unspecified. [Project guide](community/projects/tools/typesafe-mario.md).
Expand Down
1 change: 1 addition & 0 deletions community/projects/tools/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -252,6 +252,7 @@ See the [computer-use guide](../../../docs/computer-use.md) for a comparison, fo
| [todo-jev](todo-jev.md) | Classify requests into a 3-tier path (local rule / Jev skill / foundation model) with skill profiles and preflight. | Python · Typer CLI (`todo-jev` 0.1.0) |
| [toolgate](toolgate.md) | Gate Claude Code and MCP tool calls with static rules plus TypeSafe Jev risk judgments and a local audit log. | TypeScript · CLI, Claude Code hook and MCP proxy |
| [Tripwire](tripwire.md) | Abort bad streaming completions mid-flight using TypeSafe Jev (or an offline heuristic) inside an OpenAI-compatible proxy. | Python · package (`tripwire` 0.1.0) |
| [tdd-gate](tdd-gate.md) | Dual-agent TDD gates: TypeSafe Jev coverage/blame/gaming/weakening/drift judgments; optional isolated orchestrator. | TypeScript · CLI (`tdd-gate` 0.1.0, MIT) |
| [triagedy](triagedy.md) | Triage JSONL security alerts with TypeSafe Jev typed questions; route outcomes in ordinary Rust code. | Rust · CLI (`triagedy` 0.1.0) |
| [typesafe-agent-gates](typesafe-agent-gates.md) | Gate unattended LangChain/Deep Agents shell commands and triage with TypeSafe Jev middleware. | Python · LangChain middleware |
| [VexJoy Agent](vexjoy-agent.md) | Route plain-English requests to specialist agents/skills; optional `/d` uses TypeSafe Jev classification and intent gates. | Python · agent toolkit (Claude Code / Codex hooks) |
Expand Down
49 changes: 49 additions & 0 deletions community/projects/tools/tdd-gate.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
# tdd-gate

[All projects](../README.md) · [Developer tools](README.md#developer-tools)

CLI gates for dual-agent TDD: TypeSafe Jev judges requirement↔test coverage, failing-test blame routing, gaming, weakening, and drift—without generating code. Optional `tdd-gate run` orchestrates isolated worktrees.

| At a glance | Details |
| --- | --- |
| Source | [Source](https://github.com/bensheridan/tdd-gate) |
| Maintainer | [bensheridan](https://github.com/bensheridan). Independently curated; this entry is not an upstream submission or endorsement. |
| Format | TypeScript CLI **`tdd-gate` 0.1.0** (private package layout; `npm run build` → `dist/cli.js`). Depends on `@typesafe-ai/sdk`. |
| Requirements | Node.js **≥ 20** (upstream `.nvmrc` notes 24); `TYPESAFE_API_KEY` for live gates. `--dry-run` coverage path needs no key. |
| License | [MIT](https://github.com/bensheridan/tdd-gate/blob/30e27f6400259389ee774f7dfc6c9e27a2996db9/LICENSE). |
| Disclosure | AI-assisted catalog review; no affiliation. Listing is not an endorsement. Source inspected (README, LICENSE, `package.json`). Offline `npm test` and live dual-agent runs were **not** executed on the review host. Upstream live-run anecdotes are author-reported. |

## When to use

Use it when a test-writing agent and a code-writing agent must stay on one plan and you need **typed** coverage/blame/gaming/weakening/drift judgments before accepting a turn. Prefer [agent-evals](agent-evals.md) for broader CI judging harnesses.

## How it works

Each subcommand builds TypeSafe System One questions over requirements, tests, diffs, and/or JUnit results; code applies thresholds and prints JSON routes. `tdd-gate run` drives two agent CLIs in throwaway worktrees (code agent’s tree has tests deleted), runs gates before commits, and stops for humans on ambiguous blame. Gates never contact agents themselves.

## Get started

```sh
git clone https://github.com/bensheridan/tdd-gate.git
cd tdd-gate
git checkout 30e27f6400259389ee774f7dfc6c9e27a2996db9
npm install && npm run build
node dist/cli.js coverage --requirements examples/slugify/requirements.yml --tests examples/slugify/tests --dry-run
# Live (charges): export TYPESAFE_API_KEY=... && drop --dry-run
```

## Examples and demos

- `examples/slugify/` fixtures for coverage/blame/gaming/weakening/drift.
- Upstream README live dual-Claude-Code run notes (not reproduced here).
- `eval/cases/` harvested scenarios.

## Limits and data handling

Live gates send requirement/test/diff text to TypeSafe. Orchestrator isolation is by worktree deletion of tests—not a full sandbox. Assertion messages shown to the code agent can leak inputs/expected outputs; gaming gate is meant to catch that. No live Jev in this listing.

## Review and maintenance

Reviewed on **2026-09-23** at [commit 30e27f6](https://github.com/bensheridan/tdd-gate/tree/30e27f6400259389ee774f7dfc6c9e27a2996db9) (**0.1.0**, MIT). AI-assisted source review of README, LICENSE, package metadata. No live TypeSafe spend.

Related: [agent-evals](agent-evals.md), [semantic-assert](semantic-assert.md), [Canny](canny.md).
Loading