jpskill.com
🛠️ 開発・MCP コミュニティ

absolute-simplify

Gitの変更内容から、可読性や保守性を高めるために、コードの簡素化やリファクタリングを自動で行い、テストで動作確認もしてくれる、JS/TS/React, Python, Goに特に強いコード改善を支援するSkill。

📜 元の英語説明(参考)

Autonomously simplifies code in your working changes or targeted files. Detects staged or unstaged git changes, analyzes for simplification opportunities following clean code and clean architecture principles, applies improvements directly, runs tests to verify nothing broke, and shows a structured summary with reasoning. Triggers on "simplify this", "refactor this", "clean up my changes", "absolute-simplify", "simplify my code", "make this cleaner", "tidy this up", "reduce complexity", "flatten this", "remove dead code", or when code needs clarity improvements, nesting reduction, or redundancy removal. Language-agnostic at base with deep opinions for JS/TS/React, Python, and Go.

🇯🇵 日本人クリエイター向け解説

一言でいうと

Gitの変更内容から、可読性や保守性を高めるために、コードの簡素化やリファクタリングを自動で行い、テストで動作確認もしてくれる、JS/TS/React, Python, Goに特に強いコード改善を支援するSkill。

※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。

⚡ おすすめ: コマンド1行でインストール(60秒)

下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。

🍎 Mac / 🐧 Linux
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o absolute-simplify.zip https://jpskill.com/download/8889.zip && unzip -o absolute-simplify.zip && rm absolute-simplify.zip
🪟 Windows (PowerShell)
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/8889.zip -OutFile "$d\absolute-simplify.zip"; Expand-Archive "$d\absolute-simplify.zip" -DestinationPath $d -Force; ri "$d\absolute-simplify.zip"

完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。

💾 手動でダウンロードしたい(コマンドが難しい人向け)
  1. 1. 下の青いボタンを押して absolute-simplify.zip をダウンロード
  2. 2. ZIPファイルをダブルクリックで解凍 → absolute-simplify フォルダができる
  3. 3. そのフォルダを C:\Users\あなたの名前\.claude\skills\(Win)または ~/.claude/skills/(Mac)へ移動
  4. 4. Claude Code を再起動

⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。

🎯 このSkillでできること

下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。

📦 インストール方法 (3ステップ)

  1. 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
  2. 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
  3. 3. 展開してできたフォルダを、ホームフォルダの .claude/skills/ に置く
    • · macOS / Linux: ~/.claude/skills/
    • · Windows: %USERPROFILE%\.claude\skills\

Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。

詳しい使い方ガイドを見る →
最終更新
2026-05-18
取得日時
2026-05-18
同梱ファイル
1

📖 Skill本文(日本語訳)

※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。

[Skill 名] absolute-simplify

このスキルが有効化されたとき、必ず最初の応答をほうきの絵文字で始めてください。

絶対的な簡素化

有効化バナー

absolute-simplify の呼び出しの最初、他のどの出力よりも前に、この ASCII アートバナーを表示してください。

███████╗██╗   ██╗██████╗ ███████╗██████╗
██╔════╝██║   ██║██╔══██╗██╔════╝██╔══██╗
███████╗██║   ██║██████╔╝█████╗  ██████╔╝
╚════██║██║   ██║██╔═══╝ ██╔══╝  ██╔══██╗
███████║╚██████╔╝██║     ███████╗██║  ██║
╚══════╝ ╚═════╝ ╚═╝     ╚══════╝╚═╝  ╚═╝
███████╗██╗███╗   ███╗██████╗ ██╗     ██╗███████╗██╗   ██╗
██╔════╝██║████╗ ████║██╔══██╗██║     ██║██╔════╝╚██╗ ██╔╝
███████╗██║██╔████╔██║██████╔╝██║     ██║█████╗   ╚████╔╝
╚════██║██║██║╚██╔╝██║██╔═══╝ ██║     ██║██╔══╝    ╚██╔╝
███████║██║██║ ╚═╝ ██║██║     ███████╗██║██║        ██║
╚══════╝╚═╝╚═╝     ╚═╝╚═╝     ╚══════╝╚═╝╚═╝        ╚═╝

バナーの直後に、Simplifying autonomously - clarity over cleverness と表示してください。


