Agent skill

Session To Guideline

by BlackBeltTechnology in BlackBeltTechnology/pi-agent-dashboard

Turn a pi session into a Markdown "how-we-did-it" collaboration guideline: reads the session's JSONL transcript and synthesizes a reusable playbook of which prompts worked, what had to be steered…

MITAuto-check passed

Install Session To Guideline

skills CLI
$ npx skills add BlackBeltTechnology/pi-agent-dashboard --skill session-to-guideline -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install BlackBeltTechnology/pi-agent-dashboard session-to-guideline --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/BlackBeltTechnology/pi-agent-dashboard.git skills-src && mkdir -p .claude/skills && cp -r skills-src/packages/authoring-toolkit/.pi/skills/session-to-guideline .claude/skills/session-to-guideline && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
session-to-guideline
GitHub stars
316
Token cost
~3.2k tokens
SKILL.md length
1,405 words
Files
4 (incl. scripts, references)
Skills in repo
70
Repo updated
First seen
Licence
MIT

At a glance

Turn a pi session into a Markdown "how-we-did-it" collaboration guideline: reads the session's JSONL transcript and synthesizes a reusable playbook of which prompts worked, what had to be steered…

  • Works in 2 steps: Deterministic extract… → Synthesis — read the facts sheet and…
  • : document this session
  • SKILL.md covers Where sessions live, Procedure, Batch / past-session… and Selector cheatsheet, plus 1 more section
  • Runs TypeScript scripts from its folder; calls npx

What it does

Session To Guideline is an agent skill from BlackBeltTechnology/pi-agent-dashboard. Turn a pi session into a Markdown "how-we-did-it" collaboration guideline: reads the session's JSONL transcript and synthesizes a reusable playbook of which prompts worked, what had to be steered, and how to reproduce the result faster. Use when: "document this session", "write up how we did X with the AI", "make a guideline from this session", "turn this session into a playbook/tutorial".

Its SKILL.md is about 3.2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 5 other files, including scripts and reference files (for example `references/guideline-template.md`, `scripts/extract_session.ts` and `scripts/list_sessions.ts`).

The repository describes itself as: Real-time web dashboard for pi coding-agent sessions. Multi-session view, live chat mirroring, integrated terminal, diff viewer, pi-flows execution, and mobile-first remote… The licence is MIT.

When your agent uses it

  • : document this session
  • Write up how we did X with the AI
  • Make a guideline from this session
  • Turn this session into a playbook/tutorial

Example prompts

  • “how-we-did-it”
  • “document this session”
  • “write up how we did X with the AI”
  • “/session-to-guideline”

Requirements

  • Node.js

Workflow steps

2 steps, taken from the first numbered list in SKILL.md.

  1. Deterministic extract (scripts/extract_session.ts) — parses the session JSONL on
  2. Synthesis — read the facts sheet and write the guideline using

What it can do on your machine

Read from SKILL.md and the folder at commit 7feac4d. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 2 files in scripts/ (TypeScript), which the agent can run.

    Shell commands in SKILL.md call:

    • npx

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use npx, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Session To Guideline loads about 3.2k tokens when it runs, and up to ~4.1k if it reads all its reference files. Until then it costs about 103 tokens; SKILL.md has 1,405 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~103
When it runs · the whole SKILL.md, loaded when a task matches
~3.2k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~4.1k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from BlackBeltTechnology/pi-agent-dashboard at commit 7feac4d, republished under its MIT licence (© BlackBeltTechnology). 1,405 words, ~3,174 tokens.

Download SKILL.mdSave it as .claude/skills/session-to-guideline/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.
name
session-to-guideline
description
Turn a pi session into a Markdown "how-we-did-it" collaboration guideline: reads the session's JSONL transcript and synthesizes a reusable playbook of which prompts worked, what had to be steered, and how to reproduce the result faster. Use when: "document this session", "write up how we did X with the AI", "make a guideline from this session", "turn this session into a playbook/tutorial".

Session → Collaboration Guideline

Produces a Markdown document that reads like a playbook for collaborating with the AI on a task — not a raw transcript. It separates the goal from the steering, surfaces the skills/memories created and why they work, and ends with a reproduce-it checklist.

Two layers:

  1. Deterministic extract (scripts/extract_session.ts) — parses the session JSONL on the active branch and emits a structured facts sheet (prompts in order, tool usage, files written/edited, searches, skills/memories created, failed commands, cost). This is raw material, not the deliverable. TypeScript, run with npx tsx (repo convention).
  2. Synthesis — read the facts sheet and write the guideline using references/guideline-template.md. The why it's effective and what to steer parts require judgment. Run it inline for a single session, or delegate to the SessionGuideline subagent for batch / past-session application (see below) — the synthesis is self-contained (facts sheet in, one guideline out), so it isolates cleanly.

