M3E: Skill for Claude Code

.claude/skills/m3e-shortcuts/SKILL.md

m3e-shortcuts is a skill for Claude Code from akaghef/M3E. It costs 89 tokens per session (1,742 once invoked), scanned A, original, MIT.

A repository guide for adding, changing, or removing keyboard shortcuts in an M3E web viewer. It covers the event handler, the specification documents, and the on-screen shortcut cheat sheet.

In plain words
What is it for?
Use it when changing keyboard commands, checking for shortcut conflicts, updating action descriptions, or editing the viewer's shortcut overlay.
Why use it?
It helps keep the implemented key bindings, their documentation, and the visible shortcut list synchronized.

Skill for Claude Code

Written for Claude Code: installed under .claude/.

This is akaghef/M3E's own configuration. It tells Claude Code how to work on M3E itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything M3E configures →

View source ↗ akaghef/M3E
Reuse

Borrowing it

Nothing to install: this file belongs to akaghef/M3E. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.

Copy the file
curl -O https://raw.githubusercontent.com/akaghef/M3E/main/.claude/skills/m3e-shortcuts/SKILL.md
Clone the repo
git clone --depth 1 https://github.com/akaghef/M3E

Made for: Claude Code.

Wrote 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.

agentmods badge for m3e-shortcuts

README.md
[![agentmods](https://agentmods.dev/badge/skills/akaghef/m3e/m3e-shortcuts/github.svg)](https://agentmods.dev/skills/akaghef/m3e/m3e-shortcuts)
Your own site
<a href="https://agentmods.dev/skills/akaghef/m3e/m3e-shortcuts"><img src="https://agentmods.dev/badge/skills/akaghef/m3e/m3e-shortcuts/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for m3e-shortcuts

Your own site · 80×15
<a href="https://agentmods.dev/skills/akaghef/m3e/m3e-shortcuts"><img src="https://agentmods.dev/badge/skills/akaghef/m3e/m3e-shortcuts.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 89 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,742 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce invoked
Fable 5.1 $0.00089 $0.01742
Opus 5.5 $0.00036 $0.00697
Sonnet 5.5 $0.00018 $0.00348
Haiku 4.5 $0.00009 $0.00174

Measured 5d ago against content hash e44dd60bcca0, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

m3e-shortcuts 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.

.claude/skills/m3e-shortcuts/SKILL.md · 135 lines

How it starts

The opening of the file, as written. The whole thing — 135 lines — stays where its author put it; the contents beside it link to each section on GitHub.

M3E Keyboard Shortcut Guide

M3Eのキーボードショートカットは final/src/browser/viewer.ts 内のグローバル keydown イベントハンドラで管理されている。ショートカット設定ファイルやレジストリは無く、if/else chainで直接記述するスタイル。

ワークフロー

ショートカットの追加・編集・削除は以下の順序で行う。

1. 仕様ドキュメントを確認する

まず以下のドキュメントを読み、現在のキー割り当てとアクション定義を把握する。

ファイル 内容
docs/06_Operations/Keybindings_Beta.md キー → アクション名のマッピング(全キーの一覧)
docs/06_Operations/Actions_Beta.md アクション名 → 説明・備考

これらが「仕様」であり、実装の正解はここに書かれている。衝突チェックもこのドキュメントで行う。

2. 実装する

実装対象は final/src/browser/viewer.ts の keydown ハンドラ。詳細は後述の「実装ガイド」を参照。

3. 仕様ドキュメントを更新する

実装が完了したら、変更内容に応じて Keybindings_Beta.md と Actions_Beta.md を更新する。

  • 新規ショートカット → 両方に追記
  • キー変更 → Keybindings_Beta.md を更新
  • アクション動作変更 → Actions_Beta.md を更新
  • 削除 → 両方から該当行を削除(Keybindings_Beta.md 側は — に戻す)

4. チートシートを更新する

ショートカット一覧のオーバーレイ(Ctrl/Alt 長押しで表示)は viewer.html 内の #shortcut-cheatsheet にハードコードされている。ショートカットを変更したら必ずこの HTML も同期させること。

  • 対象: beta/viewer.html(および同期時に final/viewer.html)内の <div id="shortcut-cheatsheet"> ブロック
  • 構造: 2カラム × 複数グループ(Navigation / Editing / View / Clipboard / Structure / Thinking Mode)
  • 各行のフォーマット: <div class="cheatsheet-row"><kbd>キー</kbd><span>説明</span></div>

変更パターン:

  • 新規ショートカット → 該当グループに行を追加
  • キー変更 → <kbd> 内のキー表記を更新
  • 削除 → 該当行を削除
  • グループが増える場合 → <div class="cheatsheet-group"> を新設

5. 型チェック

npx tsc -p tsconfig.browser.json --noEmit

実装ガイド

ハンドラの位置

3つの独立した keydown ハンドラが存在する。目的に応じて正しいハンドラに追加すること。

ハンドラ 検索キーワード 用途
メインハンドラ document.addEventListener("keydown" ツリー操作全般(ノード選択、スコープ遷移、コピペ等)
インラインエディタ input.addEventListener("keydown" テキスト編集中のショートカット(Enter, Tab, Escape等)
リニアテキストパネル linearTextEl?.addEventListener("keydown" メモパネル内のショートカット(Ctrl+Enter保存等)

メインハンドラの構造

document.addEventListener("keydown", (event: KeyboardEvent) => {
  // ── ガード節 ──
  if (!doc) return;
  if (inlineEditor && document.activeElement === inlineEditor.input) return;
  if (document.activeElement === linearTextEl) return;

  // ── ショートカット定義(if → preventDefault → command → return) ──
  // Ctrl系 → 特殊キー(Escape, Tab, Enter, F2) → 数字キー → Alt系 → 裸キー → 矢印キー
  // この順序に意味がある:修飾キー付きが先、裸キーが後
});

Read the full file on GitHub · 135 lines

Changes

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.

  1. 5d ago First seen · 135 lines · 89 tokens per session scan A e44dd60bcca0

Subscribe to this mod's changes

m3e-shortcuts is a skill published in the GitHub repository akaghef/M3E (11 stars, last pushed 5d ago), licensed MIT. It adds 89 tokens to every session and 1,742 once invoked, about $0.0004 per session on Opus 5.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-10-02.

Related

Other skills, from other repositories

systematic-debugging

Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes.

obra/superpowers · 21 tokens

next-cache-components-adoption

Turn on Cache Components in a Next.js app and resolve the blocking routes it surfaces. Use when the user wants to enable, adopt, or migrate to Cache Components, flip the cacheComponents flag, work through a flood of blocking-prerender / instant validation errors, run the cache-components-instant-false codemod, or…

vercel/next.js · 95 tokens

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.

microsoft/vscode · 53 tokens

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…

microsoft/vscode · 71 tokens

insight-error-page

Write or audit an insight-kind error page for the Next.js dev overlay. Use when creating a new errors/ .mdx page, auditing an existing one, or checking that a page matches the framework fix cards. Covers page structure, title alignment, FixCard cards with Copy prompt button, code snippets, terminology verification…

vercel/next.js · 83 tokens

next-cache-components-optimizer

Optimize the meaningful UI available immediately from a Next.js route on an initial load (hard navigation) or named client-side navigation (soft navigation). Encode the goal as a failing @next/playwright instant() e2e and work it to green, one verified route and entry point at a time; the shipped test then guards…

vercel/next.js · 123 tokens