agentleFS
urvijain02urvijain02/claude-autopilot/skills/reporting/SKILL.md

reporting

Skill0 starsChanged 23 days agoMITView on GitHub

The session-output contract for the pipeline — terse one-line-per-stage status and a fixed final block. All detail lives in the files, not the chat. Bound by the orchestrator and every pipeline agent.

11 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use RECON.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • jord0-cmdSkill

    RECON

    Deep technical research that persists. Use when: exploring new technologies, investigating frameworks, comparative analysis of tools, understanding complex systems, or any research task that should be saved for future reference. Invokes Claude's built-in research agent and auto-saves results to a knowledge base for retrieval across sessions.

    Also in 3 projects that use this

The file

We split this skill into the rules it gives an agent

5 rules. 0 are common, 2 are distinctive, and 3 are very specific to this project.

  • 0

    Common

    Most of the 11 edited versions we read keep these.

  • 2

    Distinctive

    This author's own choices. Worth a look.

  • 3

    Very specific

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

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    After each stage, print exactly one plain line — not wrapped in its own ``` fence (fences are only for the preflight checklist and the …

    line 32
  2. Very specific:

    If there are none, write manual none.

    line 67
  3. Very specific:

    Don't free-form it. Print the same final block with status ⚠ escalated, no PR line, and an unresolved field listing the surviving findings …

    line 74
  4. Distinctive:

    When the pipeline terminates prematurely due to an unrecoverable failure (e.g.

    line 91
  5. Very specific:

    All partial marks and gate logs remain persisted in $STATE/ for debugging.

    line 98

“Common” is measured: kept by at least 6 in 10 of the 11 edited versions of this file we could read. “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

Reporting (keep the session minimal & consistent)

Everything detailed is written to the ticket's state dir — $STATE, whatever ${CLAUDE_PLUGIN_ROOT}/bin/state-dir.sh <TICKET> returns (spec, plan, findings, gate logs, log.md). So the session window stays short and identical across runs. Do NOT echo file contents, specs, diffs, findings, or long narration into the chat.

For subagents (every stage)

Return one line to the orchestrator, this exact shape — no preamble, no restating the plan, no pasting file contents:

<phase> · <repo>: <result> · gates <tests …/build …> · wrote <files>

e.g. implement · auth-service: tests 57/57, build ok · wrote TokenValidator.cs, TokenValidatorTests.cs. If a stage has no gates or no files, drop that part. Full detail goes in your log.md section, not the return.

For the orchestrator

Output discipline — strict

The session shows ONLY: one status line per stage, the preflight checklist, the final block, a ⏸ approval prompt, a genuine blocker that needs the user, and a direct answer when the user asks a question. Nothing else. You run autonomously — the user reads the files, not a live play-by-play. Think silently (in your reasoning), write outcomes and reasoning to log.md, surface almost nothing.

Never print any of these — they go to log.md, or nowhere:

  • About-to narration: "Now Stage X…", "Now let me…", "Let me read/check/verify…", "Delegating to…", "Proceeding.", "Now provisioning…". Just do it; the status line reports the result.
  • A prose sentence restating a result you're also emitting as a status line — the status line replaces the prose; never both.
  • Live diagnosis or weighing of options (build/credential blockers, loop decisions, verdict routing) — that is a Decision: / Did: entry in log.md, not window text.
  • File contents, diffs, specs, findings, plans.

One line per stage

After each stage, print exactly one plain line — not wrapped in its own ``` fence (fences are only for the preflight checklist and the final block). Get real elapsed from the helper:

E="$(${CLAUDE_PLUGIN_ROOT}/bin/mark-phase.sh <TICKET> <phase>)"   # prints stage elapsed, logs the mark

Line shape: <TICKET> · <phase>[ · <repo>] · <one-line result> · <E> Example: PROJ-123 · implement · auth-service · tests 57/57 · build ok · 2m14s

Final block — exactly this shape

<TICKET>  <✓ done | ⚠ escalated | ✗ failed> · total <TOTAL>
 repos    <name> (<branch>)  +A −D · N files          # one line per repo; A/D/N from `git -C <repo> diff --shortstat <base>...HEAD`
 gates    tests: <pass|fail|skipped|blocked> (<n/n>) · build: <pass|fail|skipped|blocked>    # per repo if multi-repo
 review   <clean|non-blocking|escalated> · <k> iteration(s)
 telemetry plan: <P> · tdd: <T> · review: <R>          # from telemetry.json duration_seconds.phases
 tokens   <IN> in (<HIT>% cache hit) · <OUT> out · <TOTAL> tok # from telemetry.json tokens & cache_hit_rate_percent
 manual   <none | bullets>
 PR       <url>                                        # one per repo
 jira     <status set, e.g. In Review | skipped (Atlassian MCP not connected)>
 slack    <posted → <channel> | skipped (Slack MCP not connected)>
 details  <STATE>

