Skip to content
Back to skills

09

ASecurity

A skill we ship should teach a method that works in the user's project. Today `diagnose-benchmark-failure` teaches this repository's directory layout, so a user who installs it is told to open files that exist only here. Splitting the two halves makes the shipped skill usable outside this repo and keeps our own paths where they stay accurate.

  • 3 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 20, 2026
ai-agentsgogit

Works with

  • cli

Security analysis

A100/100

Pro scans all 12 files and shows the line behind each finding

Scanned September 20, 2026

npx -y skills add korchasa/flowai --skill 09 --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of 09?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for 09
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/korchasa-flowai-flowai/badge)](https://www.skillsdirectory.com/skills/korchasa-flowai-flowai)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
date: 2026-09-15
status: done
implements:
  - FR-DIAGNOSE-BENCH
---
# Split `diagnose-benchmark-failure`: ship the method, keep our plumbing home

## Goal

A skill we ship should teach a method that works in the user's project. Today
`diagnose-benchmark-failure` teaches this repository's directory layout, so a
user who installs it is told to open files that exist only here. Splitting the
two halves makes the shipped skill usable outside this repo and keeps our own
paths where they stay accurate.

## Overview

### Context

The skill is the only shipped file that names this repo's acceptance-run
artefacts: `grep -rln "acceptance-tests/runs\|judge-evidence.md\|bench-home"
framework --include='*.md'` returns it and `framework/AGENTS.md` alone. Its
sibling `write-agent-benchmarks` shows the register we want — it opens by
calling itself a universal, language-agnostic standard.

Of 324 lines, 48 name an artefact of ours and 17 name a public CLI (codex,
claude). The CLI lines are legitimate: rollout formats and resume commands are
public, and a user of those CLIs needs them. The 48 are not.

### Current State

- Shipped skill: `framework/engineering/skills/diagnose-benchmark-failure/SKILL.md`.
- Coverage: 5 acceptance scenarios (2 behavioural, 3 trigger). Both behavioural
  fixtures stage a run in OUR layout, so they cannot detect the coupling.
- The SRS clause FR-DIAGNOSE-BENCH repeats the same concrete paths in its
  Description and Constraints.
- Dev-only skills live in `.claude/skills/` (5 of them today) and are
  discovered by `check-skills.ts`, which skips framework-only checks for them.

### Constraints

- Acceptance Test TDD: the shipped skill changes, so a scenario proving the new
  behaviour comes first and MUST fail before the edit.
- The general method must not be weakened to reach generality. The four
  artefact kinds, the histogram-before-hypothesis rule and the interview step
  stay mandatory.
- The taxonomy keeps its codes. Modes that describe a model's behaviour stay in
  the shipped skill; modes that describe our runner move or are restated
  without our file names.

## Definition of Done

- [x] FR-DIAGNOSE-BENCH: the shipped skill diagnoses a failed run whose
      artefacts sit in a layout it was never told about, instead of failing
      closed on a missing `judge-evidence.md`.
  - Test: `framework/engineering/skills/diagnose-benchmark-failure/acceptance-tests/foreign-layout/mod.ts`
  - Evidence: `deno task acceptance-tests -f diagnose-benchmark-failure-foreign-layout --no-cache`
  - Result: RED 2026-09-15T14-52-46 — 2/6, `no_fail_closed_on_names` ERROR ("the agent explicitly stopped because expected names were absent"). GREEN 2026-09-15T14-54-44 — 6/6 PASSED, 77.6 s.
- [x] FR-DIAGNOSE-BENCH: the shipped SKILL.md names no path, file name, flag or
      script belonging to this repo's harness.
  - Evidence: `grep -nE "acceptance-tests/runs|judge-evidence|bench-home|scripts/acceptance-tests|--no-cache|Copying packs|scenario\.skill|framework/<pack>" framework/engineering/skills/diagnose-benchmark-failure/SKILL.md` — no output
  - Result: no output (exit 1 on both halves of the pattern; ugrep needs `-e` for the `--no-cache` literal).
- [x] FR-DIAGNOSE-BENCH: the two existing behavioural scenarios still pass on
      our own layout.
  - Test: `diagnose-benchmark-failure-raw-session`, `diagnose-benchmark-failure-md-prior-bullets`
  - Evidence: `deno task acceptance-tests -f diagnose-benchmark-failure --no-cache`
  - Result: run separately per scenario, both `--no-cache`, both PASSED 2026-09-15 (exit 0 each). The
    full five-scenario sweep under `-f diagnose-benchmark-failure` is the CHECK step and stays with the user.
- [x] FR-DIAGNOSE-BENCH: a project-level skill carries every concrete detail the
      shipped skill drops — run-dir path, artefact names, judge-rendering
      sections, scenario fields, cache flag, runner messages.
  - Evidence: `deno run -A scripts/check-skills.ts` — passes with the new dev skill discovered
  - Evidence: each literal removed from the shipped skill appears in `.claude/skills/diagnose-acceptance-run/SKILL.md`
  - Result: all 14 literals present — `acceptance-tests/runs` 2, `judge-evidence.md` 2, `bench-home` 8, `cache.ts` 1, `--no-cache` 2, `Copying packs` 1, `scenario.skill` 1, `USER INPUT` 1, `mod.ts` 2, `userQuery` 1, `userPersona` 1, `agentsTemplateVars` 1, `framework/AGENTS.md` 1, `readlink` 3.
- [x] FR-DIAGNOSE-BENCH: SRS, README and AGENTS.md describe the split.
  - Evidence: `deno task check` — exit 0, `0 failed` in both summaries
  - Result: 2026-09-15 — `819 passed | 0 failed` and `187 passed | 0 failed`; the only real
    `=== FAIL` was `check-task-format` reporting this file's own status/DoD mismatch (the other
    three are the intentional `deno eval Deno.exit(N)` fixtures). Re-run after the flip is clean.

## Solution

1. RED: add scenario `foreign-layout` with a fixture staging the four artefact
   kinds under names that are not ours (`evals/<ts>/<scenario>/attempt-1/`,
   `judge-report.md`, `workspace/`, `agent-home/`, `scenario.ts`). Run it and
   confirm it fails on discovery, not on something incidental.
2. GREEN: rewrite the shipped SKILL.md around the four artefact kinds. Step 1
   becomes "identify the run dir and the four artefacts, whatever this project
   calls them", with a named hand-off: when the project supplies its own
   addendum skill, read it first.
3. Move the concrete half into `.claude/skills/diagnose-acceptance-run/`.
4. Restate the runner-specific taxonomy modes without our file names; keep the
   codes.
5. Re-run the new scenario, then both behavioural scenarios.
6. Update SRS FR-DIAGNOSE-BENCH, README's one-line catalogue entry and the
   AGENTS.md architecture list. Run `deno task check`.

Files in this skill

  • acceptance-harness-on-codex.md7.1 KB
  • acceptance-token-accounting.md8.3 KB
  • fast-agent-cli-startup.md10.5 KB
  • merge-branch-swe-bench-rescue.md52 KB
  • plan-variant-property-labels.md9.8 KB
  • retire-flowai-cli-docs.md42.6 KB
  • self-contained-questions.md9.7 KB
  • skill-description-length-cap.md31.8 KB
  • split-diagnostic-skill.md5.7 KB
  • sweep-reds-follow-up.md10.3 KB
  • tasks-overview-skill.md36 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.