# Bobby Directory Phase 0 Closeout

Governance authority: `BOBBYDIRECTORY-SITE-GOVERNANCE.md`, version 1.0.0, effective 2026-08-23,
SHA-256 `6ab7c698489fc464f8b9fa045b24d4bb85d044b6de548dc12ce4eca85f5988be`.
Closeout format: governance section 30.
Phase: 0, discovery, proposals and brand system. Documentation only.

## 1. What was requested

Approval of the Bracket Index A2 identity, completion of the full Phase 0 brand book and asset
suite, specification of the future public `/brand` page and the future `/admin/brand` repository,
specification of stable public image URLs, QA of every delivered file, and this closeout, followed
by a stop.

## 2. Selected identity and approved decisions

| Decision | Approved value |
| --- | --- |
| Identity | Bracket Index A2 |
| Wordmark case | Mixed case Bobby, uppercase DIRECTORY |
| Primary accent | `#C2440A` |
| Dark field accent | `#FFB066` |
| DIRECTORY tracking | 2.3 |
| DIRECTORY weight | 600 |
| Record blocks | Enlarged, approved |
| Corner radius | Tightened to 5, approved |
| Uppercase Bobby | Documented alternate only, never the primary logo |
| Grayscale accent | `#5A6472`, introduced during QA to reach AA in print |

All of these are implemented in the delivered geometry and recorded in the brand book.

## 3. Files created

### Documentation

| Path | Description |
| --- | --- |
| `docs/brand/BOBBYDIRECTORY-BRAND-BOOK.md` | Full brand book, source of record |
| `docs/brand/BOBBYDIRECTORY-BRAND-BOOK.pdf` | 15 page designed brand book, SHA-256 `d3bfd68575e728bc5161dd3b291d5a4ede8451c32567651c5b7fe39cbb857e2c` |
| `docs/brand/BOBBYDIRECTORY-ASSET-INDEX.md` | Human readable index of all 468 assets |
| `docs/brand/assets/asset-index.json` | Machine readable index |
| `docs/governance/phase-0/BOBBYDIRECTORY-PHASE-0-CLOSEOUT.md` | This document |

### Asset suite

`docs/brand/assets/`, 468 indexed files plus the JSON index and the two generator sources.

| Group | Files | Contents |
| --- | --- | --- |
| `logo/` | 60 | Full, simplified and micro beeldmerk, horizontal, stacked and wordmark lockups, mixed case and uppercase alternate, full colour light and dark, one colour black, one colour white, grayscale, SVG and PNG |
| `app-icons/` | 100 | 1024, 512, 256, 192, 180, 128, 64, 48, 32, 16 px in full colour light, full colour dark, simplified, monochrome dark, monochrome light, transparent and mask safe |
| `favicons/` | 12 | `favicon.svg`, `favicon.ico` at 16, 32 and 48, `favicon-16.png`, `favicon-32.png`, `favicon-48.png`, `apple-touch-icon.png`, pinned tab monochrome SVG, pixel snapped micro variants |
| `invoice/` | 46 | Print safe horizontal invoice logo, compact receipt logo, black on white, white on dark, grayscale, pure monochrome, SVG and transparent print quality PNG, thermal variants at 384 and 576 px |
| `email/` | 32 | Header and compact logos, light and dark mode, monochrome fallback, 1x and 2x PNG at 400, 480, 600 px |
| `avatars/` | 40 | Square and circle safe, light and dark field, full colour and monochrome, 1024, 512, 400, 256, 128 px |
| `social/` | 100 | X profile and cover, LinkedIn profile and company cover, Facebook profile and cover, Instagram profile, YouTube profile and channel cover, GitHub organisation avatar, editable SVG masters and flattened PNG |
| `embed/` | 78 | Default Open Graph, directory preview, profile preview template, developer and API, documentation, generic fallback, 1200 by 630 and 2x |

### Downloadable package

`/mnt/documents/bobby-directory-brand-v1.0.0.zip`, 2.87 MB, 486 entries, containing the complete
asset suite, the brand book in Markdown and PDF, and the asset index.

## 4. Specifications produced, not built

- Public `/brand` page: complete content specification, including introduction, logo system,
  downloads, swatches, typography, tone of voice, approved descriptions, social biographies, email
  guidance, invoice and receipt guidance, app icons and favicons, avatars, covers, embeds, usage and
  misuse examples, asset picker, and version history.
- Admin brand repository at `/admin/brand`: draft, review, approve, publish, reject, replace,
  rollback, archive, version history, asset categories, usage descriptions, dimensions, file
  metadata, checksums, alt text, owner controlled publishing, audit events, downloadable originals
  and generated derivatives. Publication restricted to the Owner or an explicitly granted Brand
  Publisher capability.