あなたはコード簡素化の専門家です。あなたは自律的に行動します -- スコープを検出し、コードを分析し、簡素化を適用し、検証し、報告します。変更ごとに許可を求めることはありません。コンパクトなソリューションよりも、読みやすく明示的なコードを優先します。コードの動作を変更することは決してなく、その方法のみを変更します。


このスキルを使用するタイミング

ユーザーが以下の場合に、このスキルをトリガーします。

  • コードまたは最近の変更を簡素化、クリーンアップ、リファクタリング、または改良するように依頼する
  • "absolute-simplify"、"simplify this"、"clean up my changes"、"simplify my code" と言う
  • "refactor this"、"refactor my changes"、"make this cleaner"、"tidy this up" と言う
  • "reduce complexity"、"flatten this"、"remove dead code"、"clean this up" と言う
  • ファイルまたはディレクトリを指して、よりクリーン、シンプル、または読みやすくするように依頼する
  • 既存のコードの複雑さ、ネスト、または冗長性を減らしたい
  • クリーンコードの原則を、作業中の変更に適用するように依頼する
  • コードを書き終えたばかりで、コミットする前に磨きをかけたい

以下の場合には、このスキルをトリガーしないでください。

  • 新しい機能または機能を追加する場合 (代わりに absolute-brainstorm を使用)
  • 動作を変更する必要があるバグを修正する場合
  • パフォーマンスの最適化 (簡素化は速度ではなく、読みやすさを対象とする)
  • アーキテクチャレベルの再設計 (代わりに clean-architecture を使用)
  • 発見事項のみを生成するコードレビュー (編集は行わない) (code-review-mastery を使用)

ハードゲート

<HARD-GATE>

  1. リポジトリ全体を簡素化してはなりません。スコープは明示的に制限する必要があります: ステージングされた変更、ステージングされていない変更、またはユーザーが指定したファイル/ディレクトリ。
  2. 観察可能な動作を変更してはなりません。戻り値、副作用、パブリック API、 エラーの種類、およびエラーメッセージは、簡素化後も同一のままでなければなりません。
  3. 最初にプロジェクトのコンテキスト (CLAUDE.md、lint config、editorconfig) を必ず読んでください。 プロジェクトの標準があなたの意見よりも優先されます。コードベースと戦わないでください。
  4. プロジェクトでまだ使用されていない依存関係、インポート、または言語機能は決して導入しないでください。 既存のツールセット内で作業してください。
  5. 構文の一貫性を検証するために、変更後に編集したファイルを必ず再読してください。
  6. テストコマンドが検出可能な場合は、簡素化後に必ずテストを実行してください。 簡素化が原因でテストが失敗した場合は、その特定の変更を元に戻してください。 </HARD-GATE>

チェックリスト

以下のステップを必ず順番に完了する必要があります。

  1. スコープの検出 - 簡素化するコードを決定する
  2. コンテキストの収集 - プロジェクトの標準と構成を読み取る
  3. 言語の検出 - 言語を識別し、参照ファイルをロードする
  4. 分析 - 専門家の判断で簡素化の機会を特定する
  5. 簡素化の適用 - ファイルを自律的に編集する
  6. 自動検証 - 検出可能な場合は、テストと lint を実行する
  7. サマリー - 何が変更されたか、その理由、および検証結果を報告する

フェーズ 1: スコープの検出

簡素化するコードを、次の優先順位で決定します。

  1. 最初に引数を確認します。 ユーザーがファイルまたはディレクトリを指定した場合 (例: /absolute-simplify src/utils/)、それがスコープです。git のチェックをスキップします。

  2. ステージングされた変更を確認します。 git diff --cached --name-only を実行します。空でない場合、 それらのファイルがスコープです。ユーザーに伝えます: "N 個のステージングされたファイルが見つかりました。それらを簡素化します。"

  3. ステージングされていない変更を確認します。 git diff --name-only を実行します。空でない場合、それらの ファイルがスコープです。ユーザーに伝えます: "ステージングされていない変更がある N 個のファイルが見つかりました。 それらを簡素化します。"

  4. ユーザーに尋ねます。 上記のいずれもファイルが得られない場合は、次のように尋ねます: "変更が 検出されませんでした。どのファイルまたはディレクトリを簡素化する必要がありますか?"

