一键导入
skill-authoring
Write boost-core skill files — frontmatter shape, skill tags, collision guards, source-dir selection, body content.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Write boost-core skill files — frontmatter shape, skill tags, collision guards, source-dir selection, body content.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Keep the published Composer archive lean by excluding dev/test/AI dirs via .gitattributes.
Implement a FileEmitter for boost-core to emit a custom file (e.g. .mcp.json, .editorconfig) into the host project during boost:sync.
| name | skill-authoring |
| description | Write boost-core skill files — frontmatter shape, skill tags, collision guards, source-dir selection, body content. |
| metadata | {"boost-tags":"boost-extension"} |
.ai/skills/ (host project) or
resources/boost/skills/ (vendor package)Required:
name — kebab-case slug. Must match the skill's DIRECTORY name (the
<name> in <name>/SKILL.md), not the literal SKILL filename — e.g.
resources/boost/skills/lean-dist/SKILL.md declares name: lean-dist.
(A legacy flat <name>.md matches its filename without .md.)description — single-sentence summary. AI agents read this to decide
when to load the skill, so make it specific.Optional:
metadata — a string→string map; the Agent Skills standard's sanctioned
extension point for client-specific data. boost-core reads one key
here, boost-tags (see below). Other metadata keys and any
non-standard top-level fields pass through untouched (loose v1 schema),
but no agent acts on them — don't add frontmatter nothing reads.metadata.boost-tagsTag a skill so a consuming project receives it only when that project opts
in. Tags are a single space-delimited string under metadata.boost-tags:
---
name: jira-triage
description: Triage and label incoming Jira issues.
metadata:
boost-tags: "php jira"
---
withTags() in boost.php — skillTags ⊆ projectTags.boost-tags (not a string) fails closed: the skill ships
nowhere, rather than silently degrading to untagged.composer boost:tags.Tagging an already-shipped skill is consumer-breaking. Every project that has not declared the new tag stops receiving the skill on its next sync. Tag a skill from the start, or treat adding a tag as a breaking change for the package — a loud release-note callout, not a quiet tweak.
| Where you author | Who sees it |
|---|---|
.ai/skills/foo/SKILL.md | Just this project |
resources/boost/skills/foo/SKILL.md (in a vendor package) | Any host project that allowlists this vendor |
Pick one. Don't author the same skill in both. Host always wins on
collision; vendor-vs-vendor collisions are validation errors unless
--force is set.
Author each skill as <name>/SKILL.md (directory form), not flat
<name>.md. boost-core EMITS the directory form, the reference catalogs
(boost-skills, lean-package-validator, project-boost-php) all use it, and it
future-proofs multi-file skills (a skill can ship sibling assets next to
its SKILL.md). boost-core accepts both forever, so this is authoring
uniformity, not correctness — but new skills should be directory-form.
Guidelines stay single flat .md files (resources/boost/guidelines/foo.md);
the directory rule is skills-only.
A skill body should answer:
Keep skills short (100-300 lines). Long skills compete for AI agent context window — split if it exceeds that.
boost-core's SkillResolver rejects vendor-vs-vendor collisions on the
same name. If you're shipping a skill that might collide, namespace it
descriptively (vendor-readme-laravel.md, not readme.md).
.ai/guidelines/)boost-core's FrontmatterParser for what's actually parsed