UFTAGP-SPEC-001

Governing Specification

Introduction

The Unified Field Theory of Autonomous Governance Project Public Research Site Architecture & Build Specification — Amendment v1.6 Silent Infrastructure & Passive Pull — §4.6 AMENDED · §4.7.5 NEW · §5.1 AMENDED · §6.2 AMENDED · §10 Batch 4 AMENDED Spec ID: UFTAGP-SPEC-001 v1.6 (Amendment) Supersedes: UFTAGP-SPEC-001 v1.1–v1.5 on amended sections only Amendment Scope: §4.6 AMENDED · §4.7.5 NEW · §5.1 AMENDED · §6.2 AMENDED · §10 Batch 4 4e+4h AMENDED Governing decision: Silent Infrastructure ingestion model LOCKED Governance correction: "Verified Logic" badge REJECTED — renamed "MCR on File" (INV-11 compliance) Source documents: UFTAGP_SPEC_001_v1.6_SilentIngestion_Doc.md + UFTAGP_Session2_Seed_Amendment_Data_v1.md LaTeX Track B: EXCLUDED — formal notation only, no new governance content Author: Matthew A. Davis Date: March 2026 Amendment Changelog §4.6 AMENDED — Contribution layer reframed as Silent Infrastructure. No submission UI, no classification dropdowns, no upload forms. Researchers publish independently to Zenodo with UFTAGP-Class: keyword. MCR pre-computation optional. Zero-friction passive discovery. §4.7.5 NEW — Silent Ingestion Pipeline specification. Daily cron: new DOI discovery, tag parsing, MCR file detection, metadata upsert, citation tracking — unified in one job. §5.1 AMENDED — /api/cron/sync-citations RENAMED /api/cron/zenodo-ingest. Route scope expanded to include new record discovery + metadata parsing. §6.2 AMENDED — Two new columns in community_corpus_cache: transformation_class TEXT DEFAULT 'Undefined_Transformation' mcr_attached BOOLEAN DEFAULT false §10 AMENDED — Task 4e: contribute page updated for Silent Infrastructure framing. Task 4h: renamed zenodo-ingest, unified discovery + citation logic. GOVERNANCE — 'Verified Logic' badge REJECTED. Site cannot verify logic correctness. CORRECTION Renamed 'MCR on File'. States a fact (file detected) not a judgment. Source badge name violates INV-11 (non-editorial). This correction is binding and supersedes the source amendment document. Governance Review — Acceptance, Rejection, and Corrections Before incorporating the source amendment documents, each proposed change was evaluated against the established invariant set (INV-01 through INV-18) and the Posture B declaration. The following records all decisions. This section is binding — it supersedes the source documents where they conflict. ✓ ACCEPTED — Silent Infrastructure model (§4.6, §4.7.5) Passive cron discovery of Zenodo community submissions is consistent with INV-08 (Zenodo-only gate) and INV-09 (site does not mandate). The v1.5 cron job already polls Zenodo for citation tracking; expanding it to handle new record discovery is a natural extension, not a new concept. The UFTAGP-Class keyword is guidance, not a gate — absent keywords default to Undefined_Transformation. No submission is blocked from the registry due to missing metadata. ✓ ACCEPTED — transformation_class display on community cards Displaying researcher-provided transformation type tags is permissible. The transformation_class value is parsed from the researcher's own Zenodo keywords (UFTAGP-Class: [value]) — it is researcher self-reported metadata, not Engine output. It must be rendered as a plain informational tag with the label 'Researcher-tagged type:' and must never use sealed classification colors (label-, label-, label-refusal). The ClassificationLabel component must not be used for this field. ✓ ACCEPTED — mcr_attached flag and file detection Checking whether a Zenodo deposit contains a file with 'mcr' or 'classification_record' in its filename is a factual, deterministic check. Storing the result as a Boolean flag is informational metadata — it records what was found, not whether the content is correct. ✓ ACCEPTED — Cron rename (zenodo-ingest) and job unification Renaming /api/cron/sync-citations to /api/cron/zenodo-ingest is accurate: the expanded job handles full ingestion (discovery + metadata + citations), not only citation sync. Unifying discovery and citation tracking in one daily run is architecturally cleaner than two separate jobs and reduces Zenodo API call overhead. ✗ REJECTED — 'Verified Logic' badge name (source documents) The name 'Verified Logic' implies UFTAGP has reviewed and confirmed the correctness of the attached Minimal Classification Record. This is false — the site performs a filename-pattern check only. It cannot evaluate whether the MCR's classification reasoning is correct, complete, or consistent with the corpus. Displaying 'Verified Logic' violates INV-11 (Registry non-editorial): it creates an implied endorsement of submissions with MCR files over those without, making the registry editorially active through the badge — exactly the role UFTAGP declined when it committed to INV-11. Correction: the badge is renamed 'MCR on File'. This states the verifiable fact (a file matching the detection pattern was found in the Zenodo deposit) without claiming verification of its content. This correction is binding and supersedes both source amendment documents. ■ EXCLUDED — LaTeX Track B (formal notation block) The LaTeX 'SYSTEMS ARCHITECTURE: TRACK B (PRESENTATION TWIN)' section in the seed amendment document is a formal re-statement of the prose spec using mathematical notation. It contains no new governance decisions, no new invariants, and no implementation instructions not already expressed in the spec text. It is excluded from both spec and seed artifacts. §4.6 — Contribution Layer (AMENDED) ■ AMENDED — Silent Infrastructure model replaces any implied UI-submission pattern. Researchers publish to Zenodo independently. Site ingests passively. The contribution layer operates exclusively via a Silent Infrastructure model. The UFTAGP site provides no submission UI, no classification dropdowns, and no front-facing file upload mechanisms. All prior framing in v1.1–v1.2 that implied interactive submission is superseded by this amendment. Researcher workflow Step Action Notes 1 Author independently publishes work to Zenodo No UFTAGP site interaction required. Standard Zenodo deposit. 2 Select UFTAGP community at Zenodo deposit time Community ID from ZENODO_COMMUNITY_ID env var. 3 (MG-0)Include transformation type tag in Zenodo keywords Syntax: UFTAGP-Class: [value] Examples: UFTAGP-Class: Critique · UFTAGP-Class: Extension If absent: site defaults to Undefined_Transformation. This is guidance, not a gate — absent tags do not block ingestion. 4 (Optional) Attach pre-computed MCR as a file in the Zenodo deposit Filename must contain 'mcr' or 'classification_record'. Accepted formats: .json or .pdf. Site detects presence only — does not parse or validate MCR content. Result: community card renders 'MCR on File' badge. 5 Site ingests passively Daily cron job discovers new DOI, parses metadata, upserts to cache. No M intervention required. INV-09 compliance This workflow does not mandate a specific research methodology, classification outcome, or transformation type. The UFTAGP-Class keyword syntax is a metadata hygiene recommendation. Absence of a tag results in Undefined_Transformation — the submission is still ingested and displayed. INV-09 (site does not mandate) is preserved. Voting system (unchanged) The ORCID-authenticated voting system from v1.2 is unchanged by this amendment. Votes affect sort order only (INV-13). No downvotes (INV-14). Eligibility: ORCID OAuth + ≥1 UFTAGP-affiliated Zenodo submission. §4.7.5 — Silent Ingestion Pipeline (NEW) ✦ NEW — Full specification of the unified daily cron job: new record discovery, metadata parsing, MCR detection, ingestion, and citation tracking. A single scheduled job (Vercel Cron, daily) handles the complete Zenodo community ingestion cycle. It unifies new record discovery (previously not implemented) with the citation tracking introduced in §4.7.1 (v1.5). The job executes in two passes over community records. Pass 1 — New record discovery and ingestion Identifies DOIs in the Zenodo UFTAGP community that are not yet present in community_corpus_cache. For each new record: 1. Fetch full Zenodo record: title, authors, abstract, published date, keywords array, files array. 2. Tag parsing (MG-0): scan keywords array for UFTAGP-Class: prefix. Extract value if found. Default to Undefined_Transformation if absent. 3. MCR detection: scan files array for filenames matching /mcr|classification_record/i. Set mcr_attached = true if any match found. False otherwise. 4. Upsert to community_corpus_cache with parsed metadata. Pass 2 — Citation tracking (all records, not only new) For all records in community_corpus_cache (new and existing), executes the §4.7.1 citation detection patterns against available text (abstract and full text where Zenodo provides it). Upserts results to submission_citations. Also captures version_history if Zenodo exposes version relations (§4.7.4 Option 6 conditional). MCR detection — scope and limits (binding) MCR detection is filename-pattern only — content is never parsed The cron job checks whether the files array of the Zenodo record contains an entry whose filename matches the pattern /mcr|classification_record/i. It sets mcr_attached = true if so. It does NOT download, open, parse, or validate the file content. It cannot and does not verify whether the MCR contains a valid classification or whether the classification is correct. This constraint is directly related to the 'MCR on File' badge name. The badge states exactly what the site knows: a file matching the pattern was found. Any future implementation that parses MCR file content and acts on its label would violate INV-16 (Engine never labels community submissions) and requires an explicit new spec amendment naming both INV-16 and this constraint. Combined job execution order // /api/cron/zenodo-ingest — daily 03:00 UTC // // 1. Auth check: Authorization header === CRON_SECRET // 2. Fetch all DOIs from Zenodo community (ZENODO_COMMUNITY_ID) // 3. Load existing zenodo_ids from community_corpus_cache // 4. Diff: newDOIs = zenodoDOIs - existingDOIs // // PASS 1 — New records only // For each DOI in newDOIs (batches of 20, 500ms delay): // a. GET /api/zenodo/records/{id} // b. Parse keywords for UFTAGP-Class: // found → transformation_class = parsed value // absent → transformation_class = 'Undefined_Transformation' // c. Scan files[] for /mcr|classification_record/i → mcr_attached bool // d. Upsert community_corpus_cache (id, doi, title, authors, abstract, // published_at, transformation_class, mcr_attached) // // PASS 2 — All records (including just-inserted new records) // For each zenodo_id in community_corpus_cache (batches of 20): // a. Fetch text (abstract + full text where available) // b. Run §4.7.1 detection patterns (axiom, invariant, section, artifact) // c. Upsert submission_citations (UNIQUE constraint prevents duplication) // d. Capture version_history if relations present (Option 6) // // 5. Log run summary: {newRecords, updatedCitations, durationMs} to console // 6. Return 200 { status: 'ok', newRecords, updatedCitations } The 60-second Vercel Cron timeout limits processing to approximately 100 records per run. When the community grows beyond this thres, cron pagination is required (reserved as S3-09 in the Session 2 seed document). §5.1 — API Routes (AMENDED) ■ AMENDED — /api/cron/sync-citations RENAMED /api/cron/zenodo-ingest. Route scope expanded. All other routes from v1.5 unchanged. Route Method Change Purpose /api/cron/sync-citations GET REMOVED (renamed) Superseded by /api/cron/zenodo-ingest. Any Vercel Cron config pointing to sync-citations must be u /api/cron/zenodo-ingest GET NEW (replaces sync-citations) Unified daily ingestion job. Pass 1: new DOI discovery, tag parsing, MCR detection, metadata upser /api/community/by-citation GET UNCHANGED (v1.5) Query submissions by citation ref. /api/community/[id]/links GET UNCHANGED (v1.5) Classification linkage count for submission. /api/classify

