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 agentmods add skills/luohy15/y-agent/plannpx skills add luohy15/y-agent --skill plangit clone --depth 1 https://github.com/luohy15/y-agentWrote 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/luohy15/y-agent/plan)<a href="https://agentmods.dev/skills/luohy15/y-agent/plan"><img src="https://agentmods.dev/badge/skills/luohy15/y-agent/plan.svg" alt="Measured on agentmods" 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 | $0.00042 | $0.01736 |
| Opus 5 | $0.00021 | $0.00868 |
| Sonnet 5 | $0.00008 | $0.00347 |
| Haiku 4.5 | $0.00004 | $0.00174 |
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 2d 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 — 119 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Plan Skill
Leaf skill for the planning phase of dev work. Reads code, scopes the requirements, and produces a plan note. Does not open worktrees, change code, or commit.
Loaded via y chat --skill plan, usually dispatched by the dev coordinator, but it can also be
invoked directly for a standalone audit.
Working mode
Runs in the project main directory (no worktree needed, since it is read-only). The caller
passes --work-dir <project_path>.
Workflow
y todo get <todo_id>: read the todo desc plus linked notes.y todo activate <todo_id>: mark in progress (skip if already active).- Read code, understand the requirements, identify sub-tasks.
- Write the plan to
$Y_AGENT_HOME/pages/plan-<todo_id>-<slug>.md(mandatory, absolute path:--work-diris the project dir, but the plan file must land in the top-levelpages/, not<work-dir>/pages/). Include:- Requirements recap
- Design decisions
- Assumptions: everything the plan takes for granted (input shape, library behavior, deploy target). If an assumption is load-bearing and unverified, flag it for the caller rather than picking silently.
- Sub-task breakdown. Every sub-task gets a concrete verify step: the smallest check
that proves it is done (a command, a test, an observable behavior). No "make it work"
success criteria.
## Sub-tasks - [ ] Sub-task 1: brief description — verify: <command / test / observation> - [ ] Sub-task 2: brief description — verify: <command / test / observation> - Length budget and keep/drop rule: target 100 to 200 lines for the whole note; 250 lines is a hard cap. Within that, keep only (a) a 1 to 3 sentence scope recap, (b) binding decisions and load-bearing assumptions, (c) the current sub-task breakdown with one concise verify step each, and (d) a concise out-of-scope / follow-up list. Requirements recap, decisions, assumptions, and out-of-scope are each normally 10 bullets or fewer; each sub-task is normally one bullet plus its verify line. If genuinely independent workstreams cannot fit under 250 lines, split them into separately linked plan notes rather than making one note encyclopedic.
- Drop aggressively: do not restate todo background; do not inventory every file or completed deliverable; do not preserve superseded options, audit chronology, status diaries, or completed-task narratives; do not paste code, config, or log excerpts; no reference-implementation tours; no surveying options after a decision is binding; no repeating rationale across sections; no speculative edge cases, defensive caveats, operational telemetry, capacity arithmetic, or rollback detail unless it changes an implementation task or is required for a hard-to-reverse step. Prefer a pointer to the durable source over copied detail. A plan is a forward-looking execution index, not a design archive, runbook, or incident record.
- On every update, prune before adding: remove completed and superseded material, collapse settled rationale to the binding decision, and keep only current work. The budget applies to the resulting whole note, not merely the newly added section. If an existing note exceeds 250 lines, condense it as part of the planning task before the callback.
- Link the plan to the todo:
y assoc note pages/plan-<todo_id>-<slug>.md --todo <todo_id>(this CLI takes the path relative to$Y_AGENT_HOME). - Trim the todo desc: keep 1 to 3 sentences of the core requirement; do not dump plan content into desc. If the existing desc is bloated, slim it down now.
- Call back to the caller, then stop. No closing summary of the plan in this chat
(AGENTS.md "Callback rules"): the note is the deliverable and the caller reports it to the
user.
Unresolved choices and blockers get one clause each in the callback ("2 open questions in the note"), not a restatement. Their full text lives in the note.y chat --chat-id <from_chat> -m "plan done, plan at $Y_AGENT_HOME/pages/plan-<todo_id>-<slug>.md" \ ${Y_TOPIC:+--from-topic $Y_TOPIC} --trace-id <todo_id>
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.
- 2d ago First seen · 119 lines · 42 tokens per session scan A 703420d5ebd4
plan is a skill published in the GitHub repository luohy15/y-agent (219 stars, last pushed 3d ago), licensed MIT. It adds 42 tokens to every session and 1,736 once invoked, about $0.0002 per session on Opus 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
systematic-debugging
Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes.
brainstorming
You MUST use this before any creative work - creating features, building components, adding functionality, or modifying behavior. Explores user intent, requirements and design before implementation.
auto-perf-optimize
Run agent-driven VS Code performance or memory investigations. Use when asked to launch Code OSS, automate a VS Code scenario, run the Chat memory smoke runner, capture renderer heap snapshots, take workflow screenshots, compare run summaries, or drive a repeatable scenario before heap-snapshot analysis.
chat-perf
Run chat perf benchmarks and memory leak checks against the local dev build or any published VS Code version. Use when investigating chat rendering regressions, validating perf-sensitive changes to chat UI, or checking for memory leaks in the chat response pipeline.
chat-pet-sprite-creation
Use when creating or changing VS Code chat pet sprite art, sprite sheets, state animations, eye treatments, Stable/Insiders variants, or pet transitions under src/vs/workbench/contrib/chat/browser/widget/media/chatPet.
cpu-profile-analysis
Analyze V8/Chrome CPU profiles (.cpuprofile) and DevTools trace files (Trace-.json). Use when: profiling performance, investigating slow functions, comparing code paths, finding bottlenecks, analyzing timeToRequest, understanding call trees from sampling profiler data, analyzing layout/paint/rendering, investigating…