Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 12 additions & 12 deletions Justfile
Original file line number Diff line number Diff line change
Expand Up @@ -351,27 +351,27 @@ validate-rsr:
for f in .editorconfig .gitignore Justfile README.adoc LICENSE 0-AI-MANIFEST.a2ml; do
[ -f "$f" ] || MISSING="$MISSING $f"
done
for f in .machine_readable/STATE.a2ml .machine_readable/META.a2ml .machine_readable/ECOSYSTEM.a2ml .machine_readable/anchors/ANCHOR.a2ml .machine_readable/policies/MAINTENANCE-AXES.a2ml .machine_readable/policies/MAINTENANCE-CHECKLIST.a2ml .machine_readable/policies/SOFTWARE-DEVELOPMENT-APPROACH.a2ml; do
for f in .machine_readable/6a2/STATE.a2ml .machine_readable/6a2/META.a2ml .machine_readable/6a2/ECOSYSTEM.a2ml .machine_readable/anchors/ANCHOR.a2ml .machine_readable/policies/MAINTENANCE-AXES.a2ml .machine_readable/policies/MAINTENANCE-CHECKLIST.a2ml .machine_readable/policies/SOFTWARE-DEVELOPMENT-APPROACH.a2ml; do
[ -f "$f" ] || MISSING="$MISSING $f"
done
for f in licensing/exhibits/EXHIBIT-A-ETHICAL-USE.txt licensing/exhibits/EXHIBIT-B-QUANTUM-SAFE.txt licensing/texts/MPL-2.0.txt; do
for f in docs/legal/EXHIBIT-A-ETHICAL-USE.txt docs/legal/EXHIBIT-B-QUANTUM-SAFE.txt LICENSES/MPL-2.0.txt; do
[ -f "$f" ] || MISSING="$MISSING $f"
done
for f in src/interface/abi src/interface/generated ffi/zig; do
[ -d "$f" ] || MISSING="$MISSING $f"
done
for f in docs/maintenance/MAINTENANCE-CHECKLIST.adoc docs/practice/SOFTWARE-DEVELOPMENT-APPROACH.adoc; do
for f in docs/governance/MAINTENANCE-CHECKLIST.adoc docs/governance/SOFTWARE-DEVELOPMENT-APPROACH.adoc; do
[ -f "$f" ] || MISSING="$MISSING $f"
done
if [ -f ".machine_readable/META.a2ml" ]; then
grep -q 'axis-1 = "must > intend > like"' .machine_readable/META.a2ml || MISSING="$MISSING META.a2ml:axis-1"
grep -q 'axis-2 = "corrective > adaptive > perfective"' .machine_readable/META.a2ml || MISSING="$MISSING META.a2ml:axis-2"
grep -q 'axis-3 = "systems > compliance > effects"' .machine_readable/META.a2ml || MISSING="$MISSING META.a2ml:axis-3"
grep -q 'scoping-first = true' .machine_readable/META.a2ml || MISSING="$MISSING META.a2ml:scoping-first"
grep -q 'idris-unsound-scan = "believe_me/assert_total"' .machine_readable/META.a2ml || MISSING="$MISSING META.a2ml:idris-unsound-scan"
grep -q 'audit-focus = "systems in place, documentation explains actual state, safety/security accounted for, observed effects reviewed"' .machine_readable/META.a2ml || MISSING="$MISSING META.a2ml:audit-focus"
grep -q 'compliance-focus = "seams/compromises/exception register, bounded exceptions, anti-drift checks"' .machine_readable/META.a2ml || MISSING="$MISSING META.a2ml:compliance-focus"
grep -q 'effects-evidence = "benchmark execution/results and maintainer status dialogue/review"' .machine_readable/META.a2ml || MISSING="$MISSING META.a2ml:effects-evidence"
if [ -f ".machine_readable/6a2/META.a2ml" ]; then
grep -q 'axis-1 = "must > intend > like"' .machine_readable/6a2/META.a2ml || MISSING="$MISSING META.a2ml:axis-1"
grep -q 'axis-2 = "corrective > adaptive > perfective"' .machine_readable/6a2/META.a2ml || MISSING="$MISSING META.a2ml:axis-2"
grep -q 'axis-3 = "systems > compliance > effects"' .machine_readable/6a2/META.a2ml || MISSING="$MISSING META.a2ml:axis-3"
grep -q 'scoping-first = true' .machine_readable/6a2/META.a2ml || MISSING="$MISSING META.a2ml:scoping-first"
grep -q 'idris-unsound-scan = "believe_me/assert_total"' .machine_readable/6a2/META.a2ml || MISSING="$MISSING META.a2ml:idris-unsound-scan"
grep -q 'audit-focus = "systems in place, documentation explains actual state, safety/security accounted for, observed effects reviewed"' .machine_readable/6a2/META.a2ml || MISSING="$MISSING META.a2ml:audit-focus"
grep -q 'compliance-focus = "seams/compromises/exception register, bounded exceptions, anti-drift checks"' .machine_readable/6a2/META.a2ml || MISSING="$MISSING META.a2ml:compliance-focus"
grep -q 'effects-evidence = "benchmark execution/results and maintainer status dialogue/review"' .machine_readable/6a2/META.a2ml || MISSING="$MISSING META.a2ml:effects-evidence"
grep -q 'compliance-tooling = "panic-attack"' .machine_readable/policies/MAINTENANCE-AXES.a2ml || MISSING="$MISSING MAINTENANCE-AXES.a2ml:compliance-tooling"
grep -q 'effects-tooling = "ecological checking with sustainabot guidance"' .machine_readable/policies/MAINTENANCE-AXES.a2ml || MISSING="$MISSING MAINTENANCE-AXES.a2ml:effects-tooling"
grep -q 'source-human = "docs/maintenance/MAINTENANCE-CHECKLIST.adoc"' .machine_readable/policies/MAINTENANCE-CHECKLIST.a2ml || MISSING="$MISSING MAINTENANCE-CHECKLIST.a2ml:source-human"
Expand Down
2 changes: 2 additions & 0 deletions README.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@ image:https://img.shields.io/badge/OpenSSF-Best_Practices-green?logo=opensources
image:https://img.shields.io/badge/believe__me-0-brightgreen[believe_me: 0]
image:https://img.shields.io/badge/Levels-L1--10_checked_core_(L11--12_draft)-blue[Levels: checked core]

