بنقرة واحدة
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/