Allowed content
- Original engineering challenges.
- Permissive or open content with a verifiable license.
- Adapted tasks only when adaptation permission is documented.
Requirements for tasks, local checkers, report.json, licenses, and pull requests.
This guide is for challenge authors, educators, FPGA engineers, and open-source contributors who want to add a verifiable FPGA task with a local runner and a safe report.json output.
challenge.yaml README.md src/ tb/ checks/ generated/report.schema.json
challenge.yaml must define slug, English title and summary, difficulty, track, toolchains, HDL languages, scoring, package metadata, licenses, and local run commands.
The runner must emit only a normalized report: challenge_id, challenge_slug, status, score, checks, and privacy flags. Full logs, source code, absolute paths, and personal data are not allowed in report.json.
Provide separate licenses for challenge content and code. If the challenge is adapted, include the original source and the adaptation permission. Material without clear redistribution rights does not pass review.
FPGA_CHALLENGES_REPO_PATH=/path/to/fpga-camp-challenges npm run sync:edu-challenges.npm run validate:edu-challenges before opening the site PR.