Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: https-deeplearning-ai/spec-build-lab
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: guide-revisions-batch
Choose a base ref
...
head repository: https-deeplearning-ai/spec-build-lab
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: main
Choose a head ref
Checking mergeability… Don’t worry, you can still create the pull request.
  • 7 commits
  • 16 files changed
  • 3 contributors

Commits on Sep 10, 2026

  1. Merge pull request #25 from https-deeplearning-ai/guide-revisions-batch

    Revisions batch: on-ramp + model currency + D13 scope row (spec), six guide rules, first full live-AC run (6/6 after the thread-identity fix)
    Carr1005 authored Sep 10, 2026
    Configuration menu
    Copy the full SHA
    e05a825 View commit details
    Browse the repository at this point in the history

Commits on Sep 11, 2026

  1. Add the Qdrant Edge course and its AI-Coding-Lab spec

    New course: Building On-Device AI Memory with Qdrant Edge (5 lessons,
    Dylan Couzon). Materials are the notebook dump (L3-L5 + helper.py +
    requirements.txt + ro_shared_data), the five transcripts, the slide
    descriptions, and environment.md — the AI Coding Lab runtime the build
    targets.
    
    The spec is filed as the variant, spec.coding-agent-lab.md, because it is
    generated against that environment rather than for an unknown one. Two
    consequences:
    
    - The Decision Ledger carries four rows, not ten. Five of the six
      learner-context dimensions are fixed by the lab (project and goal are
      §1, data is the §5 fixture corpus, the runtime is the container, and
      the course uses no LLM at all, so there is no provider to pick). What
      remains is course decisions: on-device vs cloud sync, one store vs a
      store per purpose, similarity vs similarity+freshness, plus the
      scope-boundary row that presents §1 at the gate.
    - Environment facts are labelled [environment] throughout and given
      their own CTX-E provenance row, so the course is never credited with
      port-4000 rules, the container's provider keys, or the choices-fence
      question mechanism.
    
    The slides earned two changes the other materials could not: R7 now
    states that the filter runs inside the query rather than trimming its
    results, with AC7b to discriminate the two (a garden-filtered food query
    must still return the lone garden note); and R5 records that the course
    drafted a merged single-inbox display and dropped it — it appears in no
    video, while the shipped code renders separate lanes and names the
    blended list as the thing not to do. The decks also carry a third,
    abandoned lesson numbering, noted in CTX-E so it is never cited.
    
    No canonical spec.md yet, so /prepare-build will refuse on this course
    until one exists.
    
    Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
    Carr1005 and claude committed Sep 11, 2026
    Configuration menu
    Copy the full SHA
    cae6e29 View commit details
    Browse the repository at this point in the history

Commits on Sep 13, 2026

  1. Add /generate-spec --env=<slug> via an overlay guide

    The Qdrant course's lab-targeted spec was not reproducible. The transcript
    of the session that produced it shows the skill read the base guide plus
    materials/notebooks/ and materials/transcripts/ and nothing else —
    environment.md was never opened by any tool; it was in the model's context
    only because the user's message carried it. Every lab-specific decision
    (dropping five of six learner-context rows, inventing an [environment]
    label, naming the choices fence as the gate's tool, ignoring the
    lab-packaging half of environment.md) was improvised mid-generation and
    recorded nowhere. The spec's header still claims conformance to guide
    8e44ecb, which mandates six learner rows; it has one.
    
    This makes that mode real, without touching the base guide.
    
    - environments/coding-agent-lab.md: environment.md moved out of the course's
      materials/. One environment serves many courses, and materials/ is what
      /eval-materials-vs-build scores a build against, so a runtime doc there
      would eventually be scored as course fidelity.
    
    - references/spec-generation-guide.coding-agent-lab.md: the overlay. It
      overrides exactly two base passages — §3's input gate and §5.5 step (f) —
      and quotes each verbatim so staleness is mechanically detectable. Its
      precedence rules say the base guide wins everywhere it is silent, and that
      an unanticipated conflict is reported as an overlay gap rather than
      resolved silently at generation time. Everything else it contributes is
      additive: the Environment Resolutions table, an [environment] provenance
      label, §14 checklist items, and the runtime facts distilled from the
      source doc's §4, §5.1, §6 and §9. The choices fence is an input to base
      §6.0 ("use a structured tool if you have one"), not an override of it.
    
      The overrides are two-phase where it matters: all six learner-context rows
      are still derived in full, then resolved as ANSWERED / CONSTRAINED / KEPT,
      with an ANSWERED row's invariant required to land somewhere named. Ordering
      is load-bearing — the runtime facts are not to be read until derivation is
      done, because a dimension never written down cannot be resolved, and that
      is exactly how five rows vanished untraced the first time.
    
    - Both SKILL.md files take --env=<slug>; the no-flag path is unchanged word
      for word. prepare-build normalises the filename when it snapshots, so the
      build agent and both eval skills never learn a variant was involved, and
      its announcement string is untouched because extract.py regex-matches it.
    
    - .gitignore's negation becomes a wildcard, so a new slug needs no edit.
      CLAUDE.md, its tracked twin AGENTS.md, and README.md document the flag.
    
    Verified: zero diff to the base guide; both overlay quotes match it
    verbatim; the extract.py bookend still matches; no existing SKILL.md line
    reworded. Regenerating both Qdrant specs is the next commit and the real
    test of the overlay.
    
    Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
    Carr1005 and claude committed Sep 13, 2026
    Configuration menu
    Copy the full SHA
    b0d88d6 View commit details
    Browse the repository at this point in the history
  2. Qdrant: add the agnostic spec.md, conform the variant to the overlay

    The course had only the lab variant, so there was nothing to compare it
    against and no way to answer "what does the lab actually change" except by
    reading prose. It also could not be built at all: /prepare-build needs a
    spec.md.
    
    spec.md is generated agnostically from the same materials under guide
    8e44ecb: nine Ledger rows — the six learner-context dimensions (project,
    data/inputs, goal, model/provider, environment, scope-boundary) plus the
    same three course-owned rows the variant carries (memory locality,
    topology, ranking). The variant has four. The five-row difference is the
    environment's whole effect, and it is now a diff between two files rather
    than a claim.
    
    The variant is brought into conformance with overlay b0d88d6: its
    hand-written "Four rows, not ten" note becomes the Environment Resolutions
    table the overlay mandates, accounting for all six dimensions as ANSWERED,
    CONSTRAINED or KEPT with each invariant's new home named. Its header now
    states honestly that the file predates the overlay, that its lab decisions
    were made by hand rather than by rule, and that a clean-room regeneration
    is still pending.
    
    Also fixed in both, from auditing them side by side:
    - AC8b — a typed description must retrieve a photo. R4 claims a question is
      embedded once per space, but only the image-to-image path was tested; the
      cross-modal half, which is the course's most distinctive capability, had
      no criterion in either spec.
    - AC18 was orphaned in spec.md (no rule cited it); R2 now does.
    
    Note the count: nine rows agnostic. Earlier in this work that number was
    asserted from arithmetic (six plus three) before any agnostic spec existed.
    It happens to be right, but it was a guess then and is an artifact now.
    
    Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
    Carr1005 and claude committed Sep 13, 2026
    Configuration menu
    Copy the full SHA
    95f5af9 View commit details
    Browse the repository at this point in the history

Commits on Sep 14, 2026

  1. Overlay: fix the three defects the clean-room run exposed

    First real test of --env=coding-agent-lab: a subagent with no memory of the
    authoring session generated the spec from the guide and overlay alone. It
    worked — and found three defects in the overlay, two of which it could only
    flag rather than obey.
    
    1. The overlay contradicted itself on reading order. OVERRIDE 2 said "do not
       read the RUNTIME FACTS section until Phase 1 is complete", but the same
       file's header said read it in full and the mandatory staleness check forced
       reading it before generating. Unsatisfiable: you cannot un-read part of a
       file you were told to read, and cat/Read return it whole.
    
       RUNTIME FACTS now lives in spec-generation-guide.coding-agent-lab.runtime.md,
       opened at OVERRIDE 2 Phase 2. The ordering is enforceable because it is
       physical — the file simply isn't open yet. SKILL.md resolves both halves at
       step 0 and reads only the rules half at step 2.
    
    2. model/provider resolved wrongly, and this is the substantive one. ADD 1
       hardcoded CONSTRAINED. But this environment fixes the model the coding agent
       runs on and supplies ambient LLM credentials; it fixes nothing about models
       the course's own pipeline uses. For a course whose models are local encoders
       that deletes a real learner decision — one with a real invariant and a real
       switching cost, since changing an encoder means re-embedding everything.
    
       The cell is now conditional: app needs an LLM -> CONSTRAINED; course pipeline
       needs none -> KEPT as an ordinary Ledger row, plus a rule that the ambient
       keys must not be read. The runtime companion's own section now defers to that
       test instead of implying the CONSTRAINED answer.
    
       The clean-room run complied with the wrong table and reported the gap, which
       is precedence rule 3 working as designed — it just produced a spec missing a
       legitimate row.
    
    3. Base §14's learner-row checklist items had no rows to apply to once five
       dimensions were resolved. ADD 3 now re-points them at the Environment
       Resolutions table: a resolved dimension discharges the obligation at its
       named home, a KEPT one as an ordinary row. Neither line is waived.
    
    Base guide: still zero diff. Both OVERRIDE quotes still match it verbatim.
    
    Not fixed here, filed instead: four base-guide findings (row-grouping
    ambiguity, no category for a fixture-inexpressible input, §5 vs §14 on version
    pinning, and the surfacing-bar divergence itself) and the slides glob. Fix and
    test travel together; those need a promotion pass, not a hand edit.
    
    Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
    Carr1005 and claude committed Sep 14, 2026
    Configuration menu
    Copy the full SHA
    58ecfb9 View commit details
    Browse the repository at this point in the history
  2. Qdrant: replace both hand-written specs with clean-room generated ones

    Both files in this course were written by hand and audited by their own
    author. Neither had ever been produced by running the skill. Two subagents
    with no memory of the authoring session generated them from the guide,
    the overlay and the materials alone, forbidden from reading the prior
    outputs. Their work replaces mine.
    
      spec.md                   738 hand-written ->  590 generated (11 Ledger rows)
      spec.coding-agent-lab.md  789 hand-written ->  805 generated  (6 Ledger rows)
    
    The three overlay fixes in 58ecfb9 all verified against the run that could
    not have known about them:
    
    - model/provider now resolves KEPT, and the variant carries a real
      "Encoder set" Ledger row (D1) whose Options mark the GPU-class and
      hosted-API realizations impractical-in-this-environment rather than
      deleting them. Under the old overlay this row did not exist at all.
    - The .runtime.md companion was opened after all six dimensions were
      derived, and the run reported that ordering unprompted. The reading-order
      contradiction is gone.
    - No orphaned §14 checklist items reported.
    
    Both specs audited structurally before adoption: JSON Schema blocks parse,
    every AC traces to a business rule (the agnostic spec added an explicit
    rule column to its AC table, which is mechanically checkable in a way my
    prose citations were not), §0 gate present and first, CTX pack complete,
    four-way failure encoding mapped.
    
    The two runs also disagree with each other, which is the finding. On the
    same course and the same base guide: the agnostic run made the memory store
    a `realization` row and the id scheme a `contradicted` row; the variant run
    produced zero `realization` rows, reasoning that a keyless pip install and
    model download does not clear §3's heavy bar. Both baked freshness ranking
    in as a business rule where I had made it a Ledger row.
    
    Findings filed, not fixed: #28 (four base-guide defects, including the
    surfacing-bar divergence) and #29 (the slides glob). Six further overlay
    gaps surfaced by these runs — the deliverable's shape, ADD 2 forbidding a
    co-label the course and environment both require, ADD 3's empty-invariant
    branch, the "Standalone Takeaway" title in lab mode, the overlay's missing
    self-commit, and whether environments/coding-agent-lab.md may be opened —
    are not yet filed.
    
    Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
    Carr1005 and claude committed Sep 14, 2026
    Configuration menu
    Copy the full SHA
    93a4ff0 View commit details
    Browse the repository at this point in the history
  3. Merge pull request #27 from https-deeplearning-ai/course/building-on-…

    …device-ai-memory-with-qdrant-edge
    
    Add the Qdrant Edge course, the --env harness, and both generated specs
    Carr1005 authored Sep 14, 2026
    Configuration menu
    Copy the full SHA
    4ebd451 View commit details
    Browse the repository at this point in the history
Loading