Skip to content

Story: Ship a new persona

The rig needed a design agent — someone to produce system-level proposals before Dev-E starts implementing. The name: Architect-E. The starting assets: a mascot image (a blueprint-carrying robot, generated via DALL-E) and a one-paragraph character brief.

From those two inputs to a deployed, reviewing agent: four PRs, one Discord introduction, and about three hours.


Every rig agent starts with a character file — the personality block in the HelmRelease. This is the system prompt that shapes the agent’s behavior. It’s not a full AGENTS.md; it’s the compressed essentials: name, role, perspective, communication style, and a few “always” / “never” rules.

Architect-E’s initial character brief, written by the operator:

You are Architect-E, the system design agent for the Dashecorp rig.
You read user stories and produce architecture proposals: C4 diagrams,
sequence flows, interface contracts, tradeoff tables. You write proposals,
not code. You never implement — you inform Dev-E what to implement.
You always ask: what are the failure modes? What's the simplest thing
that could work? What does this look like in 6 months?

PR rig-gitops#88 added the character file as apps/architect-e/character.yaml. Review-E approved it with a single comment: “Consider adding explicit guidance on when Architect-E should defer to a human vs. propose independently.”

The operator added a sentence. Merged.


PR rig-gitops#89 added apps/architect-e/rig-agent-helmrelease.yaml — the Flux HelmRelease that deploys the agent:

apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
name: architect-e
namespace: rig-architect-e
spec:
chart:
spec:
chart: rig-agent
version: ">=1.0.0"
sourceRef:
kind: HelmRepository
name: rig-charts
values:
replicaCount: 1
character:
name: architect-e
role: design
personalityFile: character.yaml
env:
AGENT_ID: architect-e
CONDUCTOR_URL: <conductor's in-cluster API endpoint> # cluster-internal — exact host/port not surfaced publicly
triggerMode: cron
cron: "*/15 * * * *" # every 15 minutes

The same base Helm chart powers Dev-E, Review-E, and now Architect-E. The chart handles: container spec, resource limits, env injection, service account, and the Claude Code CLI entrypoint. The only Architect-E-specific parts are the character block and the cron schedule.

Review-E’s comment on the HelmRelease: “The cron: "*/15 * * * *" schedule will fire while there’s nothing to review. Consider a triggerMode: event approach that wakes on conductor dispatch.” This was a design decision left for a follow-up issue (rig-docs#191).

Merged after one revision (correcting the chart version constraint).


Flux reconciled the new HelmRelease within 2 minutes of merge. The Architect-E pod started, ran its cold-start fetch (BRAIN.md), and polled the conductor for design assignments.

There were none yet — the conductor’s dispatch logic hadn’t been updated to route type: design issues to architect-e. That was PR rig-conductor#178: add AGENT_TYPE_DESIGN routing in the dispatch switch.

With routing in place, the operator filed a test issue: “Propose architecture for agent-to-agent handoff protocol.” It hit Architect-E’s queue within 15 seconds.

Architect-E’s first output was a 900-word proposal in src/content/docs/proposals/ with:

  • A Mermaid sequence diagram showing the handoff flow
  • A tradeoff table (event-based vs. direct API call vs. shared queue)
  • Three open questions for the operator to decide before Dev-E starts

Review-E reviewed the proposal PR. Her verdict: APPROVED with one comment: “The tradeoff table omits latency characteristics — add p50/p99 estimates.”

Architect-E addressed it in a follow-up commit. Merged.


Four PRs. Three hours. A new persona from brief to deployed:

PRWhat changed
rig-gitops#88Character file
rig-gitops#89HelmRelease
rig-conductor#178Dispatch routing for design issues
rig-docs#proposalFirst output

The pattern scales. Adding a new rig agent is a HelmRelease edit, a character file, and a dispatch routing rule. The shared chart, shared conductor, and shared memory mean every new persona inherits the rig’s safety gates, cost attribution, and cross-agent learning from day one.

Next: the moment Review-E said “no” — and was right.