Smithers maintenance
SkillDocs & knowledgeGuides your agent through maintaining Smithers repo work like docs, benchmarks, evals, and flows.
Use Smithers maintenance in Claude, ChatGPT or Ahel Desktop
Free. Sign in, add Smithers maintenance and connect your AI. About a minute.
Also: Claude Code · Cursor · Codex
Then ask your AI: use the Smithers maintenance skill
Details
Instructions available. Your AI can read the instructions. Execution depends on the setup they require.
Account requirements not reviewed. Check the skill instructions before use; Ahel provides instructions and does not run this skill.
No other account needed.
Add Ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.
About this skill
Work on Smithers workspace graph, generated documentation, benchmark or eval evidence, or durable flow authoring in this repository.
What this skill tells your AI
The instructions your AI receives, as published by smithersai/smithers in .agents/skills/smithers-maintenance/SKILL.md and read by Ahel’s review.
Use the owning source and current docs on the revision being changed. The installed smthrs --help and --schema decide CLI syntax when they differ from a checked-in example. The 1.0 CLI separates target graph commands (smthrs targets, show target, build|test|lint|docs|review|ci) from durable flow commands (smthrs flow list|plan|start, smthrs runs ...). A flow start receipt does not prove completion; inspect its run and action receipts.
- Graph or root files: read CONTRIBUTING.md, especially root-file and target-index generation.
PACKAGE.tsdeclares targets; generated companions and the whole declaration-set index have explicit checks. Usepnpm run target-indexwhen that contract calls for regeneration. - Build/install/cache: read build, workspace remote caching, and cache trust. The install flow currently supports pnpm only; Bun can still run target tools. Install actions use expected filesystem boundaries and do not enter the shared engine cache. The target
/accache differs from engine step-cache/artifacts; hosted and self-hosted cache implementations need matching route, bound, and credential behavior. - Documentation: read apps/docs/README.md and authoring rules. Author in a package's
docs/directory; the subdomain sites listed inapps/docs/shared/manifest.mjsare generated/staged copies, separate from the mainapps/sitepipeline. Usepnpm run docs:syncandpnpm run docs:checkfor that fleet. For targets reference pages on the main site, follow targets documentation contribution rules and itsingest-reference.mjs/generate-llms.mjssteps. TUI docs are authored on the main site (TUI tabs indocs/learn/, reference indocs/tui/); recording scripts live inapps/tui/docs/recordings/, andapps/tui-docsrecords them and hosts the playground; see its README. Do not hand-edit generated projections. - Benchmarks or performance claims: read scripts/bench/README.md. Distinguish the deterministic PR gate from scheduled observed timings, review candidate baselines, and retain methods and limitations with any claim.
- Evals: read the owning suite's README, including agent and seeded review. Keep offline deterministic gates and deliberate baseline updates separate from live model measurements and spending.
- Flows: read @smthrs/flow and CLI reference. A file flow at
flows/<name>/flow.tsdefault-exports a taggedFlow.makefrom@smthrs/flow. Export its action implementations as the optional namedlayer(Declared.toLayer,AgentAction.layer, orLayer.mergeAll); the registry composes it against the local host platform and agent services. Export implementations directly; the host ownsAction.Implementations. Acquire extra dependencies during layer construction so missing services are refused at load. Use stableNode.capturecallbacks for canonical persisted composition and matchingimplementationVersiondeclarations/registrations for sealed idempotent actions. New authoring uses Effect Schema, not retired JSX/Zod task examples. A decision inside a flow (classify, filter, rank, route, yes/no over items) asks Jev throughClassifier.makeand the hostEvaluator, as one request with one question per item, never through an LLM seat; see jev-check. - Plans: read plan and plan-store. Node payloads are persisted as plaintext in
node_jsonand approval cards without redaction; keep credentials out and resolve them at dispatch. Persisted plans are verified on write and read, and append uses an immutable-history compare-and-swap over the approved base and running prefix. - Generated or untrusted flow declarations: read core planning rules.
Graph.buildexecutes bodies and planning callbacks with the caller's process authority; capability/effect metadata does not sandbox that code. Translate validated data into nodes with trusted code, or plan untrusted code in an externally isolated process. - Runtime or persistence: read flows runtime, engine, and engine-store.
@smthrs/flowdeclares behavior, the engine makes decisions, and the storage seam changes where state lives. Node and Bun use distinct native host/SQL adapters over the same SQLite migrations, journal, stores, cache, and recovery. Run migrations before SQL-backed services and use one writer for journal/state transitions; demonstrate cross-runtime recovery and cancellation. Browser bundling alone does not establish durable browser execution. - Journal and ownership fencing: read journal and run-store. Ownership is arbitrated by the journal's injectable
Consensusstrategy (SqlConsensusoverflows_consensus_leasesby default,Consensus.layerLocalin-process); fenced durable emissions join itsguard, so the run must be claimed and activated through it, and the journal and run store must share one strategy instance.RunStoremirrors the outcome onflows_runs, so a fixture that forges ownership in SQL writes both.emitDurableUnfencedis only for genuinely ownerless admission or repair, never a bypass forfence_lost. An expired lease alone does not authorize takeover;LivenessEvidencemust be current, and an unknown probe counts as alive. - Step cache migrations: read step-cache. The earlier 1.0 RC migration 2002 identity is accepted explicitly; preserve its ledger and cached results during upgrade. An unknown migration identity remains a failure, not a reason to delete a runtime database.
- Time travel: read time-travel before changing fork, rewind, or their receipts. A durable fork reuses completed prefix attempts by their original action identities and gives new work child-scoped keys; rewind archives future waits and refuses crossed irreversible effects or live descendants. Test recovery after an interrupted mutation.
- Sync: read sync before changing cursors, subscriptions, or gateway mounts. Persist applied cursor progress with consumer state; change feeds are hints and a re-list is authoritative. Preserve rewind generation handling:
lineage_changedrequires rebuilding the projection. Branch RPC code is not currently mounted by the gateway. - Artifacts: read artifact storage. Its filesystem backend needs trusted host filesystem semantics; kernel-guarded filesystem access cannot substitute for them. Treat deletion as explicit and keep engine-store responsible for liveness/reachability.
- Browser host: read platform-browser. Its bash, filesystem, and jj views must share one volume; the tab uses the memory engine, and reload durability depends on the mount's
sync(). Do not infer browser durability from a successful build or import. - Bun host: read platform-bun before changing its filesystem or process adapters. Its trusted filesystem boundary runs the native
smithers-jj-exporthelper (build withcargo build --locked --release -p smithers-ffi --bin smithers-jj-exportor set an absoluteSMITHERS_WORKSPACE_JJ_EXPORT_BINARY);PATHis never searched. Bun's host bundle is not the browser adapter. - Node host: read platform-node before changing containment or process recovery. Confined operations require the
smithers-jj-exporthelper built with the Rust toolchainrust-toolchain.tomlpins; a missing helper refuses them.ProcessLedger.layerMemorycannot recover escaped children after a host crash, and permission checks belong around the host service bundle.
For TUI changes, read apps/tui/AGENTS.md and its linked README. For app/server work, use their scoped AGENTS.md files. Treat issue state and wiki freshness as separate receipts from code status.
Signals
- GitHub stars
- 424
- Forks
- 51
- Last commit
- Oct 2026
Advanced
- Item type
- skill
- Key
smithers-maintenance- Source
- github.com/smithersai/smithers
github.com/smithersai/smithers
Related picks
Skill · mattpocock
The pick for TypeScripttypescript-pro
Skill · jeffallan
The pick for TypeScriptnodejs-backend-patterns
Skill · wshobson
The pick for Noderun-node-tests
Skill · hiroro-work
The pick for Nodehandoff
Skill · mattpocock
More in Docs & knowledgecanvas-design
Skill · anthropics
More in Docs & knowledge