Skip to content
SkillOpsTrace, improve, release, sync

Self-improving agent skills

to11 analyzes every agentic coding session, turns what it learns into better skills, and ships them to every agent on your team. So every session delivers the best outcome.

SUCCESS
TRACE DETAILTO11-3596 computeSubtreeVisibility for org projects
SUCCESSPRODCLAUDE CODESören Martius · started 18m ago
DURATION4m 12s
TOKENS IN48,210
TOKENS OUT3,904
COST$0.41
MESSAGES14
TOOL CALLS9
TURN 1
User 12:30:32Start TO11-3596. Move ListProjectsByOrgUseCase onto computeSubtreeVisibility so permissions are checked once per role binding.
skilloptimize-this-session v10 loaded
readinternal/projects/list_by_org.go
grepcomputeSubtreeVisibility
editlist_by_org.go +18 −31
bashgo test ./internal/projects/...42 passed
Assistant 12:34:44Permissions are now checked once per role binding. Added equivalence tests, including a workspace DENY with a project ALLOW. 42 tests pass.
Works with the agents you already use
  • Claude Code
  • Codex
  • Cursor
  • OpenCode
Use cases

What you get out of it.

Three things you want from a fleet of agents.

  • 01

    Agent observability

    • Trace every agent session
    • Local and managed agents, one view
    • See which skill the agent followed
    See tracing
  • 02

    Self-improving skills

    • Learnings from every session flow back in
    • Versioned, reviewed, synced to the team
    • Fix it once, every agent gets it
    See the loop
  • 03

    Better output from every agent

    • Same task, same quality, any agent
    • Less rework, lighter review
    • Fewer tokens spent on retries
    Get started in 5 min
The problem

Your agents don’t learn.

Every session starts from the same stale skills and makes the same mistakes again. Popular skills, plenty of context, and still a different result every time.

  1. Skills and AGENTS.md copied from random repos.
  2. Whether a skill helps the agent is a guess.
  3. Third-party skills run in every session, unread.
  4. No two agents load the same set.
  5. More PRs than ever. Customers barely notice.
How it works · The loop

Everything between a failed session and every agent.

Trace, improve, release, sync. From the CLI you already have open.

incident-triageFrom the failed session to every agent
Trace
  1. Session traced with v8$ to11 code claude
    now
  2. Fix stored as v9$ to11 skill store incident-triage
    next
  3. v9 released to live$ to11 skill release incident-triage
    next
  4. Every agent on v9$ to11 skill sync
    next
Run the loop on your own repo.$ brew install to11ai/tap/to11
How it works · CLI

One CLI. Every agent you already use.

Install once. Then three commands, the same in every repository.

brew install to11ai/tap/to11
macOS. Linux has apt and dnf packages.
my-repo — zsh
$ cd my-repo $ to11 to11 CLI 0.24 ? Which project? acme/platform ✓ Linked acme/platform @ latest Saved to ./.to11/skills.yaml installed ./.claude/skills/incident-triage
to11 CLI 0.24step 1 of 3

Full setup: docs.to11.ai → CLI overview

How it works · Trace

See which skill the agent followed.

Model, tokens, turns and the exact skill version. When a skill misfires, you see the turn.

  • Model
  • Tokens in and out
  • Turns
  • Duration
  • Skill version
$ to11 code claude
Traces139f30b914598ba1a0daae1e7ec0ab37
TRACE DETAILchat claude-opus-5-5
SUCCESSPRODCLAUDE-OPUS-5-5
DURATION2.21s
TOKENS IN506
TOKENS OUT13
MESSAGES11
TURN 4

User: Triage the 502s on checkout-api. Skill incident-triage v8 loaded. Assistant, following incident-triage v8: the error spike starts with the 14:02 deploy. Rolling it back.

How it works · Release and sync

Fix it once. Every agent gets it.

Connect a skill, a label, a review gate and a project. Every agent following the label syncs it.

  • Skillincident-triage v9Stored from sre/runbooks
  • LabelliveFollowed by every agent in the project
  • Review gateprompt:reviewApproved for prod
  • Projectsre/runbooksHome project
Release1/4
incident-triage v9
  • Skill connected
  • Label not connected
  • Review gate not connected
  • Project not connected
Awaiting inputs · 1/4
  • Claude CodeWaiting for release
  • CodexWaiting for release
  • CursorWaiting for release
  • OpenCodeWaiting for release

Connect all four inputs to release. 1 of 4 connected.

  • Follow a label

    Agents track live and stay current.

  • Pin a version

    Hold one skill at a known version per repo.

  • Keep local edits

    Sync never overwrites a file you changed.

How it works · Security

Ready for your security review.

Plain markdown, permissioned releases, every file checked before delivery.

  • Permissions

    Each action needs its own permission. No access, no skill.

  • Review gates

    Promotion through dev, stage and prod needs review.

  • Safe on disk

    No symlink writes. Sync only deletes files it wrote.

Delivery checkincident-triage v9
  • text/markdown or text/plain only
  • 512 KB per file, 4 MB and 128 files total
  • no .., absolute paths, backslashes or NUL bytes
  • no CRLF, BOM or unpaired surrogates
  • access checked before delivery
  • provenance stamped: slug, version, label, project

Ready to improve your first skill?