Skip to content

fix: reach the phase with the catalog notice - #5

Merged
kyy-logs merged 2 commits into
mainfrom
codex/experience-catalog-notice
Oct 13, 2026
Merged

kyy-logs merged 2 commits into
mainfrom
codex/experience-catalog-notice

Conversation

@kyy-logs

Copy link
Copy Markdown
Owner

The exploration prompt already promised that "the round's own facts say whether any
history exists, and under which categories". Nothing carried that fact, and the module
could not load at all: experience_catalog.py imported ExperienceCatalogNotice from
core.models, which never defined it.

The pointer now reaches the phase

  • list_experiences takes an optional category, and a page lists every card when none is
    given: the three categories say what a card is about, not who may read it. Requiring a
    guess made the category a gate -- a phase that asked about workflow while the library
    held one framework card was told the library was empty.
  • each catalog entry names its own category, so a cross-category page is self-describing.
  • core.models gains ExperienceCatalogNotice, AgentContext carries it, and the phase
    message renders it. Only the pointer travels -- a count and the categories. Names and
    bodies stay behind list_experiences and read_experience, so browsing remains the
    phase's own decision.

Verified

  • Full suite: 882 passed, 10 skipped (out-of-repo basetemp; the 10 are the known
    environment gaps -- no ripgrep, no Windows symlink privilege).
  • Unit: the page's own category, and the unfiltered page that lists every card.
  • Real model runs on pytest-8906: with a one-card library the phase message carries
    "experience_catalog":{"categories":["framework"],"count":1}; with experience off the
    field is absent. Neither run leaks the card's name or description.

🤖 Generated with Claude Code

kyy-logs and others added 2 commits October 13, 2026 00:43
The exploration prompt promises that the round's own facts say whether any
history exists, and under which categories. Nothing carried that fact, and
the module could not load at all: experience_catalog.py imported
ExperienceCatalogNotice from core.models, which never defined it, so every
collection that touched the catalog ended in ImportError.

- list_experiences takes an optional category, and a page lists every card
  when none is given: the three categories say what a card is about, not
  who may read it.
- each catalog entry names its own category, so a cross-category page is
  self-describing.
- core.models gains ExperienceCatalogNotice, AgentContext carries it, and
  the phase message renders it. Only the pointer travels -- a count and the
  categories; names and bodies stay behind list_experiences and
  read_experience, so browsing remains the phase's own decision.

Verified with the phase-message test (the notice present, card text absent)
and the experience suites: 88 passed, 1 skipped.

Co-Authored-By: Claude Code <noreply@anthropic.com>
The page now names each entry's category, so the key set the unit test
pinned had to grow by one, and the unfiltered page -- the whole point of
the change -- had no unit-level test at all: it was only covered through
the SDK integration test.

Co-Authored-By: Claude Code <noreply@anthropic.com>
@kyy-logs
kyy-logs merged commit cdc13e9 into main Oct 13, 2026
0 of 36 checks passed
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.

1 participant