Core Catch-Up
/core-catchup brings your entire local era-core monorepo up to date in one
pass, so you start work on current code instead of stale branches. It is a slash
command available in both harnesses (era-code start and era-code claude).
What it does
- Locates era-core. If your working directory is the era-core monorepo, it
uses it. Otherwise it looks at the parent directory and
~/era-core(the default created byera-code core-install), and asks you to confirm before using a directory it discovered. era-core is detected dynamically — any directory whose immediate children include two or more git repos withEra-Laboratoriesorigins qualifies — so the command never goes stale as repos are added or removed. - Summarizes the last 24 hours. It fetches every repo (read-only — fetch never touches your working tree), then digests commits from the last 24 hours across all branches into a compact, per-repo summary of what changed and who changed it.
- Surfaces at-risk local work. Before changing anything, it reports each repo's state: uncommitted changes, existing stashes, unpushed local commits, and detached/PR checkouts that may hide your own work.
- Updates everything. After a single explicit confirmation, it rebases every clean and dirty repo onto its upstream, auto-stashing and re-applying dirty trees. Repos with unpushed commits, no upstream, or a detached/PR checkout are skipped and left for you. Any rebase conflict is aborted and the repo restored to its prior state — nothing is ever left half-rebased, and no stash is ever dropped.
Usage
/core-catchup
/core-catchup ~/work/era-core # explicit path, skips auto-discovery
Safety model
This command runs real git mutations (fetch, stash, rebase) and follows Era
governance. It is intentionally conservative where it matters:
- One confirmation gate. Nothing is mutated before you approve the plan, which is shown as a per-repo table of intended actions.
- Never destructive. It does not force-push, delete branches, reset hard, or drop stashes.
- Unpushed work is never rebased automatically. Repos ahead of their remote are skipped and called out so you decide how to integrate them.
- Conflicts restore, not break. A conflicting rebase is aborted and the working tree returned to where it started; the repo is listed as needing manual attention with the exact command to retry.
When to use it
Run it at the start of a work session, or any time you suspect your local
era-core checkout has drifted behind the remotes. For tracking session readiness
of individual repos over time, see the era-code catch-up command, which records
per-repo last-checked state.