Tenant public-plane (agent-operated)
Discovery bun run public:discover:check
Audit bundle bun run public:audit:verify
Skills .agents/skills/public-discovery/SKILL.md · .agents/skills/public-audit-gap-close/SKILL.md
Pages static artifact plane — portal UI, registry bake, monitoring shells. Distinct from harness reference-discovery (code/env in lib/) and from live edge behavior in functions/.
| Gate | Failure |
|---|---|
public:discover:check |
Broken /registry/ ref, missing portal chrome, TS in .js, inline /api/health |
verify:portal:static |
Portal foundation contract (data.js, topbar, redirects) |
audit:verify |
Audit catalog graph/evidence drift |
bun tools/public-discovery.ts --jsonbroken-registry-ref, portal anti-patterns)bun run ops:snapshot --no-routingbun tools/portal-apply-chrome.ts · docs/portal-foundation.mdbun run public:audit:verify| Gap | Status | Evidence |
|---|---|---|
Portal shells include data.js + topbar.js |
Closed | verify:portal:static · public-discovery portal-chrome-missing |
No inline /api/health on client pages |
Closed | verify:portal:static · portal-inline-health |
Browser .js free of TS annotations |
Closed | portal-typescript-leak · public/portal/app.js history |
/registry/ fetches resolve to baked JSON |
Closed (ops loop) | ops:snapshot · broken-registry-ref gate |
| Proof taxonomy panel on ops dashboard | Closed | verify-portal.ts taxonomy chrome check |
Live /api/health schema v1 on Pages |
Partial | verify:portal live probe · env-dependent |
| Orphan registry JSON without portal link | Closed | weave SSOT (PORTAL_WEAVE_ARTIFACTS) · content-type-matrix · formdata-proof · package-info |
skills-catalog.json scope |
Closed | Kimi Daimon (PORTAL_SKILLS_DIR) · harness plane baked separately as harness-skills-catalog.json |
| Layer | Gate |
|---|---|
CI (ci:harness) |
public:discover:check ∥ cheap ratchets |
| Pre-commit | staged public/portal|registry|… → public:discover:check |
| Proof catalog | public-plane-discovery-v1 · freshRerun: public:audit:verify |
| Portal weave | operator scripts on /registry/portal-weave.json |
| Combined agents | discover:compose:check = harness + public planes |
reference-discovery · bun run reference:discover:checkbun run discover:compose:checkaudit-gap-close · docs/harness/tenants/toc-ops.mddocs/platform-routing.md · bun run check:routesPortal static anti-patterns live in lib/portal-static-checks.ts — consumed by tools/verify-portal.ts and lib/public-discovery.ts (no duplicate rules).
| Agent | Entry |
|---|---|
| Public Discovery | .agents/skills/public-discovery/agents/openai.yaml |
| Public Audit Gap Close | .agents/skills/public-audit-gap-close/agents/openai.yaml |
Owner // owner: platform / portal
Fresh-rerun bun run public:audit:verify
Compose loop: .agents/skills/audit-gap-close/ · docs/audit/README.md
bun run discover:compose:check # harness + public planes
bun run public:audit:verify # public discover · portal static · audit catalog
bun run reference:discover:check # similar-env warn tier
bun run ops:snapshot --no-routing # portal-weave rebake
| Gate | Last run | Result |
|---|---|---|
discover:compose:check |
2026-07-26 | 0 errors · harness + public |
public:discover:check |
2026-07-26 | 0 findings |
public:audit:verify |
2026-07-26 | pass · portal static · audit catalog |
verify:portal:static |
2026-07-26 | pass |
reference:discover:check |
2026-07-26 | 0 errors · 0 warn (similar-env trimmed) |
test:toc-ops |
2026-07-26 | 71 pass · 18 files |
cloudflare:preflight |
2026-07-26 | pass · 13 contracts · 20 consistency |
ci:harness:fast |
2026-07-26 | pass |
harness-skills-catalog |
2026-07-26 | 22 skills baked · portal-weave artifact |
| Registry rebake | 2026-07-26 | portal-weave.json · harness-skills-catalog.json + weave artifacts |