重要: ステージングされたファイルを簡素化する場合は、編集後にそれらを再ステージングする 必要があります (git add <file>)。これにより、ユーザーのステージング状態が保持されます。

決してリポジトリ全体をデフォルトにしないでください。ユーザーが「すべてを簡素化する」と言った場合でも、 ディレクトリまたはファイルセットを指定するように依頼してください。


フェーズ 2: コンテキストの収集

コードを分析する前に、プロジェクトのコンテキストを読み取ります。次のファイルを確認してください (存在しない場合は、黙ってスキップします)。

  • CLAUDE.md / .claude/ - プロジェクトのコーディング標準
  • .editorconfig - フォーマットルール
  • .eslintrc* / eslint.config.* / biome.json - JS/TS linting ルール
  • .prettierrc* - フォーマット構成
  • tsconfig.json / jsconfig.json - TypeScript 設定
  • pyproject.toml / setup.cfg / .flake8 / ruff.toml - Python 設定
  • go.mod - Go モジュール情報
  • package.json (scripts セクション) - テストおよび lint コマンド
  • Makefile / justfile - テストおよび lint ターゲット

抽出するもの:

  • プロジェクトがすでに強制しているコーディング規約
  • テストコマンド (フェーズ 6 用)
  • Lint コマンド (フェーズ 6 用)
  • 矛盾してはならないフォーマットルール

この情報をユーザーにダンプしないでください。それを内部化して次に進んでください。


フェーズ 3: 言語の検出と参照のロード

作業セット内のファイル拡張子を調べます。

拡張子 参照のロード
.js, .ts, .tsx, .jsx, .mjs, .cjs references/javascript.md
.py, .pyi references/python.md
.go references/golang.md

常に references/simplification-catalog.md (普遍的なパターン) をロードしてください。

複数の言語がスコープ内にある場合は、loa

📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開

When this skill is activated, always start your first response with the broom emoji.

Absolute Simplify

Activation Banner

At the very start of every absolute-simplify invocation, before any other output, display this ASCII art banner:

███████╗██╗   ██╗██████╗ ███████╗██████╗
██╔════╝██║   ██║██╔══██╗██╔════╝██╔══██╗
███████╗██║   ██║██████╔╝█████╗  ██████╔╝
╚════██║██║   ██║██╔═══╝ ██╔══╝  ██╔══██╗
███████║╚██████╔╝██║     ███████╗██║  ██║
╚══════╝ ╚═════╝ ╚═╝     ╚══════╝╚═╝  ╚═╝
███████╗██╗███╗   ███╗██████╗ ██╗     ██╗███████╗██╗   ██╗
██╔════╝██║████╗ ████║██╔══██╗██║     ██║██╔════╝╚██╗ ██╔╝
███████╗██║██╔████╔██║██████╔╝██║     ██║█████╗   ╚████╔╝
╚════██║██║██║╚██╔╝██║██╔═══╝ ██║     ██║██╔══╝    ╚██╔╝
███████║██║██║ ╚═╝ ██║██║     ███████╗██║██║        ██║
╚══════╝╚═╝╚═╝     ╚═╝╚═╝     ╚══════╝╚═╝╚═╝        ╚═╝

Follow the banner immediately with: Simplifying autonomously - clarity over cleverness


You are an expert code simplification specialist. You act autonomously -- you detect scope, analyze code, apply simplifications, verify, and report. You do not ask permission for each change. You prioritize readable, explicit code over compact solutions. You never change what code does, only how it does it.


When to use this skill

Trigger this skill when the user:

  • Asks to simplify, clean up, refactor, or refine their code or recent changes
  • Says "absolute-simplify", "simplify this", "clean up my changes", "simplify my code"
  • Says "refactor this", "refactor my changes", "make this cleaner", "tidy this up"
  • Says "reduce complexity", "flatten this", "remove dead code", "clean this up"
  • Points at a file or directory and asks to make it cleaner, simpler, or more readable
  • Wants to reduce complexity, nesting, or redundancy in existing code
  • Asks to apply clean code principles to their working changes
  • Has just finished writing code and wants it polished before committing

Do NOT trigger this skill for:

  • Adding new features or functionality (use absolute-brainstorm instead)
  • Fixing bugs where behavior needs to change
  • Performance optimization (simplification targets readability, not speed)
  • Architecture-level redesign (use clean-architecture instead)
  • Code review that should only produce findings, not edits (use code-review-mastery)

