Agent Skills
› opensquilla/opensquilla
› skill-creator-proposals
skill-creator-proposals
GitHub内部工具,管理技能提案的CRUD。支持原子写入提案、列出状态及接受部署至技能层,确保门禁检查通过,保障数据一致性。
Trigger Scenarios
meta-skill-creator持久化步骤
opensquilla meta accept CLI命令
Install
npx skills add opensquilla/opensquilla --skill skill-creator-proposals -g -y
SKILL.md
Frontmatter
{
"name": "skill-creator-proposals",
"metadata": {
"requires": {
"anyBins": [
"python",
"python3"
]
}
},
"entrypoint": {
"args": [
"--action",
"{{ with.action | default('write_proposal') }}",
"--skill-md-inline",
"{{ with.skill_md | default('') }}",
"--lint-result",
"{{ with.lint_result | default('{}') }}",
"--smoke-result",
"{{ with.smoke_result | default('{}') }}",
"--creator-mode",
"{{ with.creator_mode | default('') }}",
"--acceptance-result",
"{{ with.acceptance_result | default('') }}",
"--runtime-e2e-result",
"{{ with.runtime_e2e_result | default('') }}"
],
"parse": "json",
"command": "python {baseDir}\/scripts\/proposals.py",
"timeout": 30
},
"provenance": {
"origin": "opensquilla-original",
"license": "Apache-2.0"
},
"description": "Internal tool (not user-invocable). Called by meta-skill-creator's persist step and by `opensquilla meta accept` CLI (Phase 2) to manage `~\/.opensquilla\/proposals\/`: write_proposal \/ list \/ accept. Returns JSON.",
"user-invocable": false,
"disable-model-invocation": true
}
Skill Creator Proposals
CRUD for meta-skill proposal candidates at ~/.opensquilla/proposals/<id>/.
Actions
write_proposal --skill-md path --lint-result json --smoke-result json [--creator-mode FULL_GATED --acceptance-result text --runtime-e2e-result json]— atomic write to~/.opensquilla/proposals/<uuid8>/{SKILL.md,gates.json}. Returns{proposal_id, auto_enable_eligible}. InFULL_GATEDmode runtime E2E must show the meta-skill route wins or ties against the no-meta highest-tier baseline with no regressions.list— enumerate proposals with their eligibility flagaccept --proposal-id <id> [--force]— move proposal to~/.opensquilla/skills/<name>/so it gets loaded by MANAGED layer; refuses if any gate failed (unless--force)
Atomicity
write_proposal writes to ~/.opensquilla/.tmp/proposal-<id>/ then os.rename() to the final location, so a partial write leaves no orphan proposal dir.
Fallback
If invoked from chat, manually create the proposals dir, copy SKILL.md, run the skill-creator-linter to populate gates.json by hand.
Version History
- 7f72a32 Current 2026-07-05 18:39


