Skip to content
sQVePublic

About

Because π wasn't enough.

Resources

Stars

3 stars

Watchers

0 watching

Forks

Latest commit

 

History

421 Commits

Folders and files

Repository files navigation

Tau

Tau adds tools, work steps, and checks to Pi.

Tau guides test-driven development, or TDD, with test results and nonblocking hints:

  • write a failing test first
  • prove the failure
  • implement the minimum change
  • prove the pass
  • optionally refactor safely

To set which files the hints cover, add a tdd block to .pi/tau.json in the repository, or to ~/.pi/agent/tau.json for every repository:

{ "tdd": { "productionGlobs": ["{src,scripts}/**/*.ts"] } }

The block accepts productionGlobs, testGlobs, testSupportGlobs, excludedGlobs, and verificationArgv. Each key you set replaces its default. The repository file overrides the user file, and Tau reads it only in a trusted project. run_tests output shows the config in use.

Tau warns once per session about a key it does not know in tdd, tracker, browser, and profiles, and ignores it. Wrong types and missing required fields still fail with the file and field. A bad tracker.repositories entry fails only when it names the repository of the current checkout.

To run the full check of a repository with the full_check tool, add its command to ~/.pi/agent/tau.json. Tau reads this key only from the user file:

{ "fullCheck": { "repositories": { "sQVe/tau": { "argv": ["pnpm", "check"] } } } }

Only one full check runs at a time on the machine. A passing log is saved under .tau/checks and reused while the head, base, command, and uncommitted changes stay the same.

To run mutation testing with the mutation_check tool, install @sqve/mutation and add its command to .pi/tau.json in the repository. Tau reads this key only from the repository file, and only when the project is trusted:

{ "mutation": { "argv": ["pnpm", "exec", "mutation"] } }

The tool shares the lock of the full check.

To limit the models Tau picks for workers, add allowedModels to either file:

{ "allowedModels": ["openai-codex/gpt-5.6-luna", "claude-bridge/claude-opus-5-5"] }

The repository list can only remove models from your list. Tau refuses any other model instead of falling back.

Tau names no model of its own. Set the models for workers in ~/.pi/agent/tau.json. A worker launch needs a model passed on the launch, profiles.<name>.model for its profile, or profiles.default.model, which covers every profile without its own entry:

{
  "profiles": {
    "default": { "model": "claude-bridge/claude-opus-5-5" },
    "scout": { "model": "openai-codex/gpt-6.1-sol" }
  }
}

A profile can set route: a question, a classifier model, and two labels. Tau asks the classifier which label fits the brief and saves the model it would pick. classifier is a provider/model-id and must pass allowedModels. A route without classifier is off, and the worker runs on model:

{
  "profiles": {
    "scout": {
      "model": "claude-bridge/claude-opus-5-5",
      "route": {
        "classifier": "my-provider/my-classifier",
        "question": "How wide is this scout brief?",
        "labels": {
          "narrow": {
            "criterion": "A lookup about known code.",
            "model": "claude-bridge/claude-haiku-5-5"
          },
          "wide": {
            "criterion": "An investigation across many files.",
            "model": "claude-bridge/claude-opus-5-5"
          }
        }
      }
    }
  }
}

The bundled scout, reviewer, and worker profiles gather evidence with codemode scripts and cite only what a script returned. The qa and browser profiles do not get codemode.

The tracker skill writes Linear tickets. It sends agent tickets to the team that tracker.agentTeam names in ~/.pi/agent/tau.json. Other tickets go to the team and optional project of the entry keyed by the origin remote's owner/name:

{
  "tracker": {
    "agentTeam": "AI",
    "repositories": { "sQVe/tau": { "team": "ME", "project": "Tau" } }
  }
}

Web answers use pi-web-access's own fetch.answerProvider and fetch.answerModel in web-search.json.

Pi runs the agent and its tools. Tau stages and commits with installed Git hooks without a prompt. Test results never control edit permission. Tau is not a general agent framework.

Important

Tau is under active development. Expect bugs and changes to how it works.

About

Because π wasn't enough.

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages