DeerFlow Smoke Test
bytedance/deer-flow
Walks through an end-to-end smoke test of a DeerFlow deployment: pull the latest code, deploy with Docker or locally, verify services, run health checks and write a report.
Diagnose AgentDeck Stream Deck/PTY option synchronization, cursor state, hook ingestion, and bridge state-machine issues.
$ npx skills add puritysb/AgentDeck --skill sdc-diagnose -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install puritysb/AgentDeck sdc-diagnose --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/puritysb/AgentDeck.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/sdc-diagnose .claude/skills/sdc-diagnose && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "sdc-diagnose" agent skill from https://github.com/puritysb/AgentDeck/tree/master/.agents/skills/sdc-diagnose into .claude/skills/sdc-diagnose/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sdc-diagnose", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/puritysb/AgentDeck/tree/master/.agents/skills/sdc-diagnoseType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add puritysb/AgentDeck --skill sdc-diagnose -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install puritysb/AgentDeck sdc-diagnose --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/puritysb/AgentDeck.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/sdc-diagnose .agents/skills/sdc-diagnose && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "sdc-diagnose" agent skill from https://github.com/puritysb/AgentDeck/tree/master/.agents/skills/sdc-diagnose into .agents/skills/sdc-diagnose/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sdc-diagnose", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add puritysb/AgentDeck --skill sdc-diagnose -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install puritysb/AgentDeck sdc-diagnose --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/puritysb/AgentDeck.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/sdc-diagnose .cursor/skills/sdc-diagnose && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "sdc-diagnose" agent skill from https://github.com/puritysb/AgentDeck/tree/master/.agents/skills/sdc-diagnose into .cursor/skills/sdc-diagnose/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sdc-diagnose", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/puritysb/AgentDeck.git --path .agents/skills/sdc-diagnose--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add puritysb/AgentDeck --skill sdc-diagnose -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install puritysb/AgentDeck sdc-diagnose --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/puritysb/AgentDeck.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/sdc-diagnose .gemini/skills/sdc-diagnose && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "sdc-diagnose" agent skill from https://github.com/puritysb/AgentDeck/tree/master/.agents/skills/sdc-diagnose into .gemini/skills/sdc-diagnose/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sdc-diagnose", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install puritysb/AgentDeck sdc-diagnoseInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add puritysb/AgentDeck --skill sdc-diagnose -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/puritysb/AgentDeck.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/sdc-diagnose .github/skills/sdc-diagnose && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "sdc-diagnose" agent skill from https://github.com/puritysb/AgentDeck/tree/master/.agents/skills/sdc-diagnose into .github/skills/sdc-diagnose/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sdc-diagnose", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add puritysb/AgentDeck --skill sdc-diagnose -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install puritysb/AgentDeck sdc-diagnose --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/puritysb/AgentDeck.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/sdc-diagnose .opencode/skills/sdc-diagnose && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "sdc-diagnose" agent skill from https://github.com/puritysb/AgentDeck/tree/master/.agents/skills/sdc-diagnose into .opencode/skills/sdc-diagnose/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sdc-diagnose", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
sdc-diagnoseDiagnose AgentDeck Stream Deck/PTY option synchronization, cursor state, hook ingestion, and bridge state-machine issues.
Sdc Diagnose is an agent skill from puritysb/AgentDeck. Diagnose AgentDeck Stream Deck/PTY option synchronization, cursor state, hook ingestion, and bridge state-machine issues. Collects diagnostics, searches known failure patterns, adds focused regression tests, and verifies with pnpm tests.
Its SKILL.md is about 1.5k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Testing & QA. It works with pnpm. The repository describes itself as: Local dashboards and physical controls for AI coding agents — native 3D aquariums, Stream Deck, Apple/Android apps, e-ink, ESP32 and LED displays. The licence is MIT.
5 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 0b812da. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
gitpnpmFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git and pnpm, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Sdc Diagnose loads about 1.5k tokens when it runs. Until then it costs about 63 tokens; SKILL.md has 322 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from puritysb/AgentDeck at commit 0b812da, republished under its MIT licence (© puritysb). 322 words, ~1,453 tokens.
.claude/skills/sdc-diagnose/SKILL.md (or your agent's skills folder).Canonical diagnostic procedure for AgentDeck bridge synchronization issues between device displays and agent terminals (cursor desync, false idle, stale options, action dispatch races, hook ingestion gaps, state-machine regressions). This file is the single source of truth — .claude/skills/sdc-diagnose is a tracked directory symlink to this skill.
From the repo root, try the live bridge first. Start narrow: ~100 journal entries, filtered to the event types the Step 2 patterns use. Widen (--tail 300, then drop the filter) only when the window does not contain the failure.
cd "$(git rev-parse --show-toplevel)"
EVENTS='state_change|hook|error|option_prompt|navigate_option|cursor_update|select_option|idle|codex_'
agentdeck diag --tail 100 2>/dev/null | grep -E "$EVENTS" | tail -100 \
|| echo "Bridge not running (or no matching events) — using journal files directly"If the bridge isn't running, read journal/log files directly, with the same filter:
ls -t ~/.agentdeck/journal/*.jsonl 2>/dev/null | head -3
ls -t ~/.agentdeck/journal/*.jsonl 2>/dev/null | head -1 | xargs tail -n 400 | grep -E "$EVENTS" | tail -100
grep -E "$EVENTS" /tmp/sdc-debug.log 2>/dev/null | tail -100 || echo "No debug log found"If access fails, follow AGENTS.md Agent working agreements for execution-policy failures. Treat unreadable diagnostics as unknown, not proof that the bridge is stopped.
navigate_option followed by a stale cursor_update with conflicting indices.
Pattern: navigate_option cursor=X->Y ... cursor_update cursorIndex=X (reverted)
Root cause: PTY confirmation overwrites optimistic update
Fix: cursor authority system (A3) — optimistic suppresses PTY within 200msoption_prompt followed by idle within 500ms.
Pattern: option_prompt (N options) ... idle_detected (< 500ms gap)
Root cause: Small chunk with "❯ No" misclassified as idle prompt
Fix: Semantic idle check (A2) — only "❯" or ">" as sole non-ws contentoption_prompt with missing or non-contiguous indices.
Pattern: option_prompt indices=[0,1,3] (missing 2)
Root cause: Buffer corruption or partial redraw parsed as complete
Fix: Buffer tail re-parse with debounceselect_option overlapping rapid state transitions.
Pattern: select_option ... state AWAITING->PROCESSING->AWAITING (rapid cycle)
Root cause: Enter sent before arrow navigation completes
Fix: Proportional delay (A4) — 50 + |delta| * 20msTerminal keyboard input without a corresponding cursor_update for >500ms.
Pattern: (arrow key in terminal) ... no cursor_update for >500ms
Root cause: ink repositions cursor via ANSI sequences without ❯ in chunk
Fix: ANSI reposition detection (A1) — re-parse buffer on small non-❯ chunksMissing codex_user_prompt_submit, codex_tool_start, codex_tool_end, or codex_stop in daemon hook logs.
Pattern: Codex session active but lifecycle hooks absent from hook log
Root cause: ~/.codex/config.toml hooks not installed/migrated, or fence corrupted
Fix: re-run `agentdeck codex` (installs/migrates) or inspect installCodexHooksIfNeededAdd focused tests near the subsystem under change:
bridge/src/__tests__/cursor-sync.test.ts, state-machine.test.ts, or parser tests.hooks/src/__tests__/codex-install.test.ts, bridge/src/__tests__/state-machine.test.ts, or the Codex APME adapter tests.apple/AgentDeckTests/.Template (cursor desync, vitest):
it('reproduces cursor desync from journal entry', () => {
const sm = bootToIdle();
sm.handleParserEvent('option_prompt', {
options: [/* options from journal */],
navigable: true,
cursorIndex: 0,
});
sm.updateCursorIndex(/* target */, 'optimistic');
vi.advanceTimersByTime(/* gap from journal */);
sm.updateCursorIndex(/* stale PTY value */, 'pty');
expect(sm.getCursorIndex()).toBe(/* expected */);
});Run the narrowest useful tests first, then broaden when shared behavior changed:
cd "$(git rev-parse --show-toplevel)"
pnpm test
pnpm -r exec tsc --noEmitCheck that all existing tests pass, new regression tests pass, and there are no TypeScript errors.
## Diagnostic Report
### Issues Found
1. [PATTERN]: Description
- Journal entries: [timestamps]
- Expected: X
- Actual: Y
- Fix: [A1/A2/A3/A4/A5/codex] — description
### Tests Generated
- <file>: N new tests
- Regression coverage: [patterns covered]
### Verification
- pnpm test: PASS/FAIL
- TypeScript: PASS/FAIL
### Recommendations
- [Any additional fixes or monitoring suggestions]| File | Purpose |
|---|---|
bridge/src/output-parser.ts | PTY output parsing, cursor detection |
bridge/src/state-machine.ts | State transitions, cursor authority |
bridge/src/index.ts | Bridge wiring, command handlers |
bridge/src/__tests__/cursor-sync.test.ts | Cursor sync test suite |
hooks/src/codex-install.ts | Codex lifecycle hook installer (hook-gap issues) |
~/.agentdeck/journal/ | Event journal files |
/tmp/sdc-debug.log | Debug log (when -d flag used) |
© puritysb, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .agents/skills/sdc-diagnose of puritysb/AgentDeck.
Open the folder on GitHubat commit 0b812da
Sdc Diagnose next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Sdc Diagnose this skillpuritysb/AgentDeck | 260 | — | ~1.5k | Automated safety check: Pass | MIT | |
| DeerFlow Smoke Testbytedance/deer-flow | 84k | — | ~2.5k | Automated safety check: Notes | MIT | |
| OpenWork Desktop CDP Driverdifferent-ai/openwork | 24k | — | ~465 | Automated safety check: Pass | Custom licence | |
| E2Egronxb/hot-updater | 1.8k | — | ~1.6k | Automated safety check: Pass | Custom licence | |
| Cloud Agents Starterscalar/scalar | 16k | — | ~1.4k | Automated safety check: Pass | MIT | |
| Desktop Dual Repo TestEynzof/Hermes-CN-Desktop | 1.8k | — | ~1.8k | Automated safety check: Pass | Custom licence |
bytedance/deer-flow
Walks through an end-to-end smoke test of a DeerFlow deployment: pull the latest code, deploy with Docker or locally, verify services, run health checks and write a report.
different-ai/openwork
Drives a running OpenWork desktop window over CDP from the shell to evaluate JS, take screenshots, start sessions and send prompts for hand checks.
gronxb/hot-updater
Run end-to-end OTA verification for examples/v0.85.0 with agent-device.
scalar/scalar
Minimal starter runbook for cloud agents to install dependencies, run packages, execute tests, and troubleshoot the Scalar monorepo quickly.
Eynzof/Hermes-CN-Desktop
A skill your agent uses when starting or verifying Hermes Agent CN Desktop with the latest Hermes-CN-Desktop and Hermes-CN-Core branches — dev smoke test (pnpm tauri:dev), packaged beta/release…
module-federation/core
Run this repository's local CI parity commands and pnpm run ci:local jobs.
puritysb/AgentDeck
A skill your agent uses when the user asks to end, wrap up, clear, hand off, or prepare continuity for a Codex/AgentDeck session.
puritysb/AgentDeck
Build, install, launch, and configure AgentDeck on connected Android, Apple, ESP32, Stream Deck, Ulanzi Studio, or daemon targets.
puritysb/AgentDeck
Memory-allocation discipline for AgentDeck ESP32 firmware (esp32/).
puritysb/AgentDeck
A skill your agent uses for AgentDeck build, dev-server, Stream Deck plugin, Android release, or Apple/Xcode diagnostic workflows.
puritysb/AgentDeck
Read, claim and report an explicitly shared AgentDeck request using its request ID through an already approved local MCP connection.
Works with
Categories
Diagnose AgentDeck Stream Deck/PTY option synchronization, cursor state, hook ingestion, and bridge state-machine issues. Sdc Diagnose is an agent skill from puritysb/AgentDeck. Diagnose AgentDeck Stream Deck/PTY option synchronization, cursor state, hook ingestion, and bridge state-machine issues.
Sdc Diagnose fits situations like: testing & QA work in your project.
Run `npx skills add puritysb/AgentDeck --skill sdc-diagnose -a claude-code`. Or copy the skill folder (.agents/skills/sdc-diagnose in puritysb/AgentDeck) into .claude/skills/sdc-diagnose in your project. Claude Code loads it when a task matches its description.
Run `npx skills add puritysb/AgentDeck --skill sdc-diagnose -a codex`. Or copy the skill folder (.agents/skills/sdc-diagnose in puritysb/AgentDeck) into .agents/skills/sdc-diagnose in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add puritysb/AgentDeck --skill sdc-diagnose -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/sdc-diagnose, .gemini/skills/sdc-diagnose, .github/skills/sdc-diagnose and .opencode/skills/sdc-diagnose in your project.
Going by SKILL.md and its folder, Sdc Diagnose needs the command-line tools its instructions call (git and pnpm).
SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Sdc Diagnose is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.5k tokens (SKILL.md is roughly 5.8k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Sdc Diagnose: DeerFlow Smoke Test (bytedance/deer-flow, 84k stars), OpenWork Desktop CDP Driver (different-ai/openwork, 24k stars), E2E (gronxb/hot-updater, 1.8k stars) and Cloud Agents Starter (scalar/scalar, 16k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
puritysb (a GitHub user) maintains it in puritysb/AgentDeck, which has 260 GitHub stars. The repository holds 6 skills in this directory. The repository was last updated on October 9, 2026.
Source: puritysb/AgentDeck on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.