enrich-task
Skill1 starsChanged 2 months agoMITView on GitHub
Use before planning any feature, fix or refactor when the request is a short roadmap line, a phase item, a screenshot or a one-paragraph idea - turns it into an implementation-ready spec with acceptance criteria, edge cases and open questions. Run this before openspec new/ff.
In this repository13 other files it gives its agents.
- AGENTS.mdAGENTS.md
- adversarial-reviewSkill
- architecture-guidelinesSkill
- auto-run-taskSkill
- code-auditingSkill
- commitSkill
- harness-setupSkill
- run-taskSkill
- runtime-verificationSkill
- start-projectSkill
- update-docsSkill
- using-git-worktreesSkill
- writing-skillsSkill
The file
We split this skill into the rules it gives an agent
4 rules. About 0 are common, 3 are distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈3
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 53
test cases, including the hostile ones: empty input, oversized input, wrong encoding, injection attempts, concurrent writes, entities in a …
- Very specific: line 68
Do not write files unless the user asks.
- Distinctive: line 73
Prefer Opus with high reasoning for this step: it is planning, not typing.
- Distinctive: line 74
If the roadmap phase is larger than one change, say so and propose the split instead of enriching an oversized task.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
enrich-task
Turns a vague request into a spec detailed enough for autonomous implementation. This is the first step of the harness loop, before any OpenSpec artifact exists.
When NOT to use
Skip it when the request already carries acceptance criteria, affected files and non-functional requirements. Enriching an already-complete spec wastes tokens.
Inputs
The task arrives as one of:
- a line or bullet from the project roadmap (
docs/*roadmap*.md,docs/17-roadmap.md, phase docs); - a phase name matching a branch convention such as
phase-NN-<slug>; - free text, a screenshot, or a link the user pastes in chat.
There is no ticket tracker in these projects. Never ask for a Jira id and never try to fetch one. If the input names a phase, read that phase's section in the roadmap and treat it as the source of truth for scope.
Process
- Read the project context first.
AGENTS.mdis the index. Follow it to the architecture, standards and data-model documents that the task touches. Do not explore the codebase freely before reading the index - the documented patterns win over whatever a random file happens to do. - Act as a product expert with technical depth. Understand the problem before describing the solution.
- Analyse the existing code for what can be reused: existing endpoints, models, widgets, use cases, response shapes. Name them explicitly. Reusing an existing contract beats inventing a parallel one.
- Decide whether the task is already complete enough. It is complete only if it states: full behaviour description, every field to add or change, the module and file boundaries it may touch, definition of done, documentation and test updates, and non-functional requirements (security, performance, observability, data integrity).
- Write the enriched version covering, in this order:
- business summary and scope boundary (say explicitly what is out of scope);
- reuse analysis from step 3;
- functional requirements;
- non-functional requirements;
- affected files and modules, consistent with the documented architecture;
- acceptance criteria and definition of done;
- test cases, including the hostile ones: empty input, oversized input, wrong encoding, injection attempts, concurrent writes, entities in a state that forbids the operation.
- Challenge the request. End with open questions about what the input left ambiguous - cardinality (one vs many), ownership, permissions, what happens to existing rows, behaviour on partial failure. Ask them; do not silently pick an answer.
Output
Return markdown with exactly two top-level sections:
## Original## Enhanced
Do not write files unless the user asks. The enriched text is the input for
openspec new / openspec ff, which is what creates artifacts.
Notes
- Prefer Opus with high reasoning for this step: it is planning, not typing.
- If the roadmap phase is larger than one change, say so and propose the split instead of enriching an oversized task.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

