TAAR — Thirsty's Active Agent Runner: a local-first governed agent taskforce for Project-AI, with a GitHub Workflow Guardian.
Project description
TAAR — Thirsty's Active Agent Runner
A local-first, governed agent taskforce. Part of the Project-AI constitutional architecture. TAAR runs micro-agents against a repository under strict registry law: one task per agent, minimal authority, maximum evidence, fail closed, everything classified. Includes a GitHub Workflow Guardian that verifies GitHub Actions workflows before they run.
What TAAR does
- Runs reader agents that inspect your repo and facility (git state, secrets, stale paths, lint/type/test surface, GitHub workflows) and produce hash-sealed evidence bundles.
- Runs writer agents that turn validated evidence into Markdown reports and digests — every report cites its source evidence hash.
- Keeps an append-only audit spine (JSONL, hash per record) of every admission, denial, success, failure, and classification escalation.
- Classifies everything:
OPEN < CONTROLLED < RESTRICTED < SECRET < PHANTOM < BLACK. Secrets are redacted at capture. Artifacts with no producing run record are phantoms and turn the lane BLACK. - Detects unsafe GitHub Actions patterns: broad permissions, secret
echoing,
pull_request_targetrisk, unpinned actions, shell injection, self-hosted/privileged runners, ungated deploys.
What TAAR does NOT do
The first swarm is report-only. It cannot and will not: merge, push,
publish, deploy, delete, apply patches, create branches, or mutate source.
These capabilities are rejected at registry validation — the constraint is
structural. taar workflows harden prints draft suggestions and writes no
patch files.
Install
pip install taar-agent-taskforce
Not yet on PyPI — until the first release ships, install from a checkout:
pip install .
Python 3.12+. Dependencies: pyyaml, typer, rich.
Quick start
cd your-repo
taar init # seed registry/ + taar.toml (explicit, refuses overwrite)
taar status # facility mode, 44 agents, validation state
taar run heartbeat-reader # evidence bundle
taar run heartbeat-report-writer # report citing the evidence hash
taar evidence # list bundles
cat .project-ai/automation/reports/facility/heartbeat-latest.md
Workflow Guardian
taar workflows explain # what your workflows can do
taar workflows scan # findings (exit 1 on critical)
taar workflows classify # one-word risk verdict
taar workflows harden # draft suggestions, nothing applied
taar workflows evidence # governed run with full evidence bundle
Or in CI via the composite action — see action.yml and
docs/TAAR_FOR_GITHUB_ACTIONS.md.
First swarm demo
for a in heartbeat-reader heartbeat-report-writer git-status-reader \
git-status-writer phantom-reader phantom-report-writer \
governance-reader governance-digest-writer workflow-reader \
workflow-report-writer; do taar run "$a"; done
taar status && taar quarantine
How governance works
Every run passes one gate (taar/executor.py): registry valid → agent and
task known and enabled → facility mode permits → capabilities granted →
every command declared, allowed, and granted (exact match) → output paths
in bounds → writer evidence present, hash-valid, and classification
admissible → no lock conflict. Any failure denies, and the denial is
audited. BLACK/PHANTOM evidence feeds no writer except the explicitly
granted handler. SECRET evidence feeds only the declared secret writer,
redacted.
Layout
taar/ runtime and CLI registry/ the governed universe
checks/ reader built-ins writers/ writer built-ins
tests/ 87 contract tests docs/ the canon
examples/ real evidence samples + workflow examples
scripts/ registry generator + Windows scheduler scripts
Docs
Start with docs/TAAR_REBUILD_DIRECTIVE.md, then
docs/LOCAL_AGENT_RULEBOOK.md, docs/RUNNER_CONTRACT.md,
docs/CLASSIFICATION_MODEL.md, and
docs/GITHUB_WORKFLOW_GUARDIAN.md.
License
MIT. Author: Jeremy "Thirsty" Karrick — Project-AI / Thirsty's Projects LLC.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file taar_agent_taskforce-0.1.0.tar.gz.
File metadata
- Download URL: taar_agent_taskforce-0.1.0.tar.gz
- Upload date:
- Size: 56.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1e2b1d9f1f36f95e296be5d1a13fae170561563c5528b9c90722568640ca9e51
|
|
| MD5 |
fb550593d819ff3b2d762d1df194218d
|
|
| BLAKE2b-256 |
0f7e9c104a59eefd7d59bee7d5bb289c77db128ec209dfb7aedea217d57c4792
|
Provenance
The following attestation bundles were made for taar_agent_taskforce-0.1.0.tar.gz:
Publisher:
publish.yml on IAmSoThirsty/TAAR
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
taar_agent_taskforce-0.1.0.tar.gz -
Subject digest:
1e2b1d9f1f36f95e296be5d1a13fae170561563c5528b9c90722568640ca9e51 - Sigstore transparency entry: 2124867244
- Sigstore integration time:
-
Permalink:
IAmSoThirsty/TAAR@c30c36de4a0a01baca6f4e208ee3b2b5b259c781 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/IAmSoThirsty
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@c30c36de4a0a01baca6f4e208ee3b2b5b259c781 -
Trigger Event:
release
-
Statement type:
File details
Details for the file taar_agent_taskforce-0.1.0-py3-none-any.whl.
File metadata
- Download URL: taar_agent_taskforce-0.1.0-py3-none-any.whl
- Upload date:
- Size: 62.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a7eaba62ba11addcf50035cd1b19707c2827656e1f40e21105895ac67537f2ff
|
|
| MD5 |
405db4fbfe7e518bae85daba1a803019
|
|
| BLAKE2b-256 |
c59d8c4a83eaf29f0ac0019ed4adc99d18f42d2d06a17f7099b9d9479c62e8ed
|
Provenance
The following attestation bundles were made for taar_agent_taskforce-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on IAmSoThirsty/TAAR
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
taar_agent_taskforce-0.1.0-py3-none-any.whl -
Subject digest:
a7eaba62ba11addcf50035cd1b19707c2827656e1f40e21105895ac67537f2ff - Sigstore transparency entry: 2124867272
- Sigstore integration time:
-
Permalink:
IAmSoThirsty/TAAR@c30c36de4a0a01baca6f4e208ee3b2b5b259c781 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/IAmSoThirsty
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@c30c36de4a0a01baca6f4e208ee3b2b5b259c781 -
Trigger Event:
release
-
Statement type: