portfolio-artifact について
portfolio-artifactは、Go-To-Market Engineer向けに開発セッションの成果、コスト、効率を記録するスキルです。週次ダイジェストやエグゼクティブ向けレポートを作成し、指標をローカルのJSONLファイルに保存します。
主な機能
- 01コミット、変更ファイル、行数を記録
- 02機能、修正、テスト変更を集計
- 03機能や修正のコスト指標を算出
- 04週次ダイジェストとエグゼクティブレポートを作成
- 05日次指標をJSONLに保存
活用シーン
- 01週ごとの機能提供とバグ修正を振り返る
- 02関係者向けのエンジニアリング成果レポートを作成
- 03プロジェクトのコストと提供傾向を比較
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ scientiacapital/ skills --skill portfolio-artifactインストール後、Claude Code で/portfolio-artifactを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
config.jsonreference/metrics-guide.mdreport-templates.md詳細
開発セッションから Go-To-Market エンジニアのポートフォリオ指標を自動的に抽出します。出荷した行数、変更したファイル、修正したバグ、追加したテスト、マージした PR、節約した時間、機能あたりのコストを記録します。エグゼクティブサマリーと週次ダイジェストを生成します。
<quick_start> 今日の指標を記録する:
# Quick session stats
echo "Commits: $(git log --since='today 00:00' --oneline | wc -l | tr -d ' ')"
echo "Files changed: $(git diff --stat $(git log --since='today 00:00' --format='%H' | tail -1)..HEAD 2>/dev/null | tail -1)"
週次レポートを生成する:
cat ~/.claude/portfolio/daily-metrics.jsonl | jq -s 'map(select(.date >= "'$(date -v-7d +%Y-%m-%d)'"))'
</quick_start>
<success_criteria>
- End Day プロトコルにより日次指標が自動的に記録される(コミット、機能、修正、コスト)
- 派生指標が計算される: 機能あたりのコスト、バグ修正あたりのコスト、ドルあたりの行数
- プロジェクト別の内訳と日別トレンドを含む週次ダイジェストが生成される
- 週次比較を含み、ステークホルダーのレビューに使用できるエグゼクティブサマリー
- 指標は
~/.claude/portfolio/daily-metrics.jsonlに永続的に保存される </success_criteria>
記録される指標
セッションごと(End Day による自動記録)
| 指標 | ソース | 方法 |
|---|---|---|
| コミット | git log --since="today" | 件数をカウント |
| 変更したファイル | git diff --stat | diff からカウント |
| 追加/削除した行数 | git diff --stat | +/- を解析 |
| 追加したテスト | git diff --stat -- '*.test.*' | テストファイルをカウント |
| 作成した PR | gh pr list --author @me | GitHub CLI |
| 修正したバグ | fix: に一致するコミット | Conventional commits |
| 出荷した機能 | feat: に一致するコミット | Conventional commits |
| コスト | ~/.claude/daily-cost.json | 日次の支出 |
派生指標
| 指標 | 計算式 | 重要な理由 |
|---|---|---|
| 機能あたりのコスト | 総コスト / feat: コミット | 効率性 |
| バグ修正あたりのコスト | 総コスト / fix: コミット | デバッグの ROI |
| ドルあたりの行数 | 出荷した行数 / 総コスト | 生産性 |
| テストカバレッジの差分 | 追加したテスト / 変更したファイル | 品質のシグナル |
収集
自動(End Day プロトコル)
workflow-orchestrator の End Day プロトコルがこれを自動的に呼び出します:
#!/bin/bash
# Auto-capture at end of day
DATE=$(date +%Y-%m-%d)
COMMITS=$(git log --since="today 00:00" --oneline 2>/dev/null | wc -l | tr -d ' ')
FEATS=$(git log --since="today 00:00" --oneline --grep="^feat" 2>/dev/null | wc -l | tr -d ' ')
FIXES=$(git log --since="today 00:00" --oneline --grep="^fix" 2>/dev/null | wc -l | tr -d ' ')
COST=$(cat ~/.claude/daily-cost.json 2>/dev/null | jq '.spent // 0')
mkdir -p ~/.claude/portfolio
echo "{\"date\":\"$DATE\",\"commits\":$COMMITS,\"features\":$FEATS,\"fixes\":$FIXES,\"cost\":$COST}" >> ~/.claude/portfolio/daily-metrics.jsonl
手動(オンデマンド)
# Full session capture with git stats
STAT=$(git diff --stat $(git log --since="today 00:00" --format="%H" | tail -1)..HEAD 2>/dev/null | tail -1)
ADDED=$(echo "$STAT" | grep -oE '[0-9]+ insertion' | grep -oE '[0-9]+' || echo 0)
REMOVED=$(echo "$STAT" | grep -oE '[0-9]+ deletion' | grep -oE '[0-9]+' || echo 0)
echo "Today: +$ADDED/-$REMOVED lines, $COMMITS commits ($FEATS features, $FIXES fixes)"
レポートテンプレート
エグゼクティブサマリー(経営層向け)
## Engineering Impact — Week of [DATE]
**Headline:** Shipped [N] features, fixed [N] bugs across [N] projects
| Metric | This Week | Last Week | Trend |
|--------|-----------|-----------|-------|
| Features shipped | 5 | 3 | ↑ 67% |
| Bugs fixed | 8 | 12 | ↓ 33% |
| Lines shipped | 1,247 | 890 | ↑ 40% |
| Cost | $12.40 | $15.20 | ↓ 18% |
| Cost/feature | $2.48 | $5.07 | ↓ 51% |
**Key Deliverables:**
- [Feature 1]: [Impact]
- [Feature 2]: [Impact]
**Cost Optimization:** Shifted [N] tasks to Haiku, saving $[X] (Y% reduction)
週次ダイジェスト
## Weekly Digest — [DATE RANGE]
### By Project
| Project | Commits | Features | Fixes | Cost |
|---------|---------|----------|-------|------|
| skills-library | 12 | 5 | 2 | $3.40 |
| netzero-bot | 8 | 2 | 4 | $5.20 |
### By Day
| Day | Commits | Lines | Cost |
|-----|---------|-------|------|
| Mon | 5 | +234/-45 | $1.80 |
| Tue | 8 | +567/-123 | $2.40 |
| ... | ... | ... | ... |
### Insights
- Most productive day: Tuesday (567 lines)
- Most expensive feature: [feature] ($X)
- Cheapest bug fix: [fix] ($0.12, Haiku)
スプリントレポート
## Sprint Report — [SPRINT NAME]
**Duration:** [START] → [END]
**Total Cost:** $[X]
### Deliverables
- [ ] Feature A (shipped, $X)
- [ ] Feature B (shipped, $X)
- [ ] Bug fix C (shipped, $X)
### Velocity
- Story points completed: [N]
- Cost per story point: $[X]
- Average cycle time: [N] hours
ストレージ
~/.claude/portfolio/
├── daily-metrics.jsonl # One JSON line per day
├── weekly-YYYY-WW.md # Auto-generated weekly digest
└── monthly-YYYY-MM.md # Auto-generated monthly summary
連携
| システム | 連携 |
|---|---|
| workflow-orchestrator | End Day が日次指標を自動記録します |
| cost-metering | 機能あたりのコストのためのコストデータを提供します |
| git-workflow | Conventional commits により feat/fix のカウントが可能になります |
| agent-teams | マルチエージェントセッションのコストを追跡します |
詳細: reference/metrics-guide.md、reference/report-templates.md を参照してください
結果サイドカーの出力
最後のステップとして、~/.claude/skill-analytics/last-outcome-portfolio-artifact.json に書き込みます:
{"ts":"[UTC ISO8601]","skill":"portfolio-artifact","version":"1.0.0","variant":"default",
"status":"[success|partial|error]","runtime_ms":[estimated ms from start],
"metrics":{"metrics_captured":[n],"artifacts_generated":[n],"reports_created":[n]},
"error":null,"session_id":"[YYYY-MM-DD]"}
一部のステージが失敗しても結果が生成された場合は、ステータスに "partial" を使用してください。出力がまったく生成されなかった場合にのみ "error" を使用してください。
コメント
Markdown 対応