Use when a task should invoke, compose, derive, or extend workflows from the personal Smithers workflow library, regardless of the current repository. Use when the user wants reusable loops like implement-review-fix, ci-babysit, ci-watch-babysit, or pr-babysit applied to work in another repo such as fhevm, or when a new workflow should be derived from those patterns.
Use this skill when the workflow library should be used as an execution or composition tool, even if the current working repository is not the workflow library itself.
The workflow library lives at:
/Users/work/code/smithers-workflowsThe target work may live elsewhere, for example:
/Users/work/.codex/worktrees/.../fhevmDo not assume the current repo is the workflow repo. Distinguish clearly between:
Work from the workflow repository as it exists now. Do not assume upstream Smithers examples still match this repo.
This skill is for choosing and using workflow patterns, not for mechanically forcing Smithers into every task.
Use it when the user wants behavior like:
Do not use it merely because files happen to live in the workflow repo.
If the task is mainly:
then use this skill only for local repo conventions when needed, not as the framing for the whole task.
Check these files first before making changes:
package.jsonsmithers.config.ts.smithers/workflows/implement-review-fix.tsx.smithers/workflows/ci-babysit.tsx.smithers/workflows/ci-watch-babysit.tsx.smithers/workflows/pr-babysit.tsx.smithers/components/ImplementReviewFixLoop.tsx.smithers/components/ReviewLean.tsxAs of this repository state:
smithers-orchestrator from npm.typescript ~5.9.3.zod ^4.3.6.prek.If the dependency stack changes, update this skill to match the current repository rather than preserving stale instructions.
Start from the nearest existing workflow:
implement-review-fix
ci-babysit
ci-watch-babysit
pr-babysit
When a request can be expressed as a composition or refinement of one of these, modify or derive that workflow.
Common target-repo mappings:
implement-review-fixci-babysitci-watch-babysitpr-babysitimplement-review-fix with ci-watch-babysit and pr-babysitOnly create a brand-new workflow when:
Use the repo-local Smithers CLI, not bunx smithers-orchestrator. This repository relies on its installed runtime and workflow pack:
./node_modules/.bin/smithers
When invoked from another repo, keep the working-repo boundary explicit:
/Users/work/code/smithers-workflowsList available workflows:
bun run workflow:list
Run a workflow directly:
./node_modules/.bin/smithers up .smithers/workflows/<workflow>.tsx
Typical examples:
./node_modules/.bin/smithers up .smithers/workflows/implement-review-fix.tsx --input '{"prompt":"Implement the requested change."}'
./node_modules/.bin/smithers up .smithers/workflows/ci-babysit.tsx --input '{"repo":"owner/name","run":"123456789"}'
./node_modules/.bin/smithers up .smithers/workflows/pr-babysit.tsx --input '{"repo":"owner/name","pr":"42"}'
When a workflow is launched for monitoring, babysitting, or any long-running task, also make the local dashboard available unless it is clearly unnecessary.
For long-running workflows, a detached run alone is not sufficient. Timer-based workflows persist state in smithers.db, but they do not keep resuming themselves unless a supervisor loop is running.
For these workflows:
ci-watch-babysitTimerPreferred approach: use tmux so the supervisor is owned by the OS session rather than the launching chat/tool process.
Launch all three:
tmux sessionUse:
./node_modules/.bin/smithers up -d .smithers/workflows/<workflow>.tsx --input '{...}'
bun run supervisor:start
bun run dashboard
Supervisor lifecycle commands:
bun run supervisor:start
bun run supervisor:status
bun run supervisor:stop-if-idle
Do not present smithers up by itself as durable monitoring. Without supervise, the run will reach waiting-timer, the CLI will exit, and nothing will resume it.
Operational notes:
supervisor:start must be treated as idempotent.
Reuse one supervisor per Smithers DB / repo runtime, not one per workflow.
Prefer reusing the same tmux session name: smithers-supervisor.
If the supervisor command changes, replace the session intentionally instead of spawning duplicates.
Report to the user that the long-lived supervisor is running in tmux, not inside the chat process.
If tmux is unavailable, state that clearly and fall back to a normal long-lived terminal process only as a weaker alternative.
Start the dashboard with:
bun run dashboard