Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add mitodl/agent-kit --skill witan-workflowgit clone --depth 1 https://github.com/mitodl/agent-kitWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/mitodl/agent-kit/witan-workflow)<a href="https://agentmods.dev/skills/mitodl/agent-kit/witan-workflow"><img src="https://agentmods.dev/badge/skills/mitodl/agent-kit/witan-workflow/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/mitodl/agent-kit/witan-workflow"><img src="https://agentmods.dev/badge/skills/mitodl/agent-kit/witan-workflow.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00089 | $0.01594 |
| Opus 5.5 | $0.00036 | $0.00638 |
| Sonnet 5.5 | $0.00018 | $0.00319 |
| Haiku 4.5 | $0.00009 | $0.00159 |
Grade A, and why
witan-workflow scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 176 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Workflow Session Manager
Interactive entry point for the workflow tracking system. Invoke with /witan-workflow
at the start of a session, or /witan-workflow end before stopping.
Asking the user
Several steps below ask the user to choose or type something. Ask the same way on every agent:
- If a structured question tool is actually available to you (e.g. Claude
Code's
AskUserQuestion, or a question tool a Pi extension registers), use it with the header, question and options given. Where a step also needs free text, use whatever free-text entry that tool offers; if it offers none, ask for the text in a plain message. - Otherwise, ask the same question in a normal message — number the options, say what free-text answer is accepted — and end your turn and wait for the reply. Do not guess an answer or pick a default on the user's behalf.
Never add an option the step does not list just to get a free-text box. Either way, nothing that changes the graph (claiming a task, creating or starting a project or session) happens until the user has answered.
On invocation
Step 1 — Check args.
If the user passed list: call workflow_project_list() with no filters,
print a table of all projects (slug, title, phase, status, repo), and stop.
If the user passed end: go to the End session section below.
If the user passed new: skip to Create new project below.
Otherwise (no args or unrecognized): proceed to Step 2.
Step 2 — List active projects.
Call workflow_project_list() (no args — defaults to active projects in the
current repo). If the MCP call fails, tell the user the witan server
is not connected and stop.
Step 3 — Ask the user what to link to.
Ask one question (see Asking the user):
- Header: "Link session"
- Question: "Which project does this session belong to?"
- If there are 1–3 active projects: offer each as a labelled option
(label = title, description = "slug:
{slug}· phase: {phase}"), plus "Create new project" and (if >0 projects exist) "None / untracked". - If there are 0 active projects: offer "Create new project" and "None / untracked" only.
- If there are 4+ active projects: list them as text, ask the user to type a
slug or "new", then use
workflow_project_get(slug)to confirm the choice.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- yesterday Changed · +1 lines 759b1cf7e0cd
- 15d ago Changed d1ece379fa9a
- 22d ago Changed · +34 lines 4d8eb60c67c2
- 1mo ago First seen · 141 lines · 89 tokens per session scan A cc56f85bc6d7
witan-workflow is a skill published in the GitHub repository mitodl/agent-kit (5 stars, last pushed yesterday), licensed BSD-3-Clause. It adds 89 tokens to every session and 1,594 once invoked, about $0.0004 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
gsd-ns-manage
config workspace | workstreams thread update ship inbox.
feature-prioritisation
Aplica marcos de priorización (RICE, MoSCoW, Kano, ICE, Opportunity Scoring) para clasificar características e items del backlog. Úsalo cuando se te pida priorizar características, clasificar un backlog, decidir qué construir a continuación, o evaluar compensaciones entre ideas competidoras. Produce una lista de…
design-handoff-brief
Transform feature briefs into structured design briefs that give designers the context they need before opening Figma. Use when asked to write a design brief, create a design handoff, brief a designer on a new feature, or translate a PRD into design requirements. Produces a brief with user goal, emotional context…
triage-inbox
Triage academic email and calendar (Gmail / Google Calendar via the session's MCP) into a prioritized digest plus a referee-obligations tracker — classifying referee requests, R&R and editor correspondence, co-author threads, seminar and conference invites, and grant/admin deadlines, and proposing a human-gated action…
cs-escalation-brief
Redacta un informe de escalada estructurado para una cuenta de cliente en riesgo. Úsalo cuando una cuenta haya escalado, cuando un cliente amenace con cancelar, cuando un problema de cliente P1 requiera atención ejecutiva, o cuando prepares un plan de retención interno. Produce un informe de escalada preciso con…
ai-assisted-performance-review
Evaluate performance fairly when output is AI-assisted — what still measures the human, what now measures the tooling, and how to run the review conversation. Use when reviewing someone whose work is heavily AI-assisted, when output volume stopped meaning anything, when calibrating a team with uneven AI adoption, or…