Guide to analyze a current work session and propose improvements to skills. Use (1) automatically after working with a skill to capture learnings, (2) when the user suggests improvements, corrections, or additions during a skill-related session, or (3) when the user manually invokes `self-improve`.
Installs into .claude/skills of the current project.
Are you the author of Skill Optimizer Lawvable?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/aibot88-skill-optimizer-lawvable)
---
name: skill-optimizer-lawvable
description: Guide to analyze a current work session and propose improvements to skills. Use (1) automatically after working with a skill to capture learnings, (2) when the user suggests improvements, corrections, or additions during a skill-related session, or (3) when the user manually invokes `self-improve`.
metadata:
author: Malik Taiar (Lawvable)
license: AGPL-3.0
version: 2026.01.07
---
# Self-Improve Skill
Analyze the current conversation and propose improvements to skills based on corrections, successes, and edge cases discovered during the work session.
## Triggers
- `self-improve` - Analyze session and propose improvements
- `self-improve [skill-name]` - Target a specific skill
- `self-improve on` - Enable automatic mode (hook)
- `self-improve off` - Disable automatic mode
- `self-improve status` - Show automatic mode status
- `self-improve [skill-name] history` - Show modification history
---
## Main Workflow (`self-improve`)
### Step 1: Identify the Skill
If skill name not provided, list available skills from `skills/` directory and ask:
```
Which skill should I analyze for this session?
[List skills found in skills/ directory]
```
### Step 2: Detect Signals
Scan the conversation for **signals** - moments where the user expressed feedback:
| Signal Type | Examples |
|-------------|----------|
| **Correction** | "No", "That's not right", "It's missing X", "Always do Y", user rewrites output |
| **Success** | "Perfect", "Yes", "Exactly", user accepts without changes |
| **Edge case** | User needed a workaround, skill couldn't handle the request |
### Step 3: Evaluate Each Signal for Quality
For each correction signal, evaluate if it can become a good skill instruction.
#### Quality Criteria
**1. COMPLETE**
The instruction includes all information needed to apply it. No need to look elsewhere or make assumptions.
| Grade | Example |
|-------|---------|
| Pass | "Structure output as: Key Terms / Risk Areas / Suggested Revisions" |
| Fail | "Use the standard format" (which format?) |
| Fail | "Follow our firm's guidelines" (what guidelines?) |
**2. PRECISE**
No vague or subjective terms. Two different people reading the instruction would understand it the same way.
| Grade | Example |
|-------|---------|
| Pass | "Flag non-compete clauses over 12 months as high risk" |
| Fail | "Be more thorough in the analysis" |
| Fail | "Make it more appropriate for clients" |
**3. ATOMIC**
One instruction addresses one single requirement. Multiple checks should be split into separate instructions.
| Grade | Example |
|-------|---------|
| Pass | "Check for governing law clause" |
| Fail | "Check for governing law, jurisdiction, and arbitration clauses" (three checks - split them) |
**4. STABLE**
If referencing regulations or standards, specify the version or date. The instruction should be evaluable the same way regardless of when it's read.
| Grade | Example |
|-------|---------|
| Pass | "Review the termination provisions under our internal policy [policy name and reference], dated December 12, 2024." |
| Fail | "Follow latest market standards" (which standards? will change over time) |
### Step 4: Grade the Signal
| Criteria Met | Action |
|--------------|--------|
| **All 4 criteria pass** | Add to skill directly |
| **Less than 4 criteria** | Ask for clarification (see Step 5) |
### Step 5: Ask for Clarification
When feedback doesn't meet all criteria, ask for what's missing using the `AskUserQuestion` tool:
```
I detected a correction but need more information to improve the skill.
You said: "[user's feedback]"
To create a clearer instruction, I need the following information:
[Structured tool call listing what's missing based on failed criteria]
```
**If the user provides clarification** → Update the instruction and proceed to Step 6.
**If the user prefers the original** → Proceed to Step 6 with the original instruction.
### Step 6: Propose Changes
```
--- Learning: [skill-name] ---
Proposed additions:
1. "[exact instruction to add]"
Source: "[quote from conversation]"
2. "[exact instruction to add]"
Source: "[quote from conversation]"
---
Apply these changes? [Y/n]
```
### Step 7: If Approved
1. **Update SKILL.md**
- Read `skills/[skill-name]/SKILL.md`
- Add each instruction in the appropriate section
- Each instruction must be readable and applicable on its own
2. **Update `skills/[skill-name]/CHANGELOG.md`**
- Create if doesn't exist
- Add new entry AT THE TOP:
```markdown
## [DATE (format: "January 7, 2026")]
[Description of changes in natural language, 1-3 sentences]
```
- Entry rules:
- Most recent at top
- 1-3 sentences max
- Natural language
- No git references
### Step 8: Save Observations
For signals that couldn't be processed, offer to save:
```
Save these observations for later review?
- "[signal 1]" - Status: [why insufficient]
- "[signal 2]" - Status: [why insufficient]
```
If yes, append to `skills/[skill-name]/OBSERVATIONS.md`
---
## Secondary Commands
### self-improve on
1. Run:
```bash
rm -f ./.disabled
```
2. Reply: "Automatic mode enabled."
### self-improve off
1. Run:
```bash
touch ./.disabled
```
2. Reply: "Automatic mode disabled."
### self-improve status
Check `.disabled` file existence and report.
## self-improve [skill-name] history
1. Display CHANGELOG.md content
2. Ask: "Would you like to revert to a previous version?"
3. If yes:
- update the appropriate sections in `skills/[skill-name]/SKILL.md`
- update `skills/[skill-name]/CHANGELOG.md` with a rollback note
---
## Examples
### Example 1: All criteria met
**User said:** "Always flag non-compete clauses over 12 months as high risk"
**Evaluation:**
- Complete: Yes - instruction is fully specified
- Precise: Yes - "12 months" and "high risk" are clear
- Atomic: Yes - single check
- Stable: Yes - no time dependency
**Result:** Add directly
### Example 2: Missing criteria
**User said:** "Flag any non-market-standard indemnification clause"
**Evaluation:**
- Complete: No - "non-market-standard" is not defined
- Precise: No - "market standard" is subjective and varies by deal type
- Atomic: Yes - single check
- Stable: No - market standards evolve over time
**Action:** Ask for clarification using the `AskUserQuestion` tool:
```
I detected a correction but need more details.
You said: "Flag any non-market-standard indemnification clause"
To make this actionable, can you specify:
- What makes an indemnification clause "non-market-standard"? (e.g., uncapped liability, coverage of indirect damages, no carve-outs for gross negligence)
Do you want to provide more details, or should I add the instruction as you stated it?
```
**If user clarifies:** Update the instruction and add it.
**If user prefers the original:** Add the instruction as stated.
---
## Important Notes
- Never guess what the user meant - always ask if unclear
- Never infer requirements from context - they must be explicit
- One instruction = one check - split bundled feedback
- Fewer good instructions is better than many vague ones
- CHANGELOG.md is the user-facing record