Where sessions live

~/.pi/agent/sessions/--<cwd-with-slashes-as-dashes>--/<timestamp>_<uuid>.jsonl (JSONL tree; see the pi session-format docs). The scripts locate files for you.

Worktrees are included by default. A project's OpenSpec work runs in .worktrees/<name> sub-checkouts, which get their own encoded session dir (--<project>-.worktrees-<name>--). Both scripts resolve a --cwd to the project root + every .worktrees/* worktree, so project-scoped listing/latest covers worktree sessions too (rows tagged [wt:<name>]). Pass --no-worktrees for the old root-only behavior. Running from inside a worktree still lists the whole project (the root is recovered by stripping /.worktrees/<name>).

Procedure

  1. Pick the session. If the user didn't name one, list candidates:

    bash
    npx tsx scripts/list_sessions.ts --cwd "$(pwd)" --limit 20      # this project + its worktrees
    npx tsx scripts/list_sessions.ts --cwd "$(pwd)" --no-worktrees  # project root only
    npx tsx scripts/list_sessions.ts --all --limit 30               # every project

    Worktree rows are tagged [wt:<name>] so you can tell root work from worktree work. (tsx runs the .ts directly, no build step.) Show the table and confirm which one (by 8-char id or # index). The current live session is usually #0/latest; documenting a finished prior session gives a complete picture (the live one won't include the not-yet-written tail).

  2. Extract the facts sheet (cheap, deterministic). Use a UNIQUE output path per run — the fixed /tmp/session_facts.md is NOT parallel-safe: concurrent runs (e.g. a batch of SessionGuideline spawns) clobber the same file and every reader gets the last writer's sheet. Always mktemp:

    bash
    FACTS=$(mktemp /tmp/session_facts.XXXXXX.md)
    npx tsx scripts/extract_session.ts <selector> --cwd "$(pwd)" --out-md "$FACTS"
    • <selector> may be an 8-char id, a full path, or latest (use --index N for the Nth most recent). In BATCH runs prefer the explicit JSONL path — the extract's parent-chain walk can drift to a parent file on forked sessions.
    • Use --max-text / --max-cmd to widen truncation if you need more prompt/command text.
  3. Read the facts sheet ($FACTS). Pay attention to:

    • Prompt 1 = the goal; prompts 2..N = steering (corrections, scope additions, quality bars, yes/all-three style unlocks).
    • Skills created / Memories saved — these are the reusable assets; explain why.
    • Tool errors / failed commands — these become the Pitfalls section.
    • Artifacts — the files the operator ends up with.
  4. Synthesize the guideline following references/guideline-template.md. Fill every section. Rules:

    • Write for a future operator with the same goal — instructive, not a log.
    • Turn each steering turn into a guardrail ("the AI tended to X → state Y up front").
    • For each skill/memory created, state the reusable problem it solves and when to invoke it.
    • Rewrite weak prompts into the stronger version the reader should use.
    • Quote sparingly; summarize tool activity into phases.
  5. Write the deliverable into the weekly folder. The bucket is the ISO week bucket line from the facts sheet Metadata (YYYY/Www, ISO-8601 week of the session start). Default location, unless the user says otherwise:

    <cwd>/Prompt stories/<YYYY>/W<WW>/<Topic>.md   # e.g. Prompt stories/2026/W30/Hermes memory pressure.md

    mkdir -p the week folder first. (Do NOT write it inside a skill folder.) Name the file after the session name/topic. Begin the file with the YAML frontmatter block (see references/guideline-template.md), filled from the facts sheet:

    yaml
    ---
    session: <8-char id>
    week: <YYYY/Www>
    type: <development|planning|research|documentation|other>   # copy "Session type" verbatim
    model: "@fast"           # ALWAYS quote — an @-prefixed role is INVALID YAML unquoted
    premium: <true|false>          # copy the "Premium candidate" flag verbatim
    premium_reason: "<reasons from the flag, or empty>"
    upgrade_status: <pending|done|n/a>
    # --- the next two ONLY when the facts sheet has an "OpenSpec changes" line ---
    openspec_changes: [<change-name>, ...]
    proposal_excerpt: "<the facts sheet 'Proposal excerpt' line, or omit if none>"
    ---
    • model MUST be quoted ("@fast", "@research"): a YAML plain scalar cannot start with @ (reserved indicator) — unquoted model: @fast makes the whole frontmatter invalid. It is the model that generated THIS story. A subagent cannot observe its own runtime model, so when spawning SessionGuideline the parent MUST state it in the prompt (e.g. generated-by: @fast) and the subagent writes that verbatim. Getting this wrong mis-routes the upgrade queue (a budget story stamped @research never gets re-run). Inline (non-subagent) runs: use the model you are actually running as.
    • type is classified deterministically by the extractor (Session type line: code files → development, proposal/design/spec files → planning, research docs / many searches + no code → research, docs → documentation, else other). Copy it; only override if the narrative clearly contradicts the signal.
    • openspec_changes / proposal_excerpt appear only when a proposal is attached to the session (the extractor found openspec/changes/<name>/ in the session's files/commands and prints an OpenSpec changes line). Omit both fields entirely when that line is absent — do not invent a proposal link. When the write-up references images (storyboards, screenshots), link them relative to the story file — from a week folder that is ../../Projektek/<Project>/.../shot_01.png — and verify each resolves. Tell the user the path.
  6. Mark premium stories for later Opus upgrade. Premium is decided deterministically by the extractor — the facts sheet's Premium candidate flag is yes when the session created a skill/memory, OR had ≥5 user prompts, OR produced a facts sheet ≥ ~10K tokens. You do NOT judge it; you transcribe it. Set upgrade_status:

    • pending — premium: true AND a budget model wrote this story (@fast/@compact); it is a candidate for an Opus re-run.
    • done — @research/Opus wrote it (already premium quality).
    • n/a — premium: false.

    When upgrade_status: pending, append one row to the queue index <cwd>/Prompt stories/_premium-queue.md (create with the header if missing):

    | week | story | model | reason | status |
    |------|-------|-------|--------|--------|
    | 2026/W30 | 2026/W30/<Topic>.md | @fast | heavy steering (7 prompts) | pending |

    A later upgrade pass re-runs each pending story on @research/Opus, overwrites the file, and flips both its upgrade_status and the queue row to done.

Show full SKILL.md (536 more words)Show less

Batch / past-session application (via the SessionGuideline subagent)

The synthesis is self-contained — facts sheet in, one guideline out, no coherence with any ongoing work — so it is a clean subagent job. For a SINGLE interactive session, running it inline (above) is fine. For applying to MANY past sessions, delegate each to the SessionGuideline subagent so the facts sheet and the reasoning stay out of the main context and sessions don't accumulate there:

  1. List the target sessions once:
    bash
    npx tsx scripts/list_sessions.ts --cwd "$(pwd)" --limit 50    # or --all
  2. For each session, spawn SessionGuideline (explicit Agent call), passing the explicit JSONL path (not a partial id — the extract's parent-chain walk can drift to a parent file on forked sessions) + an explicit output path. Each spawn runs BOTH layers in isolation (extract → synthesise) and returns only the written path + a short abstract:
    Agent(subagent_type="SessionGuideline", model="@fast",
          prompt="session JSONL <abs-path>; cwd <dir>; generated-by: @fast; write to the weekly
                  folder Prompt stories/<YYYY>/W<WW>/<Topic>.md (bucket from the facts sheet's
                  ISO week line); add frontmatter; if premium+budget-model, queue it")
    Pass the model twice: the Agent(model=…) param sets the runtime model, and generated-by: <same model> in the prompt tells the subagent what to write into model: (it cannot introspect its own model). Keep them identical.
    For bulk backfill on @fast, each spawn writes into its week folder and self-marks premium candidates (upgrade_status: pending) into _premium-queue.md — a later Opus pass drains that queue. See steps 5–6.
  3. Collect the returned paths. Parallel batches are safe ONLY because step 2 uses a mktemp facts sheet per run — the old fixed /tmp/session_facts.md raced (concurrent spawns overwrote it, so every playbook got the same sheet). Verify no two outputs share an H1 title before trusting a batch.

Model role. The synthesis is judgment-heavy WRITING on a SMALL, pre-condensed input (the extract script shrinks the JSONL first — it is NOT a long-context job). Quality lives in the insight sections (goal-vs-steering, steering→guardrails, why-skills-effective), where a weak model produces generic slop. Use @research (the subagent's default) for quality. For bulk backfill where cost dominates, @compact is the budget fallback (mechanical sections stay fine; insight degrades) — pass model on the Agent call to override per run.

Selector cheatsheet

GoalCommand
Latest session in this project (+ worktrees)npx tsx scripts/extract_session.ts latest --cwd "$(pwd)"
Latest, project root only (no worktrees)npx tsx scripts/extract_session.ts latest --cwd "$(pwd)" --no-worktrees
2nd-most-recentnpx tsx scripts/extract_session.ts latest --cwd "$(pwd)" --index 1
A specific session by idnpx tsx scripts/extract_session.ts 019ea8a9
A session in another projectnpx tsx scripts/extract_session.ts latest --cwd /path/to/other
An explicit filenpx tsx scripts/extract_session.ts /abs/path/to/session.jsonl

Notes & pitfalls

  • The extractor walks the active branch only (leaf → root via parentId), so abandoned /tree branches are excluded — you document what actually happened.
  • Tool names are normalized (mcp__pi__web_search → web_search); skill and memory calls are captured with their action/scope/target so "skills created & why effective" is easy to write.
  • The Tokens total includes cache reads, so it can dwarf the in/out numbers — report cost, not raw total, if it looks confusing.
  • No third-party deps; TypeScript on Node built-ins (fs/path/os). Run with npx tsx — no compile/build step. Scripts never write to the session store.
  • If a session is huge, raise --max-cmds only when you actually need more commands; the default keeps the facts sheet token-cheap.

© BlackBeltTechnology, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 3 other files (scripts, references) in packages/authoring-toolkit/.pi/skills/session-to-guideline of BlackBeltTechnology/pi-agent-dashboard.

  • SKILL.md
  • references/guideline-template.md
  • scripts/extract_session.ts
  • scripts/list_sessions.ts

Open the folder on GitHubat commit 7feac4d

Compare with similar skills

Session To Guideline next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Session To Guideline compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Session To Guideline this skillBlackBeltTechnology/pi-agent-dashboard316—~3.2kAutomated safety check: PassMIT
Finishing a Development Branchobra/superpowers297k5 repos~1.9kAutomated safety check: PassMIT
Orca CLIstablyai/orca89k2 repos~593Automated safety check: PassMIT
Migrate Core Code to Submodulestinyhumansai/openhuman42k—~2.6kAutomated safety check: PassGPL-3.0
Finishing A Development Branchfarm-fe/farm5.6k35 repos~1.8kAutomated safety check: PassMIT
Process Inboxtelegramdesktop/tdesktop33k1 repos~5.4kAutomated safety check: PassGPL-3.0

Similar skills

  • Walks the last step of a branch: confirm tests pass, detect the git environment, ask how to integrate, carry out your choice and clean up the worktree.

    297k GitHub starsUsed in 5 repos~1.9k tokens
    DevelopmentAuto-check passed
  • Orca CLI

    stablyai/orca

    Operate Orca-managed worktrees, folder contexts, terminals, repos, automations, artifacts, skill sharing, worktree comments, and Orca's embedded browser…

    89k GitHub starsUsed in 2 repos~593 tokens
    Agent WorkflowsAuto-check passed
  • Migrate Core Code to Submodules

    tinyhumansai/openhuman

    Plans and carries out moving non-host-specific code and its tests from the OpenHuman core into vendored tiny submodule libraries, then releases the submodule and re-pins the host.

    42k GitHub stars~2.6k tokensUpdated today
    DevelopmentAuto-check passed
  • A skill your agent uses when implementation is complete, all tests pass, and you need to decide how to integrate the work - guides completion of development work by presenting structured options for…

    5.6k GitHub starsUsed in 35 repos~1.8k tokens
    DevelopmentAuto-check passed
  • Process Inbox

    telegramdesktop/tdesktop

    Process the local ignored ai-tdesktop inbox into durable, independently testable Telegram Desktop task records while task execution worktrees remain active.

    33k GitHub starsUsed in 1 repo~5.4k tokens
    Productivity & AutomationAuto-check passed
  • Canvas Capture Extension

    remotion-dev/remotion

    Official

    Rebuild, install, and reload the private Remotion Canvas Capture unpacked Chrome extension.

    63k GitHub stars~907 tokensUpdated yesterday
    Media & CreativeAuto-check passed

More from BlackBeltTechnology/pi-agent-dashboard

All 70 skills in this repo
  • Browser

    BlackBeltTechnology/pi-agent-dashboard

    Browser automation via the agent-browser CLI. An agent skill from BlackBeltTechnology/pi-agent-dashboard.

    316 GitHub stars~2k tokensUpdated today
    Auto-check passed
  • CI Troubleshoot

    BlackBeltTechnology/pi-agent-dashboard

    Diagnose failed GitHub Actions runs for pi-agent-dashboard: the 11-file workflow taxonomy, affected-test selection, the release pipeline, known failure modes, and how to read gh run logs and…

    316 GitHub stars~3.5k tokensUpdated today
    Auto-check passed
  • Debug Dashboard

    BlackBeltTechnology/pi-agent-dashboard

    Diagnose problems in the running pi-agent-dashboard system: server.log, /api/health, bridge WebSocket connectivity, vitest triage, known-issue FAQ entries.

    316 GitHub stars~1.6k tokensUpdated today
    Auto-check passed
  • Implement

    BlackBeltTechnology/pi-agent-dashboard

    Disciplined implementation in pi-agent-dashboard: the rebuild matrix (extension→reload, server→restart, client→build+restart, openspec-apply→full rebuild) plus the project's code discipline rules.

    316 GitHub stars~2k tokensUpdated today
    Auto-check passed
  • Pi Dashboard

    BlackBeltTechnology/pi-agent-dashboard

    Monitor and control the pi-dashboard server. An agent skill from BlackBeltTechnology/pi-agent-dashboard.

    316 GitHub stars~2.2k tokensUpdated today
    Auto-check passed
  • Bpmn Package Explorer

    BlackBeltTechnology/pi-agent-dashboard

    Generate, validate and view BPMN 2.0 process packages from a prose description, and render existing .bpmn / .dmn files.

    316 GitHub stars~1.7k tokensUpdated today
    Auto-check passed

Questions about Session To Guideline

What does Session To Guideline do?

Turn a pi session into a Markdown "how-we-did-it" collaboration guideline: reads the session's JSONL transcript and synthesizes a reusable playbook of which prompts worked, what had to be steered…. Session To Guideline is an agent skill from BlackBeltTechnology/pi-agent-dashboard. Turn a pi session into a Markdown "how-we-did-it" collaboration guideline: reads the session's JSONL transcript and synthesizes a reusable playbook of which prompts worked, what had to be steered, and how to reproduce the result faster.

When should I use Session To Guideline?

Session To Guideline fits situations like: : document this session; write up how we did X with the AI; make a guideline from this session; turn this session into a playbook/tutorial.

How do I install Session To Guideline in Claude Code?

Run `npx skills add BlackBeltTechnology/pi-agent-dashboard --skill session-to-guideline -a claude-code`. Or copy the skill folder (packages/authoring-toolkit/.pi/skills/session-to-guideline in BlackBeltTechnology/pi-agent-dashboard) into .claude/skills/session-to-guideline in your project. Claude Code loads it when a task matches its description.

How do I install Session To Guideline in Codex?

Run `npx skills add BlackBeltTechnology/pi-agent-dashboard --skill session-to-guideline -a codex`. Or copy the skill folder (packages/authoring-toolkit/.pi/skills/session-to-guideline in BlackBeltTechnology/pi-agent-dashboard) into .agents/skills/session-to-guideline in your project. Codex loads it when a task matches its description.

Can I use Session To Guideline in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add BlackBeltTechnology/pi-agent-dashboard --skill session-to-guideline -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/session-to-guideline, .gemini/skills/session-to-guideline, .github/skills/session-to-guideline and .opencode/skills/session-to-guideline in your project.

What does Session To Guideline need to run?

Going by SKILL.md and its folder, Session To Guideline needs TypeScript for the scripts in its folder and the command-line tools its instructions call (npx). Our summary lists: Node.js.

Does Session To Guideline access the network?

SKILL.md contains no URLs. Its commands use npx, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Session To Guideline safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Session To Guideline use?

Session To Guideline is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Session To Guideline use?

About 3.2k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 947 tokens, read only when the agent opens those files.

What are the alternatives to Session To Guideline?

Skills that share tags, products or a category with Session To Guideline: Finishing a Development Branch (obra/superpowers, 297k stars), Orca CLI (stablyai/orca, 89k stars), Migrate Core Code to Submodules (tinyhumansai/openhuman, 42k stars) and Finishing A Development Branch (farm-fe/farm, 5.6k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Session To Guideline?

BlackBeltTechnology (a GitHub organization) maintains it in BlackBeltTechnology/pi-agent-dashboard, which has 316 GitHub stars. The repository holds 70 skills in this directory. The repository was last updated on October 11, 2026.

Source: BlackBeltTechnology/pi-agent-dashboard on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.