Skip to content
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
### Added

- ホーム設定 overlay と `config.toml` に `audio_voice` を追加し、macOS / Windows の local voice を選択して次回起動後も使い続けられるようにしました。
- コア語彙を8038語まで拡張しました。

### Changed

Expand Down
2 changes: 1 addition & 1 deletion README.en.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@

In addition to SRS-based review, it offers two modes: multiple-choice `choice` and input-based `write`. Audio playback is also supported.

The embedded vocabulary currently contains about **5200** words, and external dictionary import from CSV / JSONL is also supported. The tool includes learning statistics, progress management, update notifications, and diagnostic tools.
The embedded vocabulary currently contains about **8000** words, and external dictionary import from CSV / JSONL is also supported. The tool includes learning statistics, progress management, update notifications, and diagnostic tools.

[日本語README](README.md) / [Contributing Guide](CONTRIBUTING.md) / [Security Policy](SECURITY.md)

Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@

SRS での復習に加えて、選択式の `choice` と入力式の `write` の 2 モードを用意していて、音声再生もサポートしています。

デフォルトで内部に語彙が組み込まれており(現在の語彙数: 約**5200**)、外部 CSV / JSONL からの辞書インポートもサポートしています。学習統計や進捗管理、更新通知、診断ツールも備えています。
デフォルトで内部に語彙が組み込まれており(現在の語彙数: 約**8000**)、外部 CSV / JSONL からの辞書インポートもサポートしています。学習統計や進捗管理、更新通知、診断ツールも備えています。

[English README](README.en.md) / [コントリビューションガイド](CONTRIBUTING.md) / [Security Policy](SECURITY.md)

Expand Down
Binary file modified assets/images/home.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2,808 changes: 2,808 additions & 0 deletions assets/words_core.jsonl

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion internal/dict/embed.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import (
projectassets "github.com/harumiWeb/eitango/assets"
)

const CoreWordsVersion = "2026-03-28-leipzig-wnjpn-core-5k-v1"
const CoreWordsVersion = "2026-04-11-leipzig-wnjpn-core-5k-v16"
Comment thread
harumiWeb marked this conversation as resolved.
Outdated

func LoadCoreWords() ([]Entry, error) {
file, err := projectassets.Embedded.Open("words_core.jsonl")
Expand Down
37 changes: 37 additions & 0 deletions tasks/feature_spec.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,40 @@
# 2026-04-11 語彙追加 30000 seed batch

## Goal

- `29000seed` まで進んだ bundled core 語彙拡張を継続し、既存の Leipzig + Japanese WordNet ベースの review workflow に沿って次の batch を追加する。
- `tmp/generated_vocab` の生成物と `assets/words_core.jsonl` を矛盾なく更新する。

## Scope

- `tmp/generated_vocab/meaning_candidates.jsonl` / `review_candidates.tsv` の再生成
- `29001-30000` の parallel review slice 作成と承認結果の反映
- `approved_review_candidates.tsv` / `approved_seed.csv` / `assets/words_core.jsonl` の更新

## Non-Goals

- 既存 18000 rank 以下の承認済み語彙の再審査
- 語彙生成アルゴリズムや score 閾値の仕様変更
- DB schema やアプリ側ロジックの変更

## Required Behavior

- 既存の `scripts/vocab/*.py` workflow を使い、手作業で TSV を再構成しない。
- `29001-30000` の候補だけを今回の review 対象とし、既承認語は重複反映しない。
- `approved_slice_*.tsv` へ入れる行は `status=approved` を守り、`meaning_ja_candidate` と `distractor_group_candidate` を目視確認する。
- `merge_parallel_reviews.py` で承認済み TSV を統合し、`apply_review_batch.py` で bundled core へ反映する。
- 反映後は新規追加帯に対して、`verb` の名詞形代表訳と人名詞 / 食べ物 / 動物の `distractor_group` ドリフトを監査する。
- `go run ./cmd/eitango validate --embedded-core` と `go run ./cmd/eitango doctor` で語彙データの整合性を確認する。

## Acceptance

- `review_candidates.tsv` が `29000` より後ろの rank を含む状態へ更新される。
- `tmp/generated_vocab/parallel_review_30000/approved_slice_*.tsv` が揃う。
- `approved_review_candidates.tsv` / `approved_seed.csv` に `29001-30000` の承認語が追加される。
- `assets/words_core.jsonl` の行数が増え、追加語が bundled core に含まれる。

---

# 2026-04-04 winget 配布追加

## Goal
Expand Down
8 changes: 8 additions & 0 deletions tasks/lessons.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,3 +46,11 @@
- terminal 高さ制約の回帰テストは「view が収まる」だけで終わらせない。keymap editor のような可変リスト画面では `height + 1` で可視行がちょうど 1 行増えることまで固定し、underfill を見逃さない。
- PowerShell の `ConvertTo-Json` は要素数 1 のとき単一 object を返すことがある。Windows voice catalog のように JSON 経由で列挙結果を読む実装では配列 shape を決め打ちせず、object / array の両方を受ける parser と回帰テストを用意する。
- runtime probe の失敗を成功 cache と同一視しない。voice catalog のような外部依存の列挙結果は成功時だけ cache し、catalog 未取得時でも保存済み設定値を空文字へ正規化して消さない。
- core 語彙の代表訳は subject/object の意味の向きを崩さない。`envious` と `enviable` のような対になる語では「うらやむ側」と「うらやまれる側」を取り違えず、俗義や限定義より中心義を優先する。
- core 語彙の `distractor_group` は語種よりも出題時の誤答品質で決める。人物語は `people-noun`、楽器・動植物・素材・日用品は原則 `daily-noun` に寄せ、`business` / `technology` / `learning` へ安易に広げない。
- core 語彙を一括追加した後は、新規 `verb` 行の `meaning_ja` が名詞形のまま残っていないかを必ず点検する。write mode では代表訳がそのまま prompt になるので、`分類` / `中止` のような名詞形を承認すると出題品質をまとめて壊す。
- 同じく新規追加帯では、人を指す `noun` が `people-noun` から外れていないか、食べ物・動物が `travel-noun` に紛れていないかをまとめて監査する。レビュー TSV の候補値がもっともらしく見えても、誤答候補の質はこの分類で大きく崩れる。
- 施設・場所を指す `noun` は `dockyard` / `drugstore` / `tearoom` のように `place-noun` へ寄せ、`pleasurable` のような体験評価の形容詞は `quality-adjective` を基準にそろえる。
- 並列レビューの `approved_slice_*.tsv` は merge 前に `status=approved` を spot check する。行の絞り込みだけで status を `candidate` のまま残すと `merge_parallel_reviews.py` が即失敗し、レビューや監査が完了していても apply に進めない。
- `merge_parallel_reviews.py` は slice dir 内の `approved_slice*.tsv` を広く拾うので、retry 用 TSV を同じディレクトリへ `approved_slice_XX_retry.tsv` のような名前で置かない。比較用の再レビューを作るなら別ディレクトリへ逃がすか、merge 前に必ず退避する。
- core 語彙の多義語は `touchy` / `eject` / `decorator` のように扱いやすい派生義へ寄せず、learner dictionary の先頭義を優先する。人物の恒常的 traits は `obedient` / `meek` と同様に `quality-adjective` を基準にし、一時状態扱いへ寄せない。
9 changes: 9 additions & 0 deletions tasks/todo.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,12 @@
# 2026-04-11 語彙追加 30000 seed batch

- [x] `parallel_review_30000` を `29001-30000` の範囲で作成する
- [x] サブエージェントを使って slice ごとの承認候補をレビューする
- [x] `approved_review_candidates.tsv` / `approved_seed.csv` に 30000 batch をマージする
- [x] `apply_review_batch.py` で `assets/words_core.jsonl` へ反映する
- [x] 新規追加帯の `verb` 代表訳と `distractor_group` ドリフトを監査して必要な補正を入れる
- [x] `validate --embedded-core` と `doctor` で整合性を検証する
Comment thread
harumiWeb marked this conversation as resolved.

# 5k 初回リリース TODO

このファイルは、初回 OSS リリースに向けた active backlog だけを管理する。
Expand Down
Loading