Loading...
Loading...
Compare original and translation side by side
--all-comments--reviewer--since--until--all-comments--reviewer--since--untilreporepopython3 ~/.claude/scripts/miner.py --check-authrepogh api rate_limit --jq '.resources.core | "Remaining: \(.remaining)/\(.limit), Resets: \(.reset)"'python3 ~/.claude/scripts/miner.py --check-authrepogh api rate_limit --jq '.resources.core | "Remaining: \(.remaining)/\(.limit), Resets: \(.reset)"'python3 ~/.claude/scripts/miner.py org/repo output.json --limit 50python3 ~/.claude/scripts/miner.py org/repo-a,org/repo-b output.json --limit 50--reviewer name--since date--all-commentspython3 ~/.claude/scripts/miner.py <repos> mined_data/<output>.json --limit <N>python3 -c "import json; d=json.load(open('mined_data/<output>.json')); print(f'PRs: {d[\"metadata\"][\"pr_count\"]}, Interactions: {d[\"metadata\"][\"interaction_count\"]}')"--limit--all-commentspython3 ~/.claude/scripts/miner.py org/repo output.json --limit 50python3 ~/.claude/scripts/miner.py org/repo-a,org/repo-b output.json --limit 50--reviewer name--since date--all-commentspython3 ~/.claude/scripts/miner.py <repos> mined_data/<output>.json --limit <N>python3 -c "import json; d=json.load(open('mined_data/<output>.json')); print(f'PRs: {d[\"metadata\"][\"pr_count\"]}, Interactions: {d[\"metadata\"][\"interaction_count\"]}')"--limit--all-commentspython3 ~/.claude/scripts/validate.pycomment_textcode_beforecode_afterreviewerauthorpython3 ~/.claude/scripts/miner.py <repos> <output>.json --summary--reviewermined_data/python3 ~/.claude/scripts/validate.pycomment_textcode_beforecode_afterreviewerauthorpython3 ~/.claude/scripts/miner.py <repos> <output>.json --summary--reviewermined_data/{
"metadata": {
"repo": "org/repo",
"mined_at": "2025-11-20T14:30:00Z",
"pr_count": 50,
"interaction_count": 127
},
"interactions": [
{
"source": "pr_review",
"pr_number": 234,
"pr_title": "Add error wrapping",
"author": "developer",
"reviewer": "senior-developer",
"file": "service/user.go",
"line": 45,
"comment_text": "Please use errors.Is() instead of == for error comparison",
"diff_hunk": "@@ -42,7 +42,7 @@...",
"code_before": "if err == ErrNotFound {",
"code_after": "if errors.Is(err, ErrNotFound) {",
"resolution": "changed",
"url": "https://github.com/org/repo/pull/234#discussion_r123456",
"created_at": "2025-10-15T10:23:45Z"
}
]
}{
"metadata": {
"repo": "org/repo",
"mined_at": "2025-11-20T14:30:00Z",
"pr_count": 50,
"interaction_count": 127
},
"interactions": [
{
"source": "pr_review",
"pr_number": 234,
"pr_title": "Add error wrapping",
"author": "developer",
"reviewer": "senior-developer",
"file": "service/user.go",
"line": 45,
"comment_text": "Please use errors.Is() instead of == for error comparison",
"diff_hunk": "@@ -42,7 +42,7 @@...",
"code_before": "if err == ErrNotFound {",
"code_after": "if errors.Is(err, ErrNotFound) {",
"resolution": "changed",
"url": "https://github.com/org/repo/pull/234#discussion_r123456",
"created_at": "2025-10-15T10:23:45Z"
}
]
}mined_data/{reviewer}_{repos}_{date}.json{repos}_all_{date}.jsonrules/{repos}_coding_rules.md{reviewer}_{repos}_patterns.mdmined_data/{reviewer}_{repos}_{date}.json{repos}_all_{date}.jsonrules/{repos}_coding_rules.md{reviewer}_{repos}_patterns.mdmined_data/go-service_all_2026-02-13.jsonmined_data/go-service_all_2026-02-13.json--reviewer alicemined_data/alice_backend_2026-02-13.json--reviewer alicemined_data/alice_backend_2026-02-13.jsonrepoGITHUB_TOKENecho $GITHUB_TOKEN | head -c 10gh auth statusreporepoGITHUB_TOKENecho $GITHUB_TOKEN | head -c 10gh auth statusrepogh api rate_limit --jq '.resources.core.reset'--limitgh api rate_limit --jq '.resources.core.reset'--limit--all-comments--limit--since--all-comments--limit--sinceminer.pyminer.py--limit 10000--limit 50 --since <6-months-ago>--limit 10000--limit 50 --since <6-months-ago>| Rationalization | Why It's Wrong | Required Action |
|---|---|---|
| "Token worked last time" | Tokens expire, permissions change | Run |
| "50 PRs is enough" | Depends on review density | Validate interaction count before proceeding |
| "I can summarize the patterns" | Extraction skill, not analysis skill | Output raw JSON only |
| "All comments mode wastes time" | Imperative filter may miss valuable feedback | Consider |
| 合理化借口 | 问题所在 | 要求操作 |
|---|---|---|
| "上次令牌还能用" | 令牌可能过期、权限可能变更 | 每次会话都运行 |
| "50个PR足够了" | 取决于评审密度 | 继续前验证交互数量 |
| "我可以总结模式" | 本技能是提取工具,而非分析工具 | 仅输出原始JSON |
| "全评论模式浪费时间" | 命令式过滤可能遗漏有价值的反馈 | 首次运行考虑使用 |
${CLAUDE_SKILL_DIR}/references/imperative-keywords.txt${CLAUDE_SKILL_DIR}/references/examples.md${CLAUDE_SKILL_DIR}/scripts/miner.py${CLAUDE_SKILL_DIR}/scripts/validate.py${CLAUDE_SKILL_DIR}/references/imperative-keywords.txt${CLAUDE_SKILL_DIR}/references/examples.md${CLAUDE_SKILL_DIR}/scripts/miner.py${CLAUDE_SKILL_DIR}/scripts/validate.py