CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

reproduce-chat-states

Reproduce a known chat state in the running desktop on demand (model provider errors and retries, Code Mode and Den script failures, parallel tool steps, app creation, sequential commands) and check how it renders. Use when fixing or designing chat error, retry, tool-step or app-card UI.

Quality

91%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Passed

No findings from the security scan

SKILL.md
Quality
Evals
Security

Reproduce chat states

Each state below fires in a new session of the running desktop window through drive-desktop-cdp. Provider states also need fake-model-faults set up.

export CDP_URL=http://127.0.0.1:<cdp port>
R=.opencode/skills/reproduce-chat-states/scripts/repro.mjs
C=.opencode/skills/drive-desktop-cdp/scripts/cdp.mjs
node $R provider-refused && node $C wait-idle && node $C shot /tmp/refused.png

Run node $R with no argument for the list. Pass a second argument (or set GATEWAY_MODEL) to change the real model used for the non-fault states.

States and what to look at

StateFiresCheck
provider-refused, provider-dns, provider-resetengine transport error, retried, then finalone error per turn, plain title, raw text only behind the details icon
provider-retryingsame as reset; watch the first 30s"Reconnecting to the model" with attempt progress, no raw text
provider-midstream, provider-stallcut or stalled replyinterrupted reply keeps partial text
http-429, http-5xx, http-401, http-402HTTP error bodiesthe matching plain-language title and next action
codemode-wrong-tooltools.search(...) in Code Modea recovered step must not read as a hard failure
den-script-rejectedDen script with .thenDen's real reason in details, not a generic placeholder
den-script-service-failureprovider op fails inside a Den script"Script on OpenWork Cloud failed", reason behind the icon
den-script-parallel20 Slack calls in one scriptone readable group, collapsed until opened
parallel-searches10 Exa searches plus Slackclean service names and logos, no routing ids
app-createMCP app build with retriesone card per app that advances through its steps
sequential-commands5 separate bash callsthe chat does not jump (see measure-chat-flicker)

Reading what happened

Stored v2 history shows exactly what the engine recorded (useful when a step looks wrong):

sqlite3 ~/.config/openwork/opencode-v2/state/opencode.db \
  "select type, substr(data,1,400) from session_message where session_id='<ses_…>' order by seq"

For a step inside Code Mode, check state.metadata.toolCalls and state.metadata.openworkMcpResults on the execute part.

Repository

different-ai/openwork

Path

.opencode/skills/reproduce-chat-states/SKILL.md

Last updated
First committed

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.