Highly experimental. WeaveMark’s notation, Processor, examples, and public interfaces are still evolving — expect rough edges, surprising results, and breaking changes.

Hands-on tutorial

Turn reusable product layers into one buildable specification.

Product and programming specs are where WeaveMark most clearly differs from template systems: reusable layers should be transformed into one coherent product contract, not pasted as generic sections.

You write A product spec that composes product and programming layers.
You produce Implementation prompts and a product handoff package.
You learn Reusable stacks, branching, emitted files, and review checklists.

In the repository

Source and folder links open GitHub. Commands assume the repository-root setup from Tutorial 1.

1. Write a product specification

Create outputs/tutorial-product/release-workbench.weavemark.md. This spec is concrete enough to run, but it still pulls in reusable product and programming layers.

mkdir -p outputs/tutorial-product
<!-- Save as outputs/tutorial-product/release-workbench.weavemark.md -->
@promplet version: 0.7
@refine module:weavemark.domains.programming.foundations.software_spec mingle: true
@refine module:weavemark.domains.programming.stacks.typescript_nextjs_prisma_sqlite mingle: true
@refine module:weavemark.domains.programming.validation.release_validation_matrix mingle: true
@refine module:weavemark.domains.product.release_readiness_gate mingle: true
@refine module:weavemark.domains.product.product_validation_surface mingle: true

# Release readiness workbench

Design @{product_name}, a local-first command center for
release notes, validation runs, screenshots, risks, waivers,
and go/no-go decisions.

Primary users: @{primary_users}
Critical release risk: @{release_risk}

@match release_stage
  "alpha" ==>
    Prioritize pilot feedback, bug capture, and rollback.
  "public" ==>
    Prioritize support readiness, documentation, and observability.

@if include_ai_review
  Add an AI-assisted review queue with human approval gates.

@if include_audit_trail
  Add immutable release events for approvals, waivers, validation runs,
  screenshot evidence, and rollback decisions.

@output enforce: strict
  Return these sections:
  1. Product promise
  2. User roles and permissions
  3. Screens and core workflows
  4. Data model
  5. Local-first persistence rules
  6. AI review behavior
  7. Release gate logic
  8. Acceptance criteria
  9. Validation plan

@assert contains: "Acceptance criteria"
@assert contains: "Local-first persistence"

The complete, tested specs for this tutorial are checked in under promplets/tutorials/: release-workbench.weavemark.md and the emission pack release-workbench-pack.weavemark.md.

2. Compose the buildable product spec

Compile a concrete product specification. The refinements should shape the result into a buildable program plan, not a stack of generic advice.

weavemark outputs/tutorial-product/release-workbench.weavemark.md \
  --batch-only \
  --var product_name="LaunchDesk" \
  --var primary_users="founders, release managers, and support leads" \
  --var release_risk="shipping with unresolved validation gaps" \
  --var release_stage=public \
  --var include_ai_review=true \
  --var include_audit_trail=true \
  --output outputs/tutorial-product/launchdesk-spec.md
What to do with the output: launchdesk-spec.md is a programming-agent prompt. Give it to GitHub Copilot, Claude Code, Cursor, or another AI-assisted programming tool and ask it to implement the application.

3. Adapt the same spec to another product

Change only variables to reuse the same product program. This is the practical payoff: one specification, many concrete products.

weavemark outputs/tutorial-product/release-workbench.weavemark.md \
  --batch-only \
  --var product_name="ClinicOps" \
  --var primary_users="clinic administrators and front-desk teams" \
  --var release_risk="missed appointment reminders during migration" \
  --var release_stage=alpha \
  --var include_ai_review=false \
  --var include_audit_trail=false \
  --output outputs/tutorial-product/clinicops-spec.md
What to do with the output: clinicops-spec.md is another programming-agent prompt. Use it as the implementation brief for a different product, not as a normal chat question.

4. Emit a product handoff package

A larger product spec often needs more than one artifact. Use @emit file: to generate a handoff package: a product brief for stakeholders, an implementation brief for a programming agent, and an acceptance checklist for review.

<!-- Save as outputs/tutorial-product/release-workbench-pack.weavemark.md -->
@promplet version: 0.7
@compile format: markdown

@emit file: "product-brief.md"
  # @{product_name} product brief

  Product promise:
  Help @{primary_users} make safer release decisions.

  The brief must explain:
  - the release readiness problem
  - the user roles
  - the go/no-go decision moment
  - the evidence each decision must cite
  - the top risk: @{release_risk}

@emit file: "implementation-spec.md"
  @refine module:weavemark.domains.programming.foundations.software_spec mingle: true
  @refine module:weavemark.domains.programming.stacks.typescript_nextjs_prisma_sqlite mingle: true

  # @{product_name} implementation specification

  Build a local-first web app with:
  - release dashboard
  - validation run detail page
  - risk and waiver queue
  - screenshot evidence gallery
  - go/no-go decision record

  @match release_stage
    "alpha" ==>
      Optimize for pilot users, fast correction, and visible defects.
    "public" ==>
      Optimize for support readiness, auditability, and release confidence.

  @if include_ai_review
    Add an AI review assistant that proposes issues, never approves release,
    and always requires human confirmation.

  @if include_audit_trail
    Persist immutable audit events for approvals, waivers, validation runs,
    comments, attachments, and decision changes.

@emit file: "acceptance-checklist.md"
  # Acceptance checklist

  The implementation is ready when:
  - every release has a visible readiness state
  - every failed validation links to evidence
  - every waiver records owner, reason, and expiry
  - go/no-go decisions cite risks and validation runs
  - local data survives restart and can be exported
  - no AI-suggested review can bypass human approval
weavemark outputs/tutorial-product/release-workbench-pack.weavemark.md \
  --batch-only \
  --output-dir outputs/tutorial-product/launchdesk-pack \
  --var product_name="LaunchDesk" \
  --var primary_users="founders, release managers, and support leads" \
  --var release_risk="shipping with unresolved validation gaps" \
  --var release_stage=public \
  --var include_ai_review=true \
  --var include_audit_trail=true
What this teaches: one WeaveMark source can produce a stakeholder brief, a buildable implementation specification, and a review checklist while sharing the same variables and branch logic.
What to do with the output: product-brief.md is for humans, implementation-spec.md is the prompt for your programming agent, and acceptance-checklist.md is the review checklist you keep beside the implementation.

Final step: Use the output

The package splits product work into artifacts with different consumers. Use each file for its intended role instead of handing the whole folder to one person or tool without context.

What to do with the output: read product-brief.md with stakeholders, give implementation-spec.md to a programming agent such as GitHub Copilot, Claude Code, Cursor, or weavemark implement, and keep acceptance-checklist.md as the human/agent review gate for the finished application. These Markdown files are handoff artifacts; they do not execute on their own.

Next

Continue with Game specifications to see @expand and @iterate applied to concrete playable systems, or jump ahead to Advanced macros.