# Skills & Tools

> Give every agent in your organization the same skills, subagents, slash commands and shared tools, and choose per project which ones its agents get.

This page shows you how to give By Dawn's agents the skills and tools your team relies on. By the end you'll know
where the library lives, how an item gets into it, and how a project picks exactly what its agents get.

The **library** is your organization's shared set of instructions and helpers for agents. Once an item is
published there, every agent that starts work on a ticket picks it up, so you write a skill once instead of
copying it into every repo.

## What the library holds

The library has four kinds of item. The first three are the ones Claude Code itself understands:

| Kind | What an agent does with it |
|---|---|
| **Skills** | Instructions an agent follows when a task matches, such as how to read a loan PDF. |
| **Subagents** | A specialist the agent can hand part of its work to. |
| **Commands** | A slash command the agent can run by name. |
| **Tools** | A shared helper, such as a script, that skills call. A skill names the tools it needs as its dependencies. |

Skills, subagents and commands share one page with a tab for each. Tools have a page of their own, because
people look for them on their own.

## Where it lives

The library has two levels:

- **Organization**: **Settings › Organization › Skills** and
  **Settings › Organization › Tools**. A published item here reaches every project.
- **Project**: **Settings › This project › Skills** and
  **Settings › This project › Tools**. Here a project sees the organization's items, can switch
  any of them off for itself, and can add items of its own that no other project gets.

Anyone in the organization can read the library. Adding, publishing and archiving items needs an org owner or
admin, because a published item changes what every agent does.

Each item shows its state: **Published**, **Draft**, **Pending review** or **Archived**, with its version
number. It also shows whether evals have passed (**Evals green**, **Evals red**, or **No evals**) and how often
agents have used it.

## Add an item

Choose **Add**. You can **Build with a worker** or **Upload a bundle**.

### Build with a worker

A By Dawn agent interviews you, writes the item, tests it, and hands it back for you to publish. This is the easier
way, because you only need to say what the item should do.

1. Open a project first. The builder works on a ticket, and the ticket is created on the project you have
   open.

2. In **Build with a worker**, choose the **Kind** and the **Scope** (**Org** or **Project**). Under **What
   should it do?**, write one line, for example "Extract the borrower fields from a loan PDF". The agent asks
   for the rest.

3. To change an item you already have instead, pick it under **Improve an existing item**. Leave it on
   **Start fresh** for a new one.

4. Choose **Start the worker**. By Dawn creates a ticket with the `library-builder` label and starts an agent on
   it.

5. Answer the agent's questions on the ticket. When the draft is ready, the agent hands it back on the
   ticket's mission for you to review and publish.

### Upload a bundle

If you've already written the item, upload it as a `.tar.gz` with a `saw.yaml` manifest and the item's files.
Give it a **Name** that's unique for that kind and scope, and choose the **Kind** and **Scope**. The upload
arrives as a draft, so nothing reaches an agent until someone publishes it.

## Publish, reject and archive

Choose an item to open its details. There you can see its description, usage, files, versions (pick two to
compare them), dependencies and where it came from. A draft offers three actions:

- **Publish** makes the draft the live version. The previous version stops reaching new agents.
- **Reject…** asks why. The builder agent reads your reason back, so say what to change.
- **Archive** takes the whole item out of the library.

By Dawn checks a few things before it publishes. It refuses a name that's already published in the same scope,
and warns you when a skill depends on a tool that isn't published. Run evals from the item's versions with
**Run evals**: each case checks that the item actually fired and said the right things.

Publishing or archiving a **tool** first lists the published skills that depend on it, because those skills
change too. A skill finds its tools by name, so a new version of a tool reaches every skill that uses it.

> **Note:** Org-level evals run on a project you pick under **Eval project** at the top of
> **Settings › Organization › Skills**. Until one is set, org items can't be evaluated.

## Choose what a project gets

Open **Settings › This project › Skills**. The **Effective set** at the top says how many items an
agent on this project gets today and lists them by name. It's worked out the same way as when an agent starts.

Below it, the project's own items sit under **This project** and the organization's under **Organization**. To
keep an organization item away from this project's agents, turn off the switch on its row (**Disable on this
project**). The item reads **Disabled here**, and no other project is affected. Turn the switch back on
(**Enable on this project**) to bring it back. Like publishing, the switch needs an org owner or admin.

A repo can carry its own copy of a skill, subagent or command in its `.claude/` folder. When it does, the repo's
copy wins and the library item reads **Overridden by repo**, so a team can keep a repo-specific version without
changing everyone else's.

## FAQ

**Does publishing a new version change an agent that's already working?**

No. An agent keeps the versions it started with until it finishes, so a ticket's run never changes halfway. The
next agent to start gets the new version.

**Why can't I see Add?**

Adding and publishing items needs an org owner or admin. Members can read the library and its details.

**What does a tool's runtime and environment show?**

What the tool says it needs on the machine to run, and the environment variables it reads. By Dawn doesn't check
these against your machines yet. Supply credentials it needs as [secrets](https://docs.bydawn.com/secrets/).

## Where to go next

- [Missions and templates](https://docs.bydawn.com/missions/): the steps a ticket goes through, including the one where you publish a
  built item.
- [Secrets](https://docs.bydawn.com/secrets/): give agents the API keys and tokens your tools need.

Source: https://docs.bydawn.com/skills-and-tools/
