name: skills-daily-update description: "Automated skill update workflow for openagent framework. Fetch skills from Skill Market API, detect git repository updates via commit hash comparison, pack changed skills into zip archives, and publish to Agent Hub via yioneai adapter. Use this skill whenever the user mentions updating skills, checking skill updates, syncing skills, daily updates, packaging skills, publishing skills, or comparing if repos have new commits. Also trigger when users say things like '技能更新', '检查技能', '打包上架', or '同步技能'."
Skills Daily Update
Overview
Automated skill update workflow for openagent framework skills. This skill guides LLM through a deterministic pipeline:
- Fetch skills from Skill Market API
- Check for updates via git commit hash comparison
- Pack changed skills into individual zip archives
- Publish to Agent Hub via yioneai adapter
Prerequisites
- OpenCLI installed with
yioneaiadapter - Logged into Agent Hub (https://middle-ground.yioneai.cn)
- Python 3 with
requestsandpython-dotenvpackages
Workflow
Execute these steps in order, reviewing outputs at each stage:
Step 1: Fetch Skills
Get current skill list from the API:
python3 scripts/skills_update.py fetch --framework openagent --lang en
Output: JSON array of skill names (e.g., ["skill-market", "superpowers"])
Step 2: Update Configuration
Compare the fetched list with config/repos.json. For any new/unknown skills:
Default repo (github.com/Zerone-Agent/agent-use-skills):
"skill-name": {"repo": null, "subdir": "skill-name"}Independent repo:
"skill-name": {"repo": "https://github.com/example/repo.git", "subdir": null}Independent repo with subdir:
"skill-name": {"repo": "https://github.com/example/repo.git", "subdir": "path/to/skill"}
Step 3: Check for Updates
Detect which skills have new commits using local cache:
python3 scripts/skills_update.py check --repos config/repos.json --state state/last_commits.json
How it works:
- First run: clones all repos to
~/.cache/skills-daily-update/repos/ - Subsequent runs: runs
git pullon cached repos (much faster) - Compares current HEAD commit hash against
state/last_commits.json - Outputs only changed skills to
state/pack_plan.json
Output: state/pack_plan.json with updated skills
Step 4: Review Plan
Inspect state/pack_plan.json to confirm which skills changed. Manually edit this file if you need to add or remove skills before packing.
Step 5: Pack Skills
Create zip archives:
python3 scripts/skills_update.py pack --plan state/pack_plan.json --output ./dist
Output: Individual zip files in ./dist/ (e.g., skill-market.zip)
Step 6: Publish to Agent Hub
Publish skills to Agent Hub via yioneai adapter:
python3 scripts/skills_update.py publish --plan state/pack_plan.json
Options:
--title-prefix: Add prefix to skill titles (e.g., "v2.0-")--description: Set default description for all skills (individual skill descriptions in repos.json take precedence)--type: Skill type, eitherexpertorcommunity(default:community)
Output: Skills published to https://middle-ground.yioneai.cn/static/skills
Note: Daily updated skills are published as
communitytype by default.
Step 7: Update State
After successful publish, update state/last_commits.json with the new commit hashes from state/pack_plan.json.
Configuration Reference
repos.json
{
"_default_repo": "https://github.com/Zerone-Agent/agent-use-skills.git",
"_default_path": "awesome-skills/skills",
"skills": {
"skill-market": {
"repo": null,
"subdir": "skill-market",
"description": "自动化的技能发现与安装技能"
},
"custom-skill": {
"repo": "https://github.com/example/custom.git",
"subdir": null,
"description": "自定义技能描述"
}
}
}
repo: null-> use_default_repo+_default_path+subdirrepo: "url"-> independent repositorysubdir: relative path within repo to skill directory (null for repo root)description: Chinese description used when publishing to Agent Hub
pack_plan.json
Auto-generated by check, updated by pack and publish:
{
"generated_at": "2026-05-07T10:30:00Z",
"skills": [
{
"name": "skill-market",
"source_path": "/tmp/skills-update/...",
"commit_hash": "abc1234",
"zip_path": "/abs/path/to/skill-market.zip",
"published": true,
"hub_id": 17,
"hub_url": "https://cos.yioneai.cn/expert-skills/skill-market.zip"
}
]
}
Key Design Decisions
- Mixed repo support: Some skills live in the default monorepo, others have independent repos.
repos.jsonis the single source of truth. - Commit hash tracking: Update detection uses git commit hashes rather than timestamps or file hashes, because it's deterministic and handles force pushes correctly.
- JSON-based batching:
pack_plan.jsonserves as the contract betweencheck,pack, andpublish. This lets LLM inspect and modify the plan at any stage. - Individual zips: Each skill gets its own
{skill-name}.ziprather than one big archive, making selective updates and downloads possible.
Important Notes
- Always review
pack_plan.jsonbefore packing — it may contain skills you don't want to update - You can manually edit
pack_plan.jsonto add/remove skills - After publish succeeds, update
last_commits.jsonso the next run only detects new changes - The tool clones repos to a temporary directory during
check— don't rely on these paths persisting - If a skill's repo is unreachable, the
checkcommand will print a warning and skip that skill - Skills are published to Agent Hub at https://middle-ground.yioneai.cn/static/skills
Quick Start
# 1. Fetch skills and check for updates
python3 scripts/skills_update.py fetch
python3 scripts/skills_update.py check
# 2. Review and pack
cat state/pack_plan.json
python3 scripts/skills_update.py pack
# 3. Publish to Agent Hub
python3 scripts/skills_update.py publish