architecture-principle…
Architecture principles for manifest-dev: how its maintainer wants skills, wrappers, references, state and the workflow…
Create, update, review, or discuss an LLM prompt — a system prompt, a skill, or an agent. Use when writing or improving a prompt, discussing a skill or agent, diagnosing prompt failures, or when the user says a prompt needs work.
Claude Code
$ npx -y skills add doodledood/manifest-dev --skill prompt-engineering --agent claude-code
Codex
$ npx skills add doodledood/manifest-dev --skill prompt-engineering -a codex -y
Cursor
$ npx skills add doodledood/manifest-dev --skill prompt-engineering -a cursor -y
Gemini CLI
$ npx skills add doodledood/manifest-dev --skill prompt-engineering -a gemini-cli -y
GitHub Copilot
$ npx skills add doodledood/manifest-dev --skill prompt-engineering -a github-copilot -y
OpenCode
$ npx skills add doodledood/manifest-dev --skill prompt-engineering -a opencode -y
Windsurf
$ npx skills add doodledood/manifest-dev --skill prompt-engineering -a windsurf -y
name: prompt-engineering description: 'Create, update, review, or discuss an LLM prompt — a system prompt, a skill, or an agent. Use when writing or improving a prompt, discussing a skill or agent, diagnosing prompt failures, or when the user says a prompt needs work.' argument-hint: '<request>' user-invocable: true
A prompt states a goal and gets out of the way. Everything else in it is load — spent on every run, taken from the attention the model would otherwise put on the work — so each line has to buy more than it costs. What follows decides four things: what the run is given, whether a line exists, where it sits, and how it is worded.
A run's result is bounded by what it has in front of it: the prompt and everything fed into it — the inputs filled into a template, the files it reads, retrieved material, tool output, the conversation so far, what a handed-off agent receives. The model is usually capable enough, so bad output usually traces to that input. When a run underperforms, read what it actually had — the trace or the filled-in input, not the template alone — before you change any wording, and look for four faults:
Fix the input first: supply the piece or a pointer that reaches it, choose one source where two disagree, correct or drop what is wrong, cut what buries the signal. That usually moves the result more than any other change. Wording edits and after-the-fact corrections — a review pass, a self-check, a rule added after a failure — come after it. A correction that makes up for faulty input leaves the fault in place, and the next run meets it again.
Complete means complete for the task: the fix usually trades noise for the missing piece rather than adding volume. Look to the instructions when the input is already complete, consistent and clean; when the model lacks a capability no input can supply, change the architecture instead.
Ask this before asking whether the line helps. A line can be true, relevant, and still worth cutting, so usefulness does not settle it. Provenance does, and you can answer it from memory:
That last class is the one that feels most earned, because you did the work to reach it, and it is where over-specification comes from. Two tells: a line you could justify from the same sources the run gets, and a sentence that merely argues for the instruction above it without adding information admitted by the tests above.
**A choice the request left open belongs to whoever made the request.** Some of what you would add is not padding but a decision — what ranks one candidate over another, an exception to a rule they gave you, a deliverable beyond what they asked for. It reads as thoroughness and it commits them to something they never chose, under their name, in a file they will quote back later. Ask where the answer would change the work; leave it out where it would not.
**A finished prompt looks thinner than you expect it to, and that is the result rather than a warning sign.** Two rulings and a goal make a short document; the pull at that point is to fill it out — a section on how to rank, a definition of the term in its own name, a third source of evidence nobody asked for — and everything reached for that way comes from the class above. When it reads as too slight, check the goal is stated and the rulings are in it, then ship it.
The counterfactual question — *would the model do this without the line?* — asks for a prediction about the model's own behaviour, which is not reliably answerable from the inside. Ask it second, of what provenance already admitted: it can still cut a line provenance allowed, never keep one provenance rejected.
When two people disagree about whether a line is doing work, the argument is about the model's default, so settle it by running the document with the line removed and comparing. That is a tiebreak available when it is worth the trouble, not a step every line has to pass.
Start from the goal sentence. Add only what the questions above admit, one line at a time.
Writing broadly and pruning afterwards costs more and lands longer: every line you would cut is one you already argued for, and the draft's own weight reads as evidence that it was needed.
Everything you add spends one of two things:
Material behind a pointer escapes context load for the price of the pointer's own line. Material with no pointer rides entirely on a person remembering it.
Three rungs, ordered by how immediately the run needs the material: **steps** it performs in order, **reference** it consults on demand, and **disclosed reference** i
Hand your agent a task. Get back work you can trust. manifest-dev is a set of free, open-source skills for coding agents.
Architecture principles for manifest-dev: how its maintainer wants skills, wrappers, references, state and the workflow…
Ship a change to a file setup-project copies or emits into projects (ADR_FORMAT.md, NORTH_STAR_FORMAT.md, the verification…
Design principles for manifest-dev: how its maintainer wants the visual and interaction design guidance the plugin ships, and the…
Harden a manifest-dev task guidance file for one-shot quality — either /define''s quality-gate/Default set or figure-out''s probe…
Analyze Claude Code sessions to learn what went right/wrong and suggest high-confidence improvements to skills. Use when asked to…
The red-flag lists mirrored between figure-out''s and define''s task files, so a change to one side lands on the other. Use when…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.