skill-optimizer-lawvable
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`.
What this skill does
# 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
Related in General
modeling-omnistudio-epc-catalog
IncludedSalesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use building-omnistudio-omniscript, building-omnistudio-flexcard, or building-omnistudio-integration-procedure), implementing Apex business logic (use generating-apex), or troubleshooting deployment pipelines (use deploying-metadata).
relationship-science-coach
IncludedUse this skill for direct, practical adult relationship coaching: couples conflict, repair, trust, marriage, dating, flirting, attachment patterns, emotional connection, sex, desire differences, eroticism, kink negotiation, affection, love languages, breakups, and long-term passion. Draw on Gottman, EFT and Hold Me Tight, attachment science, modern sex research, Perel, Nagoski, Kerner, Schnarch, Love and Stosny, and flexible love-language tools. Be concrete and low-hedge. Redirect only for imminent danger, abuse, coercive control, minors, non-consent, self-harm, stalking, or medical/legal/psychiatric decisions.
building-sf-integrations
IncludedSalesforce integration architecture and runtime plumbing with 120-point scoring. Use this skill to set up Named Credentials, External Credentials, External Services, REST/SOAP callout patterns, Platform Events, and Change Data Capture. TRIGGER when: user sets up Named Credentials, External Services, REST/SOAP callouts, Platform Events, CDC, or touches .namedCredential-meta.xml files. DO NOT TRIGGER when: Connected App/OAuth config (use configuring-connected-apps), Apex-only logic (use generating-apex), or data import/export (use handling-sf-data).
venue-templates
IncludedAccess comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
let-fate-decide
IncludedDraws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking.
net-ops
IncludedCross-platform network troubleshooting (Windows, macOS, Linux) via local or remote shell. Use for: DNS broken, can't resolve hostnames, nslookup/dig works but apps fail, NRPT, WFP, scutil, /etc/resolver, systemd-resolved, /etc/resolv.conf, NetworkManager, VPN DNS leak residue (ProtonVPN/Mullvad/WireGuard/AnyConnect), AV/firewall blocking DNS or DoH, Tailscale DNS interaction, intermittent connectivity, remote diagnostics over SSH.