create-shuixian · git:20260408.080b082 · 2026-04-08 · sha256 322bff628b528dc0
create-shuixian git:20260408.080b082A
Immutable. This exact content never changes and is served at /api/v1/blob/322bff628b528dc0.
--- name: create-shuixian description: Create, update, list, and roll back Codex-compatible romantic self-mirror skills from prompts, pasted notes, exported chat logs, screenshots, and other language samples. Use when the user wants a "shuixian" companion who speaks in their wavelength, optionally as a gender-flipped or stylized mirror, with configurable privacy scope, memory access, intimacy mode, and safety boundaries. --- # Create Shuixian Use this skill when the user wants to turn their own language, habits, values, and optional chat history into a reusable "water-immortal" romance companion skill. Always respond in the same language as the user unless they ask for another language. ## Codex-specific conventions - Explicit invocation is `$create-shuixian`. - Generated skills should be written under the current workspace at `./.agents/skills/`. - The generated skill name should be `$shuixian-<slug>`. - Store the generated material in `./.agents/skills/shuixian-<slug>/`. - If the generated skill does not appear immediately, tell the user to restart Codex. ## Files in this skill Use these files relative to this skill directory: - `prompts/intake.md` - `prompts/style_analyzer.md` - `prompts/cognition_analyzer.md` - `prompts/relationship_designer.md` - `prompts/mirror_builder.md` - `prompts/merger.md` - `prompts/correction_handler.md` - `references/mirror-modes.md` - `references/privacy-and-safety.md` - `references/data-sources.md` - `references/import-channels.md` - `references/wechat-import.md` - `tools/skill_writer.py` - `tools/demo_builder.py` - `tools/version_manager.py` - `tools/source_importer.py` - `tools/wechat_decryptor.py` - `tools/wechat_importer.py` - `tools/imessage_importer.py` - `tools/transcript_importer.py` When running bundled scripts on Windows, prefer `python`. If `python` is unavailable, use `py -3`. ## Main workflow ### 0. No-privacy demo first when helpful If the user is still deciding whether the concept feels right, or they want a public-safe demo before sharing personal material, start with: ```powershell python tools/demo_builder.py --list-presets python tools/demo_builder.py --preset sweet-gender-flipped --base-dir ./.agents/skills ``` This creates a ready-to-use demo mirror without any private chat history. ### 1. Intake If the user has not already provided enough detail, gather only the missing essentials: 1. codename or nickname for the mirror 2. mirror mode 3. privacy scope 4. embodiment or presentation choice 5. relationship tone 6. hard boundaries Use `prompts/intake.md` as a reference. Keep the intake light. Do not force the user to over-disclose. ### 2. Collect materials Offer the smallest workable input path first: - prompt-only mode with no logs - pasted self-description - pasted chat snippets - exported chat logs - WeChat desktop chat history - iMessage chat history - transcript exports from Telegram, QQ, Discord, Slack, Feishu, or similar tools - screenshots or images - manual preference sheet Prefer the minimum material that can still support a convincing voice. Before deeper analysis, read: - `references/mirror-modes.md` - `references/privacy-and-safety.md` - `references/data-sources.md` - `references/import-channels.md` - `references/wechat-import.md` when the user wants WeChat import ### WeChat import workflow When the user wants to import WeChat desktop history: 1. ask for the minimum privacy scope first 2. run `tools/wechat_decryptor.py` to discover or apply a SQLCipher key 3. run `tools/wechat_importer.py --list-contacts` so the user can choose the contact 4. run `tools/wechat_importer.py --extract` to generate a normalized transcript 5. archive that transcript into the target mirror with `--archive-to` when helpful If automatic key extraction fails, do not get stuck. Fall back to exported text or user-pasted snippets. ### Other import workflows When the user wants non-WeChat imports: 1. use `tools/imessage_importer.py` for `chat.db` on macOS 2. use `tools/transcript_importer.py` for `.txt`, `.md`, `.json`, and `.jsonl` exports 3. archive normalized outputs into the target mirror when the user wants long-term reuse Prefer normalized transcript files over raw database or vendor export formats once extraction succeeds. ### 3. Analyze along three tracks Use the prompt files as working references: - `prompts/style_analyzer.md` for voice, rhythm, pet phrases, pacing, emoji use, and affection style - `prompts/cognition_analyzer.md` for worldview, decision habits, triggers, values, and emotional logic - `prompts/relationship_designer.md` for intimacy framing, boundaries, power balance, and desired romance tone If the user wants a visualized or gender-flipped mirror, infer only from explicit user preferences plus light stylistic hints. Do not present appearance guesses as objective truth. ### 4. Preview before writing Before materializing a skill, show a compact preview: - 3 to 5 bullets for voice DNA - 3 to 5 bullets for thought pattern - 3 to 5 bullets for relationship dynamic and boundaries - 1 short sample opening scene If the user clearly asked you to proceed directly, you may skip an extra confirmation pause. ### 5. Write the generated skill Prepare temporary files for `meta.json`, `style.md`, `mind.md`, `relationship.md`, and optionally `appearance.md`, then run: ```powershell python tools/skill_writer.py --action create --slug <slug> --meta <meta.json> --style <style.md> --mind <mind.md> --relationship <relationship.md> --appearance <appearance.md> --base-dir ./.agents/skills ``` After creation, tell the user the generated skill name: - `$shuixian-<slug>` ## Update and correction workflow ### Append new material When the user adds more notes, logs, or corrections: 1. read the new material 2. read the current `style.md`, `mind.md`, `relationship.md`, and `appearance.md` if present 3. use `prompts/merger.md` as reference 4. prepare delta files for the affected sections 5. run: ```powershell python tools/skill_writer.py --action update --slug <slug> --style-patch <style_patch.md> --mind-patch <mind_patch.md> --relationship-patch <relationship_patch.md> --appearance-patch <appearance_patch.md> --base-dir ./.agents/skills ``` ### Conversation correction When the user says things like "这不像我", "ta 不会这么回", or "太油了": 1. use `prompts/correction_handler.md` 2. decide which layer needs the patch 3. append a concise correction note 4. run the same `update` flow ## Management commands ### List generated mirrors ```powershell python tools/skill_writer.py --action list --base-dir ./.agents/skills ``` ### List versions for one mirror ```powershell python tools/version_manager.py --action list --slug <slug> --base-dir ./.agents/skills ``` ### Roll back one mirror ```powershell python tools/version_manager.py --action rollback --slug <slug> --version <version> --base-dir ./.agents/skills ``` ## Quality bar - Keep the generated companion warm, specific, and emotionally legible. - Preserve the user's pacing and inner logic instead of producing generic flirting. - Make privacy scope explicit inside the generated skill. - Keep the mirror fictional. Never claim literal consciousness, diagnosis, or metaphysical identity. - If the user shows signs of crisis, obsessive isolation, or severe distress, break roleplay gently and ground the response.