Proposal Design Concept
Version: v2.0 — reissued on the GoThrive kit Author: Jéan Roux / HQ (Hermes Agent) Purpose: One place that defines exactly how a GoThrive proposal looks and how one is produced — so any agent (or human) can build one without guessing.
v1 of this spec described the retired Nostics brand — navy
#1D2844, teal#3A99B4, lime#A5D667, Montserrat, and thenostics.typtemplate. A proposal produced from that version today would go out carrying the dead brand. Everything below is GoThrive, and the template and tooling are now in place and verified (see §8).
1. Why this exists
GoThrive proposals are client-facing documents that carry the brand: credible, methodical, human, "seasoned alternative to Big-6". They are produced from a DocMost proposal page (source of truth for content) and compiled into a branded PDF using the house Typst template. This spec fixes the visual system, the layout rules, the signature block, and the build recipe.
Always read this document before producing a proposal. Do not improvise a layout.
2. Register
This spec covers the Digital register — business improvement and applied AI. It is secular: no faith framing anywhere in a proposal.
Counselling & Coaching material is a different surface with its own voice, its blush register and its own site. Do not use this template for it without deciding separately.
3. Sources of truth
| What | Where |
|---|---|
| Brand kit (tokens, marks, fonts) | jcrx/client-gothrive → brand/kit/ — the only source |
| Bundled copy of the kit | gothrive/1-General → okf-bundles/okf-gothrive/C.Purpose/C2.Brand/assets/ |
| PDF template (source of truth) | skill pdf-generation → templates/gothrive.typ |
| Build scripts | skill pdf-generation → scripts/{md2pdf.py, docmost-to-pdf.py} |
| Fonts staged for Typst | /opt/data/docs/brand/fonts/ (Inter 400/600/700/800, IBM Plex Mono 500/600) |
| Marks staged for Typst | /opt/data/docs/brand/logos/ (lockup-horizontal-master.svg, -reversed, monogram-master.svg) |
| 7P method wheel (appendix image) | this bundle Resources/assets-intellectual/Method-7P-Wheel-1.Concept.png |
| Live site | https://digital.gothrive.co.za |
Never source a mark from 1-General/brand-images/ — that is a pre-rework snapshot and its
monogram is the rejected one. The live kit is client-gothrive/brand/kit.
4. Design intent
Clean, professional, credible. White space over clutter. The ink is Deep Teal; a single Teal Accent rule is the only accent on a page; everything structural is a Warm Beige hairline. The document reads like it came from a firm that runs on method and data.
Client-facing copy is plain business language: low techno jargon, no internal file formats or system internals.
5. Tokens — GoThrive kit v4
Straight from brand/kit/tokens.json. No hex outside this table appears in a proposal.
| Token | Hex | Use in a proposal |
|---|---|---|
deep-teal |
#1C353B |
headings, ink, links |
warm-teal |
#3F5C5B |
body copy — every running paragraph |
off-white |
#F6F4F1 |
quiet fills (code blocks) |
white |
#FFFFFF |
the paper; the cover ground |
warm-beige |
#CFCABE |
every hairline: headers, footers, table grid, quote rule |
teal-accent |
#5CBDB9 |
graphic only — the cover accent rule, the H1 rule |
medium-grey |
#636363 |
small meta labels (header line, footer line) |
pale-pink |
#FBE3E8 |
Counselling & Coaching only — not in a Digital proposal |
blush |
#DEA6AF |
Counselling & Coaching only |
sage |
#8EC0AE |
reversed-field secondary accent |
deep-water |
#0E1F24 |
deepest field |
ink |
#26302F |
single-colour print — every mark must survive as this one ink |
rule-dark |
#6E8285 |
endorsement rule on a dark field |
Two hard rules. Text is never pure black — body copy is Warm Teal and headings are Deep Teal. And Teal Accent is never text on a light field (2.03:1): it is a rule or a riser terminal, nothing else.
Retired, and forbidden: the Nostics navy #1D2844, teal #3A99B4 and lime #A5D667;
Montserrat (D12); the "G!" monogram of the first identity round.
6. Typography
- Inter (400/600/700/800) — everything set in words.
- IBM Plex Mono (500/600) — figures, code, labels.
| Token | Size | Weight | Use |
|---|---|---|---|
| — (cover title) | 22 pt | bold | proposal name |
| — (subtitle) | 12 pt | regular | Proposal for <Client> (<Contact>) |
| — (H1) | 18 pt | bold | numbered section headings |
| — (H2) | 13 pt | bold | sub-sections |
| — (H3) | 11 pt | bold | third level, in Warm Teal |
| body | 10.5 pt | 400 | running text, justified |
| table | 9.5 pt | 400 | cell text, not justified |
| meta | 8 pt | 400 | header / footer |
The Typst build needs the fonts on disk. Pass
--font-path /opt/data/docs/brand/fonts (already the default in md2pdf.py). Without it,
Inter silently falls back and the document is off-brand.
7. Page anatomy
7.1 Cover (page 1, no header)
- Logo —
lockup-horizontal-master.svg(colour, on the white cover), width 4.5 cm. - Title — proposal name, 22 pt bold, Deep Teal.
- Subtitle — optional, 12 pt, Warm Teal.
- Accent rule — 6 cm, Teal Accent (graphic).
- Author / date / site — 10 pt Medium Grey:
GoThrive Digital, long-form date,digital.gothrive.co.za(hyperlink). - Internal drafts only:
Confidential — For Internal Use Onlyin Warm Teal. Never on a client-facing proposal.
7.2 Header (pages 2+)
- Left:
GoThrive Digital — <Proposal title>in 8 pt Medium Grey. - Right:
Confidentialin Warm Teal, internal drafts only. - Warm Beige hairline below.
7.3 Footer (every page)
- Warm Beige hairline, then three columns, 8 pt Medium Grey:
- Left: date
YYYY-MM-DD - Centre:
GoThrive Digital · digital.gothrive.co.za - Right:
Page X of Y— required, always right-aligned
7.4 Content opening (page 2)
The first body page repeats the proposal title as an H1 block, followed by the grey document info block:
Prepared for: <Client> (<Contact name>)
Prepared by: GoThrive Digital
Date: <dd Mmm yyyy>
Version: <vNN>
Status: <optional — Draft / for review>
Then numbered sections (1. Introduction, 2. Your context, …).
7.5 Blocks
- Quote — a 3 pt Warm Beige left stroke, italic, Warm Teal.
- Code — Off-White fill, flat (no radius), IBM Plex Mono 9 pt.
- Table — Warm Beige hairlines only, no fill, cell text left-aligned and not justified.
8. Build recipe
The template and the tooling are in place and verified (2026-11-03):
- Template:
/opt/data/skills/pdf-generation/templates/gothrive.typ - Default logo:
/opt/data/docs/brand/logos/lockup-horizontal-master.svg - Default author:
GoThrive Digital md2pdf.py's default template is nowgothrive.typ;nostics.typis retained for reproducing historical documents only and must not be used for anything new.
# from markdown
python3 /opt/data/skills/pdf-generation/scripts/md2pdf.py <input.md> \
-o <output.pdf> -t "<Proposal title>" -s "Proposal for <Client> (<Contact>)" --no-confidential
# from a DocMost page (content source of truth)
python3 /opt/data/skills/pdf-generation/scripts/docmost-to-pdf.py <slugId> \
-t "<Proposal title>" -s "Proposal for <Client> (<Contact>)" --no-confidential
- Binaries:
/opt/data/.local/bin/{typst,pandoc}— pass explicit paths if PATH differs. - Compile the output into the proposal folder, e.g.
/opt/data/workspace/proposals/<Client>/. - Upload the final PDF to WebDAV
/gothrive/Clients/<Client>/Opportunities/<file>.pdf(URL-encode spaces/&/!); confirmContent-Lengthmatches after upload. --no-confidentialfor anything client-facing.- Only pass
--logofor a client logo — the GoThrive lockup is the default.
9. QA checklist (before handing over)
- Page 1 is the cover: GoThrive lockup present, title = proposal name, date +
digital.gothrive.co.za, footerPage 1 of N. - Every page ≥2 has the header
GoThrive Digital — <Proposal title>top-left. - Footer right on every page reads
Page X of N. - Document info block (Prepared for / by / Date / Version) is present and correct.
- Signature block matches §10 with clickable links.
- Appendix images (e.g. the 7P wheel) are fully visible — nothing cropped.
- No
Confidential — For Internal Use Onlyon client-facing output. - Render sanity check: no overlaps, tables not overflowing.
- Brand check, done on pixels not on vibes — render the PDF to PNG and probe the
palette. Any pure black
(0,0,0)or any retired Nostics colour is a defect:
typst compile --font-path /opt/data/docs/brand/fonts --format png <doc>.typ "page-{p}.png"
python3 - <<'PY'
from PIL import Image
from collections import Counter
im = Image.open("page-2.png").convert("RGB"); px = im.load()
c = Counter(p for y in range(0, im.size[1], 2) for x in range(0, im.size[0], 2)
if sum(px[x, y]) < 720 for p in [px[x, y]])
print("pure black:", c.get((0,0,0), 0), "| warm teal:", c.get((63,92,91), 0),
"| deep teal:", c.get((28,53,59), 0), "| warm beige:", c.get((207,202,190), 0))
PY
Expected: pure black 0; Warm Teal dominating body text; Deep Teal on headings; Warm Beige on the hairlines. This is not ceremony — it is how the retired-table-grid defect was found in the first place.
10. Signature block
Every proposal closes with this block. Hyperlinks are mandatory:
**Jéan Roux** — [GoThrive Digital](https://digital.gothrive.co.za)
[hello@gothrive.co.za](mailto:hello@gothrive.co.za) · 082 573 1880
[https://www.linkedin.com/in/jeanroux](https://www.linkedin.com/in/jeanroux)
Rules:
GoThrive Digitaltext is a hyperlink to https://digital.gothrive.co.za (the link sits on the words, not on a separate URL).hello@gothrive.co.zais amailto:link. It is the client-facing address; a personal address is internal only.- The LinkedIn URL is shown as its own line, and the URL text itself is clickable.
- In Typst markup, escape the at-sign in visible email text (
hello\@gothrive.co.za) or render via#link(...); in DocMost markdown use standardmailto:links.
11. Guardrails
- Plain business language. No internal file formats, no system internals, no techno jargon.
- No invented statistics. Every number needs a source.
- No unsourced regulatory or accreditation claims.
- Never reintroduce a retired brand element — the Nostics palette, Montserrat, the
G!monogram, thenostics.typtemplate, or thewww.nostics.biz/hello@nostics.bizstrings. Existing documents keep their hostnames until the domain retires; new ones usedigital.gothrive.co.za. - The entity is GoThriveCoach (Pty) Ltd, trading as GoThrive. "Nostics" was a trading style, never a legal entity.
12. Related
- Brand-Kit — the full brand system
- Brand-Kit (short) — the one-page version for quick content
- Positioning & Differentiation — the messaging a proposal draws on
- Pricing — commercial inputs
- Services Overview — what we can propose