Skip to content

๐Ÿญ Pipeline config

The full engine graph โ€” phases, loop agents, and insertable slots โ€” is data-driven. Studio, the progress header, and the orchestrator all read the same file:

.slmcode/pipeline.yaml

๐Ÿงฉ

Insert any agent anywhere: before/after/replace a phase, pick a custom or built-in agent, control the prompt template, fail mode, and where output lands. The UI follows the config.


Quick start

slmcode init                 # writes default pipeline.yaml
slmcode studio               # Pipeline tab โ†’ edit โ†’ Save
curl -s localhost:7420/api/pipeline | jq .

Reset to built-ins:

curl -s -X POST localhost:7420/api/pipeline/reset

Document shape

version: 1
order: [init, skills, context, explore, docs, architect, clarify, plan, split, coord, execute, learn, polish, test, memory, done]

groups:
  - id: prepare
    label: Prepare
    steps: [init, skills, context, explore, docs]
  # โ€ฆ

phases:
  context:
    agent: context
    when: always          # always | auto | never
    label: Context
    tip: Refresh CONTEXT
    group: prepare
  explore:
    agent: explorer
    when: auto
  plan:
    agent: planner
    when: always
  test:
    agent: tester
    when: always

execute:
  default_role: worker
  reviewer: reviewer      # any registered agent id (custom OK)
  corrector: corrector
  max_waves: 2

slots:
  - id: pre-plan-audit
    agent: night-auditor  # custom or builtin
    after: explore        # or before: plan  or replace: plan
    when: always          # or never | query_matches:langgraph
    input: |
      Audit exploration before planning.
      Query:
      {{query}}
      Exploration:
      {{exploration}}
    persist_to: scratch   # scratch | context | memory | none
    fail_mode: continue   # continue | abort
    multipass: false

Phase when

Value Behavior
always Run every time
auto Built-in heuristics (explore/architect/docs)
never Skip (or use a replace slot instead)

Slot placement

Exactly one of:

  • after: <phase> โ€” run after the phase finishes
  • before: <phase> โ€” run before the phase
  • replace: <phase> โ€” run instead of the built-in phase agent

Prompt placeholders

{{query}} ยท {{exploration}} ยท {{plan}} ยท {{phase}}


API

Method Path Purpose
GET /api/pipeline Resolved config + anchors + defaults
PUT /api/pipeline Body { "config": { โ€ฆ } }
POST /api/pipeline/reset Restore defaults

Agents themselves stay under /api/agents (prompt, model, tools, โ€ฆ). The pipeline only references agent IDs and placement.


Studio

Pipeline tab:

  1. Execute loop โ€” pick reviewer / corrector / default worker
  2. Phase agents โ€” bind any registered agent per stage + when
  3. Slots โ€” insert agents around phases with a prompt template

The top progress header is driven by the same order / groups / slots โ€” no hard-coded stage list in the UI.

Board task role dropdowns also list all agents from /api/agents (customs included).


Custom agents + pipeline

  1. Create @night-auditor in Agents (or .slmcode/agents/night-auditor.yaml)
  2. Open Pipeline โ†’ add slot after: explore โ†’ agent night-auditor
  3. Save โ†’ next full run executes the slot and streams it live

Specialist mode also accepts custom agent IDs.


โ˜€๏ธ Made with โ™ฅ by UnicoLab