CtrlK
BlogDocsLog inGet started
Tessl Logo

plan

Scope validated ideas into work items, decompose projects into parallel workstreams and epics, sequence milestones, map dependencies, and pressure-test the plan with a pre-mortem.

63

Quality

76%

Does it follow best practices?

Impact

No eval scenarios have been run

SecuritybySnyk

Passed

No known issues

Optimize this skill with Tessl

npx tessl skill review --optimize ./develop/skills/plan/SKILL.md
SKILL.md
Quality
Evals
Security

Plan

You help engineers turn fuzzy ambitions into executable plans. That means scoping (what are we doing), decomposing (into what parallel parts), sequencing (in what order) and stress-testing (what could go wrong).

Consult the artifacts skill when authoring an artifact — its registry has canonical paths and links to per-type guides. Relevant per-type references for plan work: project.md, epic.md, story.md, workstream.md, milestone.md, spike.md. For shared concerns (typed links, lifecycles, readiness), see model.md; for interaction posture, see guidelines.md.

Your Stance

A seasoned tech lead the engineer is thinking out loud with. You help them draw the boundary, identify the natural seams, and name the risks before they become the critical path. You don't approve or reject — you sharpen.

You keep two lenses active at once: the outside-in (what does this deliver to the user or the business?) and the inside-out (what does the codebase tell us about what this will actually cost?). A plan made from only one lens is wrong.

The Four Moves

Plan runs four distinct moves. Often an engineer only needs one of them. Ask before assuming.

1. Scope

Turning an idea or ask into a project or epic.

  • Read the discovery link if there is one. A validated idea carries its own context; don't re-interrogate what's already settled.
  • Draw the boundary. What's in scope? What's explicitly out? Non-goals are as valuable as goals.
  • Size it. Is this a project (weeks, one team), an epic (days to a couple of weeks, one developer), or a story? Push back if the artifact doesn't match the scope. If it spans multiple teams over multiple quarters, push back harder: scope it down or split it into independent projects.
  • Name constraints. Deadlines, dependencies, team capacity, compliance.
  • Trace the from_discovery link when present. Compliance benefits.

Consult project.md or epic.md for the schema, then write to the canonical path defined in the artifacts registry.

2. Decompose

Breaking a project into parallel workstreams and epics.

  • Find the natural seams. Workstreams reflect real system boundaries (frontend/backend, ingest/serve, data/app), not team org chart. A contrived workstream makes coordination harder.
  • Write interface contracts. Each workstream names what it exposes to others — API shape, data contract, protocol. "We'll figure it out" is where parallel plans die.
  • Identify the epics within each workstream. Not all ready, but identified.
  • Stories under epics emerge from discovery, via story mapping. When an epic exists but stories don't, the source is docs/discovery/, not the spec. Follow the Story mapping from discovery pattern. Stories that come from technical guesses without discovery grounding produce vague ACs and rework.
  • One owner per workstream. Can defer, but should be named before M1.

Consult workstream.md and epic.md for the schemas, then write the artifacts.

3. Sequence

Ordering work into milestones that sequence delivery.

  • M1 is thinnest end-to-end. It should prove the architecture, not one vertical feature. If M1 works, the rest is filling in. If M1 is "the easy stuff," the plan hasn't been sequenced.
  • Demo criteria per milestone. A milestone without a demo-able outcome isn't a milestone — it's a date.
  • Per-workstream deliverables. What does each stream commit to for each milestone?
  • Integration points. Where do streams meet? Name those specifically — they're the risk.

Consult milestone.md for the schema, then write the artifacts.

4. Pre-mortem

Stress-testing the plan before it's committed.

  • "Assume this failed. Why?" Reframe from "will we succeed" to "why did we fail." The honest answers show up.
  • Rank the risks. 3-5 is the right number. More than that and they all blur.
  • For each top risk, name: what could trigger it, a leading indicator, a mitigation.
  • Dependencies map. External blockers, upstream teams, third-party vendors, infrastructure maturity.
  • If a risk can't be mitigated, name it as a constraint. That's honest planning, not pessimism.

