AI dynamic difficulty calibration and prerequisite gap detection during study sessions
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 28/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Quiet
- Tech stack
- nodejs, typescript
Research direction
This is a new calibration loop around palee test and palee tutor: prompts must score conceptual, practical, debug, and Feynman dimensions and emit the assessment_proposal JSON in the issue. Candidate depends_on edges must go through detectCycle() and an anomaly gate before a y/N confirmation; approved changes update difficulty and depends_on in note frontmatter atomically without rewriting the body. Done means the listed acceptance criteria hold; no source paths are named in the issue, so start from the existing test/tutor CLI entry points and graph helpers.
Written by the indexing model from the issue text.
Description
Context and Problem Statement
When onboarding a large curriculum (such as 25 modules in comprehensive study guides), two major friction points occur:
- Inaccurate Static Difficulty: Assigning a blanket difficulty rating during initial adoption is only a placeholder. Cognitive difficulty varies significantly depending on the learner's experience.
- Impractical Dependency Wiring: Expecting a learner to manually wire hundreds of depends_on relationships upfront creates substantial onboarding friction.
We need the system to dynamically learn, calibrate, and refine topic difficulty ratings and prerequisite relationships as the learner actively studies and tests their knowledge.
Proposed Solution
Leverage palee test and palee tutor as an active evaluation and calibration loop:
- Cognitive Rubric Evaluation (Bloom's Taxonomy):
During test dialogues, evaluate learner understanding across four distinct dimensions:
- Conceptual: Core definitions, mental models, and principles.
- Practical: CLI commands, syntax, and standard configurations.
- Debug: Edge cases, incident diagnosis, and underlying OS/system behaviors.
- Feynman: Plain-language explanatory ability.
Based on learner responses and the intrinsic depth of the note, the AI suggests updating the topic's difficulty (eginner, intermediate, dvanced).
-
Prerequisite Gap Detection:
If a learner struggles with a topic due to an unmastered prerequisite (for example, attempting to debug Kubernetes Ingress without understanding ClusterIP Services), the AI identifies the missing concept in the vault and suggests adding it to depends_on. -
Human Confirmation Gate:
The AI never modifies files directly. It returns a structured proposal with explicit evidence. PALEE validates the proposal against graph invariants (cycle detection) and requires human confirmation before writing changes to the note frontmatter.
Proposed Implementation
Structured Assessment Proposal Schema
The AI output schema will include candidate metadata adjustments:
json { "type": "assessment_proposal", "topic_id": "T-k8s-ingress", "scores": { "conceptual": 0.85, "practical": 0.70, "debug": 0.40, "feynman": 0.75 }, "suggested_difficulty": "intermediate", "suggested_dependencies": [ { "topic_id": "T-k8s-services", "reason": "Understanding ClusterIP packet routing is required before debugging Ingress controller proxying." } ], "evidence": "Demonstrated solid understanding of routing rules, but struggled when upstream service endpoints were unready." }
Invariant & Anomaly Checks
- Graph Cycle Detection: Candidate dependencies are checked with detectCycle() before display.
- Anomaly Gate: If mastery score jumps unexpectedly (>0.40 in under 10 minutes), require typing explicit CONFIRM.
- Frontmatter Updates: On user approval, update difficulty and depends_on atomically, preserving existing custom properties.
Acceptance Criteria
- Prompts for palee test include cognitive evaluation criteria across conceptual, practical, debug, and Feynman dimensions.
- AI session returns structured proposal with difficulty adjustments, prerequisite suggestions, and evidence.
- Graph cycle check runs on all candidate dependencies before presenting to the user.
- User is presented with a clear summary and must confirm (y/N) before changes are applied.
- Anomaly checks trigger on out-of-band score increases.
- Frontmatter updates are atomic and preserve note body and tags.
- Dominant language
- TypeScript
- Stars
- 1
- Forks
- 0
- Avg merge
- 1d 1h
- Merged PRs (30d)
- 132
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- No contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from Kuldeep2822k/cli
-
core priority: low refactor
Difficulty 1/5 Under an hour Newbie friendliness 82/100
Kuldeep2822k/cli#373 ·
Maintainers usually reply within 1 day
-
regenerateIndex wikilinks the frontmatter session_id, not the filename (dangling index entries)Openbug core priority: low
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
Kuldeep2822k/cli#359 ·
Maintainers usually reply within 1 day
-
core documentation priority: low
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
Kuldeep2822k/cli#357 ·
Maintainers usually reply within 1 day
-
bug core priority: low
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Kuldeep2822k/cli#344 · 1 comment ·
Maintainers usually reply within 1 day
-
bug core priority: low
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
Kuldeep2822k/cli#343 · 1 comment ·
Maintainers usually reply within 1 day
All issues in Kuldeep2822k/cli
Similar issues
-
useFragment does not require `variables` when the fragment's variables type has required fieldsOpen
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
apollographql/apollo-client#13493 ·
Maintainers usually reply within 1 day
-
Custom hosts written as trailing-dot FQDNs (`host.local.`) aren't detected as local backendsPossibly taken @roboomp claimed this today. Openbug prio:p2 providers triaged
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
can1357/oh-my-pi#15798 · 3 comments ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
code-yeongyu/oh-my-openagent#10172 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
PDFCraftTool/pdfcraft#189 ·
-
Add the Yahoo chart API duplicate last-day row (yfinance#573) to incidents.md (about 1 hour)Possibly taken A pull request linked to this issue is open or already merged. Opendata docs good first issue
Difficulty 1/5 Under an hour Newbie friendliness 80/100
pacocartones/market-data-sanity-checker#160 ·
Maintainers usually reply within 1 day