Token导航 LogoToken导航TokenDH.com
研究检索external-servicegithub未标认证来源可访问许可证需确认审计未展示

em%3aplanem%3a 计划

Agent Skill

em%3aplan 用于查找、检索和筛选相关信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

318

周安装

13

GitHub Stars

公开资料未说明

下载量

102
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:em%3aplan(em%3a 计划)
来源仓库:https://github.com/cloudvoyant/codevoyant
仓库路径:skills/em%3Aplan
安装命令:
npx skills add https://github.com/cloudvoyant/codevoyant --skill em:plan
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/cloudvoyant/codevoyant --skill em:plan

简介

em%3aplan 用于创建或恢复工程计划,支持本地保存并与 Linear 平台双向同步。

  • 提供价值优先、 ruthlessly descope 的原则指导,确保短期交付最大化。
  • 可选择委托模式生成 PM/UX/dev 占位 Issue 而非完整分解。
  • 安装前建议确认 Linear API 访问权限及项目空间配置状态。
  • 注意:理想计划平衡短期交付与长期架构考量,避免过度承诺。

SKILL.md

Compatibility: If AskUserQuestion is unavailable, present options as a numbered list and wait for the user's reply. If Task is unavailable, run parallel steps sequentially. The context: fork and agent: frontmatter fields are Claude Code-specific — on OpenCode and VS Code Copilot they are ignored and the skill runs inline using the current model.

Critical Principles

  • Value first, descope ruthlessly. — Ship the most value in the shortest time, even at the cost of product requirements. Every descoped item must be surfaced and confirmed, never silently dropped. The ideal plan balances short-term delivery speed with long-term investment in stability and continued engineering velocity.
  • Balance product needs and engineering constraints. — Product requirements define desired outcomes; engineering constraints define what is achievable. When they conflict, negotiate scope explicitly rather than hiding technical debt. Flag any product requirement that carries hidden engineering cost.
  • Outcomes, not deliverables. — The objective must state what changes for users or the business, not what gets built. "Ship the auth refactor" is a deliverable. "Reduce auth-related support tickets by 30%" is an outcome. If you cannot state the outcome, flag it before planning tasks.
  • Capacity is already allocated. — A plan at 100% capacity is a plan that cannot absorb a single interrupt, bug, or scope discovery. Leave 20–30% unplanned. If the user insists on full allocation, flag it explicitly rather than silently accepting it.
  • Every dependency is a schedule bet. — Any task blocked on another team, external API, or unresolved design decision is a risk multiplier, not just a sequencing note. Name the dependency, name who owns it, and name what happens if it slips.
  • Mermaid for all visual structure. — Use Mermaid diagrams for timelines, milestone maps, and dependency graphs. Never use ASCII art for structured diagrams.

Anti-Patterns

  • Objective stated as a feature list: Writing the objective as a list of things to build ("Add SSO, add MFA, add session management") rather than a goal. → Ask: what user problem or business metric does this change? Restate as outcome before proceeding.
  • Tasks generated before design/SA is resolved: Creating implement-phase tasks when Design/SA status is still open. → Design and SA decisions gate implementation scope. If design is deferred, create a design milestone task first; do not generate develop.md tasks that assume a design that hasn't been made.
  • Full-capacity milestone planning: Filling every sprint or milestone to 100% of estimated capacity. → Apply the 70% rule: plan to 70% of capacity, leave 30% for discovered work. Flag to the user if their scope requires >80% utilization.
  • Acceptance criteria that cannot be verified in under 5 minutes: ACs like "the feature works correctly" or "performance is acceptable." → Each AC must name a specific, observable condition a human can check in under 5 minutes without specialized tooling. Rewrite vague ACs before writing to disk.
  • Treating the codebase scan as optional research: Skipping or summarizing Agent R1 when the project description seems self-contained. → Always complete the codebase scan. The most common planning waste is building something that already exists or that conflicts with an existing pattern.

Plan a project or initiative with Linear as tracker. Local-first: all artifacts land in .codevoyant/plans/{slug}/, then push to Linear on confirmation.

Step 0: Parse Args

Extract flags:

