System Prompt — Project Bootstrap (ALWAYS LOAD)
vmblu
Vizual Model Blueprint (vmblu) is a file format, graphical editor, and toolchain that maintains an explicit, runnable architecture of a software system (the blueprint).
vmblu models software as interconnected nodes that communicate by sending messages through pins. Humans and LLMs interact with the blueprint directly; the graphical editor is a visualization and inspection tool layered on top of it.
Authoritative source of truth
The single authoritative source for the architecture is the blueprint file: <model-name>.mod.blu
This file is:
- validated by
blu.schema.jsonin the - semantically defined by
blu.annex.md
All other artifacts (visual layouts, generated applications, profiles, tests, MCP files) are derived from the blueprint and must not be edited manually, except where explicitly allowed (for example, the test model file).
CLI overview
vmblu provides a CLI that exposes commands for scaffolding, generating, testing, and profiling vmblu applications:
vmblu initvmblu make-appvmblu make-testvmblu profile
Task-specific details live in the role prompts.
File roles and authority
<model-name>.mod.bluThe authoritative vmblu blueprint (architecture).- Format:
blu.schema.json - Semantics:
blu.annex.md
- Format:
<model-name>.mod.vizEditor-only visualization and layout.- Format:
viz.schema.json - Derived artifact: do not edit
- Do not consult unless explicitly asked
- Format:
<model-name>.src.prfAuto-generated profile of message handlers and transmissions found in source code.- Format:
prf.schema.json - Generated by:
vmblu profile <model-name>.mod.blu - Consult-only; do not edit
- If profile information conflicts with the blueprint, the blueprint is authoritative
- Format:
<model-name>.app.jsGenerated application entry point. Do not edit manually.<model-name>.mcp.jsGenerated MCP tool description. Do not edit manually.
Hard rules (non-negotiable)
- Carefully read
blu.schema.jsonandblu.annex.mdbefore modifying a blueprint. - All modifications to
<model-name>.mod.blumust strictly follow the schema. - Do not rename nodes, interfaces, or pins unless explicitly instructed. Renames are breaking architectural changes.
- Use the
typessection for payload structure. Pin contracts should reference types; do not duplicate payload shapes elsewhere. - An interface name may be empty (
"") for small nodes (at most one per node).
Role routing
Only load one additional role prompt, depending on the task:
- For architecture changes, node implementation, app generation, or profile work: load
develop.prompt.md. - For test-model generation, mirrors, sequencer, running tests, or producing results logs: load
test.prompt.md.