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 YSAA1/harness-workflow --skill plangit clone --depth 1 https://github.com/YSAA1/harness-workflowWrote 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/ysaa1/harness-workflow/plan)<a href="https://agentmods.dev/skills/ysaa1/harness-workflow/plan"><img src="https://agentmods.dev/badge/skills/ysaa1/harness-workflow/plan/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/ysaa1/harness-workflow/plan"><img src="https://agentmods.dev/badge/skills/ysaa1/harness-workflow/plan.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.00078 | $0.01370 |
| Opus 5.5 | $0.00031 | $0.00548 |
| Sonnet 5.5 | $0.00016 | $0.00274 |
| Haiku 4.5 | $0.00008 | $0.00137 |
Grade A, and why
plan 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 15d ago.
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 — 38 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Executable Plan
The plan states what to do, in what order, and how the result is accepted. It reuses the user request, the approved Spec, issues, and existing project records; it does not require creating another set of requirement materials.
Process
- Determine the goal, scope, acceptance, and dependencies from existing evidence. Ask only about unresolved trade-offs that affect the outcome; decide routine implementation choices yourself and state any necessary assumptions.
- Prefer updating the project's existing planning surface; when there is no convention and a persistent plan is genuinely needed, use
docs/plans/YYYY-MM-DD--<topic>-plan.md. Short tasks may use a conversational plan; when the change can be described in one sentence and has no cross-file dependencies, do not persist a plan file to disk. - Write the goal, scope, executable work items, verification approach, and important dependencies or risks. For multi-stage tasks, write the final overall acceptance criterion (
final_integration_claim); passing each step does not substitute for overall success. - Markdown work items use checkboxes; issues or an existing tracker keep their native status. Mark the current item per track. In multi-item plans write dependencies as edges: each item carries
depends: #N(or "none"), making the plan a task graph: an item whose prerequisites are all done can start, andship's parallel mode dispatches from it. Slicing rules:- Vertical slices: each item cuts through every layer it needs, is verifiable on its own, and fits in one fresh context window; any needed prefactoring goes first (make the change easy, then make the easy change).
- Repo-wide mechanical changes (a rename, a retyped shared symbol that breaks many call sites at once) are not forced into vertical slices; sequence them as expand–contract: add the new form without breaking the old → migrate call sites in batches sized by blast radius (one item per batch, each depending on the expand) → delete the old form (depending on every migrate batch).
- Shared files: when two items would edit the same shared file (a config registry, a message catalogue, a shared type), add an edge so they run in sequence, or fix the exact names each adds in the plan up front.
- Recovery surface: the project already has a recovery surface (
.harness/, a tracker, etc.) → sync this track's entry as needed (whenbrainstormhas already registered this track, keep using that row instead of creating a new one; repoint the primary artifact to this plan file; the approved Spec stays reachable via its outgoing link instate.md), replace the old plan's status only when the same track explicitly switches plans, and do not close other tracks. The project has no recovery surface and this task genuinely needs cross-session recovery → establish a minimal recovery surface and attach a one-line pointer in the project'sAGENTS.md(read order: lessons (if any) → work_index active row → state); the pointer line also carries the minimal write-side discipline: a one-sentence flip-the-row-(out-of-active)-means-retirement rule (when the row is flipped out of active, complete within the same commit: flip the row → lessons inheritance → delete this track's plan/Spec documents, including unapproved and abandoned ones (delete only those whose sole inbound reference is from this track; with multiple inbound edges, flip the pointer instead of deleting) → state sync) + a pointer to the liveness criterion (a document is alive ⟺ it is referenced by a recovery-surface status file or a persistent entry):.harness/work_index.md: header ID/title/Status/Primary artifact/Last verified + this task's active row (primary artifact points to this plan file); maintenance rules: do not delete historical rows, update the old entry when the same track switches plans, flipping the row out of active means retirement..harness/state.md: the six fields Objective / Status / Primary artifact / Evidence / Next / Limits. Short tasks still use a conversational plan, zero files; reusing the project's existing tracker takes precedence, and.harness/is not forced. For genuinely parallel multi-session work use git worktrees (one branch each); the recovery surface is not co-written across worktrees, and at merge time the owning track reconciles. When multiple tracks are active at once: the state snapshot represents the track advanced most recently (switching tracks rewrites the Objective header), and an older track's progress is governed by its work_index row + primary artifact.
- When the user only asked for a plan, deliver it and stop. When implementation is already authorized, keep executing the steps that can advance; writing a plan is not a new approval gate.
What ships with it
1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
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.
- 15d ago Changed · +3 lines 1b4a296d0c7a
- 1mo ago Changed · +1 lines · +7 tokens per session 0af982b3048d
- 1mo ago Changed 0c5cd4233ce6
- 1mo ago Changed · +3 lines · +22 tokens per session 57d71aa12fbf
- 1mo ago Changed · -117 lines · -19 tokens per session 918c774a81ac
- 1mo ago First seen · 148 lines · 68 tokens per session scan A d29f51b8ca4f
plan is a skill published in the GitHub repository YSAA1/harness-workflow (3 stars, last pushed 16d ago), licensed MIT. It adds 78 tokens to every session and 1,370 once invoked, about $0.0003 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
better-harness
Use when /better-harness reviews the outer coding-agent Harness for lifecycle controls, repeated work, project feedback, agent assets, session outcomes, repair planning, durable reports, finding-bound fixes, or manual direct fixes. Invoke only via slash command.
diagnose-backend-bug
Diagnose a bounded backend or multi-service failure from GitHub Issues, Jira, Aone, user-provided exports, logs, traces, responses, stack traces, or job records. Use when a service, API, RPC, worker, queue, CLI, or scheduled job bug needs correlation through the project's existing observability route before repair; do…
reproduce-frontend-bug
Build a bounded, replayable browser or UI bug reproduction from GitHub Issues, Jira, Aone, user-provided exports, screenshots, videos, comments, or attachments. Use for browser, WebView, IDE or desktop UI, interaction, responsive, rendering, accessibility, or visual defects that need evidence-preserving reproduction…
intent-correlation-analysis
Analyze a bounded IntentCorrelationPacketV1 and propose reviewable links among user inputs, execution slices, change units, commits, artifacts, and validation outcomes. Use when reconstructing why an observed coding-agent change exists or when Studio needs evidence-backed Intent correlation. Do not use for raw…
generate-harness-dsl
Generate, revise, or review complete Harness as Code .harness files when a coding-agent workflow, agent role, skill, tool contract, MCP connection, runtime, or deployment must be compiler-valid and resolvable with @qoder-ai/harness.
memory-recap
Create evidence-linked work profiles, diagnose Coding Agent collaboration friction, and recommend concrete improvements from native memories or frozen exports. Use for memory recaps and agent-usage retrospectives, not memory maintenance or session-performance measurement.