save
Save learning content as a TIL file and update MOC and backlog.
Skill by SongYunSeop
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/songyunseop-save
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: documents, writing, productivity
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/save
What's inside
- Skill name
save- Description
- Save learning content as a TIL file and update MOC and backlog. Use when the user says 'save this', 'write up what I learned', 'document this as a TIL', or wants to persist a learning conversation as a note.
- License
- MIT
- Instructions
- 123 lines in SKILL.md · view on GitHub
Files (4)
- SKILL.md
- evals.json · evals/
- trigger-eval.json · evals/
- templates.md · references/
SKILL.md (first lines)
> **TIL_PATH**: All `${TIL_PATH}/...` references below resolve to the vault's configured TIL path (injected at SessionStart). Bash expands `${TIL_PATH}` automatically. For `Read`/`Edit`/`Glob`/`Write` tools, substitute the resolved value before passing it as an argument (e.g. `${TIL_PATH}/SCHEMA.md` → `40-Resources/til/SCHEMA.md`). Default `til` when not injected; call MCP `til_get_path` if you need the current value.
# Save Skill
Learning conversation → Save TIL file → Update MOC/backlog → Review document → Commit.
## MCP Tools
- `til_get_context`: Find related TILs and backlog items
- `til_list`: Check for duplicate existing TILs
- `til_save_note`: Save TIL note (server guarantees frontmatter/path rules, auto_check_backlog auto-checks backlog)
## Step 0: Load Schema and Surface Augmentation Candidates
1. **Read `${TIL_PATH}/SCHEMA.md`** for current TIL conventions. If missing, fall back to built-in defaults and notify the user once: "`${TIL_PATH}/SCHEMA.md` not found — using built-in defaults. Run `/omt-setup` to seed."
- Built-in defaults: required frontmatter `title, date, category, tags, aliases`; `tags` must include `"til"`; body links use `[name](path.md)`, not `[[wiki]]`; cross-references via `related:` frontmatter array.
2. **Surface augmentation candidates** with `til_get_context` (topic = current learning subject, category if known).
- If 1+ related TIL found: present top 3 as candidates and use `AskUserQuestion`: "Augment existing? / Create new?".
- **Augment**: Step 1 reuses the chosen TIL's existing path (skip slug creation). Step 3 uses `Read`→`Edit` on that file instead of `til_save_note`. This is the compounding default — prefer it whenever a clear candidate exists.
- **Create new**: continue with the new-file flow.
- If no candidates: continue with the new-file flow (no question needed).
3. The `til_get_context` result from this step also populates link candidates — Step 2 reuses it without calling again.
## Step 1: Confirm Topic and Path
1. Identify topic and category. Ask the user if unclear.
2. **If augmenting** (Step 0 selection): use the chosen TIL's path; skip the existence check.
3. **If creating new**: use `Read` to check if `${TIL_PATH}/{category}/{slug}.md` exists. If it does, ask the user to confirm merge or overwrite.
## Step 2: Confirm Link Candidates
Reuse the `til_get_context` result from Step 0 (do **not** call again).
1. Existing TIL/backlog items → use markdown links in the body
2. Concepts that don't exist → confirm with user, then add only to related notes
## Step 3: Save TIL File
Path: `./${TIL_PATH}/{category}/{topic-slug}.md` (slug: lowercase English with hyphens)
**Save new file**: Save using the `til_save_note` MCP tool. The server guarantees frontmatter (title, date, category, tags, aliases) and path rules.
```
til_save_note(category, slug, title, content, tags, date, fmCategory, aliases, auto_check_backlog: true)
```
- `date`: Get local time via `date +%Y-%m-%dT%H:%M:%S` command and pass it
- `tags`: Must include "til"
- `aliases`: ["Korean title", "English title"]
- `content`: Body markdown excluding frontmatter
- If raw sources were used during the learning session, include them in the body's References section as local links: `[Title](raw/{category}/{slug}.md)`
**When a file with the same slug exists** (detected by `Read` in Step 1):
- Auto-merge only when continuing a `/til` follow-up session (preserve existing content + reinforce, add `updated`)
- Otherwise: ask user to confirm merge or overwrite
- For merge: use Read→Edit directly on existing content instead of `til_save_note`
### TIL Body Template
Read `references/templates.md` for the exact TIL body and MOC templates.
- Links: `[display name](${TIL_PATH}/{category}/{slug}.md)` — no `[[wiki links]]`
## Step 4: Update Related Files
Update the related index files **directly** in sequence (no subagents — parallel edits can race and corrupt shared files like MOC):
1. TIL MOC (`./${TIL_PATH}/TIL MOC.md`): Add item to category section (create if not exists)
2. Backlog:
- **New file mode**: Already handled by `til_save_note`'s `auto_check_backlog: true` (no separate call needed)
- **Augment mode**: Call `til_backlog_check` directly if the augmented TIL maps to a backlog item — Step 0 selected augment, so Step 3 used `Read`→`Edit` and `auto_check_backlog` was not triggered
MOC: Read → find position → Edit. Create file if not exists.
## Step 5: Document Review
Display full saved TIL content → use `AskUserQuestion` to confirm ("Looks good" / "Needs revision").
## Step 6: Auto-lint Loop
After saving (Step 3) and updating related files (Step 4), apply til-lint **Check 1 (Frontmatter)** + **Check 2 (Orphan/MOC)** rules **inline in fast mode** — refer to `skills/til-lint/SKILL.md` for the rule definitions and emit a `## Violations` block matching the documented structure for self-parsing. til-lint stays read-only — `/save` applies the fixes.
1. Run the fast checks scoped to the current file (or its category).
2. Parse the `## Violations` block in the report:
- `No violations found.` → exit loop, proceed to Step 7.
- Violations present → classify and act:
- **Auto-fixable** (trivial frontmatter — `tags` missing `"til"`, malformed `date`, `related` array shape): fix via `Edit`.
- **User-decision** (MOC entry placement, `aliases` content, ambiguous values): surface to the user via `AskUserQuestion` instead of auto-applying — record the user's choice in this iteration's fix set.
- Increment iteration counter after each round.
3. Re-run `/til-lint --fast`. Repeat up to **max 3 iterations**.
4. If iteration 3 still has unresolved violations, use `AskUserQuestion`:
- **Commit with remaining violations**: proceed to Step 7. Surface the residual violations in the user-facing summary.
- **Try fixing again**: continue for one extra round, then ask again. The cap does not auto-reset.
- **Abort**: stop, report current state, do not commit.
Parsing fallback:
- If til-lint output cannot be parsed as the documented `## Violations` format, log a warning and treat as "no violations" to avoid blocking. Recommend a manual `/til-lint` run in the summary.
Track the iteration counter explicitly. A missing counter is the failure mode that turns this into an unbounded loop.
## Step 7: Register for Review
Ask via `AskUserQuestion`: "Would you like to add this TIL to spaced repetition review?"
If user agrees, call `til_review_update` (action: "review", grade: 4) to create SRS metadata.
## Step 8: git commit
`📝 til: {English title}({Korean title}) - {category}` (no push)
## Rules
- frontmatter required: date, category, tags, aliases (fill in any missing fields before saving)
- tags must include "til" (used to filter TILs on the static site)
- No `[[wiki links]]` — use `[display name](path)` format only (links must work in static sites and non-Obsidian editors)
- Always update MOC/backlog after saving the TIL
- Use callouts: `> [!tldr]`, `> [!example]`, `> [!warning]`, `> [!tip]`
- Visualize complex concepts with Mermaid diagrams (max 1 per TIL)From SongYunSeop/oh-my-til, MIT.
More from SongYunSeop/oh-my-til
- 0.502score
research
SongYunSeop
Research a topic to identify key concepts and terms, then organize as a learning backlog.
SkillCFreshness: C★ 1Claude Code +9 - 0.497score
til-review
SongYunSeop
SRS-based TIL review session (spaced repetition).
SkillCFreshness: C★ 1Claude Code +9 - 0.497score
backlog
SongYunSeop
View learning backlog and show progress.
SkillCFreshness: C★ 1Claude Code +9 - 0.497score
dashboard
SongYunSeop
Learning dashboard — stats, activity heatmap, categories, backlog progress.
SkillCFreshness: C★ 1Claude Code +9 - 0.497score
til
SongYunSeop
Today I Learned — research a topic, learn interactively, then save as TIL markdown.
SkillCFreshness: C★ 1Claude Code +9 - 0.497score
til-lint
SongYunSeop
Health-check the TIL wiki for structural issues.
SkillCFreshness: C★ 1Claude Code +9 - 0.491score
omt-setup
SongYunSeop
oh-my-til unified setup — seeds SCHEMA.md and configures deployment
SkillCFreshness: C★ 1Claude Code +9 - 0.488score
setup-obsidian
SongYunSeop
Install or update the Oh My TIL plugin in an Obsidian vault
SkillCFreshness: C★ 1Claude Code +9 - 0.487score
release
SongYunSeop
Create a new release.
SkillCFreshness: C★ 1Claude Code +9 - 0.484score
update-plugin
SongYunSeop
Update the installed Oh My TIL plugin to the latest version
SkillCFreshness: C★ 1Claude Code +9 - 0.484score
install-plugin
SongYunSeop
Install the Oh My TIL plugin into an Obsidian vault
SkillCFreshness: C★ 1Claude Code +9 - 0.483score
dev
SongYunSeop
Create a feature branch + worktree, do the work, then automatically merge back to the current branch
SkillCFreshness: C★ 1Claude Code +9
Signals
- Stars
- 1
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- May 15, 2026 (5 months ago)
- Last release
- May 15, 2026 (5 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/SongYunSeop/oh-my-til
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from SongYunSeop
- 0.502score
research
SongYunSeop
Research a topic to identify key concepts and terms, then organize as a learning backlog.
SkillCFreshness: C★ 1Claude Code +9 - 0.497score
til-review
SongYunSeop
SRS-based TIL review session (spaced repetition).
SkillCFreshness: C★ 1Claude Code +9 - 0.497score
backlog
SongYunSeop
View learning backlog and show progress.
SkillCFreshness: C★ 1Claude Code +9 - 0.497score
dashboard
SongYunSeop
Learning dashboard — stats, activity heatmap, categories, backlog progress.
SkillCFreshness: C★ 1Claude Code +9 - 0.497score
til
SongYunSeop
Today I Learned — research a topic, learn interactively, then save as TIL markdown.
SkillCFreshness: C★ 1Claude Code +9 - 0.497score
til-lint
SongYunSeop
Health-check the TIL wiki for structural issues.
SkillCFreshness: C★ 1Claude Code +9
Cite this page
save skill. Agent Mart. https://agentmart.dev/skills/songyunseop-save (last updated 2026-10-24)