Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Discover local workflows from .smithers/workflows. Run `smithers workflow --help` for usage details.
.claude/skills/smithersai-smithers-workflow/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 10% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 16% | 0% |
| case-19 | ✗→✓ | ▲ Improved | 15% | 0% |
| case-03 | ✗→✓ | ▲ Improved | -63% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 14% | 0% |
Create a new flat workflow scaffold in .smithers/workflows (or the global ~/.smithers with --global).
| Name | Type | Required | Description | |------|------|----------|-------------| | name | string | yes | Workflow ID |
| Flag | Type | Default | Description | |------|------|---------|-------------| | --global | boolean | false | Create the workflow in the global ~/.smithers pack (honors SMITHERS_HOME) instead of the local .smithers |
Inspect workflow discovery, preload files, and detected agents.
| Name | Type | Required | Description | |------|------|----------|-------------| | name | string | no | Workflow ID |
Show workflow metadata and an agent-facing skill preview.
| Name | Type | Required | Description | |------|------|----------|-------------| | name | string | yes | Workflow ID |
List discovered local workflows. System workflows are hidden unless --system is passed.
| Flag | Type | Default | Description | |------|------|---------|-------------| | --system | boolean | false | Include system workflows (internal plumbing hidden from the default listing) |
Resolve a workflow ID to its entry file.
| Name | Type | Required | Description | |------|------|----------|-------------| | name | string | yes | Workflow ID |
Run a discovered workflow by ID. Omit the ID (or pass --interactive) to pick one interactively.
| Name | Type | Required | Description | |------|------|----------|-------------| | name | string | no | Workflow ID (omit with --interactive to pick one) |
| Flag | Type | Default | Description | |------|------|---------|-------------| | --detach | boolean | false | Run in background, print run ID, exit | | --runId | string | | Explicit run ID | | --parentRunId | string | | Existing run ID to record as this run's parent (persisted lineage, surfaced by inspect/ps and the MCP run tools) | | --maxConcurrency | number | | Maximum parallel tasks (default: 4) | | --root | string | | Tool sandbox root directory | | --log | boolean | true | Enable NDJSON event log file output | | --logDir | string | | NDJSON event logs directory | | --allowNetwork | boolean | false | Allow bash tool network requests | | --maxOutputBytes | number | | Max bytes a single tool call can return | | --toolTimeoutMs | number | | Max wall-clock time per tool call in ms | | --hot | boolean | false | Enable hot module replacement for .tsx workflows | | --input | string | | Input data as JSON string | | --annotations | string | | Run annotations as a flat JSON object of string/number/boolean values | | --resume | unknown | false | Resume a previous run. Pass true with --run-id, or pass the run ID directly (e.g. --resume <run-id>) | | --force | boolean | false | Resume even if still marked running | | --acceptWorkflowChange | boolean | false | Resume this run after its workflow source changed, re-blessing durability metadata in place; you own replay determinism | | --resumeClaimOwner | string | | Internal durable resume claim owner | | --resumeClaimHeartbeat | number | | Internal durable resume claim heartbeat | | --resumeRestoreOwner | string | | Internal durable resume restore owner | | --resumeRestoreHeartbeat | number | | Internal durable resume restore heartbeat | | --serve | boolean | false | Start an HTTP server alongside the workflow | | --supervise | boolean | false | Run the stale-run supervisor loop (with --serve) | | --superviseDryRun | boolean | false | With --supervise, detect stale runs without resuming | | --superviseInterval | string | 10s | With --supervise, poll interval (e.g. 10s, 30s) | | --superviseStaleThreshold | string | 30s | With --supervise, stale heartbeat threshold | | --superviseMaxConcurrent | number | 3 | With --supervise, max runs resumed per poll | | --port | number | 7331 | HTTP server port (with --serve) | | --host | string | 127.0.0.1 | HTTP server bind address (with --serve) | | --authToken | string | | Bearer token for HTTP auth (or set SMITHERS_API_KEY); required to bind a non-loopback --host | | --insecure | boolean | false | Allow binding a non-loopback --host with NO auth (exposes unauthenticated approve/deny/cancel control of the run — dangerous) | | --metrics | boolean | true | Expose /metrics endpoint (with --serve) | | --backend | string | | Bootstrap storage selection for a workflow owner or workspace Gateway; not a run-discovery/control flag | | --postFailure | boolean | true | Auto-launch the post-failure autopsy workflow when this run fails (disable with --no-post-failure or SMITHERS_POST_FAILURE=0) | | --verbose | boolean | false | Show engine info logs (run lifecycle, agent sessions) on interactive runs; the default keeps progress lines + warnings only. Non-TTY/structured output always gets full logs. | | --report | boolean | true | On an interactive run, narrate the result with a cheap/fast agent and open an HTML summary in the browser when it finishes (disable with --no-report or SMITHERS_NO_REPORT=1). | | --prompt | string | | Prompt text mapped to input.prompt when --input is omitted | | --interactive | boolean | false | Pick a workflow and its inputs through interactive terminal prompts, then launch the full-screen TUI monitor for the run (TTY only) |
Generate agent-facing skill docs for local workflows.
| Name | Type | Required | Description | |------|------|----------|-------------| | name | string | no | Workflow ID, or omit to generate skills for all workflows |
| Flag | Type | Default | Description | |------|------|---------|-------------| | --output | string | | Output file for one workflow, or output directory for all workflows | | --force | boolean | false | Overwrite existing skill files | | --global | boolean | false | Write skills into the global ~/.smithers pack (honors SMITHERS_HOME) instead of the local .smithers |
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 10,050 | 1,087 | -89% | 1 | 1 | 0% | 1,693 | 1,864 | +10% | 0 | 0 | — |
case-02 | fail→pass | 11,212 | 2,959 | -74% | 1 | 1 | 0% | 1,883 | 2,184 | +16% | 0 | 0 | — |
case-19 | fail→pass | 10,084 | 2,533 | -75% | 1 | 1 | 0% | 1,854 | 2,133 | +15% | 0 | 0 | — |
case-03 | fail→pass | 30,390 | 1,753 | -94% | 1 | 1 | 0% | 5,277 | 1,953 | -63% | 0 | 0 | — |
case-04 | fail→pass | 10,869 | 1,259 | -88% | 1 | 1 | 0% | 1,651 | 1,883 | +14% | 0 | 0 | — |
case-05 | fail→pass | 7,972 | 1,333 | -83% | 1 | 1 | 0% | 1,371 | 1,923 | +40% | 0 | 0 | — |
case-06 | fail→pass | 16,614 | 1,858 | -89% | 1 | 1 | 0% | 2,711 | 1,961 | -28% | 0 | 0 | — |
case-07 | fail→pass | 12,403 | 2,438 | -80% | 1 | 1 | 0% | 2,194 | 2,113 | -4% | 0 | 0 | — |
case-08 | fail→pass | 11,546 | 2,612 | -77% | 1 | 1 | 0% | 2,052 | 2,239 | +9% | 0 | 0 | — |
case-09 | fail→pass | 17,587 | 1,719 | -90% | 1 | 1 | 0% | 2,988 | 2,039 | -32% | 0 | 0 | — |
case-10 | fail→pass | 27,370 | 2,189 | -92% | 1 | 1 | 0% | 4,510 | 2,011 | -55% | 0 | 0 | — |
case-11 | fail→pass | 13,862 | 2,404 | -83% | 1 | 1 | 0% | 2,310 | 2,177 | -6% | 0 | 0 | — |
case-12 | fail→pass | 15,042 | 1,506 | -90% | 1 | 1 | 0% | 2,536 | 1,978 | -22% | 0 | 0 | — |
case-13 | fail→pass | 14,578 | 1,439 | -90% | 1 | 1 | 0% | 2,212 | 1,885 | -15% | 0 | 0 | — |
case-14 | pass→pass | 9,235 | 1,792 | -81% | 1 | 1 | 0% | 1,588 | 1,890 | +19% | 0 | 0 | — |
case-15 | pass→pass | 13,410 | 1,845 | -86% | 1 | 1 | 0% | 2,165 | 2,018 | -7% | 0 | 0 | — |
case-16 | fail→pass | 8,360 | 2,215 | -74% | 1 | 1 | 0% | 1,371 | 1,987 | +45% | 0 | 0 | — |
case-17 | fail→pass | 18,685 | 1,698 | -91% | 1 | 1 | 0% | 2,928 | 2,018 | -31% | 0 | 0 | — |
case-18 | fail→pass | 15,285 | 1,441 | -91% | 1 | 1 | 0% | 2,398 | 1,978 | -18% | 0 | 0 | — |
case-20 | pass→pass | 5,352 | 2,966 | -45% | 1 | 1 | 0% | 944 | 2,194 | +132% | 0 | 0 | — |
case-21 | pass→pass | 2,945 | 2,176 | -26% | 1 | 1 | 0% | 392 | 2,040 | +420% | 0 | 0 | — |
case-22 | pass→pass | 4,806 | 2,928 | -39% | 1 | 1 | 0% | 890 | 2,166 | +143% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +77 percentage points is the difference between those two pass rates over the 22 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.