Repository navigation
Add /improve-skills: meta-critic that improves the system's own prompts - #11
Merged
Merged
Conversation
The self-learning system improved only its facts (the memory wiki via /dream), not the core prompts and orchestration that drive the work. Add the missing self-improvement axis. - .claude/workflows/improve-skills.js — a deterministic meta-critic that fans out one reviewer per quality lens (clarity, instruction-following risk, safety/gating, consistency/DRY, workflow DSL, routing) across the project's OWN command/workflow/instruction surface, then a SEPARATE skeptic adversarially verifies each blocker/important finding on two axes: is the problem real, and is the proposed edit safe (won't weaken instruction-following or break a workflow). Returns proposed edits only; never writes files. - .claude/commands/improve-skills.md — invokes the workflow, renders the matrix, and applies edits ONLY on confirmation. disable-model-invocation (manual-only) because it edits core prompts. - Wired into CLAUDE.md (workflow list + a "self-improvement vs self-learning" note), skills-index, and the memory wiki. Both axes stay confirmation-gated: never auto-create, rewrite, or delete a command/skill, and never weaken an instruction or remove a safety gate as an "improvement". Co-Authored-By: Claude Opus 4.8 <[email protected]> Claude-Session: https://claude.ai/code/session_014xUCrJdREvUMjoVzSX5T8G
… gates First /improve-skills meta-critic run (25 agents, 6 lenses) found 2 blockers + 10 important in the project's own prompts/workflows; the two-axis verifier refuted 7 (including 3 edits that would have weakened a gate). Applied the verified real-and-safe fixes: - Self-modification guard (blocker): the autonomous-loop denylist protected only product/infra paths, so an L2/L3 loop could rewrite its OWN governing prompts. Added .claude/ + CLAUDE.md to the loop-iteration.js regex gate and the loop.md prose denylist (regex unit-tested: matches the prompt surface, no false positives). The sanctioned path to edit prompts is the manual, confirmation-gated /improve-skills. - /dream: gate CLAUDE.md edits behind explicit confirmation (was the self-contradictory "propose it ... and apply the edit"); add the matching Hard rule. - CLAUDE.md: add "commit/push only when the user asks" (settings pre-allow git commit, but no rule forbade committing unprompted). - loop.md: fail-safe defaults — unstated per-run cap -> 25 turns, unstated trust level -> L1 at the action step, no identifiable task -> self-stop. - fix-localhost: make its single-agent intent explicit (it named a critic panel inline; CLAUDE.md classes it single-agent and says panels are Workflows). - multi-agent-dev: add typecheck/lint/unit/build to its "never mark complete unless" gate (CLAUDE.md requires them; the command's list omitted them). - write-goal + CLAUDE.md: drop the dangling /plan reference -> outline inline. - improve-skills.js: parse a JSON-string args so scope/targets resolve. Filed the durable lesson (a self-improving system must denylist its own prompt surface) in the memory wiki + log. Co-Authored-By: Claude Opus 4.8 <[email protected]> Claude-Session: https://claude.ai/code/session_014xUCrJdREvUMjoVzSX5T8G
There was a problem hiding this comment.
Pull request overview
Introduces a new confirmation-gated “self-improvement” workflow (/improve-skills) that reviews and proposes edits to the repo’s own Claude prompt/workflow surface, with adversarial verification, and hardens existing loop automation against self-modification.
Changes:
- Added
/improve-skillscommand +improve-skillsworkflow (multi-lens critics + skeptic verifier) that returns proposed edits only. - Hardened
/loopautomation by denylisting.claude/andCLAUDE.mdin both the deterministic workflow gate and the prose denylist. - Updated core docs/index/wiki entries to reflect the new self-improvement axis and tightened a few related operational rules.
Reviewed changes
Copilot reviewed 12 out of 12 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
CLAUDE.md |
Documents /improve-skills, adds commit/push restraint, and removes the dangling /plan reference. |
.claude/workflows/loop-iteration.js |
Adds denylist protection for .claude/ and CLAUDE.md to prevent autonomous self-modification. |
.claude/workflows/improve-skills.js |
New meta-critic workflow that fans out reviewers per lens and adversarially verifies findings before proposing edits. |
.claude/skills-index.md |
Adds /improve-skills to intent routing and the command table. |
.claude/memory/topics/workflow.md |
Updates workflow documentation to include /improve-skills and the two-axis verification principle. |
.claude/memory/log.md |
Records the new self-improvement axis and the denylist hardening lesson in the memory log. |
.claude/loop.md |
Adds fail-safe defaults (cap/level/task) and expands denylist to include prompt surface. |
.claude/commands/write-goal.md |
Removes /plan reference and instructs to outline plans inline. |
.claude/commands/multi-agent-dev.md |
Tightens completion gates to explicitly require typecheck/lint/unit tests (and build when warranted). |
.claude/commands/improve-skills.md |
New manual-only command wrapper for running and applying confirmed /improve-skills edits. |
.claude/commands/fix-localhost.md |
Clarifies this command is intentionally single-agent; points to /critic-round if a full workflow review is needed. |
.claude/commands/dream.md |
Requires explicit confirmation before applying any CLAUDE.md edits proposed during /dream. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Comment on lines
55
to
59
| **Three ways to get there:** (a) describe the outcome and ask for the `/goal`; | ||
| (b) `/plan` first, then convert the plan into a `/goal`; (c) context-dump | ||
| (b) outline the plan inline first (steps + files touched), then convert it into a | ||
| `/goal`; (c) context-dump | ||
| (`CLAUDE.md`, the memory wiki, the docs story map) and ask which `/goal`s are worth | ||
| building. Triggers: "write me the `/goal` for this", "turn this into a `/loop`", |
| - After fixing, run the smallest relevant test first, then the full verification command. | ||
| - Commit or push only when the user explicitly asks. Never commit/push as a side | ||
| effect of completing a task; `git commit`/`git add` being pre-allowed in | ||
| `settings.local.json` is a convenience, not a license to commit unprompted. If on |
| // Actionable = the problem is real. `applyReady` additionally requires the edit to be | ||
| // verified safe — the caller applies those first and treats real-but-not-editSafe | ||
| // findings as "needs a human-designed fix". | ||
| const confirmed = settled.filter((f) => f.real !== false) |
Comment on lines
+41
to
+42
| 6. When an edit changes a command or workflow, keep `.claude/skills-index.md` and any | ||
| affected memory wiki page in sync (additive index updates need no confirmation). |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The self-learning system improved only its facts (the memory wiki via
/dream), not the core prompts and orchestration that drive the work.
Add the missing self-improvement axis.
fans out one reviewer per quality lens (clarity, instruction-following
risk, safety/gating, consistency/DRY, workflow DSL, routing) across the
project's OWN command/workflow/instruction surface, then a SEPARATE
skeptic adversarially verifies each blocker/important finding on two
axes: is the problem real, and is the proposed edit safe (won't weaken
instruction-following or break a workflow). Returns proposed edits only;
never writes files.
matrix, and applies edits ONLY on confirmation. disable-model-invocation
(manual-only) because it edits core prompts.
self-learning" note), skills-index, and the memory wiki.
Both axes stay confirmation-gated: never auto-create, rewrite, or delete a
command/skill, and never weaken an instruction or remove a safety gate as
an "improvement".
Co-Authored-By: Claude Opus 4.8 [email protected]
Claude-Session: https://claude.ai/code/session_014xUCrJdREvUMjoVzSX5T8G