Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsBlogPro
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Authors
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges
  • Chrome Extension
  • Skill Manager

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

ProTermsPrivacyRefunds
Back to skills

Tao Artifacts

ASecurity

The contract home for TAO's SDK-free execution pipeline — authoritative JSON Schemas for the four typed artifacts (spec-bundle, job-record, results_dir layout, best_rec) plus the fixed job-status vocabulary and the nested-not-dotted spec rule. Use when authoring or validating a spec-bundle before submit, writing or reading a .tao/jobs job-record, resolving where results land, or consuming AutoML's best_rec.json. Trigger phrases include "validate the spec bundle", "job record schema", "status ...

3,503 stars
0 votes
0 copies
1 views
Added 9/24/2026
ai-agentspythonbashexpressdockerkubernetesdebugging

Works with

terminal

Security Analysis

A100/100

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

Scanned 9/24/2026

$npx -y skills add NVIDIA/skills --skill tao-artifacts --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Tao Artifacts?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Tao Artifacts
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/nvidia-tao-artifacts/badge)](https://www.skillsdirectory.com/skills/nvidia-tao-artifacts)

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

Download with Pro
Files
SKILL.md
---
name: tao-artifacts
description: The contract home for TAO's SDK-free execution pipeline — authoritative JSON Schemas for the four typed artifacts (spec-bundle, job-record, results_dir layout, best_rec) plus the fixed job-status vocabulary and the nested-not-dotted spec rule. Use when authoring or validating a spec-bundle before submit, writing or reading a .tao/jobs job-record, resolving where results land, or consuming AutoML's best_rec.json. Trigger phrases include "validate the spec bundle", "job record schema", "status vocabulary", "results_dir layout", "best_rec schema".
license: Apache-2.0
compatibility: Python 3.10+ with jsonschema for validation. No nvidia-tao-sdk.
metadata:
  author: NVIDIA Corporation
  version: "0.1.0"
allowed-tools: Read Bash
tags:
- core
---

# tao-artifacts

Four typed artifacts flow through every TAO job. Their schemas live **here and
nowhere else** — producers (model/data skills) and consumers (platform skills)
both validate against this skill's `references/`.

| Artifact | Schema | Produced by → consumed by |
|---|---|---|
| **spec-bundle** | `references/spec_bundle.schema.json` | model/data skill → platform skill (at the submit seam) |
| **job-record** | `references/job_record.schema.json` | `scripts/tao_job_record.py` (the ONLY writer) → any re-attaching agent/poller |
| **results_dir layout** | `references/results_dir.contract.md` | platform skill at submit → whoever collects outputs |
| **best_rec** | `references/best_rec.schema.json` | tao-run-automl adapter → DEFT warm-start |

## Quick Start — validate an artifact

```bash
python - <<'PY'
import json, yaml, jsonschema, pathlib
ref = pathlib.Path("${TAO_SKILL_BANK_PATH:?}/skills/core/tao-artifacts/references")
schema = json.loads((ref / "spec_bundle.schema.json").read_text())
bundle = yaml.safe_load(open("/path/to/bundle.yaml"))   # or a dict built in-context
jsonschema.validate(bundle, schema)                      # raises on violation
print("bundle OK")
PY
```

Validate the bundle **before** the verify-before-launch gate; validate a
job-record only when debugging (the writer script already enforces the schema).

## The two rules the schemas enforce structurally

1. **Nested, not dotted.** A `spec` is a nested dict mirroring the container's
   config shape — `{"train": {"num_epochs": 12}}`. Any key containing `.` at
   any depth is rejected (`{"train.num_epochs": 12}` is the #1 authoring
   mistake). Note the distinction: `declared_inputs[].spec_key` and
   `gpu_spec_key` are dotted/indexed **pointers** into the spec
   (`dataset.train_data_sources[0].image_dir`) — dots are correct there.
2. **Mode discrimination.** `mode: config` requires `spec` + `config_format`
   and a `command` containing `{config_path}`, and forbids `args`.
   `mode: args` requires `args` and forbids `spec`. There is no other mode.

## Optional action lifecycle

Use `execution` when an action needs more than its primary command. This is the
shared model-to-platform seam; do not add a model-specific Docker, Kubernetes,
or SLURM renderer merely to carry runtime environment, attestations,
post-processing, or helper dependencies.

- The producing model/data skill owns `environment`, ordered `pre_commands`,
  ordered `post_commands`, distributed-launch intent, and completion evidence.
- The platform owns container mounts, scheduler/container syntax, task/rank
  binding, timeouts, log paths, and preservation of the real child exit code.
- `environment` is non-secret. Credential values continue to use the selected
  platform's secret/sidecar contract and never enter a spec-bundle.
- Commands, environment values, and string values in `spec` may use
  `{config_path}`, `{job_id}`, and `{results_dir}`. The platform binds them
  only after the job record has been opened; the job record's `results_dir` is
  authoritative over any pre-review display path. Persist hashes of both the
  producer bundle and the bound runtime config.
- `supporting_files` names checked-in orchestration helpers relative to the
  producing skill root. The platform stages the closed set, verifies every
  declared SHA256, and rejects traversal, undeclared siblings, or overwrite of
  a different bundle. Supporting files orchestrate an action; they must never
  shadow or patch code inside the selected image.
- A `torchrun` declaration expresses process topology, not SLURM/Kubernetes
  syntax. Each platform maps it to its native distributed launcher.

## Fixed status vocabulary

Every job state anywhere in the pipeline is exactly one of:

`PENDING · RUNNING · COMPLETE · ERROR · CANCELED · UNKNOWN`

Platform-native sub-states (`ImagePullBackOff`, `PENDING`-because-resources,
`Insufficient-GPU`, slurm `COMPLETING`…) are never new states — they ride in
the transition's `message` field. Terminal = `COMPLETE | ERROR | CANCELED`.
This is what lets the in-turn poll loop and the detached poller share one code
path across docker/slurm/kubernetes/brev.

## Ordering invariants (enforced at the seam, stated here)

- The verify-before-launch gate runs on the **spec-bundle**, before any job id
  exists.
- `tao_job_record.py open` writes `PENDING` + the resolved `results_dir`
  **first** and returns the id — the only handle a launch can use. A submit
  that skipped the gate has no id, so it cannot launch.
- `transitions` is append-only; `.tao/` lives outside every synced results
  tree.

Attribution

NVIDIANVIDIA
View sourceSee grades on GitHubMore from NVIDIA →
SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

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 (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Related Skills

Caveman

Terse caveman voice: answer first, fluff gone, every technical fact kept. Use for /caveman, "caveman mode", "talk like caveman", "be brief", "less tokens". Stays on until "stop caveman" or "normal mode".

1100021 votes

Hyperplan

Adversarial multi-agent planning skill. Self-orchestrates 5 hostile category members (unspecified-low, unspecified-high, deep, ultrabrain, artistry) via team-mode for ruthless cross-critique debate, distills only the defensible insights, then MANDATORILY hands the distilled insight bundle to the `plan` agent for executable plan formalization. Use when planning needs maximum rigor and surfacing of weak assumptions, blind spots, and over-engineering. Triggers: 'hyperplan', 'hpp', '/hyperplan', ...

698621 votes

Writing Skills

Create and manage Claude Code skills in HASH repository following Anthropic best practices. Use when creating new skills, modifying skill-rules.json, understanding trigger patterns, working with hooks, debugging skill activation, or implementing progressive disclosure. Covers skill structure, YAML frontmatter, trigger types (keywords, intent patterns), UserPromptSubmit hook, and the 500-line rule. Includes validation and debugging with SKILL_DEBUG. Examples include rust-error-stack, cargo-dep...

3931 votes

Mcp Code Execution

Routes multi-tool workflows through MCP servers for large datasets and pipelines. Use when Bash tool overhead is limiting throughput on data-heavy tasks.

3421 votes

catchup

Recovers the conversation and failed tool calls of a previous Codex, Amp, Claude Code, Antigravity, Cline, Copilot CLI, Cursor, DeepSeek Harness, Grok Build, Kimi, OpenCode, Pi Agent, or ZCode session. Use when the user says "catch up", "what did the last session do", "get me up to speed", "I switched agents", asks to recover/summarize a previous session before continuing, or asks to diagnose or report a catchup failure. Do NOT use for the current conversation, git history, or any non-agent log.

741 votes
View all in ai-agents →