0017 — factory/write-eval (bootstrap skill) #28
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Type: HITL
Parent PRD:
docs/prd/chunk-3-skills-library.mdWhat to build
Build
write-eval— the first factory meta-skill, bootstrapped with a hand-written eval for itself. Every subsequent skill in Chunk 3 gets its eval produced via this skill. This issue is the smallest unblocker: getwrite-evaland its own hand-crafted eval in place, then all later skill issues can use it.Trigger description (from skills index): "Write evals for this skill, create eval.yaml for X, add tests for this skill"
Key constraints:
.agents/skills/write-eval/SKILL.md— flat per ADR-0009;metadata.category: factory.agents/evals/<category>/<skill-name>/eval.yaml— nested by category (not skills; no discovery constraint)source:field populated only if upstream content is adopted (determine during implementation)Process: follow
docs/notes/skill-implementation-workflow.md. Bootstrap exception: steps 1–3 (source discovery, source review, conflict check) still apply; SKILL.md and eval.yaml are hand-written rather than factory-produced.Implementation notes
Follow the per-skill workflow defined in
docs/notes/skill-implementation-workflow.md(produced by issue 0016).Known upstream sources to review:
mattpocock/skills— check for any eval-related content in the current set; record SHAs for any adopted contentbmad-method/bmad-method— check for QA/evaluation patterns relevant to skill testingwrite-eval has no direct Pocock equivalent. Expect to synthesize from multiple upstreams or author original.
Acceptance criteria
.agents/skills/write-eval/SKILL.mdexists;metadata.category: factory; authoring standard met (frontmatter, role, when/when-not, required inputs, constraints, process, output format, failure handling).agents/evals/factory/write-eval/eval.yamlexists; hand-written; contains all 5 required test typesinstall.shdeployswrite-evalto~/.agents/skills/(confirm idempotent re-run)metadata.categorybefore computing output path (failure handling PASS); after category supplied, produced complete eval with all 5 required test types; process followed correctlywhen:frontmatter field presentsource:field present only if upstream content adopted; absent if self-authoredreferences:field present if external citations used; absent otherwisedocs/spec/overview.mdupdated to reflectwrite-evaldeployedBlocked by
Handoff
Status: complete
Files produced:
.agents/skills/write-eval/SKILL.md.agents/evals/factory/write-eval/eval.yamlKey decisions:
trigger_tests(explicit/implicit/negative,should_trigger: bool) +output_tests(deterministic/llm-rubric,type:field). Sources: BMAD-METHODtriggers.jsonsplit + darkrishabhtypes.ts.idas string slug (not integer);namefield as separate display label.Workflow fix recorded:
docs/notes/skill-implementation-workflow.mdstep 5b updated: per-section options walk-through is now a named gate before writing. Synthesis grill answers schema questions; step 5b covers how upstream content maps to each SKILL.md section — these are separate conversations.LESSONS.mdentry added: "Synthesis grill and SKILL.md co-write are two separate conversations."Open threads:
write-eval's own eval.yaml is hand-written (bootstrap). Now that write-eval is verified, it can be used to regenerate its own eval as a dogfood test — deferred to 0028.Next session start:
CONTEXT.md,docs/notes/skill-implementation-workflow.md,docs/issues/0018-factory-write-skill.mdwrite-skill