3.2
Site anatomy
ProposedWhat must every AKRIBIS site have, what may it change, and what is its own?
Specification
- Every AKRIBIS site is built in four layers. Group: identical everywhere, from Brand as is, the site's brand its only setting (the endorsement, the group bar, the group footer block with the unit directory, the AKRIBIS One module, the legal line, the marks, the tokens). Shared: one component, one source, configured by the site with its brand, its language and its content (header, language switch, skip link, contact form, 404, consent). Expression: what a site sets through settings and never through code (its brand file, its imagery, which units it features first, its tone). Own: its content and the pages only it has.
- Three kinds of site: the nine units, the parent (akribis.group) and AKRIBIS One (akribis.one); the anatomy says which patterns each kind carries, and anatomy.json publishes it.
- What every site carries, verified on every build through the data-pattern marker every shared component renders: on every page the skip link, the header with the site's mark, the language switch, the group footer block with the unit directory and the legal line; on every page of a unit's site, the group bar with the endorsement as well; on a unit's home, the AKRIBIS One module; a 404 page; and, where there is a form, the shared one.
- Pages every site has, in each language and with translated slugs: home, contact, thank-you (after the form), privacy, legal notice and terms, and 404. Today one site of five has legal pages and a 404.
- A site may change: its brand file (/tokens/<brand>.css, the only colour setting), its imagery within Imagery (2.7), which units the AKRIBIS One module and the directory feature first, and its own pages with their navigation.
- A site never has: tokens, fonts or logo files of its own; another wording of the endorsement; a unit list or order of its own; a contact form of its own. The register (units.json) is the one list: today five sites keep five lists that disagree (eight or nine units, two sets of verbs).
- The texts of the shared patterns (the endorsement, the legal line, the form's labels) are Brand's data in the three languages; the text of the legal pages is the company's, published by Brand as data once Voice (1.5) and legal review decide it. A site translates and edits none of it: it shows it.
- The shared pages have their slug per language in the anatomy (ADR-0032): contacto/contact/contato, gracias/thank-you/obrigado, privacidad/privacy/privacidade, aviso-legal/legal-notice/aviso-legal; the 404 is one file at the root. The checker verifies that each exists in every language (the pages rule). The starter of @akribis/site brings them ready-made (ADR-0031).
To re-reason
- The kinds: whether akribis.one carries a group bar (today not: it is the endorser, not the endorsed).
- Which own pages share a template (product, service, case, article) and where that template lives.
- The PIM (Wagtail) as the source of products: how it enters the own layer without touching the shared ones.
Evidence to audit
- brand/anatomy.yaml · brand/src/check-site.ts (requiredFor) · brand/test/site.test.ts
- Audit of the five real sites (2026-10-05): 4 endorsement implementations with 3 wordings; 4 footer variants, none listing the units; 6 unit directories over 5 data sources (8 or 9 units, two verb sets); legal pages and a 404 on one site only; no consent on any
- Page inventories: akribis_info 244 page files, akiot_es 27, akleia_info 27, solfarma_com 29, akribis_one 5; 4 internal design-system pages (/design-system, /ds ×2, /branding)
- Websites/*/wrangler.jsonc, wrangler.toml: twelve Workers, one SSR (akribis_info), six placeholders
- CMS/PIM-de-Akribis (Wagtail): a product information manager no site reads yet
Delivers
- The anatomy as data (anatomy.json)
- the pattern list per kind of site the checker runs
- and the page list.
Depends on
Decision
- ADR-0023 Build every site in four layers and verify what each must carry Proposed
- ADR-0031 Deliver the shared layer of every site as one Astro package with a starter, and check each build inside it Proposed
- ADR-0032 Name the shared pages in each language and check the spellings on every build Proposed
Figures
Group
Identical on every site: it comes from Brand as is, the site's brand its only setting. It says the site belongs to AKRIBIS and what the group is made of.
group-barGroup barendorsementEndorsement "Una unidad de AKRIBIS One"group-footerGroup footer blockunit-directoryUnit directoryone-moduleAKRIBIS One modulelegal-lineLegal line
Shared
One component, one source: built once in Brand and configured by the site with its brand, its language and its content.
skip-linkSkip linksite-headerHeader with the site's marksite-navDeep navigation with panelslanguage-switchLanguage switchtheme-toggleLight or dark theme toggleutility-barUtility barattributionPartner content attributionsite-footerFive-column site footersite-searchSite searchcontact-formContact formnot-found404 pageconsentConsent (only when a script needs it)whatsapp-linkFloating WhatsApp link
Expression
What a site sets through settings and never through code: its brand file (the colour), its imagery, which units it features first, its tone within the voice.
Own
The site's content and the pages only it has: products, services, cases, articles. Built with the tokens and the patterns; the unit owns them.
Pages every site has
homeHomecontactContactthanksThank you (after the form)privacyPrivacylegalLegal notice and termsnot-foundPage not found
What a site may change
- Its brand file (/tokens/<brand>.css): the only colour setting.
- Its imagery, within Imagery (2.7).
- Which units the AKRIBIS One module and the directory feature first; never which exist.
- Its own pages and navigation.
What it never does
- Tokens, fonts or logo files of its own.
- Another wording of the endorsement, another unit list, another order.
- A contact form of its own.