Issue 100 · relationships before decoration
Explain what connects, what changes, and who controls the facts.
The guide records a shared grammar for architecture, runtime flow, sequence, lifecycle, and package relationships. Every visual is paired with an equivalent relation list, event table, transition table, or adjacency table.
01 · architecture and authority
Make boundaries, ownership and confidence visible.
An architecture map should explain what exists now, which relationships are proposals, and where authority leaves the illustrated product. The shape is never allowed to imply implementation status by itself.
- Source revision
hara:runtime-boundary@62ceb4a16b4f361a- Authority
- hara-lang/hara implementation and accepted runtime contracts
- Nodes
- 10
- Relations
- 9
Equivalent relation list
-
Hara source read exact source Reader + front end
current · source revision -
Reader + front end resolve ordinary callable Direct callable catalog
current · catalog revision -
Direct callable catalog direct value Tree evaluator
current · runtime test -
Direct callable catalog direct value Fiber evaluator
current · runtime test -
Direct callable catalog direct value Bytecode VM
current · VM test -
Direct callable catalog capability-fenced call Native CLI
current · host receipt -
Direct callable catalog capability-fenced call Browser / Wasm
current · browser receipt -
Package registry release identity Hara source
external · registry receipt -
Direct callable catalog future transport Remote evaluator
proposed · proposal only
02 · runtime and data flow
Distinguish values, commands, observations, receipts and handoffs.
Flow diagrams should make the session fence and the class of every movement inspectable. A returned value is not a command, and an unavailable handoff is not an execution failure.
- Session
session:7c2d9a1e- Generation
- 4
- Source
source:4f31d2c8- Backend
- wasm-hbc
- Capabilities
capabilities:browser-safe@3
Equivalent ordered flow
- 1 Load sourceartifact · current
exact source value
- 2 Attach capabilitiescommand · current
capability fence
- 3 Run formcommand · current
command 147
- 4 Observe resultobservation · current
value [2 3 4]
- 5 Checkpoint boundaryreceipt · current
receipt 148
- 6 Publish sharehandoff · unavailable
unavailable offline
03 · sequence and handoff
Keep actors, event order and returned facts exact.
A sequence view must preserve monotonic order, message class, source revision and timeout behavior. The event table is not a fallback of lesser value; it is the authoritative readable equivalent.
- Sequence
- 141–148
- Revision
sequence:playground-run@1- Lanes
- 5
- Events
- 8
Equivalent monotonic event table
| Seq. | From | To | Class | Event | Revision | State |
|---|---|---|---|---|---|---|
141 | person | playground | command | Run exact source | source:4f31d2c8 | current |
142 | playground | host | message | Create generation 4 | session:7c2d9a1e | current |
143 | host | runtime | call | Evaluate with browser-safe capabilities | capabilities:browser-safe@3 | current |
144 | runtime | host | fact | Return value [2 3 4] | runtime:hbc@12 | current |
145 | host | receipts | receipt | Append observation receipt | receipt:145 | current |
146 | receipts | playground | fact | Confirm monotonic checkpoint | receipt:146 | current |
147 | playground | person | fact | Render result and fence | view:147 | current |
148 | playground | receipts | timeout | Share receipt unavailable offline | network:none | unavailable |
04 · lifecycle and recovery
Show terminal states, guards and forbidden transitions.
State diagrams should answer what can happen next, why a transition is allowed, what evidence proves it, and what requires a replacement identity rather than a visual reset.
- Initial
- idle
- Revision
state:session-lifecycle@4- Allowed
- 9
- Forbidden
- 3
idle Idle has no session identity. Create is the only enabled transition in this specimen path.
Allowed transitions
idlereadycreate · source and capability fence valid
session-created receiptreadyrunningrun · no active command
command-started eventrunningcompletedcomplete · result available
observation receiptrunningfailedfail · terminal error
failure receiptrunningcancellingcancel · command still active
cancel-requested eventcancellingfailedcancelled · terminal cancellation observed
cancelled receiptreadydisposeddispose · no active command
dispose receiptcompleteddisposeddispose · generation terminal
dispose receiptfaileddisposeddispose · generation terminal
dispose receipt
Forbidden transitions
idlerunningA session identity and capability fence must exist first.
completedrunningA terminal generation cannot restart; create a replacement generation.
disposedreadyDisposed identity cannot be reactivated.
Equivalent transition table
| From | Action | To | Guard | Evidence |
|---|---|---|---|---|
| Idle | create | Ready | source and capability fence valid | session-created receipt |
| Ready | run | Running | no active command | command-started event |
| Running | complete | Completed | result available | observation receipt |
| Running | fail | Failed | terminal error | failure receipt |
| Running | cancel | Cancelling | command still active | cancel-requested event |
| Cancelling | cancelled | Failed | terminal cancellation observed | cancelled receipt |
| Ready | dispose | Disposed | no active command | dispose receipt |
| Completed | dispose | Disposed | generation terminal | dispose receipt |
| Failed | dispose | Disposed | generation terminal | dispose receipt |
05 · package and namespace graph
Keep dependency direction and stewardship distinct.
Package, namespace, runtime and maintainer nodes carry different authority. Direct, optional, incompatible and superseded edges need words and evidence—not one generic line between circles.
- Registry revision
registry-fixture:packages@8- Nodes
- 9
- Edges
- 10
- Selected
release:0.4.2
Equivalent adjacency and evidence table
| From | Relation | To | Edge state | From revision | To revision |
|---|---|---|---|---|---|
| std.work | exports | work.core | contains | release:0.4.2 | namespace:17 |
| std.work | exports | work.store | contains | release:0.4.2 | namespace:12 |
| std.work.sqlite | depends on | std.work | direct | release:0.2.0 | release:0.4.2 |
| std.work.sqlite | provider implementation | work.store | optional | release:0.2.0 | namespace:12 |
| std.work | supported | Rust native | compatible | release:0.4.2 | target:rust@12 |
| std.work | portable subset | Browser / Wasm | partial | release:0.4.2 | target:wasm@9 |
| std.work.sqlite | provider unavailable | Native image | incompatible | release:0.2.0 | target:native-image@2 |
| work.runtime | migrate to | work.store | superseded | namespace:8 | namespace:12 |
| @mina | publisher | std.work | maintains | identity:github@mina | release:0.4.2 |
| @mina | publisher | std.work.sqlite | maintains | identity:github@mina | release:0.2.0 |
06 · shared grammar
Use one relation language across products.
Node shape, line treatment and annotation hierarchy are shared. Application-specific identities, events, transitions and dependency facts remain under their own authority.
Boundary and confidence legend
Every state combines words, symbols and line treatment.
Implemented and evidenced by the cited source revision.
currentA planned relationship that must not be presented as current behavior.
proposedIdentity or facts are controlled outside the illustrated product.
externalThe path cannot currently complete; this is not the same as failure.
unavailableThe path remains usable with explicitly reduced guarantees.
degradedAnnotation stack
Do not ask arrows and boxes to carry source or authority facts silently.
- 01Title
What relationship or lifecycle is being explained.
Plain-language purpose. - 02Caption
How to read the visual and what not to infer.
Direction, status and scope. - 03Legend
Node, edge, symbol and state vocabulary.
Words plus shape/line treatment. - 04Evidence fence
Source, exact revision, authority and generated-at context.
No unfenced current claims. - 05Callout
A bounded exception, risk or handoff.
Numbered and source-linked. - 06Textual alternative
Equivalent relations, events, transitions or adjacency.
Complete without the visual.
Name the diagram, exact source revision and authority before asking the shape to carry meaning.
Use arrows, line style, symbols and words together; colour is a reinforcing cue only.
Separate current, proposed, external, unavailable and degraded boundaries explicitly.
Provide an equivalent ordered list, event table, transition table or adjacency table for every visual composition.
At narrow widths, prefer the textual alternative over shrinking labels and relations into illegibility.
Visual Language owns grammar and accessibility; products and registries own the facts and publication decisions.
Delivery behavior
The same explanation must survive screen, print and reduced capability.
Visual diagrams may use progressive disclosure on capable screens. Printed, low-bandwidth and narrow views use the exact title, evidence fence and textual alternative rather than a raster screenshot of tiny labels.
- Wide screen
- Overview visual + selected evidence inspector + textual equivalent.
- 680 px
- Visual simplifies; labels remain outside edges; alternative moves directly below.
- 390 / 320 px
- Ordered text, events, transitions or adjacency become primary; visual may be omitted.
- Print / PDF
- Static line treatment, numbered callouts, caption and source revision on the same page.
- Reduced motion
- No animated travel along edges; selection and state change use immediate structural feedback.
- Machine projection
- Expose stable node IDs, edge kinds, direction, state, revision and authority.
07 · ownership and adoption
Adopt the grammar; do not copy the fixture facts.
The public CSS supplies shared diagram semantics and responsive behavior. Each downstream product supplies its own exact node identities, relations, revisions, evidence, accessible alternative and publication decision.
Presentation grammar
Node and edge roles, line/symbol vocabulary, titles, captions, legends, evidence fences, focus, responsive transformation, print and reduced-motion treatment.
Task composition
Which diagram belongs in a page or workflow, what can be selected, how detail is disclosed, and which user action follows inspection.
Facts and receipts
Architecture, identities, versions, events, transitions, dependencies, compatibility, ownership, source revisions, receipts and current/proposed decisions.
| Product family | Primary diagram use | Required authority input | Required accessible equivalent |
|---|---|---|---|
| WWW / Docs | Architecture explanations, concept maps and static low-bandwidth fallbacks. | Exact identity, relation/state facts and source revision from the product authority. | Relation list, event table, transition table or adjacency table. |
| Playground | Session flow, runtime sequence, lifecycle and capability maps. | Exact identity, relation/state facts and source revision from the product authority. | Relation list, event table, transition table or adjacency table. |
| Specs | Normative state machines, conformance flow and proposal lifecycle. | Exact identity, relation/state facts and source revision from the product authority. | Relation list, event table, transition table or adjacency table. |
| Packages | Dependency, namespace, compatibility and stewardship graphs. | Exact identity, relation/state facts and source revision from the product authority. | Relation list, event table, transition table or adjacency table. |
| World | Source, relay, moderation, ownership and accountable-bot diagrams. | Exact identity, relation/state facts and source revision from the product authority. | Relation list, event table, transition table or adjacency table. |
| Learn | Concept maps and progressive explanations, never hidden prerequisite authority. | Exact identity, relation/state facts and source revision from the product authority. | Relation list, event table, transition table or adjacency table. |
- Pin a merged Visual Language revision.Import `v2.css` and `v2-diagrams.css` without copying protected tokens.
- Model stable identities first.Give every node, edge, lane, state and annotation a machine-readable ID.
- Fence authority.Record source revision, registry/runtime authority and whether facts are current, proposed or unavailable.
- Provide equivalence.Ship the relation/event/transition/adjacency alternative in the same release as the visual.
- Review five widths and two themes.Use `/guide/` and record route/theme/viewport evidence before downstream adoption.