You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Sume CLI skills should adopt the Genmedia-style async orchestration pattern for paid multi-job workflows: the CLI provides stable primitives, while skills force agents to submit idempotently, poll until terminal state, and complete result/resource readback instead of stopping after an arbitrary watch timeout.
This came out of first-time dogfooding after PR #9 / SUM-619. The current skill direction is good, but the dogfood thread showed one important gap: after submitting 3 paid Avatar jobs, the agent watched for 120 seconds, saw all jobs still processing, and returned a final answer telling the user to check later. The jobs completed shortly afterward. The agent should have treated timeout as a re-evaluation point, not as the end of the workflow.
Related issue: #10 tracks a separate but adjacent command/schema drift where submit examples include --agent even though avatars create / avatar-videos create currently reject it. Fixing this issue should avoid reinforcing that drift; either coordinate with #10 or implement both together if small.
Genmedia reference check
This was verified against the official Genmedia CLI repo, not only local user-created skill files.
Official repo cloned for inspection: https://github.com/fal-ai-community/genmedia-cli.git
User asked the agent to create 3 Korean cosmetics-ad avatars. The agent flow was mostly correct:
Detected missing auth and did not submit.
Asked for login authorization.
Ran browser login and confirmed auth without printing secrets.
Asked for explicit paid generation approval.
Submitted 3 paid Avatar jobs with stable handles/idempotency intent.
Moved into jobs watch.
Problem: the agent chose a bounded 120 second watch and then final-answered when all jobs were still processing, instead of continuing/rechecking/asking whether to keep watching.
A later read-only coordinator poll showed all three were COMPLETED. No additional paid jobs were required to verify that the previous turn stopped too early.
Current Sume advantage
Sume has stronger CLI primitives than Genmedia here:
sume jobs watch --ids job_1,job_2,job_3 --agent --json
sume jobs watch --ids job_1,job_2,job_3 --timeout-seconds 0 --agent --json
sume jobs result <job_id> --agent --json
sume avatars get <avatar_id> --agent --json
sume avatar-videos get <avatar_video_id> --agent --json
So this should be mostly a skill/docs/test policy fix, not a core CLI redesign. The skills should teach agents to use the existing primitives correctly.
Desired Sume skill behavior
After paid async generation submissions, skills should force this policy:
Submit all independent jobs first with stable idempotency keys or a batch state file.
Record job ids/resource ids in local state or a sanitized manifest.
Poll all submitted jobs together with sume jobs watch --ids ... --agent --json, or use --timeout-seconds 0 as a one-shot aggregate inside an agent-managed loop.
Treat timeout as a re-evaluation point, not final completion.
Do not final-answer as if the workflow is done while paid jobs are still non-terminal, unless the user explicitly asks to stop.
On timeout, immediately run a one-shot status/readback pass, then either:
continue polling;
ask the user whether to keep watching;
or provide a clear “resume” command and mark the work incomplete.
Once all jobs are terminal, fetch result/resource readback with agent-safe redaction.
Report completed/failed/canceled counts, resource ids, cost state if visible, and sanitized artifact availability.
Do not submit replacement paid jobs unless the user explicitly approves another paid run under a cap.
Do not print API keys, auth codes, signed URLs, private media URLs, full result URLs, provider payloads, or private identifiers.
Suggested implementation direction
Update these skill/docs surfaces first:
agent/sume-min-latency/SKILL.md
agent/sume-spend-capped-dogfood/SKILL.md
agent/sume-avatar/SKILL.md
agent/sume-avatar-video/SKILL.md
agent/sume/references/eval-scenarios.md
docs/agent-workflows.md
README.md if it describes agent submit/watch behavior
regenerate src/lib/bundled-skills-data.ts
Recommended wording to add somewhere central:
Timeout is not terminal. After a paid submit, keep ownership of the job set until every job is completed, failed, canceled, or the user explicitly tells you to stop. If `jobs watch` returns timeout, run a one-shot status aggregate, then continue polling or ask the user whether to keep watching. Do not submit duplicate paid jobs while recovering from a timeout.
Recommended examples:
# Submit independent jobs with idempotency/state first.# Then use one aggregate watcher:
sume jobs watch --ids "$JOB_IDS" --agent --json
# Or agent-managed loop using one-shot aggregate checks:whiletrue;do
sume jobs watch --ids "$JOB_IDS" --timeout-seconds 0 --agent --json
# Parse terminal counts. If all terminal, break and fetch results.# If still running, sleep and continue or ask the user if the time cap is reached.
sleep 10
done
If #10 is fixed by adding --agent support to submit commands, examples can use --agent --json on submit. If #10 is fixed by removing --agent from submit commands, make these examples reflect the actual accepted command shape.
Acceptance criteria
Skills explicitly state that paid async job timeout is not a final answer condition.
Summary
Sume CLI skills should adopt the Genmedia-style async orchestration pattern for paid multi-job workflows: the CLI provides stable primitives, while skills force agents to submit idempotently, poll until terminal state, and complete result/resource readback instead of stopping after an arbitrary watch timeout.
This came out of first-time dogfooding after PR #9 / SUM-619. The current skill direction is good, but the dogfood thread showed one important gap: after submitting 3 paid Avatar jobs, the agent watched for 120 seconds, saw all jobs still
processing, and returned a final answer telling the user to check later. The jobs completed shortly afterward. The agent should have treated timeout as a re-evaluation point, not as the end of the workflow.Related issue: #10 tracks a separate but adjacent command/schema drift where submit examples include
--agenteven thoughavatars create/avatar-videos createcurrently reject it. Fixing this issue should avoid reinforcing that drift; either coordinate with #10 or implement both together if small.Genmedia reference check
This was verified against the official Genmedia CLI repo, not only local user-created skill files.
https://github.com/fal-ai-community/genmedia-cli.git63ef5e5b6a72df984c78dfa7fe8e6ed3c03647c0/Users/huhchaewon/.local/bin/genmedia0.7.0Genmedia CLI itself does not provide a built-in multi-job long-running
watchcommand like Sume'ssume jobs watch --ids. Its core primitives are:Official Genmedia source confirms
statusis a one-shot queue status/result/download command (src/commands/status.ts), not a persistent watcher.The continuous polling behavior is documented as an agent/workflow loop in the official README:
The local Genmedia experiment skill has the same high-concurrency policy:
statusas polling state, not immediate failure;This is the pattern Sume skills should mirror.
Sume dogfood evidence
Dogfood thread:
Sume CLI first-time skills dogfood(019f35bd-1bc2-75a1-b88b-1143770af841)User asked the agent to create 3 Korean cosmetics-ad avatars. The agent flow was mostly correct:
jobs watch.Problem: the agent chose a bounded 120 second watch and then final-answered when all jobs were still
processing, instead of continuing/rechecking/asking whether to keep watching.Submitted jobs from the dogfood flow:
A later read-only coordinator poll showed all three were
COMPLETED. No additional paid jobs were required to verify that the previous turn stopped too early.Current Sume advantage
Sume has stronger CLI primitives than Genmedia here:
So this should be mostly a skill/docs/test policy fix, not a core CLI redesign. The skills should teach agents to use the existing primitives correctly.
Desired Sume skill behavior
After paid async generation submissions, skills should force this policy:
sume jobs watch --ids ... --agent --json, or use--timeout-seconds 0as a one-shot aggregate inside an agent-managed loop.Suggested implementation direction
Update these skill/docs surfaces first:
agent/sume-min-latency/SKILL.mdagent/sume-spend-capped-dogfood/SKILL.mdagent/sume-avatar/SKILL.mdagent/sume-avatar-video/SKILL.mdagent/sume/references/eval-scenarios.mddocs/agent-workflows.mdREADME.mdif it describes agent submit/watch behaviorsrc/lib/bundled-skills-data.tsRecommended wording to add somewhere central:
Recommended examples:
If #10 is fixed by adding
--agentsupport to submit commands, examples can use--agent --jsonon submit. If #10 is fixed by removing--agentfrom submit commands, make these examples reflect the actual accepted command shape.Acceptance criteria
sume-min-latencyoptimizes for low latency without losing terminal readback responsibility.sume-spend-capped-dogfoodrequires explicit cap, idempotency/state, no duplicate paid calls, and terminal readback before verdict.sume-avatarandsume-avatar-videoroute multi-candidate work through batch/state or aggregate watch patterns.src/lib/bundled-skills-data.tsis regenerated from source skill files.sume.soBrand/Ads/Face Swap/generic generation surfaces are introduced.Validation plan
skills list/exportand tool schema consistency.pnpm run checkif practical.No paid/provider calls are required for this fix.