Add /whatlang programming language & stack recommender#250
Open
Pdzly wants to merge 2 commits into
Open
Conversation
Interactive quiz that asks adaptive questions about goals, preferences, and constraints, then returns ranked recommendations with percentages, pros/cons, and links to learning resources. Engine is pure TypeScript with zero Discord dependencies for future website reuse. Supports fast-track shortcuts, multi-select questions, scale questions, diversity bias for hobbyists, and integration with existing /learning resources.
Contributor
Author
|
@bristermitten the lint check fails because of out of this pr files FYI |
Contributor
There was a problem hiding this comment.
Pull request overview
Adds a new /whatlang interactive recommender that runs an adaptive quiz and returns ranked language/stack recommendations, integrating with existing learning resources while keeping the recommendation engine Discord-independent.
Changes:
- Introduces a pure TypeScript quiz/scoring engine (questions, targets, scoring, diversity bias) with Bun tests.
- Adds Discord command + interaction listener + renderers for quiz flow, results, sharing, and learning-resource selection.
- Registers the new module in the app module manager.
Reviewed changes
Copilot reviewed 13 out of 13 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| src/modules/recommender/recommender.render.ts | Renders quiz questions, results, share embed, and learning-resources picker UI components. |
| src/modules/recommender/recommender.module.ts | Registers the recommender module and starts session cleanup on init. |
| src/modules/recommender/recommender.listener.ts | Handles button/select interactions, stores quiz sessions, and orchestrates quiz progression. |
| src/modules/recommender/recommender.command.ts | Implements /whatlang command to start an ephemeral quiz session. |
| src/modules/recommender/engine/types.ts | Defines quiz, question, and recommendation target/result types. |
| src/modules/recommender/engine/scoring.ts | Implements weight application, diversity bias, and result computation. |
| src/modules/recommender/engine/quiz.ts | Implements session state machine (next question, answer application, skip, completion). |
| src/modules/recommender/engine/index.ts | Re-exports engine public API and data. |
| src/modules/recommender/engine/engine.test.ts | Adds Bun tests for engine behavior and data validity. |
| src/modules/recommender/engine/data/languages.ts | Adds language recommendation targets with tags and resource links/IDs. |
| src/modules/recommender/engine/data/stacks.ts | Adds stack recommendation targets with components and resource links. |
| src/modules/recommender/engine/data/questions.ts | Adds quiz question set including fast-track, multi-select, and scale questions. |
| src/index.ts | Adds the new RecommenderModule to the module list. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Interactive quiz that asks adaptive questions about goals, preferences, and constraints, then returns ranked recommendations with percentages, pros/cons, and links to learning resources.
Engine is pure TypeScript with zero Discord dependencies for future website reuse. Supports fast-track shortcuts, multi-select questions, scale questions, diversity bias for hobbyists, and integration with existing /learning resources.