CRUD for meta-skill proposal candidates at ~/.opensquilla/proposals/<id>/.
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}. In FULL_GATED mode 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)write_proposal writes to ~/.opensquilla/.tmp/proposal-<id>/ then os.rename() to the final location, so a partial write leaves no orphan proposal dir.
If invoked from chat, manually create the proposals dir, copy SKILL.md, run the skill-creator-linter to populate gates.json by hand.