image::brand/social-preview.svg[typed-wasm,align="center"]

[NOTE]
.typed-wasm is a meeting point for two unrelated languages
====
Expand Down
72 changes: 72 additions & 0 deletions brand/BRAND.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
// SPDX-License-Identifier: CC-BY-SA-4.0
= typed-wasm Brand Pack
:toc:

== Mark

The typed-wasm mark is a grid of memory cells — the schemaless linear-memory
byte array — laid out behind a single violet *schema bracket* that binds the
cells into a typed *region*. Two cells glow as typed fields; the rest stay
faint, still untyped bytes. One linear cell carries an exactly-once tick. The
glyph states the whole idea in one image: a schema (region) drawn over a
schemaless database (WASM linear memory), so every load and store is checked
against the type before it runs.

The name is the symbolism: WebAssembly's linear memory is an untyped byte
array; *typed-wasm* puts TypeLL's progressive type safety over it — regions
are tables, loads are SELECT, stores are UPDATE, and the Idris2 prover verifies
each access at compile time.

|===
| File | Use

| `icon.svg` | Primary mark with dark background (rounded corners). README, docs, about screens.
| `icon-square.svg` | Transparent background mark. Favicon, app icon, overlay on custom backgrounds.
| `social-preview.svg` | GitHub / Open Graph social preview (1280x640). "typed-wasm" wordmark + mark.
| `marr-levels.svg` | Explainer: the project at David Marr's three levels of analysis.
| `sandler-submarine.svg` | Impact / case-making: the seven sealed compartments of adoption.
|===

== Colours

[cols="1,1,2"]
|===
| Name | Hex | Use

| WASM Violet | `#a371f7` | Primary brand colour. The schema bracket, typed cells, active states, headings.
| Schema Indigo | `#8957e5` | Secondary. Untyped-cell outlines, the region grid, muted accents.
| Background | `#0d1117` | Dark surfaces. GitHub-dark compatible.
| Foreground | `#e6edf3` | Text on dark background.
| Glow | `#1d1233` | Radial background glow behind the mark.
|===

== Typography

Wordmark uses the system font stack: `system-ui, -apple-system, 'Segoe UI', Helvetica, Arial, sans-serif` at weight 300 (light), lowercase. The subtitle is set at the same stack, weight 300.

No custom font is required. All text is set in the SVG, not a separate font file.

== Rules

- The mark always shows the memory-cell grid with the schema bracket binding a typed region over it. Never draw the typed cells without the faint untyped cells — that would deny the core insight (a schema *over* a schemaless byte array).
- The violet must be `#a371f7` — do not approximate with other violets/purples.
- The wordmark is always lowercase `typed-wasm`.
- On light backgrounds, invert: violet `#6f42c1` strokes and `#1b1f24` text on white/light grey.
- The subtitle ("regions over a schemaless byte array") is the etymology of the idea, not a marketing strapline; it may appear on repository assets. Sales/marketing straplines never appear on repository assets.
- Claims on assets stay inside the checked envelope: the L1-L10 core is checked (0 `believe_me`); L11-L12 are draft. Do not put "all levels verified" on any asset (ADR-003).

== Generating raster assets

[source,shell]
----
# Requires Inkscape or rsvg-convert (librsvg)

# Favicon (64x64 PNG)
rsvg-convert -w 64 -h 64 icon-square.svg > favicon-64.png

# App icon (512x512 PNG)
rsvg-convert -w 512 -h 512 icon.svg > icon-512.png

# Social preview (1280x640 PNG for GitHub)
rsvg-convert -w 1280 -h 640 social-preview.svg > social-preview.png
----
53 changes: 53 additions & 0 deletions brand/icon-square.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
71 changes: 71 additions & 0 deletions brand/icon.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
52 changes: 52 additions & 0 deletions brand/marr-levels.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Loading