Skip to content

Move reusable skill workflow prose into structured config #235

@shiny-code-bot

Description

@shiny-code-bot

Summary

Skills currently mix durable, machine-actionable workflow facts with prose instructions. As skill-owned command policy lands, preserve the broader follow-up: move reusable command/workflow declarations out of prose into structured skill frontmatter where Every Code can render, validate, and enforce them consistently.

Finish Line

Skill-owned command/workflow facts are structured in YAML and prose only retains judgment, sequencing, and exceptions.

Current Status

State: Active
Next action: Continue the skill audit beyond policy.command_policies: classify remaining prose into structured commands/actions/resources/workflow defaults, valuable prose, or stale duplicate.
Blocked by: None
Waiting for: Nothing
Last verified: 2026-05-30 after command-policy infrastructure, overlap handling, and wrapped-shell matching fixes merged via #237, #246, and #249.

Notes:

  • Add generic skill-owned command policies #236 is no longer a blocker; the generic command-policy support landed.
  • This plan is not done yet because the broader acceptance criteria still include a full bundled-skill audit, structured helper command/action/resource surfaces, renderer/loader tests for those fields, and removal of duplicated prose once generated guidance covers it.

Proposed Structured Surfaces

  • policy.command_policies: command matchers, actions, preferred alternatives, override behavior, owner skill attribution.
  • commands or actions: named helper invocations a model can call directly, with argv templates, required args, cwd behavior, and short purpose text.
  • resources: bundled scripts, references, templates, and assets that are intended to be loaded or executed, with relative paths resolved from SKILL.md.
  • workflow_defaults: durable non-prose defaults such as preferred GitHub helper, PR body template, validation command, or closeout helper when a skill owns a workflow.
  • render: optional concise model-facing summaries generated from structured data; avoid copying raw YAML into context.

Migration Principles

  • YAML is authoritative for mechanical facts the runtime or renderer can use.
  • Prose is kept when it explains why, when to choose alternatives, edge cases, or human judgment.
  • Avoid duplication: if generated guidance from config says “use script X for command Y,” remove prose that says the same thing unless it adds nuance.
  • Manual-only skills may still declare runtime command policies; manual-only controls implicit invocation, not guardrail availability.
  • Keep safety rules that are universal/destructive in core config/runtime unless there is a separate trust model for skill-provided policy.

Candidate Audit Targets

  • GitHub skill: PR create/comment/check/merge/supersede/close helpers and issue planning helpers.
  • GitHub plan skill: durable issue helper commands, plan section update helpers, closeout helper expectations.
  • Work closeout skill: cleanup/check/status helper commands and GitHub relationship sweeps.
  • Test TUI skill: harness commands, expected env/config, screenshot/control helpers.
  • Skill creator/installer: bundled scripts and templates, argument shapes, validation commands.

Acceptance Criteria

  • A full skill audit produces a migration table: convert to YAML, keep prose, delete duplicate, or needs new schema.
  • All bundled skills with helper scripts expose them as structured commands/actions.
  • Command-policy guidance rendered to the model comes from YAML, not duplicated prose.
  • Skill loader tests cover structured fields and relative path resolution.
  • At least one migration PR removes duplicated prose after generated guidance covers it.

Validation

  • Loader tests for each new structured field.
  • Renderer tests proving generated guidance is concise and not duplicated.
  • Skill audit fixture or snapshot showing all bundled skills classified.
  • ./build-fast.sh for implementation PRs touching the Rust workspace.

Relationships

Metadata

Metadata

Assignees

No one assigned

    Labels

    planDurable planning issueplan:activeCurrent active plan

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions