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 <noreply@anthropic.com>
This commit is contained in:
Bruno Postle 2026-07-24 21:01:08 +01:00
parent b259252cea
commit a3a3598919

View file

@ -1,35 +1,46 @@
# Form-Language Prompt Template # Form-Language Prompt Template
*A reusable prompt for generating a project-specific architectural *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 ## Provenance
This template generalizes the two-step prompting process Nikos Salingaros This template is self-contained — everything needed to run it is in the
used to produce `ref/Ecuadorian_Form_Language_Grammar.md` "Placeholders" and "The prompt" sections below. This section and "Usage
(`docs/salingaros-form-language-prompt.md` — his initial and follow-up notes" are background only, safe to skip.
prompts), collapsed into a single one-shot prompt with placeholders for
region, climate, site, and building typology. The required output shape The template generalizes a two-step prompting process Nikos Salingaros
(§0§11 + appendix below) mirrors the structure of that worked example, used to produce a form-language grammar for a National Museum of Ecuador
which should be used as the calibration reference for filling this project (his initial exploratory prompt, then a follow-up narrowing
template in and for judging any grammar it produces. 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 = The theoretical basis is Salingaros' *pattern language + form language =
adaptive design method* (`ref/Salingaros-Chapter-11-Two-Languages-for-Architecture.md`): adaptive design method*, set out in Chapter 11, "Two Languages for
a pattern language alone cannot connect to built form without a 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 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 ## What this produces
A structured **grammar document**, not images and not a narrative — a A structured **grammar document**, not images and not a narrative — a
module meant to be handed, alongside a pattern-language module, a project 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 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 LLM to write the experiential design narrative (see Section 4.2 of Postle,
4.2 approach, `ref/buildings-15-02400-v2.txt`). Color and ornament are B.; Salingaros, N.A. "LLM and Pattern Language Synthesis: A Hybrid Tool
left as a menu of selectable registers/packages rather than a single fixed for Human-Centered Architectural Design." *Buildings* 2025, 15, 2400).
choice, so that later narrative/image generation can sample distinct Color and ornament are left as a menu of selectable registers/packages
combinations and a human can select among them. rather than a single fixed choice, so that later narrative/image
generation can sample distinct combinations and a human can select among
them.
## Placeholders ## 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) | | `{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 | | `{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; 922 °C year-round; ~1,0001,250 mm/yr rain, two peaks; near-zenith sun, high UV; no seasons | | `{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; 922 °C year-round; ~1,0001,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 | | `{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 | | `{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 familiarity, not from verified research, and say so plainly rather than
presenting recollection as verified fact. 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 **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 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, 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 3. **Form vocabulary (lexicon)** — elements grouped by tectonic family
(ground/platform, wall, roof/sky, threshold/in-between, interior, or (ground/platform, wall, roof/sky, threshold/in-between, interior, or
whatever families fit this typology), each tagged with its origin 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 4. **Syntax — combination rules** — numbered, always-apply rules for how
the vocabulary combines: stratification/ordering logic, relationship 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 without one; always forbid mixing two color registers in one
project, more than one figurative ornament episode, evenly project, more than one figurative ornament episode, evenly
distributed ornament, literal uncredited copying of a named distributed ornament, literal uncredited copying of a named
historical building, and applying any motif flagged in §6 as historical building, applying any motif flagged in §6 as
sacred/ceremonial without the noted consultation caveat). 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, 11. **Glossary** — every non-English or specialist term used above,
defined in one line, to be used verbatim (not paraphrased) by any 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 {HISTORICAL_STRATA}, list two or three named real buildings, sites, or
artifact traditions from {WIDE_REGION} that anchor it, as reference artifact traditions from {WIDE_REGION} that anchor it, as reference
points — not to be copied, but so a later reader can verify the grammar 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 is genuinely grounded in something real. Each precedent should be
whether it's a well-documented example you're confident about or a representative of that stratum's wider building culture, not the sole
plausible-but-unverified recollection — don't present both with equal reason the stratum exists — if a stratum can only be anchored by one
certainty. 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}. 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 ## Usage notes
- The worked example this template generalizes - Aim for a comparable level of precision and traceability throughout: a
(`ref/Ecuadorian_Form_Language_Grammar.md`) is the calibration short, consistent code per element/rule/register/package (e.g. a
reference for level of detail, tone, and coding conventions (its `E#` letter-plus-number scheme such as `G1`, `G2` for ground-family
element codes, `C#`/`G#`/`P#`/`O#` rule codes, `CR#`/`OP#` register/ elements, `W1`, `W2` for wall elements, `R#` for roof, `CR#` for color
package codes). A generated grammar doesn't need identical codes, but registers, `OP#` for ornament packages — the exact letters don't
should be at a comparable level of precision and equally traceable. matter, only that every reusable item gets one and later prompts can
- Salingaros' original process was two prompts — an open exploratory cite it unambiguously). Every rule and vocabulary element should be
first pass, then a follow-up narrowing scope (fix climate to the traceable to a named stratum/tradition within {WIDE_REGION}, not
specific site, keep vocabulary regional, drop a single color/ornament presented as free invention.
choice in favor of a menu, and reframe the output as a prompt module - The two-step process this template collapses into one shot was: an
rather than an image request). This template front-loads that open exploratory first pass, then a follow-up narrowing scope (fix
narrowing into one prompt; if the first response still drifts (e.g. climate to the specific site, keep vocabulary regional, drop a single
proposes a single color and ornament choice, or narrows vocabulary to color/ornament choice in favor of a menu, and reframe the output as a
only the immediate site), send a follow-up correcting just that point prompt module rather than an image request). This template
rather than re-running the whole prompt. front-loads that narrowing into one prompt; if the first response
- Check the output for fidelity the same way pattern-language narratives still drifts (e.g. proposes a single color and ornament choice, or
are checked (see CLAUDE.md's "Method" step 3): any climate rule, narrows vocabulary to only the immediate site), send a follow-up
vocabulary element, or precedent that isn't grounded in something real correcting just that point rather than re-running the whole prompt.
for {WIDE_REGION}/{FIXED_SITE} is a hallucination to catch and - Check the output for fidelity: any climate rule, vocabulary element, or
regenerate away. 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 - Salingaros described his original prompt as asking the LLM to "locate
open-source images of traditional buildings" and synthesize from them. open-source images of traditional buildings" and synthesize from them.
It's unclear whether that literally happened, as opposed to the model It's unclear whether that literally happened, as opposed to the model