Skip to content

A map of the repository, written where a session will read it - #14

Merged
KnutMann merged 1 commit into
KnutMann:masterfrom
evands:claude-md
Oct 19, 2026
Merged

KnutMann merged 1 commit into
KnutMann:masterfrom
evands:claude-md

Conversation

@evands

@evands evands commented Oct 16, 2026

Copy link
Copy Markdown

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 as AIAdium.m performs 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 including Experimental, and where OMEMO, calls and the XMPP extensions sit.
  • Dependencies/CLAUDE.md: checked in versus fetched versus built, the phase order from build.sh and 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 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. 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

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>
@KnutMann
KnutMann merged commit 3ad7b93 into KnutMann:master Oct 19, 2026
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.

2 participants