Skip to content

Add a schema contract for the Task Registry across Node and Python readers #101

Description

@derek-palmer

From the 2026-06-09 Architecture Review. Recommendation strength: Speculative.

Files

  • src/codeforerunner/tasks.json
  • src/codeforerunner/tasks.py (Python Task Registry accessor)
  • bin/install.js:32, 407-420 (Node reader: loadTaskSkillSlugs / slugsFromTasksJson)

Problem

The Node installer must read the Task Registry standalone (no Python available at curl | bash time), so two implementations parse tasks.json independently with no shared contract. Each test suite (test_tasks.py, tests/install.test.js) passes on its own while the schema can drift — a field added on the Python side is silently ignored or mis-assumed on the Node side.

Solution

Add a tasks.schema.json that both readers validate against in CI. The schema — not either parser — becomes the cross-language interface of the Task Registry.

Benefits

  • Seam: schema drift is caught at the seam, in CI, before it lands on main.
  • No new runtime coupling between Node and Python; the standalone-installer constraint is preserved.

Metadata

Metadata

Assignees

No one assigned

    Labels

    architectureArchitecture Review / Deepening OpportunityenhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions