Repurposed c++ learning agent as a skill so that Scout can run it - #739
Repurposed c++ learning agent as a skill so that Scout can run it#739TylerMSFT wants to merge 4 commits into
Conversation
There was a problem hiding this comment.
🟡 Changes recommended
Unresolved workflow and state-management issues could skip grading, lose progress, or select topics inconsistently.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Pull request overview
Repurposes the C++ learning agent as a persistent Scout-compatible skill.
Changes:
- Adds coaching workflow and learning ledger.
- Documents installation and Scout automation.
- Removes the legacy agent and setup instructions.
File summaries
| File | Summary |
|---|---|
CopilotStore/docs-cpp/skills/advanced-cpp-coach/SKILL.md |
Adds the C++ coaching skill and workflow. |
CopilotStore/docs-cpp/skills/advanced-cpp-coach/cpp-coach-ledger.md |
Adds the learning progress ledger. |
CopilotStore/docs-cpp/skills/advanced-cpp-coach/_readme.md |
Documents installation and automation. |
CopilotStore/docs-cpp/agents/advanced-cpp-coach.agent.md |
Removes the superseded agent. |
CopilotStore/docs-cpp/agents/_readme.txt |
Removes legacy setup instructions. |
Review details
Suppressed comments (7)
CopilotStore/docs-cpp/skills/advanced-cpp-coach/SKILL.md:103
- On the initial teaching turn there are no user answers yet, but these steps require grading and recording a quiz result immediately. That can mark an ungraded lesson as quizzed/mastered and leaves no clear point at which the later response is graded; if answers are absent, record only
taughtand stop until the user replies.
7. **Grade results**: assess the user's answers, explain corrections
briefly.
8. **Update progress**: write the topic's status, date, and quiz score back
to the ledger.
CopilotStore/docs-cpp/skills/advanced-cpp-coach/SKILL.md:93
- With the initial ledger empty, there is no ordered topic inventory or cursor that defines what “the next new topic in chronological standard-version order” means. Unattended runs can therefore choose different topics or repeat/skip material, undermining the stated progression; add an explicit syllabus/seed topic and persist the selection cursor, or define a deterministic selection rule.
3. **Select the next topic**: prefer, in order, (a) continuing an unfinished
topic from the last session, (b) a due spaced-repetition review, (c) the
next new topic in chronological standard-version order. Skip anything
already `mastered` and not due for review.
CopilotStore/docs-cpp/skills/advanced-cpp-coach/SKILL.md:60
- The ledger is placed in the installed skill directory, which the README instructs users to copy under
%USERPROFILE%\\.copilot\\skills\\.... A skill update or reinstall that replaces that directory can erase the mutable learning history, defeating the “persistent, cross-session” requirement. The existingcpp-blog-monitorkeeps state under~/.copilot/cpp-blog-monitor(SKILL.md:71-75); store this ledger in a separate per-user data path and have both instructions use it.
Maintain the ledger at `${SKILL_DIR}/cpp-coach-ledger.md`. Read it at the
start of every session before deciding what to teach, and write to it after
every lesson and quiz. This is what prevents repeating material across
CopilotStore/docs-cpp/skills/advanced-cpp-coach/SKILL.md:63
- Because this explicitly permits multiple rows for one topic but never says which row is authoritative, a later review can leave an older due or low-score row beside a newer mastered row. The selection step then cannot reliably determine mastery or whether the topic is due; use one current-state row per topic or define that the latest
Last coveredrow is authoritative.
Ledger schema (one row per topic per attempt):
CopilotStore/docs-cpp/skills/advanced-cpp-coach/SKILL.md:93
- The documented focused use case (for example, “Explain ranges in C++20”) can be ignored here: the workflow always chooses a ledger topic, even when the user explicitly asked about a different feature. Honor an explicit user-requested topic first, and apply the ledger ordering only when no topic was requested.
3. **Select the next topic**: prefer, in order, (a) continuing an unfinished
topic from the last session, (b) a due spaced-repetition review, (c) the
next new topic in chronological standard-version order. Skip anything
already `mastered` and not due for review.
CopilotStore/docs-cpp/skills/advanced-cpp-coach/_readme.md:1
- The installation step names
SKILL.MD, but the actual file and the path in line 13 areSKILL.md. A literal copy on a case-sensitive filesystem can therefore create a filename the skill loader does not discover; use the exact filename spelling here.
Add SKILL.MD and cpp-coach-ledger.md to %USERPROFILE%\\.copilot\\skills\\advanced-cpp-coach
CopilotStore/docs-cpp/skills/advanced-cpp-coach/_readme.md:13
- This automation is unattended, and the skill explicitly says no-user runs must record
taughtand defer grading until the user responds (SKILL.md:113-116). The unconditional instruction to update the ledger after the quiz can therefore cause Scout to invent or persist a quiz result before any answers exist; make the update conditional on whether the user answered.
Use the Advanced C++ coach skill instructions from %USERPROFILE%\\.copilot\\skills\\advanced-cpp-coach\\SKILL.md. Before teaching, read %USERPROFILE%\\.copilot\\skills\\advanced-cpp-coach\\cpp-coach-ledger.md to see what's already been covered and what's due for review, and follow the skill's session workflow to pick today's topic — don't rely on this automation's pinned session history for continuity. After the lesson and quiz, update the ledger file with the result before finishing. Follow the skill's coaching behavior throughout.
- Files reviewed: 5/5 changed files
- Comments generated: 1
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
No description provided.