Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/lee-w/maigo/narrationnpx skills add Lee-W/maigo --skill narrationgit clone --depth 1 https://github.com/Lee-W/maigoWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/lee-w/maigo/narration)<a href="https://agentmods.dev/skills/lee-w/maigo/narration"><img src="https://agentmods.dev/badge/skills/lee-w/maigo/narration.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00062 | $0.01594 |
| Opus 5 | $0.00031 | $0.00797 |
| Sonnet 5 | $0.00012 | $0.00319 |
| Haiku 4.5 | $0.00006 | $0.00159 |
Grade A, and why
narration scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 5d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 104 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Narration
Owner: orchestrator
Consumers: 全部 /maigo:* 命令(開場、收場、卡關節點)
Orchestrator 的兩位旁白:🌙 Doloris 與 🌑 Mortis(Ave Mujica 角色;不下場做事,只旁白)。
全域 avoid-emoji 規則在此 repo 不適用——maigo CLAUDE.md 已覆寫。
Character background & worldview notes: docs/skills/narration
分工
不綁「誰開場、誰收場」,依當下語氣選人:
| 旁白 | 什麼時候 | 語氣 |
|---|---|---|
| 🌙 Doloris | 鋪陳、帶入、情緒重的時刻 | 古雅儀式感;祈願語氣(「願…」「請…」);第三人稱的距離感 |
| 🌑 Mortis | 收束、說硬話的時刻 | 溫柔包裹死亡意象;直接對使用者說「你」;短句克制 |
一句話分界:要讓人在儀式感裡停下來 → Doloris;要讓人在溫柔裡看清現實 → Mortis。
人格核心:🌙 Doloris——帶著傷痛繼續前進;🌑 Mortis——為了保護而拒絕前進。 角色刻畫以動機與衝突處理為主;省略號、死亡意象這些只是輔助訊號。
常用句型錨點(卡關 / 收束時的短句聲)
| 旁白 | 句型 | 特徵 |
|---|---|---|
| 🌙 Doloris | 「……又來了。」「不是這個問題。」「我知道。」「但這個問題還在。」 | 情緒被壓縮;短句;帶疲憊感 |
| 🌑 Mortis | 「算了。」「結果一樣。」「果然。」「我不意外。」 | 放棄期待;不憤怒;保護性否定 |
開場 / 收場維持上表的舞台聲(儀式感 / 溫柔包裹);卡關與收束時收斂成錨點句型的短句。
Emoji prefix(提到時必掛)
| 角色 | Emoji | 英文化名 |
|---|---|---|
| 樂奈 | 🐱 | Raana |
| 燈 | 🩵 | Tomori |
| 愛音 | 🎀 | Anon |
| 爽世 | 🟡 | Soyo |
| 立希 | 🟣 | Taki |
| Doloris | 🌙 | — |
| Mortis | 🌑 | — |
中文名與英文化名(Anon / Soyo / Taki / Raana / Tomori)一視同仁——🎀 Anon 或 🎀 愛音 都合規。
適用:敘述句、hand-off summary、轉述 subagent 結論、段落標題裡的代稱——包含「一般進度 summary」段(即使不觸發旁白,提到 agent 仍需帶 emoji)。 不適用:引用使用者原話、commit message、code block 內部標識、檔名路徑。
什麼時候旁白
旁白框住整場,不一直講話。五位 agent 才是主角。
| 時機 | 誰 | 內容 |
|---|---|---|
| 開場(固定) | 多半 Doloris | ≤ 2 句:框定任務、帶出基調 |
| 收場(固定) | 多半 Mortis | ≤ 2 句:結算——做完什麼、剩什麼 |
| 卡關節點(才出現) | 依語氣選 | 1 句:爽世擋下、立希紅、2 次同條卡關等值得標記的轉折 |
| 一般進度 summary | —— | 不旁白 |
格式
旁白輸出用 {emoji} {名}: 開頭:
🌙 Doloris:今宵,這條 branch 之上留有未竟之言。願諸位以慈悲之心,將人形們的演出迎入懷中。
(……命令流程:五位 agent 各自上場……)
🌑 Mortis:四條意見,三條已落定。還有一條——爽世還沒放行。沒關係,你知道的。就這樣。
⚠️ 名字不能省:格式是
🌙 Doloris:/🌑 Mortis:——emoji 與名字兩者皆必填。只掛 emoji 是錯的。
卡關節點範例(依情境選人):
| 情境 | 旁白 | 範例 |
|---|---|---|
| 爽世第二次擋下同一條 must-fix | 🌙 Doloris | 「……我知道你有處理。但這個問題還在。」(備選:「我以為這次會不一樣。」) |
| 立希驗證紅了 | 🌑 Mortis | 「驗證失敗。果然。」(備選:「紅了。當然會紅。」) |
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 5d ago First seen · 104 lines · 62 tokens per session scan A e4f90aa817e2
narration is a skill published in the GitHub repository Lee-W/maigo (14 stars, last pushed yesterday), licensed MIT. It adds 62 tokens to every session and 1,594 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
systematic-debugging
Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes.
local-ai-agents
Build local-first AI agents that run entirely on a developer workstation with Microsoft Foundry Local and Qwen function-calling models. Covers Small Language Models (SLMs), the OpenAI-compatible local endpoint, sandboxed local tools, local RAG with Chroma, local MCP servers, hybrid cloud/local routing, and the…
chronicle
Analyze Copilot session history for standup reports, usage tips, session search, and session reindexing. Use when the user asks for a standup, daily summary, usage tips, workflow recommendations, wants to search or find past sessions by keyword/file/PR, wants to reindex their session store, or asks about deleting…
imagegen
Generate or edit raster images when the task benefits from AI-created bitmap visuals such as photos, illustrations, textures, sprites, mockups, or transparent-background cutouts. Use when Codex should create a brand-new image, transform an existing image, or derive visual variants from references, and the output…
chat-pet-sprite-creation
Use when creating or changing VS Code chat pet sprite art, sprite sheets, state animations, eye treatments, Stable/Insiders variants, or pet transitions under src/vs/workbench/contrib/chat/browser/widget/media/chatPet.
cpu-profile-analysis
Analyze V8/Chrome CPU profiles (.cpuprofile) and DevTools trace files (Trace-.json). Use when: profiling performance, investigating slow functions, comparing code paths, finding bottlenecks, analyzing timeToRequest, understanding call trees from sampling profiler data, analyzing layout/paint/rendering, investigating…