| name | study-summary |
| description | Saves learning notes from the current conversation. Classic mode makes concise notes, Mastery mode keeps detailed training artifacts. |
study-summary - Learning Notes Generator
Learning notes generator with two modes:
(๋ ๊ฐ์ง ๋ชจ๋๋ฅผ ์ง์ํ๋ ํ์ต ๋
ธํธ ์์ฑ ์คํฌ)
- Classic: concise recap for quick review
- Mastery: detailed record with rules, misconceptions, and seed code history
Instructions
Terminology Policy (์ด์ฌ์ ์นํ ์ฉ์ด ๊ท์น)
Use Korean-first wording in the note where possible, and keep English terms in parentheses when needed.
(๋
ธํธ ๋ณธ๋ฌธ์ ๊ฐ๋ฅํ ํ ํ๊ตญ์ด ์ฐ์ ์ผ๋ก ์ฐ๊ณ , ํ์ํ ๊ฒฝ์ฐ ์์ด ์ฉ์ด๋ฅผ ๊ดํธ๋ก ๋ณ๊ธฐํ๋ค.)
If a technical term appears for the first time in the note, add a one-line plain explanation.
(๊ธฐ์ ์ฉ์ด๊ฐ ์ฒ์ ๋์ค๋ฉด ํ ์ค ์ฌ์ด ์ค๋ช
์ ๋ง๋ถ์ธ๋ค.)
Examples:
(์์)
๊ฒฉ๋ฆฌ ๊ฒฝ๊ณ (isolation boundary): actor ์ธ๋ถ์์ ๋ด๋ถ ์ํ๋ฅผ ์ง์ ๋ฐ๊พธ์ง ๋ชปํ๊ฒ ํ๋ ๊ฒฝ๊ณ
๊ฒฝํฉ ์ํ (data race): ๋์์ ๊ฐ์ ๊ฐ์ ๋ฐ๊ฟ์ ๊ฒฐ๊ณผ๊ฐ ๊ผฌ์ด๋ ๋ฌธ์
Step 0: Language Selection
Ask the user to choose a language at the start using a selection flow, not free-form text input.
(์คํฌ ์์ ์ ์์ ์
๋ ฅ์ด ์๋๋ผ ์ ํํ ๋ฐฉ์์ผ๋ก ์ธ์ด๋ฅผ ๋ฐ๋๋ค)
- ํ๊ตญ์ด - ํ๊ตญ์ด๋ก ๋
ธํธ๋ฅผ ์์ฑํฉ๋๋ค
- English - Write notes in English
Use platform-specific selection behavior:
- Codex CLI: use native option selection (
request_user_input with 2 options) when available. If unavailable, show numbered choices and ask for 1 or 2.
- Claude Code: use native option selection UI when available. If unavailable, show numbered choices.
- Gemini CLI: use native option selection UI when available. If unavailable, show numbered choices.
Choice mapping: 1 โ ํ๊ตญ์ด, 2 โ English
Use the selected language for the note content and all communication. Code and Swift keywords stay in English.
(์ ํํ ์ธ์ด๋ก ๋
ธํธ ๋ด์ฉ๊ณผ ์ํต์ ์งํํ๋ค. ์ฝ๋์ Swift ํค์๋๋ ์์ด ๊ทธ๋๋ก ์ ์งํ๋ค.)
Study Mode Selection
Ask the user to choose a study mode using the same selection pattern:
(๊ฐ์ ์ ํ ๋ฐฉ์์ผ๋ก ํ์ต ๋ชจ๋๋ฅผ ์ ํํ๊ฒ ํ๋ค)
Choice mapping:
(์ ํ๊ฐ ๋งคํ)
1 -> Classic
2 -> Mastery
Prompt example:
(์๋ด ๋ฌธ๊ตฌ ์์)
- Korean:
"ํ์ต ๋
ธํธ ๋ชจ๋๋ฅผ ์ ํํด์ฃผ์ธ์. ๋ฒํธ๋ก ๋ตํด์ฃผ์ธ์.\n\n1) Classic (์ค๋ช
์ค์ฌ, ์ถ์ฒ)\n- ํต์ฌ ์์ฃผ๋ก ๊ฐ๊ฒฐํ๊ฒ ์ ๋ฆฌ\n- ๋น ๋ฅธ ๋ณต์ต์ ์ ํฉ\n\n2) Mastery (ํ๋ จ ์ค์ฌ)\n- ๊ท์น/ํผ๋ ํฌ์ธํธ/seed ์ฝ๋๊น์ง ์์ธ ๊ธฐ๋ก\n- ๋ค์ ์ธ์
์ฐ๊ณ ํ์ต์ ์ ํฉ"
- English:
"Choose a notes mode (reply with a number):\n\n1) Classic (Explanation-first, Recommended)\n- Concise notes focused on core points\n- Best for quick review\n\n2) Mastery (Practice-first)\n- Detailed notes with rules, confusion points, and seed code history\n- Best for follow-up training"
After selection, briefly confirm mode and continue.
(์ ํ ์งํ ๋ชจ๋๋ฅผ ์งง๊ฒ ํ์ธํ๊ณ ์งํํ๋ค.)
Step 1: Analyze Conversation
Scan the current conversation to identify:
(ํ์ฌ ๋ํ๋ฅผ ์ค์บํ์ฌ ๋ค์์ ํ์
ํ๋ค)
If the conversation used the Core Loop format (Phase 1-3):
(Core Loop ํ์์ ๋ํ์๋ค๋ฉด)
- Mystery Hook code and the learner's initial prediction
- Each SEED code from the Core Loop cycles
์์ธกํ๊ธฐ (PREDICT) ๊ฒฐ๊ณผ: ์ด๋ค ๋ต๋ณ์ด ํต๊ณผ/๋ณด์์ด์๋์ง
ํด์คํ๊ธฐ (REVEAL) ๋ด์ฉ๊ณผ ASCII ๋ค์ด์ด๊ทธ๋จ
ํ ์ค ์ ๋ฆฌ (RESTATE)์์ ํ์ต์๊ฐ ์ ๋ฆฌํ ๋ฌธ์ฅ
- Anchor output: the learner's "if X, then Y" rules
- Anchor output: the learner's stated misconception/confusion
- Sources cited (SE proposals, WWDC, Apple docs)
If the conversation used the old format or free-form discussion:
(์ด์ ํ์์ด๋ ์์ ํ ๋ก ์ด์๋ค๋ฉด)
- Topics covered
- Key concepts explained
- Code examples shown
- Questions asked and answers given
- Areas where the learner struggled or excelled
Step 2: Confirm Topics
Use AskUserQuestion to confirm what to include:
(AskUserQuestion์ผ๋ก ํฌํจํ ๋ด์ฉ์ ํ์ธํ๋ค)
- ์ ์ฒด ์ ๋ฆฌ / Everything - ์ด ๋ํ์์ ํ์ตํ ๋ชจ๋ ๋ด์ฉ์ ์ ๋ฆฌ / Summarize all topics
- ๋ง์ง๋ง ์ฃผ์ ๋ง / Last topic only - ๊ฐ์ฅ ์ต๊ทผ์ ๋ค๋ฃฌ ์ฃผ์ ๋ง ์ ๋ฆฌ / Only the most recent topic
Step 3: Generate Note
Create a Markdown note. Use the appropriate structure based on what was found in Step 1.
(๋งํฌ๋ค์ด ๋
ธํธ๋ฅผ ์์ฑํ๋ค. Step 1์์ ํ์
ํ ๋ด์ฉ์ ๋ฐ๋ผ ์ ์ ํ ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ๋ค.)
File path: notes/YYYY-MM-DD-<topic-in-english>.md
ํ
ํ๋ฆฟ ๋ถ๊ธฐ ๊ธฐ์ค (Mode routing):
(๋ชจ๋๋ณ ํ
ํ๋ฆฟ ๋ผ์ฐํ
)
- Mastery mode: use the Core Loop detailed template below.
- Classic mode: use the concise template below unless the user explicitly asks for detailed Core Loop format.
Mastery template (Core Loop detailed):
(Mastery ํ
ํ๋ฆฟ: Core Loop ์์ธํ)
# <Topic>
> Date: YYYY-MM-DD
## My Rules (from Anchor)
1. if X, then Y
2. if X, then Y
3. if X, then Y
## Where I Got Confused
- (learner's own description from Anchor phase)
## Key Mechanisms
(ํด์คํ๊ธฐ(REVEAL) ๋จ๊ณ์์ ์ฌ์ฉํ ASCII ๋ค์ด์ด๊ทธ๋จ๊ณผ ์ฌ์ด ์ค๋ช
)
## Seed Codes (for review)
### Cycle 1 (easy)
```swift
// seed code from cycle 1
Answer: ...
Cycle 2 (medium)
Answer: ...
Cycle 3 (hard)
Answer: ...
Sources
- SE-XXXX: ...
- WWDC session: ...
- Apple docs: ...
Review Questions
- (generated from the session's key concepts)
- ...
- ...
Generated by /study-summary
**Classic template (concise recap):**
(Classic ํ
ํ๋ฆฟ: ๊ฐ๊ฒฐ ์์ฝํ)
```markdown
# <Topic>
> Date: YYYY-MM-DD
## Key Concepts
1. **Concept 1**: one-line explanation
2. **Concept 2**: one-line explanation
3. **Concept 3**: one-line explanation
## Code Examples
```swift
// key code examples from the session
Summary
(3-5 lines summarizing the core content)
Review Questions
- ...
- ...
- ...
Generated by /study-summary
### Step 4: Save Note
Use the Write tool to save the note to the `notes/` directory.
(Write tool์ ์ฌ์ฉํ์ฌ `notes/` ๋๋ ํ ๋ฆฌ์ ๋
ธํธ๋ฅผ ์ ์ฅํ๋ค.)
### Step 5: Update Learning Progress
Record learning progress in memory using `mcp__plugin_everything-claude-code-ios_memory__add_observations` (or `create_entities` if the entity doesn't exist yet):
(memory์ ํ์ต ์ง๋๋ฅผ ๊ธฐ๋กํ๋ค)
Entity: `SwiftLearningProgress`
**If mode is Mastery (or detailed Core Loop template used):**
(Mastery ๋ชจ๋์ด๊ฑฐ๋ Core Loop ์์ธ ํ
ํ๋ฆฟ์ ์ฌ์ฉํ์ผ๋ฉด)
Observations:
- "YYYY-MM-DD: completed (<level: beginner/intermediate/advanced>)"
- "YYYY-MM-DD: misconception: "
- "YYYY-MM-DD: gates: cycle1 <ํต๊ณผ/๋ณด์>, cycle2 <ํต๊ณผ/๋ณด์>, cycle3 <ํต๊ณผ/๋ณด์>"
**If mode is Classic (concise template used):**
(Classic ๋ชจ๋์ ๊ฐ๊ฒฐ ํ
ํ๋ฆฟ์ ์ฌ์ฉํ์ผ๋ฉด)
Observations:
- "YYYY-MM-DD: completed ()"
- "YYYY-MM-DD: weak area: "
### Step 6: Wrap Up
After saving, inform the user:
(์ ์ฅ ์๋ฃ ํ ์๋ด)
Notes saved: notes/YYYY-MM-DD-.md
Progress recorded:
- Completed: ()
- Misconception tracked:
Continue learning with /swift-study, or review with /swift-quiz.
### Rules
1. **Use the selected language** - from Step 0. Code in English. (์ ํํ ์ธ์ด๋ก ์์ฑ)
2. **Apply mode consistently** - Classic = concise recap, Mastery = detailed training artifacts (๋ชจ๋ ์ผ๊ด์ฑ ์ ์ง)
3. **Prioritize learner's own words** - Anchor rules and misconceptions should be quoted from the learner, not rewritten. (ํ์ต์ ๋ณธ์ธ์ ํํ์ ์ฐ์ ํ๋ค)
4. **Include seed codes in Mastery** - preserve cycle code snippets for later review. (Mastery์์๋ seed ์ฝ๋ ํฌํจ)
5. **Specific misconception tracking** - not "weak area: concurrency" but "misconception: thought state preserved across await". (๊ตฌ์ฒด์ ์ธ misconception ๊ธฐ๋ก)
6. **Review questions required** - at least 3 self-check questions. (๋ณต์ต ์ง๋ฌธ ์ต์ 3๊ฐ)
7. **Progress tracking required** - always save to memory. (์ง๋ ๊ธฐ๋ก ํ์)
8. **Graceful fallback** - work with old-format sessions too. (์ด์ ํ์ ์ธ์
๋ ์ง์)
9. **No emojis** - clean Markdown only. (์ด๋ชจ์ง ์ฌ์ฉ ๊ธ์ง)