Ops agents (day-2 crew)¶
Scheduled checks and cleanup before more golden-path automation. WearLab deferred.
Agents¶
| Agent | Schedule | What it does |
|---|---|---|
| Daily pulse | Woodpecker cron ops-daily-pulse (e.g. 08:00 UTC) |
Ship health, stuck/needs-you counts, staging HTTPS, wallet %; Discord only if issues (or always with OPS_PULSE_ALWAYS=1) |
| Weekly digest | Woodpecker cron ops-weekly-digest (e.g. Mon 09:00 UTC) |
Done this week, blocked tickets, wallet, staging — one Discord summary |
| Slot steward | On each pulse + mark_done/cancel |
Wipes bays + drops slot_claims for done/cancelled tickets |
| H2c reclaim | Apps cron 04:00 UTC | reclaim-idle-slots.py — wipe slots idle > 24h |
| Writing daily | Portfolio catchup / finalize → Ship notify | Ticket WRITING-DAILY on board — writing-daily-agent.md |
Ship API¶
| Endpoint | Purpose |
|---|---|
GET /api/v1/ops/snapshot |
JSON snapshot for tools |
POST /api/v1/ops/pulse |
Run pulse + steward; optional Discord |
POST /api/v1/ops/weekly-digest |
Weekly message |
POST /api/v1/ops/slot-steward |
Release stale claims only |
Laptop / manual¶
# Woodpecker cron (after push + repo cron names configured)
# Or trigger from Woodpecker UI → ops-agents pipeline → manual
SHIP_BASIC_AUTH='user:pass' node scripts/ops-agent-runner.mjs pulse
SHIP_BASIC_AUTH='user:pass' node scripts/ops-agent-runner.mjs digest
SHIP_BASIC_AUTH='user:pass' node scripts/ops-agent-runner.mjs slot-steward
# Apps H2c cron (once)
bash local/install-apps-reclaim-cron.sh
# Discord for Ship gates + ops (infra VPS)
DISCORD_WEBHOOK_URL='https://discord.com/api/webhooks/...' bash local/install-ship-discord-webhook.sh
Auto on mark_done¶
- Slot release — remote wipe + clear
slot_claims/assigned_slot - Plane close — PATCH work item to completed state when API key +
plane_issue_idset (best-effort)
Forgejo cron setup¶
Repo infra/devops → Settings → Cron jobs:
| Name | Schedule | Pipeline |
|---|---|---|
ops-daily-pulse |
0 8 * * * |
.woodpecker/ops-agents.yml |
ops-weekly-digest |
0 9 * * 1 |
.woodpecker/ops-agents.yml |
Existing: ship-worker, graphify-docs-daily — leave as-is.
See also: ship-golden-path.md · writing-daily-agent.md.