From eec7d624739d591e4dca75aa8e4f86503dc9d1b9 Mon Sep 17 00:00:00 2001 From: TheDesignFounder Date: Sat, 26 Sep 2026 21:59:12 -0400 Subject: [PATCH] Teach the sprite skills what a kept background costs The service now takes background: "keep", which ships plain frames instead of transparent ones at a flat plain_frame_cents with no tier, and rescues a frame that will not cut out instead of failing the whole sheet. An agent following the old skill would quote the tier for a plain sheet, roughly twice its price, and would promise a fully transparent sheet it had not checked. The skill says to offer keep only when transparency is not needed and only if the installed client exposes the field, because the pinned CLI and MCP builds cannot order it yet, and to read kept_background_frames in atlas.json before claiming every frame is transparent. Co-Authored-By: Claude Opus 5 (1M context) --- .../sprite-sheet-from-reference/SKILL.md | 2 +- .../sprite-sheet-from-reference/SKILL.md | 2 +- .../sprite-sheet-from-reference/SKILL.md | 2 +- clawhub/dreamlayer-image-workflows/SKILL.md | 5 ++++- packaging/openai/dreamlayer-skills-1.0.0.zip | Bin 30805 -> 31111 bytes .../sprite-sheet-from-reference/SKILL.md | 2 +- 6 files changed, 8 insertions(+), 5 deletions(-) diff --git a/.agents/skills/sprite-sheet-from-reference/SKILL.md b/.agents/skills/sprite-sheet-from-reference/SKILL.md index 1f946dc..6d77877 100644 --- a/.agents/skills/sprite-sheet-from-reference/SKILL.md +++ b/.agents/skills/sprite-sheet-from-reference/SKILL.md @@ -7,5 +7,5 @@ description: "Turn one character, object or effect reference into an animated sp Read [the workflow contract](references/workflow-contract.md) for setup, billing, recovery and output checks. -Read the workflow contract, then current sprite_pricing in capabilities. Exactly one reference and one of action (walk/run/idle) or animation_prompt (1–4000 chars) are required. Choose frame_count 7–100 and square frame_size 32,64,128,256,512,720,1080. action defaults to loop; custom animation defaults to once; explicitly set animation_mode when needed. Quote in integer cents: min(n,14)*14 + max(n-14,0)*7, divide by 17 cents per credit, round the WHOLE order upward once to 0.1 credit. Treat these as the current example values, and recompute from live capabilities. 7 frames currently cost 5.8 credits; 12 cost 9.9. Set max_credits within the user's authorized cap. Compare to available balance, not the separately rounded funding buckets. Sprites have no customer cancellation. Save execution and poll/resume; failed/expired work restores the hold. Download .zip, inspect its manifest and preview, and validate frame count/alpha/timing. Do not claim pixel-grid preservation, perfect anatomy, eight directions, editable Aseprite layers or production quality. For engine import use the matching engine skill. CLI: dreamlayer sprite reference.png --action walk --frames 7 --frame-size 128 --max-credits 5.8 --out walk.zip --json +Read the workflow contract, then current sprite_pricing in capabilities. Exactly one reference and one of action (walk/run/idle) or animation_prompt (1–4000 chars) are required. Choose frame_count 7–100 and square frame_size 32,64,128,256,512,720,1080. action defaults to loop; custom animation defaults to once; explicitly set animation_mode when needed. Frames are transparent unless you ask for background keep. Quote transparent frames in integer cents: min(n,14)*14 + max(n-14,0)*7. Quote kept-background frames at the flat plain_frame_cents with no tier: n*7. Either way divide by 17 cents per credit and round the WHOLE order upward once to 0.1 credit. Treat these as the current example values, and recompute from live capabilities. 7 transparent frames currently cost 5.8 credits; 12 cost 9.9; the same 12 kept cost 5.0. Offer keep only when the user does not need transparency, and only if your client exposes the field (background in options, --background on the CLI) and capabilities advertise plain_frame_cents; an older client cannot order it. A frame the service cannot cut out is retried at nearby moments of the same clip, and one stubborn frame ships with its background rather than failing the sheet, listed in atlas.json as kept_background_frames: check that list before promising a fully transparent sheet. Set max_credits within the user's authorized cap. Compare to available balance, not the separately rounded funding buckets. Sprites have no customer cancellation. Save execution and poll/resume; failed/expired work restores the hold. Download .zip, inspect its manifest and preview, and validate frame count/alpha/timing. Do not claim pixel-grid preservation, perfect anatomy, eight directions, editable Aseprite layers or production quality. For engine import use the matching engine skill. CLI: dreamlayer sprite reference.png --action walk --frames 7 --frame-size 128 --max-credits 5.8 --out walk.zip --json diff --git a/.cline/skills/sprite-sheet-from-reference/SKILL.md b/.cline/skills/sprite-sheet-from-reference/SKILL.md index 1f946dc..6d77877 100644 --- a/.cline/skills/sprite-sheet-from-reference/SKILL.md +++ b/.cline/skills/sprite-sheet-from-reference/SKILL.md @@ -7,5 +7,5 @@ description: "Turn one character, object or effect reference into an animated sp Read [the workflow contract](references/workflow-contract.md) for setup, billing, recovery and output checks. -Read the workflow contract, then current sprite_pricing in capabilities. Exactly one reference and one of action (walk/run/idle) or animation_prompt (1–4000 chars) are required. Choose frame_count 7–100 and square frame_size 32,64,128,256,512,720,1080. action defaults to loop; custom animation defaults to once; explicitly set animation_mode when needed. Quote in integer cents: min(n,14)*14 + max(n-14,0)*7, divide by 17 cents per credit, round the WHOLE order upward once to 0.1 credit. Treat these as the current example values, and recompute from live capabilities. 7 frames currently cost 5.8 credits; 12 cost 9.9. Set max_credits within the user's authorized cap. Compare to available balance, not the separately rounded funding buckets. Sprites have no customer cancellation. Save execution and poll/resume; failed/expired work restores the hold. Download .zip, inspect its manifest and preview, and validate frame count/alpha/timing. Do not claim pixel-grid preservation, perfect anatomy, eight directions, editable Aseprite layers or production quality. For engine import use the matching engine skill. CLI: dreamlayer sprite reference.png --action walk --frames 7 --frame-size 128 --max-credits 5.8 --out walk.zip --json +Read the workflow contract, then current sprite_pricing in capabilities. Exactly one reference and one of action (walk/run/idle) or animation_prompt (1–4000 chars) are required. Choose frame_count 7–100 and square frame_size 32,64,128,256,512,720,1080. action defaults to loop; custom animation defaults to once; explicitly set animation_mode when needed. Frames are transparent unless you ask for background keep. Quote transparent frames in integer cents: min(n,14)*14 + max(n-14,0)*7. Quote kept-background frames at the flat plain_frame_cents with no tier: n*7. Either way divide by 17 cents per credit and round the WHOLE order upward once to 0.1 credit. Treat these as the current example values, and recompute from live capabilities. 7 transparent frames currently cost 5.8 credits; 12 cost 9.9; the same 12 kept cost 5.0. Offer keep only when the user does not need transparency, and only if your client exposes the field (background in options, --background on the CLI) and capabilities advertise plain_frame_cents; an older client cannot order it. A frame the service cannot cut out is retried at nearby moments of the same clip, and one stubborn frame ships with its background rather than failing the sheet, listed in atlas.json as kept_background_frames: check that list before promising a fully transparent sheet. Set max_credits within the user's authorized cap. Compare to available balance, not the separately rounded funding buckets. Sprites have no customer cancellation. Save execution and poll/resume; failed/expired work restores the hold. Download .zip, inspect its manifest and preview, and validate frame count/alpha/timing. Do not claim pixel-grid preservation, perfect anatomy, eight directions, editable Aseprite layers or production quality. For engine import use the matching engine skill. CLI: dreamlayer sprite reference.png --action walk --frames 7 --frame-size 128 --max-credits 5.8 --out walk.zip --json diff --git a/.github/skills/sprite-sheet-from-reference/SKILL.md b/.github/skills/sprite-sheet-from-reference/SKILL.md index 1f946dc..6d77877 100644 --- a/.github/skills/sprite-sheet-from-reference/SKILL.md +++ b/.github/skills/sprite-sheet-from-reference/SKILL.md @@ -7,5 +7,5 @@ description: "Turn one character, object or effect reference into an animated sp Read [the workflow contract](references/workflow-contract.md) for setup, billing, recovery and output checks. -Read the workflow contract, then current sprite_pricing in capabilities. Exactly one reference and one of action (walk/run/idle) or animation_prompt (1–4000 chars) are required. Choose frame_count 7–100 and square frame_size 32,64,128,256,512,720,1080. action defaults to loop; custom animation defaults to once; explicitly set animation_mode when needed. Quote in integer cents: min(n,14)*14 + max(n-14,0)*7, divide by 17 cents per credit, round the WHOLE order upward once to 0.1 credit. Treat these as the current example values, and recompute from live capabilities. 7 frames currently cost 5.8 credits; 12 cost 9.9. Set max_credits within the user's authorized cap. Compare to available balance, not the separately rounded funding buckets. Sprites have no customer cancellation. Save execution and poll/resume; failed/expired work restores the hold. Download .zip, inspect its manifest and preview, and validate frame count/alpha/timing. Do not claim pixel-grid preservation, perfect anatomy, eight directions, editable Aseprite layers or production quality. For engine import use the matching engine skill. CLI: dreamlayer sprite reference.png --action walk --frames 7 --frame-size 128 --max-credits 5.8 --out walk.zip --json +Read the workflow contract, then current sprite_pricing in capabilities. Exactly one reference and one of action (walk/run/idle) or animation_prompt (1–4000 chars) are required. Choose frame_count 7–100 and square frame_size 32,64,128,256,512,720,1080. action defaults to loop; custom animation defaults to once; explicitly set animation_mode when needed. Frames are transparent unless you ask for background keep. Quote transparent frames in integer cents: min(n,14)*14 + max(n-14,0)*7. Quote kept-background frames at the flat plain_frame_cents with no tier: n*7. Either way divide by 17 cents per credit and round the WHOLE order upward once to 0.1 credit. Treat these as the current example values, and recompute from live capabilities. 7 transparent frames currently cost 5.8 credits; 12 cost 9.9; the same 12 kept cost 5.0. Offer keep only when the user does not need transparency, and only if your client exposes the field (background in options, --background on the CLI) and capabilities advertise plain_frame_cents; an older client cannot order it. A frame the service cannot cut out is retried at nearby moments of the same clip, and one stubborn frame ships with its background rather than failing the sheet, listed in atlas.json as kept_background_frames: check that list before promising a fully transparent sheet. Set max_credits within the user's authorized cap. Compare to available balance, not the separately rounded funding buckets. Sprites have no customer cancellation. Save execution and poll/resume; failed/expired work restores the hold. Download .zip, inspect its manifest and preview, and validate frame count/alpha/timing. Do not claim pixel-grid preservation, perfect anatomy, eight directions, editable Aseprite layers or production quality. For engine import use the matching engine skill. CLI: dreamlayer sprite reference.png --action walk --frames 7 --frame-size 128 --max-credits 5.8 --out walk.zip --json diff --git a/clawhub/dreamlayer-image-workflows/SKILL.md b/clawhub/dreamlayer-image-workflows/SKILL.md index 093a39e..f0ec786 100644 --- a/clawhub/dreamlayer-image-workflows/SKILL.md +++ b/clawhub/dreamlayer-image-workflows/SKILL.md @@ -104,7 +104,10 @@ output acceptance. Ordinary completed image operations currently cost one credit each; read the live figure from capabilities rather than assuming. Sprite jobs are a beta with frame-based pricing: read `sprite_pricing`, round the whole quote up once to a tenth of a credit, and pass it as -`max_credits`. Sprite jobs cannot be cancelled by the customer; failed or expired jobs restore +`max_credits`. Transparent frames use the tier in `first_tier_cents` and +`additional_frame_cents`; a sheet that keeps its background costs the flat +`plain_frame_cents` per frame, roughly half, and is ordered with `background: "keep"` by a +client that exposes the field. Sprite jobs cannot be cancelled by the customer; failed or expired jobs restore the hold. Stop, keep the recoverable state, and report rather than looping paid retries when you hit: diff --git a/packaging/openai/dreamlayer-skills-1.0.0.zip b/packaging/openai/dreamlayer-skills-1.0.0.zip index 59716f67f062b9a06852867c0e5c2e076f136cc9..9fd7cac174daea9bcec22f0c94f14f80a97bea93 100644 GIT binary patch delta 1356 zcmV-S1+)6q@BxSO0kGar4l%xHoZAEd06Pf)04o5K;dUjHt#$~1ZC2ZE+eQ$5*H;YE zhuSGgNv<6`_EV6gO#q`wn-m3F6vm1iiW@C=ncbyi<*EPBKkS$E%#xJlHh^KvuuW%rURMYje*vd$uLdDh{RBUDVEA)02N9leW>3viQ-hid;R)M8Cg%PdgnOieA~!Dcp(l{-+VH%4m@VxjA3agQNVcUXEytVRYiZqhH2;grZ#SWN2Rk-p!oCTa4yWJxB2w8 zXsgpydf?c18LhN2=q^L>(rwxAQFBGEk6j-DE|;57jOo6bEtAIpO3l~r-AdJ_XdPR6&)%L_@%k$Hx%X9jUT6KS7^W}NAIDL9K1=?^I^P?nVFcp&wYJ(4*QQF>(_)6qq zh^!-U?XSs7wAXlq%saKGN^dn9UhQdlIg~=36g9|SI2lq&g5Tb}yL}DTD;(&%o$^%z zQ$SsR6wC2WK_4-bsUi@qLb^FAk?&R8VFb6z^fHerJ~ZA!*gVXW(OdqHJ}wRJ9M6JRNp7)0v9;1-Z9`0P(F}|SaeuMhXjCYF zJ_W!5;RsoG4`GJBF)7IaC0a~ZX~md5fCKgDv=kK8y#Y7Js!6#D`hZ!-Xx)ucnf!j@ z{9B;i$HsYBPhtU%1#za)$FACaKwx3VP*s);Mg4;){@`frPAIX}X2m)wnUl_Po`+8)(H`>Pp4YfhigET$!#>^Qhra zYl)khE+NI1I(^S3UwfV6h`dr0nRrOr_R1>sh=F0fZX(@M>5Rkxp0r1jfRyDH6 z(^3YPRX?~pHUj2g4;z;65O%GhJl%HAM`0{A4CgKzfqHx$HrStqOw%=0@&zFUo_6

