bf-metrics

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Metrics Analysis

指标分析

Overview

概述

스프린트 메트릭을 집계·분석하여 모델 배당 최적화와 난이도 재태깅을 제안한다. 자동 적용하지 않으며, 사람이 판단한다.
通过汇总、分析冲刺(Sprint)指标,提出模型分配优化和难度重新标记建议。不会自动应用,需由人工判断。

When to Use

使用场景

  • 사용자가
    /bf-metrics
    를 입력했을 때
  • /bf-archive-sprint
    완료 후 안내에 따라 실행할 때
  • 여러 스프린트를 거친 후 패턴 분석이 필요할 때
  • 当用户输入
    /bf-metrics
  • /bf-archive-sprint
    完成后,按照提示执行时
  • 经过多个冲刺后需要进行模式分析时

Prerequisites

前置条件

  • docs/sprint-status.yaml
    또는
    docs/archive/*/sprint-status.yaml
    중 하나 이상 존재
  • 분석 대상 Story에 메트릭 필드가 기록되어 있어야 함 (레거시 Story는 건너뜀)
  • 권장 실행 순서:
    /bf-archive-sprint
    /bf-metrics
    /bf-update-conventions
    . 아카이빙 전에 실행해도 동작하지만, 아카이빙 후 실행하면 현재 + 아카이브 전체 데이터를 분석하여 더 정확한 결과를 제공
  • 存在
    docs/sprint-status.yaml
    docs/archive/*/sprint-status.yaml
    中的至少一个文件
  • 分析目标Story中必须记录有指标字段(遗留Story将被跳过)
  • 推荐执行顺序
    /bf-archive-sprint
    /bf-metrics
    /bf-update-conventions
    。在归档前执行也可正常运行,但归档后执行会分析当前+全部归档数据,提供更准确的结果

Error Handling

错误处理

  • sprint-status.yaml도 archive도 없으면: "분석 가능한 스프린트 데이터가 없습니다.
    /bf-execute
    로 워크플로우를 먼저 실행하세요." 안내
  • 모든 Story가 레거시이면: "메트릭 필드가 기록된 Story가 없습니다. 현행 워크플로우(v2+)로 실행한 스프린트만 분석할 수 있습니다." 안내
  • 완료된 Story가 없으면: "완료(done) 상태의 Story가 없습니다. 진행 중인 스프린트의 분석은 완료 후 수행하세요." 안내
  • 既无sprint-status.yaml也无归档文件时:提示“无可用分析的冲刺数据。请先使用
    /bf-execute
    运行工作流。”
  • 所有Story均为遗留类型时:提示“无记录指标字段的Story。仅可分析使用当前工作流(v2+)执行的冲刺。”
  • 无已完成的Story时:提示“无已完成(done)状态的Story。请在冲刺完成后再进行分析。”

Instructions

操作步骤

1. 데이터 수집

1. 数据收集

a. 현재 스프린트 데이터를 수집한다:
  • docs/sprint-status.yaml
    읽기
b. 아카이브된 스프린트 데이터를 수집한다:
  • docs/archive/*/sprint-status.yaml
    패턴으로 모든 아카이브 파일 읽기
c. 분석 대상 필터링:
  • status: done
    인 Story만 분석 대상에 포함
  • 레거시 Story 판정 기준:
    model_used
    AND
    ralph_retries
    YAML key가 모두 존재하지 않는 Story는 레거시로 간주하여 건너뜀. 두 키 중 하나라도 존재하면 현행 포맷으로 처리한다. (
    model_used: null
    은 미완료 Story이므로
    status: done
    조건에서 이미 필터됨)
  • 건너뛴 Story 수를 기록하여 리포트에 표시
a. 收集当前冲刺数据:
  • 读取
    docs/sprint-status.yaml
b. 收集已归档的冲刺数据:
  • docs/archive/*/sprint-status.yaml
    模式读取所有归档文件
c. 过滤分析目标:
  • 仅将
    status: done
    的Story纳入分析范围
  • 遗留Story判定标准:同时不存在
    model_used
    ralph_retries
    这两个YAML键的Story将被视为遗留并跳过。只要存在其中一个键,就按当前格式处理。(
    model_used: null
    属于未完成Story,会被
    status: done
    条件过滤掉)
  • 记录被跳过的Story数量并在报告中显示

2. 집계 테이블 생성

2. 生成汇总表

(difficulty, model_used) 페어별로 다음 지표를 집계한다:
지표계산 방법
story_count해당 페어의 Story 수
avg_ralph_retries평균 재시도 횟수
avg_ralph_approaches평균 접근 전환 횟수
stuck_rate
ralph_stuck: true
비율 (%)
avg_review_blockers평균 🔴 Blocker 건수
avg_review_recommended평균 🟡 Recommended 건수
regression_rate
is_regression: true
비율 (%)
按(difficulty, model_used)组合,汇总以下指标:
指标计算方法
story_count该组合对应的Story数量
avg_ralph_retries平均重试次数
avg_ralph_approaches平均方法切换次数
stuck_rate
ralph_stuck: true
的占比(%)
avg_review_blockers平均🔴阻塞项数量
avg_review_recommended平均🟡建议项数量
regression_rate
is_regression: true
的占比(%)

3. 모델 배당 최적화 제안

3. 模型分配优化建议

