When to Use Tuff
Tuff is for teams that want agent capabilities to be managed like normal engineering assets: visible in a project, reviewable in pull requests, and reproducible across machines.
Team capability pack
Section titled “Team capability pack”A platform or developer-experience team maintains a pack repository:
company-agent-pack/ tuff-pack.toml capabilities/ rust-test-workflow/ security-review/ release-prep/Product teams install the capabilities they need:
tuff inittuff add skill https://github.com/company/company-agent-pack rust-test-workflow --agent open-agentstuff listThe project owns the installed output. If a team customizes it, Tuff should show that drift instead of hiding it.
Project-specific capabilities
Section titled “Project-specific capabilities”Some agent behavior belongs to a single project. For example:
- how to run that service locally
- how to test a migration
- how to review domain-specific code
- how to prepare a release
Those capabilities can live inside the project and still use Tuff for validation, install state, drift detection, and future merge behavior.
Personal or global setup
Section titled “Personal or global setup”An engineer may also keep personal capabilities in a global location and load them into a harness. Tuff should support that flexibility later, but the strongest team workflow is project-owned state that can be reviewed and shared.
Global capabilities are useful for personal preferences. Project capabilities are better for team conventions.
Adopting external skills
Section titled “Adopting external skills”Teams can adopt useful skills from ecosystems such as skills.sh or GitHub repositories, then bring them under Tuff lifecycle tracking.
The intended flow is:
tuff add skill https://github.com/owner/repo rust-implement --agent open-agentstuff listtuff diff rust-implementUse tuff add --agent open-agents .agents/skills/<id> for local agent assets that
already exist in a project. Use tuff add skill <git-url> <id> for
capabilities hosted in a git repository.
Harness compilation
Section titled “Harness compilation”Different coding agents expect different file layouts. Tuff should keep a single managed source model and compile or emit agent-specific output:
tuff agent add open-agentstuff agent add claudeHarness adapters make agent output explicit and reproducible. The same
managed capability can be emitted into .agents/ for Open Agents-compatible
harnesses or .claude/ for Claude Code.