agentleFS
umararshad4umararshad4/honey-stack/skills/plan/SKILL.md

plan

Skill4 starsChanged 15 days agoMITView on GitHub

Use when work spans several files or sessions, the user asks for a plan, spec, PRD or tickets, or after grill settles a project-size design.

We split this skill into the rules it gives an agent

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

  • 0

    Common

    Most of the 162 edited versions we read keep these.

  • 3

    Distinctive

    This author's own choices. Worth a look.

  • 2

    Very specific

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

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Follow the repo's existing plan or spec location if it has one.

    line 22
  2. Distinctive:

    If the work covers independent subsystems, write one plan per subsystem.

    line 26
  3. Distinctive:

    Prefer REDUCTION when requirements are broad and HOLD when the scope is already fixed.

    line 34
  4. Distinctive:

    Add commit steps only when the user asked for commits.

    line 78
  5. Very specific:

    Engineering pass: Read references/eng-review.md and apply its prime directives to every new codepath: named error paths, the nil / empty / …

    line 80

“Common” is measured: kept by at least 6 in 10 of the 162 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

Plan

A plan records the decisions the implementer can't make alone: which files, which names and signatures, the spec's exact values, and the check that proves each task. Leave the code out. A plan longer than the code it describes has written the code; a line that decides nothing ("handle edge cases", "TBD", "add validation") is a gap.

1. Pick the branch

SituationOutput
One or two files, obvious approachNo plan. Say so in one line and hand to the execute skill.
Fits one or two sessionsSession plan: docs/plans/YYYY-MM-DD-<slug>.md
Multi-session build, or the user asks for a spec, PRD or ticketsSpec + tickets (section 4)

Follow the repo's existing plan or spec location if it has one. Explore the code first and keep what the plan needs: file pointers, conventions, test commands, entry points. If a product decision is still open, run the grill skill first.

Consume existing research notes and triage briefs before rediscovering the same facts. Refresh date-sensitive claims and resolve missing acceptance criteria; a label such as ready-for-agent is not proof of a reproduced bug. For queue/retry/concurrency invariants whose ordering is the main risk, offer the optional, explicitly invoked statechart workflow rather than requiring it for ordinary tasks.

If the work covers independent subsystems, write one plan per subsystem; each should produce working, testable software on its own.

Done when: the branch is chosen and every decision the plan needs is either in hand or settled by grill.

2. Challenge the scope

For project-size work, read references/scope-review.md and run it: premise check, what already exists, two or three approaches (one minimal, one ideal), then a scope mode (EXPANSION, SELECTIVE, HOLD, REDUCTION). Every scope addition is the user's opt-in, one decision brief per addition. Once a mode is chosen, commit to it for the rest of the plan.

  • Prefer REDUCTION when requirements are broad and HOLD when the scope is already fixed. Response mode does not change scope.

Done when: the chosen approach and mode are written in the plan header.

3. Write the session plan

Header

# <Feature> plan

**Goal:** <one sentence>
**Approach:** <two or three sentences; the chosen approach and scope mode>
**Design:** <path to the grill doc, or "none">

## Global constraints
<Project-wide requirements, one per line, exact values copied verbatim from the design.>

## Review focus
<Up to five inputs or failure modes the design implies but no test exercises, most likely first. Each gets a test in the task that owns the code.>

## File map
- `path/to/file.ts`: <its one responsibility> (create | modify)

File map first. Lock the decomposition here: one clear responsibility per file, files that change together live together, existing patterns win over new ones.

Right-sized tasks. A task is the smallest unit that carries its own test cycle and that a reviewer could reject while approving its neighbor. Fold setup, config and docs into the task whose deliverable needs them.

### Task N: <deliverable>
**Files:** create `a.ts`; modify `b.ts:40-60`; test `a.test.ts`
**Interfaces:** consumes `parseRow(line: string): Row` (Task 2); produces `importCsv(path: string): Promise<Row[]>`
- [ ] Test `rejects rows with missing id`: `importCsv("fixtures/missing-id.csv")` rejects with `MissingIdError`
- [ ] Implement `importCsv` in `a.ts`, streaming line by line
- [ ] Verify: `npm test -- a.test.ts` → 4 passed

What each step carries, and nothing more:

  • Test step: the test's name and its assertions with the spec's exact values.
  • Code step: the exact signature, its file, the values the spec pins. A body only for an algorithm the signature and test don't determine.
  • Verify step: the command and the output that means it passed. Every task ends with one.
  • Cross-task reference: point at the other task's Interfaces line; don't repeat its code.

Add commit steps only when the user asked for commits. Test-first tasks open with a failing test at a clean seam.

Engineering pass. Read references/eng-review.md and apply its prime directives to every new codepath: named error paths, the nil / empty / upstream-error shadow paths, interaction edge cases, and the failure-modes table. Add the tests it surfaces to the owning tasks.

Self-review, fixed inline:

  1. Coverage: every design requirement maps to a task.
  2. Step scan: every step lets the implementer write exactly one reasonable thing.
  3. Names: signatures and types match across tasks (clearLayers in Task 3 is clearLayers in Task 7).
  4. Proportion: if code blocks are most of the document, replace bodies with signatures and assertions.

Done when: the file is saved, every task has a verify command, and the self-review passes.

4. Spec + tickets

Synthesize from the conversation and the repo; don't re-interview. Read references/spec-and-tickets.md for the templates and publish commands.

  1. Spec: problem, solution, user stories, implementation decisions (modules, interfaces, schema, API contracts; no file paths), testing decisions (the highest seam that reaches the behavior, fewest seams overall), out of scope.
  2. Tickets as tracer bullets. Each ticket is a narrow but complete vertical slice through every layer, demoable on its own, sized for one fresh session. Prefactoring comes first: make the change easy, then make the easy change. Each ticket declares Blocked by. A wide mechanical refactor goes expand, migrate in batches, contract, instead of a slice.
  3. Publish. With a GitHub remote and gh authenticated, create issues in dependency order (blockers first) so each "Blocked by" cites real numbers. Issues are visible to others: show the numbered breakdown (title, blocked by, delivers) and publish on the user's go. Otherwise write one file per ticket to docs/tickets/<slug>/NN-<slug>.md, numbered in dependency order; local files need no go.

The frontier is every ticket whose blockers are done. That's the queue execute drains, one fresh session per ticket.

Done when: the spec exists and every ticket is published with its blocking edges.

5. Hand off

If the user asked for the plan itself, link it and stop. If they already asked for implementation, continue into execute; the plan records the authorized scope. Ask only for an unresolved product decision or a scope expansion. Do not ask again for implementation already authorized.

Download now (ZIP)

  • Other versions181 projects use a version of this.

    Word for word · 0

    None found.

    Edited · 0

    None found.

    Wrote their own version · 181

    1. Yeachan-Heo/oh-my-codex★ 34ksame name
    2. crbnos/carbon★ 2.8ksame name
    3. graphistry/pygraphistry★ 2.6ksame name
    4. zereight/gitlab-mcp★ 2.1ksame name
    5. math-inc/OpenGauss★ 1.3ksame name
    6. fuyuxiang/echo-agent★ 1.1ksame name
    7. kdlbs/kandev★ 1ksame name
    8. suboss87/FDEOps★ 940same name
    9. loongclaw-ai/loongclaw★ 640same name
    10. witnesstodark/mr-mak-workspace★ 609same name

    171 more not listed

    How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.

  • Used alongsideProjects with it also use webhook-subscriptions, heartmula and 10 more.

    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.
    • Tommy-ywSkill

      webhook-subscriptions

      Create and manage webhook subscriptions for event-driven agent activation, or for direct push notifications (zero LLM cost). Use when the user wants external services to trigger agent runs OR push notifications to chats.

      Also in 5 projects that use this

    • math-incSkill

      heartmula

      Set up and run HeartMuLa, the open-source music generation model family (Suno-like). Generates full songs from lyrics + tags with multilingual support.

      Also in 9 projects that use this

    • math-incSkill

      minecraft-modpack-server

      Set up a modded Minecraft server from a CurseForge/Modrinth server pack zip. Covers NeoForge/Forge install, Java version, JVM tuning, firewall, LAN config, backups, and launch scripts.

      Also in 5 projects that use this

    • john-data-chenSkill

      touchdesigner-mcp

      Control a running TouchDesigner instance via twozero MCP — create operators, set parameters, wire connections, execute Python, build real-time visuals. 36 native tools.

      Also in 6 projects that use this

    • ibahgatSkill

      context-optimize

      Improve context efficiency and cache stability for long or complex sessions.

      Also in 3 projects that use this

    • gaebalaiSkill

      codex-system

      PROACTIVELY consult Codex CLI, your highly capable supporter with exceptional reasoning and task completion abilities. Codex is a trusted expert you should ALWAYS consult BEFORE making decisions on: design choices, implementation approaches, debugging strategies, refactoring plans, or any non-trivial problem. When uncertain, consult Codex. Don't hesitate - Codex provides better analysis. Explicit triggers: "think deeper", "analyze", "second opinion", "consult codex".

      Also in 3 projects that use this

    • +4 more from math-inc
  • In this repository39 other files it gives its agents.

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

Reviews can't be read right now.

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.