chrysopoeia
について
クリソペイアは、既存の機能的なコードベースを最適化・改良するためのClaudeスキルです。パフォーマンスを体系的に向上させ、APIを洗練させ、デッドコードを除去することで、全面的な書き直しをせずに最大の価値を引き出します。動作の遅いコードを磨き上げたり、バンドルサイズを削減したり、最良のパターンを増幅させてリリース準備を整えたりするためにご利用ください。
クイックインストール
Claude Code
推奨npx skills add pjt222/agent-almanac -a claude-code/plugin add https://github.com/pjt222/agent-almanacgit clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/chrysopoeiaこのコマンドをClaude Codeにコピー&ペーストしてスキルをインストールします
ドキュメント
Chrysopoeia
Systematically extract maximum value from existing code — identify what's golden (high-value, well-designed), what's lead (resource-heavy, poorly optimized), and what's dross (dead weight). Then amplify the gold, transmute the lead, and remove the dross.
When to Use
- Optimizing a working but sluggish codebase for performance
- Refining an API surface that has accumulated cruft over iterations
- Reducing bundle size, memory footprint, or startup time
- Preparing code for open-source release (extracting the valuable core)
- When code works correctly but doesn't shine — it needs polish, not rewrite
Inputs
- Required: Codebase or module to optimize (file paths)
- Required: Value metric (performance, API clarity, bundle size, readability)
- Optional: Profiling data or benchmarks showing current performance
- Optional: Budget or target (e.g., "reduce bundle by 40%", "sub-100ms response")
- Optional: Constraints (can't change public API, must maintain backward compat)
Procedure
Step 1: Assay — Classify the Material
Systematically classify every element by its value contribution.
- Define the value metric from Inputs (performance, clarity, size, etc.)
- Inventory the codebase elements (functions, modules, exports, dependencies)
- Classify each element:
Value Classification:
+--------+---------------------------------------------------------+
| Gold | High value, well-designed. Amplify and protect. |
| Silver | Good value, minor imperfections. Polish. |
| Lead | Functional but heavy — poor performance, complex API. |
| | Transmute into something lighter. |
| Dross | Dead code, unused exports, vestigial features. |
| | Remove entirely. |
+--------+---------------------------------------------------------+
- For performance optimization, profile first:
- Identify hot paths (where time is spent)
- Identify cold paths (rarely executed code that may be dross)
- Measure memory allocation patterns
- Produce the Assay Report: element-by-element classification with evidence
Got: Every significant element classified with evidence. Gold elements are identified for protection during optimization. Lead elements are prioritized by impact.
If fail: If profiling tools aren't available, use static analysis: function complexity (cyclomatic), dependency count, and code size as proxies. If the codebase is too large, focus on the critical path first.
Step 2: Refine — Amplify the Gold
Protect and enhance the highest-value elements.
- For each Gold element:
- Ensure it has comprehensive tests (these are your most valuable assets)
- Document its interface clearly if not already done
- Consider whether it could be extracted as a reusable module
- For each Silver element:
- Apply targeted improvements (better naming, clearer types, minor optimizations)
- Bring test coverage to Gold-level
- Resolve minor code smells without restructuring
- Do not modify Gold/Silver behavior — only improve their polish and protection
Got: Gold and Silver elements are better tested, documented, and protected. No behavioral changes, only quality improvements.
If fail: If a "Gold" element reveals hidden problems during closer inspection, reclassify it. Better to be honest about value than to protect flawed code.
Step 3: Transmute — Convert Lead to Gold
Transform heavy, inefficient elements into optimized equivalents.
- Prioritize Lead elements by impact (highest resource consumption first)
- For each Lead element, choose a transmutation strategy:
- Algorithm optimization: Replace O(n^2) with O(n log n), eliminate redundant computation
- Caching/memoization: Store expensive results that are requested repeatedly
- Lazy evaluation: Defer computation until results are needed
- Batch processing: Combine many small operations into fewer large ones
- Structural simplification: Reduce cyclomatic complexity, flatten deep nesting
- Apply the strategy and measure the improvement:
- Before/after benchmarks for performance changes
- Before/after line counts for complexity changes
- Before/after dependency counts for coupling changes
- Verify behavioral equivalence after each transmutation
Got: Measurable improvement on the target value metric. Each transmuted element performs better than its Lead predecessor while maintaining identical behavior.
If fail: If a Lead element resists optimization within its current interface, consider whether the interface itself is the problem. Sometimes the transmutation requires changing how the element is called, not how it's implemented.
Step 4: Purge — Remove the Dross
Eliminate dead weight systematically.
- For each Dross element, verify it's truly unused:
- Search for all references (grep, IDE find-usages)
- Check for dynamic references (string-based dispatch, reflection)
- Check for external consumers (if the code is a library)
- Remove confirmed dross:
- Delete dead code, unused exports, vestigial features
- Remove unused dependencies from package manifests
- Clean up configuration for removed features
- Verify nothing breaks after each removal (run tests)
- Document what was removed and why (in commit messages, not in code)
Got: The codebase is lighter. Bundle size, dependency count, or code volume measurably reduced. All tests still pass.
If fail: If removing an element breaks something, it wasn't dross — reclassify it. If dynamic references make it hard to verify usage, add temporary logging before deletion to confirm no runtime access.
Step 5: Verify — Weigh the Gold
Measure the overall improvement.
- Run the same benchmarks/metrics used in Step 1
- Compare before/after on the target value metric
- Document the chrysopoeia results:
- Elements refined (Gold/Silver improvements)
- Elements transmuted (Lead → Gold conversions with measurements)
- Elements purged (Dross removed with size/count impact)
- Overall metric improvement (e.g., "47% faster", "32% smaller bundle")
Got: Measurable, documented improvement on the target value metric. The codebase is demonstrably more valuable than before.
If fail: If overall improvement is marginal, the original code may have been better than assumed. Document what was learned — knowing that code is already near-optimal is itself valuable.
Validation Checklist
- Assay report classifies all significant elements with evidence
- Gold elements have comprehensive tests and documentation
- Lead transmutations show measurable before/after improvement
- Dross removal verified with reference checks before deletion
- All tests pass after each stage
- Overall improvement measured and documented
- No behavioral regressions introduced
- Constraints from Inputs are satisfied
Pitfalls
- Premature optimization: Optimizing without profiling. Always measure first, optimize the hot paths
- Polishing dross: Spending effort improving code that should be deleted. Classify before refining
- Breaking Gold: Optimization that degrades the best code. Gold elements should only get better, never worse
- Unmeasured claims: "It feels faster" is not chrysopoeia. Every improvement must be quantified
- Optimizing cold paths: Spending effort on code that runs once at startup when the bottleneck is the request loop
Related Skills
athanor— Full four-stage transformation when chrysopoeia reveals the code needs restructuring, not optimizationtransmute— Targeted conversion when a Lead element needs a paradigm shiftreview-software-architecture— Architecture-level evaluation that complements code-level chrysopoeiareview-data-analysis— Data pipeline optimization parallels code optimization
GitHub リポジトリ
関連スキル
executing-plans
デザインexecuting-plansスキルは、完全な実装計画があり、それを管理されたバッチでレビューチェックポイントを設けながら実行する場合に使用します。このスキルは計画を読み込んで批判的にレビューした後、小さなバッチ(デフォルトは3タスク)でタスクを実行し、各バッチの間に進捗状況を報告してアーキテクトのレビューを受けます。これにより、品質管理チェックポイントが組み込まれた体系的な実装が保証されます。
requesting-code-review
デザインこのスキルは、コードレビュアーサブエージェントを起動し、処理を進める前に要件に対してコード変更を分析します。タスク完了後、主要な機能の実装後、またはmainブランチへのマージ前などに使用すべきです。このレビューは、現在の実装と元の計画を比較することで、問題を早期に発見するのに役立ちます。
connect-mcp-server
デザインこのスキルは、開発者がHTTP、stdio、またはSSEトランスポートを使用してMCPサーバーをClaude Codeに接続するための包括的なガイドを提供します。GitHub、Notion、カスタムAPIなどの外部サービスを統合するためのインストール、設定、認証、セキュリティについて解説しています。MCP統合のセットアップ、外部ツールの設定、またはClaudeのModel Context Protocolを扱う際にご利用ください。
web-cli-teleport
デザインこのスキルは、タスク分析に基づいて開発者がClaude Code WebとCLIインターフェースの選択を支援し、これらの環境間でのシームレスなセッションテレポーテーションを可能にします。Web、CLI、モバイル環境を切り替える際のセッション状態とコンテキストを管理することで、ワークフローを最適化します。様々な段階で異なるツールを必要とする複雑なプロジェクトにご活用ください。