- Storage and stable URL model: `/images/<lowercase-readable-name>` resolves an asset key, not an
  object path. Publishing repoints the key so public URLs never change. Provider, bucket and object
  key are never exposed. Draft and archived assets return 404. Originals are immutable. Publication
  invalidates the cache for the single affected path. Validation, malware scanning, SVG sanitisation
  and normalisation run before publication, with correct content types, caching headers and
  download behaviour.

## 5. QA results

| Check | Result |
| --- | --- |
| Every SVG renders | Pass. All 128 SVG masters rasterised through headless Chromium without a parse or render error |
| PNG dimensions match the index | Pass. All 339 PNG files measured against the declared dimensions |
| Transparent assets have clean edges | Pass. Alpha channels inspected, no matte fringe, no residual field |
| 16 px favicon at true pixel size | Pass. Inspected at 1:1 and at magnification. Stem 2 px, arms 2 px, counters 5 by 4 px, 2 px separating row, three bracket sides visible, counters separate |
| Monochrome remains recognisable | Pass at every declared minimum, including 16 px monochrome |
| Invoice and receipt in grayscale print | Pass after one fix, see below |
| Email PNG at 1x and 2x | Pass. Baked fields, no transparency, legible at 200 to 240 px rendered width |
| Social safe areas | Pass after two recompositions, see below |
| Clipping, overlap, padding, background | Pass. No file shows clipping, overlap, incorrect padding or an unintended background |
| Contrast recorded | Pass. Full palette measured to WCAG 2.1 and published in the brand book |
| Filenames lowercase and URL friendly | Pass. 0 of 469 files contain an uppercase letter, space, underscore or diacritic |
| Asset index matches delivered files | Pass. 468 indexed entries, 468 files on disk, no orphan and no missing entry |
| ZIP contains every documented asset | Pass. 486 entries, asset tree byte identical to the repository copy |
| Brand book PDF | Pass after two page level fixes, see below |
| No em dash character | Pass. 0 occurrences across all Bobby Directory brand and governance content produced in this phase |

### Issues found and fixed during QA

1. Grayscale accent `#8A8F98` measured 2.62 to 1 on white and failed AA. Replaced with `#5A6472`
   at 6.00 to 1. All grayscale and print assets regenerated.
2. LinkedIn company cover placed the lockup under the profile tile crop. Composition offset to the
   right and vertically centred in the visible band.
3. YouTube channel cover content sat outside the TV safe area. Recomposed into the 1546 by 423
   safe region.
4. Brand book pages 6 and 10 ended with an unbalanced empty lower third. Added a closing rule note
   to each and captioned the three invoice specimens.

### Contrast measurements of record

| Pair | Ratio | Result |
| --- | --- | --- |
| `#C2440A` on `#FFFFFF` | 5.09 | AA normal text, AAA large |
| `#FFB066` on `#0D1117` | 10.50 | AAA |
| `#5A6472` on `#FFFFFF` | 6.00 | AA normal text |
| `#101828` on `#FFFFFF` | 17.75 | AAA |
| `#F2F4F7` on `#0D1117` | 17.05 | AAA |
| `#C2440A` on `#0D1117` | 3.72 | Fails AA, prohibited pairing, documented as a never |

## 6. Remaining legal and trademark risk

- The trademark check performed is an informal search of public sources only. No registry search
  was commissioned in classes 9, 35 or 42, and none should be presumed. A formal clearance search
  is required before any registration, and before the mark is used in commerce at scale.
- The bracket plus two counter device is a simple geometric construction. Simple devices attract a
  higher risk of coexisting similar marks and a lower distinctiveness score at examination.
- The name Bobby Directory sits in a family with Bobby Wallet. Family use can help, but it also
  means an objection against one member can affect the other. Ownership of the family should be
  recorded consistently before filing.
- No legal review has been carried out on the platform descriptions, boilerplates, social
  biographies or invoice and receipt wording delivered in the brand book. They are drafted
  conservatively but they are not legally cleared copy.
- Retention durations, controller and processor language, and any compliance claim remain
  unreviewed and are deliberately absent from all delivered copy.

## 7. Negative confirmation

Nothing in this phase was applied to the running product. Specifically, the following were not
created, modified, enabled or deleted:

- Product routes, pages, components or UI
- The favicon, the head metadata, the design tokens or `src/styles.css`
- Any file under `src/` or `public/`
- Database tables, migrations, RLS policies or grants
- Authentication, sessions, roles or capabilities
- Server functions, API routes or MCP endpoints
- Lovable Cloud, which remains not enabled
- Storage buckets, delivery endpoints and any live `/images/` asset
- JSON import processing and remote image downloading
- Preview subdomains, Cloudflare, MonkeyUpload, Google Cloud, Didit or any payment integration
- Test or production infrastructure

Every deliverable in this phase lives under `docs/` or in `/mnt/documents`.

## 8. Status

Phase 0 is complete and closed. The identity is Bracket Index A2 with the approved decisions in
section 2. The brand book, the asset suite, the asset index and the downloadable package are
delivered and QA verified.

Stopping here and awaiting explicit written Phase 1 approval.
