Project Standards
Embed your team’s coding standards, architecture patterns, and best practices.
The template system lets you customize the prompts generated by wu:brief for your project’s specific needs. You can add new templates, override existing ones, and create client-specific variations for different AI tools.
Most consumers should start with the built-in wu:brief defaults and add project-local templates
only when they need different wording or extra domain-specific instructions.
pnpm lumenflow:upgrade --latest.lumenflow:upgrade automatically syncs onboarding docs and vendor assets (no separate docs:sync step needed)..lumenflow/templates/ only when you want to override or extend the shipped defaults.Project Standards
Embed your team’s coding standards, architecture patterns, and best practices.
Tool-Specific
Provide different instructions for Claude Code vs Cursor vs Windsurf.
Domain Knowledge
Include domain-specific terminology, APIs, and business logic context.
Workflow Tweaks
Adjust verification profiles, lane-specific guidance, or client-specific wording.
Create the template file
Add to manifest
Edit .lumenflow/templates/manifest.yaml:
Test the template
Different AI tools have different capabilities. Override templates to provide tool-specific instructions.
templates/spawn-prompt/claude-code -> claude)templates.{alias}/spawn-prompt/id, use it instead of baseClient Flag (--client) | Alias | Override Directory |
|---|---|---|
claude-code | claude | templates.claude/ |
codex-cli | codex | templates.codex/ |
gemini-cli | gemini | templates.gemini/ |
cursor | cursor | templates.cursor/ |
windsurf | windsurf | templates.windsurf/ |
/skill wu-lifecycle # WU claim/block/done /skill tdd-workflow # RED-GREEN-REFACTOR /skill worktree-discipline # Path safety
These template IDs ship with the default wu:brief composition and can be overridden per client
or per project:
| Generator / Section | Template ID | Path | Default Order | Default Tokens |
|---|---|---|---|---|
| Methodology guidance | methodology-tdd | spawn-prompt/methodology/tdd-directive.md | 5 | - |
| Methodology guidance | methodology-test-after | spawn-prompt/methodology/test-after-directive.md | 5 | - |
| Methodology guidance | methodology-none | spawn-prompt/methodology/none-directive.md | 5 | - |
| Architecture guidance | architecture-hexagonal | spawn-prompt/architecture/hexagonal-directive.md | 6 | - |
| Architecture guidance | architecture-layered | spawn-prompt/architecture/layered-directive.md | 6 | - |
| Architecture guidance | architecture-none | spawn-prompt/architecture/none-directive.md | 6 | - |
| Fallback testing guidance | tdd-directive | spawn-prompt/tdd-directive.md | 10 | - |
| Docs/config guidance | documentation-directive | spawn-prompt/documentation-directive.md | 10 | - |
| Verification strategy | visual-directive | spawn-prompt/visual-directive.md | 15 | - |
| Verification strategy | refactor-directive | spawn-prompt/refactor-directive.md | 15 | - |
| Verification strategy | structured-content-directive | spawn-prompt/structured-content-directive.md | 15 | - |
| Required verification rendering | verification-requirements | spawn-prompt/verification-requirements.md | 18 | REQUIRED_VERIFICATION |
generateProjectSpecificCoChangeGuidance | project-specific-co-change-guidance | spawn-prompt/project-specific-co-change-guidance.md | 19 | CO_CHANGE_GUIDANCE_SECTION |
| Skills selection | skills-selection | spawn-prompt/skills-selection.md | 50 | - |
| Skills guidance | code-craft | spawn-prompt/code-craft.md | 55 | - |
| Edit discipline | read-before-write | spawn-prompt/read-before-write.md | 60 | - |
| UI design context | design-context-ui | spawn-prompt/design-context-ui.md | 65 | - |
generateMandatoryAgentSection | mandatory-agents | spawn-prompt/mandatory-agents.md | 66 | MANDATORY_AGENTS |
generateInvariantsPriorArtSection | invariants-prior-art | spawn-prompt/invariants-prior-art.md | 67 | INVARIANTS_PRIOR_ART_SECTION |
generateImplementationContext | implementation-context | spawn-prompt/implementation-context.md | 68 | IMPLEMENTATION_CONTEXT_SECTION |
generateEffortScalingRules | effort-scaling | spawn-prompt/effort-scaling.md | 100 | - |
generateParallelToolCallGuidance | parallel-tool-calls | spawn-prompt/parallel-tool-calls.md | 110 | - |
generateIterativeSearchHeuristics | search-heuristics | spawn-prompt/search-heuristics.md | 120 | - |
generateTokenBudgetAwareness | token-budget | spawn-prompt/token-budget.md | 130 | WU_ID |
generateCompletionFormat | completion-format | spawn-prompt/completion-format.md | 135 | - |
generateCompletionWorkflowSection | completion-workflow | spawn-prompt/completion-workflow.md | 136 | WU_ID |
generateAgentCoordinationSection | agent-coordination | spawn-prompt/agent-coordination.md | 137 | AGENT_COORDINATION_SECTION |
generateBugDiscoverySection | bug-discovery | spawn-prompt/bug-discovery.md | 200 | WU_ID |
generateQuickFixCommands | quick-fix-commands | spawn-prompt/quick-fix-commands.md | 210 | - |
generateLaneSelectionSection | lane-selection | spawn-prompt/lane-selection.md | 220 | - |
| Recovery guidance | worktree-recovery | spawn-prompt/worktree-recovery.md | 300 | WORKTREE_PATH |
generateWorktreePathGuidance | worktree-path-guidance | spawn-prompt/worktree-path-guidance.md | 301 | WORKTREE_PATH |
| Lane-specific guidance | lane-guidance-operations | spawn-prompt/lane-guidance/operations.md | 400 | - |
| Lane-specific guidance | lane-guidance-framework | spawn-prompt/lane-guidance/framework.md | 400 | - |
| Lane-specific guidance | lane-guidance-content | spawn-prompt/lane-guidance/content.md | 400 | - |
generateActionSection (claimed path) | action-claimed | spawn-prompt/action-claimed.md | 820 | WORKTREE_PATH |
generateActionSection (unclaimed path) | action-unclaimed | spawn-prompt/action-unclaimed.md | 820 | WU_ID, LANE, WORKTREE_PATH_HINT, WU_EVENTS_PATH |
generateDbRiskVerificationGuidance | db-risk-verification | spawn-prompt/db-risk-verification.md | 845 | - |
| Pre-completion checklist | self-review | spawn-prompt/self-review.md | 850 | WU_ID |
| Full prompt constraints | constraints | spawn-prompt/constraints.md | 1000 | WU_ID |
generateCodexConstraints | codex-constraints | spawn-prompt/codex-constraints.md | 1005 | WU_ID plus numbering and TDD-block tokens |
Create a markdown file with YAML frontmatter:
Edit .lumenflow/templates/manifest.yaml:
Add guidance about your project’s architecture patterns:
Customize testing guidance beyond default TDD:
For prompt/config/content work, override the built-in structured-content-directive instead of
forcing backend-style TDD steps:
Create guidance for specific lanes:
Lane guidance templates are selected by laneParent conditions and automatically included when the
template id starts with lane-guidance-.
Add security requirements:
Customize documentation-specific guidance:
Use tokens to include WU-specific information:
| Token | Usage |
|---|---|
{WU_ID} | Reference the current WU |
{LANE} | Show lane context |
{TYPE} | Conditional text based on type |
{WORKTREE_PATH} | Include worktree navigation |
{TITLE} | Show WU title in headings |
{DESCRIPTION} | Include full WU description |
{WORK_DOMAIN} | Render the classified work domain |
{WORK_TEST_METHODOLOGY_HINT} | Render the classifier-driven methodology hint |
{REQUIRED_VERIFICATION} | Render required verification from the WU spec |
These context variables are especially useful for lane-aware and domain-aware composition:
| Variable | Meaning |
|---|---|
work.domain | Classified domain such as ui, backend, or docs |
work.testMethodologyHint | Classifier hint such as smoke-test or structured-content |
hasRequiredVerification | Truthy when the WU spec declares any required verification |
tests.hasUnit | Truthy when the WU spec declares unit test paths |
tests.hasE2E | Truthy when the WU spec declares E2E test paths |
tests.hasManual | Truthy when the WU spec declares manual verification items |
Base variables such as type, lane, laneParent, policy.testing, and
policy.architecture remain available as well.
Example with tokens:
Template not appearing:
id matches in both template and manifestcondition evaluates to true for this WUpath is correct (relative to templates/)Client override not applied:
templates.{alias}/ (see Client Alias Mapping)id as base template--client flagToken not replaced:
{WU_ID} not {wu_id}--verbose)--dry-runid as base