Repository navigation
refactor(aidd-context): clean the memory engine and fix what real refreshes showed - #1195
Merged
Merged
Conversation
…e table main was one 96-line chain of ifs. Each command is now its own function, listed with its usage in one table; main looks it up, and the usage line is built from the same table. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RY5w5aeGrLa7U4uNXpujGQ
…ts sentences Closes #1192. The skill-files suite matched sentences of the skill with exact regexes, so any rewording broke it with no behaviour changed. What stays runs the engine or the file tree: the templates pass the engine, the capability table matches the templates, the lint command fails a planted marker, the engine paths match the real installs, the skill's markdown is table-first. New: every engine command the skill names is one the engine accepts. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RY5w5aeGrLa7U4uNXpujGQ
…ole of it in a file On a real refresh the plan quoted 70-word paragraphs and showed no verb. The chat now gets one line per item, its verb in a column (write, add, change, move, remove) and the quoted line cut short; plan.md beside the sheet holds every line whole with a path:line link. A reply takes a range: not 5-12. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RY5w5aeGrLa7U4uNXpujGQ
… by its wrapping On a real refresh, 24 of 25 lines flagged lost were a wrapped paragraph rewritten as a list, or paths an approved move rewrote; one was a real loss. A line is now lost when a word that carries a fact (a number, a path, code, or a word of six letters or more) is held fewer times across the bank: one such word, two words, or every word it had. An approved move rewrites its paths first. On that refresh: no false alarm, and the real loss, a dropped number, is still caught. Limit: a change of one short word (three to four) is not flagged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RY5w5aeGrLa7U4uNXpujGQ
…er of files in the report The chat gets the change count by verb and the path to plan.md; plan.md leads each item with its number and verb, then every line whole. The report names a folder of more than three written files once. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RY5w5aeGrLa7U4uNXpujGQ
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RY5w5aeGrLa7U4uNXpujGQ
…ne from the skill A real refresh approved a move it had not made yet: the old paths still on disk read as lost. In a repository that holds its own copy of the plugin, the model found that copy's older engine by file name. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RY5w5aeGrLa7U4uNXpujGQ
The root loads every session, internal/ and external/ on demand: where a file sits is the team's choice. A capability file in internal/ was reported misplaced, and a real refresh moved 35,000 words of on-demand files into every session. Only a folder no loading rule reaches is still reported, and an always-written file kept on demand counts as present. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RY5w5aeGrLa7U4uNXpujGQ
|
|
||
| /** Where the quoted line sits in its bank file, as `path:line`, or null. */ | ||
| function locate(root, file, quoted) { | ||
| if (quoted === null) return null; |
… as a lost fact On jq and fzf, refreshes left stale table rows in place: a fact could not hold a pipe, so no line could quote a row. A sheet line is now read from both ends, the fact taking what lies between. A heading left empty by approved removals was flagged lost: a heading holds no fact. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RY5w5aeGrLa7U4uNXpujGQ
On jq, a refresh removed a whole table with approval and its header row read as lost. Like a heading, a header holds no fact. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RY5w5aeGrLa7U4uNXpujGQ
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.
Summary
Cleanup and fixes to the project memory engine, each found on a real refresh (gouvernail, kairos-app, this framework) and re-checked on the same data.
main()was a 96-line chain of ifs; each command is now a function in one table, and the usage line is built from it.plan.md;plan.mdholds each item numbered, with its verb, every line whole and apath:linelink. A reply takes a range (not 5-12).internal/andexternal/on demand; where a file sits is the team's choice. A capability file ininternal/is no longer reported misplaced (a real refresh moved 35,000 on-demand words into every session); an always-written file kept on demand counts as present.Limits
Test plan
node scripts/check-tests-leave-git-alone.js -- node --test 'scripts/__tests__/**/*.test.js': 2069 pass🤖 Generated with Claude Code
https://claude.ai/code/session_01RY5w5aeGrLa7U4uNXpujGQ