downstream-sync
Skill1 starsChanged 51 days agoMITView on GitHub
Review what this fork has built that the canonical kit should adopt, and package each candidate as a contribution-kit spec (executable by the kit's own assistant). Cadence 30 days; the canonical kit repo detects itself and exits. Never opens a PR itself.
- Commits and pushes
In this repository13 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- add-permissionSkill
- merge-prSkill
- neon-postgresSkill
- new-featureSkill
- personalizeSkill
- pre-pushSkill
- process-feedbackSkill
- release-notesSkill
- testSkill
- trivialSkill
- upstream-syncSkill
The file
We split this skill into the rules it gives an agent
2 rules. About 0 are common, 0 are distinctive, and 2 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈0
Distinctive · estimate
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 18
State: Read kit.json → sync.downstream (lastCheckedDate, proposed[]) and kit.json → paths.appSpecific (this fork's product surfaces — never …
- Very specific: line 73
Update kit.json.sync.downstream: lastCheckedDate = today.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Downstream Sync
The mirror of /upstream-sync: walk this fork's kit-generic surfaces, find changes
the canonical kit should adopt (bug fixes in scaffold code, hardened checks, new
reusable components, workflow improvements), and author contribution kits — one
spec file per candidate. The deliverable is a spec, not a patch: a spec the kit's own
assistant can execute travels better than a diff that assumes this fork's layout.
Pre-flight
- Self-detection.
pnpm kit:check --whyreports canonical → printdownstream-sync: canonical kit repo — skipping (N/A).and stop. - State. Read
kit.json→sync.downstream(lastCheckedDate,proposed[]) andkit.json→paths.appSpecific(this fork's product surfaces — never candidates).paths.personalizedentries are identity, not contributions.
Known Untested Paths
Same caveat as upstream-sync: structurally verified, never run against a live fork. First fork owner to run this is the first real test.
Step 1 — Enumerate kit-generic surfaces
Walk, in this order (skip anything under paths.appSpecific or paths.personalized):
scripts/(tripwires, kit tooling) and.github/workflows/packages/{auth,db,permissions,ui,tokens,brand,config}/— generic infrastructure onlyapps/*/src/proxy.ts, shared components underapps/*/src/components/shared/.claude/skills/and.claude/agents/AGENTS.md,UI-STANDARDS.md,UX-PATTERNS.md,BRANDING.md— generic sections
For each, diff against the baseline (git log <sync.upstream.baselineSha>.. -- <path>
when history is shared; otherwise reason from the fork's own commit history) and
collect changes that are generic — they would help every fork, not just this
product.
Step 2 — Classify candidates
| Class | Meaning |
backport-ready | Drops into the kit with path adjustments only |
needs-generalization | Sound idea, fork-specific shape (names, schema, deps) |
structural-proposal | Changes how the kit itself is organized — needs kit-side judgment |
skip | Product-specific, superseded upstream, or already in proposed[] and unchanged since |
Step 3 — Author contribution kits
For each non-skip candidate, write docs/starter-contributions/NN-<slug>.md:
# NN — <title>
Origin: <fork commit(s) / work-log>
What & why: <the problem and the fix, 3–8 sentences>
Applies to the kit as: <where it lands in the kit's layout>
Implementation steps: <numbered, executable by the kit's assistant>
Verification: <how the kit proves it works>
Classification: <class> · Risk: <low/medium/high + why>Number sequentially from the highest existing NN. Submit by PR into the canonical
repo's docs/starter-contributions/incoming/ — this skill never opens the PR;
it tells the user the exact gh pr create invocation to run if they want it.
Step 4 — Log + state
- Append
YYYY-MM-DD | downstream-sync | N candidates (A ready, B needs-gen, C structural)(ornothing to contribute) todocs/reviews/log.md. - Update
kit.json.sync.downstream:lastCheckedDate= today; add each authored candidate toproposed[]as{slug, date, class}so the next run skips it unless the underlying code changed again. - Failures before Step 1 completes: write nothing.
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.

