Skip to content
Back to skills

Plan Em

ASecurity

Engineering Manager skill. Reads an approved PRD, runs pre-flight checks against AHA.md, GLOSSARY.md and ARCHITECTURE.md, auto-runs plan-review certification inline (no ask), picks the specialist agents (it asks to approve the roster only when the roster is unusual for the project), spins them up to write engineering sections directly into the PRD, then prints a short digest. Never builds automatically: every run stops after the plan half and asks "Start the build now?"; No ends the run and a...

  • 6 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 19, 2026
ai-agentsbashdebugging

Security analysis

A100/100

Pro scans all 5 files and shows the line behind each finding

Scanned October 19, 2026

npx -y skills add ndisisnd/msg --skill plan-em --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Plan Em?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Plan Em
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/ndisisnd-plan-em/badge)](https://www.skillsdirectory.com/skills/ndisisnd-plan-em)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: plan-em
description: >
  Engineering Manager skill. Reads an approved PRD, runs pre-flight checks against
  AHA.md, GLOSSARY.md and ARCHITECTURE.md, auto-runs plan-review certification inline
  (no ask), picks the specialist agents (it asks to approve the roster only when the
  roster is unusual for the project), spins them up to write engineering sections
  directly into the PRD, then prints a short digest. Never builds automatically: every
  run stops after the plan half and asks "Start the build now?"; No ends the run and a
  later /plan-em resumes at the build half. The PRD's intake grade picks the check before
  the build: a mechanical plan-shape check on a medium PRD, the eng certification on a
  large one. An Opus orchestrator engineer decomposes each half into file-disjoint,
  model-tiered packets fanned out to leaf eng subagents. Refuses without a referenced
  PRD .md path.
argument-hint: "<prd-path> [--review [on|off]]"
allowed_tools:
  - Agent
  - AskUserQuestion
  - Bash
  - Edit
  - Read
  - Skill
  - Write
---

# plan-em

**This file is a router.** The five-step protocol lives in `refs/protocol-em.md` and the team-lane fan-out in `refs/protocol-team.md` — neither is restated here.

## Usage

**Invoke**: `/plan-em <prd-path>`. The PRD path is a `.md` file inside a PRD folder in any lane — `features/{planned,wip,done}/prd-[n]-[slug]/` or the legacy flat `features/prd-[n]-[slug]/`.

- Slash command: `/plan-em` · natural language: "engineering plan for <PRD>", "scope this PRD", "spin up eng agents" · context: a path to an existing approved PRD `.md` file, typically passed forward from `plan-pm` or `plan-review`
- Progress messages are always on, every 5 minutes (`../shared/refs/status-heartbeat.md`)
- `/plan-em <prd-path> --review` — run the plan-review eng check at the end of the plan half, this run only. `--review on` / `--review off` (or "always review the plan") — save it for the project:

  ```bash
  .claude/scripts/script-policy-set.py --file devkit/policy.json --set policies.plan_em.review=<true|false>
  ```

  No `devkit/policy.json` (a project set up before the file existed) → say `/msg --update` adds it, and use the value for this run only. Absent = off: the closing message suggests `/plan-review` instead. The certification gate still runs plan-review on an uncertified PRD either way.

**Hard refusals:**
- Invocation without a PRD path: refuse. State that `plan-em` requires an existing PRD. Offer two paths: run `/plan-pm` to create one, or supply a path to an existing PRD `.md` file.
- PRD path does not exist or does not match a lane-lifecycle path — `features/{planned,wip,done}/prd-*/prd-*.md` (top-level) or `features/{planned,wip,done}/prd-*/prd-*/prd-*.md` (nested sub-PRD, per `plan-pm`'s § Sub-PRD mode) — or the legacy flat `features/prd-*/prd-*.md` / `features/prd-*/prd-*/prd-*.md`: refuse. State the expected location.

## Execution mode

plan-em always runs the team lane and never names the lane to the user. At Step 4 it
spawns one **orchestrator engineer agent on Opus** per half, backgrounded and watched, which
decomposes the half into file-disjoint, model-tiered packets for leaf `eng` subagents
(`refs/protocol-team.md`). A hidden `--solo` flag (maintainers and debugging) runs one
leaf per roster stack for that run only; it is never saved (`refs/protocol-em.md` Step 0).

## Run shape and size tier

plan-em never builds automatically. Every run plans, prints a short summary, and asks
**"Start the build now?"**. Yes → the build half runs in the same run. No → the run ends;
a later `/plan-em` on the same PRD resumes at the build half. A run that dies resumes the
same way.

The **size tier**, resolved once from the intake complexity grade (`refs/protocol-em.md`
Step 1e — no flag, no question), picks the check before the build half. Both sizes run
the product certification before planning. `C:` **< 8** or unresolvable ⇒ **medium**: a
mechanical plan-shape check. `C:` **≥ 8** ⇒ **large**: the plan-review eng certification.

## Inputs

| Name | Format | Source |
|------|--------|--------|
| PRD file path | `.md` file path matching `features/{planned,wip,done}/prd-*/prd-*.md` (or legacy flat `features/prd-*/prd-*.md`) | User message at invocation, or handoff from `plan-pm` / `plan-review` |
| Clarification answers | `AskUserQuestion` selections | Human during ambiguity resolution and an unusual-roster approval |

## Outputs

| Name | Format | Destination |
|------|--------|-------------|
| Pre-flight report | Markdown findings file — **written only when the scan found something**; a clean run emits one inline line and no file | `features/prd-[n]-[slug]/preflight.md` |
| Engineering sections | Structured markdown per agent | Appended to the PRD file |
| Run digest | Built · Branch · Review · Findings lines, Critical findings listed below | Emitted inline above the closing message |
| Stage timing log | Append-only TSV, one line per stage boundary | `features/prd-[n]-[slug]/reports/timings-<date>.log` |

**No separate engineering plan files — all output lives in the PRD.** The pre-flight
report is the one exception, and it sits inside the PRD's own folder. `[n]` is the first
numeric segment of the input PRD's parent directory name; `[slug]` is the remainder.
Resolve the actual matched directory once at Step 1 and write every artifact relative to
it — do not reconstruct a bare `features/prd-[n]/` path.

## Step-by-step protocol

Follow `refs/protocol-em.md` end-to-end — it owns the steps, their order, their scripts, and their outputs. Step 4 hands each half to the orchestrator whose protocol is `refs/protocol-team.md`.

**Closing message (every outcome):** end with the closing message per `../shared/refs/closing-message.md` — the last chat output, after Step 5's digest. Take the next step from the registry's `plan-em` row; never compose it, never invoke it.

**Harness incidents (both lanes):** log unexpected script failures, tool errors, retries, and missed writes to `devkit/DOCTOR.md` per `../shared/refs/doctor-logging.md` — logging never changes what the run does next.

## References

- `refs/protocol-em.md` — end-to-end execution protocol (Step 0 mode resolve + five steps); followed from § Step-by-step protocol
- `refs/protocol-team.md` — the Opus orchestrator engineer's protocol, spawned at Step 4 · `refs/template-exec-table.md` — execution-table shape + concern checklist (Step 3)
- `../shared/refs/` — `closing-message.md` · `doctor-logging.md` · `status-heartbeat.md`
- `.claude/skills/eng/SKILL.md` — eng agent entry point; Step 4 subagents read this and run `--plan` or `--build` mode · `.claude/skills/eng/refs/plan/template-todo.md` — the todo ticket schema consumed by build agents

Files in this skill

  • SKILL.md6.6 KB
  • refs/internals.md6.5 KB
  • refs/protocol-em.md35 KB
  • refs/protocol-team.md21.6 KB
  • refs/template-exec-table.md5.9 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.