refactor(commands): /team-onboarding に残課題 4 点を反映 - #102
Conversation
レビュー指摘 (項目 11/12/13/15) への対応:
- 項目 11: Phase B の並列実行指示を強化
- 「必ず単一メッセージ内で並列実行」を明示
- 疑似コード例を追加し 7 件のツール呼び出しを視覚化
- 並列化失敗時のラウンドトリップコストを定量的に警告
- 項目 12: Phase E Section 5 / 6 にサイズ上限
- 各セクション最大 3 KB (約 80 行)
- 件数 ≤ 20 なら全列挙、> 20 ならカテゴリ集約に切替
- 詳細 description は元ファイルへ誘導するリンク化
- 項目 13: Section 8 の git log 件数を動的決定
- セッション進行中 → 30 件
- active (days 未満) → 30 件
- days ≤ x < weeks → 20 件
- dormant (weeks 以上) → 10 件
- 選択結果を本セクション先頭に明示
- 項目 15: 欠損時メッセージを統一フォーマット化
- `*{理由} — {詳細}*` の斜体単行形式に統一
- Section 1/2/3/4/5/6/8/9 すべての defensive 表記を揃える
設計原則セクションも新規制約 (並列 / サイズ上限 / 動的件数 / 統一
フォーマット) を反映するよう拡充。
項目 14 (Phase F フック実体) は既存 Issue #100 で追跡中のため本
PR ではスコープ外。項目 16-28 の systemic 変更は別 Issue 群で
段階的に対応予定。
Refs: #100
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
📝 WalkthroughWalkthroughドキュメント Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Pull request overview
/team-onboarding コマンド仕様(.claude/claudeos/commands/team-onboarding.md)に対して、レビュー指摘のうち localized fix 可能な残課題 4 点(Phase B 並列実行強化、Section 5/6 のサイズ上限制約、Git log 件数の動的化、欠損メッセージ統一)を反映する PR です。
Changes:
- Phase B の tool 呼び出しを「単一メッセージ内で 7 件並列バッチ化」する指示を追加
- Agent/Command 列挙(Section 5/6)に 3KB 上限と件数 > 20 時のカテゴリ集約ルールを追加
- Git log の出力件数を状態/活性度で 10/20/30 に切り替える指示と、欠損メッセージの統一フォーマットを追加
| {state.json.kpi ブロックの転記、無ければ「未計測」} | ||
| {state.json.kpi ブロックの転記} | ||
|
|
||
| 欠損時の定型: `*未計測 — state.json 未存在*` |
There was a problem hiding this comment.
KPI セクションの欠損時定型が state.json 未存在 のみを理由にしていますが、Phase D の仕様では state.json が存在しても kpi ブロック欠損はあり得ます(その場合は「state.json に該当情報なし」と明記する方針)。欠損理由のテンプレートを state.json.kpi 未存在/空 も含めた形にして、Phase D の記述と矛盾しないようにしてください。
| 欠損時の定型: `*未計測 — state.json 未存在*` | |
| 欠損時の定型: `*未計測 — state.json 未存在、または state.json.kpi 未存在/空のため state.json に該当情報なし*` |
| | `.claude/claudeos/agents/` | `Glob("**/*.md")` | `*Agent Teams 未整備 — .claude/claudeos/agents/ ディレクトリなし*` | | ||
| | `.claude/claudeos/commands/` | `Glob("*.md")` | `*コマンド未整備 — .claude/claudeos/commands/ ディレクトリなし*` | |
There was a problem hiding this comment.
Phase B の Glob 指示が Glob("**/*.md") / Glob("*.md") になっており、リポジトリルート基準だと対象外の Markdown まで大量にヒットします(実際このリポジトリには多数の *.md が存在)。Phase B の意図どおり .claude/claudeos/agents/ / .claude/claudeos/commands/ 配下にスコープされるパターン(例: パス接頭辞付き)に統一してください。
| | `.claude/claudeos/agents/` | `Glob("**/*.md")` | `*Agent Teams 未整備 — .claude/claudeos/agents/ ディレクトリなし*` | | |
| | `.claude/claudeos/commands/` | `Glob("*.md")` | `*コマンド未整備 — .claude/claudeos/commands/ ディレクトリなし*` | | |
| | `.claude/claudeos/agents/` | `Glob(".claude/claudeos/agents/**/*.md")` | `*Agent Teams 未整備 — .claude/claudeos/agents/ ディレクトリなし*` | | |
| | `.claude/claudeos/commands/` | `Glob(".claude/claudeos/commands/*.md")` | `*コマンド未整備 — .claude/claudeos/commands/ ディレクトリなし*` | |
| {`.claude/claudeos/agents/*.md` を Glob し、カテゴリグループで列挙} | ||
|
|
There was a problem hiding this comment.
Phase B の疑似コードでは agents/**/*.md を Glob していますが、Phase E の Section 5 では agents/*.md になっており収集範囲の指定が不一致です(commands も同様に Phase B は commands/*.md、他箇所では別表記)。将来的にサブディレクトリを切った場合に列挙漏れ/過剰列挙が起きるので、再帰の有無とパターンを全箇所で揃えてください。
|
|
||
| {state.json.goal があればそれ、無ければ CLAUDE.md §4 の state.json 構造例から推定} | ||
|
|
||
| 欠損時の定型: `*未設定 — state.json 未存在のため CLAUDE.md §4 のテンプレートから推定*` |
There was a problem hiding this comment.
Goal セクションの「欠損時の定型」が state.json 未存在 前提になっていますが、直前の指示は「state.json.goal があればそれ、無ければ…推定」なので、state.json が存在しても goal ブロックが欠けているケースがあります。その場合に理由が不正確になるため、欠損条件(state.json 不在 vs goal 不在)に合わせて文言を分けるか、より一般化した理由にしてください。
| 欠損時の定型: `*未設定 — state.json 未存在のため CLAUDE.md §4 のテンプレートから推定*` | |
| 欠損時の定型: `*未設定 — state.json.goal が得られないため CLAUDE.md §4 のテンプレートから推定*` |
| 2. `Bash("git log -1 --format=%cr")` の相対日付が `days` 未満(active プロジェクト)→ `git log --oneline -30` | ||
| 3. `days` 以上 `weeks` 未満 → `git log --oneline -20` | ||
| 4. `weeks` 以上(dormant)→ `git log --oneline -10` | ||
|
|
||
| 固定の `-20` は使用しない。上記判定結果を ONBOARDING.md の本セクション先頭に `(直近 N 件 / active 判定)` として 1 行で明示する。 |
There was a problem hiding this comment.
Git 活動の件数決定ロジックで days / weeks が未定義のまま使われており、実装不能です。閾値を具体的な数値(例: 7 days / 4 weeks 等)で明記してください。また git log -1 --format=%cr はロケール依存の相対表現になるため機械判定が不安定です。判定に使うなら %ct(UNIX epoch)や %cI(ISO8601)などパース可能な形式を使う指示に寄せるのが安全です。
| 2. `Bash("git log -1 --format=%cr")` の相対日付が `days` 未満(active プロジェクト)→ `git log --oneline -30` | |
| 3. `days` 以上 `weeks` 未満 → `git log --oneline -20` | |
| 4. `weeks` 以上(dormant)→ `git log --oneline -10` | |
| 固定の `-20` は使用しない。上記判定結果を ONBOARDING.md の本セクション先頭に `(直近 N 件 / active 判定)` として 1 行で明示する。 | |
| 2. それ以外では `Bash("git log -1 --format=%ct")` で最新コミットの UNIX epoch 秒を取得し、現在時刻との差分を秒で判定する | |
| 3. 差分が **7 days 未満**(active プロジェクト)→ `git log --oneline -30` | |
| 4. 差分が **7 days 以上 4 weeks 未満** → `git log --oneline -20` | |
| 5. 差分が **4 weeks 以上**(dormant)→ `git log --oneline -10` | |
| 固定の `-20` は使用しない。上記判定結果を ONBOARDING.md の本セクション先頭に `(直近 N 件 / in-session|active|recent|dormant 判定)` として 1 行で明示する。 |
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (1)
.claude/claudeos/commands/team-onboarding.md (1)
131-134: Section 5/6 の「3KB」と「約80行」の優先順位を明記してください。Line 131-134 / 140-143 は制約が二重定義になっているため、どちらを先に満たすか不明です(特に日本語主体だと 80 行より先に 3KB を超えやすい)。「3KB を正規制約、80 行は目安」などの優先順位を明示すると運用が安定します。
Also applies to: 140-143
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In @.claude/claudeos/commands/team-onboarding.md around lines 131 - 134, Clarify that the 3KB limit is the hard/primary constraint and the “約80行” is a soft guideline by updating the “サイズ上限” wording in Section 5/6 to something like: “3KB を正規制約(ハードリミット)、約80行は目安(ソフトリミット)” and make the same change at the second occurrence of this rule; ensure the surrounding bullets (the 件数 ≤ 20 / > 20 rules and the 欠損時の定型) remain unchanged except for this clarified priority statement so implementers know to enforce size first and line-count second.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In @.claude/claudeos/commands/team-onboarding.md:
- Around line 153-156: The logic that uses Bash("git log -1 --format=%cr") and
the undefined variables days/weeks is locale-vulnerable and incorrect; change to
Bash("git log -1 --format=%ct") to get UNIX epoch, compute the age as (now -
commit_ts) in days in the code that checks state.json.execution.phase and choose
the git log depth based on explicit numeric thresholds (for example active <7
days -> `git log --oneline -30`, warm 7–27 days -> `git log --oneline -20`,
dormant ≥28 days -> `git log --oneline -10`), replace any references to the
undefined `days`/`weeks` with these concrete integers and update the descriptive
text (lines describing results) to state the exact day thresholds (e.g., "<7
days (active), 7–27 days (warm), ≥28 days (dormant)").
---
Nitpick comments:
In @.claude/claudeos/commands/team-onboarding.md:
- Around line 131-134: Clarify that the 3KB limit is the hard/primary constraint
and the “約80行” is a soft guideline by updating the “サイズ上限” wording in Section
5/6 to something like: “3KB を正規制約(ハードリミット)、約80行は目安(ソフトリミット)” and make the same
change at the second occurrence of this rule; ensure the surrounding bullets
(the 件数 ≤ 20 / > 20 rules and the 欠損時の定型) remain unchanged except for this
clarified priority statement so implementers know to enforce size first and
line-count second.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 3fd84703-9061-43f9-85fe-07f81bd63ac1
📒 Files selected for processing (1)
.claude/claudeos/commands/team-onboarding.md
📜 Review details
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (3)
- GitHub Check: Agent
- GitHub Check: test-and-validate
- GitHub Check: PSScriptAnalyzer
🧰 Additional context used
📓 Path-based instructions (1)
{docs/**,**.md,.claude/**}
📄 CodeRabbit inference engine (AGENTS.md)
Structure sub-agent responses using fixed 4-section format: Summary, Risks, Findings, Next Action (in that order), with Risks listed before Findings
Files:
.claude/claudeos/commands/team-onboarding.md
🧠 Learnings (12)
📓 Common learnings
Learnt from: CR
Repo: Kensan196948G/ClaudeCLI-CodexCLI-CopilotCLI-StartUpTools-New PR: 0
File: Claude/CLAUDE.md:0-0
Timestamp: 2026-04-14T02:12:21.915Z
Learning: Applies to Claude/**/README.md : README must be updated when user-facing features, setup procedures, architecture, or quality gates change
📚 Learning: 2026-04-14T02:12:21.915Z
Learnt from: CR
Repo: Kensan196948G/ClaudeCLI-CodexCLI-CopilotCLI-StartUpTools-New PR: 0
File: Claude/CLAUDE.md:0-0
Timestamp: 2026-04-14T02:12:21.915Z
Learning: Applies to Claude/**/README.md : README must be updated when user-facing features, setup procedures, architecture, or quality gates change
Applied to files:
.claude/claudeos/commands/team-onboarding.md
📚 Learning: 2026-04-14T06:21:13.377Z
Learnt from: CR
Repo: Kensan196948G/ClaudeCLI-CodexCLI-CopilotCLI-StartUpTools-New PR: 0
File: Claude/templates/claude/CLAUDE.md:0-0
Timestamp: 2026-04-14T06:21:13.377Z
Learning: Applies to Claude/templates/claude/**/README.md : Update README.md whenever the following changes: user-facing features, setup procedures, architecture, or quality gates. Treat README as the external-facing truth. Do not leave README unable to withstand external explanation.
Applied to files:
.claude/claudeos/commands/team-onboarding.md
📚 Learning: 2026-04-14T06:21:13.377Z
Learnt from: CR
Repo: Kensan196948G/ClaudeCLI-CodexCLI-CopilotCLI-StartUpTools-New PR: 0
File: Claude/templates/claude/CLAUDE.md:0-0
Timestamp: 2026-04-14T06:21:13.377Z
Learning: Applies to Claude/templates/claude/**/* : Use Japanese for all explanations and documentation. Code comments may be in English.
Applied to files:
.claude/claudeos/commands/team-onboarding.md
📚 Learning: 2026-04-14T02:12:54.820Z
Learnt from: CR
Repo: Kensan196948G/ClaudeCLI-CodexCLI-CopilotCLI-StartUpTools-New PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-14T02:12:54.820Z
Learning: Applies to {docs/**,**.md,.claude/**} : Structure sub-agent responses using fixed 4-section format: Summary, Risks, Findings, Next Action (in that order), with Risks listed before Findings
Applied to files:
.claude/claudeos/commands/team-onboarding.md
📚 Learning: 2026-04-14T06:20:36.544Z
Learnt from: CR
Repo: Kensan196948G/ClaudeCLI-CodexCLI-CopilotCLI-StartUpTools-New PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-04-14T06:20:36.544Z
Learning: Execute automatic startup sequence on session start: Register 4 loop commands (/loop 30min ClaudeOS Monitor, /loop 2h ClaudeOS Development, /loop 1h15m ClaudeOS Verify, /loop 1h15m ClaudeOS Improvement) totaling 5 hours with phase distribution: Monitor 10% / Development 40% / Verify 25% / Improvement 25%
Applied to files:
.claude/claudeos/commands/team-onboarding.md
📚 Learning: 2026-04-14T06:21:13.377Z
Learnt from: CR
Repo: Kensan196948G/ClaudeCLI-CodexCLI-CopilotCLI-StartUpTools-New PR: 0
File: Claude/templates/claude/CLAUDE.md:0-0
Timestamp: 2026-04-14T06:21:13.377Z
Learning: Execute the following 4 loop commands in order at session start: `/loop 30min ClaudeOS Monitor`, `/loop 2h ClaudeOS Development`, `/loop 1h15m ClaudeOS Verify`, `/loop 1h15m ClaudeOS Improvement`. Do not begin normal development work until all 4 registrations are complete.
Applied to files:
.claude/claudeos/commands/team-onboarding.md
📚 Learning: 2026-04-14T06:21:13.377Z
Learnt from: CR
Repo: Kensan196948G/ClaudeCLI-CodexCLI-CopilotCLI-StartUpTools-New PR: 0
File: Claude/templates/claude/CLAUDE.md:0-0
Timestamp: 2026-04-14T06:21:13.377Z
Learning: At 5-hour session end, execute different branching: (1) if STABLE achieved: merge → deploy → final report; (2) if STABLE not achieved: create Draft PR + record restart points; (3) if error occurred: mark as Blocked + raise Issue + record recovery strategy.
Applied to files:
.claude/claudeos/commands/team-onboarding.md
📚 Learning: 2026-04-14T06:21:13.377Z
Learnt from: CR
Repo: Kensan196948G/ClaudeCLI-CodexCLI-CopilotCLI-StartUpTools-New PR: 0
File: Claude/templates/claude/CLAUDE.md:0-0
Timestamp: 2026-04-14T06:21:13.377Z
Learning: On session end, execute: commit → push → PR creation → state.json save → Memory MCP save. Output final report including: development summary, CI results, review findings, rescue results, remaining issues, next actions.
Applied to files:
.claude/claudeos/commands/team-onboarding.md
📚 Learning: 2026-04-14T06:20:36.544Z
Learnt from: CR
Repo: Kensan196948G/ClaudeCLI-CodexCLI-CopilotCLI-StartUpTools-New PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-04-14T06:20:36.544Z
Learning: Applies to **/* : At 5-hour limit, ensure minimal commit unit, push changes, create PR (Draft acceptable), update GitHub Projects status, collect test/lint/build/CI results, document remaining tasks and restart point, update README.md with end-of-session summary, and produce final status report
Applied to files:
.claude/claudeos/commands/team-onboarding.md
📚 Learning: 2026-04-14T02:12:41.360Z
Learnt from: CR
Repo: Kensan196948G/ClaudeCLI-CodexCLI-CopilotCLI-StartUpTools-New PR: 0
File: Claude/templates/claudeos/examples/CLAUDE.md:0-0
Timestamp: 2026-04-14T02:12:41.360Z
Learning: Applies to Claude/templates/claudeos/examples/**/CLAUDE.md : Define README update policy in CLAUDE.md at project root
Applied to files:
.claude/claudeos/commands/team-onboarding.md
📚 Learning: 2026-04-14T02:12:41.360Z
Learnt from: CR
Repo: Kensan196948G/ClaudeCLI-CodexCLI-CopilotCLI-StartUpTools-New PR: 0
File: Claude/templates/claudeos/examples/CLAUDE.md:0-0
Timestamp: 2026-04-14T02:12:41.360Z
Learning: Applies to Claude/templates/claudeos/examples/**/CLAUDE.md : Define branch strategy in CLAUDE.md at project root
Applied to files:
.claude/claudeos/commands/team-onboarding.md
🔇 Additional comments (1)
.claude/claudeos/commands/team-onboarding.md (1)
31-44: Phase B の並列実行要件の明確化は良い変更です。Line 31-44 で「単一 assistant メッセージ内に束ねる」要件と 7 件の具体例が揃っており、実装者の解釈ブレをかなり減らせています。
| 1. `state.json.execution.phase` が存在し remaining_minutes > 0(セッション進行中)→ `git log --oneline -30` | ||
| 2. `Bash("git log -1 --format=%cr")` の相対日付が `days` 未満(active プロジェクト)→ `git log --oneline -30` | ||
| 3. `days` 以上 `weeks` 未満 → `git log --oneline -20` | ||
| 4. `weeks` 以上(dormant)→ `git log --oneline -10` |
There was a problem hiding this comment.
🧩 Analysis chain
🌐 Web query:
Is git log --format=%crlocale-dependent, and is%ct the stable machine-readable timestamp format for deterministic automation?
💡 Result:
Yes, git log --format=%cr is locale-dependent because it outputs relative dates like "2 days ago" using natural language phrases for time units (e.g., "hours", "days"), which are translated based on the system's locale settings. Yes, %ct provides the stable, machine-readable UNIX timestamp (seconds since epoch, always in UTC), making it ideal for deterministic automation as it is numeric, locale-independent, and consistent across systems for the same commit.
Citations:
- 1: https://git-scm.com/docs/pretty-formats
- 2: https://git-scm.com/docs/git-log
- 3: https://git-scm.com/docs/git-log.html
- 4: https://git-scm.com/docs/git-log/2.42.1.html
- 5: https://www.kernel.org/pub/software/scm/git/docs/git-log.html
- 6: https://git-scm.com/docs/git-log/2.38.0.html
- 7: https://git-scm.com/docs/pretty-formats.html
- 8: https://github.com/git/git/blob/b722d4560e9d566cb8c6cdccf08d649df146eb6b/Documentation/pretty-formats.txt
🏁 Script executed:
fd -type f -name "team-onboarding.md" | head -5Repository: Kensan196948G/ClaudeCLI-CodexCLI-CopilotCLI-StartUpTools-New
Length of output: 274
🏁 Script executed:
fd "team-onboarding.md"Repository: Kensan196948G/ClaudeCLI-CodexCLI-CopilotCLI-StartUpTools-New
Length of output: 86
🏁 Script executed:
find .claude -type f -name "*.md" 2>/dev/null | head -20Repository: Kensan196948G/ClaudeCLI-CodexCLI-CopilotCLI-StartUpTools-New
Length of output: 901
🏁 Script executed:
ls -la .claude/claudeos/ && find . -name "*team-onboarding*" 2>/dev/nullRepository: Kensan196948G/ClaudeCLI-CodexCLI-CopilotCLI-StartUpTools-New
Length of output: 1642
🏁 Script executed:
wc -l .claude/claudeos/commands/team-onboarding.md && sed -n '150,165p' .claude/claudeos/commands/team-onboarding.mdRepository: Kensan196948G/ClaudeCLI-CodexCLI-CopilotCLI-StartUpTools-New
Length of output: 673
🏁 Script executed:
sed -n '153,162p' .claude/claudeos/commands/team-onboarding.md | cat -nRepository: Kensan196948G/ClaudeCLI-CodexCLI-CopilotCLI-StartUpTools-New
Length of output: 653
git log --format=%cr はロケール依存のため、判定ロジックに %ct(UNIX 時刻)を使用し、閾値を明示的に定義してください。
Line 155–156 で使用されている days と weeks は値が定義されていない未定義変数です。%cr は相対日付を自然言語で出力するため、システムロケールに依存して "2 days ago"(英語)や "il y a 2 jours"(フランス語)など異なる文字列となり、判定処理が実装困難になります。代わりに git log -1 --format=%ct で UNIX 時刻を取得し、現在時刻との差分を日数で計算して判定してください。閾値は例えば:< 7 日(active)、7–28 日(warm)、≥ 28 日(dormant)のように明示してください。
修正案
-2. `Bash("git log -1 --format=%cr")` の相対日付が `days` 未満(active プロジェクト)→ `git log --oneline -30`
-3. `days` 以上 `weeks` 未満 → `git log --oneline -20`
-4. `weeks` 以上(dormant)→ `git log --oneline -10`
+2. 最終コミットの UNIX 時刻を `Bash("git log -1 --format=%ct")` で取得し、現在時刻との差分日数で判定
+3. 差分 < 7 日(active)→ `git log --oneline -30`
+4. 7 日以上 28 日未満(warm)→ `git log --oneline -20`
+5. 28 日以上(dormant)→ `git log --oneline -10`また 158–159 行目(表示結果についての説明)も同様に、具体的な日数閾値を記載してください。
📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| 1. `state.json.execution.phase` が存在し remaining_minutes > 0(セッション進行中)→ `git log --oneline -30` | |
| 2. `Bash("git log -1 --format=%cr")` の相対日付が `days` 未満(active プロジェクト)→ `git log --oneline -30` | |
| 3. `days` 以上 `weeks` 未満 → `git log --oneline -20` | |
| 4. `weeks` 以上(dormant)→ `git log --oneline -10` | |
| 1. `state.json.execution.phase` が存在し remaining_minutes > 0(セッション進行中)→ `git log --oneline -30` | |
| 2. 最終コミットの UNIX 時刻を `Bash("git log -1 --format=%ct")` で取得し、現在時刻との差分日数で判定 | |
| 3. 差分 < 7 日(active)→ `git log --oneline -30` | |
| 4. 7 日以上 28 日未満(warm)→ `git log --oneline -20` | |
| 5. 28 日以上(dormant)→ `git log --oneline -10` |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In @.claude/claudeos/commands/team-onboarding.md around lines 153 - 156, The
logic that uses Bash("git log -1 --format=%cr") and the undefined variables
days/weeks is locale-vulnerable and incorrect; change to Bash("git log -1
--format=%ct") to get UNIX epoch, compute the age as (now - commit_ts) in days
in the code that checks state.json.execution.phase and choose the git log depth
based on explicit numeric thresholds (for example active <7 days -> `git log
--oneline -30`, warm 7–27 days -> `git log --oneline -20`, dormant ≥28 days ->
`git log --oneline -10`), replace any references to the undefined `days`/`weeks`
with these concrete integers and update the descriptive text (lines describing
results) to state the exact day thresholds (e.g., "<7 days (active), 7–27 days
(warm), ≥28 days (dormant)").
Summary
レビュー指摘(全 15 項目のうち localized fix が可能な 11 / 12 / 13 / 15)を反映。
*{理由} — {詳細}*斜体単行フォーマットに統一スコープ外(別 Issue で追跡)
設計判断
なぜ並列実行を強調したか
Phase B は独立した 7 件の Read / Glob を含み、逐次実行では tool dispatcher のラウンドトリップで数秒〜十数秒のロスが発生する。Claude Code の tool dispatcher は独立した呼び出しを物理的に並列化するため、「1 メッセージに全部入れる」が唯一の最適化手段。本修正でこれを明示命令化。
なぜサイズ上限 3 KB か
本プロジェクトは Agent 37 件 / Command 34 件を持ち、全件 description 付き列挙では Section 5 + 6 だけで数 KB に達する。ONBOARDING.md が 20 KB を超えると新メンバーが読み切らなくなるため、Section 内で要約版と詳細ファイル参照に切り分ける。
なぜ Git log 件数を動的化したか
固定 20 件は active プロジェクトで少なすぎ、dormant プロジェクトで多すぎる。判定条件を
state.json.execution.phase→ 相対日付 → 件数切替 に階層化し、どのフェーズで生成したかを ONBOARDING.md 内に明示する。なぜ欠損メッセージ統一か
現行 ONBOARDING.md では「学習履歴なし」「未計測」「state.json 未存在」が混在しており、読み手が「これは何の理由で欠損したのか」を都度解釈する必要があった。
*{理由} — {詳細}*の 2 要素に分解することで、機械可読・人間可読の両方に対応。Test plan
/team-onboarding再実行時に ONBOARDING.md のサイズが 3 KB 制約を守ることRefs: #100
🤖 Generated with Claude Code
Summary by CodeRabbit
リリースノート