upstream-sync

Merges upstream acestep.cpp changes into the HOT-Step engine fork while preserving integration hooks.

151|22|Updated Apr 19, 2026
One-click install
npx skills add https://github.com/scragnog/HOT-Step-CPP --skill upstream-sync-scragnog
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: upstream-sync
Source: https://github.com/scragnog/HOT-Step-CPP/tree/main/.claude/skills/upstream-sync
Command: npx skills add https://github.com/scragnog/HOT-Step-CPP --skill upstream-sync-scragnog

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Syncing a file-copy-based C++ fork with its upstream repository risks silently destroying fork-specific integration hooks, producing builds that compile cleanly but lose all custom sampler, scheduler, and guidance features. ## Core Features & Use Cases - Zone-based sync strategy: Classifies engine files into Upstream, HOT-Step, and Modified Upstream zones, with direct-copy allowed only for pristine upstream files and manual merge enforced for the three hook-carrying files. - Hook verification and failure diagnosis: Runs verify-hooks.ps1 (5 checks) before building, and maps symptoms like the linker error "unresolved external symbol hotstep_sampler_linked_" or dead solvers back to the exact clobbered include. - Six-phase sync procedure: Covers fetch/assess, selective copy, manual merge, sampler fix porting, build validation with runtime log checks, and marker/commit/tag recording without pushing release-triggering tags. - Use Case: After upstream acestep.cpp lands 60 new commits, follow the procedure to port them into the fork, verify hooks, rebuild via dev-rebuild.bat, and confirm the [DiT] Guidance log line proves the custom sampler is live. ## Quick Start Ask the assistant to check whether an upstream sync of acestep.cpp is pending and, if so, walk through the sync procedure while protecting the HOT-Step hook files.

Frequently Asked Questions about upstream-sync

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I sync a fork with upstream without losing custom modifications?

Classify files into zones: direct-copy only pristine upstream files, never copy files carrying custom hooks, and manually merge upstream diffs into those. Commit locally first so the commit serves as your rollback point, then verify hooks before building.

How do I fix the linker error unresolved external symbol hotstep_sampler_linked_?

This error means pipeline-synth-ops.cpp was direct-copied from upstream and its include reverted to dit-sampler.h. Restore the hot-step-sampler.h include at line 9 plus the fork-only includes and call site, then re-run verify-hooks.ps1.

Why does my build compile but all solvers and schedulers stopped working?

A whole-file copy of upstream pipeline-synth-ops.cpp silently replaces both the sampler include and call site with consistent upstream versions, so everything compiles but the custom sampler is never called. Check the engine log for the missing [DiT] Guidance line and restore the hook.

Can I verify the custom sampler is active at runtime?

Yes. Check the newest logs/YYYY-MM-DD_HH-MM-SS/ace_engine.log for a [DiT] Guidance line, which only the HOT-Step sampler prints. A bare [DiT] Solver line is not proof because upstream prints one too.

When should I avoid direct-copying upstream files during a merge?

Never direct-copy pipeline-synth-ops.cpp, model-store.h, or dit.h, and verify pristineness of any other file by diffing against the last-synced upstream commit. Upstream's src/solvers/ directory also collides with the fork's own solvers and must be excluded.