BG_MODE  = true if --bg present
SILENT   = true if --silent present
  • Detect Linear URL or issue ID in remaining args -> SOURCE_ID.
  • Derive SLUG from description or SOURCE_ID; check .codevoyant/plans/{slug}/ for collision (append -2, -3, etc.).

Set PLAN_DIR=".codevoyant/plans/{SLUG}".

Step 1: System Audit

Run the following bash commands and store all findings as AUDIT_CONTEXT:

git log --oneline -10
ls .codevoyant/plans/*/plan.md 2>/dev/null || echo "(no existing plans)"
ls docs/architecture/ 2>/dev/null && echo "arch docs present" || echo "no arch docs"

If existing plans are found, surface them:

Found existing plans: {list}
-> This will create a NEW plan ({SLUG}). If you meant to update an existing one, say "update {slug}" instead.

Step 2: Gather Planning Context

AskUserQuestion:

question: "What are we planning?"
header: "Scope"
options:
  - label: "Single project (epic, 1-2 weeks)"
    description: "One bounded deliverable -- becomes a Linear Project"
  - label: "Initiative (multiple projects, possibly multiple teams)"
    description: "Larger goal spanning several epics -- becomes a Linear Initiative"
  - label: "Pull from Linear"
    description: "Fetch an existing Linear project or initiative to plan from"

If "Pull from Linear": ask for the URL or ID, then fetch using the appropriate MCP call based on the input:

  • Issue URL or ID (e.g. ENG-42, contains /issue/): mcp__linear-server__get_issue
  • Project URL (contains /project/): mcp__linear-server__get_project
  • Initiative URL (contains /initiative/): mcp__linear-server__get_initiative

Store the fetched title, description, and status as SOURCE_CONTEXT.

Second question -- team context:

question: "Which team owns this?"
header: "Team"

Fetch teams: mcp__linear-server__list_teams. Present as options. Store as TEAM_ID, TEAM_NAME.

Step 2.5: Fetch Requirements Context (if URL/ID provided)

  • mcp__linear-server__get_issue or mcp__linear-server__get_project
  • Store title, description, labels -> SOURCE_CONTEXT

Step 2.6: Timeline, Scope, and Resources

Before gathering requirements, understand the constraints that will shape what can realistically be planned.

AskUserQuestion:

question: "What constraints does this project have?"
header: "Capacity"
questions:
  - question: "When does work start, and what is the target completion date?"
    header: "Dates"
    freeform: true
    placeholder: "e.g. Start 2026-03-24, target 2026-05-01 — or 'no hard deadline'"
  - question: "How many engineers are available for this work?"
    header: "Team size"
    options:
      - label: "1 engineer"
      - label: "2–3 engineers"
      - label: "4+ engineers"
      - label: "Not yet determined"
  - question: "Are there hard deadlines, external dependencies, or technical restrictions?"
    header: "Constraints"
    freeform: true
    placeholder: "e.g. Must ship before Q2 board review; blocked on X team releasing Y; must use existing auth stack"

Parse the dates answer into START_DATE (ISO) and END_DATE (ISO). If the user gave a range, compute CALENDAR_DAYS. Store all as TIMELINE, TEAM_SIZE, CONSTRAINTS.

Derive AVAILABLE_ENGINEER_DAYS = TEAM_SIZE × CALENDAR_DAYS × 0.7 (70% rule — 30% reserved for interrupts, bug fixes, and scope discovery). Surface this immediately:

📅 Timeline: {START_DATE} → {END_DATE} ({CALENDAR_DAYS} calendar days)
👷 Capacity: {TEAM_SIZE} engineer(s) × {CALENDAR_DAYS} days × 70% = ~{AVAILABLE_ENGINEER_DAYS} engineer-days available

If no dates given, note: "No dates set — timeline will be derived from estimates in Step 5.5."

Step 3: Define Requirements

Gather:

  • Functional requirements (what the system must do)
  • Non-functional requirements (performance, security, scale)
  • Acceptance criteria (how we know it's done)
  • Design/SA status: already decided (describe it) | deferred (note what needs deciding)

AskUserQuestion after user describes the project:

question: "Is design/architecture already decided?"
header: "Design status"
options:
  - label: "Yes -- I'll describe the high-level design"
    description: "No code yet, but architecture is known"
  - label: "Deferred -- needs a design milestone"
    description: "Design work is part of this plan"
  - label: "Simple -- no design needed"
    description: "Straightforward task, no architecture decision"

Step 3.6: Scope Coverage Reconciliation (if source is a roadmap or initiative)

Run this step only when the plan derives from a product roadmap, Linear initiative, or any multi-item source.

Enumerate every item in the source (roadmap features, initiative projects, epic list). For each item, classify it as:

StatusMeaning
INAddressed by this plan
PARTIALPartially addressed — note what's left out
OUTNot addressed — must state why

For every OUT or PARTIAL item, record a reason from this taxonomy:

  • Capacity — would exceed available engineer-days given timeline
  • Dependency — blocked on another team, project, or unresolved design decision (name the blocker)
  • Technical constraint — requires infrastructure, tooling, or a prerequisite that doesn't exist yet
  • Timeline — out of scope for this half/quarter; planned for a later period (name when)
  • Explicitly deferred — agreed with stakeholders to defer; not a blocker for current goals
  • Out of initiative — belongs to a different team or project; not this plan's responsibility

Write a ## Scope Decisions section in plan.md with this table:

## Scope Decisions

| Item | Status | Reason |
|------|--------|--------|
| Feature A | IN | — |
| Feature B | OUT | Capacity — exceeds available engineer-days; deferred to next half |
| Feature C | OUT | Dependency — blocked on Platform team releasing X |
| Feature D | PARTIAL | Timeline milestone 1 only; full rollout in H2 |

This section is mandatory when a source document exists. An em-plan with a product roadmap as input that does not document scope decisions is incomplete.

Step 3.5: Research backfill (if no prior exploration found)

Check for existing research:

  • Look in .codevoyant/explore/ for a dev:explore or pm:explore run relevant to this project (pm:explore artifacts live at .codevoyant/explore/{slug}/summary.md)

If relevant research found: load it as PRIOR_RESEARCH and skip this step.

If no research found: tell the user "No prior exploration found — I'll run lightweight research to ground the architecture before planning."

Ask one round of architecture clarifying questions:

AskUserQuestion:

question: "A few quick questions before I start planning."
header: "Architecture"
questions:
  - question: "Is there an existing architectural pattern in this codebase to follow?"
    header: "Architecture"
    options:
      - label: "Yes — I'll describe it"
      - label: "No — it's greenfield in this area"
      - label: "Unsure — check the codebase"
  - question: "Are there known libraries or tools you want to use or avoid?"
    header: "Tech constraints"
    options:
      - label: "Yes — I'll describe them"
      - label: "No constraints"

Launch 2 Sonnet agents in parallel (run_in_background: false, model: claude-sonnet-4-6):

Agent A — Codebase architecture scan: Scan the repository for patterns, conventions, and existing implementations relevant to "{project description}".

  • Glob and grep for related files, patterns, and abstractions
  • Read the most relevant source files
  • Identify what already exists and what must be built from scratch
  • Write findings to .codevoyant/explore/{slug}/architecture-research.md under a ## Codebase Scan section

Agent B — External architecture patterns: Research how this type of project is typically structured.

  • Run WebSearch("{project type} architecture patterns")
  • Run WebSearch("{project type} implementation best practices {stack}")
  • Fetch 2 relevant URLs (engineering blogs, reference implementations)
  • Append 4–6 findings with citations to .codevoyant/explore/{slug}/architecture-research.md under an ## External Patterns section

Wait for both to complete. Read outputs as PRIOR_RESEARCH.

Executive decision protocol: After research, make decisive architectural calls rather than deferring every decision to the user. The guiding question: *what is the simplest architecture that solves the problem and fits the existing codebase conventions?* Principles:

  • Prefer the architectural pattern already present in the codebase
  • Prefer a well-maintained library over a custom implementation
  • Prefer a smaller surface area — fewer new abstractions is better
  • Flag any decision that is genuinely risky or controversial as [ARCH DECISION — please confirm]

Proceed to Step 4 with PRIOR_RESEARCH set.

Step 4: Parallel Research

Launch two background agents (model: claude-haiku-4-5-20251001, run_in_background: true):

Agent R1 -- Codebase Scan: Glob/Grep for files relevant to this project. Identify affected systems, existing patterns, test coverage. Append findings to .codevoyant/explore/{slug}/architecture-research.md under a ## Codebase Deep Scan section. Each finding must follow the format in skills/shared/references/research-standards.md.

Agent R2 -- Linear Context: Fetch related projects in the same team (mcp__linear-server__list_projects), any matching issues (mcp__linear-server__list_issues with text filter), existing labels. Append findings to .codevoyant/explore/{slug}/architecture-research.md under a ## Linear Context section. Each finding must follow the format in skills/shared/references/research-standards.md.

Wait for both. Synthesize: flag anything that already exists or overlaps with active projects.

Step 4.5: Quality Checkpoint

Before writing plan.md, run a structured self-check against these criteria. Output a Quality Checkpoint block as shown.

Criteria:

  1. Objective framing — Does the objective describe a user/business outcome, not a deliverable list?

- PASS: at least one bullet names a measurable outcome (metric, user behavior change, system property) - WARN: objective is ambiguous but not purely a feature list — note and proceed - BLOCK: objective is entirely a list of deliverables ("build X, add Y, implement Z") with no outcome → ask the user: "What changes for users or the business if this ships successfully?"

  1. Codebase scan completed — Was Agent R1 run and did it produce findings?

- PASS: R1 findings are present and non-empty - BLOCK: R1 was skipped or returned no findings → re-run R1 before proceeding

  1. Dependencies named — Are external dependencies (other teams, external APIs, unresolved design decisions) explicitly named?

- PASS: at least one dependency named with owner, or explicitly confirmed there are none - WARN: dependencies likely exist but were not surfaced — add a note in the plan's Open Questions

  1. Capacity headroom noted — Is there any indication the plan accounts for buffer (not 100% allocated)?

- PASS: user mentioned capacity constraints or the plan scope is clearly partial - WARN: no mention — add a reminder comment in the plan's milestone section

  1. Acceptance criteria measurable — Are the stated ACs specific enough to verify in under 5 minutes?

- PASS: each AC names a specific observable condition - WARN: one or more ACs are vague — flag them with inline comments in plan.md - BLOCK: all ACs are vague or absent → ask the user for at least one concrete, verifiable AC before proceeding

Output format:

## Quality Checkpoint

✅ Objective is outcome-framed (not a deliverable list)
✅ Codebase scan completed with findings
✅ 3 dependencies named with owners
⚠️  WARN: Capacity buffer not mentioned — will note in plan
❌ BLOCK: All ACs are vague — need at least one concrete, verifiable AC
   → Resolve: ask the user for specific acceptance criteria before writing

Quality Brief:
- Building X for Y to achieve Z (outcome confirmed)
- Key dependencies: [list]
- Gap: capacity buffer not mentioned — adding reminder in milestone section
- BLOCK: ACs need user input before proceeding

BLOCK behavior: If one or more BLOCKs are found, do not proceed to Step 5. Present the BLOCK items to the user with specific questions and wait for resolution. After resolution, re-run the checkpoint.

After running the checkpoint, write the Quality Brief (3–5 bullets) and use it as the grounding context for Step 5.

Step 5: Build Milestone Task Plan

Create plan directory:

mkdir -p .codevoyant/plans/{slug}/tasks
mkdir -p .codevoyant/explore/{slug}

Write .codevoyant/plans/{slug}/plan.md using the plan template at references/plan-template.md.

After writing plan.md, scan the Objective bullets. If any bullet's primary verb is a delivery verb (ship / build / implement / deliver / release / complete): Insert an inline comment: <!-- RIGOR: reframe as outcome — what changes for users/team? --> and flag in the scope confirmation summary: "1 objective bullet uses output framing — see plan.md comment."

Generate the three milestone files inline:

  • tasks/design.md -- design, UX, architecture, product research tasks
  • tasks/develop.md -- implementation tasks (only after design is defined/deferred)
  • tasks/deploy.md -- staging + prod deployment, smoke tests, rollback plan

Each task file uses the template at references/task-template.md. Requirements and ACs must be spelled out per task. Design/SA must be specified or explicitly marked deferred.

After generating the task files, proceed to Step 5.5 before writing the Gantt or project-breakdown-proposal.

Step 5.5: Parallel Milestone Estimation

Launch one estimation agent per milestone in parallel (model: claude-haiku-4-5-20251001, run_in_background: true).

Each agent receives its milestone's task file and answers:

For milestone "{milestone name}", given these tasks:
{task list}

Produce a structured estimate:
- Optimistic: X engineer-days (everything goes well)
- Realistic:  Y engineer-days (expected with normal friction)
- Pessimistic: Z engineer-days (if complexity materialises or blockers hit)
- Key risks: up to 3 risks that most threaten this estimate
- Dependencies: tasks that must complete before this milestone can start (from other milestones or external)

Collect all estimates. Compute totals:

  • TOTAL_REALISTIC = sum of realistic estimates across all milestones
  • UTILISATION = TOTAL_REALISTIC / AVAILABLE_ENGINEER_DAYS × 100%

If UTILISATION > 80%: surface over-capacity warning before writing dates. Present to user:

⚠️  Estimates total ~{TOTAL_REALISTIC} engineer-days against ~{AVAILABLE_ENGINEER_DAYS} available ({UTILISATION}% utilisation).
Suggested descopes to reach 70%:
  - {milestone or task} — saves ~N days — reason: {lowest risk/priority}

Ask: "Accept estimates as-is, or descope before locking the plan?"

If UTILISATION ≤ 80%: proceed without prompting.

Use the realistic estimates to assign actual start and end dates to each milestone in the Gantt chart — do not assign arbitrary dates. If START_DATE is set, schedule milestones sequentially from that date (accounting for parallelism where tasks are independent). If no START_DATE, use today as the anchor.

Now write .codevoyant/explore/{slug}/project-breakdown-proposal.md containing:

  • Objective (one paragraph)
  • Milestones — name, start date, end date, realistic estimate, task count, key deliverables
  • Estimation summary — optimistic / realistic / pessimistic totals, utilisation %
  • Risks — top risks from estimation agents that could blow the timeline
  • Out of scope — anything from the Scope Decisions table with OUT status
  • Open questions — unresolved design/architecture decisions

If the plan has inter-milestone dependencies or a timeline, include a Mermaid Gantt in plan.md using the estimated dates (not arbitrary ones). For system architecture plans, also add a flowchart or sequence diagram. For example:

  • Gantt chart for timeline-heavy plans
  • Sequence diagram for plans involving multiple system interactions
  • Flowchart for plans with branching decision logic

Register the plan with agent-kit:

npx @codevoyant/agent-kit plans register \
  --name "{SLUG}" \
  --plugin em \
  --description "{OBJECTIVE first line}" \
  --total "{total task count from all milestone files}"

Report: ✓ Plan registered: {SLUG}

Step 6: Scope Confirmation Loop

Show plan summary.

Capacity check:

Calculate total task count across all milestone files. Compare against available capacity (from Step 2.6):

  • Available capacity = TEAM_SIZE × TIMELINE_DAYS × 0.7 (70% rule)
  • If total tasks exceed available capacity: surface which tasks to descope, with rationale

Present to user:

📊 Capacity: {N} tasks planned, ~{X} engineer-days available (70% of {Y})
{if over capacity:}
⚠️ Over capacity by ~{Z} tasks. Suggested descopes:
  - {task} → reason: lowest priority / deferred by {rationale}

AskUserQuestion:

question: "Does this plan cover everything?"
header: "Plan Review"
options:
  - label: "Looks good — done"
    description: "Save the plan to .codevoyant/plans/{slug}/ and register with agent-kit"
  - label: "Adjust scope"
    description: "Change what's in the plan before saving"

Loop on adjustments until "Looks good — done".

Step 7: Notification

If BG_MODE:

npx @codevoyant/agent-kit notify --title "em:plan complete" --message "Plan '{slug}' saved to .codevoyant/plans/{slug}/. Run /em:approve to promote."

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

33.06%
按下载量换算34

Claude

33.15%
按下载量换算34

Cursor

17.28%
按下载量换算18

Gemini CLI

9.53%
按下载量换算10

安全审计

暂无安全审计结果可展示。

权限和风险

external-service

该 Skill 可能调用第三方服务、云服务或外部模型 API,使用前需要确认账号、额度、数据发送范围和服务条款。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills