techygarg/design-blueprint
Run a complete design workflow -- from establishing context through 5 progressive design levels to an approved blueprint. Composes context anchoring, design-first methodology, architecture, and DDD into a unified process. Handles both new features (create context doc) and resuming existing work (load context doc). Use when starting a design, planning architecture, or when the user says 'design a feature', 'blueprint', 'start designing', 'plan the architecture', or 'let's design before coding'.
npx skills add https://github.com/techygarg/lattice --skill design-blueprint
Read apply skills order:
framework:knowledge-priming -- Load project context (tech stack, architecture, conventions) ground decisions real projectframework:context-anchoring -- Create or load feature context anchor docframework:learning-harvest -- Load prior operational learnings inform design; harvest new patterns at session end (always)framework:collaborative-judgment -- Surface real design judgment calls structured options instead silent assuming (always)framework:design-first -- Walk through 5 progressive design levelsframework:architecture -- Apply structural rules Component and Interaction levelsframework:domain-driven-design -- Apply domain modeling Component, Interaction, Contract levelsUse framework:learning-harvest Load behavior. Focus hint: "design session — focus: design patterns, reliability, structural health".
Use framework:context-anchoring set up feature living doc.
Load requirement constraints: Read requirement_doc from context doc frontmatter.
## Technical Constraints. Treat as non-negotiable — same authority as architecture rules. Surface to user before Level 1.framework:collaborative-judgment. User decides; record any change back in requirement doc ## Technical Constraints if it is a local file. If external, record the change in the context doc's Decisions Log instead — this molecule never writes back to an external system.Write the back-link: If requirement_doc resolved to a readable local file at .lattice/requirements/features/{feature-name}.md, write into its ## Links section: - Design: {feature-name}.md. Discrete file edit, done once — skip if the link is already present.
If key use cases or success criteria unclear now, use framework:collaborative-judgment surface what needs answering before starting Level 1.
Drive through framework:design-first 5 levels sequentially. Each level, present design output, get user approval, then persist approved output into context anchor doc before advancing.
Enrichment rule: After user approves each level, use framework:context-anchoring Enrich behavior write following into context doc:
NOT advance next level until current level output persisted.
When applying architectural atoms each level, use framework:collaborative-judgment surface real design judgment calls immediately — not batch during design.
Apply architectural atoms levels where add value:
Level 1 (Capabilities):
framework:design-first.## Design: Level 1 -- Capabilities section.Level 2 (Components):
framework:architecture -- validate each component maps defined architectural layer, dependencies follow loaded architecture rules, component boundaries clear.framework:domain-driven-design -- identify aggregates, entities, value objects. Determine which components live domain layer which infrastructure.## Design: Level 2 -- Components section. Log architectural decisions (layer choices, DDD classifications) Decisions Log.Level 3 (Interactions):
framework:architecture -- validate data flows follow patterns defined loaded architecture doc and boundary crossing rules respected.framework:domain-driven-design -- define aggregate interactions, domain events. Cross-aggregate communication should use domain events eventual consistency.## Design: Level 3 -- Interactions section. Log flow decisions Decisions Log.Level 4 (Contracts):
framework:domain-driven-design -- define repository interfaces, value object types, aggregate root boundaries. Contracts should reflect tactical patterns agreed earlier levels.framework:architecture -- validate contracts respect boundary-data rules and interface ownership per loaded architecture doc.## Design: Level 4 -- Contracts section. Log contract decisions Decisions Log.After Level 4 (Contracts) approved and persisted:
requirement_doc from context doc frontmatter.[path]. Verify before continuing." (a broken local path is an error)## Technical Constraints. Present findings: each divergence as [field/behavior] — changed from [X] to [Y]. Reason: [from Decisions Log], or "L4 consistent with requirement spec — no overrides" if none. Ask: *"Record this in the requirement doc?"*requirement_doc until confirmed. Confirmed and local → write each as - Design override: [field/behavior] — changed from [X] to [Y]. Reason: [...], or - Design alignment: L4 consistent with requirement spec — no overrides. if none. Confirmed and external → this molecule never writes to an external system; note the findings in Design Summary instead. Declined → note in Design Summary instead: "Drift check results not written to requirement doc — see Decisions Log."status: approved until this check is complete.framework:context-anchoring Enrich add ## Design Summary section to context doc containing:status: approved to context doc frontmatter. STOP: discrete file edit — not prose. Without this, code-forge will not proceed.STOP: do not write status to requirement_doc. The feature file's status is owned by whoever manages the requirement — a human, or an external system it may live in. This molecule manages its own context doc only.
framework:learning-harvest Harvest behavior. Session context: "design session — architectural decomposition and contract definition". Synthesize and propose cross-cutting patterns from this session — decomposition approaches, architectural trade-offs, scope decisions that could inform future designs. User confirms what enters the document. STOP: run this before the next bullet — do not jump straight to the /code-forge suggestion./code-forge when ready begin coding against the approved design.Take techygarg/design-blueprint from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.