用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/hristo2612/jinn --skill migrate命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
Find and install skills from skills.sh when a capability gap is detected
Manage departments, employees, hierarchy, delegation, and Todo ownership
Create, assign, update, review, and archive Jinn Todos through the typed work-item tools
正在显示 SKILL.md
| name | migrate |
| description | Safely merge validated package migration bundles into this {{portalName}} instance after an upgrade |
Use this skill when the automatic upgrade handoff opens a COO session, when the
user runs /migrate, or when asked to update the instance after a package
upgrade.
The installed package is read-only. The instance is user-owned and divergent: custom doctrine, config, skills, org, and docs always take precedence over stock defaults. The explicit COO handoff may conservatively merge only the selected instance after a verified snapshot exists.
The gateway automatically discovers validated, versioned manifest bundles and
composes one canonical prompt. jinn migrate remains a compatibility prompt
dispenser for the same service; it is not required for discovery. --apply is
deprecated and never advances the marker on engine exit.
The package bundle remains generic. The snapshot materializes both base and
target with the exact portalName and portalSlug derived from the selected
instance config, and records the replacement inputs and hashes in
materialization.json. Compare only those audited snapshot payloads with the
user file. Never compare a personalized user file to the raw generic payload,
never reverse arbitrary user text into placeholders, and never copy raw
double-brace template placeholders into an existing instance. An unresolved
placeholder newly introduced by the target, or present in a customized user
file, is a conflict: preserve the user file and report it instead of guessing.
An unresolved placeholder already present in both base and target may be
carried only when the current user file equals the materialized base
byte-for-byte.
For Markdown, merge by headings and append only genuinely new stock sections.
For YAML, add missing keys without overwriting existing values or formatting.
For skills and docs, replace an unchanged stock file with the target payload;
merge a customized file cautiously. Create the normal .claude/skills and
.agents/skills symlinks for a new skill. A removed stock path is deleted only
when the user copy still equals the old base payload.
After all records are verified, write
.migration-snapshots/<migrationKey>/completion-receipt.json:
{
"schemaVersion": 1,
"migrationKey": "<key from prompt>",
"reviewedFiles": ["each safely reviewed path"],
"skippedItems": [{ "path": "a conflicted path", "reason": "why" }],
"verifiedAt": "<ISO timestamp>"
}
Every manifest path must appear in reviewedFiles or skippedItems. Only then
run the exact key-gated command from the prompt:
jinn migrate --mark-done <version> --migration-key <migrationKey>
Never edit jinn.version manually. A failed or interrupted session, or a
successful engine exit by itself, must leave the marker and reminder intact.
If a merge cannot be resolved safely, stop, record the path in skippedItems,
leave the marker unchanged, and ask for direction. A preview request performs
no writes and summarizes the manifest records only.