docs: reorganize README — all 17 contracts listed, grouped by domain & kind
- All 17 contracts now documented (was 7). Grouped by domain (Infra, GPU, LiteLLM, Zulip, Memory, Ops, Agent-config) and kind (responsibility/function/pattern). - Patterns split: 'Instantiable Templates' vs 'Reference Documents' for clarity. - Contract Structure section now distinguishes responsibility/function/pattern section sets (was incorrectly claiming all contracts share one structure). - Scripts table now covers all 3 scripts/ files (was missing daily-infra-report and zulip-monitor). - Functions: litellm-health, infrastructure-monitoring, hello-world. Templates: hermes-config-template. Reference: infrastructure-control, pi-approval-architecture, zulip-adapter-lessons.
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
# Prose Contracts — Syslog Solution LLC
|
# Prose Contracts — Syslog Solution LLC
|
||||||
|
|
||||||
Operating contracts for Hermes agents. Each `.prose.md` file defines a **responsibility** (recurring duty) or **template** (scaffold) that agents can execute via OpenProse or follow manually.
|
Operating contracts for Syslog agents. Each `.prose.md` file defines a **function** (callable helper), **responsibility** (recurring duty with state), or **pattern** (instantiable knowledge/template) that agents can execute via OpenProse or follow manually.
|
||||||
|
|
||||||
## How Agents Run These Contracts
|
## How Agents Run These Contracts
|
||||||
|
|
||||||
@@ -40,49 +40,91 @@ curl -sL https://git.sysloggh.net/SyslogSolution/prose-contracts/raw/branch/mast
|
|||||||
|
|
||||||
## Available Contracts
|
## Available Contracts
|
||||||
|
|
||||||
### Responsibilities (Recurring Duties)
|
### Responsibilities (Recurring Duties — `kind: responsibility`)
|
||||||
|
|
||||||
| Contract | What It Does | When To Run |
|
Run on trigger or schedule. Maintain persistent world-model state across runs.
|
||||||
|
|
||||||
|
| Contract | Domain | Description |
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
| `memory-audit-maintenance` | Audits & reorganizes an agent's native memory (MEMORY.md, USER.md). Categorizes entries, moves rules to skills, verifies configs, frees up char budget. | Memory >85% usage or user request: "memory audit" |
|
| `memory-audit-maintenance` | Memory | Audits & reorganizes an agent's native memory (MEMORY.md, USER.md). Categorizes entries, moves rules to skills, verifies configs. |
|
||||||
| `zulip-health` | Checks Zulip connectivity, message flow, and bot responsiveness. | On Zulip issues or periodic health check |
|
| `build-zulip-plugin` | Zulip | Generates and iteratively improves a Hermes Zulip platform plugin. Each run produces a new version. |
|
||||||
| `litellm-health` | Verifies LiteLLM proxy connectivity, model availability, and key rotation. | On inference failures or periodic check |
|
| `zulip-health` | Zulip | Checks Zulip connectivity, message flow, and bot responsiveness. |
|
||||||
| `litellm-self-heal` | Attempts to fix common LiteLLM issues (key rotation, restart, config reload). | When litellm-health reports failures |
|
| `zulip-mention-reliability` | Zulip | Diagnoses and fixes @mention detection issues in Zulip. |
|
||||||
| `zulip-mention-reliability` | Diagnoses and fixes @mention detection issues in Zulip. | On missed @mention reports |
|
| `zulip-approval-fix` | Zulip | Fixes broken /approve and /deny slash commands for Hermes agents. |
|
||||||
| `pm2-self-heal` | Restarts crashed PM2 processes and verifies recovery. | On PM2 process failure |
|
| `litellm-self-heal` | LiteLLM | Standing responsibility — monitors LiteLLM health and auto-remediates: key rotation, container restart, config reload, roster fixes. |
|
||||||
|
| `gpu-fleet` | GPU | Manages the GPU inference fleet: model deployment, registration, health checks, LiteLLM sync. |
|
||||||
|
| `gpu-monitor` | GPU | Comprehensive GPU fleet monitor — polls sidecars, router, LiteLLM every 15s, renders SSE dashboard. |
|
||||||
|
| `proxmox-monitor` | Infra | Proxmox cluster + Docker monitoring via the existing Grafana/Prometheus stack on CT 116. |
|
||||||
|
| `pm2-self-heal` | Ops | Monitors PM2 processes (abiba-zulip, abiba-telegram) and auto-restarts any that are stopped or errored. |
|
||||||
|
|
||||||
### Templates (Scaffolds)
|
### Instantiable Templates (`kind: pattern` — run with `prose run`)
|
||||||
|
|
||||||
| Contract | What It Does | Parameters |
|
Generate configs or perform a transformation on demand. No persistent state.
|
||||||
|
|
||||||
|
| Contract | Description | Key Parameters |
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
| `hermes-config-template` | Generates a standard Hermes config for any agent. Enforces shared infra (Firecrawl, SearXNG, RA-H OS MCP, LiteLLM) while keeping model choices flexible. | `agent_name` (required), `default_model`, `default_provider`, `fallback_model`, `auxiliary_model` |
|
| `hermes-config-template` | Standard Hermes config for any Syslog agent. Enforces shared infra (Firecrawl, SearXNG, RA-H OS MCP, LiteLLM). | `agent_name` (required), `default_model`, `auxiliary_model` |
|
||||||
|
|
||||||
### Scripts
|
### Reference Documents (`kind: pattern` — read for context, not run)
|
||||||
|
|
||||||
| File | What It Does |
|
Encode topology, architectural decisions, and lessons. You read them before planning; you don't `prose run` them.
|
||||||
|
|
||||||
|
| Contract | Description |
|
||||||
|---|---|
|
|---|---|
|
||||||
| `pm2-self-heal.sh` | Shell script to restart crashed PM2 processes (companion to the prose contract) |
|
| `infrastructure-control` | Full topology and control pattern: 5-node Proxmox cluster, 3 Docker ecosystems, NFS storage, network verification, IP-first configuration doctrine. |
|
||||||
|
| `pi-approval-architecture` | pi's approval model vs Hermes, available commands, architectural constraints. |
|
||||||
|
| `zulip-adapter-lessons` | Failure modes, fixes, and patterns from building the pi Zulip extension and Hermes Zulip plugin. |
|
||||||
|
|
||||||
|
### Functions (`kind: function` — callable helpers, no state)
|
||||||
|
|
||||||
|
Called on-demand as single-render tools.
|
||||||
|
|
||||||
|
| Contract | Description |
|
||||||
|
|---|---|
|
||||||
|
| `litellm-health` | Verifies LiteLLM inference stack health: containers, router, GPU fleet, model inference, agent keys. |
|
||||||
|
| `infrastructure-monitoring` | Deploys Prometheus + GPU exporters + Grafana to monitor the inference fleet from CT 116. |
|
||||||
|
| `hello-world` | Minimal test contract — verifies the OpenProse execution pipeline works. |
|
||||||
|
|
||||||
|
### Scripts (`scripts/`)
|
||||||
|
|
||||||
|
Companion shell scripts that contracts delegate to.
|
||||||
|
|
||||||
|
| File | Description |
|
||||||
|
|---|---|
|
||||||
|
| `daily-infra-report.py` | Generates the daily infrastructure dashboard (HTML email to jerome@sysloggh.com). |
|
||||||
|
| `zulip-monitor.sh` | Monitors Zulip bot health and message flow. |
|
||||||
|
| `pm2-self-heal.sh` | Shell companion to the pm2-self-heal contract — restarts crashed PM2 processes. |
|
||||||
|
|
||||||
## Contract Structure
|
## Contract Structure
|
||||||
|
|
||||||
Every `.prose.md` file has the same structure:
|
Kinds determine the section set.
|
||||||
|
|
||||||
|
**`kind: responsibility`** (recurring duty with persistent state):
|
||||||
|
```
|
||||||
|
## Maintains — World-model state this contract tracks
|
||||||
|
## Parameters — Tunable inputs (with defaults)
|
||||||
|
## Requires — External dependencies and preconditions
|
||||||
|
## Continuity — When to run (triggers & cadence)
|
||||||
|
## Remembers — What to learn between runs
|
||||||
|
## Invariants — Inviolable rules for execution
|
||||||
|
## Execution — Step-by-step instructions
|
||||||
|
## Example Output — What a good run looks like
|
||||||
```
|
```
|
||||||
---
|
|
||||||
kind: <responsibility | template>
|
|
||||||
name: <unique-name>
|
|
||||||
description: ...
|
|
||||||
---
|
|
||||||
|
|
||||||
## Maintains — What state the contract tracks
|
**`kind: function`** (stateless callable helper):
|
||||||
## Parameters — Tunable inputs (with defaults)
|
|
||||||
## Continuity — When to run (triggers & cadence)
|
|
||||||
## Success Criteria — How to know it worked
|
|
||||||
## Remembers — What to learn between runs
|
|
||||||
## <Type> Rules — Inviolable rules for execution
|
|
||||||
## Execution — Step-by-step instructions
|
|
||||||
## Example Output — What a good run looks like
|
|
||||||
```
|
```
|
||||||
|
## Parameters — Tunable inputs (with defaults)
|
||||||
|
## Returns — Output schema
|
||||||
|
## Requires — External dependencies
|
||||||
|
## Execution — Step-by-step instructions
|
||||||
|
```
|
||||||
|
|
||||||
|
**`kind: pattern`** (instantiable knowledge):
|
||||||
|
```
|
||||||
|
Variable — templates use Parameters + Execution; reference docs are prose-driven.
|
||||||
|
```
|
||||||
|
|
||||||
|
**`kind: gateway`** / **`kind: test`** — not currently used in this repo.
|
||||||
|
|
||||||
## Adding New Contracts
|
## Adding New Contracts
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user