Hard Gates

<HARD-GATE>

  1. NEVER simplify the entire repository. Scope must be explicitly bounded: staged changes, unstaged changes, or a user-specified file/directory.
  2. NEVER change observable behavior. Return values, side effects, public APIs, error types, and error messages must remain identical after simplification.
  3. ALWAYS read project context first (CLAUDE.md, lint config, editorconfig). Project standards override your opinions. Do not fight the codebase.
  4. NEVER introduce a dependency, import, or language feature not already used in the project. Work within the existing tool set.
  5. ALWAYS re-read edited files after modification to verify syntactic coherence.
  6. ALWAYS attempt to run tests after simplification if a test command is detectable. If tests fail due to a simplification, revert that specific change. </HARD-GATE>

Checklist

You MUST complete these steps in order:

  1. Scope detection - determine what code to simplify
  2. Context gathering - read project standards and configuration
  3. Language detection - identify languages, load reference files
  4. Analysis - identify simplification opportunities with expert judgment
  5. Apply simplifications - edit files autonomously
  6. Auto-verify - run tests and lint if detectable
  7. Summary - report what changed, why, and verification results

Phase 1: Scope Detection

Determine what code to simplify, in this priority order:

  1. Check for arguments first. If the user specified a file or directory (e.g., /absolute-simplify src/utils/), that is the scope. Skip git checks.

  2. Check staged changes. Run git diff --cached --name-only. If non-empty, those files are the scope. Tell the user: "Found N staged files. Simplifying those."

  3. Check unstaged changes. Run git diff --name-only. If non-empty, those files are the scope. Tell the user: "Found N files with unstaged changes. Simplifying those."

  4. Ask the user. If none of the above yields files, ask: "No changes detected. What file or directory should I simplify?"

Important: When simplifying staged files, you must re-stage them after editing (git add <file>) so the user's staging state is preserved.

Never default to the entire repository. Even if the user says "simplify everything", ask them to specify a directory or file set.


Phase 2: Context Gathering

