docs(m3): settle deterministic title and Call 2 design

Encode the recovered per-leaf title/short-description rule and the Call 2
input set into the point of record.

- REQUIREMENTS.md: METADATA-55 now produces the description only; METADATA-60
  carries the ruled input set; METADATA-80 is the deterministic title; new
  METADATA-81 is the deterministic spec-line short description; METADATA-85
  selects the patterns; REVIEW-15 declares the primary before Call 2;
  PUBLISH-55 carries an explicit name+SKU slug.
- CONTENT-WOO.md: per-leaf title and short-description catalog, slot order,
  dimension placement, and the Cook Woods provenance.
- PROMPTS.md: Call 2 inputs and output; the deterministic patterns are cited,
  not restated.
- CREATE.md, WOO-API.md, MILESTONES.md, task_breakdown.md updated to match.

Modeled on Cook Woods product-title form; the seven per-leaf prose templates
and Specialty cuts are parked in the M3 breakdown.
This commit is contained in:
2026-09-19 11:36:03 -07:00
parent 1dfff0b7c9
commit 120e0be871
7 changed files with 119 additions and 63 deletions
+13 -11
View File
@@ -15,7 +15,7 @@ lives in `docs/contracts/` (`API.md`, `WOO-API.md`, `DATA-MODEL.md`, `PROMPTS.md
| METADATA-5, METADATA-10, METADATA-15, METADATA-20, METADATA-25, METADATA-30 | synced taxonomy, cardinality, no term creation |
| METADATA-35, METADATA-40, METADATA-45, METADATA-50 | Call 1 inputs, results, confidence gate, precedence |
| METADATA-55, METADATA-60, METADATA-65, METADATA-66 | Call 2, context, dimension safety, logging |
| METADATA-70, METADATA-75, METADATA-80, METADATA-85, METADATA-90, METADATA-95 | template fallback, non-blocking, prompt selection, fact block |
| METADATA-70, METADATA-75, METADATA-80, METADATA-81, METADATA-85, METADATA-90, METADATA-95 | deterministic copy, non-blocking, pattern selection, fact block |
| METADATA-100, METADATA-105, METADATA-110, METADATA-115 | feat mapping, prompt storage, Generate text control, failure triage |
| PUBLISH-5, PUBLISH-10, PUBLISH-15, PUBLISH-20 | create sequence, draft rule, duplicate, stale |
| PUBLISH-25, PUBLISH-30, PUBLISH-31, PUBLISH-35, PUBLISH-36, PUBLISH-37, PUBLISH-38 | success, failure, partial failure, triage |
@@ -51,17 +51,19 @@ or above the threshold (default 0.7) a field pre-fills and stays editable; below
stays empty (`METADATA-45`). Typed values always win (`METADATA-50`). Free-text observations map
to synced `feat-*` tags only (`METADATA-100`).
Call 2 is user-triggered only and produces name, short_description, and description
(`METADATA-55`). It is a fresh request carrying the full Call 1 context and the literal dimension
fact block; the model never invents a dimension (`METADATA-60`, `METADATA-65`, `METADATA-90`).
The Generate text control appears only when content generation is enabled and the endpoint is
reachable (`METADATA-110`). All generation is logged (`METADATA-66`).
Call 2 is user-triggered only and produces the product description (`METADATA-55`). It receives the
processed photos, the review-confirmed metadata, the primary and secondary wood categories, the
parent-category path, the dimension fact block, and brand/geo context; the model never invents a
dimension (`METADATA-60`, `METADATA-65`, `METADATA-90`). The Generate text control appears only
when content generation is enabled and the endpoint is reachable (`METADATA-110`). All generation
is logged (`METADATA-66`).
With inference off, deterministic templates produce the prose so create never lacks it
(`METADATA-70`); the fallback title uses the primary figure term with a hyphen separator
(`METADATA-80`). Prompts live in the database with all revisions (`METADATA-105`). Inference never
blocks create and never auto-publishes (`METADATA-75`); a runtime failure offers Retry when
recoverable or explains when it is not (`METADATA-115`).
With inference off, the server assembles the name and short description and produces the
description (`METADATA-70`). The name and short description are assembled from the primary wood
category's patterns (`METADATA-80`, `METADATA-81`, `METADATA-85`). Prompts live in the database with
all revisions (`METADATA-105`). Inference never blocks create and never auto-publishes
(`METADATA-75`); a runtime failure offers Retry when recoverable or explains when it is not
(`METADATA-115`).
## 3. Settings prerequisite