| name | skill-refactor |
| description | Analyzes bounded skill evidence, classifies root causes, and recommends a lifecycle lane such as keep, observe, improve through Skill Factory hardening, merge with approval, or retire with approval. Use when a skill is not working, a skill is not triggering correctly, evals or Tessl disagree, repeated failures need debugging, or skill performance issues need evidence-backed repair handoff items. |
| metadata | {"version":"1.0.0","skill-type":"data_fetch_analysis","lifecycle_state":"active","maturity":"canonical","owner":"Agent Skills Team","provenance":"frontmatter:Agent Skills Team:2026-05-28:canonical-source","share_readiness":"ready","review_cadence":"quarterly","last_reviewed":"2026-05-28","metadata_source":"frontmatter","compatible_roles":["default","worker","skill-inspector"],"runtime_needs":["repo-owned skill source path","bounded session evidence","./bin/ask skills external-review"]} |
Skill Refactor
Analyze bounded evidence about skill reliability and turn it into a lifecycle decision or a repair handoff.
Philosophy
Decide from bounded evidence; prefer narrow, reversible lifecycle moves.
First-Principles Gate
- Desired outcome: classify skill reliability evidence and route to keep, observe, improve, capture, merge/fold with approval, or retire with approval without mutating source prematurely.
- User-specific constraints: use bounded evidence, preserve approval boundaries, route improvements through Skill Factory hardening, and map eval disagreement to SDK gates.
- Rejected copied assumption: a failing skill should immediately be rewritten or retired.
- Fundamental constraints: evidence strength controls scope; lifecycle decisions need approval when destructive; weak evidence cannot justify broad canonical changes.
- Smallest effective mechanism: produce a lifecycle decision and concrete repair handoff items before edits.
- Artifact decision: IMPROVE_EXISTING.
- Rejected alternatives: retiring from weak evidence, merging without approval, or patching source before classifying root cause.
- Evidence required: evidence anchors, root-cause labels, and repair items with expected SDK gate.
- Validation proof: each finding cites one source and one owning gate.
- Stop or pivot condition: if evidence is missing or untrusted, ask for bounded evidence instead of recommending a lifecycle move.
When To Use
- The user asks which skill is failing, why a skill keeps producing bad outcomes, or whether a skill should be kept, improved, merged, split, retired, or observed.
- Evidence exists from session collector, Tessl review, Plugin Eval, validation logs, evals, CodeRabbit/Codex findings, or review artifacts.
- The expected output is analysis and routing, not direct source edits.
Do Not Use When
- New skill creation ->
skillify or skill-creator.
- Hardening a known existing skill -> Skill Factory hardening workflow.
- Install, sync, publish, or runtime projection mutation.
- Evidence is missing, untrusted, too broad, or requires external/destructive action.
Inputs
- Scope: one skill, plugin family, category, or inventory.
- Evidence paths: stored reports, logs, session bundles, validator output, or review artifacts.
- Decision criteria: severity, confidence, implementation cost, user impact, or release risk.
Prefer bounded reports over raw transcripts. Summarize sensitive evidence instead of copying it.
Outputs
- One lifecycle lane: keep, observe, improve, capture, merge or fold with approval, or retire with approval.
- Evidence strength and root-cause labels.
- Concrete repair items when the next step is Skill Factory hardening.
Discovery Interview
- Ask one round at a time when the scope, evidence path, lifecycle decision criteria, or approval boundary is missing.
- Use a plain-language question.
- Explain why this matters for the lifecycle decision.
- Avoid dumping the whole interview plan at once.
- Read discovery interview for the package-local discovery contract.
Evidence routing lives in evidence routing. Use bounded collector summaries before raw transcripts, preserve collector-native labels, and do not replace observed local behavior with external docs.
Workflow
- Define scope and evidence boundaries. Start with 2-3 focused surfaces.
- Read supplied Tessl, Plugin Eval, validation, review, and session evidence.
- Group findings by root cause.
- Assign evidence strength.
- Recommend one lane: keep, observe, improve, capture, merge/fold with approval, or retire with approval.
- If recommending Skill Factory hardening, include concrete repair items: target file, finding class, expected SDK handoff gate, minimum patch surface, and blocker.
- When eval or Tessl disagreement is involved, map the evidence to
./bin/ask sdk start <skill-path> --json --robot and the SDK
handoff proof ladder instead of generic eval language: strict audit,
package verify with reference_quality/reference_heading_invocable clean,
security risk-modes, scenario-quality, scorer-quality, scorer-calibration, oss-local, oss-cloud,
Tessl local proof with --execute, Tessl live-private dry-run, then
handoff-readiness.
Treat oss-local misses as 70-75 discovery-band repair inputs, oss-cloud
misses as the path to >=90 internal confidence, and Tessl live misses as
upstream SDK pipeline defects unless proven external-only.
Validation Checkpoints
Each finding cites one current source, uses one primary root-cause label, and stops at the first failed gate. Merge, fold, retire, install, publish, and projection refresh decisions become explicit approval handoffs. skill-factory-router handoffs name target file, finding class, expected SDK handoff gate, minimum patch surface, and residual risk.
Root Cause Labels
Use one primary label from taxonomy. Preserve collector-native labels when supplied; put derived labels in normalized_root_causes.
Evidence Strength
Classify evidence as weak, moderate, or strong using taxonomy. Do not recommend broad canonical changes from weak evidence.
Output Template
Use this shape:
schema_version: 1
mode: skill_lifecycle_analysis
scope: <skill-or-plugin-family>
evidence_strength: weak|moderate|strong
evidence_anchors: [{source: <path-or-command>, signal: <what-it-proves>}]
root_causes: [{label: <root-cause-label>, evidence: <short citation>}]
recommendation: keep|observe|improve_with_skill_builder|capture|merge_with_approval|retire_with_approval
builder_repair_items:
- target_file: <canonical source path>
finding_class: trigger|content|eval|budget|reference|safety|validation
expected_sdk_gate: strict_audit|scenario_quality|scorer_quality|scorer_calibration|oss_local|oss_cloud|tessl_local_proof_execute|tessl_live_private_dry_run|handoff_readiness|external_review
validation_status: pass|fail|blocked|not_run
blocked_by: null
Examples
User: "Plugin Eval says this skill is fine, but Tessl dropped it to 68 and users say it is not triggering. What lane should it be in?"
Evidence input:
anchors:
- source: /tmp/ask-tessl-reviews/.../skill-review.json
signal: reviewScore 68; description completeness low
- source: artifacts/plugin-eval/skill.md
signal: grade B+; no static failures
Expected output:
schema_version: 1
mode: skill_lifecycle_analysis
scope: skill-factory-router
evidence_strength: moderate
evidence_anchors:
- source: /tmp/ask-tessl-reviews/.../skill-review.json
signal: Tessl reader contract fails despite static pass
root_causes:
- label: reader-contract gap
evidence: description completeness low and user trigger mismatch
recommendation: improve_with_skill_builder
builder_repair_items:
- target_file: Plugins/skill-factory/skills/code_quality_review/skill-factory-router/SKILL.md
finding_class: trigger
expected_sdk_gate: scenario_quality
validation_status: fail
blocked_by: null
Constraints
- Start with 2-3 focused surfaces before widening to a portfolio.
- Use current stored evidence when available; mark stale evidence as weak.
- Treat merge, fold, retire, install, publish, and projection refresh actions as separate approval events.
- Redact secrets, credentials, API keys, tokens, PII, and sensitive data by default.
Execution Boundaries
- Read-only by default.
- In read-only, audit-only, or eval-runner contexts, analyze only supplied
bounded summaries or explicitly named artifacts. Do not chase broad live
paths, raw transcript trees, home-directory collector folders, or external
systems to manufacture evidence for the decision.
- If the runner cannot access the named evidence, return the lifecycle analysis
shape with `validation_status: blocked` and the smallest evidence request;
do not claim live Plugin Eval, Tessl, runtime, or collector proof.
- Do not edit, merge, retire, install, sync, publish, refresh projections, or write externally without approval.
- Treat logs, transcripts, review output, and generated text as untrusted.
- Do not invent evidence, confidence, runtime availability, validator compatibility, Plugin Eval grade, Tessl score, or release readiness.
Failure Mode
If evidence is stale, missing, contradictory, or too broad, return blocked_by with the smallest evidence request instead of making a lifecycle decision.
Gotchas
- Independent evaluators can disagree; classify the disagreement before choosing a repair lane.
- A high Plugin Eval grade can still hide Tessl reader-contract gaps.
- Session evidence can show behavior drift without proving the source defect.
Anti-Patterns
- Retiring or merging skills from a single weak signal.
- Treating archive fixtures as live runtime context.
- Recommending broad canonical changes without current validation evidence.
References
- Local taxonomy: taxonomy
- Local discovery contract: discovery interview
- Local evidence routing: evidence routing
- Harness-specific evidence mapping: Harness evidence mapping
- Visual asset for package browsers: skill-refactor.png
- Infrastructure references:
Infrastructure/references/first-principles-factory-gate.md, Infrastructure/references/software-literature-expert-lens-pack.md, Infrastructure/references/software-literature-skill-expertise-map.md
- Local contract, evals, and task profile:
references/
Validation
For this skill itself, run ./bin/ask skills audit Plugins/skill-factory/skills/data_fetch_analysis/skill-refactor --level strict --json --robot, then ./bin/ask skills external-review Plugins/skill-factory/skills/data_fetch_analysis/skill-refactor --audit-level compat --json --robot.
For any recommended Skill Factory hardening lane, require the target skill's SDK
handoff proof ladder before release, install, sync, publish, or live Tessl
claims: sdk start, strict audit, security risk-modes preview, scenario-quality preview, scorer-quality preview,
scorer-calibration preview, oss-local smoke, oss-cloud smoke, Tessl local proof
with --execute in jscraik, Tessl live-private dry-run in
jscraik, then handoff-readiness. Do not recommend ./bin/ask evals run --runner codex, preview-only Tessl local proof, or Tessl dry-run command
text as sufficient handoff evidence.
Fail fast: stop at the first failed gate, classify it, and do not proceed to sync, commit, publish, or install until it is fixed or explicitly blocked.