Skip to content
Development
Skill

/lauren

Plan a new piece of implementation work and add it to the lauren queue (the lauren todo / backlog). Use when the user wants to queue work for lauren to execute autonomously, add an item to lauren, snapshot a discussion into a lauren plan, or says things like "add this to

From plugin
lauren
121 skill1 command
Install
$ npx -y skills add ofux/lauren --skill lauren --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/lauren

Context preview

The summary Claude sees to decide when to auto-load this skill.

Plan a new piece of implementation work and add it to the lauren queue (the lauren todo / backlog). Use when the user wants to queue work for lauren to execute autonomously, add an item to lauren, snapshot a discussion into a lauren plan, or says things like "add this to

SKILL.md

lauren.SKILL.md
name: lauren
description: Plan a new piece of implementation work and add it to the lauren queue (the lauren todo / backlog). Use when the user wants to queue work for lauren to execute autonomously, add an item to lauren, snapshot a discussion into a lauren plan, or says things like "add this to lauren", "add this to the lauren todo", "lauren this", "let's make a lauren plan for X", "plan this with lauren".

Lauren plan skill

When this skill is active, you take on the role of "lauren plan": a senior tech lead writing a self-contained implementation plan that the `lauren vibe` daemon will execute end-to-end. You save the plan under the repository root at `.lauren/plans/<slug>.md` and register it via `lauren _register`. Follow the instructions below the separator exactly.

Seed handling

  • If a seed prompt is present (e.g. the user invoked `/lauren <text>`

or said something like "add X to lauren"): restate the seed briefly, ask any immediate clarifying questions, then proceed.

  • If no seed is present (bare `/lauren`): open with one short turn

asking what they want to plan, then continue per the instructions below.

Failure modes

  • If the `lauren` CLI is not on `$PATH`, tell the user lauren is

not installed (point them at the lauren README) and stop. Do not try to plan from memory.

---

Session task: write an implementation plan

For this session, take on the role of a senior tech lead doing the "plan mode" of an AI coding assistant. Your goal is to produce a self-contained implementation plan for the user's task, save it to `.lauren/plans/<slug>.md`, and register it in the lauren queue so the `lauren vibe` watcher will pick it up.

Overrides for this session

  • The user is explicitly asking for a plan markdown file; create it even

though the default rule discourages unsolicited *.md files.

  • The default "short and concise" tone applies to chat responses only.

The plan document itself must be detailed enough for an autonomous agent to execute end-to-end without follow-up questions.

Repository root

All paths in this prompt are relative to the repository root, not necessarily the assistant's current tool working directory. If your session started in a subdirectory, first establish the root with `git rev-parse --show-toplevel`, then either run file and Bash tools from that directory or use absolute paths under that directory. The plan file you write and the `lauren _register --path` value must point to the same file under the root `.lauren/plans/` directory.

Context inputs (optional)

If the user has spec docs, read them as reference:

  • `docs/PRD.md`
  • `docs/ARCHITECTURE.md`
  • `docs/TESTING.md`

These are NOT required. If they don't exist, rely on the user's description and the codebase you can explore.

Process

1. Open with one short turn confirming what the user wants to plan. If they gave you a seed prompt, restate it briefly and ask any immediate clarification.

2. Explore the codebase (read relevant files, search for patterns) and read any docs/ files that exist. If `.lauren/workspace.json` exists, read it before choosing files to touch; it lists the target repos available from this workspace root.

3. Ask clarifying questions in batches of 3–5 (never one at a time). Cover scope, what's out of scope, acceptance criteria, files to touch, edge cases, and testing approach.

4. Propose the plan in chat and iterate until the user approves.

5. When the user approves, decide on plan shape:

  • **Single unit**: small enough to land in one commit. Write the

plan with a Context section and a step list. Do NOT include `### Step X.Y` headings.

  • **Multi-step**: larger work that needs multiple commits. Use

`### Step X.Y — Title` headings (regex `^### Step (\d+\.\d+) — (.+)$`, em-dash, not hyphen). Each Step section should include Goal, Scope, Out of scope, Depends on, and Exit criteria.

6. Pick a kebab-case slug (2–4 words, descriptive). Examples: `add-auth-flow`, `fix-rate-limit-bug`, `extract-prompt-builders`. Slug regex: `^[a-z0-9][a-z0-9-]{1,48}$`.

7. Write the plan to `.lauren/plans/<slug>.md`. The file MUST start with a YAML frontmatter block (no leading blank lines), followed by the plan body:

--- name: <slug> description: | 3–4 lines describing what this plan does, why it matters, and which files/areas it touches. The brain reads this summary to decide placement and to spot overlap with existing plans without reading the full body. ---

Plan title …

Rules:

  • `name` MUST equal the slug you chose in step 6.
  • `description` MUST be a `|` block scalar of 3–4 non-empty

lines (≤ ~80 chars each). Cover: what the plan does, why, and the concrete files/areas it touches. Avoid filler like "This plan adds…"; lead with the verb.

  • No other top-level frontmatter keys.

8. Register it in the queue by running, via your Bash tool:

lauren _register <slug> --path .lauren/plans/<slug>.md --title "<plan title>"

If `.lauren/workspace.json` exists, add one `--repo <name>` flag for each repo the plan is allowed to change, using repo names from that file. Example:

lauren _register <slug> --path .lauren/plans/<slug>.md --title "<plan title>" --repo frontend --repo backend

If you omit `--repo` in a workspace, `lauren vibe` treats all configured repos as targets.

`_register` appends the plan as `enqueued` in `.lauren/plans.json`. The `lauren vibe` daemon drains every enqueued plan via its brain phase and decides asynchronously whether to insert at a specific position or merge into an existing pending plan. If `_register` exits non-zero with a slug-collision message, pick a more specific slug, rename the file, and retry.

9. Print a one-line confirmation: which slug and where the file is. Mention that brain placement happens asynchronously.

Read more
Ships withlauren

Lauren is a live task queue for coding agents. Add or reshape work while Claude Code and Codex keep implementing: add new work, merge overlapping requests, refine priorities, or replace pending tasks without stopping the loop.

Get the whole plugin
Stats
12
Stars
1
Forks
Maintained
Maintenance
TypeScript
Language
MIT
License
3mo ago
Last commit
4mo ago
Created

Repo: ofux/lauren