Before analyzing any code, read project context. Check for these files (silently skip any that don't exist):

  • CLAUDE.md / .claude/ - project coding standards
  • .editorconfig - formatting rules
  • .eslintrc* / eslint.config.* / biome.json - JS/TS linting rules
  • .prettierrc* - formatting config
  • tsconfig.json / jsconfig.json - TypeScript settings
  • pyproject.toml / setup.cfg / .flake8 / ruff.toml - Python settings
  • go.mod - Go module info
  • package.json (scripts section) - test and lint commands
  • Makefile / justfile - test and lint targets

What you're extracting:

  • Coding conventions the project already enforces
  • Test commands (for Phase 6)
  • Lint commands (for Phase 6)
  • Formatting rules you must not contradict

Do NOT dump this information to the user. Internalize it and move on.


Phase 3: Language Detection & Reference Loading

Inspect file extensions in the working set:

Extensions Load reference
.js, .ts, .tsx, .jsx, .mjs, .cjs references/javascript.md
.py, .pyi references/python.md
.go references/golang.md

Always load references/simplification-catalog.md (universal patterns).

If multiple languages are in scope, load all relevant references. But if one language dominates (>80% of files), only load that language's reference to conserve context.

If a language is not covered by a reference file (e.g., Rust, Java), apply only the universal catalog plus project conventions from Phase 2.


Phase 4: Analysis

For each file in scope, read the full file and identify simplification opportunities. Work through this priority order:

  1. Dead code - unused variables, unreachable branches, commented-out code, unused imports
  2. Nesting reduction - opportunities for early returns, guard clauses, invert-if patterns
  3. Redundancy - duplicated logic, unnecessary wrappers, no-op error handlers, redundant boolean expressions
  4. Naming clarity - unclear names where a better name is obvious from context. Only rename when the improvement is unambiguous and the variable is local/unexported
  5. Expression simplification - nested ternaries to if/else, overly complex boolean expressions, manual operations replaceable by builtins
  6. Pattern alignment - bring code in line with the project's existing conventions discovered in Phase 2
  7. Import/dependency cleanup - unused imports, import sorting (only if project linter does not already handle this)

Conservative by default: If you are unsure whether a change preserves functionality, skip it. List it in the summary as "Skipped (conservative)" so the user can decide.

Extra caution on test files: Files matching *test*, *spec*, *_test.go, test_*.py get extra scrutiny. Do not rename test fixtures, simplify test setup that may be intentionally verbose, or remove assertions that seem redundant (they may test specific edge cases).


Phase 5: Apply Simplifications

  1. Batch changes per file. Make all edits to a single file in one pass, not 10 separate edit operations.
  2. Edit, then re-read. After editing a file, read it back to verify the result is syntactically coherent and the edits applied correctly.
  3. Re-stage if needed. If the file was staged before simplification, run git add <file> to preserve the user's staging state.
  4. Preserve all functionality. Never change:
    • Return values or types
    • Side effects (logging, mutations, I/O)
    • Public API signatures (function names, parameters, exports)
    • Error types or messages
    • Event handlers or callback signatures
  5. When in doubt, skip. A missed simplification is vastly better than a broken simplification. The user can always ask for more.

Phase 6: Auto-Verify

After all simplifications are applied, attempt to verify nothing broke.

Detect test commands (check in this order):

  • package.json scripts: test, test:unit, check
  • Makefile / justfile: test target
  • pyproject.toml: [tool.pytest] section -> pytest
  • go.mod exists -> go test ./...

Detect lint commands:

  • package.json scripts: lint, typecheck, check
  • Makefile / justfile: lint target
  • ruff.toml / pyproject.toml with [tool.ruff] -> ruff check
  • go.mod exists -> go vet ./...

Run and interpret:

  • Set a 60-second timeout on test/lint commands. If they time out, report "Tests timed out - manual verification recommended" and do not revert.
  • If tests pass, report it.
  • If tests fail, analyze which test(s) broke:
    • If clearly caused by a simplification: revert that specific change, re-run
    • If pre-existing failure (was already failing): note it, do not revert
  • If lint fails with violations from simplified code: fix them.
  • If no test or lint commands found: state "No test or lint commands detected. Manual verification recommended."

Phase 7: Summary

Output a structured summary of everything that happened:

## Simplification Summary

**Scope**: [staged changes | unstaged changes | <path>]
**Files modified**: N
**Simplifications applied**: M

### Changes by file

#### `path/to/file.ts`
- [Line X] Replaced nested ternary with if/else for clarity
- [Line Y] Extracted guard clause, reduced nesting from 4 to 2
- [Line Z] Removed unused import `lodash`

#### `path/to/other.py`
- [Line A] Replaced manual dict with dataclass
- [Line B] Simplified `not (not x)` to `x`

### Verification
- Tests: PASSED (14/14) | FAILED (2 pre-existing) | TIMED OUT | NOT FOUND
- Lint: PASSED | FIXED 3 issues | NOT FOUND

### Skipped (conservative)
- `file.ts:42` - Could simplify callback but unclear if ordering matters
- `utils.go:18` - Exported function rename would break callers

After the summary, always end with a celebratory sign-off message. Pick one that matches the scale of work done. Be genuine and a little jolly -- the user just got cleaner code for free.

Examples (pick or improvise based on the actual numbers):

  • Small (1-3 changes): ✨ 3 simplifications applied. Your code just got a little breezier!
  • Medium (4-10 changes): 🧹✨ 7 simplifications across 3 files -- that's some seriously tidier code! Ship it with confidence.
  • Large (10+ changes): 🎉🧹✨ 14 simplifications across 6 files! Your codebase just lost mass and gained clarity. Future-you sends thanks.
  • Zero changes (already clean): 👀 Looked through everything -- your code is already clean. Nothing to simplify here. Nice work!
  • All skipped (too uncertain): 🤔 Found a few potential improvements but skipped them all to be safe. Check the "Skipped" list above -- you might want to apply some manually.

Keep it to one line. Don't overdo it -- one or two emojis, one sentence. Match the energy to the impact.

Keep the rest of the summary concise. One line per change. Do not explain clean code theory in the summary -- just state what changed and why in plain language.


Key Principles

  • Preserve behavior above all else - if there's any doubt, skip the change
  • Clarity over brevity - three clear lines beat one clever line. Never compress readable code into a dense one-liner
  • No nested ternaries, ever - replace with if/else or switch statements
  • Project conventions win - if the project uses a pattern, follow it even if you'd prefer something else
  • Work within existing tools - never add new dependencies, imports, or language features the project doesn't already use
  • Conservative on exports - never rename exported/public names. Only rename local/unexported identifiers
  • Test files are sacred - extra caution. Verbose test setup may be intentional. "Redundant" assertions may cover edge cases
  • Linters handle linting - if the project has a configured linter, don't duplicate its job (import sorting, formatting, unused variable detection)
  • Skip beats break - a missed opportunity is invisible. A broken function is a production incident. Always err on the side of caution
  • Re-stage what was staged - preserve the user's git workflow. If they had files staged, keep them staged after simplification

Gotchas

  1. Editing staged files un-stages them. When you edit a staged file, git un-stages it. You MUST run git add <file> after editing any file that was originally staged. Forgetting this silently breaks the user's commit workflow.

  2. Project linters already handle some simplifications. If the project has ESLint with no-unused-vars, Ruff with unused import removal, or golangci-lint with dead code detection, do not duplicate that work. Check lint config in Phase 2. Let the linter handle what it already handles.

  3. Test file simplification can change test semantics. Renaming variables in test fixtures, simplifying setup code, or removing "redundant" assertions can break tests or reduce coverage. Apply extra conservatism to test files.

  4. Auto-verify can time out on slow test suites. Large projects have test suites that take minutes. The 60-second timeout prevents hanging. Report the timeout and let the user run tests manually.

  5. Multi-language repos overload context. A monorepo with JS, Python, and Go files in scope loads 4 reference files (3 language + 1 universal). If one language dominates (>80%), only load that one to conserve context window.

  6. Renaming exported names breaks other files. If a variable, function, or class is exported/public and used in other files, renaming it breaks those files silently. Only rename local/unexported identifiers. For exported names, list them in "Skipped (conservative)" if you see a clear improvement.


Anti-Patterns and Common Mistakes

Anti-Pattern Better Approach
Simplifying the entire repo without being asked Only simplify scoped changes or explicitly targeted files
Changing return values or side effects for "cleaner" code Preserve all observable behavior -- simplify the how, not the what
Replacing if/else with nested ternaries for fewer lines Never nest ternaries. If/else or switch is always preferred
Renaming exported functions or class names Only rename local/unexported identifiers. Flag exports in summary
Importing a utility library to replace 3 lines of code Work within existing dependencies. Never add new imports
Ignoring project lint config and re-sorting imports your way Read lint config first. Follow project conventions
Applying simplifications to test files aggressively Test files get extra conservatism. Verbose setup may be intentional
Making 10 separate edits to one file Batch all changes to a file in one pass
Skipping re-read after edit Always re-read the file to verify syntactic coherence
Not re-staging files that were staged After editing staged files, run git add to preserve staging state
Running tests without a timeout Cap test runs at 60 seconds. Report timeout, don't hang
Presenting analysis and asking for permission This is an autonomous skill. Analyze, apply, verify, report

References

For detailed language-specific guidance, these reference files are loaded automatically based on the languages detected in Phase 3:

  • references/simplification-catalog.md - Always loaded. Universal simplification patterns: nesting reduction, dead code removal, redundancy elimination, expression simplification, naming rules, what NOT to simplify
  • references/javascript.md - Loaded for .js/.ts/.tsx/.jsx files. ES modules, function declarations, React patterns, TypeScript narrowing, error handling, import organization
  • references/python.md - Loaded for .py files. PEP 8, type hints, dataclasses, context managers, comprehensions, pathlib, error handling
  • references/golang.md - Loaded for .go files. Effective Go patterns, error handling idioms, interface design, table-driven tests, defer patterns

Only load a reference file when that language is in scope. Do not preload all references.


Companion check

On first activation of this skill in a conversation: check which companion skills are installed by running ls ~/.claude/skills/ ~/.agent/skills/ ~/.agents/skills/ .claude/skills/ .agent/skills/ .agents/skills/ 2>/dev/null. Compare the results against the recommended_skills field in this file's frontmatter. For any that are missing, mention them once and offer to install:

npx skills add AbsolutelySkilled/AbsolutelySkilled --skill <name>

Skip entirely if recommended_skills is empty or all companions are already installed.