Skip to content

Step 2 of #874: a repo- and tech-stack-scoped experience library #946

Closed

Description

@Birfy

Step 2 of #874 only. Merging the pull request that fixes this issue does not close the RFC: #874 still carries Step 3, and no Fixes #874 belongs anywhere.

What

An offline experience library, keyed by repository and tech stack, kept separate from the root LESSONS.md. The host reads it; nothing on the turn path changes.

Acceptance (all of it holds at cd7b314d, the tip of #941)

  1. Lessons are JSON files under core/dev/experience/repos/<owner>/<name>/ and core/dev/experience/stacks/<techStack>/. Seeds: repos/ThinkFlowLab/FlyBot/stale-base.json, repos/ThinkFlowLab/FlyBot/one-conclusion.json, stacks/node-host/generated-gates.json.
  2. lookupExperience (core/src/host/experience.js:164) reads exactly one scope: a repo lookup opens only that repo's directory (:225), a tech-stack lookup returns entries whose repo is null (:249), and a call with neither key returns an empty list. There is no model call on this path.
  3. rt.harnessExperience (core/src/host/harness.js:228, installed at :236) is the host-facing reader; harnessPro (:176) still names CI, core/dev/eval and rsi-baseline.
  4. node core/dev/experience/check.mjs validates the tree (checkExperience, core/src/host/experience.js:264). Its add writes one new file and refuses to overwrite; it does not edit a harness config.
  5. The Lite / Medium / Heavy budgets are unchanged and applied stays false; the tier harnesses (core/src/host/harness.js:88) route exactly as Step 1 left them.
  6. The read API lives in core/src/host/experience.js; the JSON library lives in core/dev/experience/, which the npm package does not ship. So a packaged install's default read returns no entries. Test: core/test/experience.test.js.
  7. patches/ds-bot/files/ carries byte-identical copies of every added or modified core file, and node scripts/ds-bot-patches.mjs check passes.

Verification

cd core && TZ=UTC npm test
node core/dev/experience/check.mjs
node scripts/ds-bot-patches.mjs check

Out of scope

Step 3. Option D (an online self-modifying harness). Injecting lessons into the prompt. Changing the merge gate or enqueue-guard. Replacing CI, core/dev/eval or rsi-baseline. Closing #874.

Notes

Activity

  1. added
    enhancementNew feature or request
    agent-prPull request opened by an agent
    area:automationScheduled tasks and automation
    on Oct 24, 2026
  2. removed
    agent-prPull request opened by an agent
    on Oct 24, 2026
  3. added a commit that references this issue on Oct 24, 2026
    5eefe32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:automationScheduled tasks and automationenhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions