# Pattern: plain-code

## Concept

Most functions legitimately carry no pattern. Plain-code is the
explicit, recordable no-pattern answer on the flow-shape question —
the de-escalation pass's terminal — so a no-fit classification never
defaults to a forced pattern.

Plain-code is the *answer*, not a pattern: a shape that forecloses
nothing is not a pattern, so this file deliberately carries **no
Shape and no Forecloses section**. Recording `plain-code` says "this
subject was examined against the flow-shape candidates and none of
their freedoms are used — and that is the settled, honest answer",
which is categorically different from an absent or blank field
(never examined / not yet settled).

## When to choose

Choose plain-code when the de-escalation pass (design-phase prompt
§Bidirectional check) reaches the bottom of the ladder:

- The function is a straightforward computation, glue, or adapter
  whose control flow is fully expressed by ordinary sequencing —
  no step container, no two-rail typing, no context threading, no
  derived-value graph.
- None of the flow-shape candidates' *foreclosures* buy anything:
  the function forecloses nothing a pattern would guard.
- A pattern was considered and its freedoms are unused — forcing
  the nearest pattern (railway-by-resemblance because the function
  happens to return an error, pipeline-by-resemblance because two
  helpers are called in sequence) is the exact failure mode this
  candidate exists to prevent.

Plain-code answers only the **flow-shape** question. The
**representation** question is independent and co-applicable: a
plain-code function may still legitimately declare
`effects-as-data` or `schema-as-data`.

## Applicability

Universal — the catalog entry carries **no applicability marker**
(absent = no opinion → applies to every render target). Plain-code
is recordable for `python`, `go`, `ada`, `typescript`, and any
future target.

## Probes

None, by design. There is no mechanical probe set because there is
no invariant to check — `code_design_drift_gap` registers no probes
for `plain-code` and manufactures no findings. A `verified`
plain-code block is still subject to the
`commit.pattern_probes_present` shape-guard convention: the guard
test asserts the subject *stays* plain (no hidden effect chain or
rail typing creeping in), which is a statement about the code, not
about this entry.

## Render: TypeScript

No render shape by definition — plain-code has no Shape to render.
Recordable everywhere; nothing to emit, nothing to probe.