Rules for the block:

  • <STATE>: ${CLAUDE_PLUGIN_ROOT}/bin/state-dir.sh <TICKET>. Never print the default path literally — state_root and AUTOPILOT_STATE_DIR move it, and a wrong path here sends the reader somewhere the files aren't.
  • <TOTAL>: ${CLAUDE_PLUGIN_ROOT}/bin/mark-phase.sh <TICKET> --total.
  • gates: state each gate's result explicitly — pass / fail / skipped / blocked. Never imply pass for a skip or a block; each is shown as itself. Read the real values from gates/<label>/*.json.
  • telemetry: pull macro phase elapsed times from $STATE/telemetry.json (duration_seconds.phases.plan_and_setup, tdd_and_gates, review_and_delivery). Format in seconds or m/s (e.g. plan: 20s · tdd: 52s · review: 1m02s).
  • tokens: pull durable token counters from $STATE/telemetry.json (tokens.input, tokens.output, cache_hit_rate_percent, total = input + output). E.g. 124.5k in (81.9% cache hit) · 14.2k out · 138.7k tok.
  • manual: pull the rows tagged manual from test-plan.md and list them as short bullets:
     manual
       - <manual check 1>
       - <manual check 2>
    If there are none, write manual none.
  • One repos / PR line per repo in a multi-repo run.

Escalation (review loop hit the iteration cap)

Pull telemetry and tokens from $STATE/telemetry.json (compiled by the orchestrator at escalation exit in engage).

Don't free-form it. Print the same final block with status ⚠ escalated, no PR line, and an unresolved field listing the surviving findings as bullets:

<TICKET>  ⚠ escalated · total <elapsed>
 repos    <name> (<branch>)  +A −D · N files
 gates    tests: <…> · build: <…>
 review   escalated · <k> iteration(s)
 telemetry plan: <P> · tdd: <T> · review: <R>
 tokens   <IN> in (<HIT>% cache hit) · <OUT> out · <TOTAL> tok
 unresolved
   - <finding — one line>
   - <finding — one line>
 details  <STATE>

The ticket is left in its current status (not moved to In Review) and no Slack post goes out — say so if asked.

Aborted / Failed Runs

When the pipeline terminates prematurely due to an unrecoverable failure (e.g. fatal gate failure, missing branch/credentials, unresolvable preflight blocker), emit a lean failure block omitting telemetry and token lines from chat to keep error diagnosis front and center:

<TICKET>  ✗ failed · total <elapsed>
 stage    <phase where failure occurred>
 error    <brief failure diagnosis or blocking reason>
 details  <STATE>

All partial marks and gate logs remain persisted in $STATE/ for debugging.

AI Telemetry & Token Economics table in log.md

At run conclusion, in addition to the persisted ## Summary block, append the structured telemetry audit table to $STATE/<TICKET>/log.md:

## AI Telemetry & Token Economics

| Metric | Value | Breakdown / Details |
| :--- | :--- | :--- |
| **Total Duration** | `<total>s` | Plan: `<P>s` · TDD: `<T>s` · Review: `<R>s` |
| **Models Deployed** | `sonnet` / `opus` | Analyst: `sonnet` · Coder: `sonnet` · Reviewer: `opus` |
| **Input Tokens** | `<IN>` | Cache Read: `<CR>` (`<HIT>%`) · Cache Creation: `<CC>` |
| **Output Tokens** | `<OUT>` | Completion tokens generated across stages |
| **Total Tokens** | `<TOTAL>` | Combined context window footprint |
| **Cache Efficiency** | `<HIT>%` | Prompt cache read hit rate across sequential subagents |

### Phase Timing Breakdown
| Macro Phase | Duration | Constituent Stages |
| :--- | :--- | :--- |
| **Plan & Setup** | `<P>s` | `preflight`, `jira_start`, `provision`, `requirements`, `test_plan`, `branch` |
| **TDD & Gates** | `<T>s` | `write_tests`, `implement` |
| **Review & Delivery** | `<R>s` | `review`, `analyze`, `fix`, `commit`, `ticket_updates`, `cleanup` |

That is the entire session output for a run — stage lines, then the final block. Everything else is in the files.

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.