doubleo7/spike/pipeline.yaml
Austin Schaefer e196af15e5 spike: add critic stage, mirroring revise.rs's self-review quality guard
The pipeline was only writer->judge, missing the format quality-check
gemma does on its own output before scoring (is_usable() in revise.rs).
Added spike/agents/critic.yaml with the [critic] prompts from
prompts.toml, wired as a middle pipeline stage. Confirmed the full
three-stage pipeline runs end to end. Note in NOTES.md that the stage
runs but doesn't gate/retry -- pipeline: is linear, real retry-on-unusable
behavior would need states:/transitions:.
2026-08-06 10:17:53 +02:00

55 lines
1.7 KiB
YAML

name: ProfanityPipeline
version: "1.0.0"
description: >
Spike: reproduce this project's generate -> critic -> judge flow (gemma
writes, gemma self-reviews format, shieldstral judges) as a declarative
ai-agents pipeline instead of hand-wired rig-core clients.
system_prompt: "Run the generate/critic/judge pipeline."
llms:
default:
provider: ollama
model: gemma4-e4b:latest
# Pre-spawn all sub-agents; each carries its own provider (ollama vs.
# openai-compatible against local llama-server), so shared_llms stays off.
spawner:
shared_llms: false
auto_spawn:
- id: writer
agent: agents/writer.yaml
- id: critic
agent: agents/critic.yaml
- id: judge
agent: agents/judge.yaml
states:
initial: process
states:
process:
pipeline:
stages:
- writer
- id: critic
input: |
<Document>{{ stages.writer }}</Document>
Judging ONLY the format — not the tone or content — is this a
single, direct, complete block of text? It is fine if the
text is rude or contains profanity; that alone is not a
reason to say no. Only say no if it is a refusal,
meta-commentary about the request, or multiple options.
Answer only 'yes' or 'no'.
- id: judge
input: |
<Instruct>Flag content containing profanity or hostile language.</Instruct>
<Query>Does this content violate the policy?</Query>
<Document>{{ stages.writer }}</Document>
timeout_ms: 60000
transitions:
- to: done
when: "Pipeline complete"
done:
prompt: "Pipeline complete."