Use this skill to use, not develop, Boxyard: managed folders with DATA, metadata, sync config, groups, and local/rclone storage. All bundled paths below resolve from this skill directory; no source checkout is required.
Authority and safety
- Ask before modifying local or remote state. This includes
init,new,sync,multi-sync,sync-missing-meta,include,exclude,relocate,delete,rename,sync-name, group/parent edits,create-user-symlinks,copy,force-push,claim,release,discard-local, and non-dry-runconvert. Examples are not authorization. Read-only queries,--help,doctor, andconvert --dry-runmay run without confirmation. - Never create ad-hoc folders/clones/worktrees in
~/dev. Find the existing box or useboxyard newwith approval; put non-box scratch outside managed roots. Keep generated data, even large outputs, inside its related box. Use sync excludes, not sibling folders, to avoid uploading it. - Resolve identity and placement, don't guess. Both timestamp format and subid
length are configurable;
index_nameis{box_id}__{name}. Usewhich/path: DATA may be in any checkout root, not justuser_boxes_path(default). An unavailable root never falls back to default. Placement is machine-local, never synced inboxmeta.toml; remote storage and local placement are independent. - Resolve ownership, never bypass it. DATA/CONF pushes compare
write_ownerwith configuredmachine_name, never a hostname. No owner means unrestricted.newclaims by default (--no-claimfor work elsewhere);include --read-onlysuppresses the claim nudge. Refusal also protectsforce-push, remote/both rename, and deletion. With approval,claim --stealkeeps this machine's work;discard-localreplaces it from remote and keeps overwritten work in backups. - Destructive traps:
new --from PATHMOVES unless--copy;excludesyncs first then removes local DATA (--skip-syncskips that protection).deletetombstones the id fleet-wide: never delete a stale duplicate name to clean registrations.sync --sync-setting replace|force,copy --overwrite, andforce-push --forcecan overwrite data. Read the relevant reference first. - Backups aren't garbage: orphan findings may be intentional
discard-localkeepsakes. Never auto-delete them or infer disposability from unclaimed ULIDs. - Excludes replace, not extend. A box's
conf/.rclone_excludereplaces the default list entirely: copy the default contents before adding rules, or risk syncing.venv/,node_modules/, etc..rclone_includeand.rclone_filtersare currently refused; use.rclone_excludealone. CONF syncs before DATA. Default-exclude edits invalidate DATA baselines fleet-wide; batch needed edits. - Conversion is explicit: policy edits never reformat existing boxes; only
convertdoes, verifying a byte-identical restore before removing the old copy. Read the storage reference and~/.config/myagent/reference/box-storage.mdbefore recommending/changing plain vs restic. Rig default is plain; package default for rclone is restic (local is plain). Every participating machine needs Boxyard >=0.7.0, restic and the password before using restic boxes.
Discover, select, inspect
Use the installed CLI as authority: boxyard --help, boxyard <command> --help,
boxyard --version. When already operating from a Boxyard development checkout,
prefer uv run boxyard ...; do not navigate relative to the installed skill to
find source. For non-default config use boxyard --config /path/to/config.toml ....
BOXYARD_CONFIG_PATH is for the shell helper, not a substitute for CLI --config.
boxyard which --path /some/path --json
boxyard list --output-format json
boxyard list --show-status --show-checkout
boxyard list --group-filter 'work AND NOT archived'
boxyard checkout-roots
boxyard path --box INDEX_NAME
boxyard path --box INDEX_NAME --path-option conf
boxyard box-status --box INDEX_NAME
boxyard owner --box INDEX_NAME
boxyard yard-status
boxyard doctor --no-remote
pathdefaults to included DATA;--allincludes excluded candidates. Use itsroot,meta,conf, orsync-record-*options for non-DATA locations.- Select explicitly with
--box INDEX_NAMEor--box-id BOX_ID;--box-name NAMEoften means contains matching.--pick-firstonpathis only for acceptable ambiguity. Bare selection uses the cwd box across configured roots, then an fzf picker;delete,rename,copy,force-push, andsync-namerequire an explicit selector. - Run
doctorwhen state looks inconsistent, rather than improvising repairs. It is read-only (exit 0 healthy / 1 findings); default includes remote checks,--no-remoteis offline. Follow hints only after approval for state changes.
Common operations (after approval)
boxyard new --box-name NAME
boxyard new --from /path/to/folder --copy
boxyard include --box INDEX_NAME --checkout-root ROOT
boxyard sync --box INDEX_NAME --sync-setting careful
boxyard exclude --box INDEX_NAME
boxyard add-to-group --box INDEX_NAME GROUP
sync can select META/CONF/DATA, direction, and descendants. multi-sync supports
cadence and skip proofs; proof must cover all requested parts and dependencies,
including plain DATA. Unknown/unproven boxes still run the real sync path.
For relocation, destructive recovery, conversion, or bulk operations, read the
matching reference and command help before acting.
Task-to-reference map (load only what is needed)
| Task | Bundled reference |
|---|---|
| Config keys, local/remote layouts, roots, selectors, filters, canonical discovery | Discovery and paths |
| New/include/exclude/copy, relocation, groups/hierarchy, rename/delete/force | Box lifecycle |
| Sync modes, multi-sync proofs, cadence, plain/restic conversion, excludes | Sync and storage |
| Owner/claim/release/discard-local and doctor findings/recovery hints | Ownership and health |
| Ctrl+G, fzf, helper search and zsh setup | Shell helper |
Package-default paths are not rig paths: read the actual config (normally
~/.config/boxyard/config.toml) and use path. References preserve detailed
examples and rationale; historical counts are not a current fleet inventory.