mirror of
https://github.com/jackwener/OpenCLI.git
synced 2026-09-14 18:25:42 +08:00
56d15d186b
* feat: add Self-Repair protocol for automatic adapter fixing When an AI agent uses opencli and a command fails, the agent automatically diagnoses the failure, fixes the adapter, and retries. - Add CLAUDE.md with Self-Repair protocol (auto-loaded by Claude Code) - Add designs/self-repair-protocol.md documenting the approach - Update opencli-repair skill: add Safety Boundaries (AUTH/BROWSER → STOP, sourcePath-only scope, max 3 rounds), fix AUTH_REQUIRED guidance - Update opencli-usage skill: add Self-Repair section Key design decisions: - Repair target is always RepairContext.adapter.sourcePath (works for both repo-local clis/ and user-local ~/.opencli/clis/) - Only adapter files may be modified, never core src/ - Max 3 repair rounds per failure - AUTH_REQUIRED and BROWSER_CONNECT are hard stops (report, don't modify) * fix: align auth boundary and scope language across all documents - Remove "Auth changed (AUTH_REQUIRED)" exploration section from opencli-repair skill — contradicted the hard stop rule above it - Update design doc: scope language matches repo-local + explicit skill delivery model, not universal product behavior - Update usage skill: reference sourcePath instead of "files under clis/" * fix: replace remaining repo-relative clis/ paths with sourcePath in design doc * refactor: rename opencli-repair to opencli-autofix, remove CLAUDE.md CLAUDE.md was wrong — users don't work inside the opencli repo, and the protocol shouldn't assume Claude Code. The skill is the portable delivery mechanism for any AI agent. - Rename skills/opencli-repair → skills/opencli-autofix - Remove CLAUDE.md (not the right delivery mechanism) - Update all references in usage skill and design doc - Design doc rewritten to reflect skill-first approach * fix: use sourcePath in example repair session * feat: emit AutoFix hint on repairable adapter errors When a command fails with a repairable error (SELECTOR, EMPTY_RESULT, COMMAND_EXEC, or generic http/not-found), the error output now includes a hint telling agents to re-run with OPENCLI_DIAGNOSTIC=1 for repair context. This is the trigger mechanism that bridges the gap between "command failed" and "agent enters autofix loop". Non-repairable errors (AUTH_REQUIRED, BROWSER_CONNECT, ARGUMENT) do not emit the hint — these require user action, not adapter fixes. * fix: narrow AutoFix hint to adapter-drift errors only Remove hint from CommandExecutionError (covers env/launcher/runtime issues, not adapter drift) and generic http errors (often temporary site issues). Keep hint only for SelectorError, EmptyResultError, and generic not-found — clear adapter-drift signals.