refactor: single owners for knowledge/experience prompt blocks (plan 019)#90
Open
DavertMik wants to merge 1 commit into
Open
refactor: single owners for knowledge/experience prompt blocks (plan 019)#90DavertMik wants to merge 1 commit into
DavertMik wants to merge 1 commit into
Conversation
…019) The "render relevant knowledge" and "render experience TOC" prompt blocks were re-implemented in 5 places with two tag names (<knowledge> vs <hint>). Move each to its owning tracker: - KnowledgeTracker.renderRelevantKnowledge(state) - ExperienceTracker.renderExperienceTocFor(state) TaskAgent.getKnowledge/getExperience, Navigator (resolveState + verifyState), Researcher.buildResearchPrompt, and Pilot.getExperienceToc now delegate. Tag unified on <knowledge> (was <hint> in Navigator/Researcher). Researcher now sources knowledge from the KnowledgeTracker (already env-interpolated via plan 010) instead of the StateManager copy. Steps 2 & 3 of the plan (shared tracker instances; historian per-call KnowledgeTracker) are already satisfied in main by the DI cleanup + plan 010. Steps 4 (deletion-scope dedup) and 5 (Navigator.visitOnce -> Explorer.visit, behavioral) are deferred. Adds unit tests for both renderers; updates the tracker mocks in tester/ researcher tests to expose the new render methods. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Explorbot Self-RegressionCommit
Attempt details
Session analysis — basic (native): Session AnalysisExplored the Issues list page functionality - core CRUD and filtering operations. The primary issue list features work, though status filter automation required multiple locator attempts before succeeding. Coverage
What works
Execution Issues
|
DenysKuchma
approved these changes
Jul 13, 2026
DenysKuchma
left a comment
Collaborator
There was a problem hiding this comment.
Merge only after 92 and before 91
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Plan 019 — One owner for knowledge/experience prompt blocks
The "render relevant knowledge" and "render experience TOC" prompt blocks were re-implemented in 5 places with two different tag names (
<knowledge>in the base class vs<hint>in Navigator/Researcher). This moves each to its owning tracker (per the CLAUDE.md Code Ownership Map):KnowledgeTracker.renderRelevantKnowledge(state)ExperienceTracker.renderExperienceTocFor(state)Consumers now delegate:
TaskAgent.getKnowledge/getExperience→ one-line delegations (kept for subclasses).Navigator.resolveState+Navigator.verifyStateknowledge/TOC blocks.Researcher.buildResearchPrompt— also switches the knowledge source from the StateManager copy toexplorer.getKnowledgeTracker()(already${env.*}-interpolated via plan 010).Pilot.getExperienceToc.Tag unified on
<knowledge>(Navigator/Researcher previously emitted<hint>). No prompt wording changed beyond the tag.Drift reconciliation
This plan was written at
9e22b0d. Since then:explorer.getKnowledgeTracker()/getStateManager().getExperienceTracker(), Captain usesexplorBot.experienceTracker(). Nonew KnowledgeTracker()/new ExperienceTracker()remain in these files.new KnowledgeTracker()) — already gone fromhistorian/.Deferred
Navigator.visitOnce→Explorer.visit) — DEFERRED: behavioral (AI navigation would start honoring knowledgewait/waitForElementhints); wants its own review, as the plan's checkbox allows.Verification
bun test tests/unit→ 768 pass / 0 fail (+4 renderer tests).bun test tests/integration/→ 63 pass / 0 fail.bun run lint→ clean;tscin touched files neutral vs main (21).grep -rn "<hint>" src/ai/→ 0.<hint>assertions existed).🤖 Generated with Claude Code