Skip to content
Back to skills

Best Practices Tau Dag

ASecurity

Best practices for authoring, reviewing, and repairing Tau DAG contracts. Use when creating tau.dag_contract.v1 YAML/JSON, choosing project-agent subagent roles, declaring immutable goals, adding skill gates such as best-practices-prompt/react/python, specifying provider/model policy, or diagnosing project-agent DAG failures and tau.dag_error.v1 course-corrections.

  • 6 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 11, 2026
toolspythongoreactnodefrontendbackend

Works with

  • terminal

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned September 11, 2026

npx -y skills add grahama1970/agent-skills --skill best-practices-tau-dag --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Best Practices Tau Dag?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Best Practices Tau Dag
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/grahama1970-best-practices-tau-dag/badge)](https://www.skillsdirectory.com/skills/grahama1970-best-practices-tau-dag)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: best-practices-tau-dag
description: >
  Best practices for authoring, reviewing, and repairing Tau DAG contracts.
  Use when creating tau.dag_contract.v1 YAML/JSON, choosing project-agent
  subagent roles, declaring immutable goals, adding skill gates such as
  best-practices-prompt/react/python, specifying provider/model policy, or
  diagnosing project-agent DAG failures and tau.dag_error.v1 course-corrections.
composes:
  - agentic-evals
disciplines:
  - engineering-standards
  - agentic-orchestration
---

# Best Practices: Tau DAG

Use this skill to make project-agent DAGs strict enough that Tau can dispatch,
reject, or course-correct them without guessing from prose.

Related skills to load when the DAG contains those work types:
`tau`, `best-practices-prompt`, `best-practices-python`,
`best-practices-react`, and `best-practices-subagent`.

## Core Rule

Project agents should give Tau a `tau.dag_contract.v1` by default for multi-step
work. The DAG should declare workflow intent, capability requirements, skill
gates, immutable goal, targets, evidence, retry limits, and terminal boundaries.
Tau should choose or reject specific subagents from those declarations.

Do not hide orchestration policy in prose, issue comments, or prompts.

## Authoring Model

Use this split of responsibility:

1. Project agent declares the DAG contract.
2. Tau validates required fields, graph shape, skill gates, model policy, and
   evidence requirements.
3. Tau selects an eligible subagent or blocks with `tau.dag_error.v1`.
4. Creator/worker subagents produce artifacts and receipts.
5. Reviewer/validator nodes compare outputs against the immutable goal and
   declared skill gates.
6. Only a human may change the immutable goal.

Prefer capability-based nodes:

```yaml
nodes:
  - id: frontend-coder
    role: coder
    work_type: react
    required_skills:
      - best-practices-react
```

Use a specific subagent only when the project agent has a concrete reason:

```yaml
nodes:
  - id: script-writer
    agent: script-writer
    executor: local
```

## Required DAG Fields

Every non-trivial project-agent DAG must include:

- `schema: tau.dag_contract.v1`
- `dag_id`
- `goal.goal_id`, `goal.goal_version`, `goal.goal_hash`
- `target.repo` and `target.target`
- `entry_node`
- `terminal_nodes`
- `limits.max_total_attempts`
- `nodes[]`
- `edges[]`
- `required_evidence`
- `fail_closed_on`

Missing fields should be treated as authoring errors before dispatch.

## Goal Specificity

Reject nebulous goals. A goal is underspecified if the DAG cannot determine:

- what artifact or behavior should change;
- which target repo, issue, file, or proof lane is in scope;
- which evidence proves the goal;
- what must fail closed.

Bad:

```yaml
goal:
  goal_id: make-it-better
  goal_version: 1
  goal_hash: sha256:active-goal
required_evidence: []
```

Good:

```yaml
goal:
  goal_id: issue-47-script-contract-loop
  goal_version: 1
  goal_hash: sha256:active-goal
target:
  repo: grahama1970/tau
  target: issue#47
required_evidence:
  - script_contract_json
  - reviewer_verdict
  - focused_tests
fail_closed_on:
  - goal_hash_mismatch
  - target_changed
  - missing_required_evidence
```

## Skill Gates

If a node requires a best-practices skill, declare it explicitly and declare how
the gate will be proven.

Prompt node:

```yaml
nodes:
  - id: prompt-author
    role: prompt-writer
    work_type: prompt
    required_skills:
      - best-practices-prompt
    skill_gates:
      best-practices-prompt:
        required_checks:
          - rationale-header
          - exact-output-schema
          - complete-input-output-example
          - rejection-criteria
          - deterministic-check
```

Python node:

```yaml
nodes:
  - id: backend-coder
    role: coder
    work_type: python
    required_skills:
      - best-practices-python
    skill_gates:
      best-practices-python:
        required_checks:
          - uv-run-pytest
          - ruff
          - py_compile
          - non-mocked-sanity
```

React node:

```yaml
nodes:
  - id: frontend-coder
    role: coder
    work_type: react
    required_skills:
      - best-practices-react
    skill_gates:
      best-practices-react:
        required_checks:
          - data-qid
          - data-qs-action
          - title
          - useRegisterAction
          - live-dom-manifest
          - cdp-screenshot
```

If a required skill lacks a corresponding `skill_gates` entry, Tau should fail
before execution with `failure_code: missing_skill_gate`.

## Provider And Model Policy

Any provider/model node must declare model policy. Do not let subagents infer
model selection from prose.

```yaml
nodes:
  - id: provider-review
    role: reviewer
    work_type: prompt-review
    executor: local
    provider:
      adapter: generic-provider-dag-node
    model_policy:
      provider: scillm
      model: qwen-or-approved-selector
      timeout_seconds: 120
      max_retries: 2
      output_schema: tau.agent_handoff.v1
      on_non_json: retry_then_block
```

Missing provider/model fields should fail before dispatch with
`failure_code: model_unspecified` or `failure_code: provider_policy_missing`.

## Course-Correction Errors

Prefer fail-closed errors that a project agent can act on. Use
`tau.dag_error.v1` for blocked DAG receipts.

Good error payloads include:

- `failure_code`
- `failed_node`
- `failed_agent`
- `attempts` and `max_attempts`
- primary alert evidence
- `recommended_action.type`
- `recommended_action.next_agent`
- `recommended_action.reason`

Common mappings:

| Failure | Recommended action |
| --- | --- |
| `underspecified_goal` | Route to `goal-guardian` to rewrite the DAG goal/evidence. |
| `missing_skill_gate` | Route to planner or reviewer to add concrete skill gates. |
| `prompt_contract_invalid` | Route to `prompt-reviewer`. |
| `model_unspecified` | Route to `goal-guardian` or planner for model policy. |
| `invalid_command_json` | Repair command/subagent response, then retry or reroute. |
| `reviewer_goal_hash_mismatch` | Route to `goal-guardian`; do not continue normally. |

## Review Checklist

Before running a Tau DAG, check:

- immutable goal hash is present and reused;
- target is concrete and unchanged;
- every node has a role or specific agent;
- every executable node has an executor and command/provider policy;
- every skill requirement has a skill gate;
- prompt, Python, React, and provider nodes cite the relevant best-practices
  skill when applicable;
- retry limits are numeric and bounded;
- terminal nodes are explicit;
- required evidence is named and testable;
- failure conditions are in `fail_closed_on`;
- expected reviewer nodes compare creator output against the immutable goal.

## Non-Goals

This skill does not replace Tau runtime validation. It tells agents how to
author and review DAG contracts so Tau can validate them deterministically.

Do not use this skill to justify unbounded autonomy, hidden chain-of-thought
inspection, or provider/model execution without receipts.

Files in this skill

  • SKILL.md6.9 KB
  • agents/openai.yaml315 B

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.