ワンクリックで
camel-plan
Break a design spec into implementation tasks with wave analysis.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Break a design spec into implementation tasks with wave analysis.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Design and plan Camel integrations through collaborative dialogue.
Internal reference skill — loaded by camel-brainstorm during flow design. Contains guides for component selection, EIP catalog, data formats, integration patterns, and design spec assembly. NOT user-invocable.
Execute an approved implementation plan with two-stage review.
Internal reference skill — loaded by camel-execute during implementation tasks. Contains guides for YAML generation, component loading, properties, Docker Compose, DataMapper, and route validation. NOT user-invocable.
Migrate an existing integration from another product to Apache Camel
Internal reference skill — loaded by camel-execute during test generation tasks. Contains guides for route analysis, test generation, test configuration, and test execution with Citrus + Testcontainers. NOT user-invocable.
| name | camel-plan |
| description | Break a design spec into implementation tasks with wave analysis. |
| user_invocable | false |
Write comprehensive implementation plans assuming the engineer has zero context and questionable taste. Document everything they need to know: which files to touch for each task, which guides to load, which MCP tools to call, how to verify. Give them the whole plan as bite-sized tasks. DRY. YAGNI.
Announce at start: "I'm using the camel-plan skill to create the implementation plan."
Core principle: The plan contains detailed instructions on HOW to generate code, NOT the generated code itself.
/camel-brainstorm first (Iron Law 3)/camel-execute for implementationViolating the letter of these rules is violating the spirit of these rules.
Do NOT generate any implementation artifacts (YAML, properties, POM, Docker Compose). The plan describes what to generate and how — the execution phase does the actual generation.This skill supports two invocation modes (see shared/pipeline-infrastructure.md for details):
Auto-invoked by camel-brainstorm after design spec approval. The design spec content is available in conversation context. After planning, auto-invokes camel-execute.
Invoked directly (e.g., /camel-plan or /camel-plan <PIPELINE_ID>) in a new session. No conversation context — reads the design spec from docs/camel-kit/<PIPELINE_ID>/design-spec.md.
Detection at start:
design-spec.md exists in the pipeline directory → standalone modedesign-spec.md does not exist → error: "No design spec found. Run /camel-brainstorm first."Standalone behavior:
design-spec.md from disk as the input{COMMAND_PREFIX} doc check <file> to detect staleness — if stale, warn but proceed (the regenerated plan will be fresh)implementation-plan.md to the pipeline directorycamel-execute (standalone mode suppresses auto-transitions)digraph plan {
rankdir=TB;
start [label="Approved design spec\nreceived", shape=doublecircle];
scope [label="Scope check:\nsingle spec or\ndecompose?", shape=diamond];
decompose [label="Suggest breaking into\nsub-project plans", shape=box];
load_template [label="Load task template:\ngreenfield / migration / testing", shape=box];
decompose_tasks [label="Load task-decomposition.md\nBreak into bite-sized tasks", shape=box];
generate [label="Generate plan document\nwith checklist tasks", shape=box];
self_review [label="Self-review:\nspec coverage, placeholders,\nconsistency", shape=box];
plan_complete [label="Plan complete\n(auto handoff)", shape=doublecircle];
execute [label="YOU invoke camel-execute\n(automatic, not manual)", shape=doublecircle];
start -> scope;
scope -> decompose [label="too large"];
scope -> load_template [label="right size"];
decompose -> load_template [label="per sub-project"];
load_template -> decompose_tasks;
decompose_tasks -> generate;
generate -> self_review;
self_review -> plan_complete;
plan_complete -> generate [label="refinement needed"];
plan_complete -> execute [label="handoff"];
}
Read shared/iron-laws.md for the full Iron Laws. This phase enforces:
| Excuse | Reality |
|---|---|
| "The spec is clear enough to skip planning" | Clear spec ≠ clear execution. The plan tells the engineer exactly what to do. |
| "I'll put the code directly in the plan" | Code in plans = stale code. Instructions in plans = fresh code from guides. |
| "The engineer can figure out the guides to load" | Questionable taste, remember? Spell out every guide, every MCP call. |
| "I'll combine multiple flows into one task" | One task = one outcome. Split flows into separate tasks. |
| "Testing can be added later" | Test tasks are in the plan. Not later. NOW. |
| "I'll skip the review specification" | Every task gets two-stage review. Spec compliance then quality. No exceptions. |
| "I'll tell the user to run camel-execute next" | In chained mode: NO, YOU invoke camel-execute automatically. In standalone mode: STOP after writing the plan. |
| "I should wait for the user to approve the plan before executing" | Plan approval gate was removed. In chained mode, execution auto-proceeds. In standalone mode, the caller manages transitions. |
| "The input spec is stale but I'll ignore the warning" | Always warn about staleness. The plan will be fresh, but the user should know. |
If the design spec covers multiple independent subsystems or has more than ~10 flows, suggest breaking into separate plans — one per subsystem or logical group. Each plan should produce working, testable software on its own.
The plan is a RECIPE, not the MEAL.
Load the appropriate task template:
guides/task-template-greenfield.mdguides/task-template-migration.mdguides/task-template-testing.mdLoad decomposition rules: guides/task-decomposition.md
Every plan MUST include a structured task metadata block for camel-kit plan analyze. Use a fenced YAML block with the
exact info string yaml plan-metadata, placed after the document frontmatter and before the first ### Task N
section. The metadata is for tooling; the Markdown tasks remain the human execution recipe.
Required metadata rules:
### Task N section.id MUST match the numeric task number in ### Task N.title MUST match the task title.files lists paths grouped by action: creates, modifies, reads, deletes, tests, or references.provides lists logical resources produced by the task.consumes lists logical resources required from other tasks.dependsOn lists explicit task IDs that must finish before this task, even when no file or logical resource overlaps.Use these logical resource keys when applicable: routes, endpoints, properties, schemas, testData, beans,
externalServices, and routeContracts. Values are plain strings and must be stable enough for exact matching.
Before generating the plan, resolve the active pipeline using shared/pipeline-infrastructure.md:
.camel-kit/pipeline.json -> get activePipelinedocs/camel-kit/<activePipeline>/design-spec.mddocs/camel-kit/<activePipeline>/implementation-plan.mdSave to docs/camel-kit/<PIPELINE_ID>/implementation-plan.md:
---
staleness:
stale: false
since: null
reason: null
generated:
at: "<current ISO-8601 timestamp>"
by: camel-plan
from: design-spec.md
---
# [Project Name] Implementation Plan
> **For agentic workers:** Use camel-execute to implement this plan task-by-task.
> Steps use checkbox (`- [ ]`) syntax for tracking.
**Goal:** [One sentence from design spec]
**Architecture:** [2-3 sentences about approach]
**Tech Stack:** Apache Camel [version], [runtime], [key components]
**Design Spec:** `docs/camel-kit/<PIPELINE_ID>/design-spec.md` (approved [date])
---
```yaml plan-metadata
tasks:
- id: 1
title: [Component/Flow Name]
files:
creates:
- exact/path/to/file
modifies:
- exact/path/to/existing
provides:
routes:
- [route-id]
endpoints:
- direct:[endpoint-name]
consumes:
properties:
- [property.name]
schemas:
- [schema-name]
dependsOn: []
```
---
### Task N: [Component/Flow Name]
**Agent:** [agent persona to dispatch — integration-architect / implementation-engineer / migration-specialist / test-engineer]
**Files:**
- Create: `exact/path/to/file`
- Modify: `exact/path/to/existing`
**Guides to Load:**
- `camel-implement/guides/orchestrator.md`
- `camel-implement/guides/yaml-structure.md`
- [other guides specific to this task]
**MCP Tools:**
- `camel_catalog_component_doc(component="X", runtime="Y", platformBom="Z")`
- [other MCP calls]
**Design Spec Section:** Section 3, Flow: [flow-name]
- [ ] **Step 1:** [action description with exact instructions]
- [ ] **Step 2:** [action description]
- [ ] **Step N:** Verify: [exact command to run and expected output]
**Review:**
- [ ] Spec compliance: [what to check — components match design spec, structure correct, properties complete]
- [ ] Code quality: [what to check — constitution rules, security, anti-patterns]
After writing the complete plan:
camel-implement/SKILL.md and camel-design/SKILL.md guide manifests.Fix any issues inline.
After saving the plan:
docs/camel-kit/<PIPELINE_ID>/implementation-plan.md
1b. Add frontmatter metadata — run {COMMAND_PREFIX} doc init --by camel-plan --from design-spec.md <implementation-plan.md> to add provenance metadata. This is idempotent — if frontmatter already exists, it is preserved.shared/pipeline-infrastructure.md, run {COMMAND_PREFIX} doc stale --reason "implementation plan regenerated" --cascade <first-downstream-artifact> (e.g., execution-report.md) to propagate staleness to all downstream artifacts. The --cascade flag walks the generated.from chain automatically — do NOT loop over individual artifacts. Do NOT mark the freshly regenerated implementation-plan.md itself stale.camel-execute immediatelyChained mode output:
Plan saved to docs/camel-kit/<PIPELINE_ID>/implementation-plan.md
Plan complete. Proceeding to execution — dispatching subagents for each task
with two-stage review (spec compliance → code quality) between tasks.
Standalone mode output:
Plan saved to docs/camel-kit/<PIPELINE_ID>/implementation-plan.md
Plan complete. Run /camel-execute or /camel-ship --start-from execute to proceed.
In chained mode: after the plan is complete, YOU must transition to execution. Do NOT tell the user to run it manually. Do NOT print "please run camel-execute" or "run /camel-execute". The transition is automatic — either through the agent-specific handoff mechanism (if trait instructions exist below) or by directly invoking camel-execute.
In standalone mode: write the plan artifact and STOP. Do NOT auto-invoke execute. Print the standalone mode output above.