Skip to content

Concise skills: one skill-creation standard, evals, and a fleet-wide rollout #6476

Open
20 of 71 issues completed
Open

Description

@kyle-sexton

Umbrella issue for rewriting skill and agent instructions across this marketplace to be as short as their content allows. The brief below was locked through /planning:interview (confirmed 2026-10-07). Rollout PRs reference this issue with Refs #<this> and close nothing early.

Goal

Every line in a skill or agent body passes one test: could the model already know this? All authoring and checking skills read the same standard, and no rewrite ships unless its evals hold.

Precedence

  1. Official Anthropic guidance (the skills docs and the platform best-practices page).
  2. Matt Pocock's concise style, wherever it violates no official guidance.
  3. House conventions, weighed against both.

The bundled claude-api prompt-audit guide is an input to the standard. Volatile specifics, such as caps, are never hard-coded in prose; they are pointers with an as-of date and a recheck trigger.

Decisions

  • Where the standard lives: playbooks:skill-authoring owns reference/skill-criteria.md, which absorbs authoring-guidance.md and authoring-checklist.md. Every other surface cites it and doesn't restate it.

  • Descriptions:

    • Model-invoked: a third-person "what it does" sentence plus "Use when…", with one trigger per distinct situation.
    • User-invoked: a one-line summary with no triggers.
  • Bodies:

    • The deletion test decides what stays.
    • Judgment work states the outcome, constraints and how to verify; exact steps are kept only for fragile operations.
    • Pointer records stay.
    • History notes (PR and issue numbers, incident narrative) move to the CHANGELOG or git history, never to a footer.
  • Reference files: one level deep, with nothing duplicated from SKILL.md.

  • Metadata: the explicit invocation keys stay. Any other key stays only if a registered consumer reads it. Attribution moves to docs/upstream/.

  • skill-quality:check (SKILL.md only, never agents):

    • fails on the platform's 1,024-character description cap and the 500-line body guidance;
    • warns on size against Pocock's measured medians, on unregistered metadata keys, and on history notes.

    Its numbers live in a data file, one record per value with source, as-of date and recheck trigger.

  • Agents: the criteria doc gains an agents section. harness-config:audit-instructions gains a report-only agent pass. No agent-quality:check for now; revisit through /review:audit-enforceability if the same mechanical violation keeps recurring.

  • Overlap map: one owner per rule across skill-quality:check, audit-instructions, docs-hygiene:audit-noise, audit-progressive-disclosure, write-for-agents, compress, harness-ops:audit-skill-visibility and playbooks:skill-authoring, with no duplicated detector logic. audit-noise routes SKILL.md and agents/*.md to their owners.

  • Measurement, before and after each rewrite:

    • skill-quality:check measure-invocation trigger probes;
    • the plugin's claude plugin eval cases;
    • for user-invoked skills, a semantic diff of the old body against the new one, with each flagged loss labelled intended or real. Any real loss blocks the PR.

    The numeric regression bar is set from the pilot baseline.

  • Synced skills (context7:lookup, dometrain:grounding, playbooks:boris, playbooks:skill-authoring, playwright:playwright): only house-owned parts change.

  • Never blocked: whichever change lands first, the other resolves conflicts and merges. That includes the live feat/poteto-2500-prs-digest branch.

Related

Checklist

Phase 0: standard and tooling

  • playbooks:skill-authoring reference/skill-criteria.md, including the agents section
  • skill-quality data files (numbers, metadata registry) and the new check rules
  • audit-instructions agent pass
  • Overlap map and pointer edits; audit-noise routing

Pilots

  • code-tidying (skills pilot)
  • review (agent pilot)

Fleet (one PR per plugin, in parallel once the pilots prove out)

  • actionlint
  • adhd
  • ai-briefing
  • ai-slop
  • animation
  • architecture
  • attribution
  • autonomy
  • bash-format
  • biome-format
  • bugs
  • code-metrics
  • codebase-health
  • computer-use
  • context-budget
  • context-guard
  • context7
  • coupling
  • debugging
  • desktop-notification
  • discipline
  • discovery
  • disk-hygiene
  • docs-hygiene
  • docs-naming
  • domain-driven-design
  • dometrain
  • education
  • eol-normalizer
  • evals (absorbs feat(evals): compress plugin-eval/SKILL.md (v2) with a same-day confirm run #5956)
  • event-storming
  • explainer-video
  • firecrawl
  • fleet
  • gaming
  • github
  • go-format
  • guardrails
  • harness-config
  • harness-memory
  • harness-ops
  • implementation
  • improvement
  • instruction-placement
  • kindle-dedrm
  • knowledge
  • machine-health
  • markdown-format
  • mcp-tools
  • miro
  • multi-agent
  • mutation-testing
  • naming
  • overengineering
  • performance
  • pixel-art
  • planning
  • playbooks
  • playgrounds
  • playwright
  • plugin-quality
  • powershell-format
  • prototype
  • rate-limit-guard
  • repo-fleet-hygiene
  • repo-hygiene
  • retro-audio
  • ruff-format
  • session-flow
  • skill-quality
  • songwriting
  • source-control
  • speech
  • tdd
  • testing
  • toolchain
  • typos-format
  • user-interface
  • verification
  • visualization
  • wizard
  • work-items
  • writing
  • x

Next

/planning:plan turns this brief into the implementation plan, including the numeric regression bar from the pilot baseline.

Activity

  1. added
    needs-triageNot yet classified. Floor until a type and one priority tier are set.
    on Oct 7, 2026
  2. github-actions commented on Oct 7, 2026

    @github-actions
    Contributor

    Thanks for the report. Automated triage handed this issue to a maintainer.

    Automated triage. A maintainer reviews it.

  3. added
    needs-humanHuman-in-the-loop required; autonomous sessions must not resolve items carrying this.
    on Oct 7, 2026
  4. kyle-sexton commented on Oct 7, 2026

    @kyle-sexton
    ContributorAuthor

    Overlap map (Phase 0)

    There is one owner per rule. Every other site that states the rule becomes a pointer edit, made in the phase that owns its plugin. Built from git grep on 2026-10-07 at 311b50704. /playbooks:skill-authoring refers to its new reference/skill-criteria.md.

    # Rule Single owner (rule / enforcement) Other sites that state it (work item)
    1 Description shape (third person, "Use when", one trigger per branch, user-invoked one-liner) /playbooks:skill-authoring ## Descriptions / /skill-quality:check docs/conventions/invocation-mode/README.md (Phase 1); /docs-hygiene:write-for-agents (Phase 4); naming:name-it-better context/sources.md (fleet: naming)
    2 Size: description and body caps, Pocock max /playbooks:skill-authoring ## Descriptions, ## Body / /skill-quality:check constants docs/migration-playbook.md (Phase 1); harness-config audit and audit-instructions criteria (Phase 2); docs-hygiene audit-progressive-disclosure and extract-ssot (Phase 4)
    3 Metadata keys need a consumer /playbooks:skill-authoring ## Metadata / /skill-quality:check registry none that states the rule (keys are only used); unconsumed keys are cleaned up per plugin in the fleet
    4 History notes stay out of instruction files /playbooks:skill-authoring ## History and provenance / SKILL.md: /skill-quality:check; agents/*.md: /harness-config:audit-instructions /docs-hygiene:audit-noise ticket-pr-residue (Phase 4 routes SKILL.md and agents to the owners above); /code-tidying:audit-comment-residue covers code comments, a separate domain and not a duplicate
    5 Reference files one level deep /playbooks:skill-authoring ## Reference files docs-hygiene extract-ssot and its context/, audit-progressive-disclosure context/tier-model.md (Phase 4)
    6 Progressive disclosure (what goes in SKILL.md vs references) rule: /playbooks:skill-authoring ## Body; audit: /docs-hygiene:audit-progressive-disclosure plugin-quality:audit reference/component-types (fleet: plugin-quality); playbooks:boris is vendored and exempt
    7 Skill listing budget (per-entry truncation, total budget) /harness-ops:audit-skill-visibility harness-ops:audit-native-overlap, harness-memory:audit criteria, context-budget:audit, harness-config audit and audit-pass (fleet, per plugin); /skill-quality:check keeps the per-entry constant as enforcement
    8 Deletion test ("could the model already know this?") /playbooks:skill-authoring ## Body, citing the claude-api prompt-audit guide harness-memory:audit and instruction-placement:realign apply it to other files: these become pointers in the fleet. architecture:improve's "deletion test" is about modules, not prose, so it is not a duplicate

    Also from Phase 0:

    • Fleet before-snapshot: taken, kept locally. It is the baseline the "no new FAIL" check reads.
    • /playbooks:update drift check for skill-authoring: frontmatter version 1.0.0 matches upstream, but the vendor content has drifted (SHA256 7b0923d8… locally vs 05b4e6b7… upstream). This needs a separate sync PR and is not part of this rollout.

    Generated by Claude Code

  5. 54 remaining items

  6. added theissue type on Oct 12, 2026
  7. removed
    needs-triageNot yet classified. Floor until a type and one priority tier are set.
    on Oct 12, 2026
  8. kyle-sexton commented on Oct 14, 2026

    @kyle-sexton
    ContributorAuthor

    Batch 1 status (2026-10-14)

    Batch 1 of the rollout is complete. Each child shipped through a PR backed by Opus and Sonnet before/after outcome runs and held-out trigger runs. Any cut that lost meaning or measured a drop it could not explain was restored or reverted to main.

    Child PR Result
    #6550 harness-ops #7434 merged; 5 bodies cut, 6 reverted, --root fix; grader follow-ups in #7435
    #6548 discipline #7441 merged; 13 of 16 skills cut, 3 keep their old description; follow-ups in #7440
    #6549 session-flow #7442 merged; 13 skills cut; recall graders tightened after measurement, re-run pending
    #6551 architecture #7437 merged; 11 descriptions cut, 3 bodies cut, 8 bodies at main; follow-ups in #7438
    #6552 planning #7465 in the merge queue; 10 skills cut, interview and setup at main

    Rule change: #7433 merged, so grader samples on synthetic prompts are not transcripts.

    Lessons for the remaining children

    • Audit graders before the freeze for these patterns:
      • negations right before a name ("don't use X" passing)
      • one match where several facts are required
      • write guards that miss cp, mv, install, dd or interpreter writes
      • Read-tool access to files the case forbids
      • wording too narrow for the skill's own text
    • Pass --keep-temp so failing traces can be read. Delete only the eval dirs your own results name; they are read-only until chmod u+rwx.
    • Never commit credential-shaped fixture strings, not even in an intermediate commit: GitGuardian scans every commit in the PR. Use CANARY-1234 markers.
    • Relative links in fixtures must resolve (lychee-offline). Don't leave TODO markers in fixtures either: the comment-marker scan fails lint-repo.
    • Every review thread must be resolved before merge. After two rounds of regex-depth nits on a grader, decline with the reason and track it in an issue.
    • The display-redaction timing test (display-redaction: linear-time mask test times out at 5000 ms in CI #7273) fails some queue runs. Re-queue when it does.
    • Docker Desktop recreates the ~/.docker symlinks, which blocks evals that grant Bash. Check before each batch.

    Remaining

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    needs-humanHuman-in-the-loop required; autonomous sessions must not resolve items carrying this.

    Type

    Fields

    No fields configured for Task.

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions