tech-debt-analyzer
コードベースの技術的負債を分析し、品質上の問題を文書化する際に使用するスキルです。コードスメルやアーキテクチャの問題、依存関係の課題、ドキュメント不足、セキュリティ脆弱性の特定から、技術的負債レジスターの作成やコードの保守性評価まで幅広く対応します。
description の原文を見る
This skill should be used when analyzing technical debt in a codebase, documenting code quality issues, creating technical debt registers, or assessing code maintainability. Use this for identifying code smells, architectural issues, dependency problems, missing documentation, security vulnerabilities, and creating comprehensive technical debt documentation.
SKILL.md 本文
Technical Debt Analyzer
Overview
JavaScript/TypeScript コードベースの技術的負債を体系的に特定、分析、文書化、追跡します。このスキルは、自動分析ツール、包括的な負債分類フレームワーク、技術的負債レジスタを維持するための文書テンプレートを提供します。
Core Workflow
1. Automated Analysis
コードベース全体の技術的負債インジケータを検出するために自動スクリプトを実行します。
Code Smell Detection
自動検出器を使用してコード品質の問題を特定します:
python3 scripts/detect_code_smells.py src --output markdown
スクリプトは以下を分析します:
- Large Files: 500行を超えるファイル
- Complex Functions: 高い循環的複雑度(>10)または長い関数(>50行)
- Debt Markers: TODO、FIXME、HACK、XXX、BUG コメント
- Console Statements: コードに残されたデバッグステートメント
- Weak Typing: TypeScript での
any型の使用 - Long Parameters: 5個以上のパラメータを持つ関数
- Deep Nesting: 4レベル以上のネストされたコード
- Magic Numbers: ハードコードされた数値
Output Example:
# Technical Debt Analysis Report
**Files Analyzed:** 127
**Total Lines:** 15,432
**Total Issues:** 89
### Issues by Severity
- HIGH: 23
- MEDIUM: 41
- LOW: 25
## Large Files (12 issues)
### High Priority
- src/components/Dashboard.tsx (847 lines): File too large
- src/services/DataProcessor.ts (623 lines): File too large
...
Dependency Analysis
負債インジケータについての依存関係を確認します:
python3 scripts/analyze_dependencies.py package.json
スクリプトは以下を特定します:
- Deprecated Packages: 既知の非推奨ライブラリ(request、tslint など)
- Duplicate Functionality: 同じ目的を提供する複数のパッケージ
- Version Issues: 不適切に緩い、または厳しいバージョン制約
- Security Concerns: 既知の脆弱なパッケージ(監査データが必要)
Output Example:
# Dependency Analysis Report
**Package:** expense-tracker
**Dependencies:** 24
**Dev Dependencies:** 18
**Total Issues:** 7
## Deprecated/Outdated Packages (3)
### request [HIGH]
Using deprecated package - use axios, node-fetch, or got instead
- Current version: ^2.88.0
## Duplicate Functionality (2)
### HTTP client [MEDIUM]
Multiple packages for HTTP client: axios, node-fetch
2. Manual Code Review
人間の判断が必要な問題のため、自動分析を手動レビューで補完します。
Review Focus Areas
Architectural Debt:
- コンポーネント間の密結合
- 欠落した抽象化
- 関心の分離が不十分
- 循環依存
Test Debt:
- クリティカルパスのテストカバレッジ不足
- 実装と密結合した脆弱なテスト
- 統合テストまたは E2E テストがない
- テスト実行速度が遅い
Documentation Debt:
- README またはセットアップ手順がない
- アーキテクチャ文書がない
- API ドキュメントが古い
- 主要な決定の ADR がない
Performance Debt:
- N+1 クエリの問題
- 非効率なアルゴリズム
- メモリリーク
- 大きなバンドルサイズ
Security Debt:
- 入力検証がない
- 認証/認可がない
- SQL インジェクション脆弱性
- XSS 脆弱性
- シークレットの露出
3. Categorize and Assess
標準化された負債カテゴリを使用して結果を整理します。
Debt Categories
包括的な詳細については references/debt_categories.md を参照してください:
- Code Quality Debt: コードスメル、複雑性、重複
- Architectural Debt: 構造、結合、抽象化
- Test Debt: カバレッジ不足、脆弱なテスト
- Documentation Debt: ドキュメント欠落または古い
- Dependency Debt: 古い、または問題のある依存関係
- Performance Debt: 非効率性とボトルネック
- Security Debt: 脆弱性と弱点
- Infrastructure Debt: DevOps とデプロイメントの問題
- Design Debt: UI/UX 不一致
Severity Assessment
影響と緊急性に基づいて深刻度を割り当てます:
Critical:
- セキュリティ脆弱性
- 本番環境を壊す問題
- データ損失リスク
- Action: 即座の修正が必要
High:
- 大きなパフォーマンス問題
- 機能をブロックするアーキテクチャの問題
- 高リスクのテストされないコード
- Action: 現在のスプリントまたは次のスプリント内に修正
Medium:
- 頻繁に変更されるファイルのコード品質の問題
- ドキュメント欠落
- 古い依存関係(セキュリティ以外)
- Action: 四半期内に対処
Low:
- マイナーなコードスメル
- 最適化機会
- あると良い改善
- Action: 都合がつくときに対処
Priority Matrix
| Impact / Effort | Low Effort | Medium Effort | High Effort |
|---|---|---|---|
| High Impact | Do First | Do Second | Plan & Do |
| Medium Impact | Do Second | Plan & Do | Consider |
| Low Impact | Quick Win | Consider | Avoid |
4. Document Findings
技術的負債の包括的な文書を作成します。
Technical Debt Register
提供されたテンプレートを使用して負債レジスタを保守します:
Template Location: assets/DEBT_REGISTER_TEMPLATE.md
Structure:
## DEBT-001: Complex UserService with 847 lines
**Category:** Code Quality
**Severity:** High
**Location:** src/services/UserService.ts
**Description:**
UserService has grown to 847 lines with multiple responsibilities
including authentication, profile management, and notification handling.
**Impact:**
- Business: Slows down feature development by 30%
- Technical: Difficult to test, high bug rate
- Risk: Changes frequently break unrelated functionality
**Proposed Solution:**
Split into separate services:
- AuthenticationService
- UserProfileService
- NotificationService
**Effort Estimate:** 3 days
**Priority Justification:** High churn area blocking new features
**Target Resolution:** Sprint 24
Register Sections:
- Active Debt Items: 注意が必要な現在の技術的負債
- Resolved Items: 修正された負債の履歴記録
- Won't Fix Items: 許容可能なトレードオフとして受け入れられた負債
- Trends: カテゴリ、深刻度、年齢による分析
- Review Schedule: 定期的なメンテナンス計画
Architecture Decision Records (ADRs)
将来の負債を防ぐために ADRs を使用して主要な技術的決定を文書化します。
Template Location: assets/ADR_TEMPLATE.md
When to Create ADRs:
- フレームワークまたはライブラリの選択
- アーキテクチャの変更
- 主要なリファクタリング決定
- テクノロジーマイグレーション
- パフォーマンス最適化戦略
Example:
# ADR-003: Migrate from Moment.js to date-fns
**Status:** Accepted
**Date:** 2024-01-15
## Context
Moment.js is deprecated and increases bundle size by 67KB.
Team needs a modern date library with tree-shaking support.
## Decision
Migrate to date-fns for date manipulation.
## Consequences
- Positive: Reduce bundle by 60KB, modern API, active maintenance
- Negative: Migration effort, learning curve for team
- Technical Debt: None - this resolves existing dependency debt
5. Prioritize and Plan
技術的負債に対応するための実行可能な計画を作成します。
Prioritization Approach
- Critical Items: 現在のスプリントに即座に追加
- High Items: スプリント計画に含める
- Medium Items: 四半期ロードマップに追加
- Low Items: 関連するワーク中の機会修正
Time Allocation
Recommended Allocation:
- スプリント容量の 20% を技術的負債に
- 交互スプリント:機能スプリント / 負債スプリント
- 専用四半期「テックヘルス」スプリント
Tracking Progress
時間をかけて負債削減を監視します:
Metrics to Track:
- 総負債項目(トレンドは下向き)
- 深刻度別の負債(クリティカルは 0 であるべき)
- 負債年齢(古い負債は懸念事項)
- 解決率(スプリント当たり修正された項目)
- 新しい負債率(スプリント当たり追加された項目)
6. Prevention Strategies
新しい技術的負債を最小化するプラクティスを実装します。
Code Review Checklist
PR を承認する前に以下を確認します:
- コードスメルが導入されていない(複雑性、サイズ、ネスト)
- テストが追加/更新され、適切なカバレッジがある
- ドキュメント更新(README、コメント、ADRs)
- セキュリティ脆弱性がない
- パフォーマンス影響を考慮
- 正当化なしの新しい依存関係がない
- チーム規約とパターンに従う
Automated Prevention
Linting and Formatting:
{
"rules": {
"complexity": ["error", 10],
"max-lines-per-function": ["error", 50],
"max-params": ["error", 5],
"max-depth": ["error", 4],
"no-console": "warn"
}
}
Required Checks:
- TypeScript strict モード有効
- 最小テストカバレッジしきい値(80%)
- 高深刻度のセキュリティ脆弱性がない
- バンドルサイズ制限を施行
Regular Maintenance
Weekly:
- TODO/FIXME コメント確認とトリアージ
- 新しい知見で負債レジスタを更新
Monthly:
- 依存関係更新(セキュリティパッチ)
- 負債レジスタレビュー
- 優先度の高い項目の修正計画
Quarterly:
- コードベース全体の負債分析
- アーキテクチャレビュー
- 主要な依存関係更新
- トレンド分析と戦略調整
Decision Tree
状況に基づいてこのワークフローに従います:
新しい分析を開始していますか? → 自動スクリプト実行(detect_code_smells.py、analyze_dependencies.py) → 高深刻度の問題について出力をレビュー → スクリプトが検出できない領域の手動レビュー → ドキュメンテーションステップに進む
結果を文書化していますか? → DEBT_REGISTER_TEMPLATE.md をプロジェクトルートにコピー → 各負債項目を全詳細で追加 → タイプ別にカテゴリ化し深刻度を割り当て → 工数を見積もりと優先順位付け → 計画ステップに進む
負債削減を計画していますか? → 優先度マトリックス(影響/工数)でソート → スプリント容量を配分(推奨 20%) → 優先度の高い項目のチケットを作成 → 定期的なレビューをスケジュール
アーキテクチャの決定を下していますか? → ADR_TEMPLATE.md をコピー → コンテキスト、オプション、決定を文書化 → 発生する負債を特定 → 該当する場合は負債レジスタに追加
新しい負債を防いでいますか? → コードレビューチェックリストを実装 → 自動リント/テストを構成 → 定期的なメンテナンススケジュールを設定 → 時間をかけてメトリックスを監視
Tools and Scripts
detect_code_smells.py
Purpose: 自動コード品質分析
Usage:
python3 scripts/detect_code_smells.py [src-dir] [--output json|markdown]
Detects:
- 大きなファイル(>500行)
- 複雑な関数(複雑度 >10)
- 技術的負債マーカー(TODO、FIXME、HACK)
- console ステートメント
- 弱い TypeScript タイピング
- 長いパラメータリスト(>5 params)
- 深いネスト(>4レベル)
- マジックナンバー
Output: プログラム的な処理のための Markdown レポートまたは JSON
analyze_dependencies.py
Purpose: 依存関係の健全性分析
Usage:
python3 scripts/analyze_dependencies.py [package.json-path]
Detects:
- 非推奨パッケージ(request、tslint、node-sass など)
- 重複した機能(複数の日付ライブラリ、http クライアントなど)
- 安全でないバージョン制約(*、latest)
- 過度に厳しいバージョン(^ または ~ なしの完全指定)
Output: 推奨事項付き Markdown レポート
Reference Documentation
debt_categories.md
以下を含む技術的負債タイプの包括的なガイド:
- 9つの主要な負債カテゴリ
- 各カテゴリのインジケータと例
- 影響評価基準
- 深刻度レベルの定義
- 測定メトリックス
- 予防戦略
Load this reference when:
- 特定の負債タイプの詳細な例が必要
- 深刻度と影響を評価
- 根本原因を理解
- 予防戦略を計画
Documentation Templates
DEBT_REGISTER_TEMPLATE.md
以下を含む完全な技術的負債レジスタテンプレート:
- 負債項目構造
- ステータストラッキング
- 影響評価フォーマット
- トレンド分析セクション
- レビュースケジュール
Use this template to:
- 新しい負債レジスタを開始
- 負債文書を標準化
- チーム/プロジェクト全体の負債をトラッキング
ADR_TEMPLATE.md
以下を含む Architecture Decision Record テンプレート:
- コンテキストと問題ステートメント
- 検討されたオプション
- 決定の根拠
- 結果(肯定的と否定的)
- 実装計画
Use this template to:
- 主要な技術的決定を文書化
- 将来の「なぜこれをしたのか?」という質問を防ぐ
- 決定によって発生した技術的負債をトラッキング
Best Practices
Analysis Best Practices
- 定期的に分析を実行(週 1 回または隔週)
- 自動 + 手動レビューを組み合わせて包括的なカバレッジを実現
- 最大限の影響のために高チャーン領域に焦点を当てる
- チームを含める負債特定に
- 客観的であるすべてのコードベースには負債がある
Documentation Best Practices
- 具体的であるファイル名、行番号、例を含める
- 影響を説明するなぜこれが重要なのか?
- 解決策を提案する不平を言うだけではなく、修正を示唆
- 工数を見積もる優先順位付けに役立つ
- トレンドをトラッキング負債は増加または減少していますか?
Remediation Best Practices
- クリティカル項目を即座に修正特にセキュリティ
- 一貫した時間を割り当てるスプリント容量の 20%
- 勝利を祝う負債削減をトラッキングおよび認識
- 完璧を良いことの敵にしない増分改善
- 新しい負債を防ぐ修正より簡単
Communication Best Practices
- 負債を可視化するメトリックスをステークホルダーと共有
- 影響を教育する負債をビジネス成果に接続
- 買収を得る負債削減の ROI を説明
- 定期的な更新スプリントレビューに含める
- 非難を避ける改善に焦点を当て、落ち度ではなく
Example Workflow
分析から解決までの完全なワークフロー:
Week 1: Analysis
# Run automated analysis
python3 scripts/detect_code_smells.py src --output markdown > debt_analysis.md
python3 scripts/analyze_dependencies.py package.json >> debt_analysis.md
# Manual review of critical areas
# - Authentication logic
# - Payment processing
# - Data models
Week 1-2: Documentation
# Create debt register from template
cp assets/DEBT_REGISTER_TEMPLATE.md TECHNICAL_DEBT.md
# Add findings to register with:
# - Category and severity
# - Impact assessment
# - Effort estimation
# - Priority assignment
Week 2: Prioritization
# Team review session
# - Review all high/critical items
# - Discuss quick wins (high impact, low effort)
# - Allocate sprint capacity
# - Create tickets for top 5 items
Weeks 3-6: Remediation
# Sprint work
# - Fix 2-3 debt items per sprint
# - Update debt register as items resolved
# - Create ADRs for major refactoring decisions
# - Monitor metrics
Monthly: Review
# Trend analysis
# - Total debt (should decrease)
# - New debt rate (should be low)
# - Age of oldest items (should decrease)
# - Categories most affected
# Adjust strategy based on trends
Success Metrics
負債削減の有効性を測定するためにこれらのメトリックスをトラッキングします:
Quantity Metrics:
- 総負債項目(トレンドは下向き)
- 深刻度別の負債(クリティカルはゼロ)
- 1000 行当たりの負債項目
Quality Metrics:
- テストカバレッジ(トレンドは上向き)
- 循環的複雑度(トレンドは下向き)
- 平均ファイル/関数サイズ(安定または減少)
Velocity Metrics:
- スプリント当たりの解決された負債項目
- スプリント当たりの新しい負債項目(低いべき)
- 解決時間(減少するべき)
Business Metrics:
- バグ率(減少するべき)
- 機能配信速度(増加するべき)
- 開発者満足度(増加するべき)
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- ailabs-393
- ライセンス
- MIT
- 最終更新
- 不明
Source: https://github.com/ailabs-393/ai-labs-claude-skills / ライセンス: MIT
関連スキル
secure-code-guardian
認証・認可の実装、ユーザー入力の保護、OWASP Top 10の脆弱性対策が必要な場合に使用します。bcrypt/argon2によるパスワードハッシング、パラメータ化ステートメントによるSQLインジェクション対策、CORS/CSPヘッダーの設定、Zodによる入力検証、JWTトークンの構築などのカスタムセキュリティ実装に対応します。認証、認可、入力検証、暗号化、OWASP Top 10対策、セッション管理、セキュリティ強化全般で活用できます。ただし、構築済みのOAuth/SSO統合や単独のセキュリティ監査が必要な場合は、より特化したスキルの検討をお勧めします。
claude-authenticity
APIエンドポイントが本物のClaudeによって支えられているか(ラッパーやプロキシ、偽装ではないか)を、claude-verifyプロジェクトを模した9つの重み付きルールベースチェックで検証できます。また、Claudeの正体を上書きしているプロバイダーから注入されたシステムプロンプトも抽出します。完全に自己完結しており、httpx以外の追加パッケージは不要です。Claude APIキーまたはエンドポイントを検証したい場合、サードパーティのClaudeサービスが本物か確認したい場合、APIプロバイダーのClaude正当性を監査したい場合、複数モデルを並行してテストしたい場合、またはプロバイダーが注入したシステムプロンプトを特定したい場合に使用できます。
anth-security-basics
Anthropic Claude APIのセキュリティベストプラクティスを適用し、キー管理、入力値の検証、プロンプトインジェクション対策を実施します。APIキーの保護、Claudeに送信する前のユーザー入力検証、コンテンツセーフティガードレールの実装が必要な場合に活用できます。「anthropic security」「claude api key security」「secure anthropic」「prompt injection defense」といったフレーズでトリガーされます。
x-ray
x-ray.mdプレ監査レポートを生成します。概要、強化された脅威モデル(プロトコルタイプのプロファイリング、Gitの重み付け攻撃面分析、時間軸リスク分析、コンポーザビリティ依存関係マッピング)、不変条件、統合、ドキュメント品質、テスト分析、開発者・Gitの履歴をカバーしています。「x-ray」「audit readiness」「readiness report」「pre-audit report」「prep this protocol」「protocol prep」「summarize this protocol」のキーワードで実行されます。
semgrep
Semgrepスタティック分析スキャンを実行し、カスタム検出ルールを作成します。Semgrepでのコードスキャン、セキュリティ脆弱性の検出、カスタムYAMLルールの作成、または特定のバグパターンの検出が必要な場合に使用します。重要:ユーザーが「バグをスキャンしたい」「コード品質を確認したい」「脆弱性を見つけたい」「スタティック分析」「セキュリティlint」「コード監査」または「コーディング標準を適用したい」と尋ねた場合も、Semgrepという名称を明記していなくても、このスキルを使用してください。Semgrepは30以上の言語に対応したパターンベースのコードスキャンに最適なツールです。
ghost-bits-cast-attack
Java「ゴーストビッツ」/キャストアタック プレイブック(Black Hat Asia 2026)。16ビット文字が8ビットバイトに暗黙的に縮小されるJavaサービスへの攻撃時に使用します。WAF/IDSを回避して、SQLインジェクション、デシリアライゼーション型RCE、ファイルアップロード(Webシェル)、パストトラバーサル、CRLF インジェクション、リクエストスマグリング、SMTPインジェクションを実行できます。Tomcat、Spring、Jetty、Undertow、Vert.x、Jackson、Fastjson、Apache Commons BCEL、Apache HttpClient、Angus Mail、JDK HttpServer、Lettuce、Jodd、XMLWriterに影響し、WAFバイパスにより多くの「パッチ済み」CVEを再度有効化します。