Skip to main content

fde-assignment

Break a one-line problem or product idea ("build a Perplexity clone", "a voice receptionist for a clinic") into a complete specification pack a coding agent can build from and be graded against - declared thresholds in JSON, a contract, an exhaustive SPEC.md, AGENTS.md, TECHNICAL.md, a short PRD.md with no numbers, README.md, DESIGN.template.md, a rubric, and the scaffold plan. Use when a learner or instructor wants to turn a problem into a spec, write an assignment or capstone brief, scaffold a project for an agent to build, or asks how a spec like LUMINA's is derived.

Datos de origen

Repositorio
hamzafarooq/multi-agent-course
Última actividad en el origen
21 de septiembre de 2026 a las 23:28
Idioma detectado de SKILL.md
inglés
Estrellas
89
Forks
81

Opciones de instalación

De forma predeterminada está seleccionado el prompt que primero revisa el origen. Puedes cambiar a un comando directo o descargar una copia local.

Revisa los archivos de origen

Lee SKILL.md y los archivos complementarios que muestra SkillsMP antes de decidir si quieres instalarlo.

Explorador de archivos
9 archivos

Mostrando SKILL.md

SKILL.md
Instrucciones de origen · Vista previa de solo lectura
name
fde-assignment
description
Break a one-line problem or product idea ("build a Perplexity clone", "a voice receptionist for a clinic") into a complete specification pack a coding agent can build from and be graded against - declared thresholds in JSON, a contract, an exhaustive SPEC.md, AGENTS.md, TECHNICAL.md, a short PRD.md with no numbers, README.md, DESIGN.template.md, a rubric, and the scaffold plan. Use when a learner or instructor wants to turn a problem into a spec, write an assignment or capstone brief, scaffold a project for an agent to build, or asks how a spec like LUMINA's is derived.
# Problem to spec pack **Premise: problem solving with AI is as good as the spec you write.** A coding agent builds what you can state precisely and nothing you cannot. A long prompt describes a gate; a spec pack runs one. This skill breaks a one-line problem into that pack through seven moves, each a question put to the problem before the next is asked. The detail is what falls out when the questions are asked in the right order. The house pattern was extracted from LUMINA (`modules/Module_1_Agent_Foundations_Harness_System_Design/Assignment_1_Lumina/`). Use it as the worked example for voice and file shapes, not as a template to copy: a different problem gives different answers to the same questions. `references/00-how-lumina-happened.md` shows each move done once, for real. ## Two ways to run it - **Learner mode (default).** The learner brings a problem. You interview, they think, you write what they decided in their words. Socratic: one question at a time, no solutions volunteered, push back on vague answers ("what would a stranger *see*?"). Honor the teaching style in `progress/learner-progress.md` if one is recorded. - **Instructor mode** (`--generate`, or the user is clearly authoring for a cohort). Ask the open decisions once in one message (codename, module slot and due date, taught stack, whether a UI is provided, points split), take defaults for the rest, produce the full folder. Both modes go through the same seven moves and end at the same lint. ## The seven moves | # | Move | The question that drives it | Reference | |---|---|---|---| | 1 | **Deconstruct** | What does a stranger open and use? Where does a naive build fail on *both* sides? What returns later? What gets cut? | `references/01-deconstruct.md` | | 2 | **Contract** | If the UI already existed, what exactly would it call, and in what order would events arrive? | `references/02-contract.md` | | 3 | **Numbers** | What number would prove this worked, declared before the first run, per mode, with a reason? | `references/03-gates.md` | | 4 | **Evals & QA** | What *measures* each number, against what gold set, under which rules with which precedents, in what order do gates run, and what may only a person judge? | `references/04-evals.md` | | 5 | **Documents** | Who reads which file, and what does each reader need that the others do not? | `references/05-documents.md` | | 6 | **Scaffold** | What has to exist so day one is "run it and click", not "read fourteen thousand words"? | `references/06-scaffold.md` | | 7 | **Lint** | `node .claude/skills/fde-assignment/scripts/lint-assignment.mjs <dir>` | script | **Move 1 ends in a one-page shape. Stop there and get it approved.** Everything after it is derivation; deriving eight thousand words from a wrong shape is the expensive mistake. Once the shape is approved, run moves 2 through 7 without pausing. ## Order matters: numbers first, README last Write `sla.json`, `expectations.json` and `rubric.json` before any prose. Then `SPEC.md` (quotes them under a header saying the JSON wins), `AGENTS.md`, `TECHNICAL.md`, `DESIGN.template.md`, `PRD.md` (no digits at all), `README.md` last. The README depends on everything; writing it first is how prose drifts from the truth. ## The disciplines 1. **One lesson.** Every problem has one judgement a naive build gets wrong on both sides. Name it first; it decides what gets cut and where the points go. 2. **Numbers live in exactly one place.** JSON. Prose references, never restates. The lint checks the PRD. 3. **Declared before the first run.** A threshold set after seeing a score is a description. 4. **Grade the contract, not the stack.** Graders speak HTTP and read JSON. `/health` names what is live as free strings. Helper scripts are labelled `CONVENIENCE, not a gate`. 5. **Arithmetic, never a judge.** Every gate compares against a declared number. A model may report at warn; it may never block. Manual rows are the few things only a person can judge. 6. **Every rule cites its failure.** Use the house precedents in `quality/rules.json` or leave `TODO`. Never invent an incident. 7. **Two readers.** A human wants fifteen minutes and the why; a coding agent wants every status code once, explicitly. One document cannot serve both, so there are six. 8. **The UI is the acceptance test.** Ship `501` skeletons so day one is clicking, not reading. 9. **Run the grader against a stub before anyone sees it.** It will be wrong the first time. ## Output and finish Learner mode: write into the folder the learner names, never inside a course assignment folder. Instructor mode: `modules/<Module>/Assignment_<K>_<Codename>/`. Finish with the reading ladder (real word counts), the lint result, and the staff build list from move 6 with what is still `⬜ To build`. In learner mode also update `progress/learner-progress.md`: the problem, the lesson they found, where they stopped.
Ver en GitHub