From qe-framework
Synchronizes project source files with a reference/standard project. Classifies changes by sync category (standard update, project-specific, new/removed) and applies selective merges.
How this skill is triggered — by the user, by Claude, or both
Slash command
/qe-framework:Qproject-syncThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Synchronizes the current project with a reference (standard/template) project.
Synchronizes the current project with a reference (standard/template) project. Classifies each changed file by sync category, shows a report, and applies selective merges based on user choices.
MANDATORY: All user confirmations MUST use the
AskUserQuestiontool. Never output options as plain text.
User: "Sync with standard"
→ Qproject-sync: diff against configured standard, show classification report, apply chosen merges
User: "sync this project with ~/templates/front-std"
→ Qproject-sync: accepts explicit path, runs full sync workflow
User: "Project sync dry-run"
→ Qproject-sync: shows classification report only, applies nothing
User: "merge upstream changes automatically"
→ Qproject-sync: --auto mode, applies only "Standard update" files without asking per file
.qe/config.json or .qe/sync.json for standardProjectPath.AskUserQuestion to ask: "Enter the path to the reference/standard project."For each file in the reference project:
# List files relative to root in both projects
diff -rq --exclude=".git" --exclude="node_modules" --exclude="dist" \
<reference_path> <current_path>
Additionally, track git history to detect customizations:
Assign each differing file to one of four categories:
| Category | Condition | Default Action |
|---|---|---|
| Standard update | Reference changed, current is at baseline (not customized) | Auto-merge |
| Project-specific | Current customized AND reference also changed | Manual review |
| New in standard | File exists only in reference | Suggest adding |
| Removed from standard | File removed from reference, still in current | Suggest removing |
Heuristics for "customized":
.qe/sync-baseline/.Always show this report before any changes are applied.
== Qproject-sync Report ==
Reference: <path>
Current: <cwd>
[Standard update] (safe to auto-merge — N files)
src/lib/api-client.ts
config/vite.config.ts
[Project-specific] (manual review required — N files)
src/features/auth/AuthPage.tsx <-- both sides changed
.env.example
[New in standard] (not in current project — N files)
src/shared/ui/Toast.tsx
[Removed from standard] (reference deleted — N files)
src/legacy/OldModal.tsx
Mode: <dry-run | auto | interactive>
If --dry-run, stop here. Output the report and exit.
Output the report only. No file changes.
For each file group, use AskUserQuestion with these options:
Standard update group:
Project-specific group:
New in standard:
Removed from standard:
After file merges are applied, detect renamed or changed function signatures between reference and current.
{ oldName -> newName } based on reference diff context.AskUserQuestion: "Apply these N API renames automatically?" (Yes / Review each / Skip).After sync completes:
== Sync Complete ==
Applied: N files
Skipped: N files (manual review)
Added: N new files
Removed: N files
API renames applied: N
Files requiring manual review:
- src/features/auth/AuthPage.tsx
- .env.example
Run `git diff` to review all changes before committing.
Suggest running Qcommit after review.
| Flag | Behavior |
|---|---|
--dry-run | Report only, no changes |
--auto | Apply safe merges without per-file prompts |
--interactive | Per-file decisions via AskUserQuestion (default) |
.qe/ config.git/, node_modules/, dist/, or secrets (.env)npx claudepluginhub inho-team/qe-framework --plugin qe-frameworkCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.