framework-sync

A workflow for bringing newer changes from an upstream Git repository into a local prompt library while keeping local edits.

In plain words
What is it for?
It helps fetch and merge framework changes, check that the sync files are clean, preview changes without writing, and verify the result.
Why use it?
It reduces the risk of overwriting local framework work when updating from the shared source repository.

Skill for Claude CodeCodex

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add skills/rakovi4/continue-framework/framework-sync
Any agent
npx skills add rakovi4/continue-framework --skill framework-sync
Clone the repo
git clone --depth 1 https://github.com/rakovi4/continue-framework

Made for: Claude Code, Codex.

Per session 46 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,684 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00046 $0.01684
Opus 5 $0.00023 $0.00842
Sonnet 5 $0.00009 $0.00337
Haiku 4.5 $0.00005 $0.00168

Measured 2d ago against content hash 5ead7006b7ef, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

framework-sync scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

.claude/skills/framework-sync/SKILL.md · 119 lines

How it starts

The opening of the file, as written. The whole thing — 119 lines — stays where its author put it; the contents beside it link to each section on GitHub.

/framework-sync - Merge Upstream Framework Changes

The local .claude/ tree is a vendored copy of an upstream framework template that both sides keep editing. This skill pulls what upstream changed since the last reconciled revision and merges it in — it never mirrors, never overwrites, never regresses local work. Principles: "Upstream Framework Sync" in .claude/guidelines/prompt-rules.md.

Usage

/framework-sync                 # fetch, merge, verify, commit
/framework-sync --dry-run       # report what would change; write nothing
/framework-sync <git-url>       # override the upstream repository

Default upstream: https://github.com/rakovi4/continue-framework (branch main).

Workflow

  1. Preflight. git status --porcelain -- .claude CLAUDE.md must be empty. If the sync surface has uncommitted edits, stop and report — the merge has to land as its own reviewable diff, and a three-way apply over dirty files is unresolvable afterwards. Uncommitted changes outside the sync surface are fine.
  2. Fetch upstream. Add the remote once, then fetch it — never push to it:
    git remote get-url framework 2>/dev/null || git remote add framework <upstream-url>
    git fetch --no-tags framework main
    
    Read the upstream head: git log -1 --format='%h %ci %s' framework/main.
  3. Read the baseline from .claude/framework-baseline (format in the merge template). Present → step 4. Absent → step 5.
  4. Incremental merge. Compute the upstream change set:
    git diff <baseline>..framework/main -- .claude CLAUDE.md ':(exclude).claude/settings.json'
    
    Empty → report "prompt library already up to date at <short-rev>", then run the step 11 progress-layout audit before deciding there is nothing to commit. Otherwise apply it with git apply --3way, one file at a time so each result is inspectable. A file that fails to apply is not a failure of the sync — read both sides (git show framework/main:<path> vs the local file) and merge it by hand. Classify every file with the decision table in the merge template. Then go to step 6.
  5. Bootstrap (no baseline). Do not apply a whole-tree diff as a patch — it cannot tell an upstream addition from a local deletion. Instead enumerate the differences:
    git diff --stat framework/main -- .claude CLAUDE.md
    
    Read direction matters: this diffs from upstream to the working tree, so + lines are local content and - lines are upstream content missing locally. Classify each file with the merge template's table, take only the rows it marks safe, and expect most files to be "keep local" when the local copy is ahead. Present the classification before writing anything.
  6. Key-merge the settings file per the merge template. Upstream keys absent locally are offered in the report, applied only when every path and command they reference resolves in this checkout. No local key is ever rewritten or removed.
  7. Verify — run the full post-merge checklist in the merge template (cross-references, routing tables, line limits, product-agnostic gate, layer placement). Fix what it catches before committing; a sync that lands a dangling reference is worse than none.
  8. Record the baseline. Write the upstream head revision, today's date, and the upstream URL to .claude/framework-baseline. Only a sync that reached this step advances it — an aborted or rejected merge leaves the old value.
  9. Report in the merge template's format: every file taken, merged, kept local, or skipped, named individually.
  10. Commit the merge and the baseline together as framework: sync from upstream <short-rev>, with the report's substance in the body. Under --dry-run, stop after step 9 and write nothing.
  11. Migrate unstarted scenario plans. After the sync commit (or immediately after an up-to-date result), run .claude/templates/workflow/scenario-stage-migration.md over every story progress.md. Inspect every ### scenario block regardless of its enclosing ## heading. Convert each wholly unstarted legacy backend-style or frontend scenario to its staged layout; preserve a scenario as a whole when any one of its steps started. Under --dry-run, report candidates without writing. Otherwise commit all migrated progress files separately as framework: migrate unstarted scenario plans.

Read the full file on GitHub · 119 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 2d ago First seen · 119 lines · 46 tokens per session scan A 5ead7006b7ef

Subscribe to this mod's changes

framework-sync is a skill published in the GitHub repository rakovi4/continue-framework (50 stars, last pushed 5d ago), licensed MIT. It adds 46 tokens to every session and 1,684 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other skills, from other repositories

systematic-debugging

Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes.

obra/superpowers · 21 tokens

next-cache-components-adoption

Turn on Cache Components in a Next.js app and resolve the blocking routes it surfaces. Use when the user wants to enable, adopt, or migrate to Cache Components, flip the cacheComponents flag, work through a flood of blocking-prerender / instant validation errors, run the cache-components-instant-false codemod, or…

vercel/next.js · 95 tokens

babysit-pr

Babysit a GitHub pull request after creation by continuously polling review comments, CI checks/workflow runs, and mergeability state until the PR is merged/closed or user help is required. Diagnose failures, retry likely flaky failures up to 3 times, auto-fix/push branch-related issues when appropriate, and keep…

openai/codex · 114 tokens

imagegen

Generate or edit raster images when the task benefits from AI-created bitmap visuals such as photos, illustrations, textures, sprites, mockups, or transparent-background cutouts. Use when Codex should create a brand-new image, transform an existing image, or derive visual variants from references, and the output…

openai/codex · 113 tokens

cpu-profile-analysis

Analyze V8/Chrome CPU profiles (.cpuprofile) and DevTools trace files (Trace-.json). Use when: profiling performance, investigating slow functions, comparing code paths, finding bottlenecks, analyzing timeToRequest, understanding call trees from sampling profiler data, analyzing layout/paint/rendering, investigating…

microsoft/vscode · 71 tokens

next-cache-components-optimizer

Drive a Next.js route to instant navigation by setting up an agentic loop, under Cache Components / PPR, on initial load (hard navigation) and client-side navigation (soft navigation). Encode the goal as a failing @next/playwright instant() e2e and work it to green, one verified route at a time; the shipped test then…

vercel/next.js · 170 tokens