Web portals (ISIC 6312) — Operator Console

read-only sample · governor-gated · curates & discloses content only, never handles money movement

Listings (committed to the SSoT)

Demo snapshot — build-time-generated from portal.store via portal.render-html (clojure -M:dev:render-html), regenerated nightly. HARD-held publish attempts (li-400, li-500) never reach this table — see the audit ledger below.

ListingTitleSourceCategoryStatusAllegation subject?Last op status
li-100デモ公共ドメイン記事(訂正済み)src-gov1public-affairslivenocommitted
li-200デモ記事B(告発系)src-news1investigativeliveyesno activity
li-300デモ公共ドメイン記事src-gov1public-affairslivenocommitted

Map — governed POIs (ISIC 6312 geo slice)

Pin positions are computed by portal.geo/plot-xy (Web Mercator, latitude clamped through kotoba-lang/map) from the coordinates the PortalGovernor actually committed — nothing here is hand-placed. This page fetches no third-party map tiles; a real deployment reaches them through portal.map-bridge, which consumes kotoba.map.tile-url rather than reimplementing it.

デモ書店(架空)poi-100 · retail (35.681236, 139.767125) デモ公園(架空)poi-200 · park (35.685175, 139.752799) デモ書店支店(架空)poi-300 · retail (35.681200, 139.767100)
POINameCategoryISICLEI (fleet join key)StatusLast op status
poi-100デモ書店(架空)retail4761DEMO0000000000000001liveno activity
poi-200デモ公園(架空)parkliveno activity
poi-300デモ書店支店(架空)retail4761DEMO0000000000000001livecommitted

Pins the governor refused

Read back out of this run's audit ledger — a HARD-held pin never enters the map above, and cannot be re-proposed past the gate by any confidence level or human approver.

POIGateDetail
poi-310entity-verification-gateLEI がレジストリで検証できない(未登録/失効): lei=DEMO0000000000000002 status=:lapsed
poi-320residential-privacy-gate居住地 POI に個人名が結び付いている: 架空 太郎
poi-330geo-bounds-gate座標が不正(欠落/NaN/範囲外): {:lat nil, :lng nil}

Governed POI search (tier/basic disclosure)

A 5 km radius search as a tenant-basic ad buyer sees it. The entity join keys (:lei, :isic-code) are analytics-tier and :subject-name is audit-tier, so none of them appear here — the same run's greedy search asking for them was HARD-held.

POINameCategoryStatusDistance
poi-300デモ書店支店(架空)retaillive0.000 km
poi-100デモ書店(架空)retaillive0.005 km
poi-200デモ公園(架空)parklive1.365 km

Action gate (PortalGovernor)

HARD holds cannot be overridden. Source provenance and excerpt scope are checked independently of the LLM's own stated confidence; sponsored placements and sensitive-subject content route through human review before anything is disclosed.

OpGate
:listing/publishphase-3 auto-commit when clean & high-confidence · source-provenance-gate / license-scope-gate HARD
:placement/featurephase-3 auto-commit when clean · disclosure-gate HARD (sponsored w/o label) · sensitive-subject listings ALWAYS escalate
:report/querygoverned read, no SSoT write · licensed-disclosure HARD (tier over-disclosure)
:takedown/requestALWAYS human approval · never auto, any phase, any confidence
:poi/publishphase-3 auto-commit when clean · entity-verification-gate / residential-privacy-gate / geo-bounds-gate HARD · enters one phase later than :listing/publish
:poi/searchgoverned geo read, no SSoT write · licensed-disclosure HARD (:lei/:isic-code are analytics-tier, :subject-name audit-tier only)

Audit ledger (this run)

Append-only decision-fact log — every proposal, hold, escalation and commit this scenario produced.

FactOpSubjectBasis
committedpublishli-300title, snippet, source-id, category
committedfeatureslot-home-3listing-id, sponsored?
committedrequestli-100title
policy-holdpublishli-400source-provenance-gate
policy-holdpublishli-500license-scope-gate
policy-holdfeatureslot-home-2disclosure-gate
committedpublishpoi-300name, lat, lng, category, isic-code, lei, source-id
policy-holdpublishpoi-310entity-verification-gate
policy-holdpublishpoi-320residential-privacy-gate
policy-holdpublishpoi-330geo-bounds-gate
policy-holdsearchsearch-greedylicensed-disclosure