| name | study-later |
| description | Bookmark a topic or subject for later study. Takes an optional prompt describing what to save; if omitted, infers the subject from the current conversation. Clarifies with the user when the subject is ambiguous. Saves the bookmark to .tutor/saved-topics.jsonl so it appears as a starting option the next time the user runs /tutor:study. |
| user-invocable | true |
| disable-model-invocation | true |
| argument-hint | [description of what to save] |
/tutor:study-later
Save a topic or subject to your study queue. The next time you run /tutor:study with no arguments, the queue appears as a starting option alongside Resume and the normal layer list.
Procedure
1. Determine the topic
If a prompt was given:
Use it as the raw material for the title and description.
- If the prompt is ≤ 10 words and unambiguous, use it as the title and leave the description empty.
- If the prompt is longer, distil a short title (≤ 10 words) and keep the full prompt text as the description.
- If the prompt is ambiguous — e.g. "save this" with no clear referent visible in the conversation — treat it as if no prompt was given and proceed to the inference step below.
If no prompt was given (or the prompt was too ambiguous):
Scan the recent conversation to identify what is being discussed. Produce a proposed title (≤ 10 words) and a one-paragraph description.
If the conversation has no discernible subject (e.g. the session was just opened and nothing has been discussed yet), skip inference and ask the user directly — see step 2.
2. Clarify if needed
Use AskUserQuestion whenever ANY of the following hold:
- The inferred title feels too vague to be useful (e.g. "Something from the chat").
- The description would be empty and the title alone is not self-explanatory.
- The topic could be interpreted in two or more meaningfully different ways.
- The prompt was explicitly ambiguous (e.g. "save this").
When asking, present the proposed title and description (if any) and ask the user to confirm or edit. Keep this to a single question — do not fire multiple clarifying rounds unless the user's answer is itself ambiguous.
3. Optionally map to a layer and topic
If docs/onboarding/index.md exists in the current repo:
- Read the layer table from
index.md.
- For each layer doc listed, check whether the bookmark topic clearly matches a specific layer and topic in
## Topics.
- If an obvious match exists, ask the user (via
AskUserQuestion): "This looks like it maps to <layer> › <topic> — shall I link it? Linking lets /tutor:study navigate directly to that section when you pick this bookmark." Default to linking if the user confirms.
- If no obvious match, or if onboarding docs do not exist, leave
layer and topic as empty strings.
Do not force a match. When in doubt, leave them empty rather than guess.
4. Write to .tutor/saved-topics.jsonl
Append one line to .tutor/saved-topics.jsonl (create the file if it does not exist — no header, raw JSONL):
{"ts":"<UTC YYYY-MM-DDTHH:MM>","type":"saved","title":"<title>","description":"<description>","layer":"<layer-id or empty>","topic":"<topic-name or empty>"}
Use the current UTC time for ts. description may be an empty string when the title is self-contained. layer and topic are empty strings when no mapping was found.
5. Confirm
Tell the user: "Saved <title> to your study queue. Run /tutor:study and choose Saved topics to pick it up later."
See also
${CLAUDE_PLUGIN_ROOT}/references/conventions.md — .tutor/saved-topics.jsonl format and the "studied" tombstone convention.
/tutor:study — reads the queue and surfaces it as a starting option.