Agent Skills › different-ai/openwork › reproduce-chat-states

reproduce-chat-states

GitHub

用于在桌面端复现聊天错误、重试、工具调用及脚本失败等特定状态,辅助检查和验证相关UI渲染效果。

.opencode/skills/reproduce-chat-states/SKILL.md different-ai/openwork

Trigger Scenarios

修复或设计聊天错误UI 验证重试机制的UI表现 检查工具步骤的渲染逻辑 排查应用卡片UI问题

Install

npx skills add different-ai/openwork --skill reproduce-chat-states -g -y
More Options

Non-standard path

npx skills add https://github.com/different-ai/openwork/tree/dev/.opencode/skills/reproduce-chat-states -g -y

Use without installing

npx skills use different-ai/openwork@reproduce-chat-states

指定 Agent (Claude Code)

npx skills add different-ai/openwork --skill reproduce-chat-states -a claude-code -g -y

安装 repo 全部 skill

npx skills add different-ai/openwork --all -g -y

预览 repo 内 skill

npx skills add different-ai/openwork --list

SKILL.md

Frontmatter
{
    "name": "reproduce-chat-states",
    "description": "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."
}

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

State Fires Check
provider-refused, provider-dns, provider-reset engine transport error, retried, then final one error per turn, plain title, raw text only behind the details icon
provider-retrying same as reset; watch the first 30s "Reconnecting to the model" with attempt progress, no raw text
provider-midstream, provider-stall cut or stalled reply interrupted reply keeps partial text
http-429, http-5xx, http-401, http-402 HTTP error bodies the matching plain-language title and next action
codemode-wrong-tool tools.search(...) in Code Mode a recovered step must not read as a hard failure
den-script-rejected Den script with .then Den's real reason in details, not a generic placeholder
den-script-service-failure provider op fails inside a Den script "Script on OpenWork Cloud failed", reason behind the icon
den-script-parallel 20 Slack calls in one script one readable group, collapsed until opened
parallel-searches 10 Exa searches plus Slack clean service names and logos, no routing ids
app-create MCP app build with retries one card per app that advances through its steps
sequential-commands 5 separate bash calls the 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.

Version History

  • b73f6c6 Current 2026-10-19 21:57

Same Skill Collection

.opencode/skills/add-a-feature/SKILL.md
.opencode/skills/agent-first-screenshots/SKILL.md
.opencode/skills/browser-automation/SKILL.md
.opencode/skills/build-a-witness/SKILL.md
.opencode/skills/cloud-dashboard-walkthrough/SKILL.md
.opencode/skills/create-plugin/SKILL.md
.opencode/skills/daytona-chrome-cdp/SKILL.md
.opencode/skills/daytona-cloud-instance/SKILL.md
.opencode/skills/daytona-cloud-server/SKILL.md
.opencode/skills/daytona-dev/SKILL.md
.opencode/skills/daytona-electron-den/SKILL.md
.opencode/skills/daytona-electron-test/SKILL.md
.opencode/skills/daytona-flow-validator/SKILL.md
.opencode/skills/daytona-recording-artifacts/SKILL.md
.opencode/skills/daytona-secrets-volume/SKILL.md
.opencode/skills/daytona-seeded-cloud-demo/SKILL.md
.opencode/skills/daytona-windows-cert/SKILL.md
.opencode/skills/daytona/SKILL.md
.opencode/skills/diagnose-a-red-run/SKILL.md
.opencode/skills/drive-desktop-cdp/SKILL.md
.opencode/skills/fake-model-faults/SKILL.md
.opencode/skills/fix-design-notes/SKILL.md
.opencode/skills/fraimz/SKILL.md
.opencode/skills/get-env-var/SKILL.md
.opencode/skills/hunt-a-prod-error/SKILL.md
.opencode/skills/measure-chat-flicker/SKILL.md
.opencode/skills/open-a-pr/SKILL.md
.opencode/skills/openwork-models/SKILL.md
.opencode/skills/preview-my-work/SKILL.md
.opencode/skills/product-tutorial-pipeline/SKILL.md
.opencode/skills/prove-a-pr/SKILL.md
.opencode/skills/publish-evidence/SKILL.md
.opencode/skills/record-a-demo/SKILL.md
.opencode/skills/release/SKILL.md
.opencode/skills/review-a-contributor-pr/SKILL.md
.opencode/skills/run-evals/SKILL.md
.opencode/skills/run-tests/SKILL.md
.opencode/skills/shadcn/SKILL.md
.opencode/skills/upload-photo/SKILL.md
.opencode/skills/validate-a-release/SKILL.md
.opencode/skills/verify-openwork/SKILL.md
.opencode/skills/write-a-spec/SKILL.md
.warden/skills/confidentiality-review/SKILL.md
.warden/skills/contributor-screen/SKILL.md
.warden/skills/design-spec-review/SKILL.md
.warden/skills/desktop-den-sync-review/SKILL.md
.warden/skills/diff-security-review/SKILL.md
.warden/skills/spec-provenance-review/SKILL.md
integrations/agent-plugins/openwork-connect/skills/openwork-connect/SKILL.md

Metadata

Files
0
Version
b73f6c6
Hash
b91111ac
Indexed
2026-10-19 21:57

홈 - 위키
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-10-27 03:51
浙ICP备14020137号-1