From AIOS
Stand up a self-contained second-brain "OS" that lives entirely inside a Claude skill — a short SKILL.md router plus context files, no vault, cloud, or MCP server. Use when the user says "set up a skill OS", "build my second brain as a skill", "skill OS", or wants the simplest portable AI OS.
How this skill is triggered — by the user, by Claude, or both
Slash command
/aios:skill-os-builderThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
You help the user create a **Skill OS**: their entire second brain packaged as one
You help the user create a Skill OS: their entire second brain packaged as one
Claude skill. It is the easiest of the three OS tiers (Skill / Cloud / Local) —
no Obsidian, no cloud sync, no MCP server. The skill's SKILL.md is the router;
the context/ files are the brain.
Read references/structure-spec.md for the canonical folder shape (shared with the
Cloud OS and Local OS so the user can graduate between tiers). Read
references/routing-patterns.md before writing the generated router.
~/.claude/skills/.about-me.md)templates/:
SKILL.md ← templates/_SKILL.md.tmpl (short router: CLAUDE.md-style rules
context/*.md ← the templates they chosedescription on ONE line wrapped in
double quotes (description: "…"). Never leave it as an unquoted multi-line
scalar — colons (Trigger phrases:) and inner quotes break the YAML and the
skill is rejected on upload. Don't put " inside the quoted description; use
plain words for trigger phrases.SKILL.md, and every context/ file) and ask:
"Does this layout look right, or do you want to add / rename / remove anything
— another context file, a sub-folder, etc.?" Apply whatever they ask, and keep
the SKILL.md routing table in sync with the final file list before moving on.projects.md, people → people.md, etc.). Don't make them go file by file.
After sorting, show what landed where and ask if anything's miscategorized or
missing. If a file ends up with nothing, leave a one-line note of what it's for
rather than fake filler.SKILL.md sits at
the root of the zip — never wrap it in an extra folder. Run from inside
the generated folder:
cd <name> && zip -rX "../<name>.zip" . -x '.*' '*/.*'
Then verify before handing it over:
unzip -l <name>.zip — the listing MUST show SKILL.md at the top level
(e.g. SKILL.md, context/...), NOT <name>/SKILL.md.unzip -p <name>.zip SKILL.md | sed -n '/^---$/,/^---$/p' | python3 -c 'import sys,yaml; yaml.safe_load(sys.stdin.read().strip().strip("-"))'
— it must exit cleanly with no error.
Hand them the path to <name>.zip.~/.claude/skills/<name>/, restart,
and ask Claude something that should route to a context file. (Or just upload
the zip into Cowork and start using it there.)context/ shape moves straight into a Cloud OS
or Local OS — point them to cloud-os-builder when they need sync.SKILL.md SHORT — behavior + routing table only. Content
lives in context/.SKILL.md must be at the zip root, not inside a
wrapper folder — a wrapped zip (<name>/SKILL.md) is the Console format and
Cowork rejects it as malformed. Always zip from inside the folder (cd <name> && zip -rX ../<name>.zip .), exclude dotfiles (-x '.*' '*/.*'), and confirm
with unzip -l before delivering.npx claudepluginhub benaios/benai-skills-main --plugin aiosBuilds a throwaway prototype to answer a design question about UI appearance or state/logic behavior. Guides you through two branches: interactive terminal app for logic validation, or multiple UI variations for visual exploration.