sync
Sync the Kronael toolkit between this repo and ~/.claude on this host, first setup included, and bridge it into Codex.
Skill by kronael
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/kronael-sync
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: agent-building
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md and code. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/sync
What's inside
- Skill name
sync- Description
- Sync the Kronael toolkit between this repo and ~/.claude on this host, first setup included, and bridge it into Codex. NOT for bringing the git line up to date with origin (use merge), or pushing to origin (git push, gated).
- License
- Unlicense
- Instructions
- 194 lines in SKILL.md · view on GitHub
Files (2)
- SKILL.md
- reference.md
SKILL.md (first lines)
# Sync Kronael toolkit
**Sync** is this repo ↔ `~/.claude/` on this host, and nothing else: work done
in `~/.claude/` since the last sync merges into the repo, then `~/.claude/`
gets the repo's bundle fresh plus the owner's keep-list, so a file the source
dropped cannot linger. The old bundle moves to a run dir under `/tmp`; nothing
is deleted. A first setup is a sync into an empty `~/.claude/`. NOT sync —
NEVER run either as part of it: **push** (repo → `origin`, `git push` under
WISDOM § Git) and **merge origin** (`origin` → the repo's git line, `merge`).
## Terms
- **source** (`SRC`) — the repo working tree: CWD if it holds the assets
below, else `CLAUDE_PLUGIN_ROOT`. Merge-back writes here, so a live edit
survives only in the owner's clone — NEVER a plugin or marketplace snapshot.
- **live** — `~/.claude/`. **bundle** — the live paths sync owns and replaces:
`skills/ agents/ hooks/ output-styles/ commands/ CLAUDE.md RECLAUDE.md
kronael-install-manifest.json`. NOTHING else in `~/.claude/` moves:
credentials, `settings*.json`, `LOCAL.md`, `CLAUDE.local.md`, `projects/`,
`plugins/`, history and hook `state/` stay put.
- **manifest** — `kronael-install-manifest.json`: `release` (`version`,
`gitCommit`, `gitDescribe`, `installedAt`) and `files`
(`".claude/<path>": {source, source_sha256}`), the sha of each file as the
last sync wrote it (`CLAUDE.md`: the wisdom body).
- **keep-list** — `~/.claude/.keep`, the installed-only paths a sync carries
over (`reference.md` § Keep-list); a symlink directly in a bundle dir is kept
without a line. It lives outside the bundle and NEVER enters the repo.
- **run dir** (`RUN`) — `${TMPDIR:-/tmp}/kronael-sync-<UTC stamp>/`: scratch,
backups for steps 5-6, and `old/`, the moved-aside bundle.
## Order of operations
`/tmp` is cleared on reboot, so the run dir MUST never hold the only copy of
work the owner wants. ALWAYS merge live edits into the repo (step 2) BEFORE
the swap (step 4) — NEVER swap first and merge from `/tmp` afterwards. What
ends only in the run dir is what the owner chose not to carry: unkept
installed-only paths and declined edits. Stopping anywhere before step 4
leaves `~/.claude/` untouched.
## Plan & consent
A **first sync** = neither `~/.claude/CLAUDE.md` nor `~/.claude/skills/`
exists. Before any write, explain sync in 2-3 lines and ask which groups to
run (Claude: AskUserQuestion multiSelect; Codex: numbered options): **Bundle**
(default on — nothing else works without it), **Settings** (step 5),
**External tools** (step 7 core), **CLI tools** rig/udfix/speclint + CDPATH, **qemubox**
(needs Docker), **Heavy** security-audit + video, **ripwire**, and **Server memory**
(`reference.md` § Server memory; NEVER offer when `CLAUDE_SANDBOX` is set).
Run ONLY the opted-in groups.
Every later sync skips the questionnaire but ALWAYS still runs step 5's
always-apply set and steps 7-8 —
NEVER skip tools or qemubox silently; a stale binary or an un-offered dep is
the failure. Settings still confirm before applying.
## Steps
0. **Preflight.** Verify at `SRC`: `skills/ agents/ hooks/ hooks/lib/
output-styles/ commands/ codex-hooks.json settings-recommended.json
RECLAUDE.md codex/AGENTS.md` — missing means the wrong directory: stop and
ask. No `kronael@*` in `~/.claude/plugins/installed_plugins.json` → note
`/kronael:sync` won't resolve; the user says "sync" in this repo. A leftover
`~/.claude/.kronael-sync-new` or `.kronael-sync-old` is a killed swap or a
failed rollback: STOP, show both, ask — NEVER delete or reuse either; `-new`
holds new copies not swapped in, `-old` old copies swapped out (those live
paths are new). Export `SRC` and `RUN`, `mkdir "$RUN"`, write `reference.md`
§ Keep-list's `keep.py` there. Read the manifest `release` and report
installed → source (commit, version, the `## [vX.Y.Z]` CHANGELOG sections
between); no manifest means "first tracked sync".
Completion criterion: assets verified, `RUN` printed, release delta
written down, no leftover swap dir.
1. **Classify.** Run `reference.md` § Classify (read-only). Every live bundle
file lands in one class, compared by sha256 — live `I`, source `S`, manifest
`M`: `same` (I = S), `stale` (I = M, or I is a committed source version: an
older install), `edited` (S = M: only live changed), `both` (all three
differ), `merged` (a `both` already in the repo), `no-base` (no `M`),
`kept`, `shadow`, `retired` (a dropped name, unedited), `only-live` (no
source counterpart, not kept), `junk` (caches, a session's `.claude/`).
Exit 1 = a `BADKEEP`, `SYMLINK` or `UNRESOLVED` line; step 3 settles each.
Completion criterion: the class counts and every decision line printed.
2. **Merge live edits into the repo.** `SRC` is the owner's clone only if
`git -C "$SRC" rev-parse --show-toplevel` = `realpath "$SRC"` and it is
not under `~/.claude/plugins/` or `~/.codex/`. A snapshot and any
`edited`/`both`/`no-base` line → STOP: list them, rerun from the clone
(`LOCAL.md` names it); NEVER swap them away.
- `edited` → copy the live file over the repo file.
- `both` → three-way merge per `reference.md` § Merge; a clean result goes
into the repo; conflicts → show the hunks, ask: hand-merge, take repo, or
take live. A base whose sha ≠ `M` is no base.
- `no-base` → show `diff -u <repo> <live>`, ask: take live, move it to
`LOCAL.md` (a first sync over a personal `CLAUDE.md`), or keep repo.
- `CLAUDE.md` is the body of `skills/global/SKILL.md` — keep its
frontmatter. NEVER merge the Codex block (`codex/AGENTS.md` markers) in.
- The repo is public: ALWAYS read every incoming hunk for local paths, host
or org names and secrets, and move those to `~/.claude/LOCAL.md`
(auto-injected by `local.py`) or drop them — NEVER into the repo.
- A declined edit ends in `RUN/old` with the old bundle: name it.
- Then `make skills-frontmatter` (`-fix` if it reports YAML).
Completion criterion: each such path has an outcome (merged, LOCAL.md,
declined); `git -C "$SRC" diff --stat` shows the merged files; no
`^<<<<<<<` line in them; the lint exits 0.
3. **Decide installed-only paths.** For each `only-live` entry show what it is
and ask: **keep** (append it to the keep-list), **repo** (generic content
only, on the owner's explicit yes — copy it into `SRC`), or **leave** (the
default; it ends in `RUN/old`). NEVER put an installed-only path in the repo
without that yes — it may be an org or private skill — and NEVER drop one
unlisted. Each `shadow` or `BADKEEP`: the owner fixes or deletes the line,
or `mv`s a lineless kept symlink into `RUN`. Each `SYMLINK`: the owner makes
a root a real dir, keeps a nested one by a line, or `mv`s it into `RUN`.
Each `UNRESOLVED` hook path MUST be kept or unwired first: a missing hook
script makes `python3` exit 2, which Claude Code treats as blocking — every
prompt and tool call in every session fails.
Completion criterion: rerun § Classify exits 0 with no `shadow` line, and
every `only-live` line has an answer or the stated default.
4. **Swap.** Re-run § Classify first: exit 1 → back to step 3; an `edited`,From kronael/tools, Unlicense.
More from kronael/tools
- 0.622score
distill
kronael
/distill — Use when compressing a long document, transcript, or codebase into its essence.
SkillAFreshness: A★ 6Claude Code +9 - 0.619score
continue
kronael
/continue — goal mode.
SkillAFreshness: A★ 6Claude Code +9 - 0.619score
eval
kronael
Evaluation router — judge a product, codebase, UI or engineer from one fixed lens or every lens.
SkillAFreshness: A★ 6Claude Code +9 - 0.619score
kronael-sync
kronael
Sync Kronael into ~/.claude from Codex (bundle + CLI tools rig/udfix/spec-lint/dockbox), first setup included; bridge global/project CLAUDE.md, skills, and…
SkillAFreshness: A★ 6Claude Code +9 - 0.619score
ans
kronael
/ans — answer-only mode toggle, NEVER edit files or run shell; /ans end exits.
SkillAFreshness: A★ 6Claude Code +9 - 0.619score
astgrep
kronael
Structural code search and rewrite with ast-grep (tree-sitter AST patterns).
SkillAFreshness: A★ 6Claude Code +9 - 0.619score
astra
kronael
Ask the codex CLI on gpt-6-astra (or gpt-6.1-sol, the Sol variant) for a second opinion, usually routed through oracle.
SkillAFreshness: A★ 6Claude Code +9 - 0.619score
bugs
kronael
The `BUGS.md` open-issues queue — record-don't-fix policy, entry format, pruning.
SkillAFreshness: A★ 6Claude Code +9 - 0.619score
codemap
kronael
Map a codebase and drill into it — ranked overview, callers, blast radius, module, import and call graphs.
SkillAFreshness: A★ 6Claude Code +9 - 0.619score
emacs
kronael
Emacs configuration — a package stack for completion, navigation, git and AI.
SkillAFreshness: A★ 6Claude Code +9 - 0.619score
create
kronael
Router for creative artifact generation — CVs, web pages, explainers, videos, generative art, diagrams.
SkillAFreshness: A★ 6Claude Code +9 - 0.619score
diagrams
kronael
ASCII architecture and workflow diagrams using Unicode box-drawing chars.
SkillAFreshness: A★ 6Claude Code +9
Signals
- Stars
- 6
- Forks
- 3
- Open issues
- 0
- Last commit (this folder)
- Oct 22, 2026 (6 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- Unlicense
- Repository
- github.com/kronael/tools
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from kronael
- 0.622score
distill
kronael
/distill — Use when compressing a long document, transcript, or codebase into its essence.
SkillAFreshness: A★ 6Claude Code +9 - 0.619score
eval
kronael
Evaluation router — judge a product, codebase, UI or engineer from one fixed lens or every lens.
SkillAFreshness: A★ 6Claude Code +9 - 0.619score
kronael-sync
kronael
Sync Kronael into ~/.claude from Codex (bundle + CLI tools rig/udfix/spec-lint/dockbox), first setup included; bridge global/project CLAUDE.md, skills, and…
SkillAFreshness: A★ 6Claude Code +9 - 0.619score
ans
kronael
/ans — answer-only mode toggle, NEVER edit files or run shell; /ans end exits.
SkillAFreshness: A★ 6Claude Code +9 - 0.619score
astgrep
kronael
Structural code search and rewrite with ast-grep (tree-sitter AST patterns).
SkillAFreshness: A★ 6Claude Code +9 - 0.619score
continue
kronael
/continue — goal mode.
SkillAFreshness: A★ 6Claude Code +9
Cite this page
sync skill. Agent Mart. https://agentmart.dev/skills/kronael-sync (last updated 2026-10-24)