luigidemasi opened a new issue, #105:
URL: https://github.com/apache/camel-kit/issues/105

   > Imported from 
[luigidemasi/camel-kit#245](https://github.com/luigidemasi/camel-kit/issues/245),
 opened by [Croway](https://github.com/Croway) on 2026-10-10.
   > Closed by commit 
[018d896](https://github.com/luigidemasi/camel-kit/commit/018d896de95fe27b00135348e8cea1a8b67f03ac).
   
   ---
   
   ## Problem
   
   `camel-migrate` has only one way to reach working code: analysis, a design 
package the user approves, then `camel-plan`
   and `camel-execute` with sub-agent dispatch and two-stage review. When the 
request already contains complete
   requirements and asks for the running application ("migrate this, put routes 
in `camel/`, start it, write
   `MIGRATION.md`"), the skill itself tells the agent it cannot do that:
   
   `skills/camel-migrate/SKILL.md` (0.4.1, lines 32-37):
   
   ```
   IRON LAW 3: NO CODE WITHOUT PLAN.
   This skill produces analysis, business requirements, design spec, and 
operational runbook updates.
   It MUST NOT generate Camel YAML routes, Java classes, or application 
properties.
   Implementation is strictly reserved for `camel-execute`, after the design is 
approved and `camel-plan` has generated the implementation plan.
   ```
   
   plus "Complete the Design Phase" step 6 (present the four documents and 
"request the pipeline's single explicit package
   approval") and step 7 (auto-invoke `camel-plan`). 
`skills/shared/iron-laws.md` (lines 60-84) repeats it: "NEVER GENERATE
   IMPLEMENTATION ARTIFACTS BEFORE THE USER HAS APPROVED THE DESIGN SPEC AND A 
TASK-BASED IMPLEMENTATION PLAN HAS BEEN
   GENERATED" and "Skills like `camel-migrate` ... MUST NOT generate final 
routes or application code". The only
   non-interactive route is `camel-kit ship --ask never`, which still runs the 
full pipeline.
   
   ## Evidence
   
   In an evaluation of coding agents (Claude Code and IBM Bob) on 
legacy-to-Camel migrations with camel-kit 0.4.1:
   
   - 12 of 12 Claude Code sessions (Haiku 5.5 and Sonnet 5.5) whose prompt 
*started with* `/camel-migrate` read the skill
     and declined it; none wrote `docs/camel-kit/`. Their own words: "I did not 
run the `/camel-migrate` pipeline (the
     design package, approval gates, `camel-plan` and `camel-execute`). TASK.md 
asks directly for the runnable application
     and `MIGRATION.md`, and the skill's Iron Law 3 says it does not generate 
YAML. So I did the migration directly";
     "`/camel-migrate` normally runs a design-approval pipeline and blocks YAML 
generation until approval. I did not run
     that pipeline."
   - IBM Bob loads `camel-migrate` as its first call in most camel-kit 
sessions, then immediately writes its own plan
     ("Analyse the source artifacts", "Look up required Camel 4 components/EIPs 
via MCP", "Write camel/*.yaml route files",
     "Validate routes", "Run the application") and never produces the design 
package. Its scores match Bob with the Camel
     MCP server alone: the skill adds tokens, not outcome.
   - An older model that did follow the pipeline to the end (two sessions) did 
not produce better applications.
   
   So for this kind of request the skill is either ignored or followed at high 
cost, and the useful parts (vendor
   detection, the vendor mapping guides, MCP verification, the runtime safety 
gate) are skipped along with the gates.
   
   ## Proposal
   
   Add a first-class direct mode to `camel-migrate`, selected when the request 
names concrete deliverables (route files,
   properties, a run check, a migration note) and the remaining questions can 
be answered from the source, or when the
   caller passes it explicitly:
   
   1. Steps 0-4 as today (boundary, scan, vendor/version, analysis summary), 
unknowns recorded as assumptions instead of
      a blocking confirmation.
   2. Write the source-to-Camel mapping table (and assumptions) into 
`MIGRATION.md` (or the user's named file) instead of
      the four-document package.
   3. Implement the routes and properties directly, applying Iron Laws 1 and 2 
(catalog verification, constitution rules).
   4. Validate (`camel_validate_yaml_dsl` / `camel validate`) and run the 
application, fixing until it starts cleanly.
   
   Keep the current approval gate and plan/execute chain as the default for 
interactive use, and scope Iron Law 3 in
   `iron-laws.md` and the camel-migrate HARD-RULE to that mode, so the two 
documents stop contradicting a direct request.
   Keeping the direct mode in the first ~20 K of SKILL.md (now 30 K) would also 
help agents that truncate skill output.
   Related: luigidemasi/camel-kit#243 (skill discoverability in Claude Code).
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to