Install
$ agentstack add skill-netanel-abergel-pa-skills-pa-maintenance ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ● Environment & secrets Used
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Maintenance Skill
Minimum Model
Any model. Both sections are scripted operations.
Trigger Phrases
- "backup workspace" / "push to git" / "save to github"
- "update openclaw" / "update skills" / "run maintenance"
- Runs automatically on schedule (see Cron section)
Section 1 — Workspace Backup
Back up the entire workspace to GitHub on a regular schedule or on demand.
When to Run
- After significant MEMORY.md changes
- After editing or creating skills
- After completing a major task
- On cron schedule: every 6 hours silently
Step 1 — Find the GitHub Token
Priority order:
- Git remote URL — check if token is embedded:
``bash git -C /path/to/openclaw/workspace remote get-url origin ``
- Environment variable:
``bash echo $GITHUB_TOKEN echo $GH_TOKEN ``
- Credentials file:
``bash cat ~/.credentials/github-token.txt 2>/dev/null cat ~/.credentials/github-pat.txt 2>/dev/null ``
If no token found → report BLOCKED to owner.
Step 2 — Commit and Push
cd /path/to/openclaw/workspace
# Stage all changes
git add -A
# Commit with timestamp
TIMESTAMP=$(date -u +"%Y-%m-%d %H:%M UTC")
git commit -m "Auto-backup: $TIMESTAMP" 2>/dev/null || echo "Nothing to commit"
# Push
git push origin main
Step 3 — Report (On-Demand Only)
If triggered manually (not by cron):
✅ Workspace backed up to GitHub — [timestamp]
[X] files changed
If triggered by cron → silent (no message to owner).
Cron Schedule
openclaw cron add \
--name "workspace-backup" \
--every 6h \
--session isolated \
--message "Run the maintenance skill, Section 1 (Workspace Backup). cd /path/to/openclaw/workspace && git add -A && git commit -m 'Auto-backup: $(date -u +\"%Y-%m-%d %H:%M UTC\")' && git push origin main. Silent — do not message owner unless push fails." \
--timeout-seconds 60
Troubleshooting
| Issue | Fix | |---|---| | git push auth error | Token expired — update in remote URL or credentials file | | nothing to commit | Normal — workspace unchanged since last backup | | rejected (non-fast-forward) | Run git pull --rebase origin main first, then push | | No token found | Ask owner for a GitHub PAT with repo scope |
Section 2 — OpenClaw Updates
Keep OpenClaw and installed skills up to date.
When to Run
- Weekly on Sunday at 03:00 UTC (cron)
- When owner says "update openclaw" or "update skills"
- After a new OpenClaw version is released
Step 1 — Update OpenClaw
# Update the OpenClaw platform
openclaw update
# Check the new version
openclaw --version
Step 2 — Update Skills via ClawHub
# Update all installed skills to latest
clawhub update
# Or update a specific skill
# clawhub update
Step 3 — Report What Changed
After updates, report to owner:
🔄 Maintenance complete (Sunday update):
OpenClaw: v1.2.3 → v1.2.4
- [changelog item if available]
Skills updated:
- skill-master: v1.1 → v1.2
- whatsapp: v2.0 → v2.1
- [others]
No action needed. Everything is up to date.
If nothing changed:
✅ No updates available — everything is current.
Step 4 — Verify After Update
# Check gateway is still running
openclaw gateway status
# Check agent is responding (send a test message or check logs)
openclaw logs --last 10
If gateway is down after update → run openclaw gateway restart.
Cron Schedule
openclaw cron add \
--name "weekly-update" \
--cron "0 3 * * 0" \
--session isolated \
--message "Run maintenance skill Section 2 (OpenClaw Updates): run 'openclaw update' and 'clawhub update', then report what changed to owner via WhatsApp." \
--to "OWNER_PHONE" \
--channel whatsapp \
--timeout-seconds 300
Troubleshooting
| Issue | Fix | |---|---| | openclaw update fails | Check internet connectivity; retry in 30 min | | clawhub update not found | Install: npm install -g clawhub | | Gateway down after update | Run openclaw gateway restart | | Skills missing after update | Re-install: clawhub install |
Section 3 — Session Store Cleanup
Prevent sessions.json from bloating (observed growing to 67MB+ with 600+ stale cron run entries).
When to Run
- Weekly (Sunday maintenance window)
- If agent response time degrades noticeably
- Whenever
sessions.jsonexceeds 10MB
Step 1 — Check Size
ls -lh /path/to/openclaw/agents/main/sessions/sessions.json
If under 10MB → skip cleanup.
Step 2 — Clean Stale Cron Run Entries
cd /path/to/openclaw/agents/main/sessions
# Backup first
cp sessions.json sessions.json.bak.$(date +%Y%m%d-%H%M%S)
# Remove all :run: entries (completed cron run histories)
python3 -c "
import json
with open('sessions.json') as f:
d = json.load(f)
before = len(d)
cleaned = {k:v for k,v in d.items() if ':run:' not in k}
after = len(cleaned)
with open('sessions.json', 'w') as f:
json.dump(cleaned, f)
print(f'Removed {before-after} entries. {after} remaining.')
"
Step 3 — Restart Gateway
openclaw gateway restart
Step 4 — Report
🧹 Session cleanup: [X]MB → [Y]MB, removed [N] stale cron run entries.
Section 4 — Sync Skills to pa-skills Repo
Sync all local skills to netanel-abergel/pa-skills (public repo for PA network).
When to Run
- After updating any skill
- On demand: "סנכרני סקילים" / "sync pa-skills"
How to Run
bash /path/to/workspace/skills/pa-maintenance/sync-pa-skills.sh
Privacy Filter (MANDATORY)
The script in sync-pa-skills.sh automatically skips:
.contextfiles (personal agent context)data/directories (pa-directory.json, personal data)context.md,.env,credentials,secrets
NEVER manually upload these to pa-skills.
Cost Tips
- Both sections: Very cheap — scripted operations, no LLM tokens for the actual backup/update.
- Cron: Both jobs run in isolated sessions. Backup is silent; updates report only if something changed.
- Don't over-backup: Every 6h is enough. More frequent = wasted compute and noisy git history.
- sessions.json bloat is a known issue — cron runs accumulate unbounded. Weekly cleanup keeps response time fast.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: netanel-abergel
- Source: netanel-abergel/pa-skills
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.