{"skill":{"slug":"openclaw-self-improve","displayName":"Openclaw Self Improve","summary":"Evidence-based, approval-gated self-improvement workflow for OpenClaw. Use when the user asks to make OpenClaw or any project more reliable, faster, cheaper,...","tags":{"approval-gated":"1.1.0","latest":"1.1.0","metrics":"1.1.0","rollback":"1.1.0","self-improvement":"1.1.0","workflow":"1.1.0"},"stats":{"comments":0,"downloads":191,"installsAllTime":0,"installsCurrent":0,"stars":1,"versions":10},"createdAt":1775124448823,"updatedAt":1777558276682},"latestVersion":{"version":"1.1.0","createdAt":1777526076955,"changelog":"v1.1.0 — Bug-fix and quality release.\n\nCritical fixes:\n- BUG: Fresh runs failed validation immediately. init wrote literal placeholder \"pass|fail|blocked|inconclusive\" as the status bullet, which the validator rejected. Now defaults to \"inconclusive\" so the workflow is usable end-to-end.\n- BUG: backup-repo.sh crashed with \"local: can only be used in a function\" (line 111). Rewritten to build the zip command as an array, no eval, no in-script local outside functions.\n- BUG: --rollback silently ran \"git checkout .\" on the entire repo when called with a non-existent or empty run directory, accidentally reverting unrelated work. Now refuses to run without a real run dir AND a defined target list (from --scope or proposal.md \"Files To Edit\").\n- BUG: Unicode objectives (Hindi, Chinese, Japanese, Arabic, etc.) were stripped to empty by overly aggressive sed sanitizers. New sanitize_oneline only removes newlines and backticks; preserves all UTF-8 text.\n- BUG: --auto-detect-validation silently overrode --validation-gate when both passed. Explicit gate now wins with a clear stderr notice.\n- BUG: detect-validation-gate.sh dedup loop tripped \"set -u\" on empty arrays in some bash versions. Rewritten with explicit existence checks.\n- BUG: logging-utils.sh log_command used eval on its argument (shell-injection risk). Rewritten to use direct argv expansion.\n\nNew features:\n- set-status.sh helper to mark baseline / validation / outcome / proposal status without hand-editing markdown. Validates the status value before writing.\n- export-improvement-run-json.py --strict flag exits non-zero when statuses or hypothesis text are still placeholders, so CI does not silently accept incomplete runs.\n- detect-validation-gate.sh now picks pnpm/yarn/npm based on lockfile presence, prefers ./gradlew over gradle when present, and only emits a default test command when one is actually detected.\n- LICENSE file shipped with the skill.\n- README and SKILL.md rewritten with Quick Start that walks through the full lifecycle including set-status calls.\n\nImprovements:\n- All bash scripts use safe argument handling — no eval, no shell=True equivalent, no implicit string-joined arrays.\n- Validator now accepts both \"- \" and \"* \" bullet markers under status sections.\n- Cleaner error messages on every failure path.\n- Test coverage of every fix was verified end-to-end before publishing.","license":"MIT-0"},"metadata":{"os":null,"systems":null},"owner":{"handle":"gopendrasharma89-tech","userId":"s17cp87fy279ggwne1mqcb6675843tdy","displayName":"gopendrasharma89-tech","image":"https://avatars.githubusercontent.com/u/226691732?v=4"},"moderation":null}