Skip to content

Phase 3: ノイズ除去 + 分類ロジック - #3

Merged
tukuyomil032 merged 4 commits into
mainfrom
phase3-noise-classification
Aug 22, 2026
Merged

Phase 3: ノイズ除去 + 分類ロジック#3
tukuyomil032 merged 4 commits into
mainfrom
phase3-noise-classification

Conversation

@tukuyomil032

Copy link
Copy Markdown
Owner

Summary

  • NoiseFilter: topicsタグ(macos/macos-app)とインストール可能な資産(.dmg/.zip)のAND条件でリポジトリの発見対象を絞り込む(star数閾値は不採用)
  • Category enum + Resources/CategoryKeywords.json: 固定カテゴリとリビルド不要な外部キーワード辞書
  • CategoryClassifier: topics完全一致(3点) > リポジトリ名部分一致(2点) > README冒頭一致(1点)のスコアリングでカテゴリを自動分類し、全カテゴリ0点なら.other+元topicsをサブタグ併記
  • いずれもStrategyパターン(NoiseFiltering/CategoryClassifyingプロトコル)で判定ロジックを差し替え可能にした
  • docs/progress.mdのPhase3チェックリストを完了に更新、実装時に確定した設計判断(subTags一律付与・README冒頭=500文字・タイブレーク規則)を追記

Test plan

  • just test で全66件のユニットテストがパス(NoiseFilterTests 7件、CategoryClassifierTests 8件を含む)
  • just lint で新規違反なし(既存パターンと同様の警告のみ)

🤖 Generated with Claude Code

https://claude.ai/code/session_01Wqgz7yinLxemFVe6f3NVCg

tukuyomil032 and others added 4 commits August 23, 2026 00:28
star数閾値ではなくtopicsタグ(macos/macos-app)とインストール可能な
資産(.dmg/.zip)の存在ANDでリポジトリの発見対象を絞り込む。
Strategyパターンとして差し替え可能なNoiseFilteringプロトコルを定義。

-m "topics有無×asset有無の4象限、.pkgのみ資産の除外、大文字小文字の
非依存一致を含む7ケースをSwift Testingでカバー"
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
固定カテゴリenumと、キーワード辞書をResources/CategoryKeywords.json
として外部化する読み込みロジックをセットで追加。リビルドなしで
手動メンテできるようにするための外部化。

-m "rawValueはenumケース名と同一camelCaseとし、JSONキーと直接一致
させることで変換テーブルを不要にした。未知キーはデコード時に無視する"
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
topics完全一致(3点)>リポジトリ名部分一致(2点)>README冒頭一致(1点)の
優先順位でスコアリングし、最高得点のカテゴリを採用するStrategyパターン
実装。全カテゴリ0点ならotherにフォールバックし、subTagsには分類先に
関わらず常に元のtopicsを併記する。

-m "README冒頭は先頭500文字と定義。同点タイブレークはCategory.allCases
宣言順で決定的に解決する。固定フィクスチャ辞書を注入し本番JSONの将来
変更に依存しないテストを8ケース追加"
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Phase3(NoiseFilter/Category/CategoryClassifier)の4項目を[x]化。
実装時にユーザーへ確認して確定した設計判断(subTags一律付与、
README冒頭=500文字、タイブレーク規則、プロトコル命名の動名詞スタイル)
を「実装時に確定した設計判断」として追記した。

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@tukuyomil032
tukuyomil032 merged commit c6be4c6 into main Aug 22, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant