Repository navigation
A map of the repository, written where a session will read it - #14
Merged
Merged
Conversation
The repository has had no CLAUDE.md, AGENTS.md or CONTRIBUTING, and never has. Its conventions are consistent and nowhere written down: a commit title that is a sentence, a body that says what was checked, a header on every script, a library that arrives with its script and its table row. A session that starts without them guesses, and guesses generic. Five files, and the split is deliberate. The one at the root is what every session needs before it knows where to go: what the application is, where each layer lives, how it is built and checked, and what a change has to satisfy. The other four sit in Source/, Frameworks/Adium, Plugins/Purple Service and Dependencies/ and say how that part is put together: the launch order, the model classes and what a feature implements, the two ways a service is registered and every key a descriptor can carry, the phases of the dependency build and which of them are dead. Claude Code loads a CLAUDE.md in a subdirectory only once a file there is opened, so a session pays for the 91 lines at the root on arrival and for the other 260 only as it enters an area. Everything stated was read from the tree rather than remembered: the controller list from AIAdiumProtocol.h, the launch order from AIAdium.m, the component list from AICoreComponentLoader.m, the service registrations from CBPurpleServicePlugin.m, the descriptor keys from the plist, the phase order from build.sh. Every class, file and script the five files name was checked to exist. What is true today and may not be next month, such as which test fails, was left out on purpose. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
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.
The repository has no CLAUDE.md, and its conventions are consistent but nowhere written down. This adds five: a root file holding what every session needs on arrival, and four nested files that Claude Code loads only once a file in that folder is opened, so the cost of the depth is paid per area rather than per session.
CLAUDE.md(91 lines): what the application is, where each layer lives with a pointer to its nested file, the build and unit-test commands, and what a change has to satisfy (Objective-C under ARC, the library and licence rule, script headers and the generated indexes, the strings hook,docs/, commit style).Source/CLAUDE.md: the launch order asAIAdium.mperforms it, each controller and what it owns, and where the contact list, preferences window, OTR, voice notes and logging are.Frameworks/Adium/CLAUDE.md: the model classes and their relationships, what a feature implements, the controller protocols, and the contact list view.Plugins/Purple Service/CLAUDE.md: the bridge and its callback files by subsystem, the two ways a service is registered, every key a descriptor row can carry includingExperimental, and where OMEMO, calls and the XMPP extensions sit.Dependencies/CLAUDE.md: checked in versus fetched versus built, the phase order frombuild.shand which phases are dead, and the rule for adding a library.Everything stated was read from the tree: the controller list from
AIAdiumProtocol.h, the launch order fromAIAdium.m, the component list fromAICoreComponentLoader.m, the service registrations fromCBPurpleServicePlugin.m, the descriptor keys from the plist, the phase order frombuild.sh. Every class, file and script the five files name was checked to exist. Nothing in them is a status or a todo; what is true today and may not be next month was left out on purpose.🤖 Generated with Claude Code