Content Team
A four-role content team with a daily cron trigger. The coordinator receives the initial prompt and delegates to the researcher, writer, and editor in sequence. An ArkEvent cron source runs the pipeline every day at 08:00 UTC.
Architecture
[cron: 08:00 UTC]
│
▼
content-pipeline
├── coordinator (receives topic, sets context)
├── researcher (dependsOn: coordinator)
├── writer (dependsOn: researcher)
└── editor (dependsOn: writer)
YAML
apiVersion: arkonis.dev/v1alpha1
kind: ArkTeam
metadata:
name: content-pipeline
namespace: content-team
spec:
output: "{{ .steps.editor.output }}"
maxTokens: 80000
input:
topic: "AI trends in enterprise software"
audience: "CTOs and engineering leaders"
length: "800 words"
roles:
- name: coordinator
model: llama3.2
systemPrompt: |
You are a content coordinator. Your job is to frame a content brief
for the research and writing team.
Given a topic, audience, and length, write a content brief that includes:
- The angle (what makes this piece interesting)
- 3-5 key questions to answer
- Tone guidance (formal/informal, technical depth)
- SEO focus keyword
Return the brief as structured text.
limits:
maxTokensPerCall: 2000
- name: researcher
model: llama3.2
systemPrompt: |
You are a research specialist. Given a content brief, gather comprehensive
information to support the article. Focus on:
- Specific facts, statistics, and examples
- Expert perspectives and recent developments
- Practical applications and case studies
Organize your research around the brief's key questions.
limits:
maxTokensPerCall: 8000
- name: writer
model: llama3.2
systemPrompt: |
You are a content writer. Using the research provided, write a complete
article that follows the content brief.
Structure: compelling title, introduction hook, body with headers, conclusion.
Match the tone and length specified in the brief.
limits:
maxTokensPerCall: 8000
- name: editor
model: llama3.2
systemPrompt: |
You are a senior editor. Polish the article for publication:
- Improve clarity and eliminate redundancy
- Ensure the opening hook is compelling
- Check that headers guide the reader logically
- Tighten the conclusion
Return only the final, publication-ready article.
limits:
maxTokensPerCall: 8000
pipeline:
- role: coordinator
inputs:
prompt: |
Create a content brief for the following:
Topic: {{ .input.topic }}
Audience: {{ .input.audience }}
Target length: {{ .input.length }}
- role: researcher
dependsOn: [coordinator]
inputs:
brief: "{{ .steps.coordinator.output }}"
prompt: "Research this topic according to the brief."
- role: writer
dependsOn: [researcher]
inputs:
brief: "{{ .steps.coordinator.output }}"
research: "{{ .steps.researcher.output }}"
prompt: "Write the article following the brief, using the research provided."
- role: editor
dependsOn: [writer]
inputs:
brief: "{{ .steps.coordinator.output }}"
draft: "{{ .steps.writer.output }}"
prompt: "Edit and polish this article for publication."
---
apiVersion: arkonis.dev/v1alpha1
kind: ArkEvent
metadata:
name: daily-content
namespace: content-team
spec:
source:
type: cron
cron: "0 8 * * *" # 08:00 UTC every day
targets:
- team: content-pipeline
Deploy to cluster
kubectl create namespace content-team --dry-run=client -o yaml | kubectl apply -f -
kubectl apply -f content-team.yaml
# Check all agents are ready
kubectl get arkagents -n content-team
# Test with a manual trigger before waiting for the cron
ark trigger content-pipeline -n content-team \
--input '{"topic": "LLM observability in production", "audience": "SREs", "length": "600 words"}' \
--watch --timeout 240s
Changing the daily topic
Update spec.input.topic on the ArkTeam to change what the cron run covers:
kubectl patch arkteam content-pipeline -n content-team \
--type=merge -p '{"spec":{"input":{"topic":"Kubernetes operator patterns in 2026"}}}'
The next cron run uses the new topic.
See also
- Building a Pipeline guide — pipeline step patterns
- Triggering Pipelines guide — cron and webhook triggers
- Cost Management guide —
maxTokensand daily limits