P2 (2/2): five more lines without "design note" as a person, in the UPG-100 data scripts
clusters.json (one decision_pending value; the field is not in the built tree), retag-adm1.mjs (a comment and a console message), search-index.js and uncovered-proof.mjs (comments) state the reason without a persona. derive-city-candidates.mjs's safety_note no longer repeats "separate".
This commit is contained in:
parent
8b83c34a79
commit
b3daa34ab1
5 changed files with 6 additions and 6 deletions
|
|
@ -122,7 +122,7 @@ const stats = {
|
|||
internet_researched: clusters.filter((c) => c.internet_access !== 'unknown').length,
|
||||
generated: '2026-08-01',
|
||||
scope_note: 'Scope is the full 2,106-record DX people-group corpus. No separate "2000 list" artefact exists on disk — verified by search — so this corpus IS the scope.',
|
||||
safety_note: 'Contains NO gospel-resource, church or believer field, and must not gain one. That join is held pending a separate architecture (separate store, never joined to UPG locations in a public artifact).',
|
||||
safety_note: 'Contains NO gospel-resource, church or believer field, and must not gain one. That join is held pending its own architecture (separate store, never joined to UPG locations in a public artifact).',
|
||||
};
|
||||
|
||||
if (!existsSync(OUT)) mkdirSync(OUT, { recursive: true });
|
||||
|
|
|
|||
|
|
@ -1626,7 +1626,7 @@
|
|||
"uncovered_scatter": {
|
||||
"n_a_region_total": 19,
|
||||
"null_region_total": 3,
|
||||
"decision_pending": "fold into nearest geographic neighbour OR create a 'Diaspora and Micro-territories' list. design note decides."
|
||||
"decision_pending": "fold into nearest geographic neighbour OR create a 'Diaspora and Micro-territories' list. The product decision is open."
|
||||
},
|
||||
"asia_solved_validation": "2026-06-06 — pg_slugs predicate exact-count for all 12 Asia lists against live 2106-row source; 0 cross-country leaks",
|
||||
"uncovered_lists": [
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@
|
|||
// So we re-tag `listId` and nothing else.
|
||||
//
|
||||
// R-D2: a feature whose shapeName matches NO cluster must be 0. If any appear we
|
||||
// LOG loudly, LEAVE the old tag (do not drop), and flag for the design note — never
|
||||
// LOG loudly, LEAVE the old tag (do not drop), and flag for a product decision — never
|
||||
// silently mis-tag.
|
||||
// R-D3: stable canonical writer — match the existing on-disk style EXACTLY
|
||||
// (single-line minified JSON, no trailing newline) so the diff is the listId
|
||||
|
|
@ -95,7 +95,7 @@ function report(r) {
|
|||
}
|
||||
}
|
||||
if (r.unmatched.length) {
|
||||
console.log(` *** UNMATCHED (R-D2: should be 0 — LEFT old tag, FLAGGED for design note) ***`);
|
||||
console.log(` *** UNMATCHED (R-D2: should be 0 — LEFT old tag, FLAGGED for review) ***`);
|
||||
for (const u of r.unmatched) {
|
||||
console.log(` !!! ${u.shapeName.padEnd(42)} kept old listId=${u.keptOld}`);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -111,7 +111,7 @@ export function buildSearchIndex(opts = {}) {
|
|||
// ── (3b) Territories — ADM0 countries (by ISO3 → display name) ──────────────
|
||||
// The tapestry ADM0 features carry ONLY props.iso3, so target.shapeName holds
|
||||
// the ISO3 and the fly-to predicate matches f.properties.iso3. The LABEL is the
|
||||
// human name (live countryNameMap preferred, ISO3_NAME fallback) so a design note
|
||||
// human name (live countryNameMap preferred, ISO3_NAME fallback) so a reader
|
||||
// typing "Nepal" finds NPL. De-dup: a name already covered as an ADM1 admin
|
||||
// (none collide today, but guard anyway) isn't re-added.
|
||||
const nameMap = countryNameMap || iso3Names;
|
||||
|
|
|
|||
|
|
@ -53,7 +53,7 @@ const PLAIN_CACHE = '/tmp/upg-live-records.json';
|
|||
// Swap-back baseline: dropping `uncovered_lists` and re-serialising must reproduce
|
||||
// the rest of clusters.json byte-for-byte — proving the 7 uncovered zones are the
|
||||
// ONLY thing this proof's edits touch. 09b-asia-contiguity-v2 re-cut `asia_lists`
|
||||
// (the sanctioned design note re-partition: IN-A/B/C/D + NAS-B), so the baseline rolls
|
||||
// (the sanctioned re-partition: IN-A/B/C/D + NAS-B), so the baseline rolls
|
||||
// from the pre-09b-5 snapshot (3aa10103, OLD India zones) to the post-v2 value
|
||||
// below. The uncovered_lists themselves are unchanged (nepal:34, himalaya:15,
|
||||
// sa-west:43, central-asia:6, mongolia:3, japan:6, scatter:8) — verified by the
|
||||
|
|
|
|||
Loading…
Reference in a new issue