← ClaudeAtlas

no-hidden-changeslisted

Use before adopting any change that disables, hides, parks, removes, or relocates something, or uses a custom side-channel (a `_disabled`/`_backup` key or shadow file) instead of a tool's built-in toggle, menu, or setting. Also applies when a change keeps hiding state that has since become valid (stale state lies too), or ships an in-place edit to a versioned/published artifact (plugin, package, shared config) without bumping its version, or edits a DERIVED copy instead of its source (an installed plugin cache, a symlinked live file, a build output, a generated config) where the next update silently reverts it, or lands unrelated work as one lump on the default branch, switches the branch of a checkout other tooling resolves through, stages with `git add -A`, or rewrites published history (a force-push or a moved tag), or installs durable automation (a hook, cron job, launch agent, or background script) without first surveying for an existing mechanism that already does the job or recording what it installed.
haiggoh/no-hidden-changes · ★ 1 · AI & Automation · score 74
Install: claude install-skill haiggoh/no-hidden-changes
# No Hidden Changes ## The core principle Prefer solutions that stay **discoverable, honest, and reversible** and that preserve a tool's native, vanilla UX. A clever or cheaper workaround that a future user (or session) can't see is not cheaper — the hidden cost lands later, as confusion or a false impression that something is broken. ## Red-flag signatures Stop and apply this skill the moment a solution involves any of these: - Moving, renaming, or commenting-out state/config out of the key, table, file, or directory a tool's own UI, menu, dashboard, or listing reads from. - A custom side-channel: a `_disabled` / `_backup` / `_old` bucket, a shadow file, or a flag the native UI never reads. - Suppressing, blanking, or fake-emptying a native view so it shows less than the truth. - Choosing a bespoke hack over a documented native mechanism (per-item enable/disable, standard settings, a menu, a feature flag). - Continuing to hide or filter something after the reason for hiding it has expired, so the native view now understates what is actually available. - Shipping an in-place change to a versioned/published artifact (plugin, package, shared config) without bumping its version. - Adding a recurring hook, cron job, or launch agent without first checking whether an existing mechanism already does the job — a duplicate hides from every native view. - Installing durable automation (a hook, cron, agent, watcher, or background script) without recording it anywhere discoverable.