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


Apache 2.0 · ARKONIS