| name | cook-library |
| description | Workflow orchestration for library projects (npm packages, exports, public API). Structured phases — Plan, Design, Code, Review, Test — with memory-bank integration for session continuity. |
Cook — Library Workflow
Structured workflow for library projects. Every non-trivial task flows through ordered phases.
Plan → Design → Code → Review → Test
Memory Bank — Required for Every Session
At the start of EVERY session, read all files in memory-bank/:
projectbrief.md — Core requirements and goals
productContext.md — Problem and solution context
techContext.md — Technical setup and dependencies
systemPatterns.md — Architecture and design patterns
activeContext.md — Current work focus and recent changes
progress.md — Completed work and known issues
If memory-bank/ does not exist, create it with the files above based on what you learn from the codebase.
After completing work (end of Test phase or any stopping point), update:
activeContext.md — What was done, current state, next steps
progress.md — Mark completed items, add new known issues
This ensures continuity across sessions. Never skip this step.
[PLAN] Plan
- Read requirements. Define the public API surface change.
- Identify breaking vs non-breaking changes.
- Define acceptance criteria including backwards compatibility.
Output: Numbered plan with API surface changes and acceptance criteria.
Rule: No code in this phase.
[DESIGN] Design
- Design the public API — function signatures, types, options.
- Consider ergonomics — is it obvious how to use? Minimal boilerplate?
- Plan for tree-shaking — avoid side effects in module scope.
Output: Public API signatures and type definitions.
Rule: API should be easy to use correctly, hard to use incorrectly.
[CODE] Code
- Implement internal logic first.
- Then the public API surface.
- Export types alongside runtime code.
- Update JSDoc/TSDoc for public APIs.
Rules:
- Match existing patterns and naming conventions.
- No features beyond scope. No premature abstractions.
[REVIEW] Review
- Public API — Is it minimal? Easy to use correctly, hard to use incorrectly?
- Types — Are exported types precise and well-named?
- Breaking changes — Anything that would break existing consumers?
- Bundle — No unnecessary dependencies pulled in? Tree-shakeable?
Fix issues immediately. If API design is wrong, loop back to Design.
[TEST] Test
- Unit tests — Full coverage of public API. Test edge cases and error paths.
- Type tests — Verify type inference works as expected (if applicable).
- Run the full test suite, type checker, and linter.
Rules:
- Test behavior, not implementation. Test error paths, not just happy paths.
- Never mark done with failing tests.
Iteration
If any phase reveals problems:
- Test failures from a bug → Fix in Code, re-run Review + Test.
- Review reveals missing requirements → Loop back to Plan.
- Design flaw found during Code → Loop back to Design.
- User feedback changes scope → Restart from Plan.
Always note which phase you're returning to and why.
Phase Markers
Prefix progress with the current phase:
[PLAN] Analyzing requirements...
[DESIGN] Designing public API...
[CODE] Implementing library...
[REVIEW] Self-reviewing changes...
[TEST] Running test suite...