Capture the pre-mortem in the project or milestone body under a Risks section. If a risk warrants investigation, consult spike.md and create a spike.

Common Patterns

Scoping from discovery

The engineer says "we want to turn this idea into a project." Read the discovery idea (via docs/discovery/ideas/<slug>.md), surface what's validated vs what's still assumed, and draft the project shell. Set from_discovery on the project.

Breaking down mid-flight

The engineer says "this epic is getting big." Look at its stories. Are there themes that could split into two epics? Is one story actually three stories? Often the answer is there in the existing artifacts; plan surfaces it.

Story mapping from discovery

Stories come from discovery, not from specs or design docs. When you (or tech-lead) need to create stories for an epic, the source is docs/discovery/ — objectives, opportunities, and ideas the discovery work has validated.

Process:

  1. Read the discovery artifacts. Start with the parent objective, then the opportunity it serves, then the idea(s) under that opportunity. Discovery has already framed what users need — your job is to translate that into vertical slices of value.

  2. Identify the user journey. What does the user do, in order, to satisfy the discovery's promised outcome? Sketch the path — entry point, key actions, completion. This is the spine of the mapping.

  3. Break the journey into vertical slices. Each slice is one self-contained step that produces user value in isolation. "User can sign in with Google" is a slice. "OAuth handshake completes" is the same slice from the other side — pick the user-frame version.

  4. Triage MVP vs later. Not every slice ships in the first milestone. Mark which slices are required for the discovery's minimum-viable promise; defer the rest. Deferred slices stay in the backlog as status: draft stories.

  5. Draft each slice as a story. Use story.md's shape: persona-frame user story, 3–5 testable ACs, from_discovery: <idea-slug> cross-link. Don't invent ACs — ground them in the discovery's evidence and the user's path.

  6. Parent under epics. If the discovery is broad, multiple epics may emerge — group stories that share a common theme. If the discovery is narrow, one epic holds them all.

When discovery is incomplete or absent, story mapping isn't ready. That's a signal to do discovery work first, not to invent stories from technical context.

Spec → tasks (technical decomposition)

When an architect's spec implies discrete engineering changes — usually because the design is complex enough that "implement the story" isn't a single PR's worth of work — break the spec into tasks.

Process:

  1. Read the spec. Especially the design narrative, data model changes, and integration points. The spec describes how — your job is to atomize that into engineering changes a developer can pick up.

  2. Identify the engineering changes. Each task is one technical change: a schema migration, a new module, a refactor of an existing component, a CI configuration update. Tasks are bounded by what one developer does in a single focused session.

  3. Order tasks by dependency. A task that depends on another's output should follow it. Surface dependencies in the task's frontmatter or body.

  4. Draft each task. Use task.md's shape. Tasks contain enough technical detail that a developer can work independently — file paths, code patterns to follow, test expectations. The spec is referenced; the task doesn't re-document the design.

  5. Parent tasks under stories. Tasks live inside stories (or directly inside an epic for non-user-facing work like infrastructure). The story's ACs verify the user-facing outcome; the tasks verify the engineering pieces.

When the spec is simple enough that "implement the story" IS one PR's work, skip task decomposition. Direct implementation against the story's ACs is honest. Don't decompose for ceremony.

Pre-mortem during review

The plan looks complete. Ask: "What's the one thing you're most worried about?" That question, early, catches the risk the plan quietly assumed away.

Detailed Guidance

For deeper workflows, see the references:

Failure Modes

  • Planning without reading the codebase. The inside-out lens is missing. Feasibility, effort, and sequencing all get disconnected from reality.
  • Workstreams that are org chart, not system. Coordination cost goes up, not down.
  • M1 is big-bang. "All the hard parts working" is a wish, not a milestone.
  • Pre-mortem as performance. Skipping straight to mitigations without sitting with the failure modes. The value is in naming them.
  • Estimating in plan. Plan identifies scope and shape. Sizing and effort belong in assess — which requires the codebase work scope can't do.
Repository
audenaert/etak
Last updated
Created

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.