콘텐츠로 이동
Developer Preview — APIs and language features may change before 1.0

Glyph System

이 콘텐츠는 아직 번역되지 않았습니다.

mashin has a visual language. Every runtime event, governance decision, and platform component is represented by a bracket-framed symbol. The same symbols appear in execution traces, the IDE, terminal output, error messages, and documentation. If you learn the symbols, you can read any mashin trace in any human language.

Every symbol has exactly one meaning. No symbol appears in two contexts.

The bracket frame [ ] is the governance boundary made visual. Nothing escapes the brackets. The frame is the brand.

IDENTITY EXECUTION GOVERNANCE SIGNALS
[*] machine [≡] compute [√] allow [!] signal
[□] krate [◎] reason [⊘] deny
[∴] koda [○] mem read [?] hold
[~] kortex [◉] mem write [x] terminate
[#] kanon [→] call [+] recorded
[⊞] kura [⊳] decide
[◇] kore […] await
[Ξ] kodex [⇄] network
[▷] kanvas
[♡] kardia

These identify platform components. They appear in navigation, documentation, and architecture diagrams.

Glyph Name What it is
[*] machine The universal unit. The asterisk is a wildcard: machines can be anything.
[□] krate A packaged machine. The outlined square: sealed, self-contained.
[∴] koda The reasoning engine. “Therefore”: the conclusion drawn from premises.
[~] kortex The network fabric. The wave: data flowing between machines.
[#] kanon The governance ledger. The hash mark: the cryptographic chain.
[⊞] kura The registry. A grid of cells: a structured catalog.
[◇] kore The verified kernel. The diamond: formally verified, unbreakable.
[Ξ] kodex The text-first rendering surface. Three lines on a page.
[▷] kanvas The graphical interface layer. Outward-facing, presenting.
[♡] kardia koda’s core personality. The heart of cognition.

These represent step types at runtime. They appear in Kine traces, step timelines, and monitoring. Color indicates status: blue = running, green = completed, red = failed.

Glyph Step type What it means
[≡] :compute Pure computation. Structured evaluation, no effects.
[◎] :reason Focused reasoning. An LLM, symbolic planner, or solver is thinking.
[○] :remember read Memory recall. Reaching into stored knowledge.
[◉] :remember write Memory store. Writing new knowledge.
[→] :call Invoking another machine. Directed action, delegation.
[⊳] :decide Branch point. Forking into paths based on a condition.
[…] :await Suspended. Waiting for external input, webhook, or timer.
[⇄] network Data exchange. Bidirectional communication via kortex.

These represent what the runtime decided. They appear alongside execution glyphs in traces and audit logs.

Glyph What it means
[√] Allow. All governance checks passed.
[⊘] Deny. Governance intercepted. Capability not declared, budget exceeded, or policy violated.
[?] Hold. Requires human review before proceeding.
[x] Terminate. Forced stop. Circuit breaker, timeout, or kill signal.
[+] Recorded. A ledger event was written. The hash chain extended.
Glyph What it means
[!] Signal. Something needs attention. Run failure, governance alert, or system event.

An execution trace is a sequence of glyphs. Each line tells you what happened, what was checked, and what decided what.

[*] emailTriager run started
[○] recall previous_context reading memory
[√] governance: allowed
[◎] classify reasoning with claude-sonnet
[√] governance: allowed
[⊳] route deciding: urgency == "high"?
[?] send_reply hold: awaiting human approval
[√] approved by [email protected] governance: approved
[→] @mashin/actions/slack/post calling external machine
[[*]] slack_post nested execution
[⇄] POST api.slack.com/chat network call
[√] governance: allowed
[[*]] done nested execution complete
[+] behavioral ledger hash chain event recorded
[→] {escalated: true, response: ...} final output
[*] emailTriager run complete (1.2s, $0.003)

A person unfamiliar with mashin can read this trace and understand what happened. That is the test.

Every glyph has an ASCII fallback for terminals without Unicode. This is the set the trace renderer ships with (MashinCLI.TraceRenderer):

Unicode ASCII Meaning
[*] [*] machine
[≡] [=] compute
[◎] [:] reason
[○] [o] remember, read
[◉] [O] remember, write
[→] [>] call
[⊳] [<>] decide
[…] [?] await
[⇄] [~] network
[√] [v] allow
[⊘] [!] deny
[x] [x] terminate
[+] [#] recorded
nesting [[ and ]] a nested run opens, closes

The ASCII set is not a transliteration of the Unicode set, and it breaks the one-symbol-one-meaning rule stated at the top of this page. [~], [#] and [!] are identity glyphs in Unicode (kortex, kanon, signal) and event glyphs in ASCII (network, recorded, deny). ASCII has fewer distinguishable brackets than the vocabulary needs. Reconciling the two is open work, tracked as GAP-3406. Until it is settled, read the ASCII column as its own alphabet rather than as a translation of the first.

The glyph tells you the category before you read the text:

[⊘] Governance denied: capability "net.http" not declared
Machine: emailTriager
Step: fetch_data (line 23)
[x] Run terminated: budget exceeded ($0.50 limit, $0.51 spent)
Machine: research_agent
[?] Hold: awaiting approval for send_email
Machine: emailTriager
Approve: mashin approve run_01JQ... step send_email
[!] Signal: run failed
Machine: emailTriager
Error: SMTP connection refused

Colors are symbolic. Each carries a single meaning. Color reinforces but is never required; the glyph alone must be sufficient.

Color Hex Symbolic meaning Used with
Emerald green (brand) #10B981 Identity, life, intelligence [*] [∴] [◇] all identity glyphs
Green Allowed, verified, completed [√]
Amber Attention, governance, hold [?] […] [!]
Red Denied, terminated, boundary [⊘] [x]
Blue Active, thinking, in motion [◎] [≡] [→] [⊳]
Gray Recorded, structural, at rest [+]

Neutrals (structure) + Emerald green (intent) + Amber (governance) + Red (boundaries) = meaningful system.

  • Bracket frame: every glyph is contained in [ ]. The governance boundary made visual.
  • Typographic only: interior symbols are mathematical, geometric, or punctuation. No emoji, no pictographs.
  • Monochrome capable: every glyph works in a single color.
  • Terminal renderable: every glyph has a plain-text ASCII fallback.
  • 1:1 mapping: every symbol has exactly one meaning across all contexts.

React:

import { Glyph } from '@mashin/kodex'
<Glyph type="reason" state="active" /> // [◎] in blue, pulsing
<Glyph type="verified" state="success" /> // [√] in green
<Glyph type="denied" state="blocked" /> // [⊘] in red

SwiftUI:

GlyphView(glyph: .reason, state: .active, size: .compact)
GlyphView(glyph: .verified, state: .success)

Terminal (Elixir):

IO.puts("[@@] classify [v]")
IO.puts("[|>] route")
IO.puts(" [?] send_reply hold: awaiting approval")