Skip to content

Agent must scan skills/ before improvising multi-step workflows #200

@MScottAdams

Description

@MScottAdams

Problem

Agents improvise multi-step workflows from scratch instead of checking whether a documented skill already exists. Even when AGENTS.md is read at session start, the agent has no behavioral rule requiring it to scan skills/ before building an ad-hoc process.

Observed failure (2026-04-06)

User asked agent to "analyze roadmap for a swarm." Agent read AGENTS.md (which had no swarm routing — tracked in #147), then improvised a full swarm analysis from scratch. The agent never checked the skills/ directory, missing skills/deft-swarm/SKILL.md which contains a structured 6-phase workflow, file-overlap audit, prompt template, and launch options. The failure was only caught when the user explicitly asked whether the agent was using the skill.

Why #147 alone is insufficient

#147 adds a keyword routing table to AGENTS.md. That fixes the known-keyword case. But:

  • New skills added after the routing table was written won't be routed
  • Agents encountering unfamiliar workflow keywords will still improvise if the keyword isn't in the table
  • The defensive behavior (scan skills/ before improvising) is the safety net for routing table gaps

Relationship to #75

#75 tracks platform-level skill auto-discovery (symlinks, .agents/skills/, etc.). This issue is the behavioral rule that works today without platform changes — a single ! rule that makes agents self-check before improvising.

Fix

  1. AGENTS.md — Add a ! rule under Development Process or a new ## Behavioral Gates section:

    ! Before improvising any multi-step structured workflow, scan skills/ for a relevant SKILL.md. If one exists, read and follow it.

  2. AGENTS.md — Add a anti-pattern:

    ⊗ Improvise a multi-step workflow without first checking whether skills/ contains a matching SKILL.md

  3. Candidate meta/lessons.md entry — document the failure pattern: "Agent improvised swarm workflow instead of reading existing skill; root cause was no scan-before-improvise gate"

Xrefs

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions