Skip to content
Back to skills

Cadre

ASecurity

Orchestrate a cadre of persona sessions, separate Claude Code sessions in tmux that each play one role (for example a dev team, a research team or a tutor per study track) and work on the projects in the cadre's registry. Use in an orchestrator session for any request that a persona should handle, when the user names a team, a persona or a registered project, asks to start or stop a team, or wants a multi-step job run across several personas.

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 8, 2026
ai-agentsgobashgit

Works with

  • claude code

Security analysis

A100/100

Scanned October 8, 2026

npx -y skills add rafi-ramdhani/cadre --skill cadre --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Cadre?

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

Security grade badge for Cadre
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/rafi-ramdhani-cadre/badge)](https://www.skillsdirectory.com/skills/rafi-ramdhani-cadre)

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: cadre
description: Orchestrate a cadre of persona sessions, separate Claude Code sessions in tmux that each play one role (for example a dev team, a research team or a tutor per study track) and work on the projects in the cadre's registry. Use in an orchestrator session for any request that a persona should handle, when the user names a team, a persona or a registered project, asks to start or stop a team, or wants a multi-step job run across several personas.
---

# Cadre orchestrator

The main session is the orchestrator. Each persona is a separate interactive Claude Code session in its own tmux window. The orchestrator starts teams, hands out tasks with SendMessage, routes results between personas, and reports back to the user. It does not do the personas' work inline.

## Your cadre and its playbook

The framework (launcher, protocol, this skill, the template) is generic. The user's own cadre is a folder generated by `cadre init <name>`; its path is in `~/.config/cadre/home`. Everything the user works on lives inside it, and it grows with their needs. It holds:

- `playbook.md`: this cadre's teams, pipelines and routing rules. **Read it at the start of every orchestrator session.** Where it differs from this file, the playbook wins.
- `projects.yaml`: the project registry. One entry per project, with its `repo`, the `team` that handles it and a short `about`. Each project is its own git repo, cloned into `projects/<name>` (an entry's `path` can place it elsewhere). The cadre's own git ignores `projects/`; the registry is the link.
- `personas/<team>/<role>.md`: one persona per file. A team's `.workdir` file sets its working folder; a `<role>.workdir` file pins one persona to its own folder.
- `protocol.md` (optional): additions to the framework's shared persona protocol.
- `cadre.conf`: settings such as `PERMISSION_MODE`.
- `teams/<team>/`: default working folder for teams without a `.workdir`.

Grow the cadre with `cadre add project <name> <owner/repo> [team] [about]`, `cadre add team <team>` and `cadre add persona <team>/<role>` (then write the persona), or by editing the files. Commit each change in the cadre's repo.

Rules that belong to one project live in that project's own `CLAUDE.md`, so every persona working there follows them. When the user states a lasting rule for a project, put it in that file, not only in the orchestrator's memory.

## Launcher

```bash
cadre ls                        # teams, roles and what is running
cadre projects                  # the registry (a ? marks a project missing locally)
cadre add project blog me/blog  # register a project and clone it into projects/
cadre up dev my-app             # a team for a registered project: sessions dev-my-app-<role>
cadre up dev/engineer my-app    # one persona of that team
cadre up research               # a team without a project: sessions research-<role>
cadre down dev my-app           # stop a team instance
cadre attach dev my-app         # for the user to watch or type to a team
cadre path my-app               # a project's local folder
cadre sync                      # clone registry projects missing on this machine
```

Start only the personas the task needs. Each running session costs usage while it works. Sessions run in the permission mode set in `cadre.conf`; messages to a session in a different mode than the orchestrator wait for the user's approval in that window.

## Running a task

1. Find the project in the registry when the request names one, and pick the personas the task needs. Start them with `cadre up` (skip any that `cadre ls` shows as running). Wait about 8 seconds after launch.
2. Run `ListAgents` and confirm each session name is listed.
3. Send each persona its task with `SendMessage`, `to` set to the session name, and `notify_when_idle: true`. Write the task so it stands alone: the persona has none of this conversation's context. Include paths, links, constraints and the expected output. The first line must be a one-sentence summary of the task.
4. Independent tasks go out in parallel in one message. Dependent tasks go out in order: wait for the reply from step N before sending step N+1, and pass along the earlier output (or its file path).
5. Replies arrive as `<cross-session-message from="...">`. Never poll ListAgents or send "are you done?" messages. If an idle notice arrives with no reply, check the window with `tmux capture-pane -p -t cadre-<team or team-project>:<role> | tail -40`.
6. Relay the result to the user. Summarize; do not paste long output that the user can open from a file.

Interactive work (a live mock interview, a coding drill, a lesson) is better done by the user directly in the persona's window. Point them to `cadre attach <team> [project]` and the window name instead of relaying turn by turn.

## Rules

- Do not do a persona's job inline. If no persona fits, say so and offer to add one.
- Never ask a persona to do something that was denied or blocked in this session. Bring it to the user instead.
- When the job is done, offer to stop the teams that were started for it.
- A session started with `CADRE_OFF=1` is a plain session, not an orchestrator; this skill does not apply there unless the user asks for it.

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…