Refactor React Effects
langfuse/langfuse
Refactor avoidable React useEffect usage in Langfuse frontend code.
Clean up and harden code introduced by the current branch without drifting into broad refactors.
$ npx skills add Simon-Initiative/oli-torus --skill change-cleanup -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install Simon-Initiative/oli-torus change-cleanup --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/Simon-Initiative/oli-torus.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/change-cleanup .claude/skills/change-cleanup && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "change-cleanup" agent skill from https://github.com/Simon-Initiative/oli-torus/tree/master/.agents/skills/change-cleanup into .claude/skills/change-cleanup/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "change-cleanup", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/Simon-Initiative/oli-torus/tree/master/.agents/skills/change-cleanupType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add Simon-Initiative/oli-torus --skill change-cleanup -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install Simon-Initiative/oli-torus change-cleanup --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Simon-Initiative/oli-torus.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/change-cleanup .agents/skills/change-cleanup && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "change-cleanup" agent skill from https://github.com/Simon-Initiative/oli-torus/tree/master/.agents/skills/change-cleanup into .agents/skills/change-cleanup/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "change-cleanup", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Simon-Initiative/oli-torus --skill change-cleanup -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install Simon-Initiative/oli-torus change-cleanup --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Simon-Initiative/oli-torus.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/change-cleanup .cursor/skills/change-cleanup && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "change-cleanup" agent skill from https://github.com/Simon-Initiative/oli-torus/tree/master/.agents/skills/change-cleanup into .cursor/skills/change-cleanup/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "change-cleanup", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/Simon-Initiative/oli-torus.git --path .agents/skills/change-cleanup--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add Simon-Initiative/oli-torus --skill change-cleanup -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install Simon-Initiative/oli-torus change-cleanup --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Simon-Initiative/oli-torus.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/change-cleanup .gemini/skills/change-cleanup && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "change-cleanup" agent skill from https://github.com/Simon-Initiative/oli-torus/tree/master/.agents/skills/change-cleanup into .gemini/skills/change-cleanup/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "change-cleanup", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install Simon-Initiative/oli-torus change-cleanupInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add Simon-Initiative/oli-torus --skill change-cleanup -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/Simon-Initiative/oli-torus.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/change-cleanup .github/skills/change-cleanup && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "change-cleanup" agent skill from https://github.com/Simon-Initiative/oli-torus/tree/master/.agents/skills/change-cleanup into .github/skills/change-cleanup/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "change-cleanup", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Simon-Initiative/oli-torus --skill change-cleanup -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install Simon-Initiative/oli-torus change-cleanup --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Simon-Initiative/oli-torus.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/change-cleanup .opencode/skills/change-cleanup && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "change-cleanup" agent skill from https://github.com/Simon-Initiative/oli-torus/tree/master/.agents/skills/change-cleanup into .opencode/skills/change-cleanup/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "change-cleanup", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
change-cleanupClean up and harden code introduced by the current branch without drifting into broad refactors.
Change Cleanup is an agent skill from Simon-Initiative/oli-torus. Clean up and harden code introduced by the current branch without drifting into broad refactors. Use when Codex should review branch-local changes against a base branch, improve newly added or modified code for reuse, clarity, docs, specs, and dead-state cleanup, and optionally work interactively with the user in self-driving, smart, or assisted mode. This skill is for targeted cleanup after feature iteration, especially when Elixir, Phoenix LiveView, or React changes may have left duplicated helpers, missing…
Its SKILL.md is about 3.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `agents/openai.yaml`).
It sits in Development, covering Refactoring and LLM observability. It works with React and Elixir. The repository describes itself as: Next Generation OLI Authoring and Delivery Platform. The licence is MIT.
6 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 4140f32. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
ghFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use gh, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Change Cleanup loads about 3.7k tokens when it runs. Until then it costs about 149 tokens; SKILL.md has 2,051 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from Simon-Initiative/oli-torus at commit 4140f32, republished under its MIT licence (© Simon-Initiative). 2,051 words, ~3,701 tokens.
.claude/skills/change-cleanup/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Use this skill to clean up the code introduced or changed by the current branch while keeping scope tight and evidence-based.
The primary goal is to improve the quality of the branch's changes, not to perform opportunistic repo-wide cleanup. Focus first on files added or modified in the branch, then expand only when a small supporting refactor outside the diff is necessary to remove duplication or extract a shared helper.
Ask which mode to use only when the user did not already provide one.
self-driving, smart, or assisted, confirm that mode and proceed.self-drivingsmartassistedState the base branch before doing cleanup work.
gh pr view --json baseRefName --jq .baseRefName).origin/master and any feature integration
branches (origin/integ-*): the one whose merge-base with HEAD has the fewest commits
between it and HEAD. If the candidates are equally close, ask the user.Use the branch diff against the base branch as the primary cleanup boundary.
Within an existing file, only apply cleanup to newly added or modified code units.
@doc to unchanged public functions.Allow touching files outside the diff only when that is the smallest sound change needed to:
Do not perform speculative cleanup on unrelated untouched code.
Evaluate the changed surface for the following:
Helper overgrowth and duplication
defp helpers across modules.Missing or outdated specs
@spec for new or modified functions where the language conventions support it.@spec for:@spec for private functions only when the logic is complex enough that the type
contract materially improves readability or static analysis.map(),
list(), or trivial wrappers without improving documentation or Dialyzer coverage.attr declarations as the primary interface contract.
Add @spec only when the component has non-trivial options or when surrounding helper
functions expose a meaningful contract.Module.t() in a spec, verify that the referenced module actually defines
@type t() or @opaque t().t(), use the correct structural type instead, such as
%Module{} or another explicit type that the module really exposes.Missing or outdated public function docs
@doc for new or modified public functions.Missing or outdated module docs
@moduledoc.@moduledoc.Inline explanation for complex logic
Stale assigns, props, attrs, and other iteration residue
Overlapping state
Duplicate functions or near-duplicate behavior
Stale added files and orphaned entrypoints
Determine the mode before starting the cleanup pass.
self-driving, smart, or assisted, confirm that mode and proceed without asking again.self-driving: fully automatic cleanup pass; research, decide, and implement without per-finding approvalsmart: inspect first, summarize findings, review them interactively, then wait for approval before editingassisted: walk rule-by-rule with the user before any edits, then wait for approval before editing1, 2, or 3.Confirm the cleanup frame.
Build context from facts.
Classify findings before proposing edits. For each finding, record:
After applying approved cleanup changes, always include a suggested commit message in the final response.
"[TICKET-ID] Commit message".TICKET-ID from the branch name, changed docs, PR/ticket context,
or previously established conversation context."[TICKET-ID]" literally and mention
that the placeholder should be replaced.self-drivingUse this mode for a fully automatic cleanup pass.
smartUse this mode for one review pass before editing.
Research all cleanup targets first.
Produce a concise initial summary before editing anything.
The summary must include:
Review findings interactively, one by one. For each finding, present:
FindingRuleContextSuggested ActionWhyProposed ResolutionEnd each finding review with exactly two options.
For non-final findings:
accept and continueadjustFor the final finding:
accept and view final summaryadjustIf the user chooses adjust, stay on that same finding until alignment is reached.
After all findings are reviewed, present a final execution summary. Separate clearly:
Wait for explicit approval before editing files.
Apply all approved changes in one batch.
assistedUse this mode for a rule-by-rule walkthrough with the user before making any edits.
Review the cleanup rules sequentially instead of starting with a full findings summary.
For each rule:
Keep a running internal record of:
Do not edit files while walking through the rules.
After all rules are reviewed, present one final batch summary. Separate clearly:
Wait for explicit approval before editing files.
Apply all approved changes in one batch.
Module.t() types. Confirm the referenced
module exports that type first; otherwise use %Module{} or another real exported type.© Simon-Initiative, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file in .agents/skills/change-cleanup of Simon-Initiative/oli-torus.
Open the folder on GitHubat commit 4140f32
Change Cleanup next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Change Cleanup this skillSimon-Initiative/oli-torus | 119 | — | ~3.7k | Automated safety check: Pass | MIT | |
| Refactor React Effectslangfuse/langfuse | 36k | — | ~1.7k | Automated safety check: Pass | Custom licence | |
| Elixirstreamband/hydra-srt | 147 | — | ~804 | Automated safety check: Pass | Apache-2.0 | |
| Elixirericrisco/rsc-harness | 180 | — | ~2.9k | Automated safety check: Pass | MIT | |
| Elixir AntipatternsGentleman-Programming/Gentleman-Skills | 658 | — | ~2.1k | Automated safety check: Pass | MIT | |
| Elixir Idiomsirahardianto/awesome-agv | 156 | — | ~771 | Automated safety check: Pass | MIT |
langfuse/langfuse
Refactor avoidable React useEffect usage in Langfuse frontend code.
streamband/hydra-srt
A skill your agent uses for Elixir/Phoenix development in this repo: implementing features, refactors, debugging, tests, Ecto changes, and production-safe fixes.
ericrisco/rsc-harness
A skill your agent uses when writing or refactoring Elixir/OTP on the BEAM — GenServers, supervision trees and restart strategies, pattern matching, mix projects and releases — or when processes…
Gentleman-Programming/Gentleman-Skills
Core catalog of 8 critical Elixir/Phoenix anti-patterns covering error handling, separation of concerns, Ecto queries, and testing.
irahardianto/awesome-agv
Elixir and OTP idioms: pattern matching, with pipelines, GenServer and supervision tree architecture, fault-tolerant concurrency, and ExUnit testing.
oliver-kriska/claude-elixir-phoenix
Find the root cause of Elixir/Phoenix bugs — crashes, exceptions, stack traces, compile errors, LiveView that won't update, silent failures.
Simon-Initiative/oli-torus
Triage and address pull request review comments after a PR is open.
Categories
Clean up and harden code introduced by the current branch without drifting into broad refactors. Change Cleanup is an agent skill from Simon-Initiative/oli-torus. Clean up and harden code introduced by the current branch without drifting into broad refactors.
Change Cleanup fits situations like: Codex should review branch-local changes against a base branch; improve newly added; modified code for reuse; dead-state cleanup.
Run `npx skills add Simon-Initiative/oli-torus --skill change-cleanup -a claude-code`. Or copy the skill folder (.agents/skills/change-cleanup in Simon-Initiative/oli-torus) into .claude/skills/change-cleanup in your project. Claude Code loads it when a task matches its description.
Run `npx skills add Simon-Initiative/oli-torus --skill change-cleanup -a codex`. Or copy the skill folder (.agents/skills/change-cleanup in Simon-Initiative/oli-torus) into .agents/skills/change-cleanup in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Simon-Initiative/oli-torus --skill change-cleanup -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/change-cleanup, .gemini/skills/change-cleanup, .github/skills/change-cleanup and .opencode/skills/change-cleanup in your project.
Going by SKILL.md and its folder, Change Cleanup needs the command-line tools its instructions call (gh).
SKILL.md contains no URLs. Its commands use gh, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Change Cleanup is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.7k tokens (SKILL.md is roughly 15k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Change Cleanup: Refactor React Effects (langfuse/langfuse, 36k stars), Elixir (streamband/hydra-srt, 147 stars), Elixir (ericrisco/rsc-harness, 180 stars) and Elixir Antipatterns (Gentleman-Programming/Gentleman-Skills, 658 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Simon-Initiative (a GitHub organization) maintains it in Simon-Initiative/oli-torus, which has 119 GitHub stars. The repository holds 2 skills in this directory. The repository was last updated on October 9, 2026.
Source: Simon-Initiative/oli-torus on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.