一键导入
patrol
Autonomous observation loop. Time-boxed cycles with ratcheting health score, commits findings to grimoires.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Autonomous observation loop. Time-boxed cycles with ratcheting health score, commits findings to grimoires.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Single-pass network health observation. Checks API liveness, namespace freshness, drift, computes Network Health Score.
Deep investigation of a single construct. Identity-reality drift, maintenance pattern, composition analysis.
Single-pass network health observation. Checks API liveness, namespace freshness, drift, computes Network Health Score.
Synthesize observations into a readable network health report. Aggregates patterns and trends from observation cycles.
Single-pass coherence sense of an ARBITRARY estate (a registry/state pair). Resolves the read-command from operator-local estate-config, shells the estate's own doctor read-only, emits exactly the STATUS|SIGNAL|MISMATCH tile. Sense-only — never mutates the estate.
Sense whether the config the OPERATOR owns is consistent across an estate of Loa repos. Loa is mounted per-repo, so every repo carries its own .loa.config.yaml and there is NO global tier — operator-owned config (model routing, which models review code, effort) gets duplicated across N repos and DRIFTS. This eye walks the estate, classifies each config key by TIER (operator vs project), and fires `drift` when an operator-tier key — one that SHOULD be identical everywhere — holds more than one distinct value. Optionally flags dead model pins against a model SoT. Emits the STATUS|SIGNAL|MISMATCH tile + a config-drift ledger. Sense-only — never mutates a config, never gates.
| name | patrol |
| description | Autonomous observation loop. Time-boxed cycles with ratcheting health score, commits findings to grimoires. |
| allowed-tools | ["Bash","Read","Grep","Glob","Write","Edit"] |
| user-invocable | true |
The Karpathy Loop for network health. Runs time-boxed observation cycles, ratchets the health score, and commits findings to grimoires. This is the autonomous mode — set it running, walk away, come back to a health trail.
/patrol # Default: 3 cycles, 5-minute windows
/patrol --cycles 10 # Run 10 observation cycles
/patrol --once # Single cycle (alias for /observe + commit)
Check grimoires/gecko/patrol-state.json for active patrol state:
{
"status": "RUNNING|HALTED|COMPLETE",
"current_cycle": 3,
"total_cycles": 10,
"baseline_score": 72,
"best_score": 75,
"started_at": "2026-03-12T00:00:00Z",
"last_activity": "2026-03-12T00:15:00Z"
}
If status: RUNNING, resume from current_cycle. If no state file, initialize fresh.
For each cycle:
/observe (the atomic health check)observations.jsonlhealth_score against baseline_scorePatrol senses the construct LEARNING loop, not just declared-vs-runtime fit. Read the clew
ledgers (~/.loa/constructs/packs/*/LEARNINGS.jsonl; node ~/bonfire/clew-loop.mjs where
present) and compare CAPTURE RATE against operator activity:
| Condition | Reading |
|---|---|
| heavy operator activity + pending clews accumulating | loop healthy — the backlog is the drain's (/clew <construct>) |
| heavy operator activity + near-zero capture | loop UNDER-FIRING — root cause is UPSTREAM of capture: main-loop work isn't routed THROUGH constructs, so corrections never become construct-targeted clews. Surface as drift; the fix is routing (/compose, construct agentTypes), not more capture tooling. |
| capture without distillation for >2 weeks | teachings rotting in the ledger — surface the ripe constructs |
Lesson (clew lrn-20260607-gecko-2f35ed): only ~4 clews existed ecosystem-wide despite heavy operator activity. An under-fed reward loop looks like silence — and silence reads as health unless patrol measures the loop ITSELF as a drift dimension.
| Condition | Action |
|---|---|
health_score > best_score | Update best_score, log improvement |
health_score == baseline_score ± 2 | Stable — log, continue |
health_score < baseline_score - 5 | Flag degradation, surface contributing factors |
| API unreachable | Log as DEGRADED, do not halt |
The ratchet only moves up. If the network gets healthier, the new score becomes the baseline. If it degrades, gecko surfaces what changed — but doesn't reset the baseline.
After each cycle:
grimoires/gecko/observations.jsonl and grimoires/gecko/patrol-state.jsongecko: patrol cycle N — health: XX (delta)/report or manuallyStop when:
Update patrol-state to COMPLETE or HALTED with reason.
Output a one-paragraph patrol summary:
gecko | patrol complete | 5 cycles | health: 72→75 (+3) | 2 anomalies surfaced | findings in grimoires/gecko/
| Path | Description |
|---|---|
grimoires/gecko/observations.jsonl | Append-only observation log (one line per cycle) |
grimoires/gecko/patrol-state.json | Patrol loop state for resume |
grimoires/gecko/