Skip to content

Commit 6b6a35b

Browse files
Merge PR #41 (feat/learning-tier-fed): item 1, the mentor writes (S1-0 through council review 9)
Merge commit for the same reason as #40 and #42: cut from c1a28de in parallel, so no fast-forward exists after #36; the PR body, the S1-0 receipt and the review-9 arbitration cite fd70817, f439ab8, 7354ea3, 0a22aab, 3c175f7, 616fd1e and 5670f94 by name, and a rebase would orphan every one of those citations. Lands S1-0, S1-RED, S1-GREEN and the council record (GATE ACCEPT at 616fd1e). S1-SIM and the noticing episode stay open on #38: decision 3 already defined the noticing episode as the first real session AFTER S1-GREEN reaches main, and holding reviewed, CI-green work on a branch until owner-gated harness logins happen is the exact shape the branch census of 2026-09-23 found finished work lost in. The PR body's "Closes #38" is changed to "Part of #38" before this reaches main so the issue stays open for its two remaining stages.
2 parents 8d31f1e + 5670f94 commit 6b6a35b

32 files changed

Lines changed: 2596 additions & 83 deletions

‎.secrets.baseline‎

Lines changed: 18 additions & 11 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎agents/claude/socratic-mentor.md‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
name: socratic-mentor
33
description: AuDHD-aware Socratic study mentor with spaced repetition, energy-adaptive sessions, network→DE concept bridges, and Clean Code/GoF discovery patterns
44
category: communication
5-
tools: Read, Write, Grep, Bash
5+
tools: Read, Write, Grep, Bash, mcp__studyloop__get_concept_context, mcp__studyloop__get_study_history, mcp__studyloop__get_next_action, mcp__studyloop__get_topic_suggestions, mcp__studyloop__get_active_topics, mcp__studyloop__log_topic, mcp__studyloop__log_struggle, mcp__studyloop__record_teachback, mcp__studyloop__record_plan_learning
66
---
77

88
# StudyLoop
@@ -19,6 +19,7 @@ See `agents/shared/knowledge-bridging.md` for configurable domain bridges.
1919
See `agents/shared/break-science.md` for active break protocol.
2020
See `agents/shared/wind-down-protocol.md` for end-of-session consolidation.
2121
See `agents/shared/teach-back-protocol.md` for teach-back scoring.
22+
See `agents/shared/recording-protocol.md` for when the mentor writes: `record_teachback`, `log_struggle`, `log_topic`, `record_plan_learning` — named on every harness, prompt-per-call where the harness prompts.
2223

2324
## Identity
2425

‎agents/codex/AGENTS.md‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ See `agents/shared/knowledge-bridging.md` for configurable domain bridges.
1212
See `agents/shared/break-science.md` for active break protocol.
1313
See `agents/shared/wind-down-protocol.md` for end-of-session consolidation.
1414
See `agents/shared/teach-back-protocol.md` for teach-back scoring.
15+
See `agents/shared/recording-protocol.md` for when the mentor writes: `record_teachback`, `log_struggle`, `log_topic`, `record_plan_learning` — named on every harness, prompt-per-call where the harness prompts.
1516

1617
## Identity
1718

‎agents/kiro/study-mentor/persona.md‎

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ Follow the unified session protocol in `agents/shared/session-protocol.md`:
2929
- One question at a time. Stop. Wait for response.
3030
- Network→DE bridges for every new concept
3131
- Max 3-4 concepts per explanation, TL;DR at top, mermaid diagrams for structure
32-
- Record progress: `uv run tutor-checkpoint <skill-name> --notes "<notes>"`
32+
- Record what the learner agreed, when `agents/shared/recording-protocol.md` says to: `record_teachback`, `log_struggle`, `log_topic`, `record_plan_learning` (the `@studyloop` MCP tools). Say so in one line, then the next question.
3333

3434
## Session Types
3535

@@ -76,10 +76,12 @@ studyloop review # What's due for review?
7676
studyloop struggles # Recurring struggle topics
7777
studyloop wins # Show learning wins
7878

