Skip to content

Commit 5852b47

Browse files
Brand pack + Marr/Sandler diagrams; repoint stale validate-rsr paths (#189)
## Summary Part of an estate-wide branding + hygiene pass. - **`brand/`** — hand-authored SVG pack in WASM-violet: `icon.svg`, `icon-square.svg`, `social-preview.svg`, `marr-levels.svg` (the project at Marr's three levels), `sandler-submarine.svg` (seven-compartment impact case), `BRAND.adoc`. All repo-true (regions over a schemaless byte array, checked L1–L10, Idris2 ABI + Zig FFI + Rust verifier). - **README** — embeds the social-preview hero. - **`validate-rsr`** — repointed to real artefact paths (`6a2/` for STATE/META/ECOSYSTEM, `LICENSES/`, `docs/legal/`, `docs/governance/`). Every file already existed at its real location; this corrects stale tooling, not compliance. The previously-skipped META-axes content block now runs against `6a2/META.a2ml`. ## Verification - `just validate-rsr` → **RSR compliance: PASS** - all SVGs `xmllint`-clean and render-checked 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01L7ysyzRpm8y7cqJpBLxwKi --- _Generated by [Claude Code](https://claude.ai/code/session_01L7ysyzRpm8y7cqJpBLxwKi)_ --------- Co-authored-by: Claude <noreply@anthropic.com>
1 parent 7d4e922 commit 5852b47

8 files changed

Lines changed: 424 additions & 12 deletions

File tree

Justfile

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -351,27 +351,27 @@ validate-rsr:
351351
for f in .editorconfig .gitignore Justfile README.adoc LICENSE 0-AI-MANIFEST.a2ml; do
352352
[ -f "$f" ] || MISSING="$MISSING $f"
353353
done
354-
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
354+
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
355355
[ -f "$f" ] || MISSING="$MISSING $f"
356356
done
357-
for f in licensing/exhibits/EXHIBIT-A-ETHICAL-USE.txt licensing/exhibits/EXHIBIT-B-QUANTUM-SAFE.txt licensing/texts/MPL-2.0.txt; do
357+
for f in docs/legal/EXHIBIT-A-ETHICAL-USE.txt docs/legal/EXHIBIT-B-QUANTUM-SAFE.txt LICENSES/MPL-2.0.txt; do
358358
[ -f "$f" ] || MISSING="$MISSING $f"
359359
done
360360
for f in src/interface/abi src/interface/generated ffi/zig; do
361361
[ -d "$f" ] || MISSING="$MISSING $f"
362362
done
363-
for f in docs/maintenance/MAINTENANCE-CHECKLIST.adoc docs/practice/SOFTWARE-DEVELOPMENT-APPROACH.adoc; do
363+
for f in docs/governance/MAINTENANCE-CHECKLIST.adoc docs/governance/SOFTWARE-DEVELOPMENT-APPROACH.adoc; do
364364
[ -f "$f" ] || MISSING="$MISSING $f"
365365
done
366-
if [ -f ".machine_readable/META.a2ml" ]; then
367-
grep -q 'axis-1 = "must > intend > like"' .machine_readable/META.a2ml || MISSING="$MISSING META.a2ml:axis-1"
368-
grep -q 'axis-2 = "corrective > adaptive > perfective"' .machine_readable/META.a2ml || MISSING="$MISSING META.a2ml:axis-2"
369-
grep -q 'axis-3 = "systems > compliance > effects"' .machine_readable/META.a2ml || MISSING="$MISSING META.a2ml:axis-3"
370-
grep -q 'scoping-first = true' .machine_readable/META.a2ml || MISSING="$MISSING META.a2ml:scoping-first"
371-
grep -q 'idris-unsound-scan = "believe_me/assert_total"' .machine_readable/META.a2ml || MISSING="$MISSING META.a2ml:idris-unsound-scan"
372-
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"
373-
grep -q 'compliance-focus = "seams/compromises/exception register, bounded exceptions, anti-drift checks"' .machine_readable/META.a2ml || MISSING="$MISSING META.a2ml:compliance-focus"
374-
grep -q 'effects-evidence = "benchmark execution/results and maintainer status dialogue/review"' .machine_readable/META.a2ml || MISSING="$MISSING META.a2ml:effects-evidence"
366+
if [ -f ".machine_readable/6a2/META.a2ml" ]; then
367+
grep -q 'axis-1 = "must > intend > like"' .machine_readable/6a2/META.a2ml || MISSING="$MISSING META.a2ml:axis-1"
368+
grep -q 'axis-2 = "corrective > adaptive > perfective"' .machine_readable/6a2/META.a2ml || MISSING="$MISSING META.a2ml:axis-2"
369+
grep -q 'axis-3 = "systems > compliance > effects"' .machine_readable/6a2/META.a2ml || MISSING="$MISSING META.a2ml:axis-3"
370+
grep -q 'scoping-first = true' .machine_readable/6a2/META.a2ml || MISSING="$MISSING META.a2ml:scoping-first"
371+
grep -q 'idris-unsound-scan = "believe_me/assert_total"' .machine_readable/6a2/META.a2ml || MISSING="$MISSING META.a2ml:idris-unsound-scan"
372+
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"
373+
grep -q 'compliance-focus = "seams/compromises/exception register, bounded exceptions, anti-drift checks"' .machine_readable/6a2/META.a2ml || MISSING="$MISSING META.a2ml:compliance-focus"
374+
grep -q 'effects-evidence = "benchmark execution/results and maintainer status dialogue/review"' .machine_readable/6a2/META.a2ml || MISSING="$MISSING META.a2ml:effects-evidence"
375375
grep -q 'compliance-tooling = "panic-attack"' .machine_readable/policies/MAINTENANCE-AXES.a2ml || MISSING="$MISSING MAINTENANCE-AXES.a2ml:compliance-tooling"
376376
grep -q 'effects-tooling = "ecological checking with sustainabot guidance"' .machine_readable/policies/MAINTENANCE-AXES.a2ml || MISSING="$MISSING MAINTENANCE-AXES.a2ml:effects-tooling"
377377
grep -q 'source-human = "docs/maintenance/MAINTENANCE-CHECKLIST.adoc"' .machine_readable/policies/MAINTENANCE-CHECKLIST.a2ml || MISSING="$MISSING MAINTENANCE-CHECKLIST.a2ml:source-human"

README.adoc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ image:https://img.shields.io/badge/OpenSSF-Best_Practices-green?logo=opensources
1111
image:https://img.shields.io/badge/believe__me-0-brightgreen[believe_me: 0]
1212
image:https://img.shields.io/badge/Levels-L1--10_checked_core_(L11--12_draft)-blue[Levels: checked core]
1313

14+
image::brand/social-preview.svg[typed-wasm,align="center"]
15+
1416
[NOTE]
1517
.typed-wasm is a meeting point for two unrelated languages
1618
====

brand/BRAND.adoc

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
// SPDX-License-Identifier: CC-BY-SA-4.0
2+
= typed-wasm Brand Pack
3+
:toc:
4+
5+
== Mark
6+
7+
The typed-wasm mark is a grid of memory cells — the schemaless linear-memory
8+
byte array — laid out behind a single violet *schema bracket* that binds the
9+
cells into a typed *region*. Two cells glow as typed fields; the rest stay
10+
faint, still untyped bytes. One linear cell carries an exactly-once tick. The
11+
glyph states the whole idea in one image: a schema (region) drawn over a
12+
schemaless database (WASM linear memory), so every load and store is checked
13+
against the type before it runs.
14+
15+
The name is the symbolism: WebAssembly's linear memory is an untyped byte
16+
array; *typed-wasm* puts TypeLL's progressive type safety over it — regions
17+
are tables, loads are SELECT, stores are UPDATE, and the Idris2 prover verifies
18+
each access at compile time.
19+
20+
|===
21+
| File | Use
22+
23+
| `icon.svg` | Primary mark with dark background (rounded corners). README, docs, about screens.
24+
| `icon-square.svg` | Transparent background mark. Favicon, app icon, overlay on custom backgrounds.
25+
| `social-preview.svg` | GitHub / Open Graph social preview (1280x640). "typed-wasm" wordmark + mark.
26+
| `marr-levels.svg` | Explainer: the project at David Marr's three levels of analysis.
27+
| `sandler-submarine.svg` | Impact / case-making: the seven sealed compartments of adoption.
28+
|===
29+
30+
== Colours
31+
32+
[cols="1,1,2"]
33+
|===
34+
| Name | Hex | Use
35+
36+
| WASM Violet | `#a371f7` | Primary brand colour. The schema bracket, typed cells, active states, headings.
37+
| Schema Indigo | `#8957e5` | Secondary. Untyped-cell outlines, the region grid, muted accents.
38+
| Background | `#0d1117` | Dark surfaces. GitHub-dark compatible.
39+
| Foreground | `#e6edf3` | Text on dark background.
40+
| Glow | `#1d1233` | Radial background glow behind the mark.
41+
|===
42+
43+
== Typography
44+
45+
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.
46+
47+
No custom font is required. All text is set in the SVG, not a separate font file.
48+
49+
== Rules
50+
51+
- 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).
52+
- The violet must be `#a371f7` — do not approximate with other violets/purples.
53+
- The wordmark is always lowercase `typed-wasm`.
54+
- On light backgrounds, invert: violet `#6f42c1` strokes and `#1b1f24` text on white/light grey.
55+
- 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.
56+
- 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).
57+
58+
== Generating raster assets
59+
60+
[source,shell]
61+
----
62+
# Requires Inkscape or rsvg-convert (librsvg)
63+
64+
# Favicon (64x64 PNG)
65+
rsvg-convert -w 64 -h 64 icon-square.svg > favicon-64.png
66+
67+
# App icon (512x512 PNG)
68+
rsvg-convert -w 512 -h 512 icon.svg > icon-512.png
69+
70+
# Social preview (1280x640 PNG for GitHub)
71+
rsvg-convert -w 1280 -h 640 social-preview.svg > social-preview.png
72+
----

brand/icon-square.svg

Lines changed: 53 additions & 0 deletions
Loading

brand/icon.svg

Lines changed: 71 additions & 0 deletions
Loading

brand/marr-levels.svg

Lines changed: 52 additions & 0 deletions
Loading

0 commit comments

Comments
 (0)