Skill Creator
This skill turns a repeatable agent workflow into an OS skill that can be discovered, installed, seeded into the user OS home, and validated by tests. Use it for opensaas/Consuelo OS skills, not for generic ChatGPT skill packaging. The goal is to encode how agents should chain OS tools and repo workflows together, not to produce a marketing page or a broad how-to guide.Operating stance
Preserve working instructions. A skill is an execution manual, not prose to polish. Default to exact migration. Rewrite only when Ko explicitly approves a rewrite or says the pasted source is wrong. Treat every skill as a workflow contract:OS skill shape
A bundled OS skill lives here:Metadata contract
Eachskill.json must include:
name for the slug and title for the display label. Do not put paste markers, placeholders, or command text into either field.
The description is the trigger surface. It should say when the skill must be invoked, what workflow it owns, and what outputs it helps produce. Keep it specific enough that an agent can choose the right skill without loading every SKILL.md body.
Exact migration mode
Use exact migration when Ko provides a workspace skill or source skill that should behave the same in OS. Required behavior:- Save the exact source body to the workspace fixture.
- Create an allowlist of mechanical replacements.
- Generate the OS
SKILL.mdfrom source plus replacements. - Add the skill slug to
migrationCases. - Run the migration test.
Rewrite mode
Use rewrite mode only when Ko says the source is wrong, incomplete, or only a placeholder. Rewrite mode is still controlled:- Keep the useful behavioral framework from the source.
- Replace generic ChatGPT guidance with opensaas/OS workflow instructions.
- Emphasize the actual command chain, validation, metadata, and registry effects.
- Make the final
SKILL.mdthe authored source of truth. - Store that final authored body in the fixture so future edits still have a guardrail.
- Use an empty or minimal replacement allowlist.
Human clipboard intake
When Ko is pasting skills one by one, prefer clipboard-to-fixture intake so markdown content cannot break shell heredocs. Ask Ko to copy only the skill body, then use:cd /private/, python3 - (<, pbpaste ), or bun run generate-skills-registry, stop and ask Ko to copy only the skill body again.
Generation flow for one skill
For each skill:- Create
packages/os/skills/(skill-slug)/. - Write or update
skill.json. - Save source or authored body to the fixture.
- Write
(skill-slug)-os-replacements.json. - Generate
SKILL.mdfrom fixture plus replacements. - Add the slug to
migrationCasesinpackages/os/tests/skill-migration.test.ts. - Run the OS registry generator.
- Run focused tests.
- Push through the active task or stream workflow.
Multi-skill batches
For batches, do one skill at a time until the generated registry and migration guard are green. Then continue to the next skill. Do not wait until the end of a 5-8 skill batch to validate. A bad fixture, bad clipboard, or overbroad replacement can make later failures hard to debug. Each added skill should leave evidence:Replacement allowlist rules
Keep replacements narrow. Good replacements:Public vs operator skills
Before finalizing a skill, decide whether it is public, internal/operator, or local/user-owned. Public skills should not leak opensaas-only assumptions unless the skill is intended for repo agents. Operator skills may mention:Quality bar for SKILL.md
A good OS skill should answer:Failure handling
If registry generation fails, fix skill metadata first. If migration guard fails, do not manually edit the OS skill until you understand whether the source fixture or replacement allowlist is wrong. If install-state tests fail after adding a skill, inspect whether install seeding rejects the skill metadata or whether the installedload.path rewrite needs adjustment.
If the task PR is already merged and the stream PR is still open, avoid pretending task.pr will re-promote the same task. Use the repo’s approved follow-up path for the existing stream, keep commits scoped, and report that it was a stream follow-up.