# configuration/strings/page.strings.ts

> 135 lines of code and 51 definitions.

Tree: Site tree
Language: typescript
Layer: product
Canonical: https://banes-lab.com/anatomy/tree#file-configuration-strings-page-strings-ts
Source text: https://banes-lab.com/assets/sources/source.621c20bc2c7f6ae1b804b64e6d3ce0d26e20b3eb641c9ef84d9e3b7395b9d3d3.generated.txt

## Definitions

- `SITE_NAME` (lexical_declaration, line 24, exported)
- `SITE_TAGLINE` (lexical_declaration, line 26, exported)
- `TITLE_SEPARATOR` (lexical_declaration, line 28, exported)
- `HOME_TITLE` (lexical_declaration, line 30, exported)
- `HOME_DESCRIPTION` (lexical_declaration, line 32, exported)
- `GRAMMAR_TITLE` (lexical_declaration, line 35, exported)
- `GRAMMAR_DESCRIPTION` (lexical_declaration, line 37, exported)
- `METHODOLOGY_TITLE` (lexical_declaration, line 40, exported)
- `METHODOLOGY_DESCRIPTION` (lexical_declaration, line 42, exported)
- `ARCHITECTURE_TITLE` (lexical_declaration, line 45, exported)
- `ARCHITECTURE_DESCRIPTION` (lexical_declaration, line 47, exported)
- `ONTOLOGY_TITLE` (lexical_declaration, line 50, exported)
- `ONTOLOGY_DESCRIPTION` (lexical_declaration, line 52, exported)
- `ANATOMY_TITLE` (lexical_declaration, line 55, exported)
- `ANATOMY_DESCRIPTION` (lexical_declaration, line 57, exported)
- `FAQ_TITLE` (lexical_declaration, line 60, exported)
- `FAQ_DESCRIPTION` (lexical_declaration, line 62, exported)
- `LICENSE_TITLE` (lexical_declaration, line 65, exported)
- `LICENSE_DESCRIPTION` (lexical_declaration, line 67, exported)
- `INFORMATION_TITLE` (lexical_declaration, line 70, exported)
- `INFORMATION_DESCRIPTION` (lexical_declaration, line 72, exported)
- `TERMS_TITLE` (lexical_declaration, line 75, exported)
- `TERMS_DESCRIPTION` (lexical_declaration, line 77, exported)
- `PRIVACY_TITLE` (lexical_declaration, line 80, exported)
- `PRIVACY_DESCRIPTION` (lexical_declaration, line 82, exported)
- `SEARCH_TITLE` (lexical_declaration, line 85, exported)
- `SEARCH_DESCRIPTION` (lexical_declaration, line 87, exported)
- `HOME_SHARE` (lexical_declaration, line 90, exported)
- `GRAMMAR_SHARE` (lexical_declaration, line 92, exported)
- `METHODOLOGY_SHARE` (lexical_declaration, line 97, exported)
- `ARCHITECTURE_SHARE` (lexical_declaration, line 102, exported)
- `ONTOLOGY_SHARE` (lexical_declaration, line 107, exported)
- `ANATOMY_SHARE` (lexical_declaration, line 109, exported)
- `FAQ_SHARE` (lexical_declaration, line 111, exported)
- `LICENSE_SHARE` (lexical_declaration, line 113, exported)
- `INFORMATION_SHARE` (lexical_declaration, line 118, exported)
- `TERMS_SHARE` (lexical_declaration, line 123, exported)
- `PRIVACY_SHARE` (lexical_declaration, line 128, exported)
- `SEARCH_SHARE` (lexical_declaration, line 133, exported)
- `MISSING_PAGE_TITLE` (lexical_declaration, line 135, exported)
- `MISSING_PAGE_MESSAGE` (lexical_declaration, line 137, exported)
- `MISSING_PAGE_LINK` (lexical_declaration, line 139, exported)
- `MODEL_CLOSING` (lexical_declaration, line 141, exported)
- `USE_CLOSING` (lexical_declaration, line 149, exported)
- `CONTACT_CLOSING` (lexical_declaration, line 155, exported)
- `CLOSING_SEPARATOR` (lexical_declaration, line 162, exported)
- `LINK_SEPARATOR` (lexical_declaration, line 164, exported)
- `DOCUMENTATION_COVERED_BY` (lexical_declaration, line 166)
- `LICENSE_NAME` (lexical_declaration, line 168)
- `CREATIVE_COMMONS_LICENSE` (lexical_declaration, line 170, exported)
- `GRAMMAR_LICENSE` (lexical_declaration, line 181, exported)

## Source

```typescript
import {
    CATALOG_MARKDOWN_ROUTE,
    CATALOG_ROUTE,
    CREATIVE_COMMONS,
    FULL_TEXT_ROUTE,
    LLMS_ROUTE,
    pagePath,
} from "#assets/link.assets";
import { CLOSING_MODEL_ICON, LICENSE_ICON } from "#configuration/icons/page.icons";
import {
    COMPANY_ADDRESS,
    COMPANY_COUNTRY,
    COMPANY_NAME,
    COMPANY_NUMBER,
    COMPANY_OWNER,
} from "#configuration/strings/company.strings";
import type { Closing, License } from "#types/site.types";
import { LICENSE_BY, LICENSE_CC, LICENSE_SA } from "#assets/image.assets";
import { HOME_THESIS } from "#configuration/strings/home.strings";
import { LICENSE_PAGE } from "#core/ids/page.ids";
import { MAIL_ICON } from "#configuration/icons/element.icons";
import type { PageShare } from "#types/card.types";

export const SITE_NAME = "Bane's Lab";

export const SITE_TAGLINE = HOME_THESIS;

export const TITLE_SEPARATOR = " — ";

export const HOME_TITLE = "Home";

export const HOME_DESCRIPTION =
    "Bane's Lab documents a method for building software with LLMs, together with the instruction format (Pattern Abstract Grammar), the software architecture and the ontology the method relies on.";

export const GRAMMAR_TITLE = "PAG";

export const GRAMMAR_DESCRIPTION =
    "Pattern Abstract Grammar (PAG) is a structured format for writing instructions to LLMs, defined by a formal grammar that is grounded in a reasoning ontology and published with a guide and a set of templates.";

export const METHODOLOGY_TITLE = "Methodology";

export const METHODOLOGY_DESCRIPTION =
    "Disciplined Methodology is a method for building software with LLMs: one loop at every size, rules held by checks rather than attention, state derived rather than written, and evidence in place of claims.";

export const ARCHITECTURE_TITLE = "Architecture";

export const ARCHITECTURE_DESCRIPTION =
    "The architecture page covers software architecture for code that an LLM writes. It models a system as a graph, types and relates its principles, traces each anti-pattern as a path of decay, derives coverage from a grid, and states every architectural intent as a condition a check can decide.";

export const ONTOLOGY_TITLE = "Ontology";

export const ONTOLOGY_DESCRIPTION =
    "The ontology holds every architectural principle with its relations and repairs, the lexicon of terms, the algorithm contracts, the reasoning spine, the layers and the resolved tensions, and the page renders it from the same data the quality tooling reads.";

export const ANATOMY_TITLE = "Anatomy";

export const ANATOMY_DESCRIPTION =
    "The anatomy page publishes the client source of this site as it is on disk, parsed on every build, with every folder and file, its statistics, its syntax tree, its definitions and their calls, and the problems the parser found.";

export const FAQ_TITLE = "FAQ";

export const FAQ_DESCRIPTION =
    "I answer the questions I am asked most often about the methodology, including where it came from, how I practise it and where it stops being useful.";

export const LICENSE_TITLE = "Licensing";

export const LICENSE_DESCRIPTION =
    "Pattern Abstract Grammar (PAG) is available under a dual-license model: a free non-commercial license and a commercial license for businesses.";

export const INFORMATION_TITLE = "Info";

export const INFORMATION_DESCRIPTION =
    "Security information for Bane's Lab: how the static site is delivered, which protections are in place, and what your visit does and does not exchange with the server.";

export const TERMS_TITLE = "Terms";

export const TERMS_DESCRIPTION =
    "Terms of Service for Bane's Lab, a static informational site that requires no account, collects no personal data and offers no paid services.";

export const PRIVACY_TITLE = "Privacy";

export const PRIVACY_DESCRIPTION =
    "Privacy Policy for Bane's Lab: the site collects, stores and processes no personal data; this policy describes what a normal visit exchanges with the server.";

export const SEARCH_TITLE = "Search";

export const SEARCH_DESCRIPTION =
    "Search every page of Bane's Lab at once. The results come back in the order the site teaches them, each shown the way its own page shows it.";

export const HOME_SHARE: PageShare = { headline: SITE_NAME, tagline: HOME_THESIS };

export const GRAMMAR_SHARE: PageShare = {
    headline: "Pattern Abstract Grammar",
    tagline: "Structured instructions for LLMs",
};

export const METHODOLOGY_SHARE: PageShare = {
    headline: "Disciplined Methodology",
    tagline: "Constraints, checks and skepticism for building software with LLMs",
};

export const ARCHITECTURE_SHARE: PageShare = {
    headline: "Software Architecture",
    tagline: "Principles, decay and coverage",
};

export const ONTOLOGY_SHARE: PageShare = { headline: "The Ontology", tagline: "Principles, lexicon and algorithms" };

export const ANATOMY_SHARE: PageShare = { headline: "The Anatomy", tagline: "Source trees, walks and definitions" };

export const FAQ_SHARE: PageShare = { headline: "Frequently Asked Questions", tagline: "Origin, practice and limits" };

export const LICENSE_SHARE: PageShare = {
    headline: LICENSE_TITLE,
    tagline: "Free for non-commercial use, licensed for commercial use",
};

export const INFORMATION_SHARE: PageShare = {
    headline: "Security Information",
    tagline: "Infrastructure, application security and TLS",
};

export const TERMS_SHARE: PageShare = {
    headline: "Terms of Service",
    tagline: "Acceptable use, ownership and liability",
};

export const PRIVACY_SHARE: PageShare = {
    headline: "Privacy Policy",
    tagline: "Collection, server logs and your rights",
};

export const SEARCH_SHARE: PageShare = { headline: SEARCH_TITLE, tagline: "Pages, sections and code definitions" };

export const MISSING_PAGE_TITLE = "Page Not Found";

export const MISSING_PAGE_MESSAGE = "The requested page could not be loaded.";

export const MISSING_PAGE_LINK = "Back to the home page";

export const MODEL_CLOSING: Closing = {
    icon: CLOSING_MODEL_ICON,
    linked: true,
    note: "Each page is also published as Markdown and as JSON, and you can query them via the API routes.",
    terms: [CATALOG_ROUTE, CATALOG_MARKDOWN_ROUTE, LLMS_ROUTE, FULL_TEXT_ROUTE],
    title: "For LLMs",
};

export const USE_CLOSING: Closing = {
    icon: LICENSE_ICON,
    terms: [`Model training is permitted; credit ${COMPANY_OWNER} and cite this site.`],
    title: "Use and attribution",
};

export const CONTACT_CLOSING: Closing = {
    icon: MAIL_ICON,
    stacked: true,
    terms: [COMPANY_OWNER, COMPANY_ADDRESS, COMPANY_COUNTRY + COMPANY_NUMBER],
    title: "Contact",
};

export const CLOSING_SEPARATOR = " · ";

export const LINK_SEPARATOR = " - ";

const DOCUMENTATION_COVERED_BY = `${COMPANY_NAME} documentation is covered by `;

const LICENSE_NAME = "CC BY-SA 4.0";

export const CREATIVE_COMMONS_LICENSE: License = {
    badges: [
        { alt: "CC", source: LICENSE_CC },
        { alt: "BY", source: LICENSE_BY },
        { alt: "SA", source: LICENSE_SA },
    ],
    href: CREATIVE_COMMONS,
    lead: DOCUMENTATION_COVERED_BY,
    name: LICENSE_NAME,
};

export const GRAMMAR_LICENSE: License = {
    badges: [],
    href: pagePath(LICENSE_PAGE),
    lead: "Pattern Abstract Grammar and its documentation are covered by the ",
    name: "PAG dual license",
};
```
