-
Notifications
You must be signed in to change notification settings - Fork 192
myga - make yourself great again, a learning tool. #241
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
Drop 1: Adds command to interactively tutor and detox yourself from AI dependence.
|
Skipping CI for Draft Pull Request. |
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: mytreya-rh The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
WalkthroughA new interactive code tutoring plugin named "myga" is introduced, including plugin registration files, manifest configuration, comprehensive README documentation, and detailed specifications for four learning commands: assess, challenge, path, and start. Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~12 minutes
Pre-merge checks and finishing touches✅ Passed checks (7 passed)
✨ Finishing touches🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 3
🧹 Nitpick comments (2)
plugins/myga/commands/path.md (1)
1-558: Excellent comprehensive documentation!The command documentation is thorough, well-organized, and provides clear implementation guidance with multiple detailed examples.
The static analysis tool flags missing language specifiers in fenced code blocks. While the documentation is perfectly readable, adding language hints (e.g.,
text` ormarkdown`) would improve syntax highlighting and accessibility. Given this is a draft PR, you can address these optionally during final polish.plugins/myga/commands/assess.md (1)
1-535: Outstanding documentation with clear structure!The assessment command documentation is comprehensive, covering all phases from setup through progress tracking. The examples and question templates are particularly helpful.
Similar to path.md, the static analysis flags missing language specifiers in fenced code blocks. This is an optional enhancement for better syntax highlighting that can be addressed during final polish.
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Cache: Disabled due to data retention organization setting
Knowledge base: Disabled due to data retention organization setting
📒 Files selected for processing (9)
.claude-plugin/marketplace.json(1 hunks)PLUGINS.md(2 hunks)docs/data.json(1 hunks)plugins/myga/.claude-plugin/plugin.json(1 hunks)plugins/myga/README.md(1 hunks)plugins/myga/commands/assess.md(1 hunks)plugins/myga/commands/challenge.md(1 hunks)plugins/myga/commands/path.md(1 hunks)plugins/myga/commands/start.md(1 hunks)
🧰 Additional context used
🪛 LanguageTool
plugins/myga/commands/assess.md
[style] ~511-~511: The words ‘Explain’ and ‘explanations’ are quite similar. Consider replacing ‘Explain’ with a different word.
Context: ... look up answers during assessment 2. Explain your thinking: For free-text question...
(VERB_NOUN_SENT_LEVEL_REP)
🪛 markdownlint-cli2 (0.18.1)
plugins/myga/commands/assess.md
10-10: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
49-49: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
70-70: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
94-94: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
113-113: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
136-136: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
177-177: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
190-190: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
204-204: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
215-215: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
225-225: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
240-240: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
257-257: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
278-278: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
310-310: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
328-328: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
376-376: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
409-409: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
465-465: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
plugins/myga/commands/path.md
10-10: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
39-39: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
79-79: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
113-113: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
137-137: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
192-192: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
254-254: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
292-292: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
329-329: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
353-353: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
plugins/myga/README.md
237-237: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
plugins/myga/commands/challenge.md
10-10: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
58-58: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
96-96: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
111-111: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
140-140: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
166-166: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
182-182: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
203-203: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
218-218: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
236-236: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
257-257: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
271-271: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
288-288: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
324-324: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
394-394: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
489-489: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
🔇 Additional comments (7)
plugins/myga/.claude-plugin/plugin.json (1)
1-8: LGTM! Well-structured plugin descriptor.The plugin descriptor is clean and follows the standard format with all necessary fields (name, description, version, author).
plugins/myga/commands/start.md (1)
1-436: Comprehensive interactive learning documentation!The documentation clearly explains the adaptive learning approach with excellent examples of interactive sessions. The phase-by-phase implementation guide is well-structured.
PLUGINS.md (1)
19-19: LGTM! Properly integrated plugin documentation.The Myga plugin is correctly added to both the table of contents and the main documentation section, following the same pattern as other plugins in the file.
Also applies to: 191-201
.claude-plugin/marketplace.json (1)
137-141: LGTM! Marketplace registration is correct.The new myga plugin entry is properly structured and consistent with the registration pattern used for other plugins in the marketplace.
plugins/myga/README.md (1)
1-384: Excellent plugin documentation with clear structure!The README provides a comprehensive overview of the MYGA plugin with well-organized sections covering features, commands, workflows, and best practices. The examples and learning journey illustrations are particularly helpful.
plugins/myga/commands/challenge.md (1)
1-503: Excellent challenge documentation with great examples!The challenge command documentation is thorough and engaging, with clear phase-by-phase implementation guidance and realistic interactive session examples that demonstrate the progressive hint system and code review workflow.
docs/data.json (1)
1035-1069: LGTM! Well-structured plugin metadata.The new
mygaplugin entry is correctly formatted and consistent with the established plugin structure in this repository. All four commands (assess, challenge, path, start) have complete metadata with matching synopses and argument hints. The emptyskillsandhooksarrays are appropriate for an initial release, especially given the PR mentions future enhancements for skills files.
| - `/myga:start` - Interactive learning sessions | ||
| - `/myga:assess` - Test your knowledge comprehensively | ||
| - `/myga:path` - View your learning roadmap | ||
| - `/git:feature-summary` - Analyze code changes |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧩 Analysis chain
🏁 Script executed:
find . -name "PLUGINS.md" -o -name "challenge.md" | head -20Repository: openshift-eng/ai-helpers
Length of output: 117
🏁 Script executed:
# Check the content around line 500 in challenge.md
wc -l ./plugins/myga/commands/challenge.md
sed -n '495,505p' ./plugins/myga/commands/challenge.mdRepository: openshift-eng/ai-helpers
Length of output: 319
🏁 Script executed:
# Check PLUGINS.md for git plugin commands
grep -n "git" ./PLUGINS.md | head -50Repository: openshift-eng/ai-helpers
Length of output: 1409
🏁 Script executed:
# Check the git plugin README for more details about these commands
cat ./plugins/git/README.md | head -100Repository: openshift-eng/ai-helpers
Length of output: 894
🏁 Script executed:
# Double-check the git plugin documentation directory to ensure no feature-summary command exists
ls -la ./plugins/git/commands/Repository: openshift-eng/ai-helpers
Length of output: 708
🏁 Script executed:
# Verify there's no feature-summary.md file
grep -r "feature-summary" ./plugins/git/Repository: openshift-eng/ai-helpers
Length of output: 50
Update reference to non-existent git command.
Line 500 references /git:feature-summary, which does not exist in the git plugin. The available git commands are /git:backport, /git:bisect, /git:cherry-pick-by-patch, /git:commit-suggest, /git:debt-scan, /git:suggest-reviewers, and /git:summary. Update to /git:summary to provide an accurate reference for code change analysis.
🤖 Prompt for AI Agents
In plugins/myga/commands/challenge.md around line 500, update the incorrect
reference `/git:feature-summary` to the existing command `/git:summary`; replace
the non-existent command text with `/git:summary` so the document points to the
correct git plugin command for analyzing code changes.
| 2. **Ask questions**: Interrupt with questions anytime | ||
| 3. **Do the exercises**: Hands-on practice solidifies understanding | ||
| 4. **Multiple sessions**: Break learning into digestible chunks | ||
| 5. **Review regularly**: Use `/learn:start` to review completed topics |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fix command reference for consistency.
Line 413 references /learn:start but should be /myga:start to match the plugin namespace.
🔎 Proposed fix
-5. **Review regularly**: Use `/learn:start` to review completed topics
+5. **Review regularly**: Use `/myga:start` to review completed topics📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| 5. **Review regularly**: Use `/learn:start` to review completed topics | |
| 5. **Review regularly**: Use `/myga:start` to review completed topics |
🤖 Prompt for AI Agents
In plugins/myga/commands/start.md around line 413, the help text references the
wrong command `/learn:start`; update that reference to `/myga:start` so it
matches the plugin namespace and other command examples; ensure any nearby
occurrences or cross-references are updated consistently.
| - **Main README**: `/home/mykastur/forks/ai-helpers/README.md` | ||
| - **Plugin Development**: `/home/mykastur/forks/ai-helpers/AGENTS.md` | ||
| - **Other Plugins**: Browse `/plugins/` directory |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fix hardcoded absolute paths to use relative paths.
Lines 372-374 contain hardcoded absolute paths that are specific to a developer's local machine. These should be relative paths for portability across different environments.
🔎 Proposed fix
## See Also
-- **Main README**: `/home/mykastur/forks/ai-helpers/README.md`
-- **Plugin Development**: `/home/mykastur/forks/ai-helpers/AGENTS.md`
-- **Other Plugins**: Browse `/plugins/` directory
+- **Main README**: `../../README.md`
+- **Plugin Development**: `../../AGENTS.md`
+- **Other Plugins**: Browse `../` directory📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| - **Main README**: `/home/mykastur/forks/ai-helpers/README.md` | |
| - **Plugin Development**: `/home/mykastur/forks/ai-helpers/AGENTS.md` | |
| - **Other Plugins**: Browse `/plugins/` directory | |
| - **Main README**: `../../README.md` | |
| - **Plugin Development**: `../../AGENTS.md` | |
| - **Other Plugins**: Browse `../` directory |
🤖 Prompt for AI Agents
In plugins/myga/README.md around lines 372 to 374, the README currently uses
hardcoded absolute paths to a developer's machine; change those to relative
repository paths (for example "./README.md", "./AGENTS.md", and "./plugins/") or
repository-root-relative paths ("README.md", "AGENTS.md", "plugins/") so links
work on other machines and CI; update the three lines to use the chosen relative
paths and ensure any Markdown link formatting remains valid.
Generated by: Cursor with claude-4.5-sonnet MAX
Add MYGA Plugin: Interactive Code Tutoring Platform
Summary
Introduces MYGA (Make Yourself Great Again) - a comprehensive interactive code tutoring and learning platform that helps developers master codebases and frameworks through adaptive, hands-on education.
What's New
Plugin:
mygaA new plugin providing four interactive commands for personalized code learning:
/myga:start [topic]- Interactive learning sessions/myga:challenge [topic-or-difficulty]- Coding challenges/myga:assess [topic]- Knowledge assessments/myga:path- Learning roadmapKey Features
.work/myga/)Use Cases
Technical Details
Files Added
plugins/myga/
├── .claude-plugin/
│ └── plugin.json # Plugin metadata
├── commands/
│ ├── start.md # Interactive learning sessions (345 lines)
│ ├── challenge.md # Coding challenges (447 lines)
│ ├── assess.md # Knowledge assessments (536 lines)
│ └── path.md # Learning roadmap (447 lines)
└── README.md # Comprehensive documentation (387 lines)
Files Modified
.claude-plugin/marketplace.json- Registered new pluginPLUGINS.md- Auto-generated plugin documentationdocs/data.json- Website data updatedData Storage
Learning progress stored locally in
.work/myga/:Testing
make lint)AGENTS.mdExample Usage
Documentation
Comprehensive documentation provided in:
plugins/myga/README.md- Plugin overview and examplesplugins/myga/commands/*.md- Detailed command specificationsFuture Enhancements
Potential future improvements (not in this PR):
Checklist
descriptionandargument-hintRelated
This plugin complements existing plugins:
/jira:solve- Learn while solving issues/prow-job:analyze-test-failure- Learn from failures/utils:generate-test-plan- Apply testing knowledgeMake Yourself Great Again! 🚀
Summary by CodeRabbit
✏️ Tip: You can customize this high-level summary in your review settings.