CtrlK
BlogDocsLog inGet started
Tessl Logo

matthew-a-carr/draft-spec

Draft a SPEC from a GitHub issue and open a PR for review. Use when triggered by a routine on `Issue opened` with label `ai:plan`, or when a user asks to "draft a spec from issue #NNN". Non-interactive — proceeds on best interpretation and surfaces any unresolved questions in the SPEC's §Open Questions section rather than blocking for clarification. The PR review loop is where ambiguity gets resolved.

78

3.03x
Quality

90%

Does it follow best practices?

Impact

100%

3.03x

Average score across 1 eval scenario

SecuritybySnyk

Advisory

Suggest reviewing before use

Overview
Quality
Evals
Security
Files

criteria.jsonevals/scenario-1/

{
  "context": "Tests whether the agent correctly describes the spec submission workflow, including the required tool choices (mcp__github__* not gh CLI), the precise ordering of label application before PR creation, the correct PR label, commit message format, PR title format, and issue comment wording.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "No gh CLI",
      "description": "Does NOT mention using the `gh` CLI for any GitHub remote operation (creating PR, applying labels, posting comments). All remote GitHub operations use `mcp__github__*` tools.",
      "max_score": 12
    },
    {
      "name": "ai:planned before PR",
      "description": "Applies the `ai:planned` label to the source issue (via mcp__github__add_issue_labels or equivalent) BEFORE creating the PR or posting any issue comment — ordering must be explicit.",
      "max_score": 12
    },
    {
      "name": "Commit message format",
      "description": "Commit message follows the pattern `docs(spec-NNN): draft <title> (closes #ISSUE_NUMBER on merge)` — all three components present.",
      "max_score": 8
    },
    {
      "name": "PR title format",
      "description": "PR title follows the pattern `docs(spec-NNN): <title>` exactly.",
      "max_score": 8
    },
    {
      "name": "PR body includes Open Questions",
      "description": "PR body includes the §Open Questions list (verbatim or clearly labelled as such).",
      "max_score": 8
    },
    {
      "name": "PR body includes review-spec verdict",
      "description": "PR body mentions the review-spec verdict (pass/findings from the review-spec skill run).",
      "max_score": 8
    },
    {
      "name": "PR body links to source issue",
      "description": "PR body contains a link to (or reference number of) the source issue.",
      "max_score": 7
    },
    {
      "name": "ai:revise label on PR",
      "description": "Adds the `ai:revise` label to the newly created PR (via mcp__github__add_issue_labels).",
      "max_score": 8
    },
    {
      "name": "Issue comment wording",
      "description": "Issue comment follows the pattern: 'Drafted SPEC-NNN — see PR #<n>. Please review the §Open Questions section.' — all three components present.",
      "max_score": 10
    },
    {
      "name": "Spec index updated",
      "description": "Step includes updating docs/specs/README.md to add the new spec to the index table.",
      "max_score": 7
    },
    {
      "name": "No implementation",
      "description": "Plan does NOT include any step to implement the feature (write code, run tests, merge the PR, etc.) — plan ends after the issue comment is posted.",
      "max_score": 6
    },
    {
      "name": "git push uses CLI",
      "description": "Branch push uses `git push` (the git CLI), not an MCP tool.",
      "max_score": 6
    }
  ]
}

evals

SKILL.md

tile.json