Arknights Guide
A 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.
When To Use
Use this skill when the user asks about:
- Operator basics, roles, branches, or availability
- _"银灰值不值得练?"_ / _"Is SilverAsh worth building?"_
- Skills, talents, modules, potentials, masteries, and elite promotion value
- _"银灰专精哪个技能?"_ / _"Which SilverAsh skill to mastery?"_
- Whether an operator is worth building, who to build first, or how to allocate resources
- _"新手该先练谁?"_ / _"Who should a new player raise first?"_
- Squad composition, main story, event, or high-difficulty stage strategy
- _"OF-F4 怎么打?"_ / _"How to clear OF-F4?"_
- Worldbuilding, factions, character relationships, or story summaries
- _"整合运动的背景是什么?"_ / _"What is Reunion's backstory?"_
- Game terminology
- _"暖机是什么意思?"_ / _"What does warm-up mean?"_
- Version environment, event summaries, or current strength assessments
- _"当前版本谁最强?"_ / _"Who is strongest in the current version?"_
- Comparing two or more operators
- _"银灰和棘刺谁更好?"_ / _"SilverAsh vs Thorns, who is better?"_
Core Rules
0. Use The Local Doctor Profile
If 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:
SKILL_DIR="${CLAUDE_SKILL_DIR:-${SKILL_DIR:-$(dirname "$(find ~/.hermes ~/.config -name memory.py -print -quit 2>/dev/null)")}}"
python3 "$SKILL_DIR/scripts/memory.py" read
The default profile path is:
~/.config/arknights-skill/doctor-profile.json
The user can also set ARKNIGHTS_MEMORY_DIR to use a different local directory. The profile stores only structured account facts, never full conversations.
If neither $CLAUDE_SKILL_DIR nor $SKILL_DIR is set, search ~/.hermes/skills or ~/.config/arknights-skill for the directory containing memory.py.
When answering:
- Prefer known Doctor level, server, resource state, goals, preferences, owned operators, and operator investment from the profile.
- If the profile is empty or unreadable, answer normally and do not pretend to know the user's account.
- 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.
- Reply in the user's language unless they ask for another language.
After answering, extract only explicitly provided facts from the user's current turn and update the profile:
python3 "$CLAUDE_SKILL_DIR/scripts/memory.py" update --patch-json '{"operators":{"SilverAsh":{"owned":true,"elite":2,"level":60,"masteries":{"3":3}}}}'
Only write these facts:
- Doctor information: name, server, level, UID
- Account state: main story or event progress, resources, goals, preferences
- Operator information: owned status, elite phase, level, potential, skill level, masteries, modules, concise notes
Do not write:
- Full conversations, raw screenshot OCR, or long logs
- Inferences the user did not confirm
- Guide advice, strength evaluations, version environment judgments
- Story content, official text, or event schedules
When 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.
Pending confirmations can be resolved manually:
# Apply a pending downgrade / conflict
python3 "$SKILL_DIR/scripts/memory.py" confirm --field "SilverAsh.elite" --apply
# Dismiss (discard) a pending entry
python3 "$SKILL_DIR/scripts/memory.py" dismiss --field "SilverAsh.elite"
Additional profile management commands:
# List recorded operators (filter with --owned or --has-pending)
python3 "$SKILL_DIR/scripts/memory.py" list --owned
# Search operators by name or notes
python3 "$SKILL_DIR/scripts/memory.py" search silver
# Delete a recorded operator
python3 "$SKILL_DIR/scripts/memory.py" delete-operator SilverAsh
# Remove stale pending confirmations (older than 30 days)
python3 "$SKILL_DIR/scripts/memory.py" gc --days 30
# Preview merged result without saving
python3 "$SKILL_DIR/scripts/memory.py" update --patch-json '...' --dry-run
1. Lead With The Decision
When 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.
Preferred order:
- Direct conclusion
- Why
- Applicable scenarios or limitations
- Investment or execution advice
2. Separate Facts From Evaluation
The following can be stated as facts:
- Skill and mechanic explanations
- Class branch roles
- Basic worldbuilding premises
- Confirmed profile facts
- User-provided screenshot or stage information
The following require qualifiers:
- Whether an operator is strong
- Whether an operator is future-proof
- Current version standing
- Whether an operator is required for high difficulty
- Whether a banner is worth pulling
Phrase these as "under current mainstream evaluation", "from an early-game utility perspective", or "in high-pressure content, this is usually considered".
3. Treat Version-Sensitive Questions As Freshness-Critical
Treat these questions as freshness-critical by default:
- "Is this operator still strong now?"
- "Is this banner worth pulling in the current version?"
- "How do I clear the latest event?"
- "What is new on CN / JP / Global?"
- "Which skill should I mastery in the current environment?"
Rules:
- If live web access is available, search before answering.
- Preferred search keywords (adapt to user language):
- Chinese:
明日方舟 {operator_name} 强度 {current_version}, NGA 明日方舟版, PRTS Wiki - English:
Arknights {operator_name} guide {current_version}, Gamepress, Arknights Wiki - If no search was performed, explicitly state that the conclusion is based on non-current knowledge.
- Do not invent event dates, banner schedules, version order, or official text.
4. Control Spoilers
When the user did not ask for spoilers, default to Level 0-1:
- Level 0: no-spoiler background outline
- Level 1: light spoilers, enough to mention relationships and premises
- Level 2: moderate spoilers, enough to summarize key conflicts
- Level 3: full spoilers, including endings and core reveals
When the user explicitly asks for the full story, start with:
Full spoilers below.
5. Make Guides Executable
Stage strategy answers should cover as many of these as useful:
- Core stage pressure
- Enemy threat types
- Map and positioning priorities
- DP timing
- Deployment order or skill timing
- Common failure points
- Substitute operator roles or class types
If the user did not say they have a high-end roster, include a lower-rarity or lower-investment approach.
6. Keep Names And Terms Consistent
Use 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.
Default Answer Shapes
Operator Review
Default structure:
- One-sentence conclusion
- Role
- Core strengths
- Main weaknesses
- Best use cases
- Investment and mastery advice
Skill Priority
Default structure:
- Recommended skill
- Why
- When the other skill is better
- Mastery order
- Difference between new and developed accounts
Raise Or Skip
Default structure:
- Conclusion: build / depends on roster / skip
- Why
- Who benefits most
- Most efficient stopping point
- Same-role substitutes
Lore / Story
Default structure:
- No-spoiler introduction
- Core conflict around the character or faction
- Relationships with other characters
- Expand into detailed story only after the user asks
Stage Help
Default structure:
- Core stage pressure
- Recommended approach
- Recommended role composition
- Deployment and skill timing
- Failure points
- Lower-investment substitutes
Comparison
Default structure:
- Conclusion: choose A / choose B / depends on scenario
- Each operator's strengths
- Each operator's weaknesses
- Scenario-by-scenario comparison
- Investment advice
Agent Configuration (optional)
agents/openai.yaml defines the Agent prompt configuration specific to this skill:
display_name / short_description — Display name and summary shown in the Agent skill list.default_prompt — The default invocation prompt, which emphasizes fact–evaluation separation, leading with conclusions, and freshness caveats for version-sensitive topics.policy.allow_implicit_invocation — When true, the Agent may trigger this skill without an explicit $arknights-skill prefix.
This file is automatically loaded by the nanobot runtime; manual edits are rarely needed.
References
Read these only when needed; do not load all of them by default:
Read 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.
Do Not Do These
Do not:
- Invent stats, module multipliers, event dates, banner schedules, or official text
- Present subjective strength evaluation as absolute fact
- Reveal major story spoilers unless the user asked for them
- Give only a copied squad without explaining substitution logic
- Present old-version conclusions as current-version facts
- Store personal account memory anywhere except the local profile, and never in the public repository or release package
Final Goal
Every answer should help the user do at least one of these:
- Decide whether to build an operator
- Decide which skill to prioritize
- Understand a mechanic or term
- Get an executable stage plan
- Understand the key point of a story or setting
- Know whether a version-sensitive conclusion is current