Parent: #56
Depends on: the interview-skill-graph child of #56.
Related: #54.
Problem
The bundled coding bank currently contains only two drills and lacks the metadata required for adaptive interview preparation.
Issue #54 defines acceptable content-source boundaries but does not create the catalog, validation rules, or authoring workflow.
Problem selection, solution evaluation, follow-ups, and delayed transfer all require a stable source-aware problem record.
Goal
Add a local, validated interview-problem catalog that can contain original, owned, licensed, or explicitly linked-out content without scraping protected sources.
Problem record
Each problem should support:
- Stable problem ID and revision.
- Title and learner-facing statement when redistribution is allowed.
- Source type, source identifier, URL when applicable, license, attribution, and local-content permissions.
- Supported languages and function or program interface.
- Difficulty band and estimated working time.
- Primary and supporting skill IDs.
- Prerequisites and disallowed near-duplicate transfer pairs.
- Constraints, examples, and edge-case families.
- Public examples and hidden deterministic tests.
- Reference approaches, expected complexity, common misconceptions, and bounded hint ladder.
- Follow-up variants that change constraints or require a different approach.
- Content checksum and validation status.
Source policy
Supported sources:
- Original problems written for openLearn.
- Curated content owned by or licensed to openLearn.
- Openly licensed problem sets with preserved attribution.
- Official external links where the learner views protected content at the source and openLearn stores only permitted metadata plus learner-owned work.
Unsupported sources:
- Scraped LeetCode statements, examples, editorials, or hidden data from undocumented endpoints.
- Content without sufficient rights or source provenance.
- Model-generated problems accepted directly into the durable catalog without validation.
Authoring and validation
- Provide a deterministic catalog validator.
- Validate skill IDs, language interfaces, test structure, expected outputs, complexity metadata, licenses, and follow-up references.
- Run reference implementations against public and hidden tests.
- Detect duplicate IDs and optionally flag highly similar statements or test sets for review.
- Package a small high-quality starter set rather than padding the catalog.
- Keep user-added private problems local and separate from distributable package content.
Acceptance criteria
Out of scope
- A public content marketplace.
- Automated scraping or mirroring.
- A large low-quality generated problem dump.
- Company-frequency rankings without a licensed source.
Documentation
- Document the source and licensing policy.
- Document how contributors author and validate original or openly licensed problems.
Parent: #56
Depends on: the interview-skill-graph child of #56.
Related: #54.
Problem
The bundled coding bank currently contains only two drills and lacks the metadata required for adaptive interview preparation.
Issue #54 defines acceptable content-source boundaries but does not create the catalog, validation rules, or authoring workflow.
Problem selection, solution evaluation, follow-ups, and delayed transfer all require a stable source-aware problem record.
Goal
Add a local, validated interview-problem catalog that can contain original, owned, licensed, or explicitly linked-out content without scraping protected sources.
Problem record
Each problem should support:
Source policy
Supported sources:
Unsupported sources:
Authoring and validation
Acceptance criteria
make checkpasses.Out of scope
Documentation