Skip to content

Conversation

@mytreya-rh
Copy link

@mytreya-rh mytreya-rh commented Dec 20, 2025

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: myga

A new plugin providing four interactive commands for personalized code learning:

  1. /myga:start [topic] - Interactive learning sessions

    • Adaptive difficulty based on user responses
    • Real code examples from the current codebase
    • Socratic teaching method with hands-on exercises
    • Progress tracking across sessions
  2. /myga:challenge [topic-or-difficulty] - Coding challenges

    • Realistic tasks tailored to the codebase
    • Progressive 5-level hint system
    • Automated test verification
    • Detailed solution reviews
    • Difficulty levels: Easy, Medium, Hard
  3. /myga:assess [topic] - Knowledge assessments

    • Adaptive testing with multiple question types
    • Immediate feedback with explanations
    • Detailed skill breakdown and progress tracking
    • Personalized learning recommendations
  4. /myga:path - Learning roadmap

    • Visual progress tracking across all topics
    • Skill mastery levels (Beginner → Expert)
    • Topic dependencies and unlock criteria
    • Learning analytics and achievement system
    • Export reports for sharing

Key Features

  • 🎓 Adaptive Learning - Content difficulty adjusts based on user responses
  • 🎯 Codebase-Aware - All examples use actual code from the current repository
  • 📊 Progress Tracking - Local storage of learning progress (.work/myga/)
  • 🏆 Gamification - Achievements, streaks, and skill levels for motivation
  • 💡 Interactive - Questions, exercises, and real-time feedback
  • 🗺️ Structured Paths - Topic dependencies and recommended learning sequences

Use Cases

  • Onboarding - New team members learn the codebase interactively
  • Skill Development - Developers practice specific technologies
  • Knowledge Validation - Assess understanding before complex tasks
  • Continuous Learning - Regular practice sessions to build mastery

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 plugin
  • PLUGINS.md - Auto-generated plugin documentation
  • docs/data.json - Website data updated

Data Storage

Learning progress stored locally in .work/myga/:

  • Topic progress and session history
  • Challenge completions and workspaces
  • Assessment results with timestamps
  • Exported learning reports

Testing

  • ✅ All linter checks pass (make lint)
  • ✅ Plugin structure validated with claudelint
  • ✅ Documentation auto-generated successfully
  • ✅ Follows repository conventions from AGENTS.md
  • ✅ Command definitions follow man page format

Example Usage

# Install the plugin
/plugin install myga@ai-helpers

# Start an interactive learning session
/myga:start

# Get a coding challenge
/myga:challenge kubernetes

# Take an assessment
/myga:assess

# View your learning roadmap
/myga:path

Documentation

Comprehensive documentation provided in:

  • plugins/myga/README.md - Plugin overview and examples
  • plugins/myga/commands/*.md - Detailed command specifications
  • Each command follows the standard format: Name, Synopsis, Description, Implementation, Examples, Arguments

Future Enhancements

Potential future improvements (not in this PR):

  • Skills files for complex implementations
  • Integration with assessment databases
  • Challenge templates for common patterns
  • Team-wide progress tracking
  • Custom curriculum support

Checklist

  • Plugin structure follows repository conventions
  • All commands have complete documentation
  • Frontmatter includes description and argument-hint
  • Implementation sections provide detailed steps
  • Examples demonstrate realistic usage
  • Registered in marketplace.json
  • Linter passes without errors
  • README.md includes comprehensive overview
  • Respects ethical guidelines (no references to real people)

Related

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 knowledge

Make Yourself Great Again! 🚀

Summary by CodeRabbit

  • New Features
    • Introduced MYGA plugin for interactive code tutoring and learning within your codebase
      • assess: Evaluate your understanding with adaptive knowledge assessments
      • challenge: Practice coding skills with codebase-based challenges
      • path: View and track your personalized learning roadmap
      • start: Begin interactive learning sessions on specific topics

✏️ Tip: You can customize this high-level summary in your review settings.

Drop 1: Adds command to interactively tutor and detox yourself from AI dependence.
@openshift-ci openshift-ci bot added the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Dec 20, 2025
@openshift-ci
Copy link

openshift-ci bot commented Dec 20, 2025

Skipping CI for Draft Pull Request.
If you want CI signal for your change, please convert it to an actual PR.
You can still manually trigger a test run with /test all

@openshift-ci
Copy link

openshift-ci bot commented Dec 20, 2025

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: mytreya-rh
Once this PR has been reviewed and has the lgtm label, please assign brandisher for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Dec 20, 2025

Walkthrough

A 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

Cohort / File(s) Change Summary
Plugin Registration
.claude-plugin/marketplace.json, docs/data.json
Added plugin metadata entry across registry files with name "myga", version 0.0.1, description, and four commands (assess, challenge, path, start) with argument hints and synopses.
Plugin Manifest & Index
plugins/myga/.claude-plugin/plugin.json, PLUGINS.md
Added plugin descriptor file with name, description, version, and author metadata; indexed new plugin in documentation.
Plugin Documentation
plugins/myga/README.md
Introduced comprehensive README documenting plugin purpose, features, usage examples, learning workflows, skill levels, data storage, best practices, and integration guidance.
Command Specifications
plugins/myga/commands/assess.md, plugins/myga/commands/challenge.md, plugins/myga/commands/path.md, plugins/myga/commands/start.md
Added four command documentation files detailing implementation phases, behavior flows, example outputs, arguments, prerequisites, best practices, and result formats for interactive learning commands.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

  • Verify plugin metadata consistency across .claude-plugin/marketplace.json, docs/data.json, and plugins/myga/.claude-plugin/plugin.json
  • Confirm command definitions (names, argument hints, synopses) align across documentation files
  • Check README accuracy and completeness against command specifications
  • Validate documentation structure and clarity for user-facing help content

Pre-merge checks and finishing touches

✅ Passed checks (7 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly identifies the main change: introduction of the MYGA plugin, a learning tool, which aligns with the primary purpose of this pull request.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
No Real People Names In Style References ✅ Passed No real people's names found in style references, plugin commands, skill documentation, or example prompts throughout MYGA plugin files.
No Assumed Git Remote Names ✅ Passed The myga plugin files contain no git commands and no hardcoded git remote names such as 'origin' or 'upstream'.
Git Push Safety Rules ✅ Passed The MYGA plugin contains no git push commands, force push variants, or autonomous push operations. It is a purely educational tool for interactive learning.
No Untrusted Mcp Servers ✅ Passed The MYGA plugin adds documentation and metadata without introducing any MCP server installations from untrusted sources.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Contributor

@coderabbitai coderabbitai bot left a 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` or markdown`) 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

📥 Commits

Reviewing files that changed from the base of the PR and between 47cd45c and e0579f8.

📒 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 myga plugin 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 empty skills and hooks arrays 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
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

find . -name "PLUGINS.md" -o -name "challenge.md" | head -20

Repository: 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.md

Repository: openshift-eng/ai-helpers

Length of output: 319


🏁 Script executed:

# Check PLUGINS.md for git plugin commands
grep -n "git" ./PLUGINS.md | head -50

Repository: 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 -100

Repository: 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
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

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.

Suggested change
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.

Comment on lines +372 to +374
- **Main README**: `/home/mykastur/forks/ai-helpers/README.md`
- **Plugin Development**: `/home/mykastur/forks/ai-helpers/AGENTS.md`
- **Other Plugins**: Browse `/plugins/` directory
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

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.

Suggested change
- **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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant