https-deeplearning-ai / https-deeplearning-ai/spec-build-lab
Tooling: /generate-spec never reads materials/slides/, which the guide names as a design-argued detection source
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 3
- Forks
- 3
- Avg merge
- 20h 23m
- Merged PRs (30d)
- 6
Description
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/**/*andmaterials/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:
-
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.
-
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:
SKILL.mdstep 3 — globmaterials/slides/**/*as a third, optional source (absent in most courses; no refusal when missing).- 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
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with .claude/skills/generate-spec/SKILL.md step 3 and the guide's §4 Pass B, then inspect the referenced course slides and existing material globs. Add slides as an optional source and document their evidence weight against transcripts and shipped code. Done means both halves ship together, contradictions are recorded rather than silently resolved, and the no-flag path is regenerated separately.
Written by the indexing model from the issue text.
Assessment
- Domain
- documentation, tooling
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 58/100