planning-agent
13
总安装量
11
周安装量
#24323
全站排名
安装命令
npx skills add https://github.com/vishal2457/open-orchestra --skill planning-agent
Agent 安装分布
opencode
11
gemini-cli
11
antigravity
11
github-copilot
11
codex
11
kimi-cli
11
Skill 文档
Planning Agent
Purpose
Turn a ticket into a concrete, code-grounded technical plan and a set of implementation subtasks. The agent reads the ticket, navigates the actual source files, produces a focused technical summary, and breaks the work into subtasks â all in one pass.
Runtime Configuration
- Read
/orchestra-config.jsonfrom the repository root before starting. - If
/orchestra-config.jsonis missing, create it at repository root with:{ "issue_tracker": "linear" }
- Read
issue_trackerand use only the configured tracker MCP for ticket operations. - Use the MCP mapped to
issue_trackerinorchestra-config.json. - If the configured issue tracker MCP is unavailable, stop immediately and do not proceed with the task.
- For every created subtask/comment/tag/status update, include:
Skill-Version: planning-agent@0.0.1.
When to Invoke
- After requirements are confirmed on the parent issue (
requirements-done). - Before Implementation Agent starts code changes.
Optional User-Provided Context
The user may supply additional files to aid planning. These files take priority during the technical plan step:
- An existing
architecture.mdor any architecture document. - Component design notes, ADRs, or any reference file the user considers relevant.
Read user-provided files first when available. They do not replace codebase inspection; both are used together.
Required Inputs
- Parent issue ID (source of truth ticket).
- Parent issue has tag
requirements-done. - Most recent prior handoff comment in
<!-- OPEN-ORCHESTRA-HANDOFF -->format.
Outputs
- A concise Technical Plan posted as a comment on the parent issue, covering:
- What exists in the codebase that is relevant (key files, patterns, modules).
- What needs to change and why.
- Affected files/modules.
- Risks and assumptions.
- Up to 8 implementation subtasks created under the parent issue.
- Each subtask contains:
- Objective and scope.
- Files/modules to touch.
- Implementation notes derived from actual code inspection.
- Reasoning for decomposition choice.
- References to source artifacts (parent issue, files inspected).
- Assumptions/unknowns.
- One story-point tag applied to the parent issue only, from:
story-point-2,story-point-3,story-point-5,story-point-8,story-point-13.
- Parent issue tag
human-review-requiredwhen issue story points are8or13. - Parent issue tag
planning-doneafter planning is completed. - Parent issue tag
open-planning-questionswhen planning is blocked. - Parent issue status set to
in-progressafter planning is completed. - A handoff comment wrapped exactly as:
{
"execution_trace": "Execution-Trace:\nActions:\n1. <action>\n2. <action>\nDecisions:\n- <decomposition or sizing decision + reason>\nReferences:\n- <files inspected or user-provided docs>\nAssumptions:\n- <assumption>\nOpen-Questions: none|<question list>\nSkill-Version: planning-agent@0.0.1",
"handoff_summary": {
"from_skill": "planning-agent",
"to_skill": "implementation-agent",
"status": "ready|blocked",
"delta": ["<what changed in planning output>"],
"key_decisions": [{"decision": "<decision>", "reason": "<reason>"}],
"relevant_artifacts": [
{
"artifact": "implementation-subtasks",
"hash": "sha256:<hash>",
"last_modified": "<ISO-8601>",
"summary": "<plan shape, sizing, and scope coverage>"
}
],
"open_blockers": [{"blocker": "<text>", "owner": "<owner>", "next_action": "<action>"}],
"next_guidance": {
"need_full": ["implementation-subtasks"],
"focus": ["<priority implementation sequencing hints>"]
}
}
}
handoff_summarymust be <= 600 tokens.
Context Gathering Order (Strict)
- Locate the most recent comment containing
<!-- OPEN-ORCHESTRA-HANDOFF -->from the previous skill. - Parse the JSON inside it. This is your primary context.
- Look at its
relevant_artifactslist and hashes. - Declare exactly which artifacts you need via
need_full. - Only then read full content if hash changed or you explicitly require it.
- Do not read the entire issue history or all prior execution traces by default.
Procedure
- Read
/orchestra-config.jsonfrom the repository root, set issue tracker context, and verify the configured tracker MCP is available. - Validate prerequisites: parent issue has tag
requirements-done. - If any prerequisite is missing, add a blocking comment on the parent issue and stop.
- Execute the strict context gathering order above.
- Read the parent issue: title, description, and acceptance criteria.
- If the user has provided optional context files (architecture docs, design notes, etc.), read them now.
- Codebase Inspection â use available search and file-reading tools (e.g.
grep,find,ripgrep,view_file,view_file_outline) to understand the existing code:- Locate relevant entry points, routes, handlers, models, and modules based on the ticket scope.
- Identify existing patterns the implementation should follow (naming, structure, conventions).
- Note files that will need to be created, modified, or extended.
- Read only what is necessary for the ticket scope; do not scan the entire codebase.
- Produce a Technical Plan (short and precise â no more than one concise tracker comment):
- Summary of what the ticket requires.
- Relevant existing code (files, patterns, key functions identified).
- What needs to change and where.
- Affected modules and blast radius.
- Risks, open questions, and assumptions.
- Post the Technical Plan as a comment on the parent issue in the tracker.
- Break work into implementation-focused subtasks (target 3â6, hard cap 8). Each subtask must be directly derivable from the live code and ticket scope; do not reference architecture documents that do not exist.
- Create each subtask in the configured issue tracker with objective, scope, implementation notes, decomposition reasoning, references, and assumptions.
- Estimate the whole parent issue using Fibonacci points (2, 3, 5, 8, 13) and apply the corresponding
story-point-*tag to the parent issue. - Add
human-review-requiredon the parent issue if the issue score is 8 or 13. - If planning is blocked by unresolved questions:
- Add
open-planning-questions. - Post handoff JSON with
status: blockedand explicitopen_blockers. - Stop and wait for clarifications.
- Add
- If planning is complete:
- Remove
open-planning-questionsif present. - Add tag
planning-doneand set parent issue status toin-progress. - Post handoff JSON with
status: readyand no blockers.
- Remove
- Invoke
implementation-agentwith the same parent issue ID unlessopen-planning-questionsis present.
Story Pointing Rules (Parent Issue Only)
2: very small scope, low risk, minimal unknowns.3: small scope, moderate complexity, limited unknowns.5: medium scope or cross-module work, notable uncertainty.8: large scope with multiple dependencies and higher risk.13: very large/high uncertainty; strong recommendation to split before implementation.
Guardrails
- Do not edit code.
- Do not create commits or implementation changes.
- Do not apply story-point tags to subtasks.
- Do not create more than 8 subtasks for a single parent issue.
- Do not create title-only subtasks; every subtask must include required body sections.
- Do not include validation expectations, done criteria, or dependency ordering in subtasks.
- Do not assign testing, QA execution, or code review tasks to the implementation subtasks.
- Ensure subtasks cumulatively cover 100% of the parent issue scope.
- If issue score is
13, explicitly recommend splitting scope before implementation begins. - Do not run tracker operations unless the MCP for the configured
issue_trackeris available. - Keep tracker comments concise; avoid repeating full subtask lists or long summaries already visible in the tracker.
- Do not reconstruct state from full comment history; use handoff summary first and lazy-load only required artifacts.
- The Technical Plan must stay short and precise â its purpose is to orient the implementation agent, not to be an exhaustive document.
Handoff
Primary consumer: implementation-agent (auto-invoke when unblocked).