Skip to content

G-EDIT-TRIM-H: ASR呼び出し失敗時のロバスト性テストを追加、G-EDIT-TRIM-Iは既存実装を確認 - #63

Closed
rahiseko-alt wants to merge 2 commits into
mainfrom
feature/trim-hi-asr-robustness
Closed

rahiseko-alt wants to merge 2 commits into
mainfrom
feature/trim-hi-asr-robustness

Conversation

@rahiseko-alt

Copy link
Copy Markdown
Owner

概要

  • G-EDIT-TRIM-H(ASR呼び出しが失敗しても詰め処理がクラッシュしない): tests/trim-hi-asr-robustness-check.mjs を新設し、video-shorts/package.json の test チェーンへ登録した。
    • モック注入点は pipeline.mjs の export renderSegment の words 引数(cmdRender は transcript.words || [] を渡すだけで、実際の ASR は別プロセス src/transcribe.py が事前に書く出荷経路のため)。
    • mockTranscribe(scenario) で (a) タイムアウト (b) 不正JSON (c) 空words配列 を模し、resolveWordsFromAsr() が例外を投げず [] へ落とすことを確認したうえで renderSegment を実行。
    • 実測(ffprobe)で (1) 例外を投げない (2) 出力尺が入力尺と一致する、の2点を確認。
    • 対照として、無音2.0秒を含む本物の words を渡すと出力尺が明確に縮むことも確認(測り方が「詰めた/詰めていない」を区別できることの担保)。
    • 実行結果: 12 PASS / 0 FAIL。本体コード(trim-plan.mjs 等)は既にこのロバスト性を満たしていたため、テスト追加のみで対応。
  • G-EDIT-TRIM-I(語データが壊れていても詰め処理が落ちない): 既に tests/trim-plan-check.mjs に対応するテスト「時刻が壊れた語は無視する(落ちない)」が存在し、20 PASS / 0 FAIL であることを確認。追加実装・追加テストは不要と判断。
  • docs/roadmap.html: 両葉を status: "doing" にし、実施内容・確認結果を detail に追記(criteria.text/criteria.verify 本文は無変更)。meta.active/meta.next/meta.handoff も更新。

ローカル確認

node video-shorts/tests/trim-plan-check.mjs        # 20 PASS / 0 FAIL
node video-shorts/tests/trim-hi-asr-robustness-check.mjs  # 12 PASS / 0 FAIL
node scripts/verify-roadmap-evidence.mjs            # OK
BASE_REF=origin/main node scripts/verify-criteria-freeze.mjs  # OK

video-shorts の pnpm test(全体)はローカル実行時に同一ホスト上で他セッションの重いテスト(顔検出・モザイク処理)が並走しており、CPU競合により無関係なタイミング系テスト(M-5-B: モザイク処理の追加時間)が一時的にFAILした(この変更が触れていない face-mosaic-check.py 側の性能しきい値テストで、trim/ASR経路とは無関係)。孤立環境である CI の結果を正とする。

テスト計画

  • node video-shorts/tests/trim-plan-check.mjs が全PASS
  • node video-shorts/tests/trim-hi-asr-robustness-check.mjs が全PASS(新規)
  • node scripts/verify-roadmap-evidence.mjs が緑
  • BASE_REF=origin/main node scripts/verify-criteria-freeze.mjs が緑
  • CI(ci-green)が緑であることを確認

Co-Authored-By: Claude Sonnet 5 noreply@anthropic.com
Claude-Session: https://claude.ai/code/session_014LU9XgyUv1kaJdG3t3XVyY


Generated by Claude Code

ASR(文字起こし)呼び出しが(a)タイムアウト(b)不正JSON(c)空words配列を返した場合でも、
trimパイプライン(pipeline.mjsのrenderSegment)が例外を投げず出力尺が入力尺と一致する
ことをtests/trim-hi-asr-robustness-check.mjsで実測して確認した(12 PASS/0 FAIL)。
モック注入点はrenderSegmentのwords引数。対照として本物のwordsを渡すと尺が縮むことも
確認済み。本体コード(trim-plan.mjs等)は既にロバストだったためテスト追加のみ。

G-EDIT-TRIM-Iは既にtests/trim-plan-check.mjsに対応するテスト(時刻が壊れた語を無視)が
存在し20 PASSであることを確認したのみ(追加実装なし)。

両葉をdoingにし、docs/roadmap.htmlのdetail/handoffを更新(criteria本文は不変)。

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014LU9XgyUv1kaJdG3t3XVyY
@coderabbitai

coderabbitai Bot commented Aug 10, 2026 •

Copy link
Copy Markdown

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: a46ae613-ec2f-4171-9a58-2003ddd21671

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

