SDTK-AGENT

A durable DAG controller for multi-step agent workflows — not another pipeline stage

SDTK-AGENT is the cross-cutting orchestration layer above sdtk-code agent-team. It doesn't own one SDLC phase — it chains multiple steps, adapters, and human approval gates into one resumable run, driven entirely by a file ledger.

Public packageCross-cutting orchestratorZero new runtime dependencyClaude + Codex

> A DAG CONTROLLER, NOT A CHATBOT MEMORY

Every step writes to disk before the next one starts — so a workflow can survive being paused.

A single agent-team run is great for one focused task. SDTK-AGENT sits above it: a stateless-CLI-over-file-ledger controller that chains several steps into one durable run, with human approval gates wherever a decision needs a person, and can resume from a completely different process because every command reads and writes the same on-disk state.

Without SDTK-AGENT

  • Multi-step workflows live in one long chat session
  • Close the tab, lose the state — start over
  • Approval gates are a message you hope gets read
  • No record of what ran, what was skipped, or why

With SDTK-AGENT

  • Workflow state lives in a run ledger on disk, not in a chat
  • `run continue` resumes from any process, any time
  • `gate approve`/`gate reject` block downstream until a person decides
  • `run report` renders a durable record of the whole run
  1. Step 1run start

    Validates the workflow + runtime map, freezes both into a new run ledger. Does not execute anything yet.

    run_id printed — the handle for every subsequent command.

  2. Step 2run continue

    Dispatches every ready task through its mapped adapter (manual / shell / sdtk-cli / Hermes Kanban dry-run), applies the state-machine reducer, and stops at the first block, wait, or completion.

    state.json updated on disk — safe to stop and resume from a different process.

  3. Step 3gate approve / reject

    A human reviews a `human_gate` stage and writes an approval decision — approved, rejected, or needs_changes with notes.

    approvals/<gate_id>.json — downstream tasks stay blocked until this exists.

  4. Step 4run report

    Reads state.json + all evidence files and renders a final Markdown report of the whole run.

    reports/final_report.md — a durable record, not a chat transcript.

When a solo founder reaches for this

You're evaluating an auto self-improvement workflow for a bot team: search the wiki, maybe do external research, synthesize a recommendation, get it approved, draft a spec and plan, get that approved too, implement, verify, get ops sign-off, then report. That's nine steps and three human checkpoints — too much for one chat session to hold reliably. sdtk-agent run start creates the ledger, run continue drives it forward one ready task at a time, and gate approve unblocks each checkpoint. Come back tomorrow, run continue again — it picks up exactly where it left off.

Product truth

What this toolkit does today

These cards summarize the current shipped or internal surface exactly as it exists in the local source tree.

Public package surface

The shipped public package is sdtk-agent-kit with the sdtk-agent CLI: init, workflow validate, run start/continue/status/report, gate approve/reject, and adapter hermes-kanban plan. Zero new npm dependency — Node.js stdlib only.

Stateless-CLI-over-file-ledger

Every command reads and writes the run ledger at .sdtk/agent-runtime/runs/<run_id>/ before it exits. There is no in-memory session — a run can be inspected, resumed, or driven forward from a completely different process at any time.

Four adapters, one state machine

manual (human supplies evidence), shell (allowlisted binaries only), sdtk-cli (dispatches to other SDTK CLIs and normalizes their output), and hermes-kanban (pure dry-run card-plan compiler — no live gateway). The state machine evaluates skip_when, gates, and retries the same way regardless of adapter.

Current command and workflow surface

Core commands

sdtk-agent init
sdtk-agent workflow validate --file workflow.json
sdtk-agent run start --workflow workflow.json --runtime-map runtime-map.json --feature-key KEY --goal "..."
sdtk-agent run continue --run-id <run_id>
sdtk-agent run status --run-id <run_id>
sdtk-agent run report --run-id <run_id>

Human gates

sdtk-agent gate approve --run-id <run_id> --gate <gate_id> --approved-by <name>
sdtk-agent gate reject --run-id <run_id> --gate <gate_id> --rejected-by <name> --needs-changes

Hermes Kanban (dry-run only)

sdtk-agent adapter hermes-kanban plan --workflow workflow.json --runtime-map runtime-map.json --feature-key KEY
dry_run: true is always present — no live card is ever created by this command

Runtime support

RuntimeProjectUserNotes
Clauden/an/aNot runtime-aware — sdtk-agent installs no skills for either runtime. sdtk init still runs its (skill-free) init as part of the unified suite setup.
Codexn/an/aIdentical behavior to Claude — the CLI and ledger are runtime-independent by design.

Validated truth

  • Gold benchmark: 30/30 test cases pass, including the Hermes Kanban dry-run adapter (TC-027/028).
  • Unit tests across Phase 1-3: 72/72 pass.
  • End-to-end scenario runner (HerBot self-improvement workflow, 12 stages, 3 human gates): 20/20 pass.
  • Verified with a real npm registry install — not just a local tarball — before publishing.

Boundaries and honest limits

  • SDTK-AGENT does not replace sdtk-code agent-team's execution or governance — it delegates to it via the manual/shell/sdtk-cli adapters.
  • The hermes-kanban adapter is dry-run only in this release — no live Hermes gateway is ever called, no card is ever created.
  • It is not a scheduler, cron system, or long-running daemon — every command is a single stateless invocation.
  • Most workflows don't need it. Reach for it when a workflow has more than one step and needs to survive being paused.

Source-of-truth docs

Toolkit usage guide

products/sdtk-agent/governance/SDTKAGENT_TOOLKIT_USAGE_GUIDE.md

Full command reference, adapter details, workflow/runtime-map/evidence JSON schemas, ledger layout, safety model.

Package landing page

products/sdtk-agent/distribution/sdtk-agent-kit/README.md

npm-facing package truth for sdtk-agent-kit, including install/uninstall and quick start.

Runtime controller spec

governance/ai/reviews/shared/SDTK_AGENT_RUNTIME_CONTROLLER_SPEC_R1_20260630.md

The invariants (I-1..I-9), ledger schema, state machine, and adapter contracts this controller implements.

Position in the SDTK control plane

Where SDTK-AGENT sits in the chain

SDTK-AGENT is the orchestration layer that wraps every owner. It does not own one phase — it chains multi-step workflows across any of them, dispatching work through agent-team, shell commands, other SDTK CLIs, or a Hermes Kanban dry-run plan, with human approval gates wherever an owner needs to sign off.

  1. Orchuses
  2. PMuses
  3. BAuses
  4. ARCHuses
  5. DEVuses
  6. QAuses

Highlighted owners actively use SDTK-AGENT as their execution pack.