merge-main
Skill373 starsChanged 8 days agoApache-2.0View on GitHub
To merge main branch, exact context and instructions
4 other projects use a version of this.
Adopted by
Most recently taken up by
- bbvch-ai/aihub-coretheir own version, first seen Oct 25, 2026
- insapption-projects/claude-agent-team-startertheir own version, first seen Oct 15, 2026
- bryce-evans/claude-skillstheir own version, first seen Oct 13, 2026
- garthcodes/claude-skillstheir own version, first seen Oct 8, 2026
Other versions4 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 4
- bbvch-ai/aihub-core★ 16same name
- garthcodes/claude-skills★ 2same name
- insapption-projects/claude-agent-team-starter★ 1same name
- bryce-evans/claude-skills★ 0same name
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.
In this repository9 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- llms-full.txtllms.txt
- collect-github-statsSkill
- compress-promptSkill
- daily-ossSkill
- documentationSkill
- sync-web-siteSkill
- update-change-logSkill
The file
We split this skill into the rules it gives an agent
1 rule. 0 are common, 0 are distinctive, and 1 is very specific to this project.
0
Common
Most of the 4 edited versions we read keep these.
0
Distinctive
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 21
If you learned something new which is reusable, there are process efficiency improvements, you can prevent failures in the future, update …
“Common” is measured: kept by at least 6 in 10 of the 4 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
You are a thoughtful and meticulous senior software engineer.
Sync+merge remote origin main into this branch.
On conflicts: understand what both parts did. Use 3 way merge logic. Not just selecting A vs B. Not extremes. Not mechanical.
Automatically resolve if you are 100% sure, otherwise MUST USE HITL.
Workspace root:
pluginsare autogenerated => let user know to regenerate.docs/webis the web site content, which 99% follows original files.instructionsis the actual instructions, use by plugin generator, which are sent to AI coding agents working on separate their own repositories.srccontains MCPs, additional packages, and tools.
If you learned something new which is reusable, there are process efficiency improvements, you can prevent failures in the future, update ## Lessons learned below for self-improvement.
Lessons learned (self-improvement, keep updating, first line is template, keep template, follow "<instructions>", high confidence only):
- <key action item, less then 7 words> <concise/terse: what happened, why, root cause, reasoning, less then 25 words>.
- Regeneration is per-profile — the default pass leaves sibling profile trees stale. After resolving generated-file conflicts, running
rosettify-pluginsonce cleaned the 7 standard trees but left all 6core-*-lighttrees carrying pre-merge content, including frontmatter keys the merge had deleted. No conflict, no test failure —scripts/pre_commit.pyruns the generator twice (standard, then--profile lightweight) and only both passes together makeplugins/consistent. Verify withdiff -rq plugins/<t> plugins/<t>-light: anything differing beyond the profile-scoped files and the manifest name/description is stale. - Check whether a doc reference survives the plugin boundary. Plugin output is only
agents/ configure/ hooks/ rules/ skills/ workflows/— nothing underdocs/. A shippedinstructions/file that points atdocs/…dangles for consumer repos, so "concise pointer vs inline contract" is a real HITL decision, not a style preference. - Hunt semantic conflicts after the textual merge; git flags none of them. Three appeared here: main documented paths this branch had deleted, main asserted "no plugin directory yet" for a target this branch added, and main deleted
instructions/rule files whose generated copies survived in a branch-only plugin. Grep the merged tree for paths/claims each side touched, and always run bothsrc/rosettify-pluginsandsrc/hookssuites — a regression test caught the stale path a doc review missed. - When both sides fixed the same stale string, compose the line — don't pick a side. Main and the branch independently corrected
"Rosetta 2.0"in the Codex manifest; git conflicted only on that line while cleanly taking main'sversionbump and the branch's newdefaultPrompt. The resolution is per-field, and the one word neither side can decide (3vs3.0) is the HITL question — not the whole file. - A generated
plugins/**conflict is a shadow of its preserved source.plugins/<t>/…/plugin.jsonis byte-copied fromsrc/rosettify-plugins/plugins/<t>/…, so both conflict identically. Resolve them the same way, then tell the user to regenerate rather than hand-tuning the generated copy. - Version drift survives a clean merge silently. Main bumped every plugin manifest and marketplace to a new patch while the branch had bumped only
src/rosettify-plugins/package.jsonto a new minor. No conflict, no test failure — the two just disagree afterwards. Comparepackage.jsonagainst the manifests post-merge and surface it. - Re-verify main's new content against the branch's generation changes. Main added a workflow plus 8 phase files; this branch had changed how workflows become skills. Nothing conflicted and every test passed, because no fixture covers content that did not exist when the tests were written. Generate and inspect the new artifact.
- Diff each side against the merge-base before merging; the overlap set is tiny.
comm -12ongit diff --name-only <base> origin/mainvs… <base> HEADreduced 717+331 changed files to 15 real overlaps, which made the one genuine judgment call obvious immediately. - Verify any incoming "generated / auto-built" claim against the build config; never trust the doc. Main imported
docs/reviews/DOC-STRUCTURE-PLAN.mdassertingllms-full.txtis "generated by the build pipeline (no manual facts)". It is hand-maintained:.github/workflows/pages.ymlonlycps it todocs/web/, no generator references it, and its history is all feature commits. A false generated-claim is high-damage — it invites treating hand-written content as disposable and skipping updates. Grep*.ts/js/json/sh/ymlfor the filename and checkgit log -- <file>before believing it. - Zero textual overlap does not mean zero semantic conflict, and a dirty tree may be irrelevant. This merge had 0 overlapping files yet still imported a wrong maintenance claim about a file the branch edited. Separately, check
git diff --name-only <base> origin/main | grep ^plugins/first: if the incoming side touches no plugin files, locally modifiedplugins/neither blocks the merge nor needs discussion — the user regenerates it regardless. - Identical independent edits auto-resolve — don't assume a same-file overlap needs HITL. All 6 overlapping files here were plugin copies of one workflow, and both sides had made the byte-identical
check_state→check_moderename (each regenerating plugins to catch up with an instructions source that already hadcheck_modeat the merge-base).git merge --ortmerged them with zero conflict markers. Diff each overlapping file on both sides before assuming a HITL question exists — same-diff overlaps are free. - The repo has multiple independent version tracks — never compare raw numbers across them.
scripts/bump_versions.shis the ground truth: it bumpsplugin.json+marketplace.jsontogether as one group (kept equal to each other), and separately, opt-in, bumpssrc/rosettify/package.json,src/rosettify-plugins/package.json,src/rosettify-prompts/package.json,src/curiocity/package.json, and eachpyproject.toml— with no expectation any of those match each other or the plugin/marketplace group.rosettify-plugins/package.jsonat 3.2.0 next toplugin.jsonat 3.1.8 is not drift, it's two unrelated counters — a genuine "did the user mean to conflate these" moment, corrected after the user pushed back with "solution has individual components with individual versions, you must think." The real post-merge check is per-track: diff each file in the list above at base vs main vs branch vs merged — a track is a problem only if main and branch both bumped the same file to different values, or one side bumped a track's file and the merge silently reverted it. - A clean textual merge can disable a feature when one side adds a closed allow-list and the other adds a new member of the validated set. Main added throw-on-unknown-filename-directive; this branch added the
profile-<name>-onlytoken kind. The two hunks sit in different parts ofdirectives.ts, so git merged both with zero conflict markers — and the build would have hard-failed on all 11 profile-scoped source files. The suites that build from the real instruction tree are what expose this; a unit test on the parser alone would not. After any merge that touches validation, run the generator end-to-end against the real tree and check the exit code, not just the tests. - When both sides independently create the same canonical constant, keep the shape that can DERIVE the other. Main added
spec/target-names.ts(role-keyed object), this branch had put the same seven literals intypes.ts(array + type + guard).Object.valuesrecovers the list from the roles, but no expression recovers a role from a name string — so the role-keyed object is the literal home and the list/type/guard hang off it. Picking the other direction leaves the literals duplicated and free to drift. - "Did the incoming side specify its new behavior?" is a merge check. Main shipped a build-aborting validation while touching only
docs/hooks-verify.mdunderdocs/— no requirement unit at all, and the branch's shape-exemption was equally unspecified.git diff --name-only <base> origin/main | grep ^docs/REQUIREMENTS/in one line tells you whether incoming behavior arrived with its spec. - Main's generated edits skip branch-only plugin folders. Main's skill-README edits reached
plugins/core-*only; 294 branch-onlyplugins/rosetta-*copies stayed stale. Regenerate with the local generator into scratch, thendiff -rq. - Read the branch's handoff, plan and gates before resolving anything. Merged without them, misjudged branch defects as "pre-existing", and skipped the branch's own acceptance gates. Read
agents/TEMP/*-state.mdandplans/first. - Run the branch's acceptance gates after merging. The equivalence gate caught main's 31 post-snapshot README edits; every test suite stayed green and missed them.
- Main's new links can name paths the branch moved. Rename detection carried main's README edits, but main's new Skills lists linked
core/skills/*for moved skills. Run a dead-link check. - Raise the rename limit before merging moved trees. Without
-c merge.renameLimit=100000, main's edits to moved files can land on old paths or resurrect deleted ones. - A case-only rename collides on macOS. Main's
docs/requirements/Xoverwrote the branch'sdocs/REQUIREMENTS/Xon disk. 3-way merge from index stages;git rm --cachedthe lowercase path only. - "Take theirs, re-apply ours" needs the branch's full file diff. The conflict hunk hid a functional
PLUGIN_HOOKS=plugins/rosetta-claude/…line; checking base→HEAD per file caught it. - Rename detection does not carry version bumps to moved manifests. Main bumped
core-*/plugin.json; the branch'stemplate-<ide>copies and branch-only marketplaces stayed old. Set the group by hand. - Never add a total beside an existing per-set table. It created a second number with a different "workflows" meaning. Define terms once, then align every statement to them.
- Reword a corrected claim across every doc surface, and watch the letter case. "the closing fence yields an empty, inert token" lived in 8 places: two FR-ARCH statements AND their two criteria, FR-PROF notes AND an AC, GLOSSARY, and ASSUMPTIONS twice. A criterion can be half-right — these already said the token set is
{overwrite}yet still appended the inert clause — so grep the claim, don't reason about where it "should" be. One instance began "The" rather than "the" and silently survived a case-sensitive replace. - One side replaced a line the other kept: keep both meanings. Branch swapped an
r3criterion for--release r2; main keptr3. Both test different behavior; picking one silently dropped a criterion. - A guard in a function the branch deleted must move, not vanish. Main hardened
resolveSourceDirs(empty--domain); the branch had replaced that function. Port the guard to where input is now parsed, with its tests. - Main's diagrams are facts too. Main replaced ASCII diagrams with D2 SVGs that named pre-split plugins. Fix the
.d2source, re-render withd2 --dark-theme 200(byte-reproduces committed SVGs), never keep stale art. - Merge one behavior's tests by intent, not by hunk. Main removed real-tree model assertions (models are owner-tunable) and also dropped a model-agnostic TOML-parse test as collateral; read the commit message to separate intent from collateral.
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.

