analyze-codebase-workflow
정보
이 스킬은 putior의 put_auto() 엔진을 활용하여 코드베이스를 자동으로 분석하여 워크플로우, 데이터 파이프라인, 파일 의존성을 탐지합니다. 902개의 탐지 패턴과 30개 이상의 언어를 지원하며, I/O 패턴을 소스 파일에 매핑하는 어노테이션 계획을 생성합니다. 익숙하지 않은 코드베이스를 이해하거나, 데이터 파이프라인을 감사하거나, 기존 어노테이션이 없을 때 putior 통합을 준비하는 데 사용하세요.
빠른 설치
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/analyze-codebase-workflowClaude Code에서 이 명령을 복사하여 붙여넣어 스킬을 설치하세요
문서
コードベースワークフロー分析
任意のリポジトリを調査してデータフロー、ファイルI/O、スクリプト依存関係を自動検出し、手動で精緻化するための構造化されたアノテーション計画を作成する。
使用タイミング
- 馴染みのないコードベースにオンボーディングしてデータフローを理解する必要がある時
- PUTアノテーションがまだないプロジェクトでputior統合を開始する時
- ドキュメント作成前に既存プロジェクトのデータパイプラインを監査する時
annotate-source-filesを実行する前にアノテーション計画を準備する時
入力
- 必須: 分析対象のリポジトリまたはソースディレクトリへのパス
- 任意: フォーカスする特定のサブディレクトリ(デフォルト: リポジトリ全体)
- 任意: 含めるまたは除外する言語(デフォルト: 検出されたすべて)
- 任意: 検出スコープ: 入力のみ、出力のみ、または両方(デフォルト: 両方 + 依存関係)
手順
ステップ1: リポジトリ構造を調査する
ソースファイルとその言語を特定し、putiorが何を分析できるかを理解する。
library(putior)
# List all supported languages and their extensions
list_supported_languages()
list_supported_languages(detection_only = TRUE) # Only languages with auto-detection
# Get supported extensions
exts <- get_supported_extensions()
ファイルリストを使用してリポジトリの構成を理解する:
# Count files by extension in the target directory
find /path/to/repo -type f | sed 's/.*\.//' | sort | uniq -c | sort -rn | head -20
期待結果: リポジトリに存在するファイル拡張子のリストとカウント。これらをget_supported_extensions()と照合してカバレッジを把握する。
失敗時: リポジトリにサポートされた拡張子に一致するファイルがない場合、putiorはワークフローを自動検出できない。言語はサポートされているがファイルが非標準の拡張子を使用していないか検討する。
ステップ2: 言語検出カバレッジを確認する
検出された各言語について、自動検出パターンの利用可能性を確認する。
# Check which languages have auto-detection patterns (18 languages, 902 patterns)
detection_langs <- list_supported_languages(detection_only = TRUE)
cat("Languages with auto-detection:\n")
print(detection_langs)
# Get pattern counts for specific languages found in the repo
for (lang in c("r", "python", "javascript", "sql", "dockerfile", "makefile")) {
patterns <- get_detection_patterns(lang)
cat(sprintf("%s: %d input, %d output, %d dependency patterns\n",
lang,
length(patterns$input),
length(patterns$output),
length(patterns$dependency)
))
}
期待結果: 各言語のパターン数が表示される。Rは124パターン、Pythonは159、JavaScriptは71など。
失敗時: 言語がパターンを返さない場合、手動アノテーションはサポートしているが自動検出はサポートしていない。それらのファイルは手動でアノテーションする計画を立てる。
ステップ3: 自動検出を実行する
対象ディレクトリでput_auto()を実行してワークフロー要素を発見する。
# Full auto-detection
workflow <- put_auto("./src/",
detect_inputs = TRUE,
detect_outputs = TRUE,
detect_dependencies = TRUE
)
# Exclude build scripts and test helpers from scanning
workflow <- put_auto("./src/",
detect_inputs = TRUE,
detect_outputs = TRUE,
detect_dependencies = TRUE,
exclude = c("build-", "test_helper")
)
# View detected workflow nodes
print(workflow)
# Check node count
cat(sprintf("Detected %d workflow nodes\n", nrow(workflow)))
大規模リポジトリでは、サブディレクトリごとにインクリメンタルに分析する:
# Analyze specific subdirectories
etl_workflow <- put_auto("./src/etl/")
api_workflow <- put_auto("./src/api/")
期待結果: id、label、input、output、source_fileを含むカラムを持つデータフレーム。各行は検出されたワークフローステップを表す。
失敗時: 結果が空の場合、ソースファイルに認識可能なI/Oパターンが含まれていない可能性がある。デバッグログを有効にしてみる: workflow <- put_auto("./src/", log_level = "DEBUG") でどのファイルがスキャンされ、どのパターンがマッチしたかを確認する。
ステップ4: 初期ダイアグラムを生成する
自動検出されたワークフローを可視化してカバレッジを評価し、ギャップを特定する。
# Generate diagram from auto-detected workflow
cat(put_diagram(workflow, theme = "github"))
# With source file info for traceability
cat(put_diagram(workflow, show_source_info = TRUE))
# Save to file for review
writeLines(put_diagram(workflow, theme = "github"), "workflow-auto.md")
期待結果: 検出されたノードがデータフローエッジで接続されたMermaidフローチャート。ノードには意味のある関数/ファイル名がラベル付けされているべき。
失敗時: ダイアグラムが切断されたノードを表示する場合、自動検出はI/Oパターンを見つけたが接続を推論できなかった。これは正常である — 接続は出力ファイル名と入力ファイル名のマッチングから導出される。アノテーション計画(次のステップ)がギャップに対処する。
ステップ5: アノテーション計画を作成する
発見されたものと手動アノテーションが必要なものを文書化した構造化計画を生成する。
# Generate annotation suggestions
put_generate("./src/", style = "single")
# For multiline style (more readable for complex workflows)
put_generate("./src/", style = "multiline")
# Copy suggestions to clipboard for easy pasting
put_generate("./src/", output = "clipboard")
カバレッジ評価付きで計画を文書化する:
## Annotation Plan
### Auto-Detected (no manual work needed)
- `src/etl/extract.R` — 3 inputs, 2 outputs detected
- `src/etl/transform.py` — 1 input, 1 output detected
### Needs Manual Annotation
- `src/api/handler.js` — Language supported but no I/O patterns matched
- `src/config/setup.sh` — Only 12 shell patterns; complex logic missed
### Not Supported
- `src/legacy/process.f90` — Fortran not in detection languages
### Recommended Connections
- extract.R output `data.csv` → transform.py input `data.csv` (auto-linked)
- transform.py output `clean.parquet` → load.R input (needs annotation)
期待結果: 自動検出されたファイルと手動アノテーションが必要なファイルを分離した明確な計画、各ファイルへの具体的な推奨事項付き。
失敗時: put_generate()が出力を生成しない場合、ディレクトリパスが正しく、サポートされた言語のソースファイルが含まれていることを確認する。
バリデーション
-
put_auto()が対象ディレクトリでエラーなく実行される - 検出されたワークフローに少なくとも1つのノードがある(リポジトリに認識可能なI/Oがない場合を除く)
-
put_diagram()が自動検出されたワークフローから有効なMermaidコードを生成する -
put_generate()が検出パターンのあるファイルのアノテーション提案を生成する - カバレッジ評価付きのアノテーション計画ドキュメントが作成される
よくある落とし穴
- スキャン範囲が広すぎる: リポジトリルートで
put_auto(".")を実行するとnode_modules/、.git/、venv/などが含まれる可能性がある。特定のソースディレクトリを対象にする。 - 完全なカバレッジを期待する: 自動検出はファイルI/Oとライブラリ呼び出しを見つけるが、ビジネスロジックは見つけない。40-60%のカバレッジ率が典型的であり、残りは手動アノテーションが必要。
- 依存関係を無視する:
detect_dependencies = TRUEフラグはsource()、import、require()呼び出しをキャッチしてスクリプト同士をリンクする。無効にするとファイル間の接続が失われる。 - 言語の不一致: 非標準の拡張子(例:
.Rvs.r、.jsxvs.js)のファイルは検出されない可能性がある。get_comment_prefix()を使用して拡張子が認識されるか確認する。DockerfileやMakefileのような拡張子なしファイルは正確なファイル名マッチングでサポートされている。 - 大規模リポジトリ: 100以上のソースファイルを持つリポジトリでは、ダイアグラムの可読性を保つためにモジュール/ディレクトリ単位で分析する。
関連スキル
install-putior— 前提条件: putiorを先にインストールする必要があるannotate-source-files— 次のステップ: 計画に基づいて手動アノテーションを追加するgenerate-workflow-diagram— アノテーション完了後に最終ダイアグラムを生成するconfigure-putior-mcp— インタラクティブな分析セッションにMCPツールを使用する
GitHub 저장소
연관 스킬
qmd
개발qmd는 BM25, 벡터 임베딩, 재순위화를 결합한 하이브리드 검색을 통해 로컬 파일을 색인화하고 검색할 수 있는 로컬 검색 및 색인화 CLI 도구입니다. 명령줄 사용과 Claude 통합을 위한 MCP(Model Context Protocol) 모드를 모두 지원합니다. 이 도구는 임베딩에 Ollama를 사용하고 색인을 로컬에 저장하여 터미널에서 직접 문서나 코드베이스를 검색하는 데 이상적입니다.
subagent-driven-development
개발이 스킬은 각 독립적인 작업마다 새로운 하위 에이전트를 배치하고 작업 사이에 코드 리뷰를 진행하여 구현 계획을 실행합니다. 이 리뷰 프로세스를 통해 품질 게이트를 유지하면서 빠른 반복 작업을 가능하게 합니다. 동일한 세션 내에서 대부분 독립적인 작업을 진행할 때 내장된 품질 검증과 함께 지속적인 진행을 보장하기 위해 사용하세요.
mcporter
개발mcporter 스킬은 개발자가 Claude에서 직접 Model Context Protocol(MCP) 서버를 관리하고 호출할 수 있도록 합니다. 이 스킬은 사용 가능한 서버를 나열하고, 인수를 사용해 해당 서버의 도구를 호출하며, 인증 및 데몬 생명주기를 처리하는 명령어를 제공합니다. 개발 워크플로우에서 MCP 서버 기능을 통합하고 테스트할 때 이 스킬을 사용하세요.
adk-deployment-specialist
개발이 스킬은 A2A 프로토콜을 사용하여 Vertex AI ADK 에이전트를 배포하고 오케스트레이션하며, AgentCard 검색, 작업 제출, 코드 실행 샌드박스 및 메모리 뱅크와 같은 지원 도구를 관리합니다. Python, Java 또는 Go 언어로 순차, 병렬 또는 루프 오케스트레이션 패턴을 갖춘 다중 에이전트 시스템 구축을 가능하게 합니다. Google Cloud에서 ADK 에이전트 배포 또는 에이전트 워크플로우 오케스트레이션을 요청받았을 때 사용하세요.
