中文 | English
This contract defines strict AI behavior for adding a new skill to this aggregation repository. Keywords follow RFC semantics:
MUSTSHOULDMAY
- Ensure AI generates executable, verifiable, merge-ready changes in one pass.
- Keep AI output aligned with repository gates and schemas.
Before execution, AI must have:
- Aggregation repository path.
- New skill repository path or URL.
- Skill npm package name (if published) and target
skill-id. - Capability boundaries (MCP/OpenClaw/CLI).
- Whether install-level validation is allowed.
- Environment placeholder root (default:
SKILLS_BASE).
If inputs are missing:
- AI
MUSTlist missing items explicitly. - AI
SHOULDpropose defaults and mark them as assumptions.
AI output MUST contain exactly 6 sections:
- Goal / Non-goal
- Files to change
- Contract mapping (MUST-by-MUST)
- Validation commands
- Risk & rollback
- Acceptance evidence
AI output MUST NOT stop at high-level suggestions without concrete files and commands.
workspace.json
MUSTregister new project path.MUSTfollowdocs/schemas/workspace.schema.json.MAYincludedependsOn(direct dependency ids).
- Target skill repository
MUSTincludepackage.jsonwithnameandversion.MUSTexpose a stable npm installer binary for setup viapackage.json bin->bin/setup.js|bin/setup.ts.MUSTincludeSKILL.mdfront matter withnameanddescription.SHOULDincludeversionandactivation.*fields when the skill supports IronClaw routing.MUSTsatisfydocs/schemas/skill-frontmatter.schema.json.MUSTprovide MCP support:src/mcp/server.tsorscripts.mcp.- If OpenClaw native is declared,
MUSTincludeopenclaw.jsonand satisfydocs/schemas/openclaw.schema.json. - If native setup is declared,
MUSTincludescripts.setuporbin/setup.ts|bin/setup.js. - If IronClaw native setup is declared, setup must support
bun run setup ironclaw(or equivalentbin/setup.ts ironclaw). - GitHub repo/tree URLs are discovery sources only; final activation for OpenClaw/IronClaw
MUSTbe expressible through catalog metadata.
- Generated catalog
MUSTproduce schema version1.3.0.MUSTsatisfydocs/schemas/skills-catalog.schema.json.MUSTincludedependsOnin catalog when declared in workspace.MUSTemitdistributionSourcesandclientInstallfor published/installable skills.
- Documentation synchronization
- If rule/contract/template changed, AI
MUSTupdate Chinese and English docs together.
dependsOnmust reference existing skill ids.- Duplicate skill ids are blocking failures.
bootstrap --onlymust include transitive dependencies.- Dependency cycles are blocking failures.
${ENV_VAR}placeholders in workspace paths must be resolvable; unresolved placeholders are blocking failures.
AI must execute and report:
bun run catalog:generate
bun run health:check
bun run readme:check
bun run security:audit
./bootstrap.sh --only <skill-id> --skip-installOptional full install validation:
./bootstrap.sh --only <skill-id>- Skipping
workspace.jsonregistration. - Updating README only while skipping contract/template docs when rules changed.
- Declaring capability without required artifact.
- Hiding failed command outputs.
- Ignoring
[FAIL]gates and claiming done.
- On any gate failure, AI
SHOULDprovide minimal repair path. - If not fixable in current round, AI
MUSTreport blocker and impact scope. - AI
SHOULDprovide rollback points (which files to revert).
| Pattern | Cause | Repair |
|---|---|---|
[WARN] ... SKILL.md not found, project skipped |
Skill markdown missing | Add SKILL.md with valid front matter |
declared native-setup but setup command not available |
Missing setup entry | Add scripts.setup or bin/setup.ts/js |
declared openclaw native but openclaw.json missing |
Missing OpenClaw config | Add openclaw.json |
[FAIL] Duplicate skill id detected: |
Conflicting skill ids | Fix front matter name/workspace mapping |
[FAIL] <id>: dependsOn references unknown skill id |
Invalid dependency id | Fix dependsOn |
[FAIL] Dependency cycle detected: ... |
Cyclic dependency graph | Remove cycle |
[FAIL] Unresolved environment variable(s) in path |
Missing env variable | Export required variable |
Done means all conditions below are met:
- New skill appears in
skills-catalog.json(schema1.3.0). health:checkhas no fail.readme:checkpasses.security:auditpasses.bootstrap --only <skill-id>runs (or--skip-installbaseline for quick gate).- Chinese and English docs stay synchronized with identical section numbering.