아래 임계값에 해당하는 (difficulty, model_used) 페어에 대해 제안을 생성한다:
조건임계값제안
높은 블로커avg_review_blockers >= 2.0더 강한 모델 배당 제안 (예: sonnet → opus-lead)
높은 재시도avg_ralph_retries >= 3.0구현 모델 업그레이드 제안
높은 stuckstuck_rate >= 20%Agent Teams 전략 전환 제안 (예: ralph-loop → opus-lead)
높은 회귀regression_rate >= 25%리뷰 모델 강화 제안
  • 임계값에 해당하지 않으면 "현재 모델 배당 적정" 메시지를 표시한다.
  • 제안에는 해당 조건을 충족한 구체적 수치를 함께 표시한다.
针对符合以下阈值的(difficulty, model_used)组合生成建议:
条件阈值建议
高阻塞项avg_review_blockers >= 2.0建议分配更强的模型(例如:sonnet → opus-lead)
高重试次数avg_ralph_retries >= 3.0建议升级实现模型
高停滞率stuck_rate >= 20%建议切换Agent Teams策略(例如:ralph-loop → opus-lead)
高回归率regression_rate >= 25%建议强化评审模型
  • 若不符合阈值,则显示“当前模型分配合适”。
  • 建议中需包含满足条件的具体数值。

4. 난이도 재태깅 제안

4. 难度重新标记建议

완료된 개별 Story의 메트릭을 기준으로 난이도 조정을 제안한다:
과소평가 (상향 제안):
현재 → 제안조건
S → Mralph_retries >= 3 OR review_blockers >= 2 OR ralph_stuck == true
M → Lralph_retries >= 4 OR review_blockers >= 3 OR ralph_approaches >= 2
L → XLralph_stuck == true AND ralph_approaches >= 3
과대평가 (하향 제안):
현재 → 제안조건
M → Sralph_retries == 0 AND review_blockers == 0 AND review_recommended <= 1
L → Mralph_retries <= 1 AND review_blockers == 0
XL → Lralph_retries <= 1 AND review_blockers == 0 AND ralph_approaches == 0
  • 해당 Story ID와 함께 구체적 메트릭 수치를 표시한다.
  • 제안이 없으면 "난이도 태깅 적정" 메시지를 표시한다.
基于已完成的单个Story的指标,提出难度调整建议。
低估(上调建议):
当前→建议条件
S → Mralph_retries >= 3 或 review_blockers >= 2 或 ralph_stuck == true
M → Lralph_retries >= 4 或 review_blockers >= 3 或 ralph_approaches >= 2
L → XLralph_stuck == true 且 ralph_approaches >= 3
高估(下调建议):
当前→建议条件
M → Sralph_retries == 0 且 review_blockers == 0 且 review_recommended <= 1
L → Mralph_retries <= 1 且 review_blockers == 0
XL → Lralph_retries <= 1 且 review_blockers == 0 且 ralph_approaches == 0
  • 需显示对应的Story ID和具体指标数值。
  • 若无建议,则显示“难度标记合适”。

5. E2E 실패 패턴 분석

5. E2E失败模式分析

failure_tag
별로 건수와 비율을 집계한다:
failure_tag건수비율
spec-gapNN%
impl-bugNN%
test-designNN%
convention-violationNN%
integrationNN%
  • regression Story가 없으면 "E2E 회귀 없음" 메시지를 표시한다.
  • 특정 태그가 50% 이상이면 해당 영역 집중 개선 제안을 추가한다.
failure_tag
汇总数量和占比:
failure_tag数量占比
spec-gapNN%
impl-bugNN%
test-designNN%
convention-violationNN%
integrationNN%
  • 若无回归Story,则显示“无E2E回归”。
  • 若特定标签占比超过50%,则添加针对该领域的集中改进建议。

6. 종합 요약

6. 综合总结

위 분석 결과를 종합하여 우선순위별 액션 아이템을 정리한다:
  • 🔴 즉시 조치: 높은 stuck_rate, 높은 블로커 등 심각한 패턴
  • 🟡 검토 권장: 과소/과대평가된 난이도, 모델 최적화 기회
  • 🟢 양호: 임계값 내 정상 범위
综合以上分析结果,整理出按优先级排序的行动项:
  • 🔴 立即处理:高停滞率、高阻塞项等严重模式
  • 🟡 建议评审:被低估/高估的难度、模型优化机会
  • 🟢 良好:处于阈值范围内的正常情况

Output Format

输出格式

대화로만 출력한다 (파일 저장 없음, read-only 스킬).
undefined
仅通过对话输出结果(只读技能,不保存文件)。
undefined

📊 BF Workflow Metrics Report

📊 BF Workflow Metrics Report

분석 범위

分析范围

  • 스프린트: {수집된 스프린트 목록}
  • 분석 대상: {N}개 Story (레거시 {M}개 제외)
  • 冲刺:{收集到的冲刺列表}
  • 分析目标:{N}个Story(排除{M}个遗留Story)

1. (Difficulty, Model) 페어별 집계

1. (Difficulty, Model)组合汇总

{집계 테이블}
{汇总表}

2. 모델 배당 최적화 제안

2. 模型分配优化建议

{제안 목록 또는 "현재 모델 배당 적정"}
{建议列表或“当前模型分配合适”}

3. 난이도 재태깅 제안

3. 难度重新标记建议

{과소/과대평가 제안 목록 또는 "난이도 태깅 적정"}
{低估/高估建议列表或“难度标记合适”}

4. E2E 실패 패턴

4. E2E失败模式

{failure_tag 집계 테이블 또는 "E2E 회귀 없음"}
{failure_tag汇总表或“无E2E回归”}

5. 종합 액션 아이템

5. 综合行动项

🔴 즉시 조치: ... 🟡 검토 권장: ... 🟢 양호: ...
undefined
🔴 立即处理:... 🟡 建议评审:... 🟢 良好:...
undefined