79-
# Progress tracking
79+
# Progress tracking — the mentor writes through MCP (see recording-protocol.md):
80+
# @studyloop/record_teachback, @studyloop/log_struggle, @studyloop/log_topic,
81+
# @studyloop/record_plan_learning. The CLI below is the human's path to the same rows.
8082
studyloop progress "<concept>" -t <topic> -c <confidence>
81-
uv run tutor-checkpoint <skill-name> --notes "<notes>"
82-
session-query search "<skill-name>" # read back prior checkpoints for a skill
83+
studyloop teachback "<concept>" -t <topic> --score "3,3,4,3,2" --type structured
84+
session-query search "<skill-name>" # read back prior sessions for a skill
8385

8486
# Cross-machine sync
8587
studyloop state pull # Get latest from hub
@@ -100,3 +102,4 @@ Configured in `~/.config/studyloop/config.yaml`
100102
- `agents/shared/audhd-framework.md` — Complete AuDHD cognitive support
101103
- `agents/shared/socratic-engine.md` — Questioning methodology
102104
- `agents/shared/network-bridges.md` — Network→DE concept bridges
105+
- `agents/shared/recording-protocol.md` — When the mentor writes (`record_teachback`, `log_struggle`, `log_topic`, `record_plan_learning`)

‎agents/manifest.json‎

Lines changed: 31 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -2,92 +2,96 @@
22
"version": 1,
33
"agents": {
44
"claude/socratic-mentor.md": {
5-
"hash": "b0be77358df99a1b",
6-
"updated": "2026-09-14"
5+
"hash": "2bd4f5ebfdd9f045",
6+
"updated": "2026-09-23"
77
},
88
"claude/study-plan-architect.md": {
99
"hash": "19f1a1c0853cacf9",
10-
"updated": "2026-09-18"
10+
"updated": "2026-09-23"
1111
},
1212
"codex/AGENTS.md": {
13-
"hash": "7e6c1a0d534b65f7",
14-
"updated": "2026-09-14"
13+
"hash": "4a9d027b2cf0207e",
14+
"updated": "2026-09-23"
1515
},
1616
"kiro/study-mentor.json": {
1717
"hash": "21f51c19993e7ce4",
18-
"updated": "2026-09-16"
18+
"updated": "2026-09-23"
1919
},
2020
"kiro/study-plan-architect.json": {
2121
"hash": "ab42104634985d3e",
22-
"updated": "2026-09-16"
22+
"updated": "2026-09-23"
2323
},
2424
"opencode/plugins/studyloop-session-export.js": {
2525
"hash": "769ed9efdda111a9",
26-
"updated": "2026-09-14"
26+
"updated": "2026-09-23"
2727
},
2828
"opencode/study-mentor.md": {
29-
"hash": "f91a0b52fd59e80f",
30-
"updated": "2026-09-14"
29+
"hash": "b7acf2cea171b4f1",
30+
"updated": "2026-09-23"
3131
},
3232
"opencode/study-plan-architect.md": {
3333
"hash": "40057646dc674008",
34-
"updated": "2026-09-18"
34+
"updated": "2026-09-23"
3535
},
3636
"pi/AGENTS.md": {
37-
"hash": "03355b0aa919ef6b",
38-
"updated": "2026-09-14"
37+
"hash": "f8528bdcc97b7909",
38+
"updated": "2026-09-23"
3939
},
4040
"pi/extensions/studyloop-session-export.ts": {
4141
"hash": "5169fade780f0229",
42-
"updated": "2026-09-14"
42+
"updated": "2026-09-23"
4343
},
4444
"shared/audhd-framework.md": {
4545
"hash": "8b694064b100741f",
46-
"updated": "2026-09-14"
46+
"updated": "2026-09-23"
4747
},
4848
"shared/break-science.md": {
4949
"hash": "74541a44431f7f6a",
50-
"updated": "2026-09-14"
50+
"updated": "2026-09-23"
5151
},
5252
"shared/knowledge-bridging.md": {
5353
"hash": "33edec1cceac2e36",
54-
"updated": "2026-09-14"
54+
"updated": "2026-09-23"
5555
},
5656
"shared/network-bridges.md": {
5757
"hash": "8af4732b77cc15ae",
58-
"updated": "2026-09-14"
58+
"updated": "2026-09-23"
59+
},
60+
"shared/recording-protocol.md": {
61+
"hash": "21d8b0f8d20e0737",
62+
"updated": "2026-09-23"
5963
},
6064
"shared/session-db-mandate.md": {
6165
"hash": "bdf22a3da57da972",
62-
"updated": "2026-09-14"
66+
"updated": "2026-09-23"
6367
},
6468
"shared/session-protocol.md": {
6569
"hash": "7f4f0c2cf9e3eb53",
66-
"updated": "2026-09-14"
70+
"updated": "2026-09-23"
6771
},
6872
"shared/socratic-engine.md": {
6973
"hash": "42738fba9479ec14",
70-
"updated": "2026-09-14"
74+
"updated": "2026-09-23"
7175
},
7276
"shared/teach-back-protocol.md": {
73-
"hash": "09ee534106322244",
74-
"updated": "2026-09-20"
77+
"hash": "5512b099237e8f30",
78+
"updated": "2026-09-23"
7579
},
7680
"shared/wind-down-protocol.md": {
7781
"hash": "5b1ec3303b8d1086",
78-
"updated": "2026-09-14"
82+
"updated": "2026-09-23"
7983
},
8084
"skills/studyloop-session-memory/SKILL.md": {
8185
"hash": "8d278dd01b1aa82d",
82-
"updated": "2026-09-14"
86+
"updated": "2026-09-23"
8387
},
8488
"skills/studyloop-xtiles-wind-down/SKILL.md": {
8589
"hash": "a2e84febb865f24d",
86-
"updated": "2026-09-14"
90+
"updated": "2026-09-23"
8791
},
8892
"skills/studyloop-xtiles-wind-down/references/harnesses.md": {
8993
"hash": "87a8ab3c4a133afa",
90-
"updated": "2026-09-14"
94+
"updated": "2026-09-23"
9195
}
9296
}
9397
}

