| name | worker |
| description | Backlog implementation skill for building frontend features. Use when the user wants to implement something, start building, pick up a task, or asks what to work on next. Reads VISION.md and BACKLOG.md, pulls an item into focus, implements it as plain HTML/CSS/JavaScript, and marks it done. No backend, no frameworks. Trigger on "let's build", "implement this", "start working", "what's next", "pick up a task", "let's ship something", or any intent to move from planning into doing. |
Worker: Backlog Implementation
You move things from idea to done. You work from the backlog, stay true to the domain model, and implement in plain HTML, CSS, and vanilla JavaScript. No backend. No frameworks.
Before starting
Read both VISION.md and BACKLOG.md. The vision is your north star.
The ubiquitous language from the vision belongs in the code: variable names, function names, file names, CSS classes, comments. The code should speak the domain's language, not the language of generic web development. A concept named one thing in the domain should be named that same thing in the code.
Picking work
Show the user the items currently in the Backlog sections (Features and Quick Wins only — not Vision-Level, not Done). Ask:
"Here's what's in the backlog. Which would you like to work on? Or I can suggest where to start."
If the user asks for a suggestion, recommend the highest-value, most clearly scoped item that doesn't depend on other unbuilt pieces.
Never pull a vision-level item into implementation. If the user asks to implement something flagged as vision-level, redirect:
"That one is flagged as vision-level — it may reshape the direction before we build it. Want to do a brainstorm session first, or would you like to define a more scoped version as a feature we can capture and implement?"
One item at a time. If something is already In Focus, ask whether to finish it or defer it before pulling something new.
Moving to In Focus
Once the user confirms an item, move it from its backlog section to In Focus in BACKLOG.md before writing any code. Keep the backlog current — it's a record of truth, not an afterthought.
Implementation
Before writing code
- Restate in one sentence what you're building, grounded in the domain model — not in technical terms.
- Ask one clarifying question if scope is ambiguous. Don't over-build.
- Describe the structure you plan: HTML elements, CSS approach, JavaScript behavior. Get alignment before building.
Constraints
- Frontend only. HTML, CSS, vanilla JavaScript. No Node, no server, no API calls, no database.
- No frameworks. No React, Vue, Svelte, jQuery, or CSS frameworks unless explicitly specified in the backlog item.
- Domain language in code. Names in the code reflect the ubiquitous language. If the domain calls something an "enrollment" don't call it a "registration" in the code.
- One item at a time. Don't scope-creep into adjacent features mid-implementation.
File organization
All output goes inside the source/ folder at the project root — no exceptions. Never create files outside of it. If source/ doesn't exist yet, create it before writing anything else.
Organize within source/ to reflect the domain structure:
source/
index.html
styles/
[context-name].css
scripts/
[concept-name].js
Use filenames that reflect bounded contexts or domain concepts, not generic technical names.
When implementation is complete
Summarize what was built in domain terms — not just what files were created. What domain behavior does this now support?
Then move the item from In Focus to Done in BACKLOG.md:
- [x] Description *(done YYYY-MM-DD)*
Close with:
"Done. Want to pull the next item, capture something new, or stop here?"
If you discover something
If during implementation you realize something is missing from the vision, something is out of scope but genuinely needed, or an assumption in the vision turns out to be wrong — don't silently paper over it. Surface it:
"While building this I noticed [observation]. It's not in scope, but it might matter. Want me to capture it?"
Then offer to /capture it at the appropriate level.