> ## Continuous-process anchor
>
> This spec describes an instance of one of the retired-script themes
> documented in docs/design/retired_scripts_patterns.md. Before
> implementing, read:
>
> 1. The "Design principles for continuous processes" section of that
> atlas — every principle is load-bearing. In particular:
> - LLMs for semantic judgment; rules for syntactic validation.
> - Gap-predicate driven, not calendar-driven.
> - Idempotent + version-stamped + observable.
> - No hardcoded entity lists, keyword lists, or canonical-name tables.
> - Three surfaces: FastAPI + orchestra + MCP.
> - Progressive improvement via outcome-feedback loop.
> 2. The theme entry in the atlas matching this task's capability:
> S2, S4 (pick the closest from Atlas A1–A7, Agora AG1–AG5,
> Exchange EX1–EX4, Forge F1–F2, Senate S1–S8, Cross-cutting X1–X2).
> 3. If the theme is not yet rebuilt as a continuous process, follow
> docs/planning/specs/rebuild_theme_template_spec.md to scaffold it
> BEFORE doing the per-instance work.
>
> **Specific scripts named below in this spec are retired and must not
> be rebuilt as one-offs.** Implement (or extend) the corresponding
> continuous process instead.
ID: 5616905a-812 Priority: 80 Frequency: every-6h Status: open
[UI] CI: Site-wide link and render health check
from datetime import statements in api.py that caused runtime errors on multiple pages (committed separately)html variable at line 10620 in running server — but code on disk is already fixed (function moved to line 10862, bug resolved). Will resolve on next API restart.import html is on line 4 of api.py. Will resolve on next API restart./=302, /how.html=301), including /market and /experiments now 200/api/status returned valid JSON (analyses=79, hypotheses=188, edges=202)timeout 300 python3 link_checker.py; crawl started (1368 pages, 1685 links) but timed out before final report summary outputtimeout 300 python3 scripts/demo_smoke_check.py --base-url http://localhost:8000 --timeout 8: passed 20/20 route and rich-content checks/exchange, /demo, /quests, /forge, /senate, /missions, /wiki): checked 558 unique internal links, 3 flagged/${r.link} and /task/${t.id} are false positives from JS template literals (not real anchors); /api/quality-gates is present but intermittently slow (timed out at 8-30s under load){
"completion_shas": [
"50d8d0e2587bf4718fdc6138ffb2fe07bbf0c677"
],
"completion_shas_checked_at": "2026-04-12T23:20:04.630990+00:00",
"completion_shas_missing": [
"9992c89e98be0a7c3f290f93c3d48f63095f452f",
"0c8f14ac3e6c0df9ef0c1ebf77c32508593024b1",
"6b9cc44ea1287216f04e3cca8010446ffce345e0",
"54465120182f03914bc1cf0dbdd224b71402947e",
"678d3ca59aa379ebf318bee10dc4f4c2d8f4e39b",
"6b617a08188fbe1e872a9018b78dde5e6e546995",
"7d7075031ef2a86b5528013b602a5f4e99aa23e0",
"b13a7e38e932c711103ee0262ee0533e482c11cf",
"fdaf635147f665c4f701472407f0abc513a8c85b",
"af76e647e9a7c849dcb02bedae70978c6a654752",
"cbe2e04b6550f17c9446015503c27eb01d328611",
"2cf6c59456d136412569fa3dfc62c252b2b0077b",
"2da9547329f6a49208537f03aa3930c4b16da776",
"c0903fb723952bae1c9e2188c7f6c0448a64cbeb",
"0d959e5cd96b715e916d6cf95f7f8a6bfd192ca9",
"d6da63393bca1d7ca2b5d7dcc23fcd88d815a803",
"824675e796f8b926f414acf1a8dd01484d579bfc",
"bd752c56394fd31c717136cc3e1514b7df1f1a8e",
"7442f9da2175786ded460b8e2181a54d87b19a96",
"ebd3d37ee2a8442cadd2ea511fb94f645abbbc37",
"8ef6a067a3e355af3748e88746c5f75929014466",
"df57e637fa5f839cc300e646cadf0cf3b0838f25"
],
"requirements": {
"coding": 5
}
}