Doc only
Local-first benchmark comparing four Skill packaging patterns — doc-only, inline-code, Python script, and Go binary — to find which is most reliable when an LLM coding agent executes a Skill.From the repository description
npx -y skills add sangjinsu/skill-execution-bench --skill doc-onlyAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
2.5 KB, 643 tokens by cl100k_base, as published. Nobody here has run it
Normalize Task Records (Doc Only)
When to use
Use this Skill when you need to normalize a list of task records and only written instructions are available. There is no reusable code here — reason through the rules below and produce the output by hand.
Inputs
- A JSON array of task records.
- Each record may contain:
- inconsistent casing (e.g.
"In Progress","DONE"), - surrounding whitespace (e.g.
" Fix Login "," 2 "), - mixed status labels (e.g.
"wip","to do","completed"), - optional extra fields (e.g.
"assignee").
- inconsistent casing (e.g.
Expected output
A normalized JSON array where every record and the array as a whole follow the contract in the Procedure section. Output should be compact JSON (no extra spaces).
Procedure
Apply these rules, in order, to produce the result:
- Trim every string value — remove leading and trailing whitespace.
id— trim it and treat it as a string (e.g." 2 "→"2", number2→"2").status— trim, lowercase, then map to a canonical value:todo,to do,pending→tododoing,in progress,wip→doingdone,complete,completed→done- any other value: keep it lowercased and trimmed (do not invent a mapping).
- Other fields (e.g.
title,assignee) — trim the string value; keep the field. - Missing optional fields — do not add them. Only emit keys that were present.
- Key order within each object —
idfirst, thentitle, thenstatus, then any remaining keys in alphabetical order. - Array order — sort records by
id. If everyidis an integer, sort numerically (so2comes before10); otherwise sort lexicographically as strings.
Worked example
Input:
[{"id":" 2 ","title":" Fix Login ","status":"In Progress"},
{"id":"1","title":"Write Tests","status":"complete"}]
Output:
[{"id":"1","title":"Write Tests","status":"done"},{"id":"2","title":"Fix Login","status":"doing"}]
Validation
- The result is a JSON array.
- Each string value has no leading/trailing whitespace.
- Each
statusistodo,doing,done, or a deliberately unmapped lowercase label. - Keys appear in the order
id,title,status, then alphabetical. - Records are ordered by
id(numeric when all ids are integers). - No optional fields were invented for records that lacked them.
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.