TOL_SEC=0.06はコメント「コマ周期1/15=0.067秒の半分より小さい」(=0.033秒未満)
という主張と矛盾していた(0.06は半分を超えている)。trim-duration-check.mjsと
同じ値(0.025)へ揃え、1コマぶんの境界ズレを見逃さない厳しさに戻した。
実測(renderSegment実行、words=[])では入出力の尺差が0秒であることを確認済みで、
テストは0.025でも12 PASS/0 FAILのまま。

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
rahiseko-alt pushed a commit that referenced this pull request Aug 11, 2026
調査の結果、両葉はGOAL達成に不要と判明したため削除する。

- PR #63の凍結verify文言が前提とするresolveWordsFromAsr()は本番コード
  に存在しない。ASRはレンダリング前の別プロセスで、pipeline.mjs側に
  ASR呼び出し自体が無いというアーキテクチャと食い違っていた
  (実装漏れでも単純誤記でもなく着手前の言語化ミス)。
- 両葉はstatus:todo(未着手)で、GOAL/STAGE-1の完了ゲートを構造的に
  ブロックする他ノードからの依存も無い。
- 永久に未実装のまま放置しても、trim-plan.mjsに既存の防御コード
  (語配列が空なら全区間keepにフォールバック、不正な語はfilterで除外)
  により実害発生確率は極めて低いことをコード読解とtrim-plan-check.mjs
  の実行(20 PASS)で確認した。
- 両葉はstatus:todoのため verify-criteria-freeze.mjs の凍結対象外
  (凍結はstatus!=="todo"になった時点から。今回は基準変更ではなく削除)。
- ロードマップ全体を横断監査したが、同型の欠陥(凍結verifyが実装に
  存在しない仕組みを前提にしている)を持つ他の葉は見つからなかった。

PR #63(feature/trim-hi-asr-robustness)はこの削除により対象を失うため
別途クローズする。

Copy link
Copy Markdown
Owner Author

クローズします(マスター判断)

このPRが対象とする G-EDIT-TRIM-H / G-EDIT-TRIM-I の2葉を、ロードマップから削除することになりました(#85)。

経緯

  • 調査の結果、このPRの凍結verify文言が前提とする resolveWordsFromAsr() は本番コードに存在しないことが判明しました。ASRはレンダリング前に走る別プロセスで、pipeline.mjs 側にASR呼び出し自体が無いというアーキテクチャと、verify文言の前提が根本的に噛み合っていませんでした(実装漏れでも単純誤記でもなく、着手前の言語化ミスでした)。
  • GOALの受入定義に対して両葉は不要であり、永久に未実装のままでも trim-plan.mjs の既存の防御コード(語配列が空なら全区間keepへフォールバック、不正な語はfilterで除外)により実害発生確率は極めて低いことを確認しました。
  • マスターより「必要性の低い葉は存在がデメリットである」との判断で、削除が決定しました。

このPRで積み上げていただいた検証(renderSegmentへの実データ疎通確認等)自体に問題があったわけではなく、対象とする受入基準(ロードマップの葉)自体が無くなったための対応です。ありがとうございました。


Generated by Claude Code


Generated by Claude Code

rahiseko-alt added a commit that referenced this pull request Aug 11, 2026
調査の結果、両葉はGOAL達成に不要と判明したため削除する。

- PR #63の凍結verify文言が前提とするresolveWordsFromAsr()は本番コード
  に存在しない。ASRはレンダリング前の別プロセスで、pipeline.mjs側に
  ASR呼び出し自体が無いというアーキテクチャと食い違っていた
  (実装漏れでも単純誤記でもなく着手前の言語化ミス)。
- 両葉はstatus:todo(未着手)で、GOAL/STAGE-1の完了ゲートを構造的に
  ブロックする他ノードからの依存も無い。
- 永久に未実装のまま放置しても、trim-plan.mjsに既存の防御コード
  (語配列が空なら全区間keepにフォールバック、不正な語はfilterで除外)
  により実害発生確率は極めて低いことをコード読解とtrim-plan-check.mjs
  の実行(20 PASS)で確認した。
- 両葉はstatus:todoのため verify-criteria-freeze.mjs の凍結対象外
  (凍結はstatus!=="todo"になった時点から。今回は基準変更ではなく削除)。
- ロードマップ全体を横断監査したが、同型の欠陥(凍結verifyが実装に
  存在しない仕組みを前提にしている)を持つ他の葉は見つからなかった。

PR #63(feature/trim-hi-asr-robustness)はこの削除により対象を失うため
別途クローズする。

Co-authored-by: Claude <noreply@anthropic.com>
@rahiseko-alt
rahiseko-alt deleted the feature/trim-hi-asr-robustness branch August 19, 2026 06:22
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.

2 participants