openlore-analyze-codeb…
Run a full static OpenLore analysis and summarize architecture, call graph, refactoring issues, and duplicate code. Use when…
Apply a confirmed .openlore/refactor-plan.md with a test gate after each change. Use when asked to execute or continue an OpenLore refactoring plan.
$ npx -y skills add clay-good/OpenLore --skill openlore-execute-refactor --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/openlore-execute-refactorContext preview
The summary Claude sees to decide when to auto-load this skill.
Apply a confirmed .openlore/refactor-plan.md with a test gate after each change. Use when asked to execute or continue an OpenLore refactoring plan.
name: openlore-execute-refactor description: Apply a confirmed .openlore/refactor-plan.md with a test gate after each change. Use when asked to execute or continue an OpenLore refactoring plan.
Trigger this skill when the user asks to **apply a refactoring plan**, with phrasings like:
**Prerequisite**: the `openlore-plan-refactor` skill must have been run and the plan confirmed. The file `.openlore/refactor-plan.md` must exist.
---
Each change in the plan is treated as an **independent, self-contained development unit**. The cycle for every single change, without exception:
READ plan entry
→ EDIT (targeted tool, ≤ 50 lines touched)
→ DIFF (git diff --stat + git diff — verify no lost code)
→ TEST (run the test gate from the plan)
├─ green → mark ✅ in plan, move to next change
└─ red → git checkout HEAD -- <file>
diagnose the failure
retry from EDIT (attempt 2, then 3)
if still red after 3 attempts → STOP (see circuit-breaker below)**Never accumulate broken state. Never skip the test gate. Never batch two changes before testing.**
If a change fails its test gate 3 times in a row, stop immediately and report:
> "Change N (`<label>`) failed after 3 attempts. The working tree has been restored to the last green state. > Options: > a) Split this change into smaller sub-changes (≤ 50 lines each) and update the plan > b) Return to planning (`/openlore-plan-refactor`) to redesign this step > c) Skip this change and continue — note the acceptance criteria may not be fully met"
Do not attempt a 4th retry without explicit user instruction.
---
Read `.openlore/refactor-plan.md` from the project directory.
If the file does not exist, stop immediately: > "No refactor plan found at `.openlore/refactor-plan.md`. Please run `/openlore-plan-refactor` first."
Extract and display a summary:
**Ask the user to confirm before proceeding.**
> **Execution mode**: once confirmed, execute all changes in the plan **without asking for permission between steps**. The only valid reasons to pause mid-execution are: (a) a test fails and 3 retries are exhausted (circuit-breaker), (b) you detect potentially lost code (`git diff` shows far more deletions than additions with no new file created), or (c) Step 6 is explicitly requested. Any other pause is non-compliant with this skill.
---
Confirm the test suite is passing using the test command from the plan.
**If tests are already failing, stop and tell the user. Under no circumstances continue on a red baseline — not even if the failures appear pre-existing.** Pre-existing failures must be fixed or explicitly acknowledged in the plan before any refactoring starts. Do not offer to "proceed at your own risk" on a red baseline.
If a coverage tool is available, run it on the target file and compare against the coverage baseline in the plan.
**Coverage thresholds:**
| Coverage on files to touch | Recommendation | |---|---| | ≥ 70% lines | Safe — proceed | | 40–69% lines | Caution — write characterisation tests first | | < 40% lines | **Stop.** Strongly recommend writing tests first | | 0% (no tests) | **Blocked.** Propose a minimal test harness, then restart |
If coverage is below 40%: > "Coverage on the target file is X%. Refactoring without test coverage risks introducing silent regressions. Would you like me to suggest test cases based on the function signatures, or do you want to proceed at your own risk?"
Only continue past this point with **explicit user confirmation**.
**Large file warning**: if the target function spans more than 300 lines: > "This function is X lines long. Small models may lose code when editing files of this size in a single pass. The plan must decompose each change to ≤ 50 lines. Verify the plan respects this before continuing."
---
Verify the working tree is clean:
git status # must show: nothing to commit, working tree clean git log --oneline -1 # note this commit hash — your restore point
If there are uncommitted changes, stop and ask the user to commit or stash them first.
Fill in the `Restore point` section of `.openlore/refactor-plan.md` with the current commit hash.
---
Before the first change, call `record_decision` with the directory, target function, selected strategy, rationale, consequences, and affected files. Record any additional architectural choice discovered during the refactor as it arises.
For **each change** in the plan, execute the full mini-development cycle below. Do not move to the next change until the current one is marked ✅.
Re-read `.openlore/refactor-plan.md` to confirm:
Always prefer a targeted edit tool over a full-file rewrite. Only use a full rewrite if the file is under 100 lines. If a change seems to require a full rewrite on a larger file, stop and split it into smaller targeted edits.
**Small model constraint**: each edit must touch a contiguous block of at most **50 lines**. If the planned change exceeds this, split it into sub-changes before proceeding — do not attempt an oversized edit.
**Attempt counter**: reset to 1 at the start of each new
Deterministic, local-first memory and guardrails for AI coding agents with no LLM in the hot path.
Run a full static OpenLore analysis and summarize architecture, call graph, refactoring issues, and duplicate code. Use when…
Transform a feature idea into an annotated story using a Domain Sketch or Constrained Option Tree. Use when asked to brainstorm,…
Debug with OpenLore structural context, an explicit root-cause hypothesis, and RED/GREEN verification. Use when a bug, failure,…
Author a new OpenSpec domain specification from deterministic OpenLore MCP evidence. Use when asked to reverse-engineer,…
Implement a brownfield story with OpenLore orientation, risk checks, spec validation, tests, and drift detection. Use when asked…
Retrieve relevant functions, callers, spec sections, and insertion points from OpenLore before reading source files. Use when…