{
  "schema_version": 1,
  "scope": "Public project catalog exported by the private learning workflow",
  "projects": [
    {
      "id": "call-boundary",
      "title": "Countersign",
      "url": "https://sergrdz.pages.dev/labs/call-boundary/",
      "summary": "An original local experiment binding signed approval to one exact tool call.",
      "skills": [
        "Python",
        "authorization",
        "replay protection"
      ]
    },
    {
      "id": "binary-boundary",
      "title": "Cutline",
      "url": "https://sergrdz.pages.dev/labs/binary-boundary/",
      "summary": "Compare recovered types, instruction bytes and boundary inputs across two native compiler builds.",
      "skills": [
        "Ghidra",
        "C",
        "native regression tests"
      ]
    },
    {
      "id": "support-intake",
      "title": "Support Intake Evidence Check",
      "url": "https://sergrdz.pages.dev/demos/support-intake/",
      "summary": "Synthetic help-desk requests show how stale records and mismatched receipts affect completion.",
      "skills": [
        "IT operations",
        "receipt matching",
        "state reconciliation"
      ]
    },
    {
      "id": "today",
      "title": "Today",
      "url": "https://sergrdz.pages.dev/demos/today/",
      "summary": "A local-first daily planner with a small next step and a portable task list.",
      "skills": [
        "JavaScript",
        "local storage",
        "accessible interfaces"
      ]
    },
    {
      "id": "shufflebox",
      "title": "Shufflebox",
      "url": "https://sergrdz.pages.dev/labs/prooflane/ctf/ductf-2024-shufflebox/",
      "summary": "An offline challenge study tracing a recovered permutation to a reproducible result.",
      "skills": [
        "Python",
        "permutation analysis",
        "CTF reproduction"
      ]
    },
    {
      "id": "chunk-lines",
      "title": "Afterimage / Chunk Lines",
      "url": "https://sergrdz.pages.dev/labs/cve-replay/chunk-lines/",
      "summary": "Thirty-two bounded offline cases exercise real urllib3 2.7.0 and 2.8.0 response code. This checks parser behavior, not memory exhaustion, application exploitability or a new CVE.",
      "skills": [
        "CVE source research",
        "parser boundaries",
        "bounded regression tests"
      ]
    },
    {
      "id": "learning",
      "title": "Learning workflow",
      "url": "https://sergrdz.pages.dev/learning.html",
      "summary": "Public architecture notes connecting original engineering projects to a private learning and career workflow.",
      "skills": [
        "evidence provenance",
        "private workflow design",
        "data minimization"
      ]
    },
    {
      "id": "cartelkit",
      "title": "CARTELKIT public-source study",
      "url": "https://sergrdz.pages.dev/case-studies/cartelkit.html",
      "summary": "A public-source study that links institutional cartel reporting to dates, document types, and limits. Original synthetic records are excluded.",
      "skills": [
        "citation",
        "provenance",
        "critical reading",
        "data validation"
      ]
    },
    {
      "id": "source-trail",
      "title": "Waymark",
      "url": "https://sergrdz.pages.dev/labs/source-trail/",
      "summary": "A source identity desk connecting publication dates, immutable code revisions and publisher-attested addresses to a local SHA-256 file check.",
      "skills": [
        "source provenance",
        "Web Crypto",
        "file identity"
      ]
    }
  ]
}
