Files
prose-contracts/contract-registry.yaml
root b7e23e2592 vault: Infisical cleanup + contract sync (WAL #1316)
- litellm-api-keys: vault audit, tanko/koby/koonimo migration, key rotation log
- gpu-fleet: ornith-1.0-35b→strix-moe (remaining refs)
- hermes-agent-baseline: 256K all GPUs, CT IPs updated, Shumba retired
- delegation-prose-contract: removed (renamed to mumuni-delegation)
- contract-registry.yaml + cron-prompts-review.md: from feat/contract-registry
2026-07-16 21:17:09 +00:00

1768 lines
39 KiB
YAML

registry_version: 0.1.0
last_updated: '2026-07-13T00:00:00Z'
updated_by: mumuni
categories:
- compliance
- monitoring
- remediation
- build_deploy
- maintenance
- reference
domains:
- hermes-agent
- zulip
- infrastructure
- gpu
- proxmox
- litellm
- memory
- relay
- shared-patterns
owners:
- abiba
- mumuni
- kwame
trigger_types:
- scheduled
- event_driven
- passive
- on_demand
- none
sensitivity_levels:
- critical
- high
- normal
- retired
index:
by_category:
compliance:
- hermes-key-enforcement
- hermes-config-template
- hermes-agent-baseline
monitoring:
- proxmox-monitor
- gpu-monitor
- infrastructure-monitoring
- zulip-health
- litellm-health
remediation:
- litellm-self-heal
- pm2-self-heal
- disk-gc-threat-response
- hermes-zulip-restore
build_deploy:
- hermes-zulip-plugin
- build-zulip-plugin
- stirling-pdf-agent-access
maintenance:
- memory-audit-maintenance
- gpu-fleet
- infrastructure-update
reference:
- infrastructure-control
- ra-h-os-custodianship-contract
- mumuni-delegation
- zulip-approval-fix
- zulip-oidc-redirect-fix
- hello-world
- zulip-adapter-lessons
- pi-approval-architecture
retired:
- zulip-mention-reliability
- zulip-self-heal
by_domain:
hermes-agent:
- hermes-key-enforcement
- hermes-config-template
- hermes-agent-baseline
- mumuni-delegation
zulip:
- zulip-health
- hermes-zulip-restore
- hermes-zulip-plugin
- build-zulip-plugin
- zulip-approval-fix
- zulip-oidc-redirect-fix
- zulip-adapter-lessons
- zulip-mention-reliability
- zulip-self-heal
infrastructure:
- infrastructure-control
- infrastructure-monitoring
- infrastructure-update
- pm2-self-heal
- disk-gc-threat-response
gpu:
- gpu-monitor
- gpu-fleet
proxmox:
- proxmox-monitor
litellm:
- litellm-health
- litellm-self-heal
memory:
- memory-audit-maintenance
shared-patterns:
- ra-h-os-custodianship-contract
- pi-approval-architecture
- stirling-pdf-agent-access
- hello-world
retired:
- zulip-mention-reliability
- zulip-self-heal
- zulip-adapter-lessons
- pi-approval-architecture
by_owner:
abiba:
- hermes-key-enforcement
- hermes-config-template
- hermes-agent-baseline
- proxmox-monitor
- gpu-monitor
- infrastructure-monitoring
- zulip-health
- litellm-health
- litellm-self-heal
- pm2-self-heal
- disk-gc-threat-response
- hermes-zulip-restore
- hermes-zulip-plugin
- build-zulip-plugin
- stirling-pdf-agent-access
- gpu-fleet
- infrastructure-update
- infrastructure-control
- zulip-adapter-lessons
- pi-approval-architecture
- zulip-approval-fix
- zulip-oidc-redirect-fix
- zulip-mention-reliability
- zulip-self-heal
mumuni:
- memory-audit-maintenance
- ra-h-os-custodianship-contract
- mumuni-delegation
kwame:
- hello-world
by_trigger:
scheduled:
- hermes-key-enforcement
- hermes-config-template
- hermes-agent-baseline
- proxmox-monitor
- gpu-monitor
- infrastructure-monitoring
- zulip-health
- litellm-health
- memory-audit-maintenance
- infrastructure-update
event_driven:
- litellm-self-heal
- pm2-self-heal
- disk-gc-threat-response
- hermes-zulip-restore
- gpu-fleet
- zulip-oidc-redirect-fix
passive:
- infrastructure-control
- ra-h-os-custodianship-contract
- mumuni-delegation
- zulip-adapter-lessons
- pi-approval-architecture
- zulip-approval-fix
on_demand:
- hermes-zulip-plugin
- build-zulip-plugin
- stirling-pdf-agent-access
- hello-world
none:
- zulip-mention-reliability
- zulip-self-heal
by_sensitivity:
critical:
- hermes-key-enforcement
- proxmox-monitor
- gpu-monitor
- litellm-health
- litellm-self-heal
- disk-gc-threat-response
- gpu-fleet
- infrastructure-control
high:
- hermes-config-template
- infrastructure-monitoring
- zulip-health
- pm2-self-heal
- hermes-zulip-restore
- hermes-zulip-plugin
- build-zulip-plugin
- infrastructure-update
- ra-h-os-custodianship-contract
- mumuni-delegation
normal:
- hermes-agent-baseline
- stirling-pdf-agent-access
- memory-audit-maintenance
- zulip-approval-fix
- zulip-oidc-redirect-fix
- hello-world
retired:
- zulip-adapter-lessons
- pi-approval-architecture
- zulip-mention-reliability
- zulip-self-heal
contracts:
- name: hermes-key-enforcement
file: hermes-key-enforcement.prose.md
kind: enforcement
category: compliance
sensitivity: critical
status: active
owner: abiba
version: 1.0.0
trigger:
type: scheduled
cadence: 0 6 * * *
description: Daily compliance scan at 6am ET
cron_job_id: null
execution:
agent: abiba
timeout: 300
requires: []
protocol:
- Load contract from prose-contracts/main
- 'Verify prerequisites: config.yaml readable, harness/litellm sections present'
- 'Execute enforcement: grep config for plaintext keys'
- 'On failure: stop, don''t hallucinate forward'
- Log actions to ~/.hermes/runs/hermes-key-enforcement/
verification:
postconditions:
- check: no plaintext API keys in config
verify: 'grep -rc ''api_key: sk-'' /root/.hermes/config.yaml'
expect: 0 matches
- check: api_key_env used for harness/litellm providers
verify: grep -c 'api_key_env.*LITELLM_API_KEY' /root/.hermes/config.yaml
expect: count > 0
artifact: before/after verification report
verify_commands:
- 'grep -rc ''api_key: sk-'' /root/.hermes/config.yaml'
- grep -c 'api_key_env.*LITELLM_API_KEY' /root/.hermes/config.yaml
receipt:
format: json
storage: ~/.hermes/runs/hermes-key-enforcement/
graph_node: true
schema:
contract: string
run_id: string
timestamp: ISO 8601
agent: string
status: pass|fail|escalated
actions_taken: array
postconditions: array
drift_alerts: array
evidence_path: string
escalation:
info:
action: log_to_receipt
notify: []
warning:
action: relay_alert
notify:
- abiba
critical:
action: relay_alert + pause
notify:
- abiba
- mumuni
fatal:
action: relay_alert + pause + human_required
notify:
- abiba
- mumuni
- kwame
circuit_breaker:
max_retries: 3
window: 3600
trip_action: escalate_to_fatal
depends_on: []
last_run: null
last_status: null
drift_alerts: []
- name: hermes-config-template
file: hermes-config-template.prose.md
kind: template
category: compliance
sensitivity: high
status: active
owner: abiba
version: 2.1.0
trigger:
type: scheduled
cadence: 0 4 * * 1
description: Weekly config drift check Monday at 4am ET
cron_job_id: null
execution:
agent: abiba
timeout: 300
requires: []
verification:
postconditions:
- check: agent config template_version matches template file
verify: 'grep -q ''template_version'' /root/.hermes/config.yaml && diff <(grep
''template_version'' /root/.hermes/config.yaml | cut -d: -f2 | xargs) <(grep
''template_version'' /root/prose-contracts/hermes-config-template.prose.md
| cut -d: -f2 | xargs) && echo match || echo mismatch'
expect: match
- check: config file is valid YAML
verify: python3 -c 'import yaml; yaml.safe_load(open("/root/.hermes/config.yaml"))'
&& echo valid || echo invalid
expect: valid
artifact: config drift report
receipt:
format: json
storage: ~/.hermes/runs/hermes-config-template/
graph_node: true
escalation:
info:
action: log_to_receipt
notify: []
warning:
action: relay_alert
notify:
- abiba
critical:
action: relay_alert
notify:
- abiba
- mumuni
fatal:
action: relay_alert + human_required
notify:
- abiba
- mumuni
- kwame
circuit_breaker:
max_retries: 3
window: 3600
trip_action: escalate_to_fatal
depends_on: []
last_run: null
last_status: null
drift_alerts: []
- name: hermes-agent-baseline
file: hermes-agent-baseline.prose.md
kind: template
category: compliance
sensitivity: normal
status: active
owner: abiba
version: 1.0.0
trigger:
type: scheduled
cadence: 0 5 * * 1
description: Weekly baseline verification Monday at 5am ET
cron_job_id: null
execution:
agent: abiba
timeout: 300
requires: []
verification:
postconditions:
- check: Hermes agent process running
verify: pgrep -f 'hermes' > /dev/null && echo running || echo stopped
expect: running
- check: agent config file exists and valid YAML
verify: test -f /root/.hermes/config.yaml && python3 -c 'import yaml; yaml.safe_load(open("/root/.hermes/config.yaml"))'
&& echo valid || echo invalid
expect: valid
- check: no uncommitted changes in hermes directory
verify: cd /root/.hermes && git status --porcelain | wc -l
expect: '0'
artifact: baseline drift report
receipt:
format: json
storage: ~/.hermes/runs/hermes-agent-baseline/
graph_node: true
escalation:
info:
action: log_to_receipt
notify: []
warning:
action: relay_alert
notify:
- abiba
critical:
action: relay_alert
notify:
- abiba
- mumuni
fatal:
action: relay_alert + human_required
notify:
- abiba
- mumuni
- kwame
circuit_breaker:
max_retries: 3
window: 3600
trip_action: escalate_to_fatal
depends_on: []
last_run: null
last_status: null
drift_alerts: []
- name: proxmox-monitor
file: proxmox-monitor.prose.md
kind: responsibility
category: monitoring
sensitivity: critical
status: active
owner: abiba
version: 1.0.0
trigger:
type: scheduled
cadence: '*/15 * * * *'
description: Every 15 minutes
cron_job_id: null
execution:
agent: abiba
timeout: 120
requires: []
protocol:
- Load contract from prose-contracts/main
- Verify connectivity to all Proxmox nodes
- Execute monitoring checks per contract
- Log intermediate state
- 'On failure: stop, don''t hallucinate'
verification:
postconditions:
- check: all Proxmox nodes reachable
verify: curl -sf http://192.168.68.10:8006/api2/json/status | jq '.status'
expect: healthy
- check: no VMs in crashed state
verify: pvesh get /nodes -output-format=json | jq '.[] | select(.status=="Crashed")'
expect: empty
- check: backups running on schedule
verify: pbs-info --check
expect: last_backup < 24h ago
artifact: cluster health snapshot
verify_commands:
- curl -sf http://<pve-api>/status | jq '.status'
- pvesh get /nodes -output-format=json
receipt:
format: json
storage: ~/.hermes/runs/proxmox-monitor/
graph_node: true
escalation:
info:
action: log_to_receipt
notify: []
warning:
action: relay_alert
notify:
- abiba
- mumuni
critical:
action: relay_alert + trigger_remediation
notify:
- abiba
- mumuni
triggers:
- disk-gc-threat-response
fatal:
action: relay_alert + pause + human_required
notify:
- abiba
- mumuni
- kwame
circuit_breaker:
max_retries: 3
window: 3600
trip_action: escalate_to_fatal
depends_on: []
last_run: null
last_status: null
drift_alerts: []
- name: gpu-monitor
file: gpu-monitor.prose.md
kind: responsibility
category: monitoring
sensitivity: critical
status: active
owner: abiba
version: 1.0.0
trigger:
type: scheduled
cadence: '*/15 * * * *'
description: "Every 15 minutes \u2014 polls all GPU subsystems"
cron_job_id: null
execution:
agent: abiba
timeout: 120
requires: []
verification:
postconditions:
- check: GPU metrics accessible
verify: curl -sf http://localhost:9100/gpu-data
expect: 200 OK, populated data
- check: dashboard serving
verify: curl -sf http://localhost:9100/gpu-fleet.html
expect: 200 OK, HTML returned
- check: health endpoint responsive
verify: curl -sf http://localhost:9100/health
expect: 200 OK
artifact: GPU fleet snapshot
receipt:
format: json
storage: ~/.hermes/runs/gpu-monitor/
graph_node: true
escalation:
info:
action: log_to_receipt
notify: []
warning:
action: relay_alert
notify:
- abiba
- mumuni
critical:
action: relay_alert + trigger_remediation
notify:
- abiba
- mumuni
triggers:
- gpu-fleet
fatal:
action: relay_alert + pause + human_required
notify:
- abiba
- mumuni
- kwame
circuit_breaker:
max_retries: 3
window: 3600
trip_action: escalate_to_fatal
depends_on: []
last_run: null
last_status: null
drift_alerts: []
- name: infrastructure-monitoring
file: infrastructure-monitoring.prose.md
kind: function
category: monitoring
sensitivity: high
status: active
owner: abiba
version: 1.0.0
trigger:
type: scheduled
cadence: '*/30 * * * *'
description: Every 30 minutes
cron_job_id: null
execution:
agent: abiba
timeout: 180
requires: []
verification:
postconditions:
- check: Proxmox API reachable
verify: curl -sf http://192.168.68.10:8006/api2/json
expect: 200 OK
- check: Zulip API reachable
verify: curl -sf https://chat.sysloggh.net/api/v1/me
expect: 200 OK
- check: LiteLLM proxy reachable
verify: curl -sf http://192.168.68.116/litellm/v1/models
expect: 200 OK
- check: Gitea API reachable
verify: curl -sf https://git.sysloggh.net/api/v1/version
expect: 200 OK
- check: SearXNG reachable
verify: curl -sf http://192.168.68.17:8080
expect: 200 OK
artifact: infrastructure health report
receipt:
format: json
storage: ~/.hermes/runs/infrastructure-monitoring/
graph_node: true
escalation:
info:
action: log_to_receipt
notify: []
warning:
action: relay_alert
notify:
- abiba
- mumuni
critical:
action: relay_alert + trigger_remediation
notify:
- abiba
- mumuni
triggers:
- litellm-health
fatal:
action: relay_alert + pause + human_required
notify:
- abiba
- mumuni
- kwame
circuit_breaker:
max_retries: 3
window: 3600
trip_action: escalate_to_fatal
depends_on: []
last_run: null
last_status: null
drift_alerts: []
- name: zulip-health
file: zulip-health.prose.md
kind: responsibility
category: monitoring
sensitivity: high
status: active
owner: abiba
version: 3.0.0
trigger:
type: scheduled
cadence: '*/15 * * * *'
description: "Every 15 minutes \u2014 monitors all Zulip-connected agents"
cron_job_id: null
execution:
agent: abiba
timeout: 120
requires:
- Zulip API key for abiba-bot@chat.sysloggh.net
- SSH access to all Hermes agents
verification:
postconditions:
- check: bot registration active
verify: curl -sf https://chat.sysloggh.net/api/v1/me | jq '.user_id'
expect: bot_id present
- check: DM delivery working
verify: curl -sf https://chat.sysloggh.net/api/v1/users/me/is-online
expect: 'online: true'
artifact: Zulip mesh health report
receipt:
format: json
storage: ~/.hermes/runs/zulip-health/
graph_node: true
escalation:
info:
action: log_to_receipt
notify: []
warning:
action: relay_alert
notify:
- abiba
- mumuni
critical:
action: relay_alert + trigger_remediation
notify:
- abiba
- mumuni
triggers:
- hermes-zulip-restore
fatal:
action: relay_alert + pause + human_required
notify:
- abiba
- mumuni
- kwame
circuit_breaker:
max_retries: 3
window: 3600
trip_action: escalate_to_fatal
depends_on: []
last_run: null
last_status: null
drift_alerts: []
- name: litellm-health
file: litellm-health.prose.md
kind: function
category: monitoring
sensitivity: critical
status: active
owner: abiba
version: 1.0.0
trigger:
type: scheduled
cadence: '*/10 * * * *'
description: "Every 10 minutes \u2014 LiteLLM proxy health"
cron_job_id: null
execution:
agent: abiba
timeout: 60
requires: []
verification:
postconditions:
- check: LiteLLM proxy reachable
verify: curl -sf http://192.168.68.116/litellm/v1/models
expect: 200 OK, models returned
- check: router deprecated, nginx routes work
verify: curl -sf https://litellm.sysloggh.net/v1/models
expect: 200 OK (via nginx)
artifact: LiteLLM health snapshot
receipt:
format: json
storage: ~/.hermes/runs/litellm-health/
graph_node: true
escalation:
info:
action: log_to_receipt
notify: []
warning:
action: relay_alert
notify:
- abiba
- mumuni
critical:
action: relay_alert + trigger_remediation
notify:
- abiba
- mumuni
triggers:
- litellm-self-heal
fatal:
action: relay_alert + pause + human_required
notify:
- abiba
- mumuni
- kwame
circuit_breaker:
max_retries: 3
window: 3600
trip_action: escalate_to_fatal
depends_on: []
last_run: null
last_status: null
drift_alerts: []
- name: litellm-self-heal
file: litellm-self-heal.prose.md
kind: responsibility
category: remediation
sensitivity: critical
status: active
owner: abiba
version: 1.0.0
trigger:
type: event_driven
description: Triggered by relay message from litellm-health or infrastructure-monitoring
relay_message_type: remediation:litellm-self-heal
cron_job_id: null
execution:
agent: abiba
timeout: 600
requires:
- Relay message with failure details from monitoring contract
verification:
postconditions:
- check: LiteLLM proxy responding
verify: curl -sf http://192.168.68.116/litellm/v1/models
expect: 200 OK
artifact: self-heal run report
receipt:
format: json
storage: ~/.hermes/runs/litellm-self-heal/
graph_node: true
escalation:
info:
action: log_to_receipt
notify: []
warning:
action: relay_alert
notify:
- abiba
- mumuni
critical:
action: relay_alert + pause
notify:
- abiba
- mumuni
fatal:
action: relay_alert + pause + human_required
notify:
- abiba
- mumuni
- kwame
circuit_breaker:
max_retries: 3
window: 3600
trip_action: escalate_to_fatal
depends_on: []
last_run: null
last_status: null
drift_alerts: []
- name: pm2-self-heal
file: pm2-self-heal.prose.md
kind: responsibility
category: remediation
sensitivity: high
status: active
owner: abiba
version: 1.0.0
trigger:
type: event_driven
description: Triggered by relay message when PM2 process crashes
relay_message_type: remediation:pm2-self-heal
cron_job_id: null
execution:
agent: abiba
timeout: 300
requires:
- Relay message with process name and failure details
verification:
postconditions:
- check: PM2 process running
verify: pm2 list | grep <process_name>
expect: online
artifact: self-heal run report
receipt:
format: json
storage: ~/.hermes/runs/pm2-self-heal/
graph_node: true
escalation:
info:
action: log_to_receipt
notify: []
warning:
action: relay_alert
notify:
- abiba
critical:
action: relay_alert
notify:
- abiba
- mumuni
fatal:
action: relay_alert + human_required
notify:
- abiba
- mumuni
- kwame
circuit_breaker:
max_retries: 3
window: 3600
trip_action: escalate_to_fatal
depends_on: []
last_run: null
last_status: null
drift_alerts: []
- name: disk-gc-threat-response
file: disk-gc-threat-response.prose.md
kind: responsibility
category: remediation
sensitivity: critical
status: active
owner: abiba
version: 1.0.0
trigger:
type: event_driven
description: Triggered by relay message from proxmox-monitor when disk >80%
relay_message_type: remediation:disk-gc-threat-response
cron_job_id: null
execution:
agent: abiba
timeout: 900
requires:
- Relay message with target CT/host and current disk usage
protocol:
- Load contract from prose-contracts/main
- Verify target node reachable
- Run garbage collection per contract SOP
- Verify disk usage reduced
verification:
postconditions:
- check: disk usage below 80%
verify: df -h <target>
expect: <80%
- check: no critical services stopped
verify: ps aux | grep <critical_services>
expect: all running
artifact: GC run report with reclaimed space
receipt:
format: json
storage: ~/.hermes/runs/disk-gc-threat-response/
graph_node: true
escalation:
info:
action: log_to_receipt
notify: []
warning:
action: relay_alert
notify:
- abiba
- mumuni
critical:
action: relay_alert + pause
notify:
- abiba
- mumuni
fatal:
action: relay_alert + pause + human_required
notify:
- abiba
- mumuni
- kwame
circuit_breaker:
max_retries: 3
window: 3600
trip_action: escalate_to_fatal
depends_on: []
last_run: null
last_status: null
drift_alerts: []
- name: hermes-zulip-restore
file: hermes-zulip-restore.prose.md
kind: function
category: remediation
sensitivity: high
status: active
owner: abiba
version: 1.0.0
trigger:
type: event_driven
description: Triggered by relay message from zulip-health when bot registration
fails
relay_message_type: remediation:hermes-zulip-restore
cron_job_id: null
execution:
agent: abiba
timeout: 600
requires:
- Relay message with failure details
verification:
postconditions:
- check: Zulip bot registration active
verify: curl -sf https://chat.sysloggh.net/api/v1/me | jq '.user_id'
expect: bot_id present
- check: DM delivery working
verify: send test DM
expect: message delivered
artifact: restore run report
receipt:
format: json
storage: ~/.hermes/runs/hermes-zulip-restore/
graph_node: true
escalation:
info:
action: log_to_receipt
notify: []
warning:
action: relay_alert
notify:
- abiba
- mumuni
critical:
action: relay_alert + pause
notify:
- abiba
- mumuni
fatal:
action: relay_alert + pause + human_required
notify:
- abiba
- mumuni
- kwame
circuit_breaker:
max_retries: 3
window: 3600
trip_action: escalate_to_fatal
depends_on: []
last_run: null
last_status: null
drift_alerts: []
- name: hermes-zulip-plugin
file: hermes-zulip-plugin.prose.md
kind: function
category: build_deploy
sensitivity: high
status: active
owner: abiba
version: 1.0.0
trigger:
type: on_demand
description: Manual or change request to update Zulip plugin
cron_job_id: null
execution:
agent: abiba
timeout: 1800
requires: []
verification:
postconditions:
- check: 3 adapter files present
verify: ls -la /usr/local/lib/hermes-agent/plugins/platforms/zulip/
expect: 3 files
- check: gateway connected
verify: ps aux | grep hermes
expect: zulip connected
artifact: deploy verification report
receipt:
format: json
storage: ~/.hermes/runs/hermes-zulip-plugin/
graph_node: true
escalation:
info:
action: log_to_receipt
notify: []
warning:
action: relay_alert
notify:
- abiba
critical:
action: relay_alert
notify:
- abiba
- mumuni
fatal:
action: relay_alert + human_required
notify:
- abiba
- mumuni
- kwame
circuit_breaker:
max_retries: 1
window: 7200
trip_action: escalate_to_fatal
depends_on: []
last_run: null
last_status: null
drift_alerts: []
- name: build-zulip-plugin
file: build-zulip-plugin.prose.md
kind: responsibility
category: build_deploy
sensitivity: high
status: active
owner: abiba
version: 1.0.0
trigger:
type: on_demand
description: Generate or improve Zulip plugin via iterative refinement
cron_job_id: null
execution:
agent: abiba
timeout: 3600
requires: []
verification:
postconditions:
- check: plugin builds without errors
verify: npm install && npm run build
expect: 0 errors
- check: connectivity tests pass
verify: run plugin selftest
expect: all checks green
artifact: plugin version artifact
receipt:
format: json
storage: ~/.hermes/runs/build-zulip-plugin/
graph_node: true
escalation:
info:
action: log_to_receipt
notify: []
warning:
action: relay_alert
notify:
- abiba
critical:
action: relay_alert
notify:
- abiba
- mumuni
fatal:
action: relay_alert + human_required
notify:
- abiba
- mumuni
- kwame
circuit_breaker:
max_retries: 1
window: 7200
trip_action: escalate_to_fatal
depends_on: []
last_run: null
last_status: null
drift_alerts: []
- name: stirling-pdf-agent-access
file: stirling-pdf-agent-access.prose.md
kind: function
category: build_deploy
sensitivity: normal
status: active
owner: abiba
version: 1.0.0
trigger:
type: on_demand
description: Grant agent access to Stirling PDF
cron_job_id: null
execution:
agent: abiba
timeout: 300
requires: []
verification:
postconditions:
- check: agent can access Stirling PDF
verify: curl -sf https://stirling.sysloggh.net
expect: 200 OK
artifact: access verification report
receipt:
format: json
storage: ~/.hermes/runs/stirling-pdf-agent-access/
graph_node: true
escalation:
info:
action: log_to_receipt
notify: []
warning:
action: relay_alert
notify:
- abiba
critical:
action: relay_alert
notify:
- abiba
- mumuni
fatal:
action: relay_alert + human_required
notify:
- abiba
- mumuni
- kwame
circuit_breaker:
max_retries: 1
window: 7200
trip_action: escalate_to_fatal
depends_on: []
last_run: null
last_status: null
drift_alerts: []
- name: memory-audit-maintenance
file: memory-audit-maintenance.prose.md
kind: responsibility
category: maintenance
sensitivity: normal
status: active
owner: mumuni
version: 1.0.0
trigger:
type: scheduled
cadence: 0 3 * * *
description: Daily at 3am ET
cron_job_id: null
execution:
agent: mumuni
timeout: 600
requires: []
protocol:
- Load contract from prose-contracts/main
- 'Verify prerequisites: memory files accessible'
- Execute memory audit per contract SOP
- Log actions to ~/.hermes/runs/memory-audit-maintenance/
verification:
postconditions:
- check: memory files below 80% capacity
verify: wc -l ~/.hermes/memories/*.md
expect: total lines < threshold
- check: no stale entries
verify: grep -r 'STALE' ~/.hermes/memories/
expect: 0 matches
artifact: memory audit report
receipt:
format: json
storage: ~/.hermes/runs/memory-audit-maintenance/
graph_node: true
escalation:
info:
action: log_to_receipt
notify: []
warning:
action: relay_alert
notify:
- mumuni
critical:
action: relay_alert
notify:
- mumuni
- abiba
fatal:
action: relay_alert + human_required
notify:
- mumuni
- abiba
- kwame
circuit_breaker:
max_retries: 3
window: 3600
trip_action: escalate_to_fatal
depends_on: []
last_run: null
last_status: null
drift_alerts: []
- name: gpu-fleet
file: gpu-fleet.prose.md
kind: responsibility
category: maintenance
sensitivity: critical
status: active
owner: abiba
version: 1.0.0
trigger:
type: event_driven
description: Triggered on model add/remove, GPU health degradation, agent key
rotation
cron_job_id: null
execution:
agent: abiba
timeout: 1800
requires: []
verification:
postconditions:
- check: all GPUs reported to LiteLLM
verify: curl -sf http://192.168.68.116/litellm/v1/models | jq '.data | length'
expect: count matches expected
- check: router deprecated
verify: check nginx routes
expect: no /v1/ prefix routes
artifact: GPU fleet status report
receipt:
format: json
storage: ~/.hermes/runs/gpu-fleet/
graph_node: true
escalation:
info:
action: log_to_receipt
notify: []
warning:
action: relay_alert
notify:
- abiba
- mumuni
critical:
action: relay_alert
notify:
- abiba
- mumuni
fatal:
action: relay_alert + human_required
notify:
- abiba
- mumuni
- kwame
circuit_breaker:
max_retries: 3
window: 3600
trip_action: escalate_to_fatal
depends_on: []
last_run: null
last_status: null
drift_alerts: []
- name: infrastructure-update
file: infrastructure-update.prose.md
kind: responsibility
category: maintenance
sensitivity: high
status: active
owner: abiba
version: 1.0.0
trigger:
type: scheduled
cadence: 0 2 * * 0
description: Weekly system updates Sunday at 2am ET
cron_job_id: null
execution:
agent: abiba
timeout: 3600
requires: []
verification:
postconditions:
- check: all services running after update
verify: systemctl list-units --state=running
expect: all critical services
artifact: update report with changelog
receipt:
format: json
storage: ~/.hermes/runs/infrastructure-update/
graph_node: true
escalation:
info:
action: log_to_receipt
notify: []
warning:
action: relay_alert
notify:
- abiba
critical:
action: relay_alert
notify:
- abiba
- mumuni
fatal:
action: relay_alert + human_required
notify:
- abiba
- mumuni
- kwame
circuit_breaker:
max_retries: 1
window: 7200
trip_action: escalate_to_fatal
depends_on: []
last_run: null
last_status: null
drift_alerts: []
- name: infrastructure-control
file: infrastructure-control.prose.md
kind: pattern
category: reference
sensitivity: critical
status: active
owner: abiba
version: 1.0.0
trigger:
type: passive
description: Loaded on-demand by executing agents as source of truth
cron_job_id: null
execution:
agent: none
timeout: 0
requires: []
verification:
postconditions: []
artifact: none
receipt:
format: none
storage: none
graph_node: false
escalation:
info:
action: none
notify: []
warning:
action: none
notify: []
critical:
action: none
notify: []
fatal:
action: none
notify: []
circuit_breaker:
max_retries: 0
window: 0
trip_action: none
depends_on: []
last_run: null
last_status: null
drift_alerts: []
- name: ra-h-os-custodianship-contract
file: ra-h-os-custodianship-contract.prose.md
kind: pattern
category: reference
sensitivity: high
status: active
owner: mumuni
version: 1.0.0
trigger:
type: passive
description: Loaded on-demand by agents needing RA-H OS guidance
cron_job_id: null
execution:
agent: none
timeout: 0
requires: []
verification:
postconditions: []
artifact: none
receipt:
format: none
storage: none
graph_node: false
escalation:
info:
action: none
notify: []
warning:
action: none
notify: []
critical:
action: none
notify: []
fatal:
action: none
notify: []
circuit_breaker:
max_retries: 0
window: 0
trip_action: none
depends_on: []
last_run: null
last_status: null
drift_alerts: []
- name: mumuni-delegation
file: mumuni-delegation-prose-contract.prose.md
kind: pattern
category: reference
sensitivity: high
status: active
owner: mumuni
version: 1.0.0
trigger:
type: passive
description: Loaded by Mumuni when delegating tasks
cron_job_id: null
execution:
agent: none
timeout: 0
requires: []
verification:
postconditions: []
artifact: none
receipt:
format: none
storage: none
graph_node: false
escalation:
info:
action: none
notify: []
warning:
action: none
notify: []
critical:
action: none
notify: []
fatal:
action: none
notify: []
circuit_breaker:
max_retries: 0
window: 0
trip_action: none
depends_on: []
last_run: null
last_status: null
drift_alerts: []
- name: zulip-adapter-lessons
file: zulip-adapter-lessons.prose.md
kind: pattern
category: reference
sensitivity: retired
status: historical
owner: abiba
version: 1.0.0
trigger:
type: passive
description: "Historical reference \u2014 pi Zulip extension retired 2026-07-04"
cron_job_id: null
execution:
agent: none
timeout: 0
requires: []
verification:
postconditions: []
artifact: none
receipt:
format: none
storage: none
graph_node: false
escalation:
info:
action: none
notify: []
warning:
action: none
notify: []
critical:
action: none
notify: []
fatal:
action: none
notify: []
circuit_breaker:
max_retries: 0
window: 0
trip_action: none
depends_on: []
last_run: null
last_status: null
drift_alerts: []
- name: pi-approval-architecture
file: pi-approval-architecture.prose.md
kind: architecture
category: reference
sensitivity: retired
status: historical
owner: abiba
version: 1.0.0
trigger:
type: passive
description: "Historical reference \u2014 pi Zulip extension retired"
cron_job_id: null
execution:
agent: none
timeout: 0
requires: []
verification:
postconditions: []
artifact: none
receipt:
format: none
storage: none
graph_node: false
escalation:
info:
action: none
notify: []
warning:
action: none
notify: []
critical:
action: none
notify: []
fatal:
action: none
notify: []
circuit_breaker:
max_retries: 0
window: 0
trip_action: none
depends_on: []
last_run: null
last_status: null
drift_alerts: []
- name: zulip-approval-fix
file: zulip-approval-fix.prose.md
kind: responsibility
category: reference
sensitivity: normal
status: active
owner: abiba
version: 2.0.0
trigger:
type: passive
description: Loaded on-demand when /approve or /deny commands fail
cron_job_id: null
execution:
agent: none
timeout: 0
requires: []
verification:
postconditions: []
artifact: none
receipt:
format: none
storage: none
graph_node: false
escalation:
info:
action: none
notify: []
warning:
action: none
notify: []
critical:
action: none
notify: []
fatal:
action: none
notify: []
circuit_breaker:
max_retries: 0
window: 0
trip_action: none
depends_on: []
last_run: null
last_status: null
drift_alerts: []
- name: zulip-oidc-redirect-fix
file: zulip-oidc-redirect-fix.prose.md
kind: responsibility
category: reference
sensitivity: normal
status: active
owner: abiba
version: 1.0.0
trigger:
type: event_driven
description: Triggered when Zulip OIDC login returns redirect URI error
cron_job_id: null
execution:
agent: abiba
timeout: 300
requires: []
verification:
postconditions:
- check: OIDC redirect uses public domain
verify: grep redirect_uri /opt/zulip/zulip_env.py
expect: chat.sysloggh.net
artifact: fix verification report
receipt:
format: json
storage: ~/.hermes/runs/zulip-oidc-redirect-fix/
graph_node: true
escalation:
info:
action: log_to_receipt
notify: []
warning:
action: relay_alert
notify:
- abiba
critical:
action: relay_alert
notify:
- abiba
- mumuni
fatal:
action: relay_alert + human_required
notify:
- abiba
- mumuni
- kwame
circuit_breaker:
max_retries: 1
window: 7200
trip_action: escalate_to_fatal
depends_on: []
last_run: null
last_status: null
drift_alerts: []
- name: zulip-mention-reliability
file: zulip-mention-reliability.prose.md
kind: responsibility
category: retired
sensitivity: retired
status: retired
owner: abiba
version: 1.0.0
trigger:
type: none
description: "Retired 2026-07-04 \u2014 pi Zulip extension decommissioned"
cron_job_id: null
execution:
agent: none
timeout: 0
requires: []
verification:
postconditions: []
artifact: none
receipt:
format: none
storage: none
graph_node: false
escalation:
info:
action: none
notify: []
warning:
action: none
notify: []
critical:
action: none
notify: []
fatal:
action: none
notify: []
circuit_breaker:
max_retries: 0
window: 0
trip_action: none
depends_on: []
last_run: null
last_status: null
drift_alerts: []
- name: zulip-self-heal
file: zulip-self-heal.prose.md
kind: responsibility
category: retired
sensitivity: retired
status: retired
owner: abiba
version: 1.0.0
trigger:
type: none
description: "Retired 2026-07-04 \u2014 pi Zulip extension decommissioned"
cron_job_id: null
execution:
agent: none
timeout: 0
requires: []
verification:
postconditions: []
artifact: none
receipt:
format: none
storage: none
graph_node: false
escalation:
info:
action: none
notify: []
warning:
action: none
notify: []
critical:
action: none
notify: []
fatal:
action: none
notify: []
circuit_breaker:
max_retries: 0
window: 0
trip_action: none
depends_on: []
last_run: null
last_status: null
drift_alerts: []
- name: hello-world
file: hello-world.prose.md
kind: function
category: reference
sensitivity: normal
status: active
owner: kwame
version: 1.0.0
trigger:
type: on_demand
description: Test contract for OpenProse on pi
cron_job_id: null
execution:
agent: kwame
timeout: 60
requires: []
verification:
postconditions:
- check: greeting returned
verify: contract output contains 'Hello'
expect: pass
artifact: greeting output
receipt:
format: json
storage: ~/.hermes/runs/hello-world/
graph_node: true
escalation:
info:
action: log_to_receipt
notify: []
warning:
action: relay_alert
notify: []
critical:
action: relay_alert
notify:
- mumuni
fatal:
action: relay_alert + human_required
notify:
- mumuni
- kwame
circuit_breaker:
max_retries: 3
window: 3600
trip_action: escalate_to_fatal
depends_on: []
last_run: null
last_status: null
drift_alerts: []