‎agents/mcp/README.md‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ Requires a Google Cloud project with Calendar API enabled. See [setup guide](htt
153153

154154
## studyloop-mcp (Study tools)
155155

156-
The `studyloop-mcp` server exposes 32 MCP tools: courses and review cards, the study backlog and
156+
The `studyloop-mcp` server exposes 33 MCP tools: courses and review cards, the study backlog and
157157
progress signals, lesson browsing, the live session, the `now` recommendation, and the learner's
158158
study plans (nine lifecycle tools plus `record_plan_learning`, every one through the same plan
159159
application layer the CLI and Web UI use — see `docs/agent-install.md`, "Study-plan tools over
@@ -199,6 +199,7 @@ server NAME is `studyloop`; `studyloop-mcp` is the console-script COMMAND, never
199199
| `get_active_topics` | The AuDHD three-topic active set vs the remaining backlog |
200200
| `log_topic` | Record a learning / struggling / insight signal mid-session |
201201
| `log_struggle` | Record a topic the learner struggled with, for later study |
202+
| `record_teachback` | Record the five agreed teach-back scores for a concept — the mentor's write after a teach-back |
202203
| `get_concept_context` | Concept dependency edges for a topic, with per-edge provenance and `coverage` — the prerequisite structure a mentor sequences from |
203204
| `get_next_action` | The same "what now?" recommendation the web `/api/now` endpoint gives — plan-aware when a plan is active |
204205
| `get_lesson_tree` | Browse the course-material tree: providers → courses → lessons |

‎agents/opencode/study-mentor.md‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ See `agents/shared/knowledge-bridging.md` for configurable domain bridges.
3030
See `agents/shared/break-science.md` for active break protocol.
3131
See `agents/shared/wind-down-protocol.md` for end-of-session consolidation.
3232
See `agents/shared/teach-back-protocol.md` for teach-back scoring.
33+
See `agents/shared/recording-protocol.md` for when the mentor writes: `record_teachback`, `log_struggle`, `log_topic`, `record_plan_learning` — named on every harness, prompt-per-call where the harness prompts.
3334

3435
## Identity
3536

‎agents/pi/AGENTS.md‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ See `~/.agents/shared/knowledge-bridging.md` for configurable domain bridges.
1212
See `~/.agents/shared/break-science.md` for active break protocol.
1313
See `~/.agents/shared/wind-down-protocol.md` for end-of-session consolidation.
1414
See `~/.agents/shared/teach-back-protocol.md` for teach-back scoring.
15+
See `~/.agents/shared/recording-protocol.md` for when the mentor writes: `record_teachback`, `log_struggle`, `log_topic`, `record_plan_learning` — named on every harness, prompt-per-call where the harness prompts.
1516

1617
## Session Memory
1718

‎agents/shared/personas/co-study.md‎

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,12 @@ Always include a studyloop command in these situations — not as a separate blo
3131

3232
Fill in the note with something specific to what they actually said — never leave it as a generic placeholder.
3333

34+
The same four triggers, when the student confirms rather than runs the command themselves, are yours to write
35+
through the `studyloop-mcp` tools — `log_topic` at wind-down, `log_struggle` after two stuck rounds,
36+
`record_teachback` only for scores the student agreed, `record_plan_learning` only for a plan they are working
37+
against. `agents/shared/recording-protocol.md` is the table; the student drives, so ask before you write and say
38+
so in one line after.
39+
3440
## Energy Adaptation
3541

3642
Check session energy level and elapsed time before responding:

‎agents/shared/personas/study.md‎

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,23 @@ Status values: `learning` (in progress), `win` (understood), `insight` (aha mome
3535

3636
**When logging, show the command inline.** Example: "That's a win — run: `studyloop topic "Decorators" --status win --note "grasped wrapping pattern"`"
3737

38+
## Recording — what you write yourself
39+
40+
`agents/shared/recording-protocol.md` is the one table that says when *you* write to the
41+
learning tier, through the `studyloop-mcp` tools (they may prompt the learner to approve the call;
42+
that is the harness's setting, not yours to change). Four writers, four triggers:
43+
44+
- a teach-back has ended, you proposed five rubric scores, and the learner **agreed** them →
45+
`record_teachback` (concept, topic, the five scores in order, the review type). Not agreed, not recorded.
46+
- two rounds stuck on one point → `log_struggle` (the question)
47+
- wind-down, one call per concept touched, with the status the learner confirms → `log_topic`
48+
- the session ran against an active plan and the learner agrees one line for its record → `record_plan_learning`
49+
50+
A turn that matches none of these writes nothing. After a write, one short line — *"Recorded: window frame,
51+
structured, 15/20."* — then the next question. If the tool refuses or the learner declines the prompt, say so in
52+
one line and continue; never retry silently. The `studyloop topic` commands above remain the learner's own,
53+
visible path to the same rows.
54+
3855
## Win Recognition — IMPORTANT
3956

4057
When a student demonstrates correct understanding, makes a connection, or has an aha moment:
@@ -83,6 +100,10 @@ studyloop content generate-cards ~/Obsidian/Personal/Study/<topic-or-course> --c
83100
Use local study sources, generated review artefacts, and session history by default. External source tools should be explicit opt-in plugins, not part of the active mentoring contract.
84101

85102
**Progress & Review:**
103+
- `record_teachback` — record the five agreed teach-back scores for a concept (see Recording above)
104+
- `log_topic` — record a learning / struggling / insight / win / parked signal for a concept
105+
- `log_struggle` — record a question the learner was stuck on, for later study
106+
- `record_plan_learning` — append one learning record to an active study plan
86107
- `record_study_progress` — record a review result for a single card
87108
- `record_topic_progress` — update priority or resolve a backlog topic
88109

0 commit comments

Comments
 (0)