CPjf3#e$Yb7PAzokd!ZZ>Ob@k`z1X?$xc%gSa@xcGjryg zGn41}%&LxWDfC`P&O^%_^TxX__uQ~&Tk)*sPILf2(D3Y|)xetc{=_@L36G=&w?} zLJ=J`hk{-n5o1nCx=-??k~nb<;abR<3zrK&*oE+TCG1_eM0VHpk>=&!fBv;zE|}Gzcx|+txXeNi=+@+yHbN1eAC$^}>fi-jCNoe`NZ4l|5T$K!_XKEE1v2K!B2$fvMB=PV}uKCE-kaQO&dS}eSa~L|v-T(yG3#c!COp^nukP06O zOY00If8h?+IE+{EQDYu87Le>NX}W_|8bp7LxjpYSA4bYSzphoB>`Ter3uXFNEuw~5 zc9J(WT^Xf2>h+OLzVkZe0fGC}L?%8-t5R8o9#0vu-n9{qf~aY4;RFICGQR{X75w diff --git a/plugins/dreamlayer/skills/sprite-sheet-from-reference/SKILL.md b/plugins/dreamlayer/skills/sprite-sheet-from-reference/SKILL.md index 1f946dc..6d77877 100644 --- a/plugins/dreamlayer/skills/sprite-sheet-from-reference/SKILL.md +++ b/plugins/dreamlayer/skills/sprite-sheet-from-reference/SKILL.md @@ -7,5 +7,5 @@ description: "Turn one character, object or effect reference into an animated sp Read [the workflow contract](references/workflow-contract.md) for setup, billing, recovery and output checks. -Read the workflow contract, then current sprite_pricing in capabilities. Exactly one reference and one of action (walk/run/idle) or animation_prompt (1–4000 chars) are required. Choose frame_count 7–100 and square frame_size 32,64,128,256,512,720,1080. action defaults to loop; custom animation defaults to once; explicitly set animation_mode when needed. Quote in integer cents: min(n,14)*14 + max(n-14,0)*7, divide by 17 cents per credit, round the WHOLE order upward once to 0.1 credit. Treat these as the current example values, and recompute from live capabilities. 7 frames currently cost 5.8 credits; 12 cost 9.9. Set max_credits within the user's authorized cap. Compare to available balance, not the separately rounded funding buckets. Sprites have no customer cancellation. Save execution and poll/resume; failed/expired work restores the hold. Download .zip, inspect its manifest and preview, and validate frame count/alpha/timing. Do not claim pixel-grid preservation, perfect anatomy, eight directions, editable Aseprite layers or production quality. For engine import use the matching engine skill. CLI: dreamlayer sprite reference.png --action walk --frames 7 --frame-size 128 --max-credits 5.8 --out walk.zip --json +Read the workflow contract, then current sprite_pricing in capabilities. Exactly one reference and one of action (walk/run/idle) or animation_prompt (1–4000 chars) are required. Choose frame_count 7–100 and square frame_size 32,64,128,256,512,720,1080. action defaults to loop; custom animation defaults to once; explicitly set animation_mode when needed. Frames are transparent unless you ask for background keep. Quote transparent frames in integer cents: min(n,14)*14 + max(n-14,0)*7. Quote kept-background frames at the flat plain_frame_cents with no tier: n*7. Either way divide by 17 cents per credit and round the WHOLE order upward once to 0.1 credit. Treat these as the current example values, and recompute from live capabilities. 7 transparent frames currently cost 5.8 credits; 12 cost 9.9; the same 12 kept cost 5.0. Offer keep only when the user does not need transparency, and only if your client exposes the field (background in options, --background on the CLI) and capabilities advertise plain_frame_cents; an older client cannot order it. A frame the service cannot cut out is retried at nearby moments of the same clip, and one stubborn frame ships with its background rather than failing the sheet, listed in atlas.json as kept_background_frames: check that list before promising a fully transparent sheet. Set max_credits within the user's authorized cap. Compare to available balance, not the separately rounded funding buckets. Sprites have no customer cancellation. Save execution and poll/resume; failed/expired work restores the hold. Download .zip, inspect its manifest and preview, and validate frame count/alpha/timing. Do not claim pixel-grid preservation, perfect anatomy, eight directions, editable Aseprite layers or production quality. For engine import use the matching engine skill. CLI: dreamlayer sprite reference.png --action walk --frames 7 --frame-size 128 --max-credits 5.8 --out walk.zip --json