promote
Skill2 starsChanged 33 days agoMITView on GitHub
Decide the candidates for core in a project built as streams (spec 31): code in one stream's module that another stream repeats, wants to import or copied, or that repeats core. Reads each candidate's evidence, promotes it with a platform story that moves it into core and switches every stream to it, or keeps it in its module with why. Use when code-kit's loop or `code-kit next` says candidates are proposed for core, or the person runs /code-kit:promote [candidate ids].
19 other projects use a version of this.
Adopted by
Most recently taken up by
- HiteSit/real-scientist-skillstheir own version, first seen Nov 15, 2026
- anotherben/claude-harnesstheir own version, first seen Nov 8, 2026
- ArcticFox2029/chamnantheir own version, first seen Nov 5, 2026
- jbaruch/nanoclaw-hosttheir own version, first seen Oct 31, 2026
- anis-dr/skillstheir own version, first seen Oct 15, 2026
- wrg32786/aigent-ostheir own version, first seen Oct 13, 2026
Used with
Projects with it also use research.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
NVIDIASkillresearch
Before designing a feature, research how comparable libraries solve the problem, check best practices, known pitfalls, and upstream changes. Use when starting a new feature, investigating an unfamiliar area, or the user asks to research something.
Also in 3 projects that use this
Other versions19 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 19
- oliver-kriska/claude-elixir-phoenix★ 573same name
- dedalus-labs/wingman★ 181same name
- HiteSit/real-scientist-skills★ 27same name
- wrg32786/aigent-os★ 25same name
- Hassaan146/claude-skills★ 18same name
- shahshrey/unclaw★ 17same name
- ArcticFox2029/chamnan★ 10same name
- nmhjklnm/yaohe★ 9same name
- anotherben/claude-harness★ 7same name
- anis-dr/skills★ 3same name
9 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
The file
Files
Decide what goes into core
In a project built as streams, each stream's lanes own its modules, and core is the code every stream builds on. When the same capability shows up in two streams, it belongs in core: built once, with one owner. code-kit raises a candidate when it sees code alike in two streams' modules (names aside), a lane refused an import of another stream's module, a lane copying files into a module, module code that repeats core, or a story's requirement that another stream's spec already has. Nothing moves by itself: you decide each one. It's yours when your stream is the platform (it owns core), or, without a platform stream, when the candidate touches your stream.
The CLI is node "${CLAUDE_PLUGIN_ROOT}/bin/code-kit.mjs".
1. Read the candidates
node "${CLAUDE_PLUGIN_ROOT}/bin/code-kit.mjs" promote --jsonEach open candidate has its id, kind (clone, core-clone, import, copy, requirement), what, the files (where), the streams it touches and its evidence. The argument, if given, names the ids to take. For each, read the code on both sides: the lines what names, and enough around them to see what the code does and what it depends on.
2. Judge it
Promote only when all of these hold:
- A second real use. Two streams use it, or one stream uses it and another needs it now (a refused import, a story whose requirement repeats one). One stream's code stays in its module however general it looks.
- The same thing. The two copies do the same job for the same reason. Code alike by accident (two loops over different things) isn't a capability: reject it with that reason.
- Core can own it without knowing the streams. Once moved, it must not import a module or name a stream's types, data or rules. Where it does, either the stream-specific part stays behind (core takes a parameter, an interface or a callback), or it isn't core's.
- It fits core's layer. It moves into the core layer of the same technical layer (an API module's code into API core), never across layers.
A core-clone is a stream rebuilding what core already has: there's nothing to promote. Reject it with "use core's <name>", and tell that stream's lead, who sends the lane back to use core's.
3. Act on it
Promote. Write a story in the platform's plan (yours, as the platform's lead; without one, in your stream's plan on a core lane), with
**Promotes:** <id>, that moves the code into core, switches every stream's module that had it to core's, and proves it with tests every stream that uses it runs. Large code moves in steps, lower layers first, a few files a story. Then record it:node "${CLAUDE_PLUGIN_ROOT}/bin/code-kit.mjs" promote accept <id> --story ST-nThe candidate closes when that story merges.
Keep it in its module. Say why, so it isn't proposed again until its evidence changes (a third stream, a new copy):
node "${CLAUDE_PLUGIN_ROOT}/bin/code-kit.mjs" promote reject <id> --reason "<why it stays>"
4. Report
One line per candidate: what it was, what you decided and why. "P-3: the price rounding in both streams' checkout promoted as ST-210 (same rule, no stream types)."
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

