{"id":"2894e310-43a5-4d2a-aec9-717458da087d","entityType":"agent","slug":"clawhub-leostehlik-autoresearch-loop","name":"Autoresearch Loop","canonicalUrl":"https://www.xpersona.co/agent/clawhub-leostehlik-autoresearch-loop","canonicalPath":"/agent/clawhub-leostehlik-autoresearch-loop","generatedAt":"2026-10-12T09:05:17.964Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-11T20:26:19.223Z","emptyReason":null},"description":"Run an explicit, bounded modify-verify-decide loop toward a measurable metric with approval gates, scoped edits, and rollback proof. Skill: Autoresearch Loop Owner: leostehlik Summary: Run an explicit, bounded modify-verify-decide loop toward a measurable metric with approval gates, scoped edits, and rollback proof. Tags: agents:0.2.1, automation:0.2.1, latest:0.2.1, openclaw:0.2.1, research:0.2.1 Version history: v0.2.1 | 2026-05-24T09:41:16.775Z | user Add explicit run contract, foreground default, scoped edit, rollback, external research, and p","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 997 downloads reported by the source. Last updated 10/11/2026.","installCommand":"clawhub skill install s1754kcncc002avbhpwjnqgcr98728et:autoresearch-loop","sourceUrl":"https://clawhub.ai/leostehlik/autoresearch-loop","homepage":"https://clawhub.ai/leostehlik/skills/autoresearch-loop","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/leostehlik/autoresearch-loop","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/leostehlik/skills/autoresearch-loop","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":60,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Run an explicit, bounded modify-verify-decide loop toward a measurable metric with approval gates, scoped edits, and rollback proof. Skill: Autoresearch Loop Ow"},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-11T20:26:19.223Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T20:26:19.223Z","emptyReason":null},"stars":null,"forks":null,"downloads":997,"likes":null,"task":null,"library":null,"packageName":null,"latestVersion":"0.2.1","tractionLabel":"997 downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T20:26:19.154Z","emptyReason":null},"lastUpdatedAt":"2026-10-11T20:26:19.223Z","lastCrawledAt":"2026-10-11T20:26:19.154Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-12T20:26:19.154Z","lastVerifiedAt":null,"highlights":[{"version":"0.2.1","createdAt":"2026-05-24T09:41:16.775Z","changelog":"Add explicit run contract, foreground default, scoped edit, rollback, external research, and private-data safety gates.","fileCount":8,"zipByteSize":10739},{"version":"0.2.0","createdAt":"2026-05-22T17:05:15.185Z","changelog":"Shorten trigger metadata, add version metadata, and add loop safety rules.","fileCount":7,"zipByteSize":7770},{"version":"0.1.0","createdAt":"2026-05-20T23:45:15.455Z","changelog":"Initial public Autoresearch Loop skill.","fileCount":7,"zipByteSize":7822}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s1754kcncc002avbhpwjnqgcr98728et:autoresearch-loop","setupComplexity":"low","setupSteps":["Setup complexity is LOW. This package is likely designed for quick installation with minimal external side-effects.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-leostehlik-autoresearch-loop/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-leostehlik-autoresearch-loop/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-leostehlik-autoresearch-loop/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-leostehlik-autoresearch-loop/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-leostehlik-autoresearch-loop/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-leostehlik-autoresearch-loop/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-12T09:05:17.962Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-leostehlik-autoresearch-loop/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-leostehlik-autoresearch-loop/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-leostehlik-autoresearch-loop/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-leostehlik-autoresearch-loop/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"high","updatedAt":"2026-10-11T20:26:19.223Z","emptyReason":null},"readme":"Skill: Autoresearch Loop\n\nOwner: leostehlik\n\nSummary: Run an explicit, bounded modify-verify-decide loop toward a measurable metric with approval gates, scoped edits, and rollback proof.\n\nTags: agents:0.2.1, automation:0.2.1, latest:0.2.1, openclaw:0.2.1, research:0.2.1\n\nVersion history:\n\nv0.2.1 | 2026-05-24T09:41:16.775Z | user\n\nAdd explicit run contract, foreground default, scoped edit, rollback, external research, and private-data safety gates.\n\nv0.2.0 | 2026-05-22T17:05:15.185Z | user\n\nShorten trigger metadata, add version metadata, and add loop safety rules.\n\nv0.1.0 | 2026-05-20T23:45:15.455Z | user\n\nInitial public Autoresearch Loop skill.\n\nArchive index:\n\nArchive v0.2.1: 8 files, 10739 bytes\n\nFiles: LICENSE (1068b), README.md (4140b), references/lessons-protocol.md (1880b), references/loop-protocol.md (3170b), references/pivot-protocol.md (2180b), skill-card.md (2396b), SKILL.md (5196b), _meta.json (136b)\n\nFile v0.2.1:SKILL.md\n\n---\nname: autoresearch-loop\ndescription: \"Run an explicit, bounded modify-verify-decide loop toward a measurable metric with approval gates, scoped edits, and rollback proof.\"\nmetadata:\n  version: \"0.2.1\"\n---\n# Autoresearch Loop\n\nUse this skill only when the user explicitly asks for an autoresearch or iterative improvement loop. It is for bounded, measurable optimisation in a version-controlled workspace. It must not start from casual improvement language, and it must not run unattended until the user has approved the goal, commands, scope, rollback strategy, run mode, and iteration cap.\n\nThe goal is measurable. Each iteration makes one atomic change, verifies it, and keeps or discards the result. The loop stops when the goal is met, the approved iteration cap is reached, the user stops it, or a blocker/safety gate is hit.\n\n## Core Loop\n\n```text\n1. Confirm approved run contract\n2. Read context + lessons file\n3. Pick ONE hypothesis\n4. Make ONE atomic change inside approved scope\n5. Snapshot/commit before verification\n6. Run approved VERIFY command\n7. Run approved GUARD command\n8. Decision: keep / discard / rework\n9. Log the result\n10. Health check and safety gate\n11. Repeat only within approved cap\n```\n\nRead `references/loop-protocol.md` for the full loop spec.\nRead `references/pivot-protocol.md` for the escalation ladder.\nRead `references/lessons-protocol.md` for cross-run learning.\n\n## Before Starting\n\nConfirm with the user and do not start until the contract is explicit:\n- **Goal** — one sentence describing what you want to achieve\n- **Metric** — what number is measured, direction, baseline, and target\n- **Verify command** — exact command used to measure the metric\n- **Guard command** — exact command that must keep passing\n- **Scope** — files/directories allowed to change, and files/directories that are forbidden\n- **Rollback strategy** — normal branch/worktree revert, or isolated disposable reset\n- **Run mode** — foreground by default; background/unattended only after explicit approval\n- **Iteration cap** — required for background/unattended runs; recommended for foreground runs\n- **External research policy** — web/search is off by default unless explicitly approved\n- **Data boundary** — do not expose private code, secrets, logs, or proprietary data to external sources\n\nShow the run contract and ask for confirmation. One round minimum. Then start only after the user says go.\n\n## Verify vs Guard\n\n- **Verify** = \"Did the target metric improve?\" — measures progress\n- **Guard** = \"Did anything else break?\" — prevents regressions\n- Guard files are never modified\n- If verify passes but guard fails: rework up to 2 attempts, then discard\n\n## Decision Rules\n\n| Result | Action |\n|--------|--------|\n| Verify pass + Guard pass | Keep. Extract lesson. |\n| Verify pass + Guard fail | Rework within approved scope (max 2 attempts). If still failing, discard. |\n| Verify fail | Discard using approved rollback. |\n| Crash | Stop unless the fix is clearly inside approved scope and non-destructive. |\n| Syntax error | Fix immediately only if caused by the current iteration and inside approved scope. |\n\n## Escalation Ladder\n\nSee `references/pivot-protocol.md` for full details.\n\n| Trigger | Action |\n|---------|--------|\n| 3 consecutive discards | REFINE — adjust within current strategy |\n| 5 consecutive discards | PIVOT — abandon strategy, try fundamentally different approach |\n| 2 PIVOTs without improvement | Ask before external research unless pre-approved |\n| 3 PIVOTs without improvement | Soft blocker — stop and report to human |\n\nA single successful keep resets all counters.\n\n## Long Run Hygiene\n\n- Every completed experiment must be recorded before the next one starts\n- Re-read original instructions every 10 iterations to prevent context drift\n- Log: one row per iteration (iteration, commit/snapshot, metric, delta, status, description)\n- For background runs, send progress at the approved cadence and stop at the cap\n\n## Lessons\n\nExtract structured lessons after:\n- Every kept iteration (what worked and why)\n- Every PIVOT decision (what failed and why)\n- Run completion\n\nStore in `autoresearch-lessons.md` in the working repo root unless the user chose another path. Do not commit this file unless the user explicitly asks. Consult it at the start of each run. Keep about 50 entries, summarising older ones with time decay.\n\n## Safety\n\n- Foreground mode is the default. Background/unattended mode requires explicit approval and an iteration cap.\n- Make changes only inside approved scope.\n- Commit, snapshot, or otherwise record only your own changes before verification.\n- Revert only changes made by the current loop.\n- Never reset unrelated user work.\n- Never modify guard files unless the user explicitly changes the scope contract.\n- Do not run destructive commands, deploy, publish, push, or touch production systems unless explicitly approved for this run.\n- Do not use web search or external sources unless the run contract allows it.\n- Do not paste private code, secrets, logs, customer data, or proprietary data into external services.\n- Stop and report if the metric cannot be measured mechanically.\n\nFile v0.2.1:README.md\n\n# autoresearch-loop\n\nA bounded modify-verify-decide loop for agents working toward a measurable goal.\n\nYou give it a goal, a metric, verification commands, scope, rollback rules, and an iteration cap. It makes one atomic change at a time, verifies the result, keeps improvements, discards failures, and stops when the approved contract says to stop.\n\nThis is not a silent background coding daemon. Foreground review is the default. Background or unattended operation requires explicit approval, a fixed scope, a rollback strategy, and an iteration cap.\n\n---\n\n## What it does\n\n- Runs a tight modify-verify-keep/discard loop toward a measurable target\n- Separates **Verify** (did the metric improve?) from **Guard** (did anything else break?)\n- Requires an approved run contract before edits begin\n- Keeps edits inside approved files/directories\n- Uses version-control snapshots or commits so failures can be discarded cleanly\n- Escalates intelligently: REFINE after 3 failures, PIVOT after 5, ask before external research unless pre-approved, soft blocker after repeated dead ends\n- Extracts lessons after kept iterations and pivots\n- Prevents context drift on long runs by re-reading instructions every 10 iterations\n- Works for anything with a number: test coverage, type errors, lint warnings, performance, research quality, translation completeness\n\n---\n\n## Safety Model\n\nBefore the loop starts, the agent must confirm:\n\n- goal, metric, baseline, and target\n- exact verify and guard commands\n- allowed edit scope and forbidden paths\n- rollback strategy\n- foreground or explicitly approved background mode\n- iteration cap\n- whether external search is allowed\n- private-data boundary\n\nThe loop must stop instead of improvising when the metric cannot be measured, scope is unclear, guard files need changing, rollback is unsafe, or external research would expose private material.\n\n---\n\n## Installation\n\n### OpenClaw\n\nAdd your workspace skills directory to `openclaw.json`:\n\n```json\n{\n  \"skills\": {\n    \"load\": {\n      \"extraDirs\": [\"/path/to/your/skills\"]\n    }\n  }\n}\n```\n\nClone into that directory:\n\n```bash\ngit clone https://github.com/LeoStehlik/autoresearch-loop.git /path/to/your/skills/autoresearch-loop\n```\n\n### Codex / Claude Code / other agents\n\nCopy `SKILL.md` and the `references/` folder into your project's skills directory (`.agents/skills/autoresearch-loop/`), then invoke with `$autoresearch-loop`.\n\n---\n\n## Usage\n\nSay what you want in one sentence:\n\n```text\n$autoresearch-loop\nReduce TypeScript `any` types in src/**/*.ts without breaking tests.\n```\n\nThe agent will confirm a run contract before making edits:\n\n1. Goal and target metric\n2. Verify command\n3. Guard command\n4. Edit scope and forbidden paths\n5. Rollback strategy\n6. Foreground/background mode\n7. Iteration cap\n8. External research policy\n\nThe loop starts only after you approve the contract and say go.\n\n---\n\n## The Loop\n\n```text\nread contract + state + lessons\npick ONE hypothesis\nmake ONE scoped atomic change\nsnapshot or commit\nrun VERIFY\nrun GUARD\nkeep / discard / rework\nlog result\ncheck escalation and safety gates\nrepeat only within approved cap\n```\n\n---\n\n## Escalation Ladder\n\n| Trigger | Action |\n|---------|--------|\n| 3 consecutive discards | REFINE - adjust within current strategy |\n| 5 consecutive discards | PIVOT - fundamentally different approach |\n| 2 PIVOTs without improvement | Ask before external research unless pre-approved |\n| 3 PIVOTs without improvement | Soft blocker - stop and report to human |\n\nA single successful keep resets all counters.\n\n---\n\n## What's Inside\n\n```text\nautoresearch-loop/\n├── SKILL.md                          Core loop rules + decision protocol\n└── references/\n    ├── loop-protocol.md              Full iteration spec + results log format\n    ├── pivot-protocol.md             REFINE/PIVOT/soft-blocker escalation\n    └── lessons-protocol.md           Cross-run learning + lesson format\n```\n\n---\n\n## Inspiration\n\nInspired by Karpathy's autoresearch and codex-autoresearch. Built as our own clean, agent-agnostic implementation.\n\n---\n\n## License\n\nMIT - see [LICENSE](LICENSE)\n\nFile v0.2.1:_meta.json\n\n{\n  \"ownerId\": \"kn7d3r58cdxk8k0xg6jq6k65gs873c0c\",\n  \"slug\": \"autoresearch-loop\",\n  \"version\": \"0.2.1\",\n  \"publishedAt\": 1779615676775\n}\n\nFile v0.2.1:references/lessons-protocol.md\n\n# Lessons Protocol\n\n## When to Extract Lessons\n\n| Event | Lesson type |\n|-------|-------------|\n| Every kept iteration | Positive — what worked and why |\n| Every PIVOT decision | Strategic — what failed and why, what to try instead |\n| Run completion | Summary — overall findings, best approach found |\n| Safety stop | Boundary — what approval, scope, or measurement was missing |\n\n## Lesson Format\n\n```markdown\n## [type] — [date] — iteration [N]\n- **What:** [one sentence describing the change]\n- **Result:** metric went from X to Y (delta: Z)\n- **Why it worked / failed:** [concise explanation]\n- **Reuse:** [when to apply this lesson again, or what to avoid]\n- **Scope:** [approved files/directories touched]\n```\n\n## Storage\n\n- File: `autoresearch-lessons.md` in the working repo root unless the user chooses another path\n- Do not commit this file unless the user explicitly asks\n- Read at the start of every run — consult before picking hypotheses\n- Capacity: about 50 entries. When over capacity, summarise older entries over 30 days into a single paragraph, preserving current-run lessons verbatim.\n\n## How to Use Lessons When Picking Hypotheses\n\nBefore picking a hypothesis:\n1. Check if a similar approach has been tried before\n2. If it failed previously, skip it or apply the lesson to do it differently\n3. If it succeeded, try related variants first\n4. Positive lessons bias toward proven approaches\n5. Strategic lessons bias away from known dead ends\n6. Boundary lessons prevent repeating unsafe scope, rollback, or measurement assumptions\n\n## Time Decay\n\nLessons older than 90 days are summarised and compressed. The summary preserves:\n- What general strategies worked\n- What general strategies failed\n- Any hard constraints discovered, such as guard-file boundaries or metric limitations\n\nCurrent-run lessons are always kept verbatim regardless of date.\n\nFile v0.2.1:references/loop-protocol.md\n\n# Loop Protocol\n\n## Run Contract\n\nBefore any edit, confirm and record:\n\n- goal, metric, baseline, and target\n- exact VERIFY command\n- exact GUARD command\n- allowed edit scope and forbidden paths\n- rollback strategy\n- run mode and iteration cap\n- external research policy\n- private-data boundary\n\nDo not start until the user approves the contract.\n\n## Full Loop (per iteration)\n\n1. **Review state** — read the approved contract, git state, results log, lessons, and current metric\n2. **Pick hypothesis** — one atomic change that could improve the metric\n3. **Check scope** — confirm the planned edit is inside approved scope and does not touch forbidden paths\n4. **Make the change** — one logical change, one concern\n5. **Snapshot/commit** — record only current-loop changes before verification\n6. **Run VERIFY** — execute the approved verify command. Did the metric improve?\n7. **Run GUARD** — execute the approved guard command. Did anything regress?\n8. **Decide** — keep, rework, discard, or stop according to SKILL.md\n9. **Log** — append one row to results log before starting the next iteration\n10. **Health check** — check discard streak, cap, scope, and escalation ladder\n11. **Continue** — or stop if a terminal condition is reached\n\n## Terminal Conditions\n\nStop when ANY of the following is true:\n\n- Goal metric reaches target\n- Approved iteration cap reached\n- Soft blocker triggered\n- Manual stop requested\n- Verify or guard command is no longer valid\n- Rollback is unsafe\n- Required edit is outside approved scope\n- External research is needed but was not approved\n- Private data would need to be exposed externally\n\n## What NOT to Do\n\n- Never start without an approved run contract\n- Never make more than one logical change per iteration\n- Never skip logging before starting the next iteration\n- Never modify guard files unless the user updates the scope contract\n- Never pause mid-loop to ask the user unless a safety gate, blocker, or contract change is needed\n- Never assume a change worked without running verify\n- Never push, deploy, publish, or touch production systems unless explicitly approved for this run\n- Never paste private code, secrets, logs, customer data, or proprietary data into external services\n\n## Results Log Format\n\n```text\niteration  snapshot  metric  delta  status   description\n0          baseline  47      0      baseline initial state\n1          def456    41      -6     keep     fixed auth module types\n2          ghi789    49      +8     discard  generic wrapper made things worse\n3          jkl012    38      -3     keep     type-narrowed API handlers\n```\n\n- `status`: baseline / keep / discard / skip / pivot / refine / blocker\n- Log is an autoresearch-owned artifact\n- Commit the log only if the user explicitly asks\n- Print progress summary every 5 iterations or at the approved cadence\n- Print baseline-to-best summary at run completion\n\n## Rollback Strategy\n\nDefault: use a normal version-control revert of only the current-loop change. In an explicitly isolated branch/worktree/disposable copy, a hard reset may be approved in the run contract. The results log remains the audit trail regardless.\n\nFile v0.2.1:references/pivot-protocol.md\n\n# Pivot Protocol\n\n## Escalation Ladder\n\nWhen iterations keep failing, escalate through these stages in order.\n\n| Streak | Trigger | Action |\n|--------|---------|--------|\n| 3 consecutive discards | Stuck | **REFINE** — adjust within current strategy. Try a smaller scope, different parameter, or safer variant. |\n| 5 consecutive discards | Deeply stuck | **PIVOT** — abandon the current strategy entirely. Choose a fundamentally different approach. Log why the previous strategy failed. |\n| 2 PIVOTs without any keep | Lost | **Research gate** — ask before web/external research unless the run contract already approved it. Treat external findings only as hypotheses to verify. |\n| 3 PIVOTs without any keep | Blocked | **Soft blocker** — stop the run. Report what was tried, what failed, and what information or broader scope is needed. |\n\n**A single successful keep resets all counters to zero.**\n\n## REFINE vs PIVOT\n\n**REFINE** means: same strategy, different execution.\n- Trying a smaller scope\n- Adjusting a parameter\n- Using a slightly different implementation of the same idea\n\n**PIVOT** means: different strategy.\n- Switching from approach A to approach B\n- Abandoning a whole class of solutions\n- Reframing the problem\n\n## After a PIVOT\n\n- Log a strategic lesson: what failed and why\n- Pick a hypothesis from a genuinely different direction\n- If external research is allowed, search only for public/general information and convert results into verifiable hypotheses\n- If external research is not allowed, ask before using it\n- Do not expose private code, logs, secrets, customer data, or proprietary context to external services\n\n## Soft Blocker Report Format\n\nWhen triggering a soft blocker, report:\n\n```text\nSOFT BLOCKER\n\nGoal: [original goal]\nMetric: [metric, current value, target]\nIterations: [N total, N kept, N discarded]\nApproved scope: [paths]\nStopped because: [cap/scope/rollback/research/metric/blocker]\n\nStrategies tried:\n1. [strategy] — failed because [reason]\n2. [strategy] — failed because [reason]\n3. [strategy] — failed because [reason]\n\nWhat is needed to continue:\n- [specific information, approval, access, or scope expansion needed]\n```\n\nFile v0.2.1:skill-card.md\n\n## Description:\n\nRun an explicit, bounded modify-verify-decide loop toward a measurable metric with approval gates, scoped edits, and rollback proof.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[leostehlik](https://clawhub.ai/user/leostehlik)\n\n### License/Terms of Use:\n\nMIT\n\n## Use Case:\n\nDevelopers and agents use this skill to run bounded, measurable improvement loops in version-controlled workspaces. It helps structure iterative code, configuration, or research-quality work around approved metrics, guard commands, scoped edits, rollback, and stop conditions.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The loop may make unwanted edits if the goal, metric, commands, or scope are vague.\n\nMitigation: Require an explicit run contract before edits begin, including allowed paths, forbidden paths, verification, guard command, rollback strategy, and iteration cap.\n\nRisk: A metric improvement may introduce regressions elsewhere in the project.\n\nMitigation: Run a separate approved guard command after each verify command and discard or rework changes when the guard fails.\n\nRisk: Unattended execution, external research, or broad rollback actions may expose private data or disturb unrelated work.\n\nMitigation: Default to foreground operation, require explicit approval for background mode or external research, keep edits scoped, and revert only current-loop changes.\n\n## Reference(s):\n\n- [Loop Protocol](artifact/references/loop-protocol.md)\n- [Pivot Protocol](artifact/references/pivot-protocol.md)\n- [Lessons Protocol](artifact/references/lessons-protocol.md)\n\n## Skill Output:\n\n**Output Type(s):** [Guidance, Markdown, Code, Shell commands, Configuration]\n\n**Output Format:** [Markdown guidance with inline command summaries and optional code or configuration changes]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Produces a single iteration stream with run-contract prompts, results logs, keep/discard decisions, and lesson summaries.]\n\n## Skill Version(s):\n\n0.2.1 (source: SKILL.md frontmatter and server release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v0.2.1:LICENSE\n\nMIT License\n\nCopyright (c) 2026 Leo Stehlik\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\nArchive v0.2.0: 7 files, 7770 bytes\n\nFiles: LICENSE (1068b), README.md (3100b), references/lessons-protocol.md (1567b), references/loop-protocol.md (2097b), references/pivot-protocol.md (1907b), SKILL.md (3432b), _meta.json (136b)\n\nFile v0.2.0:SKILL.md\n\n---\nname: autoresearch-loop\ndescription: \"Run an iterative modify-verify-decide loop toward a measurable metric while keeping improvements and discarding failures.\"\nmetadata:\n  version: \"0.2.0\"\n---\n\n# Autoresearch Loop\n\nYou are running an autonomous improvement loop. The goal is measurable. Each iteration makes one atomic change, verifies it, and keeps or discards the result. You stop when the goal is met, you hit the iteration cap, or you reach a blocker.\n\n## Core Loop\n\n```\n1. Read context + lessons file\n2. Pick ONE hypothesis\n3. Make ONE atomic change\n4. Commit (before verification)\n5. Run VERIFY — did the target metric improve?\n6. Run GUARD — did anything else break?\n7. Decision: keep / discard / rework\n8. Log the result\n9. Health check (3+ discards? escalate)\n10. Repeat\n```\n\nRead `references/loop-protocol.md` for the full loop spec.\nRead `references/pivot-protocol.md` for the escalation ladder.\nRead `references/lessons-protocol.md` for cross-run learning.\n\n## Before Starting\n\nConfirm with the user:\n- **Goal** — one sentence describing what you want to achieve\n- **Metric** — what number are you measuring (lower/higher = better)\n- **Verify command** — how to measure the metric mechanically\n- **Guard command** — what must not break (optional but recommended)\n- **Scope** — which files/directories are in play\n- **Run mode** — foreground (current session) or background (unattended)\n- **Iteration cap** — unlimited, or stop at N\n\nShow what you found and ask for confirmation. One round minimum. Then say \"go\" to start.\n\n## Verify vs Guard\n\n- **Verify** = \"Did the target metric improve?\" — measures progress\n- **Guard** = \"Did anything else break?\" — prevents regressions\n- Guard files are never modified\n- If verify passes but guard fails: rework up to 2 attempts, then discard\n\n## Decision Rules\n\n| Result | Action |\n|--------|--------|\n| Verify pass + Guard pass | Keep. Extract lesson. |\n| Verify pass + Guard fail | Rework (max 2 attempts). If still failing, discard. |\n| Verify fail | Discard. Revert. |\n| Crash | Auto-fix attempt. If unfixable, skip. |\n| Syntax error | Fix immediately. Does not count as iteration. |\n\n## Escalation Ladder\n\nSee `references/pivot-protocol.md` for full details.\n\n| Trigger | Action |\n|---------|--------|\n| 3 consecutive discards | REFINE — adjust within current strategy |\n| 5 consecutive discards | PIVOT — abandon strategy, try fundamentally different approach |\n| 2 PIVOTs without improvement | Web search for external solutions |\n| 3 PIVOTs without improvement | Soft blocker — stop and report to human |\n\nA single successful keep resets all counters.\n\n## Long Run Hygiene\n\n- Every completed experiment must be recorded before the next one starts\n- Re-read original instructions every 10 iterations to prevent context drift\n- Log: one row per iteration (iteration, commit, metric, delta, status, description)\n\n## Lessons\n\nExtract structured lessons after:\n- Every kept iteration (what worked and why)\n- Every PIVOT decision (what failed and why)\n- Run completion\n\nStore in `autoresearch-lessons.md` (not committed). Consult at the start of each run. Keep ~50 entries, summarise older ones with time decay.\n\n## Safety\n\n- Commit or otherwise snapshot only your own changes before verification.\n- Revert only changes made by the current loop.\n- Never reset unrelated user work.\n- Stop and report if the metric cannot be measured mechanically.\n\nFile v0.2.0:README.md\n\n# autoresearch-loop\n\nAn autonomous modify-verify-decide loop for any agent and any measurable goal.\n\nYou give it a goal and a metric. It iterates — making one atomic change at a time, verifying, keeping improvements, discarding failures — until the goal is met or you stop it. It learns across iterations and knows when to escalate.\n\n---\n\n## What it does\n\n- Runs a tight modify-verify-keep/discard loop toward a measurable target\n- Separates **Verify** (did the metric improve?) from **Guard** (did anything else break?)\n- Escalates intelligently: REFINE after 3 failures, PIVOT after 5, web search after 2 pivots, soft blocker after 3 pivots\n- Extracts lessons after every iteration and uses them to bias future hypotheses\n- Prevents context drift on long runs by re-reading instructions every 10 iterations\n- Works for anything with a number: test coverage, type errors, lint warnings, performance, research quality, translation completeness\n\n---\n\n## Installation\n\n### OpenClaw\n\nAdd your workspace skills directory to `openclaw.json`:\n\n```json\n{\n  \"skills\": {\n    \"load\": {\n      \"extraDirs\": [\"/path/to/your/skills\"]\n    }\n  }\n}\n```\n\nClone into that directory:\n\n```bash\ngit clone https://github.com/LeoStehlik/autoresearch-loop.git /path/to/your/skills/autoresearch-loop\n```\n\n### Codex / Claude Code / other agents\n\nCopy `SKILL.md` and the `references/` folder into your project's skills directory (`.agents/skills/autoresearch-loop/`), then invoke with `$autoresearch-loop`.\n\n---\n\n## Usage\n\nSay what you want in one sentence:\n\n```\n$autoresearch-loop\nReduce TypeScript `any` types to zero in src/**/*.ts\n```\n\nThe agent will:\n1. Scan and confirm: goal, metric, verify command, guard command, scope\n2. Ask: foreground (current session) or background (unattended)?\n3. Ask: run until done, or cap at N iterations?\n4. Start on \"go\"\n\n---\n\n## The Loop\n\n```\nread state + lessons\npick ONE hypothesis\nmake ONE atomic change\ncommit\nrun VERIFY\nrun GUARD\nkeep / discard / rework\nlog result\ncheck escalation ladder\nrepeat\n```\n\n---\n\n## Escalation Ladder\n\n| Trigger | Action |\n|---------|--------|\n| 3 consecutive discards | REFINE - adjust within current strategy |\n| 5 consecutive discards | PIVOT - fundamentally different approach |\n| 2 PIVOTs without improvement | Web search for external solutions |\n| 3 PIVOTs without improvement | Soft blocker - stop and report to human |\n\nA single successful keep resets all counters.\n\n---\n\n## What's Inside\n\n```\nautoresearch-loop/\n├── SKILL.md                          Core loop rules + decision protocol\n└── references/\n    ├── loop-protocol.md              Full iteration spec + results log format\n    ├── pivot-protocol.md             REFINE/PIVOT/soft-blocker escalation\n    └── lessons-protocol.md           Cross-run learning + lesson format\n```\n\n---\n\n## Inspiration\n\nInspired by [Karpathy's autoresearch](https://github.com/karpathy/autoresearch) and [codex-autoresearch](https://github.com/leo-lilinxiao/codex-autoresearch). Built as our own clean, agent-agnostic implementation.\n\n---\n\n## License\n\nMIT - see [LICENSE](LICENSE)\n\nFile v0.2.0:_meta.json\n\n{\n  \"ownerId\": \"kn7d3r58cdxk8k0xg6jq6k65gs873c0c\",\n  \"slug\": \"autoresearch-loop\",\n  \"version\": \"0.2.0\",\n  \"publishedAt\": 1779469515185\n}\n\nFile v0.2.0:references/lessons-protocol.md\n\n# Lessons Protocol\n\n## When to Extract Lessons\n\n| Event | Lesson type |\n|-------|-------------|\n| Every kept iteration | Positive — what worked and why |\n| Every PIVOT decision | Strategic — what failed and why, what to try instead |\n| Run completion | Summary — overall findings, best approach found |\n\n## Lesson Format\n\n```markdown\n## [type] — [date] — iteration [N]\n- **What:** [one sentence describing the change]\n- **Result:** metric went from X to Y (delta: Z)\n- **Why it worked / failed:** [concise explanation]\n- **Reuse:** [when to apply this lesson again, or what to avoid]\n```\n\n## Storage\n\n- File: `autoresearch-lessons.md` in the repo root (not committed)\n- Read at the start of every run — consult before picking hypotheses\n- Capacity: ~50 entries. When over capacity, summarise older entries (>30 days) into a single paragraph, preserving current-run lessons verbatim.\n\n## How to Use Lessons When Picking Hypotheses\n\nBefore picking a hypothesis:\n1. Check if a similar approach has been tried before\n2. If it failed previously — skip it or apply the lesson to do it differently\n3. If it succeeded — try related variants first\n4. Positive lessons bias toward proven approaches\n5. Strategic lessons bias away from known dead ends\n\n## Time Decay\n\nLessons older than 90 days are summarised and compressed. The summary preserves:\n- What general strategies worked\n- What general strategies failed\n- Any hard constraints discovered (e.g. \"guard always fails when X is modified\")\n\nCurrent-run lessons are always kept verbatim regardless of date.\n\nFile v0.2.0:references/loop-protocol.md\n\n# Loop Protocol\n\n## Full Loop (per iteration)\n\n1. **Review state** — read git history, results log, lessons, current metric\n2. **Pick hypothesis** — one atomic change that could improve the metric. Apply multiple lenses: algorithmic, structural, configuration, dependency, test coverage angle.\n3. **Make the change** — one file, one concern. Atomic.\n4. **Commit** — before running verification. This enables clean rollback.\n5. **Run VERIFY** — execute the verify command. Did the metric improve?\n6. **Run GUARD** — execute the guard command. Did anything regress?\n7. **Decide** — see decision rules in SKILL.md\n8. **Log** — append one row to results log before starting the next iteration\n9. **Health check** — check discard streak, apply escalation ladder if needed\n10. **Continue** — or stop if terminal condition met\n\n## Terminal Conditions\n\nStop when ANY of the following is true:\n- Goal metric reaches target\n- Iteration cap reached\n- Soft blocker triggered (3 PIVOTs without improvement)\n- Manual stop requested\n\n## What NOT to Do\n\n- Never make more than one logical change per iteration\n- Never skip logging before starting the next iteration\n- Never modify guard files\n- Never pause mid-loop to ask the user (unless it is a soft blocker)\n- Never assume a change worked without running verify\n\n## Results Log Format\n\n```\niteration  commit   metric  delta  status   description\n0          abc123   47      0      baseline initial state\n1          def456   41      -6     keep     fixed auth module types\n2          def456   49      +8     discard  generic wrapper made things worse\n3          def456   38      -3     keep     type-narrowed API handlers\n```\n\n- `status`: baseline / keep / discard / skip / pivot / refine\n- Log is not committed — it is an autoresearch-owned artifact\n- Print progress summary every 5 iterations\n- Print baseline-to-best summary at run completion\n\n## Rollback Strategy\n\nApproved before launch. Default: `git revert --no-edit HEAD`. In isolated branch/worktree: hard reset is acceptable. The results log remains the audit trail regardless.\n\nFile v0.2.0:references/pivot-protocol.md\n\n# Pivot Protocol\n\n## Escalation Ladder\n\nWhen iterations keep failing, escalate through these stages in order.\n\n| Streak | Trigger | Action |\n|--------|---------|--------|\n| 3 consecutive discards | Stuck | **REFINE** — adjust within current strategy. Try a different variant, smaller scope, or different parameter. Do not change the fundamental approach yet. |\n| 5 consecutive discards | Deeply stuck | **PIVOT** — abandon the current strategy entirely. Choose a fundamentally different approach. Log why the previous strategy failed. |\n| 2 PIVOTs without any keep | Lost | **Web search** — look for external solutions, known fixes, community approaches. Treat search results as new hypotheses to verify. |\n| 3 PIVOTs without any keep | Blocked | **Soft blocker** — stop the run. Report to the human: what was tried, what failed, what information or broader scope is needed. |\n\n**A single successful keep resets all counters to zero.**\n\n## REFINE vs PIVOT\n\n**REFINE** means: same strategy, different execution.\n- Trying a smaller scope\n- Adjusting a parameter\n- Using a slightly different implementation of the same idea\n\n**PIVOT** means: different strategy.\n- Switching from approach A to approach B\n- Abandoning a whole class of solutions\n- Reframing the problem\n\n## After a PIVOT\n\n- Log a strategic lesson: what failed and why\n- Pick a hypothesis from a genuinely different direction\n- If you have web search capability, search before picking the new hypothesis\n\n## Soft Blocker Report Format\n\nWhen triggering a soft blocker, report:\n\n```\nSOFT BLOCKER\n\nGoal: [original goal]\nMetric: [metric, current value, target]\nIterations: [N total, N kept, N discarded]\n\nStrategies tried:\n1. [strategy] — failed because [reason]\n2. [strategy] — failed because [reason]\n3. [strategy] — failed because [reason]\n\nWhat is needed to continue:\n- [specific information, access, or scope expansion needed]\n```\n\nFile v0.2.0:LICENSE\n\nMIT License\n\nCopyright (c) 2026 Leo Stehlik\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\nArchive v0.1.0: 7 files, 7822 bytes\n\nFiles: LICENSE (1068b), README.md (3100b), references/lessons-protocol.md (1567b), references/loop-protocol.md (2097b), references/pivot-protocol.md (1907b), SKILL.md (3516b), _meta.json (136b)\n\nFile v0.1.0:SKILL.md\n\n---\nname: autoresearch-loop\ndescription: Runs an autonomous modify-verify-decide loop toward a measurable goal. Use when an agent needs to iterate repeatedly on a codebase, research task, or any problem with a mechanical metric — test coverage, type errors, lint warnings, performance, research quality. Keeps improvements, discards failures, learns across iterations. Inspired by Karpathy's autoresearch and codex-autoresearch. Works with any agent (Codex, Claude Code, subagents) and any language or domain.\n---\n\n# Autoresearch Loop\n\nYou are running an autonomous improvement loop. The goal is measurable. Each iteration makes one atomic change, verifies it, and keeps or discards the result. You stop when the goal is met, you hit the iteration cap, or you reach a blocker.\n\n## Core Loop\n\n```\n1. Read context + lessons file\n2. Pick ONE hypothesis\n3. Make ONE atomic change\n4. Commit (before verification)\n5. Run VERIFY — did the target metric improve?\n6. Run GUARD — did anything else break?\n7. Decision: keep / discard / rework\n8. Log the result\n9. Health check (3+ discards? escalate)\n10. Repeat\n```\n\nRead `references/loop-protocol.md` for the full loop spec.\nRead `references/pivot-protocol.md` for the escalation ladder.\nRead `references/lessons-protocol.md` for cross-run learning.\n\n## Before Starting\n\nConfirm with the user:\n- **Goal** — one sentence describing what you want to achieve\n- **Metric** — what number are you measuring (lower/higher = better)\n- **Verify command** — how to measure the metric mechanically\n- **Guard command** — what must not break (optional but recommended)\n- **Scope** — which files/directories are in play\n- **Run mode** — foreground (current session) or background (unattended)\n- **Iteration cap** — unlimited, or stop at N\n\nShow what you found and ask for confirmation. One round minimum. Then say \"go\" to start.\n\n## Verify vs Guard\n\n- **Verify** = \"Did the target metric improve?\" — measures progress\n- **Guard** = \"Did anything else break?\" — prevents regressions\n- Guard files are never modified\n- If verify passes but guard fails: rework up to 2 attempts, then discard\n\n## Decision Rules\n\n| Result | Action |\n|--------|--------|\n| Verify pass + Guard pass | Keep. Extract lesson. |\n| Verify pass + Guard fail | Rework (max 2 attempts). If still failing, discard. |\n| Verify fail | Discard. Revert. |\n| Crash | Auto-fix attempt. If unfixable, skip. |\n| Syntax error | Fix immediately. Does not count as iteration. |\n\n## Escalation Ladder\n\nSee `references/pivot-protocol.md` for full details.\n\n| Trigger | Action |\n|---------|--------|\n| 3 consecutive discards | REFINE — adjust within current strategy |\n| 5 consecutive discards | PIVOT — abandon strategy, try fundamentally different approach |\n| 2 PIVOTs without improvement | Web search for external solutions |\n| 3 PIVOTs without improvement | Soft blocker — stop and report to human |\n\nA single successful keep resets all counters.\n\n## Long Run Hygiene\n\n- Every completed experiment must be recorded before the next one starts\n- Re-read original instructions every 10 iterations to prevent context drift\n- Log: one row per iteration (iteration, commit, metric, delta, status, description)\n\n## Lessons\n\nExtract structured lessons after:\n- Every kept iteration (what worked and why)\n- Every PIVOT decision (what failed and why)\n- Run completion\n\nStore in `autoresearch-lessons.md` (not committed). Consult at the start of each run. Keep ~50 entries, summarise older ones with time decay.\n\nFile v0.1.0:README.md\n\n# autoresearch-loop\n\nAn autonomous modify-verify-decide loop for any agent and any measurable goal.\n\nYou give it a goal and a metric. It iterates — making one atomic change at a time, verifying, keeping improvements, discarding failures — until the goal is met or you stop it. It learns across iterations and knows when to escalate.\n\n---\n\n## What it does\n\n- Runs a tight modify-verify-keep/discard loop toward a measurable target\n- Separates **Verify** (did the metric improve?) from **Guard** (did anything else break?)\n- Escalates intelligently: REFINE after 3 failures, PIVOT after 5, web search after 2 pivots, soft blocker after 3 pivots\n- Extracts lessons after every iteration and uses them to bias future hypotheses\n- Prevents context drift on long runs by re-reading instructions every 10 iterations\n- Works for anything with a number: test coverage, type errors, lint warnings, performance, research quality, translation completeness\n\n---\n\n## Installation\n\n### OpenClaw\n\nAdd your workspace skills directory to `openclaw.json`:\n\n```json\n{\n  \"skills\": {\n    \"load\": {\n      \"extraDirs\": [\"/path/to/your/skills\"]\n    }\n  }\n}\n```\n\nClone into that directory:\n\n```bash\ngit clone https://github.com/LeoStehlik/autoresearch-loop.git /path/to/your/skills/autoresearch-loop\n```\n\n### Codex / Claude Code / other agents\n\nCopy `SKILL.md` and the `references/` folder into your project's skills directory (`.agents/skills/autoresearch-loop/`), then invoke with `$autoresearch-loop`.\n\n---\n\n## Usage\n\nSay what you want in one sentence:\n\n```\n$autoresearch-loop\nReduce TypeScript `any` types to zero in src/**/*.ts\n```\n\nThe agent will:\n1. Scan and confirm: goal, metric, verify command, guard command, scope\n2. Ask: foreground (current session) or background (unattended)?\n3. Ask: run until done, or cap at N iterations?\n4. Start on \"go\"\n\n---\n\n## The Loop\n\n```\nread state + lessons\npick ONE hypothesis\nmake ONE atomic change\ncommit\nrun VERIFY\nrun GUARD\nkeep / discard / rework\nlog result\ncheck escalation ladder\nrepeat\n```\n\n---\n\n## Escalation Ladder\n\n| Trigger | Action |\n|---------|--------|\n| 3 consecutive discards | REFINE - adjust within current strategy |\n| 5 consecutive discards | PIVOT - fundamentally different approach |\n| 2 PIVOTs without improvement | Web search for external solutions |\n| 3 PIVOTs without improvement | Soft blocker - stop and report to human |\n\nA single successful keep resets all counters.\n\n---\n\n## What's Inside\n\n```\nautoresearch-loop/\n├── SKILL.md                          Core loop rules + decision protocol\n└── references/\n    ├── loop-protocol.md              Full iteration spec + results log format\n    ├── pivot-protocol.md             REFINE/PIVOT/soft-blocker escalation\n    └── lessons-protocol.md           Cross-run learning + lesson format\n```\n\n---\n\n## Inspiration\n\nInspired by [Karpathy's autoresearch](https://github.com/karpathy/autoresearch) and [codex-autoresearch](https://github.com/leo-lilinxiao/codex-autoresearch). Built as our own clean, agent-agnostic implementation.\n\n---\n\n## License\n\nMIT - see [LICENSE](LICENSE)\n\nFile v0.1.0:_meta.json\n\n{\n  \"ownerId\": \"kn7d3r58cdxk8k0xg6jq6k65gs873c0c\",\n  \"slug\": \"autoresearch-loop\",\n  \"version\": \"0.1.0\",\n  \"publishedAt\": 1779320715455\n}\n\nFile v0.1.0:references/lessons-protocol.md\n\n# Lessons Protocol\n\n## When to Extract Lessons\n\n| Event | Lesson type |\n|-------|-------------|\n| Every kept iteration | Positive — what worked and why |\n| Every PIVOT decision | Strategic — what failed and why, what to try instead |\n| Run completion | Summary — overall findings, best approach found |\n\n## Lesson Format\n\n```markdown\n## [type] — [date] — iteration [N]\n- **What:** [one sentence describing the change]\n- **Result:** metric went from X to Y (delta: Z)\n- **Why it worked / failed:** [concise explanation]\n- **Reuse:** [when to apply this lesson again, or what to avoid]\n```\n\n## Storage\n\n- File: `autoresearch-lessons.md` in the repo root (not committed)\n- Read at the start of every run — consult before picking hypotheses\n- Capacity: ~50 entries. When over capacity, summarise older entries (>30 days) into a single paragraph, preserving current-run lessons verbatim.\n\n## How to Use Lessons When Picking Hypotheses\n\nBefore picking a hypothesis:\n1. Check if a similar approach has been tried before\n2. If it failed previously — skip it or apply the lesson to do it differently\n3. If it succeeded — try related variants first\n4. Positive lessons bias toward proven approaches\n5. Strategic lessons bias away from known dead ends\n\n## Time Decay\n\nLessons older than 90 days are summarised and compressed. The summary preserves:\n- What general strategies worked\n- What general strategies failed\n- Any hard constraints discovered (e.g. \"guard always fails when X is modified\")\n\nCurrent-run lessons are always kept verbatim regardless of date.\n\nFile v0.1.0:references/loop-protocol.md\n\n# Loop Protocol\n\n## Full Loop (per iteration)\n\n1. **Review state** — read git history, results log, lessons, current metric\n2. **Pick hypothesis** — one atomic change that could improve the metric. Apply multiple lenses: algorithmic, structural, configuration, dependency, test coverage angle.\n3. **Make the change** — one file, one concern. Atomic.\n4. **Commit** — before running verification. This enables clean rollback.\n5. **Run VERIFY** — execute the verify command. Did the metric improve?\n6. **Run GUARD** — execute the guard command. Did anything regress?\n7. **Decide** — see decision rules in SKILL.md\n8. **Log** — append one row to results log before starting the next iteration\n9. **Health check** — check discard streak, apply escalation ladder if needed\n10. **Continue** — or stop if terminal condition met\n\n## Terminal Conditions\n\nStop when ANY of the following is true:\n- Goal metric reaches target\n- Iteration cap reached\n- Soft blocker triggered (3 PIVOTs without improvement)\n- Manual stop requested\n\n## What NOT to Do\n\n- Never make more than one logical change per iteration\n- Never skip logging before starting the next iteration\n- Never modify guard files\n- Never pause mid-loop to ask the user (unless it is a soft blocker)\n- Never assume a change worked without running verify\n\n## Results Log Format\n\n```\niteration  commit   metric  delta  status   description\n0          abc123   47      0      baseline initial state\n1          def456   41      -6     keep     fixed auth module types\n2          def456   49      +8     discard  generic wrapper made things worse\n3          def456   38      -3     keep     type-narrowed API handlers\n```\n\n- `status`: baseline / keep / discard / skip / pivot / refine\n- Log is not committed — it is an autoresearch-owned artifact\n- Print progress summary every 5 iterations\n- Print baseline-to-best summary at run completion\n\n## Rollback Strategy\n\nApproved before launch. Default: `git revert --no-edit HEAD`. In isolated branch/worktree: hard reset is acceptable. The results log remains the audit trail regardless.\n\nFile v0.1.0:references/pivot-protocol.md\n\n# Pivot Protocol\n\n## Escalation Ladder\n\nWhen iterations keep failing, escalate through these stages in order.\n\n| Streak | Trigger | Action |\n|--------|---------|--------|\n| 3 consecutive discards | Stuck | **REFINE** — adjust within current strategy. Try a different variant, smaller scope, or different parameter. Do not change the fundamental approach yet. |\n| 5 consecutive discards | Deeply stuck | **PIVOT** — abandon the current strategy entirely. Choose a fundamentally different approach. Log why the previous strategy failed. |\n| 2 PIVOTs without any keep | Lost | **Web search** — look for external solutions, known fixes, community approaches. Treat search results as new hypotheses to verify. |\n| 3 PIVOTs without any keep | Blocked | **Soft blocker** — stop the run. Report to the human: what was tried, what failed, what information or broader scope is needed. |\n\n**A single successful keep resets all counters to zero.**\n\n## REFINE vs PIVOT\n\n**REFINE** means: same strategy, different execution.\n- Trying a smaller scope\n- Adjusting a parameter\n- Using a slightly different implementation of the same idea\n\n**PIVOT** means: different strategy.\n- Switching from approach A to approach B\n- Abandoning a whole class of solutions\n- Reframing the problem\n\n## After a PIVOT\n\n- Log a strategic lesson: what failed and why\n- Pick a hypothesis from a genuinely different direction\n- If you have web search capability, search before picking the new hypothesis\n\n## Soft Blocker Report Format\n\nWhen triggering a soft blocker, report:\n\n```\nSOFT BLOCKER\n\nGoal: [original goal]\nMetric: [metric, current value, target]\nIterations: [N total, N kept, N discarded]\n\nStrategies tried:\n1. [strategy] — failed because [reason]\n2. [strategy] — failed because [reason]\n3. [strategy] — failed because [reason]\n\nWhat is needed to continue:\n- [specific information, access, or scope expansion needed]\n```\n\nFile v0.1.0:LICENSE\n\nMIT License\n\nCopyright (c) 2026 Leo Stehlik\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.","readmeExcerpt":"Skill: Autoresearch Loop Owner: leostehlik Summary: Run an explicit, bounded modify-verify-decide loop toward a measurable metric with approval gates, scoped edits, and rollback proof. Tags: agents:0.2.1, automation:0.2.1, latest:0.2.1, openclaw:0.2.1, research:0.2.1 Version history: v0.2.1 | 2026-05-24T09:41:16.775Z | user Add explicit run contract, foreground default, scoped edit, rollback, external research, and p","codeSnippets":[],"executableExamples":[{"language":"text","snippet":"1. Confirm approved run contract\n2. Read context + lessons file\n3. Pick ONE hypothesis\n4. Make ONE atomic change inside approved scope\n5. Snapshot/commit before verification\n6. Run approved VERIFY command\n7. Run approved GUARD command\n8. Decision: keep / discard / rework\n9. Log the result\n10. Health check and safety gate\n11. Repeat only within approved cap"},{"language":"json","snippet":"{\n  \"skills\": {\n    \"load\": {\n      \"extraDirs\": [\"/path/to/your/skills\"]\n    }\n  }\n}"},{"language":"bash","snippet":"git clone https://github.com/LeoStehlik/autoresearch-loop.git /path/to/your/skills/autoresearch-loop"},{"language":"text","snippet":"$autoresearch-loop\nReduce TypeScript `any` types in src/**/*.ts without breaking tests."},{"language":"text","snippet":"read contract + state + lessons\npick ONE hypothesis\nmake ONE scoped atomic change\nsnapshot or commit\nrun VERIFY\nrun GUARD\nkeep / discard / rework\nlog result\ncheck escalation and safety gates\nrepeat only within approved cap"},{"language":"text","snippet":"autoresearch-loop/\n├── SKILL.md                          Core loop rules + decision protocol\n└── references/\n    ├── loop-protocol.md              Full iteration spec + results log format\n    ├── pivot-protocol.md             REFINE/PIVOT/soft-blocker escalation\n    └── lessons-protocol.md           Cross-run learning + lesson format"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: autoresearch-loop\ndescription: \"Run an explicit, bounded modify-verify-decide loop toward a measurable metric with approval gates, scoped edits, and rollback proof.\"\nmetadata:\n  version: \"0.2.1\"\n---\n# Autoresearch Loop\n\nUse this skill only when the user explicitly asks for an autoresearch or iterative improvement loop. It is for bounded, measurable optimisation in a version-controlled workspace. It must not start from casual improvement language, and it must not run unattended until the user has approved the goal, commands, scope, rollback strategy, run mode, and iteration cap.\n\nThe goal is measurable. Each iteration makes one atomic change, verifies it, and keeps or discards the result. The loop stops when the goal is met, the approved iteration cap is reached, the user stops it, or a blocker/safety gate is hit.\n\n## Core Loop\n\n```text\n1. Confirm approved run contract\n2. Read context + lessons file\n3. Pick ONE hypothesis\n4. Make ONE atomic change inside approved scope\n5. Snapshot/commit before verification\n6. Run approved VERIFY command\n7. Run approved GUARD command\n8. Decision: keep / discard / rework\n9. Log the result\n10. Health check and safety gate\n11. Repeat only within approved cap\n```\n\nRead `references/loop-protocol.md` for the full loop spec.\nRead `references/pivot-protocol.md` for the escalation ladder.\nRead `references/lessons-protocol.md` for cross-run learning.\n\n## Before Starting\n\nConfirm with the user and do not start until the contract is explicit:\n- **Goal** — one sentence describing what you want to achieve\n- **Metric** — what number is measured, direction, baseline, and target\n- **Verify command** — exact command used to measure the metric\n- **Guard command** — exact command that must keep passing\n- **Scope** — files/directories allowed to change, and files/directories that are forbidden\n- **Rollback strategy** — normal branch/worktree revert, or isolated disposable reset\n- **Run mode** — foreground by default; background/unattended only after explicit approval\n- **Iteration cap** — required for background/unattended runs; recommended for foreground runs\n- **External research policy** — web/search is off by default unless explicitly approved\n- **Data boundary** — do not expose private code, secrets, logs, or proprietary data to external sources\n\nShow the run contract and ask for confirmation. One round minimum. Then start only after the user says go.\n\n## Verify vs Guard\n\n- **Verify** = \"Did the target metric improve?\" — measures progress\n- **Guard** = \"Did anything else break?\" — prevents regressions\n- Guard files are never modified\n- If verify passes but guard fails: rework up to 2 attempts, then discard\n\n## Decision Rules\n\n| Result | Action |\n|--------|--------|\n| Verify pass + Guard pass | Keep. Extract lesson. |\n| Verify pass + Guard fail | Rework within approved scope (max 2 attempts). If still failing, discard. |\n| Verify fail | Discard using approved rollback. |\n| Crash | Stop unless the fix is clearly inside ap"},{"path":"README.md","content":"# autoresearch-loop\n\nA bounded modify-verify-decide loop for agents working toward a measurable goal.\n\nYou give it a goal, a metric, verification commands, scope, rollback rules, and an iteration cap. It makes one atomic change at a time, verifies the result, keeps improvements, discards failures, and stops when the approved contract says to stop.\n\nThis is not a silent background coding daemon. Foreground review is the default. Background or unattended operation requires explicit approval, a fixed scope, a rollback strategy, and an iteration cap.\n\n---\n\n## What it does\n\n- Runs a tight modify-verify-keep/discard loop toward a measurable target\n- Separates **Verify** (did the metric improve?) from **Guard** (did anything else break?)\n- Requires an approved run contract before edits begin\n- Keeps edits inside approved files/directories\n- Uses version-control snapshots or commits so failures can be discarded cleanly\n- Escalates intelligently: REFINE after 3 failures, PIVOT after 5, ask before external research unless pre-approved, soft blocker after repeated dead ends\n- Extracts lessons after kept iterations and pivots\n- Prevents context drift on long runs by re-reading instructions every 10 iterations\n- Works for anything with a number: test coverage, type errors, lint warnings, performance, research quality, translation completeness\n\n---\n\n## Safety Model\n\nBefore the loop starts, the agent must confirm:\n\n- goal, metric, baseline, and target\n- exact verify and guard commands\n- allowed edit scope and forbidden paths\n- rollback strategy\n- foreground or explicitly approved background mode\n- iteration cap\n- whether external search is allowed\n- private-data boundary\n\nThe loop must stop instead of improvising when the metric cannot be measured, scope is unclear, guard files need changing, rollback is unsafe, or external research would expose private material.\n\n---\n\n## Installation\n\n### OpenClaw\n\nAdd your workspace skills directory to `openclaw.json`:\n\n```json\n{\n  \"skills\": {\n    \"load\": {\n      \"extraDirs\": [\"/path/to/your/skills\"]\n    }\n  }\n}\n```\n\nClone into that directory:\n\n```bash\ngit clone https://github.com/LeoStehlik/autoresearch-loop.git /path/to/your/skills/autoresearch-loop\n```\n\n### Codex / Claude Code / other agents\n\nCopy `SKILL.md` and the `references/` folder into your project's skills directory (`.agents/skills/autoresearch-loop/`), then invoke with `$autoresearch-loop`.\n\n---\n\n## Usage\n\nSay what you want in one sentence:\n\n```text\n$autoresearch-loop\nReduce TypeScript `any` types in src/**/*.ts without breaking tests.\n```\n\nThe agent will confirm a run contract before making edits:\n\n1. Goal and target metric\n2. Verify command\n3. Guard command\n4. Edit scope and forbidden paths\n5. Rollback strategy\n6. Foreground/background mode\n7. Iteration cap\n8. External research policy\n\nThe loop starts only after you approve the contract and say go.\n\n---\n\n## The Loop\n\n```text\nread contract + state + lessons\npick ONE hypothesis\nmake ONE scoped atomic change\nsnapsh"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn7d3r58cdxk8k0xg6jq6k65gs873c0c\",\n  \"slug\": \"autoresearch-loop\",\n  \"version\": \"0.2.1\",\n  \"publishedAt\": 1779615676775\n}"},{"path":"references/lessons-protocol.md","content":"# Lessons Protocol\n\n## When to Extract Lessons\n\n| Event | Lesson type |\n|-------|-------------|\n| Every kept iteration | Positive — what worked and why |\n| Every PIVOT decision | Strategic — what failed and why, what to try instead |\n| Run completion | Summary — overall findings, best approach found |\n| Safety stop | Boundary — what approval, scope, or measurement was missing |\n\n## Lesson Format\n\n```markdown\n## [type] — [date] — iteration [N]\n- **What:** [one sentence describing the change]\n- **Result:** metric went from X to Y (delta: Z)\n- **Why it worked / failed:** [concise explanation]\n- **Reuse:** [when to apply this lesson again, or what to avoid]\n- **Scope:** [approved files/directories touched]\n```\n\n## Storage\n\n- File: `autoresearch-lessons.md` in the working repo root unless the user chooses another path\n- Do not commit this file unless the user explicitly asks\n- Read at the start of every run — consult before picking hypotheses\n- Capacity: about 50 entries. When over capacity, summarise older entries over 30 days into a single paragraph, preserving current-run lessons verbatim.\n\n## How to Use Lessons When Picking Hypotheses\n\nBefore picking a hypothesis:\n1. Check if a similar approach has been tried before\n2. If it failed previously, skip it or apply the lesson to do it differently\n3. If it succeeded, try related variants first\n4. Positive lessons bias toward proven approaches\n5. Strategic lessons bias away from known dead ends\n6. Boundary lessons prevent repeating unsafe scope, rollback, or measurement assumptions\n\n## Time Decay\n\nLessons older than 90 days are summarised and compressed. The summary preserves:\n- What general strategies worked\n- What general strategies failed\n- Any hard constraints discovered, such as guard-file boundaries or metric limitations\n\nCurrent-run lessons are always kept verbatim regardless of date."},{"path":"references/loop-protocol.md","content":"# Loop Protocol\n\n## Run Contract\n\nBefore any edit, confirm and record:\n\n- goal, metric, baseline, and target\n- exact VERIFY command\n- exact GUARD command\n- allowed edit scope and forbidden paths\n- rollback strategy\n- run mode and iteration cap\n- external research policy\n- private-data boundary\n\nDo not start until the user approves the contract.\n\n## Full Loop (per iteration)\n\n1. **Review state** — read the approved contract, git state, results log, lessons, and current metric\n2. **Pick hypothesis** — one atomic change that could improve the metric\n3. **Check scope** — confirm the planned edit is inside approved scope and does not touch forbidden paths\n4. **Make the change** — one logical change, one concern\n5. **Snapshot/commit** — record only current-loop changes before verification\n6. **Run VERIFY** — execute the approved verify command. Did the metric improve?\n7. **Run GUARD** — execute the approved guard command. Did anything regress?\n8. **Decide** — keep, rework, discard, or stop according to SKILL.md\n9. **Log** — append one row to results log before starting the next iteration\n10. **Health check** — check discard streak, cap, scope, and escalation ladder\n11. **Continue** — or stop if a terminal condition is reached\n\n## Terminal Conditions\n\nStop when ANY of the following is true:\n\n- Goal metric reaches target\n- Approved iteration cap reached\n- Soft blocker triggered\n- Manual stop requested\n- Verify or guard command is no longer valid\n- Rollback is unsafe\n- Required edit is outside approved scope\n- External research is needed but was not approved\n- Private data would need to be exposed externally\n\n## What NOT to Do\n\n- Never start without an approved run contract\n- Never make more than one logical change per iteration\n- Never skip logging before starting the next iteration\n- Never modify guard files unless the user updates the scope contract\n- Never pause mid-loop to ask the user unless a safety gate, blocker, or contract change is needed\n- Never assume a change worked without running verify\n- Never push, deploy, publish, or touch production systems unless explicitly approved for this run\n- Never paste private code, secrets, logs, customer data, or proprietary data into external services\n\n## Results Log Format\n\n```text\niteration  snapshot  metric  delta  status   description\n0          baseline  47      0      baseline initial state\n1          def456    41      -6     keep     fixed auth module types\n2          ghi789    49      +8     discard  generic wrapper made things worse\n3          jkl012    38      -3     keep     type-narrowed API handlers\n```\n\n- `status`: baseline / keep / discard / skip / pivot / refine / blocker\n- Log is an autoresearch-owned artifact\n- Commit the log only if the user explicitly asks\n- Print progress summary every 5 iterations or at the approved cadence\n- Print baseline-to-best summary at run completion\n\n## Rollback Strategy\n\nDefault: use a normal version-control revert of only the current-loop change. In an explici"}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"Run an explicit, bounded modify-verify-decide loop toward a measurable metric with approval gates, scoped edits, and rollback proof. Skill: Autoresearch Loop Owner: leostehlik Summary: Run an explicit, bounded modify-verify-decide loop toward a measurable metric with approval gates, scoped edits, and rollback proof. Tags: agents:0.2.1, automation:0.2.1, latest:0.2.1, openclaw:0.2.1, research:0.2.1 Version history: v0.2.1 | 2026-05-24T09:41:16.775Z | user Add explicit run contract, foreground default, scoped edit, rollback, external research, and p","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":1260,"uniquenessScore":46,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-11T20:26:19.223Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-11T20:26:19.223Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-12T09:05:17.964Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}