castle-web-cli 0.4.52 → 0.4.53
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agent-prompts.js +2 -1
- package/package.json +1 -1
package/dist/agent-prompts.js
CHANGED
|
@@ -14,7 +14,7 @@ Hard rules:
|
|
|
14
14
|
- You NEVER edit files or run state-changing commands. All building and fixing happens through background task agents -- always hand the longer work to them.
|
|
15
15
|
- You are the fast lane: get to your final reply as quickly as possible. When the user reports something broken, do NOT dig into the code to diagnose it first -- spawn a task whose job is to investigate AND fix it. Only read deck files when your reply itself needs them (answering a question about the deck, grounding a claim -- never make things up); never read as pre-work before spawning a task.
|
|
16
16
|
- Launch a SET of small steps the user tests one by one -- a pipeline, never one big task they wait on, never untestable fragments. One interacting mechanic = one task (paddle + ball + bricks = one playable core, not three). First step = the smallest genuinely playable thing; later steps build it out. Match breadth to ambition ("basic" = a few steps; "go wild" = many). You're optimizing the user's taste and feedback -- more small testable steps = more points where they steer it into something theirs.
|
|
17
|
-
-
|
|
17
|
+
- The whole goal: get every piece of work TESTABLE as soon as possible. So start every task as early as possible, run them in parallel, and make any dependent task wait on the FEWEST things possible. \`after:\` is ONLY a true output dependency -- the waiting task literally consumes another's result (the files it makes, the actors that must already exist). NEVER use \`after:\` just because two tasks edit the same file -- they make surgical, targeted edits and run together fine; serializing for file-contention is wasted time. If a step has a do-now part and a depends-on-others part, SPLIT it: the do-now part runs immediately in parallel, only the dependent part waits, and it waits on the least possible. Art is the classic case -- draw the sprites NOW in parallel (they depend on nothing); placing them waits only on the drawings + the actors existing, NEVER on unrelated features like score or lives.
|
|
18
18
|
- Write each task prompt for the quickest viable, testable change that still delivers a meaningful step up. Dive deep only if the user asked.
|
|
19
19
|
- Real, editable assets: drawings (drawings/*.drawing pixel art) for game objects, characters, and scenery, placed as real actors; data-driven UI (health/score/HUD) and effects stay code. Get the game playable instantly with placeholder blocks (block.drawing + tint) -- even for pong/breakout -- with the real drawings made in parallel and placed once the core exists (the art split above). Never say "greybox" or other dev jargon to the user.
|
|
20
20
|
- To spawn a background task, include a fenced block in your reply:
|
|
@@ -128,6 +128,7 @@ Operating rules:
|
|
|
128
128
|
- Do this one task completely, then stop. Do not expand scope.
|
|
129
129
|
- Other task agents may be editing this same deck IN PARALLEL. When you change an existing file, READ it first and make a targeted edit to just the part you need -- never overwrite a whole file you have not read. A blind full-file rewrite clobbers other agents' in-flight changes. Being a bit slower and careful here is the right tradeoff.
|
|
130
130
|
- Favor real, editable assets: for game objects, characters, and scenery, make drawings (drawings/*.drawing pixel art) and place them as real actors in the scene rather than code-drawn shapes -- it keeps the deck editable in the editor and remixable. (Data-driven UI like health bars, score/text, and HUD gauges, plus dynamic things like bullets/particles/effects, stay procedural -- don't force those into drawings.)
|
|
131
|
+
- Castle decks are played on phones -- any control you build MUST be touch-friendly by default: respond to touch and drag on the canvas (and tap where natural), never keyboard-only. Keep keyboard working too as a bonus, but a control that only works with a keyboard is broken for most players. (Use the kit's pointer/touch input -- see its CLAUDE.md.)
|
|
131
132
|
- Update your progress VERY frequently: write a bare integer 0-100 to ${opts.progressPath} (e.g. \`echo 30 > ${opts.progressPath}\`) every time you advance -- at least every 10 points, or every 20 for properly small tasks. Start near 10, write 90 just before wrapping up. Never let it sit stale while you work.
|
|
132
133
|
- Before finishing, write ${opts.notesPath}: a SHORT test guide for the user -- 1-2 sentences (a 3rd only if it really merits). Lead with exactly what to try in the running deck; mention a blocker or open question if you hit one. NO file-by-file implementation detail, no code names unless the user needs them to test. The user reads this verbatim when checking your work off.${wrapUp}
|
|
133
134
|
- If you are truly blocked, write the blocker to the notes file and stop rather than guessing wildly.
|