From a3a3598919a48838ce27c375876fd15e3c4b0d8a Mon Sep 17 00:00:00 2001 From: Bruno Postle Date: Fri, 24 Jul 2026 21:01:08 +0100 Subject: [PATCH] Fix form-language template: vernacular strata, natural materials default Sheffield/Harbor House drafting exposed two gaps: the template let a historical stratum be anchored by a single celebrated/architect-authored building (Park Hill) instead of a genuine building culture, and let modern structural materials (reinforced concrete) into the vocabulary without requiring a structural-necessity justification. Tightens the HISTORICAL_STRATA placeholder guidance, the vocabulary/negative-constraint instructions, and the Appendix instruction to close both gaps. Co-Authored-By: Claude Sonnet 5 --- templates/form-language-prompt-template.md | 128 +++++++++++++-------- 1 file changed, 83 insertions(+), 45 deletions(-) diff --git a/templates/form-language-prompt-template.md b/templates/form-language-prompt-template.md index fe6ff8d..fafbd16 100644 --- a/templates/form-language-prompt-template.md +++ b/templates/form-language-prompt-template.md @@ -1,35 +1,46 @@ # Form-Language Prompt Template *A reusable prompt for generating a project-specific architectural -form-language grammar module, in the style pioneered for this project.* +form-language grammar module.* ## Provenance -This template generalizes the two-step prompting process Nikos Salingaros -used to produce `ref/Ecuadorian_Form_Language_Grammar.md` -(`docs/salingaros-form-language-prompt.md` — his initial and follow-up -prompts), collapsed into a single one-shot prompt with placeholders for -region, climate, site, and building typology. The required output shape -(§0–§11 + appendix below) mirrors the structure of that worked example, -which should be used as the calibration reference for filling this -template in and for judging any grammar it produces. +This template is self-contained — everything needed to run it is in the +"Placeholders" and "The prompt" sections below. This section and "Usage +notes" are background only, safe to skip. + +The template generalizes a two-step prompting process Nikos Salingaros +used to produce a form-language grammar for a National Museum of Ecuador +project (his initial exploratory prompt, then a follow-up narrowing +scope), collapsed here into a single one-shot prompt with placeholders for +region, climate, site, and building typology. That original worked +example and his raw two-step prompts are project-specific files from the +originating repository and aren't included with this template; §0–§11 + +appendix below is this template's own self-sufficient output shape, not +dependent on that example. The theoretical basis is Salingaros' *pattern language + form language = -adaptive design method* (`ref/Salingaros-Chapter-11-Two-Languages-for-Architecture.md`): -a pattern language alone cannot connect to built form without a +adaptive design method*, set out in Chapter 11, "Two Languages for +Architecture," of his book *A Theory of Architecture* (2006; revised +2014): a pattern language alone cannot connect to built form without a complementary form language of geometric/tectonic rules. This template -generates that second, complementary document. +generates that second, complementary document. It is meant to be paired +with a pattern-language module such as Christopher Alexander, Sara +Ishikawa, and Murray Silverstein's *A Pattern Language* (1977), from which +a project-specific subset of patterns is typically curated. ## What this produces A structured **grammar document**, not images and not a narrative — a module meant to be handed, alongside a pattern-language module, a project brief, and a spatial-chassis module, into a *later* prompt that asks an -LLM to write the experiential design narrative (see the paper's Section -4.2 approach, `ref/buildings-15-02400-v2.txt`). Color and ornament are -left as a menu of selectable registers/packages rather than a single fixed -choice, so that later narrative/image generation can sample distinct -combinations and a human can select among them. +LLM to write the experiential design narrative (see Section 4.2 of Postle, +B.; Salingaros, N.A. "LLM and Pattern Language Synthesis: A Hybrid Tool +for Human-Centered Architectural Design." *Buildings* 2025, 15, 2400). +Color and ornament are left as a menu of selectable registers/packages +rather than a single fixed choice, so that later narrative/image +generation can sample distinct combinations and a human can select among +them. ## Placeholders @@ -44,7 +55,7 @@ instruction at all. | `{WIDE_REGION}` | The broad cultural/geographic region to draw form vocabulary from — narrow enough that its history is genuinely coherent (so the strata actually relate to one another), broad enough to give real stylistic range; usually a country or a historically-linked macro-region, not a continent | Ecuador (and neighboring Latin America for the "neighbor techniques" package) | | `{FIXED_SITE}` | The specific city/site the climate script must be fixed to | Quito, Ecuadorian sierra | | `{CLIMATE_SEED_FACTS}` | Known climate facts to ground the research (latitude, altitude, temperature range, rainfall pattern, sun/UV character, seasonality or lack of it) — prevents hallucinated climate data | ≈0.2° S / ≈2,850 m; 9–22 °C year-round; ~1,000–1,250 mm/yr rain, two peaks; near-zenith sun, high UV; no seasons | -| `{HISTORICAL_STRATA}` | The historical/cultural strata to synthesize across, oldest to newest (or `(let the model propose)`). Not every region has an indigenous or pre-colonial stratum in the sense the Ecuador example does — for a region without one, list whatever historical building cultures it does have instead (e.g. vernacular farmhouse, Roman, medieval, renaissance, industrial-era) rather than forcing an indigenous/colonial framing onto it | indigenous wooden/conical-roof structures; pre-Columbian stone monumental; early colonial wood/earth; later colonial baroque | +| `{HISTORICAL_STRATA}` | The historical/cultural strata to synthesize across, oldest to newest (or `(let the model propose)`). Not every region has an indigenous or pre-colonial stratum in the sense the Ecuador example does — for a region without one, list whatever historical building cultures it does have instead (e.g. vernacular farmhouse, Roman, medieval, renaissance, industrial-era) rather than forcing an indigenous/colonial framing onto it. Each stratum must name a **building culture** — an ordinary construction tradition recurring across many buildings — not a single celebrated or architect-authored structure: a region's industrial-era stratum, for instance, usually means its ordinary workshop-houses, mill housing, and tenement factories, where industrial and residential use routinely overlapped in the same buildings, not one landmark 20th-century showpiece | indigenous wooden/conical-roof structures; pre-Columbian stone monumental; early colonial wood/earth; later colonial baroque | | `{SCALE_NOTES}` | Programmatic/scale notes that affect massing (approx. size, public vs. civic character, number of principal volumes) | ~25,000 m² minimum, high-visitation civic building | | `{DOWNSTREAM_MODULES}` | What other prompt modules this will be combined with later (fixed boilerplate unless the project's pipeline differs) | brief constraints, spatial chassis | @@ -74,6 +85,19 @@ building, site, or tradition you name as drawn from your training-data familiarity, not from verified research, and say so plainly rather than presenting recollection as verified fact. +**Default to natural, traditional materials.** The vocabulary (§3) should +default to natural, traditional materials — stone, brick, timber, earth, +tile — drawn from {WIDE_REGION}'s own building cultures. Modern +structural materials (reinforced concrete, steel) belong in the +vocabulary only where {TYPOLOGY} genuinely cannot achieve its required +spans, loads, or heights without them, not as an independent aesthetic +stratum or a source of decorative expression in their own right. Where +they are included, express them honestly as structure — an honestly +exposed frame, not concrete dressed up to imitate a natural material, and +not hidden behind an applied natural-material skin either — and justify +each such element in §3 by the specific structural need, not by +stylistic preference. + **Fix the climate and site, but not the vocabulary.** The building itself is fixed at {FIXED_SITE}: {CLIMATE_SEED_FACTS}. Derive from this a set of climate facts and the mandatory design responses they imply (roof form, @@ -143,7 +167,10 @@ of generated projects stays traceable and comparable. 3. **Form vocabulary (lexicon)** — elements grouped by tectonic family (ground/platform, wall, roof/sky, threshold/in-between, interior, or whatever families fit this typology), each tagged with its origin - stratum and region, each given a short reusable code. + stratum and region, each given a short reusable code. Each element + should be natural/traditional material by default; if any element + uses a modern structural material instead, tag it as such and state + the specific structural necessity that justifies it. 4. **Syntax — combination rules** — numbered, always-apply rules for how the vocabulary combines: stratification/ordering logic, relationship @@ -204,8 +231,11 @@ of generated projects stays traceable and comparable. without one; always forbid mixing two color registers in one project, more than one figurative ornament episode, evenly distributed ornament, literal uncredited copying of a named - historical building, and applying any motif flagged in §6 as - sacred/ceremonial without the noted consultation caveat). + historical building, applying any motif flagged in §6 as + sacred/ceremonial without the noted consultation caveat, and using a + modern structural material where §3 recorded no genuine structural + necessity for it, or disguising one material as another instead of + expressing it honestly). 11. **Glossary** — every non-English or specialist term used above, defined in one line, to be used verbatim (not paraphrased) by any @@ -215,10 +245,15 @@ of generated projects stays traceable and comparable. {HISTORICAL_STRATA}, list two or three named real buildings, sites, or artifact traditions from {WIDE_REGION} that anchor it, as reference points — not to be copied, but so a later reader can verify the grammar -is genuinely grounded in something real. For each one, note briefly -whether it's a well-documented example you're confident about or a -plausible-but-unverified recollection — don't present both with equal -certainty. +is genuinely grounded in something real. Each precedent should be +representative of that stratum's wider building culture, not the sole +reason the stratum exists — if a stratum can only be anchored by one +celebrated landmark with no supporting ordinary/vernacular examples, that +is a sign it isn't really a building culture (see the {HISTORICAL_STRATA} +placeholder note) and should be broadened, merged, or dropped rather than +listed as-is. For each precedent, note briefly whether it's a +well-documented example you're confident about or a plausible-but-unverified +recollection — don't present both with equal certainty. Scale notes for the project this grammar will serve: {SCALE_NOTES}. @@ -226,26 +261,29 @@ Scale notes for the project this grammar will serve: {SCALE_NOTES}. ## Usage notes -- The worked example this template generalizes - (`ref/Ecuadorian_Form_Language_Grammar.md`) is the calibration - reference for level of detail, tone, and coding conventions (its `E#` - element codes, `C#`/`G#`/`P#`/`O#` rule codes, `CR#`/`OP#` register/ - package codes). A generated grammar doesn't need identical codes, but - should be at a comparable level of precision and equally traceable. -- Salingaros' original process was two prompts — an open exploratory - first pass, then a follow-up narrowing scope (fix climate to the - specific site, keep vocabulary regional, drop a single color/ornament - choice in favor of a menu, and reframe the output as a prompt module - rather than an image request). This template front-loads that - narrowing into one prompt; if the first response still drifts (e.g. - proposes a single color and ornament choice, or narrows vocabulary to - only the immediate site), send a follow-up correcting just that point - rather than re-running the whole prompt. -- Check the output for fidelity the same way pattern-language narratives - are checked (see CLAUDE.md's "Method" step 3): any climate rule, - vocabulary element, or precedent that isn't grounded in something real - for {WIDE_REGION}/{FIXED_SITE} is a hallucination to catch and - regenerate away. +- Aim for a comparable level of precision and traceability throughout: a + short, consistent code per element/rule/register/package (e.g. a + letter-plus-number scheme such as `G1`, `G2` for ground-family + elements, `W1`, `W2` for wall elements, `R#` for roof, `CR#` for color + registers, `OP#` for ornament packages — the exact letters don't + matter, only that every reusable item gets one and later prompts can + cite it unambiguously). Every rule and vocabulary element should be + traceable to a named stratum/tradition within {WIDE_REGION}, not + presented as free invention. +- The two-step process this template collapses into one shot was: an + open exploratory first pass, then a follow-up narrowing scope (fix + climate to the specific site, keep vocabulary regional, drop a single + color/ornament choice in favor of a menu, and reframe the output as a + prompt module rather than an image request). This template + front-loads that narrowing into one prompt; if the first response + still drifts (e.g. proposes a single color and ornament choice, or + narrows vocabulary to only the immediate site), send a follow-up + correcting just that point rather than re-running the whole prompt. +- Check the output for fidelity: any climate rule, vocabulary element, or + precedent that isn't grounded in something real for + {WIDE_REGION}/{FIXED_SITE} is a hallucination to catch and regenerate + away, the same way a pattern-language narrative generated downstream + should be checked against its selected pattern subset. - Salingaros described his original prompt as asking the LLM to "locate open-source images of traditional buildings" and synthesize from them. It's unclear whether that literally happened, as opposed to the model