feat!: become ai-kit — the AI layer in one install - #5
Merged
Conversation
The owner of this fleet read the name `ai-ration` and could not tell what the package did. That is not a cosmetic complaint. An unreadable name is a cost paid at every install decision, and this package had exactly ONE adopter while five repos that skipped it — botsmann, evig, kivvi, orangecat, truthseeker — were all taken down together on 2026-08-26 by a retired model id, which is precisely the failure `chain` and `catalog` exist to prevent. "Ration" named one of five modules and hid the other four. Renamed, and widened to match how an app actually thinks about this. Adding an AI feature looks like one decision and is really four — which model, is it still there, what do the 429s mean, who gets the free tier — plus filling forms. Get any one wrong and it fails identically from outside: the assistant is broken. AOZ is the proof: it adopted the form half, hand-rolled the rest because that was a second decision nobody made, and then reported "KI-Assistent nicht konfiguriert" on a deployment whose key was valid. So `ai-forms` is re-exported from the root and from ./forms, ./react and ./server. It is NOT absorbed: it works, four apps run it, and it is genuinely useful outside this fleet. Swallowing it would break four repos to satisfy a filing system. React stays on its own subpath as an optional peer so importing ai-kit on a server never pulls in a UI library. threadkit and limitkit are deliberately NOT merged. Neither has anything to do with AI — an app throttling its login form should not install a model catalogue to do it. Four new tests cover the merge itself, because the merge IS the feature: without them a broken re-export quietly turns this back into ai-ration under a friendlier name and nothing else here would notice. BREAKING CHANGE: the package is now `ai-kit`. Import from 'ai-kit'. The GitHub repo is renamed; existing `github:maonakamoto/ai-ration` installs continue to resolve through GitHub's redirect. Co-Authored-By: Claude Opus 5 (1M context) <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.
Why
You read the name
ai-rationand couldn't tell what it did. That isn't cosmetic — an unreadable name is a cost paid at every install decision, and this package had exactly one adopter while five repos that skipped it (botsmann, evig, kivvi, orangecat, truthseeker) were taken down together on 2026-08-26 by a retired model id: precisely the failurechainandcatalogexist to prevent. "Ration" named one of five modules and hid the other four.What changed beyond the name
Adding an AI feature looks like one decision and is really four — which model, is it still there, what do the 429s mean, who gets the free tier — plus filling forms. Get any one wrong and it fails identically from the outside: the assistant is broken.
AOZ is the proof. It adopted the form half, hand-rolled the rest because that was a second decision nobody made, then reported "KI-Assistent nicht konfiguriert" on a deployment whose key was valid.
So
ai-formsis now re-exported from the root and from./forms,./react,./server. It is not absorbed — it works, four apps run it, and it's useful outside this fleet; swallowing it would break four repos to satisfy a filing system. React stays on its own subpath as an optional peer, so importingai-kiton a server never pulls in a UI library.threadkitandlimitkitare deliberately not merged: neither has anything to do with AI. An app throttling its login form shouldn't install a model catalogue to do it.Verification
npm run verifygreen — lint, typecheck, build, 48 tests. Four are new and cover the merge itself, because the merge is the feature: without them a broken re-export quietly turns this back intoai-rationunder a friendlier name and nothing else would notice.Breaking
Package is now
ai-kit; import from'ai-kit'. The GitHub repo is renamed and existinggithub:maonakamoto/ai-rationinstalls keep resolving through GitHub's redirect. Two adopters to migrate (fleetcrown, dotfiles) — follow-up.