Claude Code plugin pack — concept-separated guardrails, commands, and skills.
A Claude Code marketplace repo that side-mounts guardrails, slash commands, and skills onto the host harness without modifying it. Strict concept separation: one plugin = one of {hook, command, skill}, no mixing. Project-level identity + governance lives in a single project.tape at the repo root (symlinked as CLAUDE.md); the cross-project do / dont layer rides inside the commons hook plugin.
# 1. Install hexa-lang (gives you `hexa` + `hx` package manager)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/dancinlab/hexa-lang/main/install.sh)"
# 2. Install sidecar
hx install sidecarThen in any project root:
sidecar init
sidecar init drops three things into the current directory:
project.tape— the project's identity + governance carrier (.tapev1.2). Open it and fill in the placeholders:kind— one line describing what the project is.brief— 2–4 sentences on purpose · scope · why it exists.parent— org / parent project (e.g.dancinlab).ssot— canonical location (repo URL orhx install <name>).do/dont— project-level governance bullets,·separated.
CLAUDE.md → project.tape— symlink so the harness auto-loads project identity on SessionStart.LATTICE_POLICY.md— the cross-project real-limits-first verification policy, carried by sidecar. Skipped if one already exists.
The project-tape hook re-injects project.tape on PreCompact + PostCompact so identity + governance survive auto-compaction.
sidecar/
├── bin/sidecar # CLI — init · sync · mirror · sign · profile · enable · disable · reset · master
├── bin/_overrides.hexa # per-plugin enable-override store (~/.sidecar/plugin-overrides.json)
├── install.hexa # hx build hook — clone marketplace · cache · enable per active profile
├── hooks/ # PreToolUse · SessionStart · PreCompact · PostCompact · LSP plugins
├── commands/ # /slash-command invoked plugins
├── skills/ # Skill tool invocable plugins
├── project.tape # sidecar's identity + governance (also linked as CLAUDE.md)
├── LATTICE_POLICY.md # real-limits-first policy (→ hooks/commons/, dropped by `sidecar init`)
├── CLOSURE_POLICY.md # closure-honesty policy (SSOT freshness + perpetual domains)
├── DESIGN.md / DESIGN.log.md # live design-rules pointer + decision audit trail
├── STRUCTURE.md # 허용 구성 spec — top-level allowlist · 도메인쌍 관례 (s16/lint 연결)
├── CHANGELOG.md # chronological ship log
└── .claude-plugin/
├── marketplace.json # plugin manifest (name · source · version)
└── profiles.json # enable-profile tiers (core · hexa · personal · master[creator-only])
허용 top-level 구성 · 도메인쌍 관례 · where-goes 표는 STRUCTURE.md 에 명시되어 있다 (@D s16 규칙 ↔ sidecar-lint allowlist 강제).
sidecar ships an opinionated stack. A profile picks which plugins to enable so you don't inherit the whole personal layer — pick one after install:
| Profile | Enables | For |
|---|---|---|
minimal |
core only |
general use — universal safety · QoL · workflow |
hexa |
core + hexa |
+ the hexa-lang toolchain (hexa CLI · .hexa / .tape) |
full (default) |
core + hexa + personal |
the complete dancinlab setup |
master |
+ master tier |
creator-only — gated by the ~/.sidecar/master marker |
sidecar profile minimal # set the profile (re-applies the install)
sidecar profile # show the active profile + any per-plugin overrides
sidecar enable <plugin> # force one plugin ON — overrides the profile
sidecar disable <plugin> # force one plugin OFF
sidecar reset <plugin> # drop the override → follow the profile again
sidecar master on|off|status # mint/remove the creator marker (~/.sidecar/master)
Each plugin's tier is the Tier column below; the classification SSOT is .claude-plugin/profiles.json. This rides on Claude Code's own plugin enable/disable — not an in-guard opt-out — so an enabled guard stays unconditional (@D s11). State lives in ~/.sidecar/profile + ~/.sidecar/plugin-overrides.json; sidecar-lint flags any plugin missing a tier so the classification stays complete (@D s7).
The personal tier is dancinlab-specific but anyone can opt in via full. The master tier is genuinely creator-only: a master-tier plugin enables only while the ~/.sidecar/master marker exists — force-disabled otherwise, even under the full/master profile (a per-plugin enable override still escapes it). The marker isn't shipped, so public installs never get master plugins; the creator runs sidecar master on once to mint it. Current master-tier members: stdlib-ssot-guard (PreToolUse advisory) + stdlib (/stdlib check·promote skill) — together the g61 cross-repo SSOT enforcement pair, dancinlab workflow only.
All slash commands at a glance, grouped by purpose. Each is backed by a plugin in the table below.
# ── Discovery ───────────────────────────────────────────────
/kick:kick <seed> hexa kick — gap-breakthrough / discovery engine
/gap:gap [scope|full] 42-lens multi-axis gap sweep (8 families)
/brainstorm:brainstorm <seed> width-first idea exhaustion (rounds until depletion)
# ── Fan-out / loop ──────────────────────────────────────────
/cycle:cycle autonomous loop: self-enumerate (empty → seed from `## deferred`) → plan → fan-out → auto-continue to depletion
/cycle:cycle-full <goal> /cycle:cycle + a one-time phase-0 depletion brainstorm, then auto-continue to depletion
/cycle:cycle-loop /cycle:cycle via the /loop skill — explicit continuous-intent pacing surface (same depletion end-state)
/cycle:cycle-full-loop /cycle:cycle-full once, then /loop /cycle:cycle — drains to the same depletion condition
/step-by-step:step-by-step <task> sequential runbook: plan → auto-run steps in order (alias /step-by-step:sbs)
# ── Dispatch ────────────────────────────────────────────────
/pool:pool <args> host roster + remote exec on sidekick hosts
/cloud:cloud <args> hexa cloud — rented-GPU pod dispatch (runpod / vast.ai)
/micro-exp:micro-exp [scope] context-driven micro-experiment sweep (pods → monitor → parse → atlas auto-fold)
# ── Cross-project ───────────────────────────────────────────
/domain:domain <task> <NAME>.md snapshot + <NAME>.log.md checkbox-task log
/domain:domain list repo-wide domain index — DOMAINS.tape roster (NAME→path, domains anywhere)
/domain:domain list --sync reconcile DOMAINS.tape with disk (bootstraps the roster)
# cross-repo handoff → `cd <target> && /domain:domain set INBOX`
# ── Verify / atlas / help ───────────────────────────────────
/verify:verify <args> hexa verify — tier rubric (🔵🟢🟡🟠🔴⚪)
/atlas:atlas <args> hexa atlas — SSOT surface (lookup · stats · register, PR-only landing)
/hexa-help:hexa-help [verb] hexa --help (top-level catalog or per-verb signature)
# ── Research / generate ─────────────────────────────────────
/research:arxiv <q> arXiv API search / id lookup
/research:yt <url> YouTube caption transcript extract
/imagine:imagine <pf> <out> AI image gen (fal backend · gpt-image-2 pinned)
/paper:paper <args> arxiv LaTeX scaffolder (new·sample·fig·compile·lint·list)
# ── Account / credentials ───────────────────────────────────
/quota:quota [verb] Claude 5h/7d usage + multi-account registry · switch · nicknames
/secret:secret <args> macOS Keychain-backed credential CLI (dual-channel sync)
# ── Session / meta ──────────────────────────────────────────
/inject:inject (/inject:ij) sidecar sync + inject commons.tape/project.tape THIS turn
/ship:ship -m "<msg>" … atomic commit + push + sidecar sync
/sidecar:sidecar <verb> marketplace CLI — init · sync · sign · profile · enable · disable · reset
/prefs:prefs <axis> <lang> language prefs (code · docs · response)
/easy:easy friendly 7-element response style
/check:check task dashboard (domain log · open PRs · git · merges)
/end:end session-closure safety check (dangling-residue dashboard)
/question:question (/question:q) <txt> quick side-question, no task pivot (alias for /btw)
# ── Auto-fire hooks (no command) ────────────────────────────
# DENY (hard block):
# hexa-native .py/.sh writes in project.tape repos → re-issue as .hexa
# plist-guard .plist writes
# cloud-guard runpodctl/vastai exec/ssh → hexa cloud (g8)
# verify-guard wolframscript / inline-sympy → hexa verify (g5)
# verdict-gate H_*.md/result.json 🔵/🟢 without .verdicts/ evidence → deny (g73); + tautology/loop advisory
# ai-api-guard curl AI-host / inline AI-SDK → the CLI wrapper (g50)
# sign-guard edits to commons.tape/project.tape/.gitignore until `sidecar sign` (s13)
# git-guard force-push (+ stale-base push & merge advisory)
# tape-lint .tape edits (fields · length · authoring-language)
# askq-text AskUserQuestion box → re-ask as plain chat text (no option tree)
# REWRITE / ROUTE:
# pool-route heavy Bash → ssh to a pool host
# pr-cycle `gh pr create` → appends && gh pr merge + worktree clean (g47); DENIES auto-merge on mass-deletion outlier (deletion-sanity gate, anima #1105)
# output-trim >8000-char Bash stdout → dedup + truncate
# ADVISORY (non-blocking additionalContext):
# sidecar-lint git-commit: stale-history · hardpath · version drift · CHANGELOG · profiles tier · mcp-ban
# workdir-guard working tree shared by ≥2 agents → use a worktree (s-shared)
# memory-lint MEMORY.md pileup / long lines → archive
# inbox-log-lint INBOX.log.md pileup → archive
# limit-guard subagent session-limit → checkpoint directive
# monitor-guard bg/long shell launch → detach + log + Monitor (g10, rate-limit survival)
# pod-monitor GPU pod fire → SAVE_POD / detach reminders (g57)
# s9-guard Mac load-check cmds → exclude claude PIDs (s9)
# lsp-rebuild */lsp/*_lsp.hexa edit → bg rebuild <lang>-lsp-hexa (grammar auto-propagate)
# SESSION lifecycle:
# easy-auto · quota-autoadd · worktree-gc · sidecar-auto-sync · subagent-route[POC]
75 plugins across {hook · command · skill} — one concept each (35 core · 17 hexa · 21 personal · 2 master). The Tier column is the enable profile a plugin belongs to.
| Name | Kind | Tier | Version | Summary |
|---|---|---|---|---|
all-bg-go |
command + skill | core |
0.4.1 | Parallel fan-out trigger — "all bg go" → plan table + one background Agent per branch the prior turn offered (REACTIVE single fan-out; for a self-generating loop use /cycle) |
brainstorm |
command + skill | core |
0.1.1 | Iterative brainstorming |
bypass |
skill | core |
0.2.1 | Anti-punt |
check |
command + skill | core |
0.1.0 | Task dashboard skill |
cycle |
command + skill | core |
0.9.2 | Autonomous work-loop driver (whole family auto-drains to depletion) · 7 commands: /cycle · /cycle-full · /cycle-loop · /cycle-full-loop · /cycle-all (no cap + no recommend gate) · /cycle-fg + /cycle-bg (0.9.1 — STICKY execution-mode toggle via ~/.sidecar/cycle-mode: fg=in-session sequential one-at-a-time·halt on failure, bg=background parallel fan-out·auto-continue. Once set, subsequent bare /cycle keeps that mode — fg for debugging/review, bg (default) for parallel bursts) · 0.9.2 cross-links the /cycle-bg ↔ /micro-exp build-vs-fire decision tree (domain-agnostic; mirrored in skills/micro-exp/SKILL.md): /cycle-bg = canonical BUILD lane (per-worktree agents write candidate infra), /micro-exp = FIRE-only lane (pre-built infra; Stage 1.5 auto-halts back to /cycle-bg on missing infra) |
domain |
command + skill | core |
0.8.7 | Maintain UPPERCASE .md (snapshot = final-goal milestone checkboxes) + sister .log.md (append-only step log) · /domain list repo-wide index (DOMAINS.tape roster — domains at any path)… |
draft |
command + skill | core |
0.2.0 | Ephemeral scratchpad — /draft <slug> scaffolds drafts/<slug>.md; add <slug> <content> appends timestamped bullet; rm <slug> deletes one; drafts/ auto-gitignored; LLM AUTO-REGISTERS on natural-language register/jot/note signals (any language) by picking a slug from context and running /draft add; symmetric delete-that-note triggers map to /draft rm |
end |
command + skill | core |
0.2.0 | Session closure safety check |
matrix |
command + skill | core |
0.1.0 | Axis cross-product coverage tracker — /matrix manages an axis × axis grid via cwd-local MATRIX.tape (SQUARE: one axis set, pairs · RECTANGULAR: rows × cols); done <i> <j> toggles a cell, bare renders the grid (small) or per-row coverage bars (large) + coverage % + next unfilled cells |
trail |
command + skill | core |
0.1.0 | Main-flow return stack (LIFO) — /trail push <target> records where to climb back when deviating into ANY side-task (intra-repo tangent/sub-fix OR cross-repo/upstream fix — not only cross-repo); pop closes the top detour + shows what to resume; bare renders the ladder (deepest = ★ NOW); HOME-global ~/.sidecar/trail.tape (one stack for the current dive, survives cd); LLM auto-uses per commons g74 |
gap |
command | core |
0.2.0 | multi-axis gap exploration |
gh-stack |
skill | core |
0.1.1 | Stacked-PR workflow skill |
git-guard |
hook | core |
0.6.0 | PreToolUse(Bash) git-push safety guard, in hexa-lang (_git_guard.hexa, via hexa run); 0.6.0 adds a non-blocking stale-base MERGE advisory (warns when a gh pr merge lands a branch >= 20 commits behind origin/main — anima #1105 stale-base path) |
limit-guard |
hook | core |
0.1.3 | PostToolUse(Task) hook, implemented in hexa-lang (_limit_guard.hexa, invoked via hexa run) |
memory-lint |
hook | core |
0.1.0 | PostToolUse(Write|Edit) advisory for the auto-memory index file (memory/MEMORY.md), implemented in hexa-lang (`_memo… |
drift-guard |
hook | core |
0.1.1 | PostToolUse(Write|Edit) advisory — design-drift → memory sync; 0.1.1 limits sentinel scan to source-code extensions + skips sidecar repo's own /hooks/drift-guard/ tree (kills self-trigger noise from prose docs that documented the marker) |
throttle-guard |
hook | core |
0.1.0 | PostToolUse(Task|Agent) cross-session transient-throttle coordinator — shared cooldown marker + jitter backoff + WIDTH cut (distinct from limit-guard's usage cap) |
monitor-guard |
hook | core |
0.1.5 | PreToolUse(Bash) advisory for bg/long shell launches — detach + log + Monitor-on-log (commons @D g10); 0.1.5 — has_log token-position via _has_log_pos+_redirect_targets (quote-aware >/>> target + tee file-arg + << heredoc) — commands merely mentioning .log no longer satisfy the sink check, finishing the substring → token-position sweep |
output-trim |
hook | core |
0.1.3 | PreToolUse(Bash) stdout trimmer |
pool |
command + skill | core |
0.2.2 | wraps the pool CLI (host roster + remote exec |
prefs |
command | core |
0.4.0 | /prefs view/set language prefs (code · docs · response) — writes the fixed prefs.json SSOT |
prefs-hook |
hook | core |
0.1.0 | UserPromptSubmit+SessionStart+PreCompact+PostCompact — injects language prefs from the fixed SSOT (prefs split) |
question |
command + skill | core |
0.2.0 | Quick side-question alias for Claude Code's built-in /btw |
quota |
command + skill | core |
0.10.0 | Claude account 5h/7d usage limits + multi-account registry + live credential swap + per-account nicknames |
quota-autoadd |
hook | core |
0.1.1 | SessionStart hook |
research |
command + skill | core |
0.2.4 | Research-fetch tools |
roi |
command + skill | core |
0.1.0 | /roi [scope] — LOSSLESS perf/resource/speed improvement candidates as a ranked TODO. Scope bare=active-domain/cwd · /roi <message>=file/dir/feature scope. risk=low ONLY (no functional regression). Categories ⚡speed · 🧠perf · 💾resource · 🔋efficiency. Sorted by impact/effort ratio; benchable items grounded via @D bench_kernel_choices |
secret |
command + skill | core |
0.4.1 | wraps the secret CLI (macOS Keychain-backed credentials, dancinlab/secret 0.4.0, dual-channel sync) |
sidecar |
command | core |
0.7.0 | thin wrapper over the sidecar marketplace CLI (host-local, on PATH via hx install sidecar). 0.7.0 — reap (reap stale hexa-lsp idle > 2h; dry-run by default, reap --kill terminates; never touches claude @D s9 or active hexa runs) + paths add/rm now SIGN-GATED (key paths: ! sidecar sign paths first, since the whitelist overrides pool-route). 0.6.0 adds sidecar paths — manage the LOCAL-EXECUTION WHITELIST ~/.sidecar/local-paths (pool-route 0.10.0 reads it). paths (list) · paths add (register cwd) · paths add <dir> (abs-resolved dir, refuses non-existent / already-present) · paths rm <prefix>. Seeded on first use with ~/.claude/plugins/cache/sidecar/ + ~/core/sidecar/. Atomic writes (tmp+mv); whitelist itself IS the opt-in — no env opt-out (@D s11). |
step-by-step |
command + alias /sbs |
core |
0.7.0 | plan-first sequential runbook · TWO modes + 0.6.0 자동 QA 4축: MANUAL (default) — chat-form disambiguation (1Q/round, easy-mode 7-element scaffold — icon·name·alias·plain-line·analogy·ASCII·compare-table·recommendation; free-form answers OK) until ambiguity=0, then 🎯 합의된 결정셋 ASCII tree pause (user go or Qn=<other> to flip just that one), then write drafts/<slug>-plan.md (gitignored) + launch background Agent that runs end-to-end including ship + auto-QA 4축 — user can leave · AUTO same chat-form scaffold rendered but each question AUTO-PICKED by 4-axis weighted average (완성도·단순·안전(blast radius)·표준(sidecar pattern); default 1:1:1:1, inline override /sbs auto:safety <task> or /sbs auto:complete=2,simple=3 <task>) — still pauses at agreement screen. 0.6.0 자동 QA 4축 (handoff agent ship 직후) — functional (새 endpoint 응답) · visible (URL/path 노출) · conformance (locked decision ↔ 코드 1:1) · regression (기존 surface 미손상). Hybrid fail: regression FAIL → git revert <SHA> 자동 + banner; 나머지 FAIL → ship 유지 + plan.md ## qa-deferred + banner; SKIP=PASS-equivalent. legacy-manual = the prior per-step pause behavior (1-version deprecation banner). (go is a separate command, not a mode). 0.7.0 — ship+QA 직후 자동 HANDOFF.md 9-section 인계 doc + memory/project_<slug>_handoff.md 미러 (plan에 handoff verb 면 end-user dossier bundle 도) |
workdir-guard |
hook | core |
0.1.0 | SessionStart advisory (hexa-lang _workdir_guard.hexa, via hexa run) that fires once per session, and only when the… |
worktree-guard |
hook | core |
0.2.0 | PreToolUse(Bash) advisory on git worktree add — durable-worktree drill: commit+push promptly, a sibling prune / sync / tmp-reaper can delete the worktree + uncommitted edits; 0.2.0 adds a branch-reuse advisory (add -b <br> reusing an existing/local-only-stale branch — anima #1105 stale-base risk) |
worktree-gc |
hook | core |
0.2.0 | SessionStart hook that prunes merged-but-undeleted LINKED git worktrees (hexa-lang _worktree_gc.hexa). Prunes only when HEAD truly landed on origin/main; FOUR live-work guards (dirty · recent-mtime <1h · cwd-in-use · HEAD-ancestor) + atomic prune so an active worktree is never wiped mid-task |
atlas |
command + skill | hexa |
0.1.1 | wraps hexa atlas (atlas SSOT surface) |
cloud |
command + skill | hexa |
0.4.0 | wraps hexa cloud (runpod / vast.ai dispatch). 0.4.0 surfaces cloud pods / cloud dispatch [tree|active|add|verdict|rm] — per-project active pod/job work manifest at cwd's ./pods.json (one file per repo · update-form · distinct from global ~/.hexa-cloud/pods.jsonl orphan/billing registry; hexa-lang PR #1699). 0.3.5 atomic cloud fire + __MONITOR_HANDLE__ JSON-line contract (hexa-lang PR #1306 + #1309). |
cloud-guard |
hook | hexa |
0.2.2 | PreToolUse(Bash) hard block for raw rented-GPU pod dispatch (commons @D g8) |
hexa-help |
command + skill | hexa |
0.2.1 | wraps hexa --help (no arg, top-level catalog) or hexa <verb> --help (verb-specific) |
hexa-lsp |
hook | hexa |
0.1.1 | Wire the hexa-lang LSP server (hexa lsp) for .hexa files |
hexa-native |
hook | hexa |
0.3.2 | PreToolUse(Write|Edit|NotebookEdit|Bash) hard block for .py / .sh writes inside any project rooted at a directory… |
hxc-lsp |
hook | hexa |
0.1.0 | Wire hxc-lsp (HXC hexa-canonical wire/storage format LSP — diagnostics + hover) for .hxc files |
kick |
command + skill | hexa |
0.2.1 | runs hexa kick --seed "<seed>" (hexa-lang gap-breakthrough / discovery engine, aliased to hexa drill) |
kosmos-lsp |
hook | hexa |
0.1.0 | Wire kosmos-lsp (kosmos multimodal knowledge-anchor manifest LSP — diagnostics + hover) for .kosmos files |
micro-exp |
command + skill | hexa |
0.4.0 | context-driven micro-experiment sweep orchestrator (domain-agnostic — kind is abstract; materials wall · LLM bench · web smoke · build bench are examples among many). self-enumerate → Stage 1.5 per-candidate infra existence check (HALT to /cycle-bg <domain> when any of <runnable>/<inputs>/<parser>/<workdir> missing) → pod budget → monitor → parse → atlas auto-fold on closed-form-atom-shaped kinds (skip for observation-only). Cross-links the /cycle-bg ↔ /micro-exp build-vs-fire decision tree in both SKILL.md (BUILD lane vs FIRE lane). Local-pool adapter works on ANY kind with a runnable + parser |
mining |
command + skill | core |
0.3.0 | /mining — lens-driven DIVERGENCE (leaves) + connect-driven CONVERGENCE (edges) + tidy-driven ORGANIZE (phase regroup) workflow, 3rd pillar of /domain. <NAME>.mining.md (## cycles · ## leaves · ## edges, append-only) + <NAME>.mining.tape (idea cart). THREE workflows — lens (divergence; deplete at 0 new leaves) · connect (convergence; deplete at 0 new edges in a full pass) · tidy (organize; reorganize cycles into PHASE groups divergence/analysis/convergence/external + chronological cycle-index table — LOSSLESS, index preserves order). Bundled lenses: same-formula · ouroboros (goal closure) · dimensional · tension · combinatorial · custom. Verbs (12): bare (status + auto-suggest tidy at ≥10 cycles & ≥500 lines) · <lens> (round) · append · cycle new · depletion · tree · connect/edges · connect <a> <b> · graph · saturate · tidy/consolidate [--depth=light|full] · squash (cosmetic dup-header dedup). Active-domain only (commons @D g58) |
n6-lsp |
hook | hexa |
0.1.0 | Wire n6-lsp (NEXUS-6 knowledge-atlas grammar LSP — diagnostics + hover) for .n6 files |
paper |
command + skill | hexa |
0.11.0 | arxiv-style LaTeX paper scaffolder. 0.11.0 fixes 3 verbs (INBOX #112): pr-roll early-reject bare repo + jq \\\\# escape · atoms LC_ALL=C + lowercase compare + fn-dispatch match · arxiv-prep absolute tar path |
pod-monitor |
hook | hexa |
0.1.3 | PreToolUse(Bash) advisory hook for GPU pod fires (hexa cloud nohup / fire / run); 0.1.3 token-position match (no longer fires on commit/grep mentions) |
tape-lint |
hook | hexa |
0.5.1 | PreToolUse(Edit|Write) deny for .tape edits, implemented in hexa-lang (_tape_lint.hexa, invoked via hexa run |
tape-lsp |
hook | hexa |
0.1.1 | Wire tape-lsp (canonical .tape v1.2 LSP |
verify |
command + skill | hexa |
0.2.1 | runs hexa verify "$@" (cross-project tier rubric, TECS-L-aligned) |
verify-guard |
hook | hexa |
0.1.2 | PreToolUse(Bash) hard block for raw verification-tool usage cited as primary evidence, implemented in hexa-lang (`_ver… |
ai-api-guard |
hook | personal |
0.1.3 | PreToolUse(Bash) hard block for raw AI-API calls when a sidecar CLI wraps the same operation, implemented in hexa-lang… |
commons |
hook | personal |
0.10.15 | UserPromptSubmit + SessionStart + PreCompact + PostCompact hook · 0.10.15 adds @D g75 (candidate orchestration build/fire split · domain-agnostic) |
easy |
command + skill | personal |
0.1.2 | Easy (friendly) response style |
easy-auto |
hook | personal |
0.2.0 | SessionStart + UserPromptSubmit + PreCompact + PostCompact hook; 0.2.0 adds 한국어 substring NL 트리거 '설명'/'쉽게' (UserPromptSubmit · verb/noun/adverb 어형 catch) + 발동 시 1줄 banner emit (always-on inject는 그대로) |
go |
command + skill | core |
0.1.0 | /go [hint] — proceed with most-recently proposed action / continue paused flow without further confirmation. Bare "go" single-word message catches as NL alias. Stateless continuation token (not a runbook). Optional hint: retry/skip/all/host-name |
imagine |
command + skill | personal |
0.2.3 | generic AI image generator |
inbox-guard |
hook | personal |
0.1.0 | PreToolUse(Write|Edit|NotebookEdit) hard block for any write into an inbox/ folder — the canonical handoff SSOT is INBOX.md (single file + sibling INBOX.log.md); folder-style inbox/<kind>/<slug>.md fragments active state and is refused. No opt-out by design. Companion: legacy inbox skill retired |
inbox-log-lint |
hook | personal |
0.1.0 | PostToolUse(Write|Edit) advisory for the INBOX domain log (INBOX.log.md) |
inject |
command + skill | personal |
0.2.0 | Immediately inject the latest sidecar commons.tape + project.tape into the CURRENT session and sync the local install… |
plist-guard |
hook | personal |
0.1.2 | PreToolUse(Write|Edit|NotebookEdit) hard block for .plist writes, implemented in hexa-lang (_plist_guard.hexa, inv… |
pool-route |
hook | personal |
0.11.0 | PreToolUse(Bash) pool auto-router + sign-local single-gate. 0.11.0 FORK-STORM CAP — a whitelist-forced-LOCAL hexa run (e.g. a /tmp script), when ≥ FORK_STORM_CAP (default 8) USER hexa interpreters are already live locally, is DENIED with a runbook (locality preserved, storm capped); counts via ps -Ao args, excludes sidecar's own hooks + claude (@D s9), fails OPEN on a count error (@D s11). 0.10.0 SIDECAR PATH-PREFIX WHITELIST — a new permanent LOCAL-EXECUTION layer reads ~/.sidecar/local-paths (USER-managed via the new `sidecar paths {bare |
pr-cycle |
command | personal |
0.4.0 | /pr-cycle one-shot PR cycle (push + create; the pr-cycle-hook plugin appends merge + worktree-clean) |
pr-cycle-hook |
hook | personal |
0.2.0 | PreToolUse(Bash) router — appends merge + worktree/branch cleanup to gh pr create (commons @D g47; pr-cycle split); 0.2.0 adds a deletion-sanity gate that DENIES the auto-merge on a mass-deletion outlier (D>50 or deletions >= 10x additions — anima #1105's 35190-file stale-base regression) |
project-tape |
hook | personal |
0.2.1 | PreCompact + PostCompact hook |
s9-guard |
hook | personal |
0.1.0 | PreToolUse(Bash) advisory hook for load-assessment commands (project.tape @D s9) |
askq-text |
hook | personal |
0.1.0 | PreToolUse(AskUserQuestion) → plain-text chat redirect, in hexa-lang (_askq_text.hexa, via hexa run). DENIES the arrow-key option-tree box and instructs the model to re-ask the SAME question as plain chat text (options listed inline, recommendation marked, free-form answer accepted). A FORM redirect, not anti-punt — distinct from the bypass skill; plan approval keeps ExitPlanMode. Unconditional, NO opt-out (@D s11) |
lsp-rebuild |
hook | personal |
0.1.0 | PostToolUse(Write|Edit) auto-rebuild for hexa-native LSP servers, in hexa-lang (_lsp_rebuild.hexa, via hexa run). Editing a */lsp/<lang>_lsp.hexa grammar source → background HEXA_MAC_BUILD_OK=1 hexa build … -o ~/.local/bin/<lang>-lsp-hexa (detached, log → ~/.sidecar/lsp-rebuild.log) + non-blocking advisory, so a grammar change auto-propagates without a manual rebuild. Rebuild-not-source-run: the stdio server needs the read_stdin_n_c FFI that only links into a compiled binary. Fires only on the */lsp/*_lsp.hexa pattern (@D s11) |
ship |
command + skill | personal |
0.3.2 | Atomic ship tail for sidecar plugin changes |
sidecar-auto-sync |
hook | personal |
0.2.0 | SessionStart hook that runs sidecar sync once per Claude Code session, implemented in hexa-lang (`_sidecar_auto_sync… |
sidecar-lint |
hook | personal |
0.8.1 | PreToolUse(Bash) auto-lint that fires on git commit in any Claude Code marketplace plugin pack (version drift · hardpath · stale-history · CHANGELOG · profiles tier · MCP-ban · top-level-dir allowlist); 0.8.1 — top-level-dir check is an ALLOWLIST (concept dir · bin · .github · .claude-plugin), so renaming a by-KIND bucket (docs→documentation) no longer dodges it; advisory directs co-location under the owning domain/plugin (project.tape @D s16) |
sign-guard |
hook | personal |
0.1.7 | PreToolUse(Write|Edit|NotebookEdit|Bash) sign-gate for sign-gated files (commons.tape · project.tape · .gitignore · 0.1.7 ~/.sidecar/local-paths — the LOCAL-EXECUTION WHITELIST), in hexa-lang — agent edits need a fresh sidecar sign <key> token (commons·project·gitignore·paths); hard-denies self-mint |
subagent-route |
hook | personal |
0.1.0 | [POC] PreToolUse(Task|Agent) observation hook + SessionStart observation-log snapshot, implemented in hexa-lang (`_sub… |
Sidecar's own identity + governance lives in project.tape (also reachable via CLAUDE.md). Cross-project do / dont rules ride inside the commons hook plugin and auto-inject at SessionStart + PreCompact + PostCompact. Local sidecar decisions (concept separation, ship cycle, evidence-before-ship, cross-project carrier) are recorded in DESIGN.log.md as numbered decisions; DESIGN.md is the live-rules pointer.
Two honesty policies — cross-cutting rules that stop autonomous work from making false claims. Both share the same form: "claim X must be proven; it is not the default."
| Policy | Honesty of what | One-liner |
|---|---|---|
LATTICE_POLICY.md |
limit claims | a ceiling must be a real physics/math limit (no convenience numbers) — commons g25·g26 |
CLOSURE_POLICY.md |
closure claims | a domain is "done" ONLY when judged from a fresh·live SSOT · perpetual domains never terminate — cycle @D ssot_freshness·perpetual_domain + domain stale-guard |
CLOSURE_POLICY was derived from the incident where anima's LIFE domain wrongly declared ✅ 100% depleted due to a stale untracked copy + perpetual misclassification (enforced by cycle 0.7.7 + domain 0.8.8).
project.tape— sidecar's identity + governance (linked asCLAUDE.md).DESIGN.md/DESIGN.log.md— live design-rules pointer + decision audit trail.LATTICE_POLICY.md/CLOSURE_POLICY.md— honesty policies (limit-claim · closure-claim) — see Policies.CHANGELOG.md— chronological log of notable changes (one entry per ship batch).GH-STACK.md/GH-STACK.log.md— stacked PR workflow reference + enablement history.
MIT.