POST

UNCHANGED (v1.5) Optional zenodoDoi field for linkage. Engine never labels community submissions (INV-16). Updated vercel.json cron config { "crons": [ { "path": "/api/cron/zenodo-ingest", "schedule": "0 3 * * *" } ] } // IMPORTANT: Remove or replace any prior entry pointing to /api/cron/sync-citations. // Both routes must not coexist. §6.2 — Supabase Schema (AMENDED) ■ AMENDED — Two new columns added to community_corpus_cache. All other tables from v1.2–v1.5 unchanged. community_corpus_cache — new columns -- Add to community_corpus_cache (run in Supabase SQL Editor): ALTER TABLE community_corpus_cache ADD COLUMN IF NOT EXISTS transformation_class TEXT DEFAULT 'Undefined_Transformation', ADD COLUMN IF NOT EXISTS mcr_attached BOOLEAN DEFAULT false; -- transformation_class: researcher self-tagged type from UFTAGP-Class: keyword. -- Defaults to 'Undefined_Transformation' when keyword absent. -- NOT an Engine classification label — must not be styled as one (see INV-16). -- mcr_attached: true when a file matching /mcr|classification_record/i is found -- in the Zenodo deposit's files array. Detection is filename-pattern only. -- Does NOT indicate that the MCR content has been validated. -- version_history column (from v1.5 §4.7.4 — add if not already present): ALTER TABLE community_corpus_cache ADD COLUMN IF NOT EXISTS version_history JSONB; Updated community_corpus_cache full column set Column Type Source Notes zenodo_id TEXT PK Zenodo API Primary key doi TEXT Zenodo API title TEXT Zenodo API authors JSONB Zenodo API abstract TEXT Zenodo API published_at TIMESTAMPTZ Zenodo API affiliated_date TIMESTAMPTZ Zenodo API last_synced TIMESTAMPTZ Cron Updated each cron run vote_count INT DEFAULT 0 DB trigger Never set directly by API community_rank INT Computed Sort position transformation_class TEXT DEFAULT 'Undefined_Transformation' Cron (v1.6) Researcher self-tag via UFTAGP-Class: mcr_attached BOOLEAN DEFAULT false Cron (v1.6) Filename detection only — not content validation version_history JSONB Cron (v1.5) Zenodo version relations; NULL if absent §10 — Session 2 Build Plan (Batch 4 AMENDED) ■ AMENDED — Task 4e (contribute page) updated for Silent Infrastructure framing. Task 4h renamed zenodo-ingest and logic unified. Tasks 4a–4d, 4f–4g, 4i–4k unchanged. Task 4e — app/contribute/page.tsx (AMENDED v1.6) Top section: Silent Infrastructure contribution instructions. No interactive form elements. Explains the researcher workflow: publish to Zenodo → select UFTAGP community → add UFTAGP-Class: keyword → optionally attach MCR file. Explains what each step produces on the community card. Zenodo community link present. No checklist (v1.2 rule unchanged). Bottom section: community registry grid with vote counts. Community cards now render two additional elements when present: (1) transformation_class as a plain informational tag labeled 'Researcher-tagged type:' in mid-grey on id-bg — never in sealed classification colors. (2) 'MCR on File' badge (grey pill) when mcr_attached === true. ■ GOVERNANCE NOTE — 'MCR on File' replaces 'Verified Logic' (source document). See Governance Review. Element Render condition Display Invariant transformation_class tag Always (shows 'Undefined_Transformation' if absent) 'Researcher-tagged type: [value]' Mid-grey on id-bg, font-mono, no sealed colors INV-16: must not use ClassificationLabel or sealed color MCR on File badge mcr_attached === true only Grey pill: 'MCR on File' Mid-grey border, off-white bg, font-mono text-xs INV-11: badge states a fact (file found), not a judgment Citation tags submission_citations has entriesAxiom/Invariant/Section/Artifact tags — v1.5 unchanged INV-16 Linkage count Any classification sessions linked'Referenced in N classification sessions' — v1.5 unchanged INV-17 Task 4h — /api/cron/zenodo-ingest (AMENDED v1.6, formerly sync-citations) File path changes from app/api/cron/sync-citations/route.ts to app/api/cron/zenodo-ingest/route.ts. The prior sync-citations file is deleted. vercel.json cron entry updated to new path. Logic is expanded to cover both passes (§4.7.5). The acceptance criteria from v1.5 Task 4h apply in full, with the following additions: ■ Route file: app/api/cron/zenodo-ingest/route.ts (sync-citations deleted) ■ vercel.json cron path updated to /api/cron/zenodo-ingest ■ Pass 1: fetches all Zenodo community DOIs and diffs against community_corpus_cache ■ Pass 1: parses UFTAGP-Class: from keywords array — default Undefined_Transformation if absent ■ Pass 1: scans files[] for /mcr|classification_record/i → mcr_attached boolean ■ Pass 1: upserts community_corpus_cache including transformation_class + mcr_attached ■ Pass 2: citation detection for all records (not only new) — v1.5 logic unchanged ■ MCR file content is NEVER downloaded, parsed, or evaluated — detection is filename only ■ transformation_class is NEVER validated against SEALED_LABELS — it is researcher-free-text ■ Response: 200 { status: 'ok', newRecords: number, updatedCitations: number } Complete Specification Version Map (v1.6) Read v1.1 + v1.2 + v1.3 + v1.4 + v1.5 + v1.6 together as the complete specification. Later versions supersede earlier versions on amended sections only. Section Content Governing Version §0 Site Jurisdiction Statement v1.4 §1 Registry Scope & Artifact ID Convention v1.1 §2 Audience Map v1.1 §3 Design System v1.1 §4.0 Homepage & Registry Surface v1.1 §4.1 Corpus Navigator v1.1 §4.2 Classification Engine v1.4 + v1.2 §4.3–4.5 Glossary, Constraints Ledger, Citation Builder v1.1 §4.6 Contribution Layer + Voting + Silent Infrastructure v1.6 (supersedes v1.2) §4.7.1–4.7.4 Community Feedback Layer (Options 2, 3, 5, 6) v1.5 §4.7.5 Silent Ingestion Pipeline v1.6 §5.1 API Routes v1.6 (cron rename) + v1.5 + v1.2 §5.2 Environment Variables v1.3 + v1.5 §6.1 Google Drive folder structure v1.1 §6.2 Supabase Schema v1.6 (additions) + v1.5 + v1.3 + v1.2 §6.3–6.5 Registry manifest, corpus bundle, Phase architecture v1.3 + v1.1 §7 Grant-Facing Layer v1.4 + v1.1 §8 INV-01–12 Site Invariants (UFTAGP authority) v1.4 §8 INV-13–14 Voting invariants v1.2 §8 INV-15 Infrastructure isolation v1.3 §8 INV-16 Engine never labels community submissions v1.5 §8 INV-17 Linkage count is metadata only v1.5 §8 INV-18 No supplementary Zenodo commentary pulled v1.5 §9 Open Items (OI-01 through OI-12) v1.1 + v1.2 + v1.3 §10 Batch 0 Supabase schema + 2 v1.6 columns v1.6 + v1.5 + v1.3 §10 Batch 1–3 Scaffold, pipeline, pages v1.2 seed §10 Batch 4a–d Engine, Navigator, Glossary, Constraints v1.2 seed §10 Batch 4e Contribute page — Silent Infrastructure v1.6 §10 Batch 4f–g About + voting system v1.2 seed §10 Batch 4h Zenodo-ingest cron (unified, renamed) v1.6 §10 Batch 4i–k Citation routes, card UI, Navigator sidebar v1.5 Posture B Governance authority declaration v1.4 Decision Record Option 1–6 GO/NO-GO v1.5 Gov. Review v1.6 source amendment acceptance/rejection record v1.6 This amendment is a separate-jurisdiction artifact (UFTAGP-SPEC-001 v1.6). It adds §4.7.5, amends §4.6, §5.1, §6.2, and Batch 4 Tasks 4e and 4h. The 'Verified Logic' → 'MCR on File' badge correction is binding and supersedes the source amendment documents. Read v1.1 through v1.6 together as the complete specification. UFTAGP-SPEC-001 v1.6 · Silent Infrastructure Amendment · Matthew A. Davis · March 2026 · Amends §4.6, adds §4.7.5, extends §5.1, §6.2, §10 Batch 4e+4h