Imported from CPC-GALLOS/api (
.agents/AGENTS.md). Install upstream withnpx skills add CPC-GALLOS/api --skill .agents. Copyright stays with the author.
AGENTS.md
Static JSON API served via GitHub Pages (no build, tests, or lint toolchain). Data is the product; there is no application code.
What this repo is
index.json— root directory listing API endpoints; bumplastUpdated(ISO date) when endpoints change. Validated byindex.schema.json.communities/— competitive programming clubs, keyed by country, then state. Onedata.json+ oneschema.json.credentials/— catalog of free certificates/programs/certifications/platforms. Onedata.json, oneschema.json, plusdomains-categories.md(human-readable enum reference) and aindex.htmltest panel.- Served at
https://cpc-gallos.github.io/api/...once merged tomain(GitHub Pages auto-deploys).
Conventions to follow (from CONTRIBUTING.md — verify before editing)
- JSON keys in English (
name,description,provider); values in Spanish. - All JSON data files (
index.json,data.json) must reference their schema at the root:"$schema": "schema.json"(orindex.schema.json). - All schemas must use draft
2020-12and define an absolute$id. E.g.:"$id": "https://cpc-gallos.github.io/api/credentials/schema.json", followed by"$schema": "https://json-schema.org/draft/2020-12/schema". - Schemas describe the entire file structure (e.g.,
credentials/schema.jsondefines thecredentialsarray at its root). - When adding a credential, every enum value must match
credentials/schema.jsonexactly:providerGroup:Big Tech|Enterprise Tech|Government|University|Othertype:program|certificate|certification|platformdomain:Technology & Computer Science|Languages|Business & Professional Developmentcategory: see the full enum inschema.json(also listed incredentials/domains-categories.md). Mismatch breaks schema validation.
credentials/data.jsonentries require:id, name, provider, providerGroup, type, domain, category, url.idis a kebab-case slug of the name.imageis""when no logo.tagsoptional (values seen:woman,mooc,superbadge,python, etc.).- In
communities/data.json, every country is a top-level key, containing its states. States without clubs use"clubs": null(don't omit them). Per-club required:name,status(activo|inactivo).
Verification (no toolchain — do it manually)
python -m json.tool < file.jsonorjq . file.jsonto confirm valid JSON before committing.- Validate against the schema with any JSON Schema 2020-12 validator (e.g.
ajv) if available; otherwise cross-check enum values againstschema.jsonby eye. - CI Validation: A GitHub Action workflow runs on every PR and push to
mainto validate all JSON files against their schemas usingajv-cli. Ensure your JSON is valid before pushing.
Workflow
- Default branch is
main. Changes go via PR (seeCONTRIBUTING.md); merging tomainpublishes to GitHub Pages automatically — treatmainas production.