docs(prompts): add README with structure, schema, and usage

This commit is contained in:
anthonyrawlins
2025-09-06 15:46:17 +10:00
parent a784398a10
commit e67d669df9

80
prompts/README.md Normal file
View File

@@ -0,0 +1,80 @@
# CHORUS Prompts Directory
This directory holds runtimeloaded prompt sources for agents. Mount it into containers to configure prompts without rebuilding images.
- Role prompts (S): YAML files defining agent roles and their `system_prompt`.
- Default instructions (D): A shared Markdown/TXT file applied to all agents.
- Composition: Final system prompt = S + two newlines + D.
## Mounting and Env Vars
- Bind mount (example): `-v /srv/chorus/prompts:/etc/chorus/prompts:ro`
- Env vars:
- `CHORUS_PROMPTS_DIR=/etc/chorus/prompts`
- `CHORUS_DEFAULT_INSTRUCTIONS_PATH=/etc/chorus/prompts/defaults.md` (optional)
- `CHORUS_ROLE=<role-id>` (selects which S to compose with D)
Reload: prompts are loaded at startup. Restart containers to pick up changes.
## Files and Structure
- `defaults.md` (or `defaults.txt`): global Default Instructions D
- `roles.yaml` (optional): multiple roles in one file
- `*.yaml` / `*.yml`: one or more files; all are merged by role ID
Example layout:
```
/etc/chorus/prompts/
defaults.md
roles.yaml
ops.yaml
analysts.yaml
```
## Role YAML Schema
Top-level key: `roles`. Each role is keyed by its role ID (used with `CHORUS_ROLE`).
```yaml
roles:
arbiter:
name: "Arbiter"
description: "Coordination lead for cross-agent planning and consensus."
tags: [coordination, planning]
system_prompt: |
You are Arbiter, a precise coordination lead...
defaults:
models: ["meta/llama-3.1-8b-instruct"]
capabilities: ["coordination","planning","dependency-analysis"]
expertise: []
max_tasks: 3
```
Notes:
- Role IDs must be unique across files; later files overwrite earlier definitions of the same ID.
- `system_prompt` is required to meaningfully customize an agent.
- `defaults` are advisory and can be used by orchestration; runtime currently composes only the prompt string (S + D).
## Default Instructions (D)
Provide generic guidance for all agents, including:
- When/how to use HMMM (collaborative reasoning), COOEE (coordination), UCXL (context), BACKBEAT (timing/phase telemetry)
- JSON envelopes for each message type
- Safety, auditability, and UCXL citation policy
File can be Markdown or plain text. Example: `defaults.md`.
## Composition Logic
- If `CHORUS_ROLE` is set and a matching role exists: final system prompt = role.system_prompt + "\n\n" + defaults
- Else, if defaults present: final = defaults
- Else: fallback to a minimal builtin default
## Validation Tips
- Ensure mounted path and env vars are set in your compose/stack.
- Role ID used in `CHORUS_ROLE` must exist in the merged set.
- Restart the container after updating files.
## BACKBEAT Standards
Include clear guidance in `defaults.md` on:
- Phases: `prepare|plan|exec|verify|publish`
- Events: `start|heartbeat|complete`
- Correlation: `team_id`, `session_id`, `operation_id`, link to COOEE/HMMM IDs
- Budgets/latency, error reporting, and UCXL citations for escalations
See the repositorys `prompts/defaults.md` for a complete example.