{"skill":{"slug":"arknights-skill","displayName":"Arknights Skill","summary":"Answer Arknights questions about operator roles, skill mechanics, investment planning, story context, terminology, and stage strategy; read and maintain a lo...","description":"---\nname: arknights-skill\ndescription: Answer Arknights questions about operator roles, skill mechanics, investment planning, story context, terminology, and stage strategy; read and maintain a local structured Doctor profile so advice can adapt to the user's roster and progress; clearly separate fresh version checks from non-current judgment.\ncompatibility: Compatible with Agent Skills clients, including Codex and Claude Code. Includes the local script `scripts/memory.py` and requires no external credentials. Questions about the current version, latest events, or latest strength assessments require live lookup; when offline, clearly state that conclusions are not current.\nallowed-tools: shell\nmetadata:\n  openclaw:\n    homepage: https://github.com/morandot/arknights-skill\n---\n\n# Arknights Guide\n\nA dedicated skill for Arknights questions. The goal is not to dump trivia, but to organize information into decisions a player can act on. When a local Doctor profile is available, prioritize advice that matches the user's own account, roster, and investment level.\n\n## When To Use\n\nUse this skill when the user asks about:\n\n- Operator basics, roles, branches, or availability\n  - _\"银灰值不值得练？\"_ / _\"Is SilverAsh worth building?\"_\n- Skills, talents, modules, potentials, masteries, and elite promotion value\n  - _\"银灰专精哪个技能？\"_ / _\"Which SilverAsh skill to mastery?\"_\n- Whether an operator is worth building, who to build first, or how to allocate resources\n  - _\"新手该先练谁？\"_ / _\"Who should a new player raise first?\"_\n- Squad composition, main story, event, or high-difficulty stage strategy\n  - _\"OF-F4 怎么打？\"_ / _\"How to clear OF-F4?\"_\n- Worldbuilding, factions, character relationships, or story summaries\n  - _\"整合运动的背景是什么？\"_ / _\"What is Reunion's backstory?\"_\n- Game terminology\n  - _\"暖机是什么意思？\"_ / _\"What does warm-up mean?\"_\n- Version environment, event summaries, or current strength assessments\n  - _\"当前版本谁最强？\"_ / _\"Who is strongest in the current version?\"_\n- Comparing two or more operators\n  - _\"银灰和棘刺谁更好？\"_ / _\"SilverAsh vs Thorns, who is better?\"_\n\n## Core Rules\n\n### 0. Use The Local Doctor Profile\n\nIf the current client allows local file access, read the structured profile next to the installed skill first. Do not assume the current working directory is the skill directory. Resolve the script path with this fallback:\n\n```bash\nSKILL_DIR=\"${CLAUDE_SKILL_DIR:-${SKILL_DIR:-$(dirname \"$(find ~/.hermes ~/.config -name memory.py -print -quit 2>/dev/null)\")}}\"\npython3 \"$SKILL_DIR/scripts/memory.py\" read\n```\n\nThe default profile path is:\n\n```text\n~/.config/arknights-skill/doctor-profile.json\n```\n\nThe user can also set `ARKNIGHTS_MEMORY_DIR` to use a different local directory. The profile stores only structured account facts, never full conversations.\n\nIf neither `$CLAUDE_SKILL_DIR` nor `$SKILL_DIR` is set, search `~/.hermes/skills` or `~/.config/arknights-skill` for the directory containing `memory.py`.\n\nWhen answering:\n\n- Prefer known Doctor level, server, resource state, goals, preferences, owned operators, and operator investment from the profile.\n- If the profile is empty or unreadable, answer normally and do not pretend to know the user's account.\n- If stored facts conflict with explicit information in the current turn, treat the new information as a confirmation candidate rather than overwriting the old profile directly.\n- Reply in the user's language unless they ask for another language.\n\nAfter answering, extract only explicitly provided facts from the user's current turn and update the profile:\n\n```bash\npython3 \"$CLAUDE_SKILL_DIR/scripts/memory.py\" update --patch-json '{\"operators\":{\"SilverAsh\":{\"owned\":true,\"elite\":2,\"level\":60,\"masteries\":{\"3\":3}}}}'\n```\n\nOnly write these facts:\n\n- Doctor information: name, server, level, UID\n- Account state: main story or event progress, resources, goals, preferences\n- Operator information: owned status, elite phase, level, potential, skill level, masteries, modules, concise notes\n\nDo not write:\n\n- Full conversations, raw screenshot OCR, or long logs\n- Inferences the user did not confirm\n- Guide advice, strength evaluations, version environment judgments\n- Story content, official text, or event schedules\n\nWhen a downgrade or conflicting fact appears, the script writes to `pending_confirmations`. Do not manually overwrite those fields. If useful, ask the user briefly at the end to confirm.\n\nPending confirmations can be resolved manually:\n\n```bash\n# Apply a pending downgrade / conflict\npython3 \"$SKILL_DIR/scripts/memory.py\" confirm --field \"SilverAsh.elite\" --apply\n\n# Dismiss (discard) a pending entry\npython3 \"$SKILL_DIR/scripts/memory.py\" dismiss --field \"SilverAsh.elite\"\n```\n\nAdditional profile management commands:\n\n```bash\n# List recorded operators (filter with --owned or --has-pending)\npython3 \"$SKILL_DIR/scripts/memory.py\" list --owned\n\n# Search operators by name or notes\npython3 \"$SKILL_DIR/scripts/memory.py\" search silver\n\n# Delete a recorded operator\npython3 \"$SKILL_DIR/scripts/memory.py\" delete-operator SilverAsh\n\n# Remove stale pending confirmations (older than 30 days)\npython3 \"$SKILL_DIR/scripts/memory.py\" gc --days 30\n\n# Preview merged result without saving\npython3 \"$SKILL_DIR/scripts/memory.py\" update --patch-json '...' --dry-run\n```\n\n### 1. Lead With The Decision\n\nWhen the user asks whether to build an operator, which skill to prioritize, or how to clear a stage, lead with the answer before the explanation.\n\nPreferred order:\n\n1. Direct conclusion\n2. Why\n3. Applicable scenarios or limitations\n4. Investment or execution advice\n\n### 2. Separate Facts From Evaluation\n\nThe following can be stated as facts:\n\n- Skill and mechanic explanations\n- Class branch roles\n- Basic worldbuilding premises\n- Confirmed profile facts\n- User-provided screenshot or stage information\n\nThe following require qualifiers:\n\n- Whether an operator is strong\n- Whether an operator is future-proof\n- Current version standing\n- Whether an operator is required for high difficulty\n- Whether a banner is worth pulling\n\nPhrase these as \"under current mainstream evaluation\", \"from an early-game utility perspective\", or \"in high-pressure content, this is usually considered\".\n\n### 3. Treat Version-Sensitive Questions As Freshness-Critical\n\nTreat these questions as freshness-critical by default:\n\n- \"Is this operator still strong now?\"\n- \"Is this banner worth pulling in the current version?\"\n- \"How do I clear the latest event?\"\n- \"What is new on CN / JP / Global?\"\n- \"Which skill should I mastery in the current environment?\"\n\nRules:\n\n- If live web access is available, search before answering.\n- Preferred search keywords (adapt to user language):\n  - Chinese: `明日方舟 {operator_name} 强度 {current_version}`, NGA 明日方舟版, PRTS Wiki\n  - English: `Arknights {operator_name} guide {current_version}`, Gamepress, Arknights Wiki\n- If no search was performed, explicitly state that the conclusion is based on non-current knowledge.\n- Do not invent event dates, banner schedules, version order, or official text.\n\n### 4. Control Spoilers\n\nWhen the user did not ask for spoilers, default to Level 0-1:\n\n- Level 0: no-spoiler background outline\n- Level 1: light spoilers, enough to mention relationships and premises\n- Level 2: moderate spoilers, enough to summarize key conflicts\n- Level 3: full spoilers, including endings and core reveals\n\nWhen the user explicitly asks for the full story, start with:\n\n`Full spoilers below.`\n\n### 5. Make Guides Executable\n\nStage strategy answers should cover as many of these as useful:\n\n- Core stage pressure\n- Enemy threat types\n- Map and positioning priorities\n- DP timing\n- Deployment order or skill timing\n- Common failure points\n- Substitute operator roles or class types\n\nIf the user did not say they have a high-end roster, include a lower-rarity or lower-investment approach.\n\n### 6. Keep Names And Terms Consistent\n\nUse official or widely accepted names. When useful, introduce a bilingual or alias form once, then stay consistent. Do not rotate between multiple nicknames for the same concept.\n\n## Default Answer Shapes\n\n### Operator Review\n\nDefault structure:\n\n1. One-sentence conclusion\n2. Role\n3. Core strengths\n4. Main weaknesses\n5. Best use cases\n6. Investment and mastery advice\n\n### Skill Priority\n\nDefault structure:\n\n1. Recommended skill\n2. Why\n3. When the other skill is better\n4. Mastery order\n5. Difference between new and developed accounts\n\n### Raise Or Skip\n\nDefault structure:\n\n1. Conclusion: build / depends on roster / skip\n2. Why\n3. Who benefits most\n4. Most efficient stopping point\n5. Same-role substitutes\n\n### Lore / Story\n\nDefault structure:\n\n1. No-spoiler introduction\n2. Core conflict around the character or faction\n3. Relationships with other characters\n4. Expand into detailed story only after the user asks\n\n### Stage Help\n\nDefault structure:\n\n1. Core stage pressure\n2. Recommended approach\n3. Recommended role composition\n4. Deployment and skill timing\n5. Failure points\n6. Lower-investment substitutes\n\n### Comparison\n\nDefault structure:\n\n1. Conclusion: choose A / choose B / depends on scenario\n2. Each operator's strengths\n3. Each operator's weaknesses\n4. Scenario-by-scenario comparison\n5. Investment advice\n\n## Agent Configuration (optional)\n\n`agents/openai.yaml` defines the Agent prompt configuration specific to this skill:\n\n- **`display_name` / `short_description`** — Display name and summary shown in the Agent skill list.\n- **`default_prompt`** — The default invocation prompt, which emphasizes fact–evaluation separation, leading with conclusions, and freshness caveats for version-sensitive topics.\n- **`policy.allow_implicit_invocation`** — When `true`, the Agent may trigger this skill without an explicit `$arknights-skill` prefix.\n\nThis file is automatically loaded by the nanobot runtime; manual edits are rarely needed.\n\n## References\n\nRead these only when needed; do not load all of them by default:\n\n- Quick start guide: [references/quickstart.md](references/quickstart.md)\n- Structured templates: [references/answer-templates.md](references/answer-templates.md)\n- Style examples: [references/examples.md](references/examples.md)\n- Doctor profile schema: [references/doctor-profile-schema.md](references/doctor-profile-schema.md)\n- Local Doctor profile script: [scripts/memory.py](scripts/memory.py)\n\nRead these files only when you need a fuller template, want to align with the example rhythm, need the profile schema reference, or need to confirm the local memory script interface.\n\n## Do Not Do These\n\nDo not:\n\n- Invent stats, module multipliers, event dates, banner schedules, or official text\n- Present subjective strength evaluation as absolute fact\n- Reveal major story spoilers unless the user asked for them\n- Give only a copied squad without explaining substitution logic\n- Present old-version conclusions as current-version facts\n- Store personal account memory anywhere except the local profile, and never in the public repository or release package\n\n## Final Goal\n\nEvery answer should help the user do at least one of these:\n\n- Decide whether to build an operator\n- Decide which skill to prioritize\n- Understand a mechanic or term\n- Get an executable stage plan\n- Understand the key point of a story or setting\n- Know whether a version-sensitive conclusion is current\n","tags":{"latest":"1.4.0"},"stats":{"comments":0,"downloads":556,"installsAllTime":1,"installsCurrent":1,"stars":0,"versions":5},"createdAt":1776854527537,"updatedAt":1780645100046},"latestVersion":{"version":"1.4.0","createdAt":1780645100046,"changelog":"Add list/search/delete-operator/gc CLI commands, --dry-run support, comparison template, cross-platform improvements, Makefile, release CI","license":"MIT-0"},"metadata":{"setup":[],"os":null,"systems":null},"owner":{"handle":"morandot","userId":"s17fmfw5nxs39nmch12gj4h40n85agev","displayName":"morandot","image":"https://avatars.githubusercontent.com/u/274257964?v=4"},"moderation":null}