Two things land together:
1. Ships the 5 workflow recipes as TOML files under
templates/workflows/*.toml:
- research_only (hub_spoke research → MD + PDF)
- research_and_code (research → coding loop until INT-XX drained)
- security_hardening (scan → research patches → coding with
reviewer approval + full MCP bundle)
- refactor (single-pass coding with dep audit
preamble + before/after benchmarks)
- benchmark (author + baseline benchmarks per stack)
Each declares phases[], per-phase config, default_team_template.
Loaded read-only into an in-memory registry (workflow_registry)
via OnceLock — no DB row per recipe.
2. Ships the mission-launch orchestrator that closes the loop from
Slice 3.5d's mechanics. When a mission transitions draft→running,
`mission_orchestrator::on_launch`:
- Reads mission.team_template_id (skips if unset)
- Loads the team template detail (roles + skills bindings)
- Builds a topology graph from role slots via cm_topology::build
- Inserts the teams row + stamps template_id/version/risk_profile/mcp_bundles
- For each role: agent insert, model binding, runtime provision
(opt-in via RuntimeProvisioner::from_env), brain_seed::ingest
(Slice 3.5d), agent_template_link::upsert (Slice 3.5d),
team_members bind, audit trail
- UPDATE missions SET team_id = ...
Wired into routes::missions::set_status when prior.status='draft'
and new='running'. Failures log + are non-fatal (mission still
flips to running so the user can inspect + retry).
With this, Slice 3.5d's brain-seed + link machinery actually gets
populated, and the MCP skills server's template-defaults-merge path
(Slice 3.5b/d) starts serving real bindings to real agents.
Follow-ups (Slice 5-8):
- Task-card parser watches run events for TASK/COMPLETED markers
→ mission_tasks rows
- PDF renderer worker turns MD artifacts into PDFs
- Before/after benchmark runner honors phases[].config.benchmark
- Security scan MCP bundle exposes cargo-audit/gitleaks/trivy/semgrep
- Level-up endpoints diff learned-vs-seeded via agent_template_link
Co-Authored-By: Claude Opus 4.7 <[email protected]>
21 lines
679 B
TOML
21 lines
679 B
TOML
key = "benchmark"
|
|
title = "Benchmark"
|
|
blurb = "Author + baseline benchmarks so subsequent refactors can be measured before/after."
|
|
requires_repo = true
|
|
|
|
[[phases]]
|
|
kind = "benchmark"
|
|
order_idx = 0
|
|
[phases.config]
|
|
# Slice 7 runs the benchmark_snapshots baseline pass here. This
|
|
# workflow's job is to AUTHOR the benchmarks + establish the
|
|
# baseline; subsequent refactor missions consume them.
|
|
mode = "author_and_baseline"
|
|
# Which harness to use; per-stack defaults if unset:
|
|
# rust → criterion / cargo bench
|
|
# ts/js → vitest --bench / mitata
|
|
# py → pytest-benchmark
|
|
harness = "auto"
|
|
|
|
default_team_template = "rust_sdlc"
|