agentleFS
kellykampenkellykampen/agent-skills/skills/agents/peek/SKILL.md

peek

Skill2 starsChanged 13 days agoMITView on GitHub

Use whenever you are an agent inside a multi-agent orchestration fleet (the conductor, a project-orchestrator, or a worker/builder seat) and need to report your own status so the level above you can see it, or need to check what your own children are doing right now. Trigger on: starting a new task, getting blocked, finishing a task, being asked "what's your fleet doing", wanting a live view of workers/orchestrators instead of capturing panes, or onboarding a new agent into the `PEEK_ID`/`PEEK_ROLE`/`PEEK_PARENT`/`PEEK_WORKSPACE` env contract. This is the fix for orchestrators losing track of fleet state in chat and having to capture-pane every worker to know if it's alive.

  • Installs packages

2 other projects use a version of this.

Adopted by

Most recently taken up by

The file

We split this skill into the rules it gives an agent

6 rules. About 0 are common, 0 are distinctive, and 6 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈0

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 6

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    If these aren't set and you're not conductor, peek update will hard-error rather than write a silently-wrong record — that's intentional.

    line 60
  2. Very specific:

    Call it at these three moments, not continuously — peek has no lifecycle hooks in v1, so if you don't call it, your record goes stale and …

    line 76
  3. Very specific:

    If you have workers or sub-orchestrators reporting to you (your PEEK_ID shows up as their PEEK_PARENT), don't rely on capturing their panes …

    line 103
  4. Very specific:

    Don't call peek update on every tool call or thought — three moments (start/block/done) is the contract.

    line 121
  5. Very specific:

    Don't skip reporting because "the task is quick" — a worker that starts and finishes in two minutes without ever calling peek update is …

    line 123
  6. Very specific:

    Don't use peek as a substitute for the actual reporting flow in your fleet's playbook (e.g.

    line 126

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

peek (fleet status reporting)

peek is a tiny, local, serverless CLI that makes an agent-orchestration fleet legible: each agent reports its own status via peek update, which peek stores in a per-agent JSON file behind the scenes; anyone above it in the hierarchy can read the tree instantly (via peek) instead of capturing panes to guess what's alive. No server, no daemon — just files under ~/.peek/projects/<project-slug>/, which you never touch directly (see below).

The CLI is the only contract — never touch ~/.peek/ yourself

~/.peek/ is peek's private internal storage, not something you read, write, or inspect directly. Always go through the CLI: peek update, peek, peek --all, peek watch, peek web. Never cat/echo/hand-edit a file under ~/.peek/, and never glob it yourself to "check" something — if you need to know the current state, run peek/peek --json, not a filesystem read. This keeps the on-disk schema free to change without breaking every agent that depends on it, keeps every write atomic/valid (the CLI validates; a hand-written JSON file might not), and means you never have to know or care what the record shape actually is.

Are you set up to use it?

Setup is plain env exports, set once per session — there is no peek register command. You export your identity a single time (at spawn, or once at session start if you're the conductor); every peek update call after that is bare (just --task/--status/etc, never re-exporting anything). Reading needs no identity at all — peek, peek --all, and peek web all work with zero PEEK_* env vars set, for anyone just looking. Only writing (peek update) requires your identity to already be exported.

You need four env vars, normally set by whatever spawned you (a launcher script, an orchestrator's cast command, or your own boot sequence if you're the fleet's conductor):

VarWhat it is
PEEK_IDYour own unique identifier
PEEK_ROLEconductor, orchestrator, or worker
PEEK_PARENTYour parent's PEEK_ID (omit only if you're conductor)
PEEK_WORKSPACEYour project's computed slug (omit only if you're conductor — see below)

The tree is built strictly from these stored PEEK_PARENT links — never from position, spawn order, or directory structure — so get your own parent right at registration time.

If these aren't set and you're not conductor, peek update will hard-error rather than write a silently-wrong record — that's intentional. Ask whoever cast you to set them, or if you're bootstrapping a fresh fleet yourself, compute PEEK_WORKSPACE as your project root's absolute path with every / replaced by - (same scheme as ~/.claude/projects/<slug>), normalized to the main checkout if you're in a git worktree — never a worktree's own path.

Special case — you're the conductor: your whole setup is one line, once:

export PEEK_ROLE=conductor PEEK_ID=conductor

Registration is cwd-agnostic — your own directory is irrelevant, PEEK_ROLE=conductor alone routes your record into the reserved ~/.peek/projects/_conductor/<PEEK_ID>.json slot, no PEEK_PARENT/PEEK_WORKSPACE needed. Every peek update after that one export is bare.

When to peek update

Call it at these three moments, not continuously — peek has no lifecycle hooks in v1, so if you don't call it, your record goes stale and eventually looks crashed to whoever's watching:

  1. On task start — the moment you pick up a ticket/task, before doing any real work:
    peek update --task "implementing PEK-6: --json output on peek" --status working
  2. On block — the moment you're stuck waiting on something (a decision, another seat, a quota reset):
    peek update --task "same as above" --status blocked --note "waiting on CEO: --all scope decision"
    Go back to --status working the moment you're unblocked and resume — don't leave a stale blocked record sitting once you're moving again.
  3. On done — the moment your work is actually complete (committed, gates passed — not just "code written"):
    peek update --task "implementing PEK-6" --status done --ticket PEK-6
    A done record is still visible (briefly) before peek prune clears it — this is what lets the level above you see completion without you having to send a separate chat message.

--ticket and --note are optional; omitting them on a later call clears any previously-set value (each peek update fully overwrites your record, it doesn't patch it).

When to check on your own children

If you have workers or sub-orchestrators reporting to you (your PEEK_ID shows up as their PEEK_PARENT), don't rely on capturing their panes to know what they're doing:

  • peek — one-shot: your project's tree (or the whole fleet if you're conductor with no PEEK_WORKSPACE), each agent's task/status and a relative "Xm ago", with a dim/gray ⚠ on anything stale past ~10 minutes. Run this before deciding whether a seat needs a nudge.
  • peek watch — same view, live-refreshing (~3s) until Ctrl-C. Use this instead of re-running peek in a loop yourself when you're actively monitoring a cast in progress.
  • peek --all — force the full cross-project view regardless of your own PEEK_WORKSPACE scope (usable by any role, not just conductor — see PLAN.md's clarification on why a conductor-only restriction would be pointless).
  • peek --json — same data as a flat JSON array (each record plus a computed stale boolean) if you need to consume it programmatically rather than read it.
  • A stale (⚠) entry that hasn't moved to done is your signal to actually check that seat — capture its pane, ask it a direct question, or treat it as crashed and re-cast the work.

What NOT to do

  • Don't call peek update on every tool call or thought — three moments (start/block/done) is the contract. Spamming updates defeats the "at a glance" design and adds noise no one reads.
  • Don't skip reporting because "the task is quick" — a worker that starts and finishes in two minutes without ever calling peek update is invisible the whole time; call it at start even for small tasks.
  • Don't use peek as a substitute for the actual reporting flow in your fleet's playbook (e.g. builders still report commits to QA with sha + evidence) — peek is a status radar, not a replacement for the evidence-bearing handoffs a fleet's QC gates require.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.