liquid-cat-physics-32afb0 — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited liquid-cat-physics-32afb0 (Agent Skill) and scored it 96/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 1 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 1 flagged
The text {match} tells the agent to skip the normal "ask the user first" gate. Used adversarially it removes the human-in-the-loop check before destructive or sensitive actions, turning a normally-gated agent into a fire-and-forget executor.
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Autonomous deep-work engine. One command to start, then walk away.
Type /liquid-cat-physics and the skill runs a pre-flight readiness check (once), sets up a recurring cron loop, and keeps going autonomously every 10 minutes.
Each iteration cycle:
ORIENT → Read state, know where you are (fast read)
THINK → Expert assessment, decide next action (subagent)
GATE → GREEN/YELLOW/RED confidence check (decide)
ACT → Execute ONE unit of work (main context)
PERSIST → Update PROJECT_STATE.md + selective notes (always)State lives on disk, not in conversation. Context compaction can't erase it.
Reference files (read on demand, NOT every iteration):
references/confidence-gate.md — re-read when GATE decision is uncertainreferences/anti-thrashing.md — re-read when a failure occurs or failure_log is non-emptyreferences/elevate-lens.md — re-read in THINK phase (what to work on)references/prodev-standard.md — re-read in THINK + ACT phases (how to execute)references/browser-verification.md — re-read when doing visual/UI work| Input | Action |
|---|---|
/liquid-cat-physics | Start the loop (default 10m interval) + run first iteration |
/liquid-cat-physics 5m | Start with custom interval |
/liquid-cat-physics status | Show current state: iteration, cron ID, blocked items, recent actions |
/liquid-cat-physics stop | Cancel the cron loop + set status to paused |
/liquid-cat-physics reset | Reset iteration count, clear failure log, keep notebook history |
Every invocation enters here. One path, no ambiguity.
Read PROJECT_STATE.md → look for ## Loop State
│
├── No Loop State found → FIRST RUN
│ 1. Run Phase 0: Pre-Flight (interactive)
│ 2. Initialize Loop State + _notebook/
│ 3. Create cron at requested interval
│ 4. Proceed to ORIENT
│
├── Loop State exists, status: paused
│ 1. Create new cron at stored interval
│ 2. Set status: active
│ 3. Proceed to ORIENT
│
├── Loop State exists, status: active
│ 1. Check cron_id via CronList
│ ├── Cron alive → Proceed to ORIENT
│ └── Cron dead (session restart, expired)
│ 1. Recreate cron at stored interval
│ 2. Update cron_id
│ 3. Proceed to ORIENT
│
├── Loop State exists, status: checkpoint
│ 1. Human resumed after checkpoint — create new cron
│ 2. Set status: active
│ 3. Proceed to ORIENT
│
├── Loop State exists, status: complete → Exit. "Project complete."
│
└── Loop State exists, status: blocked-stopped
1. Check if blocked items are now unblocked
├── Still blocked → Exit. Show blocked items.
└── Something unblocked → Create cron, set active, ORIENT/liquid-cat-physics stop:
cron_id from Loop Statestatus: paused, clear cron_id/liquid-cat-physics to resume."Runs ONCE on first invocation. INTERACTIVE — asks user questions.
This is the only interactive phase. Front-load all friction here so the loop runs autonomously after.
| Dimension | What to check | Insufficient if... |
|---|---|---|
| Goals clarity | Are goals specific and executable? | Vague ("make it good"), no success criteria |
| Codebase understanding | Architecture, patterns, conventions | Can't explain the data flow or key abstractions |
| Verification infrastructure | Tests, build, linter exist? | No automated feedback signal at all |
| Scope definition | Work is narrow enough for autonomous execution? | Too broad, multi-week epic with no breakdown |
| Blockers visible | Obvious RED items that would block immediately? | First 3 tasks are all RED |
| Dependencies/access | API keys, services, credentials available? | Needs external resources the LLM can't access |
references/confidence-gate.md). This is not a blocker — just flag it.verification_baseline: in Loop State. This is the known-good (or known-bad) starting point — every future regression check measures against this. If 3 tests fail before the loop starts, the loop knows it didn't cause them.checkpoint_interval: in Loop State. The loop will pause itself at this cadence for human review.## Execution Protocol header into PROJECT_STATE.md (see references/state-schema.md). This is the bootstrap sector — compact recovery instructions that survive context compaction. The LLM reads this first every iteration.### Working Memory in Loop State with initial codebase observations from the deep-read: key file map, architecture notes, dev server commands, environment details.touch ~/.claude/.memento-auto. This ensures compaction recovery — when the context window fills and auto-compacts, the memento hook preserves recent conversation trace and re-injects it post-compaction. No toggle, no prompt. Autonomous loops need this unconditionally.project_goals: summary in Loop State, set current_focus, populate up_next with 3-5 tasks and confidence ratings, then create the cron and proceed to ORIENT.PROJECT_STATE.md — start with ## Execution Protocol (context recovery), then parse ## Loop State for status, iteration, focus, failures, up_next, working memorystatus: complete → CronDelete, clear cron_id. Output "Project complete." Exit.status: blocked → Check if blocked items are now unblocked. Still blocked → CronDelete, set status: blocked-stopped, clear cron_id. Exit. Unblocked → set status: active, continue._notebook/lessons.md — constraints and past failures_notebook/_index.md — recent contextgit log --oneline -10 — recent commitsgit status — working stateCLAUDE.md — only on first iteration or when `current_focus` changes. Cache goals as project_goals: in Loop State.If git status shows uncommitted changes, check whether the last iteration committed them:
last_action and git log --oneline -1git diff) to understand what was attemptedrecovery: [description of changes]. Log in Completed. Increment iteration. Continue normally.git checkout . to revert. Log as interrupted attempt in failure_log. Counts toward two-strike rule. Continue normally.If iteration is a multiple of checkpoint_interval (default 10): pause the loop.
### Completed). For each significant piece of logic: is there a test that exercises it? Not line-coverage math — a judgment call: "if this broke, would a test catch it?"up_next with GREEN confidence. These are first-class work, not afterthoughts.This is NOT a full /fortify invocation. No mutation testing, no infra setup. Just: "did I build 10 features with zero tests?" If yes, fix it before the human has to ask.
status: checkpoint, CronDelete, clear cron_id/liquid-cat-physics to resume.Read the last 3-5 iterations from ### Momentum section. Detect patterns:
| Pattern | Detection | Response |
|---|---|---|
| 3+ consecutive task failures | 3+ REDs on DIFFERENT tasks (not escalation bookkeeping) | Trigger checkpoint NOW (don't wait for interval) |
| 2+ consecutive partials | Last 2-3 results are partial | Next THINK must deliberately reduce scope |
| Same focus 5+ iterations | current_focus unchanged for 5 cycles | THINK must re-evaluate: is focus genuinely large, or are we stuck? |
Note: A RED iteration that is purely procedural (escalating a two-strike failure, writing a decision doc) does NOT count toward the consecutive RED pattern. Only count iterations where actual work was attempted and failed. A two-strike escalation followed by a GREEN on the next task is healthy behavior, not a crisis.
If an early checkpoint triggers, note early_checkpoint: true and the reason in the checkpoint report.
Spawn a Plan or Explore subagent. The subagent's verbose reasoning stays out of main context.
Critical: pass the subagent explicit context. Subagents run in isolated context windows — they haven't read anything. The subagent prompt MUST include:
references/elevate-lens.md AND references/prodev-standard.md, plus any project files relevant to the candidate action. Only include references/confidence-gate.md if the gate decision is genuinely uncertain, and references/anti-thrashing.md if the failure_log is non-empty._notebook/lessons.mdThe subagent must:
references/elevate-lens.md. Ask: "What would a top practitioner do RIGHT NOW? Not the obvious TODO — the smartest move."references/prodev-standard.md. For the candidate action:references/browser-verification.md — this is a valid GREEN check.Return to main context: the decided action, its confidence tier, and the verification plan.
Read references/confidence-gate.md for full criteria.
| Tier | Action |
|---|---|
| GREEN | Proceed to ACT. Verification exists, approach is established, work is reversible. |
| YELLOW | Must resolve. Research happened in THINK → promote to GREEN or demote to RED. YELLOW never proceeds to ACT. |
| RED | Do NOT act. Write decision doc (references/decision-doc-template.md). Save to notebook. Update blocked items. Move to next candidate or exit. |
The rule: When in doubt, RED. One skipped iteration costs 10 minutes. One wrong action costs hours.
Execute the ONE decided action. Re-read references/prodev-standard.md "During Execution" section if this is a code-writing iteration.
// TODO, hardcoded returns, and fake implementations are never acceptable in a GREEN iteration. Can't build the real thing? That's a RED — escalate, don't stub.references/browser-verification.md.node --check) are NOT sufficient verification. At minimum: build/compile succeeds + the changed behavior actually works (run it, hit the endpoint, load the page). If no test suite exists, run the code and confirm the new behavior functions. If the work is visual, use browser verification.references/prodev-standard.md). Every answer must be "yes" or "not applicable." If any answer is "no" — fix it before committing. Don't record a GREEN that isn't one.references/anti-thrashing.md two-strike rule. Attempt 2 on same task → escalate to RED.Update ## Loop State:
iteration:current_focus:, last_action:, up_next:, blocked:, failure_log: as needed### Completed — append this iteration. Cap at 10 items. Archive older entries to _notebook/completed-log.md (append-only).### Momentum — append this iteration's outcome (GREEN/RED/partial), prune to last 5### Working Memory — add any new codebase insights, file discoveries, architecture observations, environment details. Remove stale entries. This is the LLM's operational memory that survives compaction.references/state-schema.md for full templateALWAYS save: failures, decisions, constraints discovered, pivots, investigations, non-obvious learnings, significant milestones.
NEVER save: routine GREEN completions ("added button, tests pass"). The Completed list in PROJECT_STATE.md already tracks mechanical progress. Notebook is for knowledge that compounds.
After persisting, assess: is the project done?
If complete → status: complete, CronDelete, clear cron_id, output summary. If everything remaining is RED → status: blocked. Cron stays for one more iteration (ORIENT checks if anything unblocked, then auto-cancels if not).
// TODO, hardcoded returns, and stub functions are never GREEN.~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.