ソース情報
- リポジトリ
- ucsandman/DashClaw
- ソースの最終更新活動
- 2026年8月12日 03:54
- 検出された SKILL.md の言語
- 英語
- スター
- 297
- フォーク
- 49
インストール方法
デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。
ソースファイルを確認
インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。
メニュー
デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。
インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
直接コマンドでは確認用 Prompt が省略されます。実行前にソースを確認してください。
npx skills add https://github.com/ucsandman/DashClaw --skill troubleshootコマンドは1行のまま表示されます。コピー前に横へスクロールして全体を確認してください。
ローカルで確認しますか?SkillsMP が現在取得できるファイルをダウンロードできます。
Governance behavior for AI agents governed by DashClaw. Teaches the governance protocol: when to call guard (risk thresholds), how to interpret decisions (allow/warn/block/require_approval), when to record actions, how to wait for approvals, and session lifecycle management. Loads org-specific policies and capabilities from MCP resources at session start. Use with @dashclaw/mcp-server. Trigger on: governed agent, dashclaw governance, guard policy, approval wait, governed capability, risk threshold, action recording, session lifecycle.
Set up a DashClaw instance, install the CLI tool, and configure Claude Code hooks
The single command that gets a DashClaw change ON MAIN AND LIVE — it resolves everything blocking production, never defers, and never hands back a checklist. Lands feature branches on main (rebase, gate, merge, push so Vercel deploys), bumps the unified platform+SDK version, and realigns every *description* of the system with the live code: README, PROJECT_DETAILS, SDK READMEs, /docs, generated artifacts (API inventory, OpenAPI, download bundles), plugins/skills/hooks/MCP, marketing/landing pages, the drift-prone hardcoded counts (routes, SDK methods, MCP tools/resources, guard policies) and stale freshness date-stamps. The one step it can't finish itself is the credential-gated SDK publish (`npm run release:sdks`). Use whenever the user wants to ship, land, or finish a change — get it on main, make it live, cut a release, bump the version, refresh all the docs, make everything accurate, fix wrong counts or old dates. Not for building or debugging the feature itself.
SOC 職業分類に基づく
SKILL.md を表示中
| name | troubleshoot |
| description | Debug DashClaw errors, signal issues, and misconfigurations |
| license | MIT |
| metadata | {"author":"ucsandman","version":"1.0.0","category":"debugging"} |
Systematic diagnostics for common DashClaw errors, signal anomalies, and configuration issues.
Symptom: API calls return 401.
Checklist:
x-api-key header is set (not Authorization: Bearer)DASHCLAW_API_KEY environment variable is setcurl -H "x-api-key: $DASHCLAW_API_KEY" $DASHCLAW_BASE_URL/api/health
Root cause: DashClaw uses x-api-key header, not Bearer tokens. The middleware does timing-safe comparison first, then falls back to hash lookup.
Symptom: API calls return 403.
Checklist:
DASHCLAW_MODE env var./api/guard and getting 403, a policy is blocking the action — this is working as intended.org_default org blocks API access except onboarding routes. Create a real org first.Symptom: API calls return 429 Too Many Requests.
Defaults:
Fixes:
DASHCLAW_DISABLE_RATE_LIMIT=true for local developmentUPSTASH_REDIS_REST_URL for distributed rate limitingSymptom: API calls return 503.
Checklist:
DASHCLAW_API_KEY set? Missing key → 503 on protected routesDATABASE_URL valid? Check connection stringcurl $DASHCLAW_BASE_URL/api/health/setup page for readiness verification| Gotcha | Explanation |
|---|---|
| Client-sent org headers stripped | Middleware ALWAYS strips x-org-id, x-org-role, x-user-id from requests. Org context comes from the API key, never the client. |
| Two thread systems | Context threads (ct_*) and message threads (mt_*) are separate systems. Don't mix them. |
| org_default blocks APIs | Users in org_default are blocked from most endpoints. Create or join a real org first. |
| API key shown once | Keys are displayed exactly once at creation. If lost, generate a new one. |
| 2MB body size limit | Request bodies larger than 2MB are rejected. |
| HTTPS required in production | Non-HTTPS connections are rejected in production mode. |
| Canonical JSON for signatures | Agent identity signatures require deterministic JSON key ordering. |
| Rate limiting is per-IP | Not per-key or per-agent. Multiple agents on same IP share the limit. |
DashClaw computes 17 signal types (computeSignals in app/lib/signals.ts). The eight most common in agent integrations are below; if signals are firing unexpectedly:
ungoverned_scope("Governance scope narrowed") is the one to check first when the ledger looks too clean. It fires whenDASHCLAW_GOVERNED_CATEGORIESdrops a category below the default set, which means the hook exits before the guard call for that category — those tool calls produce no row at all, so an empty ledger looks the same as a well-behaved agent. Remove the variable or set it toall, and check it for typos; a misspelled category is simply never governed.searchandsystemare ungoverned by default and never raise it.
Trigger: >10 ungoverned actions/hour
Fix: Add guard checks before actions. Use claw.guard() before claw.createAction().
Trigger: Irreversible decisions with risk ≥70 and no approval Fix: Add approval gate policy for high-risk irreversible actions.
Trigger: >3 failures in 24 hours Fix: Check agent logic. Review failed actions in dashboard for patterns.
Trigger: Unresolved dependencies >48 hours old
Fix: Resolve or cancel open loops: claw.resolveOpenLoop(loopId, 'resolved', 'Fixed').
Trigger: ≥2 invalidated assumptions in 7 days Fix: Review assumptions. Agent may be operating on stale beliefs.
Trigger: Unvalidated assumptions >14 days old
Fix: Validate or invalidate old assumptions: claw.validateAssumption(id, true/false, reason).
Trigger: Actions with status running for >1 hour
Fix: Two layers of cleanup:
# Preview what would change
node scripts/_run-with-env.mjs scripts/repair-stale-running-actions.mjs --dry-run --older-than-hours 1
# Apply (status='completed' with "Auto-closed" summary; preserves error_message → 'failed')
node scripts/_run-with-env.mjs scripts/repair-stale-running-actions.mjs --older-than-hours 1
dashclaw_stop.py (Stop hook). At turn end it queries each open action and PATCHes status='completed' only when the action is still running. Terminal statuses written by PostToolUse are preserved. See setup-dashclaw skill.For ad-hoc closure of a single action: claw.updateOutcome(actionId, { status: 'failed', output_summary: 'Timed out' }).
Trigger: Agent heartbeat lost >10 minutes
Fix: Ensure agent sends heartbeats: claw.heartbeat({ status: 'online' }).
curl -sf "$DASHCLAW_BASE_URL/api/health" | jq '.'
Returns {status, version, checks: {database, runtime, realtime, ...}}. Anything other than status: "healthy" points at the failing check.
node scripts/doctor.mjs
Audits the local config — env vars, DB connectivity, schema state, generated artifact freshness.
# Node — guard → createAction → updateOutcome against the live instance
node scripts/_run-with-env.mjs scripts/test-sdk-live.mjs
# Python equivalent
node scripts/_run-with-env.mjs scripts/run-sdk-live-python.mjs
Both scripts emit a real action that you should see appear on /decisions within seconds. If the round-trip fails, the error pinpoints the layer (HTTP, validation, DB).
npm run startup:smoke
Boots Next.js, hits the critical routes, and reports which (if any) fail to respond.
.claude/settings.json has PreToolUse hook configuredBash|Edit|Write|MultiEditpython --versionDASHCLAW_HOOK_MODE — if set to observe, it logs but never blocksDASHCLAW_RISK_THRESHOLD — default is 60, lower it to catch morecurl -H "x-api-key: $KEY" $URL/api/policiesDASHCLAW_HOOK_MODE=observe first to understand what's being caught{tempdir}/dashclaw_last_action_{tool_use_id}DASHCLAW_BASE_URL and DASHCLAW_API_KEY are set for posttool.claude/settings.json has the Stop block (one entry, no matcher needed). If missing, re-run node /path/to/DashClaw/scripts/install-hooks.mjs --target=..ls /tmp/dashclaw_turn_<session_id> (Linux/macOS) or dir %TEMP%\dashclaw_turn_<session_id> (Windows). After Stop fires, that file is deleted and /tmp/dashclaw_stop_cursor_<session_id> appears.echo '{"session_id":"<your-session-id>","transcript_path":"<path/to/.jsonl>"}' \
| python .claude/hooks/dashclaw_stop.py; echo "exit=$?"
Then query the DB for any action_id from that session — tokens_in, tokens_out, model, cost_estimate should be populated.PATCH /api/actions/:id accepts token fields by checking the deployed server version: curl -sf $DASHCLAW_BASE_URL/api/health | jq '.version' should be ≥ 2.13.1. Older deploys silently drop tokens_in/tokens_out.status='running' at turn end. Without it, every interrupted/abandoned tool stays open forever.node scripts/_run-with-env.mjs scripts/repair-stale-running-actions.mjs --older-than-hours 1 (preview with --dry-run first).