Tooling: /generate-spec never reads materials/slides/, which the guide names as a design-argued detection source

オープン
#29 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
58/100
issue の種類
機能追加
明瞭さ
おおむね明確
活発さ
活発

調査の方向性

.claude/skills/generate-spec/SKILL.md のステップ 3 とガイドの §4 Pass B から始め、参照されているコーススライドと既存のマテリアルの glob を確認します。スライドを任意のソースとして追加し、トランスクリプトおよび出荷済みコードに対する証拠の重みを記録します。完了の条件は、両方の部分が一緒に出荷され、矛盾が黙って解決されるのではなく記録され、no-flag パスが別途再生成されることです。

索引モデルが issue の本文から書いたものです。

説明

Found twice independently on 2026-09-13/14, on the Qdrant Edge course.

.claude/skills/generate-spec/SKILL.md step 3 reads:

Read every material. Glob materials/notebooks/**/* and materials/transcripts/**/*, then read each non-empty file.

But the base guide's §5.5 design-argued route names a third source:

design-argued (course-argued) — the transcripts/slides explicitly present an alternative and argue a trade-off

So the guide expects slides to be mined, and the skill never opens them. Because both globbed directories are non-empty, the skill's "No materials found" refusal never fires — the omission is silent.

Why it matters here

courses/building-on-device-ai-memory-with-qdrant-edge/materials/slides/sc-Qdrant-C3-slide-descriptions.md (440 lines) carries content in neither the notebooks nor the transcripts. Folding it in by hand produced two changes to the spec that nothing else would have caught:

  1. A business rule that was untestable without it. A slide states the payload filter is part of the query, not a post-processing step. The rule as originally written ("returns only points satisfying every condition") is satisfied by post-filtering too, and on a 21-point fixture corpus both implementations return identical ids. A discriminating criterion had to be added: filter a food question to an unrelated category and assert the lone member of that category comes back — a point no unfiltered top-3 would contain.

  2. A genuine contradiction between materials. A Lesson 4 slide describes all modalities "merged into one inbox ranked by score". It appears in no video, and the shipped code renders three separate lanes and names the blended list as the thing not to do. Without the slides, the conflict is invisible; with them, it resolves as shipped-code-wins and gets recorded rather than silently decided.

The decks also carry a third lesson numbering from an abandoned six-lesson plan, off by one from the videos — exactly the §12.1 lesson-numbering trap, undetectable without reading them.

Implication

Any course shipping slides generates a spec missing whatever the slides uniquely argue, with no warning. The two sources also have different evidential weight — 8 of this course's slides appear in a lesson video, 15 exist only in the decks — which the guide has no vocabulary for.

Proposed fix — not applied

Deliberately deferred: widening the glob changes the no-flag path, which the --env work was committed on the explicit promise of leaving untouched. It should land on its own, with its own regeneration.

Two halves, and they should ship together:

  1. SKILL.md step 3 — glob materials/slides/**/* as a third, optional source (absent in most courses; no refusal when missing).
  2. Guide §4 Pass B — say how slide evidence is weighted against narration and shipped code. Suggested: a slide that appears in a lesson video ranks with the transcripts; a slide that exists only in a deck is weaker than either, and where it conflicts with shipped code or narration, it loses and the conflict is recorded in CTX-C rather than resolved silently.

Half 1 without half 2 makes slides silently outrank the transcripts on a contradiction.

🤖 Generated with Claude Code

主要言語
Python
スター
3
フォーク
3
平均マージ
20時間 23分
マージ済み PR(30日)
6

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

https-deeplearning-ai/spec-build-lab のほかの issue

https-deeplearning-ai/spec-build-lab の issue をすべて見る

似ている issue

Python の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。