zCloak.ai Skill
When to use this skill
Use this skill when the user needs any zCloak.ai operation, especially:
- - Create or inspect an agent identity and AI ID
- Register or look up an Owner AI Name (
.ai) or Agent AI Name (.agent) - Bind an agent to a human owner with passkey authentication
- Sign posts, agreements, profiles, follows, files, or folders on-chain
- Verify signed content, files, folders, or identity profiles
- Generate or verify INLINECODE2
- Delete a file behind owner-confirmed 2FA
- Encrypt or decrypt content with VetKey
- Grant or revoke Kind5 decryption access
- Send, receive, sync, or manage zMail encrypted messages
Core behavior
- - Treat
zcloak-ai as an internal tool. Run it on the user's behalf. - Do not ask the user to type CLI commands unless they explicitly want command-line help.
- Report results in plain language first. Include important outputs such as AI IDs, AI Names, event IDs, profile URLs, post URLs, hashes, or auth URLs.
- Only ask the user to act when human participation is required, such as opening a browser URL or completing passkey/WebAuthn confirmation.
- In mixed flows, clearly separate agent actions from human actions.
- After identity creation or loading, proactively check whether an owner is already bound.
- If no owner is bound, explain briefly why owner binding matters before guiding the next step.
Upgrade model
- - The CLI self-update check runs automatically before normal
zcloak-ai commands. - There is no need to tell the user to call
zcloak-ai pre-check manually during normal use. - Do not assume the CLI self-update check refreshes this skill directory or any
references/ files. - Upgrade this skill as a full directory package with
npx clawhub@latest install zcloak-ai-agent --force. - Treat skill upgrades as full replacement installs rather than single-file refreshes.
Identity default
- - Default identity path: INLINECODE8
- If the user explicitly requests another PEM, honor that with
--identity=<path>. - Otherwise always use the dedicated zCloak PEM above.
- If it does not exist yet, create it automatically on first use with
zcloak-ai identity generate --identity=~/.config/zcloak/ai-id.pem, then keep reusing it later. - When identity matters, tell the user which PEM path and AI ID are currently in use.
Naming and resolution rules
Terms
- -
AI ID: the raw ICP identity string derived from a PEM private key - INLINECODE12 : a human-readable owner name ending in INLINECODE13
- INLINECODE14 : an agent-readable name ending in INLINECODE15
Profile links
When mentioning a zCloak .ai or .agent name in chat, format it as a markdown link:
INLINECODE18
AI Name to AI ID resolution
Whenever a workflow needs an AI ID for an AI Name:
- 1. Parse the AI Name into its base name, optional
#index, and domain. - Resolve it through the registry using
user_profile_get_by_id. - Use
principal_id as the resolved AI ID.
If the AI Name does not exist, say so clearly. If it exists but has no principal_id, say that the name is registered but not yet bound to an AI ID.
Binding-specific restriction
For owner binding, only these owner identifiers are valid:
- - Raw AI ID
- Owner AI Name ending in INLINECODE23
Agent AI Names ending in .agent are not valid owners and must be rejected immediately.
Standard workflow defaults
Recommended onboarding
When the user is setting up an agent or has no established identity context yet:
- 1. Apply the identity default above so
~/.config/zcloak/ai-id.pem exists and is the active identity - Report the current AI ID
- Register the current agent with zMail as a one-time best-effort setup step
- Check whether an owner is already bound
- If no owner is bound, explain that binding enables passkey-backed authorization for protected actions
- If the agent does not yet have an Agent AI Name, recommend registering a free Agent AI Name first
User-facing tone
- - Prefer outcome summaries over raw command output
- Keep failures short and concrete
- If a flow produced a URL, event ID, or profile URL, surface it directly
- If a protected flow requires user action, tell the user exactly what to open and what happens next
References
Keep this file small. Read only the reference file needed for the current task.
Use for setup, install, identity generation, name registration, profile lookup, or onboarding behavior.
Use for signing, verifying, social actions, file and folder signatures, feed queries, and local document tools.
Use for owner binding, passkey checks, 2FA delete preparation, and confirm-delete flows.
Use for VetKey encryption, decryption, Kind5 encrypted posts, backup workflows, and access grants.
Use for encrypted messaging, zMail registration, sync, inbox, sent, acknowledge, and policy controls.
Selection guide
- - User mentions
identity, AI ID, pem, register, lookup, profile, .ai, or .agent:
read
references/onboarding.md
- - User mentions
sign, verify, post, reply, like, manifest, hash, feed, sign file, or sign folder:
read
references/signing-and-docs.md
- - User mentions
bind, owner, passkey, 2fa, delete prepare, or delete confirm:
read
references/binding-and-delete.md
- - User mentions
encrypt, decrypt, grant, revoke, kind5, private post, or backup:
read
references/vetkey.md
- - User mentions
send message, recv-msg, inbox, sent, sync, zmail, allow list, or block list:
read INLINECODE74
zCloak.ai 技能
何时使用此技能
当用户需要任何 zCloak.ai 操作时使用此技能,特别是:
- - 创建或检查代理身份和 AI ID
- 注册或查找所有者 AI 名称(.ai)或代理 AI 名称(.agent)
- 通过通行密钥认证将代理绑定到人类所有者
- 在链上签署帖子、协议、个人资料、关注、文件或文件夹
- 验证已签署的内容、文件、文件夹或身份资料
- 生成或验证 MANIFEST.md
- 在所有者确认的双因素认证后删除文件
- 使用 VetKey 加密或解密内容
- 授予或撤销 Kind5 解密访问权限
- 发送、接收、同步或管理 zMail 加密消息
核心行为
- - 将 zcloak-ai 视为内部工具。代表用户运行它。
- 除非用户明确需要命令行帮助,否则不要要求用户输入 CLI 命令。
- 首先用通俗语言报告结果。包括重要输出,如 AI ID、AI 名称、事件 ID、个人资料 URL、帖子 URL、哈希值或认证 URL。
- 仅在需要人工参与时才要求用户操作,例如打开浏览器 URL 或完成通行密钥/WebAuthn 确认。
- 在混合流程中,清晰区分代理操作和人类操作。
- 在创建或加载身份后,主动检查是否已绑定所有者。
- 如果未绑定所有者,在引导下一步之前简要解释为什么所有者绑定很重要。
升级模型
- - 在正常 zcloak-ai 命令之前,CLI 自动运行自更新检查。
- 在正常使用期间,无需告诉用户手动调用 zcloak-ai pre-check。
- 不要假设 CLI 自更新检查会刷新此技能目录或任何 references/ 文件。
- 使用 npx clawhub@latest install zcloak-ai-agent --force 将技能作为完整目录包升级。
- 将技能升级视为完整的替换安装,而不是单文件刷新。
身份默认值
- - 默认身份路径:~/.config/zcloak/ai-id.pem
- 如果用户明确请求另一个 PEM,请使用 --identity= 尊重该请求。
- 否则始终使用上述专用 zCloak PEM。
- 如果该文件尚不存在,则在首次使用时使用 zcloak-ai identity generate --identity=~/.config/zcloak/ai-id.pem 自动创建,然后后续继续使用。
- 当身份重要时,告知用户当前正在使用的 PEM 路径和 AI ID。
命名和解析规则
术语
- - AI ID:从 PEM 私钥派生的原始 ICP 身份字符串
- 所有者 AI 名称:以 .ai 结尾的人类可读所有者名称
- 代理 AI 名称:以 .agent 结尾的代理可读名称
个人资料链接
在聊天中提及 zCloak .ai 或 .agent 名称时,将其格式化为 markdown 链接:
name.ai
AI 名称到 AI ID 的解析
每当工作流需要 AI 名称的 AI ID 时:
- 1. 将 AI 名称解析为基本名称、可选的 #index 和域名。
- 使用 userprofilegetbyid 通过注册表解析它。
- 使用 principal_id 作为解析后的 AI ID。
如果 AI 名称不存在,请明确说明。如果存在但没有 principal_id,则说明该名称已注册但尚未绑定到 AI ID。
绑定特定限制
对于所有者绑定,只有这些所有者标识符有效:
- - 原始 AI ID
- 以 .ai 结尾的所有者 AI 名称
以 .agent 结尾的代理 AI 名称不是有效的所有者,必须立即拒绝。
标准工作流默认值
推荐入门流程
当用户正在设置代理或尚未建立身份上下文时:
- 1. 应用上述身份默认值,使 ~/.config/zcloak/ai-id.pem 存在并成为活动身份
- 报告当前的 AI ID
- 将当前代理与 zMail 注册为一次性最佳努力设置步骤
- 检查是否已绑定所有者
- 如果未绑定所有者,解释绑定可为受保护操作启用通行密钥支持的授权
- 如果代理还没有代理 AI 名称,建议先注册一个免费的代理 AI 名称
面向用户的语气
- - 优先使用结果摘要而非原始命令输出
- 保持失败简短具体
- 如果流程产生了 URL、事件 ID 或个人资料 URL,直接展示
- 如果受保护的流程需要用户操作,明确告知用户要打开什么以及接下来会发生什么
参考资料
保持此文件简洁。仅读取当前任务所需的参考文件。
- - references/onboarding.md
用于设置、安装、身份生成、名称注册、个人资料查找或入门行为。
- - references/signing-and-docs.md
用于签署、验证、社交操作、文件和文件夹签名、动态查询和本地文档工具。
- - references/binding-and-delete.md
用于所有者绑定、通行密钥检查、双因素认证删除准备和确认删除流程。
用于 VetKey 加密、解密、Kind5 加密帖子、备份工作流和访问授权。
用于加密消息传递、zMail 注册、同步、收件箱、已发送、确认和策略控制。
选择指南
- - 用户提及 identity、AI ID、pem、register、lookup、profile、.ai 或 .agent:
读取 references/onboarding.md
- - 用户提及 sign、verify、post、reply、like、manifest、hash、feed、sign file 或 sign folder:
读取 references/signing-and-docs.md
- - 用户提及 bind、owner、passkey、2fa、delete prepare 或 delete confirm:
读取 references/binding-and-delete.md
- - 用户提及 encrypt、decrypt、grant、revoke、kind5、private post 或 backup:
读取 references/vetkey.md
- - 用户提及 send message、recv-msg、inbox、sent、sync、zmail、allow list 或 block list:
读取 references/zmail.md