Skip to content

Define the interview skill graph and mastery evidence policy #59

Description

@rosshd

Parent: #56

Depends on: #45, #46, #48, and the interview-profile child of #56.

Problem

The shipped algorithms template is a useful course outline, but it is not a canonical interview-readiness model.

It does not define stable skill identities, prerequisites, practice evidence, transfer requirements, or the difference between knowing a data structure and independently recognizing when to use it.

Without that structure, adaptive selection and readiness reporting will be driven by model prose rather than durable rules.

Goal

Define a versioned interview skill and pattern graph that supports curriculum generation, adaptive problem selection, mastery decisions, and learner-visible readiness.

Initial skill domains

  • Complexity analysis and constraint reading.
  • Arrays, strings, hashing, linked structures, stacks, and queues.
  • Two pointers, sliding window, prefix or suffix aggregation, and intervals.
  • Binary search and search-space reduction.
  • Trees, heaps, tries, graphs, BFS, and DFS.
  • Recursion, backtracking, greedy reasoning, and dynamic programming.
  • Union-find, topological ordering, and shortest paths where appropriate to the target level.
  • Edge-case design, testing, debugging, and counterexample construction.
  • Problem clarification, plan communication, complexity explanation, and follow-up adaptation.

Graph contract

  • Use stable human-readable skill IDs.
  • Separate concepts, patterns, process skills, and communication skills while allowing typed prerequisite edges.
  • Define minimum evidence types for recognition, explanation, production, transfer, and delayed retrieval.
  • Define which skills can be inferred from a problem attempt and which require an explicit check.
  • Allow a problem to exercise multiple skills without awarding all of them automatically.
  • Version graph content and mastery rules.
  • Preserve historical evidence when graph definitions change.
  • Keep learner-specific mastery outside the static graph.

Mastery policy

  • Pattern mastery requires unaided production or novel transfer, not reading an editorial or passing one familiar problem.
  • Hint use, partial code, copied structure, and worked examples reduce or defer mastery credit.
  • Complexity and edge-case claims require explicit evidence.
  • Communication evidence is recorded separately from algorithm correctness.
  • Repeated success on near-duplicate problems must not count as broad transfer.
  • Blocking prerequisites affect selection but must not trap the learner in endless drilling.

Acceptance criteria

  • The graph has stable IDs, typed prerequisites, version metadata, and validation.
  • Every initial skill declares qualifying evidence and transfer expectations.
  • Problems can reference multiple skills with primary and supporting roles.
  • Adaptive selection can query ready, blocked, weak, due, and unassessed skills deterministically.
  • The learner can inspect why a skill is considered weak, provisional, or ready.
  • Graph changes do not destroy or silently rewrite historical evidence.
  • Tests reject cycles or invalid edges where the contract forbids them.
  • Fixtures cover an advanced learner, a prerequisite gap, hint-dependent success, and delayed transfer failure.
  • The algorithms template can seed an interview course from the graph without becoming the canonical data source.
  • make check passes.

Out of scope

  • Exhaustive competitive-programming coverage.
  • Company-specific frequency claims without an authorized data source.
  • System design and behavioral interview skills in the first version.
  • Model-generated graph mutations during normal tutoring.

Documentation

  • Document canonical terminology in CONCEPTS.md if the file exists.
  • Document mastery implications in docs/TUTOR_INTERACTION.md and docs/LEARNING_SCIENCE.md.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions