oh-my-til 0.11.1 → 0.11.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.js +64 -57
- package/main.js +157 -155
- package/manifest.json +1 -1
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -6,6 +6,9 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
|
6
6
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
7
7
|
var __getProtoOf = Object.getPrototypeOf;
|
|
8
8
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
9
|
+
var __esm = (fn, res) => function __init() {
|
|
10
|
+
return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
|
|
11
|
+
};
|
|
9
12
|
var __commonJS = (cb, mod) => function __require() {
|
|
10
13
|
return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
|
|
11
14
|
};
|
|
@@ -14107,6 +14110,31 @@ var require_dist2 = __commonJS({
|
|
|
14107
14110
|
}
|
|
14108
14111
|
});
|
|
14109
14112
|
|
|
14113
|
+
// src/core/config.ts
|
|
14114
|
+
var config_exports = {};
|
|
14115
|
+
__export(config_exports, {
|
|
14116
|
+
loadOmtConfig: () => loadOmtConfig,
|
|
14117
|
+
loadSiteConfig: () => loadSiteConfig
|
|
14118
|
+
});
|
|
14119
|
+
function loadOmtConfig(basePath) {
|
|
14120
|
+
const configPath = path4.join(basePath, "oh-my-til.json");
|
|
14121
|
+
try {
|
|
14122
|
+
const raw = fs3.readFileSync(configPath, "utf-8");
|
|
14123
|
+
const parsed = JSON.parse(raw);
|
|
14124
|
+
return typeof parsed === "object" && parsed !== null && !Array.isArray(parsed) ? parsed : {};
|
|
14125
|
+
} catch {
|
|
14126
|
+
return {};
|
|
14127
|
+
}
|
|
14128
|
+
}
|
|
14129
|
+
var path4, fs3, loadSiteConfig;
|
|
14130
|
+
var init_config = __esm({
|
|
14131
|
+
"src/core/config.ts"() {
|
|
14132
|
+
path4 = __toESM(require("path"));
|
|
14133
|
+
fs3 = __toESM(require("fs"));
|
|
14134
|
+
loadSiteConfig = loadOmtConfig;
|
|
14135
|
+
}
|
|
14136
|
+
});
|
|
14137
|
+
|
|
14110
14138
|
// src/adapters/fs-adapter.ts
|
|
14111
14139
|
var fs = __toESM(require("fs/promises"));
|
|
14112
14140
|
var path = __toESM(require("path"));
|
|
@@ -39249,7 +39277,8 @@ ${text}` }] };
|
|
|
39249
39277
|
"til_dashboard",
|
|
39250
39278
|
{
|
|
39251
39279
|
title: "Dashboard Stats",
|
|
39252
|
-
description: "\uD559\uC2B5 \uB300\uC2DC\uBCF4\uB4DC \uD1B5\uACC4\uB97C \uBC18\uD658\uD569\uB2C8\uB2E4 (\uC694\uC57D, \uD788\uD2B8\uB9F5, \uCE74\uD14C\uACE0\uB9AC, \uBC31\uB85C\uADF8)"
|
|
39280
|
+
description: "\uD559\uC2B5 \uB300\uC2DC\uBCF4\uB4DC \uD1B5\uACC4\uB97C \uBC18\uD658\uD569\uB2C8\uB2E4 (\uC694\uC57D, \uD788\uD2B8\uB9F5, \uCE74\uD14C\uACE0\uB9AC, \uBC31\uB85C\uADF8)",
|
|
39281
|
+
inputSchema: external_exports3.object({})
|
|
39253
39282
|
},
|
|
39254
39283
|
async () => {
|
|
39255
39284
|
const allFiles = await storage.listFiles();
|
|
@@ -39391,46 +39420,34 @@ var TILMcpServer = class {
|
|
|
39391
39420
|
};
|
|
39392
39421
|
|
|
39393
39422
|
// vault-assets/skills/til/SKILL.md
|
|
39394
|
-
var SKILL_default = '---\nname: til\ndescription: "Today I Learned - \uC8FC\uC81C\uB97C \uB9AC\uC11C\uCE58\uD558\uACE0 \uB300\uD654\uD615\uC73C\uB85C \uD559\uC2B5\uD55C \uB4A4 Obsidian \uD638\uD658 TIL \uB9C8\uD06C\uB2E4\uC6B4\uC73C\uB85C \uC800\uC7A5"\nargument-hint: "<\uC8FC\uC81C> [\uCE74\uD14C\uACE0\uB9AC]"\nplugin-version: "__PLUGIN_VERSION__"\n---\n\n# TIL (Today I Learned) Skill\n\n\uC8FC\uC81C\uB97C \uB9AC\uC11C\uCE58\uD558\uACE0, \uB300\uD654\uD615\uC73C\uB85C \uD559\uC2B5\uC744 \uB3C4\uC640\uC900 \uB4A4, \uACB0\uACFC\uBB3C\uC744 Obsidian \uD638\uD658 TIL \uB9C8\uD06C\uB2E4\uC6B4 \uD30C\uC77C\uB85C \uC800\uC7A5\uD569\uB2C8\uB2E4.\n\n## \uD65C\uC131\uD654 \uC870\uAC74\n\n- "\uC624\uB298 \uBC30\uC6B4 \uAC83 \uC815\uB9AC\uD574\uC918"\n- "TIL \uC791\uC131\uD574\uC918"\n- "/til <\uC8FC\uC81C>"\n- "<\uC8FC\uC81C>\uC5D0 \uB300\uD574 \uD559\uC2B5\uD558\uACE0 TIL\uB85C \uC815\uB9AC\uD574\uC918"\n\n## \uBE44\uD65C\uC131\uD654 \uC870\uAC74\n\n- \uB113\uC740 \uC8FC\uC81C\uC758 \uD559\uC2B5 \uB85C\uB4DC\uB9F5\uC774 \uD544\uC694\uD560 \uB54C \u2192 `/research` \uC0AC\uC6A9\n- \uBC31\uB85C\uADF8 \uC9C4\uD589 \uC0C1\uD669\uB9CC \uD655\uC778\uD560 \uB54C \u2192 `/backlog` \uC0AC\uC6A9\n- \uC774\uBBF8 \uC791\uC131\uB41C TIL\uC744 \uC218\uC815\uB9CC \uD558\uACE0 \uC2F6\uC744 \uB54C \u2192 \uC9C1\uC811 \uD30C\uC77C\uC744 \uD3B8\uC9D1 (\uC2EC\uD654 \uD559\uC2B5\uC774 \uD544\uC694\uD558\uBA74 `/til`\uB85C \uAC19\uC740 \uC8FC\uC81C\uB97C \uB2E4\uC2DC \uD638\uCD9C)\n- \uC8FC\uC81C\uAC00 \uB108\uBB34 \uB113\uC5B4\uC11C TIL \uD55C \uC7A5\uC73C\uB85C \uC815\uB9AC\uD560 \uC218 \uC5C6\uC744 \uB54C \u2192 `/research`\uB85C \uBD84\uD574 \uD6C4 \uAC1C\uBCC4 `/til`\n\n## MCP \uB3C4\uAD6C \uD65C\uC6A9\n\n`oh-my-til` MCP \uC11C\uBC84\uAC00 \uC5F0\uACB0\uB418\uC5B4 \uC788\uC73C\uBA74 MCP \uB3C4\uAD6C\uB97C \uD65C\uC6A9\uD55C\uB2E4:\n\n- **Phase 1 \uC2DC\uC791 \uC804**: `til_list`\uB85C \uAE30\uC874 TIL \uBAA9\uB85D\uC744 \uD655\uC778\uD558\uC5EC \uB3D9\uC77C/\uC720\uC0AC \uC8FC\uC81C\uAC00 \uC788\uC73C\uBA74 \uC2EC\uD654 \uD559\uC2B5 \uBAA8\uB4DC\uB85C \uC804\uD658. `til_list`\uB294 JSON\uC744 \uBC18\uD658\uD55C\uB2E4: `{ totalCount, categories: [{ name, count, files }] }`\n- **Phase 2 \uC911**: `til_get_context`\uB85C \uC8FC\uC81C \uAD00\uB828 \uAE30\uC874 TIL\uACFC \uBC31\uB85C\uADF8\uB97C \uD30C\uC545\uD558\uC5EC \uB9C8\uD06C\uB2E4\uC6B4 \uB9C1\uD06C \uD6C4\uBCF4 \uD655\uBCF4\n- **Phase 3 \uC800\uC7A5 \uC804**: `vault_get_active_file`\uB85C \uC0AC\uC6A9\uC790\uAC00 \uBCF4\uACE0 \uC788\uB294 \uD30C\uC77C \uCEE8\uD14D\uC2A4\uD2B8 \uD655\uC778\n\nMCP \uB3C4\uAD6C\uB97C \uC0AC\uC6A9\uD560 \uC218 \uC5C6\uB294 \uACBD\uC6B0, `./til/TIL MOC.md`\uC640 `./til/{\uCE74\uD14C\uACE0\uB9AC}/backlog.md`\uB97C \uC9C1\uC811 \uC77D\uC5B4 \uAE30\uC874 TIL\uACFC \uBC31\uB85C\uADF8\uB97C \uD30C\uC545\uD55C\uB2E4.\n\n## \uC6CC\uD06C\uD50C\uB85C\uC6B0\n\n### Phase 1: \uC8FC\uC81C \uB9AC\uC11C\uCE58\n\n```\n[Phase 1/3] \uC8FC\uC81C \uB9AC\uC11C\uCE58 \uC911...\n```\n\n1. `til_get_context`\uB85C \uC8FC\uC81C \uAD00\uB828 \uAE30\uC874 TIL\uC774 \uC788\uB294\uC9C0 \uD655\uC778\uD55C\uB2E4. MCP \uB3C4\uAD6C\uB97C \uC0AC\uC6A9\uD560 \uC218 \uC5C6\uC73C\uBA74 `til_list`\uB85C \uD3F4\uBC31\uD55C\uB2E4\n - \uBC31\uB85C\uADF8\uC5D0\uC11C \uD56D\uBAA9\uC744 \uD559\uC2B5\uD560 \uB54C, `til_backlog_status`(category \uC9C0\uC815) \uC751\uB2F5\uC758 `sourceUrls`\uB97C \uD655\uC778\uD55C\uB2E4\n - `sourceUrls`\uAC00 \uC788\uC73C\uBA74 \uD574\uB2F9 URL\uB4E4\uC744 **\uC6B0\uC120 \uCC38\uC870**\uD558\uC5EC \uC6D0\uBCF8 \uCF58\uD150\uCE20 \uAE30\uBC18\uC73C\uB85C \uD559\uC2B5\uD55C\uB2E4\n - `sourceUrls`\uAC00 \uC5C6\uC73C\uBA74 \uAE30\uC874\uB300\uB85C \uC6F9 \uAC80\uC0C9\uC73C\uB85C \uB9AC\uC11C\uCE58\uD55C\uB2E4\n\n #### Subagent \uD65C\uC6A9 (\uC18C\uC2A4 URL \uBCD1\uB82C \uD328\uCE58)\n\n `sourceUrls`\uAC00 **2\uAC1C \uC774\uC0C1**\uC774\uBA74 Task \uB3C4\uAD6C\uB85C \uD328\uCE58\uB97C \uBCD1\uB82C\uD654\uD55C\uB2E4:\n\n 1. \uAC01 URL\uC5D0 \uB300\uD574 \uD328\uCE58 subagent\uB97C **\uBCD1\uB82C spawn**\uD55C\uB2E4:\n ```\n Task(subagent_type="til-fetcher", prompt="...", description="\uD328\uCE58: {URL \uB3C4\uBA54\uC778}")\n ```\n - \uAC01 subagent \uD504\uB86C\uD504\uD2B8: "\uB2E4\uC74C URL\uC758 \uB0B4\uC6A9\uC744 WebFetch\uB85C \uC77D\uACE0, \uD559\uC2B5\uC5D0 \uD544\uC694\uD55C \uD575\uC2EC \uB0B4\uC6A9\uC744 \uD55C\uAD6D\uC5B4\uB85C \uC694\uC57D\uD574\uC918 (\uAE30\uC220 \uC6A9\uC5B4 \uC6D0\uC5B4 \uBCD1\uAE30). \uCF54\uB4DC \uC608\uC2DC\uAC00 \uC788\uC73C\uBA74 \uD3EC\uD568. URL: {url}"\n - \uBAA8\uB4E0 subagent\uB97C **\uD558\uB098\uC758 \uBA54\uC2DC\uC9C0\uC5D0\uC11C \uB3D9\uC2DC\uC5D0** \uD638\uCD9C\uD55C\uB2E4\n 2. \uBAA8\uB4E0 \uACB0\uACFC\uB97C \uC218\uC9D1\uD558\uC5EC \uB9AC\uC11C\uCE58 \uAE30\uBC18\uC73C\uB85C \uD569\uC0B0\uD55C \uB4A4 Phase 2\uB85C \uC9C4\uD589\uD55C\uB2E4\n\n > **\uCC38\uACE0**: URL\uC774 1\uAC1C\uC774\uBA74 \uBCD1\uB82C\uD654 \uC5C6\uC774 \uC9C1\uC811 WebFetch\uD55C\uB2E4.\n2. **\uAE30\uC874 TIL\uC774 \uC788\uC73C\uBA74**: \uC0AC\uC6A9\uC790\uC5D0\uAC8C \uC120\uD0DD\uC9C0\uB97C \uC81C\uC2DC\uD55C\uB2E4:\n ```\n "{\uC8FC\uC81C}"\uC5D0 \uB300\uD55C \uAE30\uC874 TIL\uC774 \uC788\uC2B5\uB2C8\uB2E4: {\uD30C\uC77C \uACBD\uB85C}\n \uC5B4\uB5BB\uAC8C \uC9C4\uD589\uD560\uAE4C\uC694?\n 1. \uC2EC\uD654 \uD559\uC2B5 \u2014 \uAE30\uC874 \uB0B4\uC6A9\uC744 \uAE30\uBC18\uC73C\uB85C \uB354 \uAE4A\uC774 \uD559\uC2B5 (\uAE30\uC874 TIL\uC5D0 \uBCF4\uAC15)\n 2. \uC0C8\uB85C \uC791\uC131 \u2014 \uB2E4\uB978 \uAD00\uC810\uC5D0\uC11C \uC0C8 TIL \uC791\uC131\n ```\n - **\uC2EC\uD654 \uD559\uC2B5 \uC120\uD0DD \uC2DC**: \uAE30\uC874 TIL \uD30C\uC77C\uC744 \uC77D\uC5B4 \uC774\uBBF8 \uB2E4\uB8EC \uB0B4\uC6A9\uC744 \uD30C\uC545\uD558\uACE0, \uC0C8\uB85C\uC6B4 \uC601\uC5ED\uC744 \uC6F9 \uAC80\uC0C9/\uBB38\uC11C\uB85C \uC870\uC0AC\uD55C\uB2E4\n - **\uC0C8\uB85C \uC791\uC131 \uC120\uD0DD \uC2DC**: \uAE30\uC874 TIL\uACFC \uBB34\uAD00\uD558\uAC8C \uC0C8\uB85C \uC870\uC0AC\uD55C\uB2E4 (\uC800\uC7A5 \uC2DC \uC2AC\uB7EC\uADF8 \uCDA9\uB3CC\uC740 `/save`\uC5D0\uC11C \uCC98\uB9AC)\n3. **\uAE30\uC874 TIL\uC774 \uC5C6\uC73C\uBA74**: \uC6F9 \uAC80\uC0C9\uACFC \uBB38\uC11C\uB97C \uD1B5\uD574 \uC8FC\uC81C\uB97C \uC870\uC0AC\uD55C\uB2E4\n4. \uD575\uC2EC \uAC1C\uB150, \uC608\uC2DC, \uAD00\uB828 \uC790\uB8CC\uB97C \uC218\uC9D1\uD55C\uB2E4\n5. \uC218\uC9D1\uD55C \uB0B4\uC6A9\uC744 \uC0AC\uC6A9\uC790\uC5D0\uAC8C \uC694\uC57D\uD574\uC11C \uBCF4\uC5EC\uC900\uB2E4\n\n### Phase 1.5: \uB9AC\uC11C\uCE58 \uB9AC\uBDF0 (\uC870\uAC74\uBD80)\n\nPhase 1\uC5D0\uC11C \uC218\uC9D1\uD55C **\uD575\uC2EC \uAC1C\uB150\uC774 3\uAC1C \uC774\uC0C1\uC774\uACE0 \uC18C\uC2A4 URL \uBCD1\uB82C \uD328\uCE58\uB97C \uC218\uD589\uD588\uC744 \uB54C**\uB9CC \uC2E4\uD589\uD55C\uB2E4. \uADF8 \uC678\uC5D0\uB294 \uC774 \uB2E8\uACC4\uB97C \uAC74\uB108\uB6F0\uACE0 Phase 2\uB85C \uBC14\uB85C \uC9C4\uD589\uD55C\uB2E4.\n\n```\nTask(subagent_type="til-research-reviewer", prompt="\uB2E4\uC74C \uB9AC\uC11C\uCE58 \uACB0\uACFC\uB97C 3\uAC00\uC9C0 \uD398\uB974\uC18C\uB098(\uCD08\uBCF4\uC790/\uC2E4\uBB34\uC790/\uBE44\uD310\uC790)\uB85C \uB9AC\uBDF0\uD574\uC918:\\n\\n{Phase 1 \uB9AC\uC11C\uCE58 \uACB0\uACFC}", description="\uB9AC\uC11C\uCE58 \uB9AC\uBDF0: {\uC8FC\uC81C}")\n```\n\n- **\uD1B5\uACFC** \uD310\uC815 \uC2DC: \uADF8\uB300\uB85C Phase 2\uB85C \uC9C4\uD589\uD55C\uB2E4\n- **\uBCF4\uC644 \uD6C4 \uC9C4\uD589** \uD310\uC815 \uC2DC: \uBCF4\uC644 \uC81C\uC548\uC744 \uBC18\uC601\uD558\uC5EC \uB9AC\uC11C\uCE58 \uACB0\uACFC\uB97C \uC218\uC815\uD55C \uB4A4 Phase 2\uB85C \uC9C4\uD589\uD55C\uB2E4\n\n### Phase 2: \uB300\uD654\uD615 \uD559\uC2B5\n\n```\n[Phase 2/3] \uB300\uD654\uD615 \uD559\uC2B5\n```\n\n1. \uB9AC\uC11C\uCE58 \uACB0\uACFC\uB97C \uBC14\uD0D5\uC73C\uB85C \uD575\uC2EC \uB0B4\uC6A9\uC744 \uC124\uBA85\uD55C\uB2E4\n2. **\uC2EC\uD654 \uD559\uC2B5 \uBAA8\uB4DC**: \uAE30\uC874 TIL\uC5D0\uC11C \uC774\uBBF8 \uB2E4\uB8EC \uB0B4\uC6A9\uC740 \uBC18\uBCF5\uD558\uC9C0 \uC54A\uACE0, \uC0C8\uB85C\uC6B4 \uAD00\uC810/\uC2EC\uD654 \uB0B4\uC6A9\uC5D0 \uC9D1\uC911\uD55C\uB2E4\n3. \uC0AC\uC6A9\uC790\uAC00 \uAD81\uAE08\uD55C \uC810\uC744 \uC9C8\uBB38\uD558\uBA74 \uB2F5\uBCC0\uD55C\uB2E4\n4. \uC0AC\uC6A9\uC790\uAC00 "\uC800\uC7A5\uD574\uC918", "\uC815\uB9AC\uD574\uC918", "TIL\uB85C \uB9CC\uB4E4\uC5B4\uC918" \uB4F1\uC744 \uB9D0\uD558\uBA74 Phase 3\uC73C\uB85C \uC804\uD658\uD55C\uB2E4\n5. **Phase 3 \uC804\uD658\uC740 \uBC18\uB4DC\uC2DC \uC0AC\uC6A9\uC790\uC758 \uBA85\uC2DC\uC801 \uC694\uCCAD\uC5D0 \uC758\uD574\uC11C\uB9CC \uC774\uB8E8\uC5B4\uC9C4\uB2E4.** AI\uAC00 "\uCDA9\uBD84\uD788 \uC774\uD574\uD588\uB2E4"\uACE0 \uD310\uB2E8\uD558\uC5EC \uC790\uB3D9 \uC804\uD658\uD558\uC9C0 \uC54A\uB294\uB2E4\n\n### Phase 3: \uC800\uC7A5\n\n\uC0AC\uC6A9\uC790\uAC00 "\uC800\uC7A5\uD574\uC918", "\uC815\uB9AC\uD574\uC918", "TIL\uB85C \uB9CC\uB4E4\uC5B4\uC918" \uB4F1\uC744 \uB9D0\uD558\uBA74 `/save` \uC2A4\uD0AC\uC758 \uADDC\uCE59\uC744 \uB530\uB77C \uC800\uC7A5\uD55C\uB2E4. \uD15C\uD50C\uB9BF, Daily \uB178\uD2B8, MOC, \uBC31\uB85C\uADF8 \uADDC\uCE59\uC740 \uBAA8\uB450 `/save` \uC2A4\uD0AC\uC5D0 \uC815\uC758\uB418\uC5B4 \uC788\uB2E4.\n\n**\uC2EC\uD654 \uD559\uC2B5 \uBAA8\uB4DC**: \uAE30\uC874 \uD30C\uC77C\uC5D0 \uC790\uB3D9 \uBCD1\uD569\uB41C\uB2E4 (\uAE30\uC874 \uB0B4\uC6A9 \uC720\uC9C0 + \uBCF4\uAC15, `updated` \uB0A0\uC9DC \uCD94\uAC00). \uC0C1\uC138 \uBCD1\uD569 \uADDC\uCE59\uC740 `/save` \uC2A4\uD0AC Step 3 \uCC38\uC870.\n\n## \uC778\uC218 \uCC98\uB9AC\n\n- **\uCCAB \uBC88\uC9F8 \uC778\uC218**: \uD559\uC2B5 \uC8FC\uC81C (\uD544\uC218)\n - \uC608: "JavaScript \uD074\uB85C\uC800", "Docker \uB124\uD2B8\uC6CC\uD06C", "Rust ownership"\n- **\uB450 \uBC88\uC9F8 \uC778\uC218**: \uCE74\uD14C\uACE0\uB9AC (\uC120\uD0DD)\n - \uC608: "javascript", "devops", "rust"\n - \uBBF8\uC9C0\uC815 \uC2DC \uC8FC\uC81C\uC5D0\uC11C \uC790\uB3D9 \uCD94\uB860\n\n## \uC2E4\uD589 \uC608\uC2DC\n\n```\n/til JavaScript \uD074\uB85C\uC800\n/til Docker \uB124\uD2B8\uC6CC\uD06C \uBAA8\uB4DC devops\n/til Rust\uC758 \uC18C\uC720\uAD8C \uAC1C\uB150\n```\n\n## \uC8FC\uC758\uC0AC\uD56D\n\n- Phase 2(\uB300\uD654\uD615 \uD559\uC2B5)\uC5D0\uC11C \uC0AC\uC6A9\uC790\uAC00 \uC6D0\uD558\uBA74 \uBC14\uB85C Phase 3\uC73C\uB85C \uAC74\uB108\uB6F8 \uC218 \uC788\uB2E4\n- \uB9AC\uC11C\uCE58 \uACB0\uACFC\uAC00 \uBD80\uC871\uD558\uBA74 \uC0AC\uC6A9\uC790\uC5D0\uAC8C \uC54C\uB9AC\uACE0 \uCD94\uAC00 \uD0A4\uC6CC\uB4DC\uB97C \uC694\uCCAD\uD55C\uB2E4\n- \uD55C\uAD6D\uC5B4\uB85C \uC791\uC131\uD558\uB418, \uAE30\uC220 \uC6A9\uC5B4\uB294 \uC6D0\uC5B4 \uBCD1\uAE30 (\uC608: "\uD074\uB85C\uC800(Closure)")\n- \uB9C1\uD06C\uB294 \uD56D\uC0C1 `[\uD45C\uC2DC\uBA85](til/{\uCE74\uD14C\uACE0\uB9AC}/{slug}.md)` \uD45C\uC900 \uB9C8\uD06C\uB2E4\uC6B4 \uD615\uC2DD\uC744 \uC0AC\uC6A9\uD55C\uB2E4. \uAE30\uC874 TIL\uACFC \uBC31\uB85C\uADF8 \uD56D\uBAA9\uC740 \uBCF8\uBB38\uC5D0\uC11C \uBC14\uB85C \uB9C1\uD06C\uD558\uACE0, \uC874\uC7AC\uD558\uC9C0 \uC54A\uB294 \uAC1C\uB150\uC740 \uC800\uC7A5 \uC2DC \uC0AC\uC6A9\uC790\uC5D0\uAC8C \uD655\uC778 \uD6C4 \uAD00\uB828 \uB178\uD2B8 \uC139\uC158\uC5D0 \uCD94\uAC00\uD55C\uB2E4\n- `[[\uC704\uD0A4\uB9C1\uD06C]]` \uD615\uC2DD \uC0AC\uC6A9 \uAE08\uC9C0 \u2014 \uD56D\uC0C1 \uD45C\uC900 \uB9C8\uD06C\uB2E4\uC6B4 `[\uD45C\uC2DC\uBA85](til/{\uCE74\uD14C\uACE0\uB9AC}/{slug}.md)` \uD615\uC2DD\uB9CC \uC0AC\uC6A9\uD55C\uB2E4\n\n## \uD53C\uD574\uC57C \uD560 \uC2E4\uD328 \uBAA8\uB4DC\n\n- **\uC0AC\uC6A9\uC790 \uB3D9\uC758 \uC5C6\uC774 \uC800\uC7A5**: "\uC800\uC7A5\uD574\uC918"\uB77C\uACE0 \uB9D0\uD558\uAE30 \uC804\uC5D0 Phase 3\uC73C\uB85C \uB118\uC5B4\uAC00\uC9C0 \uC54A\uB294\uB2E4\n- **Phase 2 \uAC74\uB108\uB6F0\uAE30**: \uB9AC\uC11C\uCE58 \uACB0\uACFC\uB9CC \uBCF4\uC5EC\uC8FC\uACE0 \uBC14\uB85C \uC800\uC7A5\uD558\uC9C0 \uC54A\uB294\uB2E4. \uC0AC\uC6A9\uC790\uAC00 \uBA85\uC2DC\uC801\uC73C\uB85C \uAC74\uB108\uB6F0\uAE30\uB97C \uC694\uCCAD\uD55C \uACBD\uC6B0\uB9CC \uC608\uC678\n- **\uC595\uC740 \uB0B4\uC6A9**: Phase 2\uC5D0\uC11C \uCDA9\uBD84\uD55C \uB300\uD654 \uC5C6\uC774 \uD53C\uC0C1\uC801\uC778 TIL\uC744 \uC0DD\uC131\n- **\uBBFC\uAC10 \uC815\uBCF4 \uB178\uCD9C**: Phase 2 \uB300\uD654\uC5D0\uC11C \uB098\uC628 \uAC1C\uC778\uC815\uBCF4, \uD68C\uC0AC \uB0B4\uBD80 URL, API \uD0A4, \uC2E4\uC81C \uC11C\uBC84 \uC8FC\uC18C \uB4F1\uC744 Phase 3 \uBB38\uC11C\uC5D0 \uADF8\uB300\uB85C \uD3EC\uD568\uD558\uC9C0 \uC54A\uB294\uB2E4. \uC608\uC2DC\uC5D0\uB294 `example.com`, `your-api-key`, `192.168.x.x` \uAC19\uC740 \uB300\uCCB4\uAC12\uC744 \uC0AC\uC6A9\uD55C\uB2E4\n';
|
|
39423
|
+
var SKILL_default = '---\nname: til\ndescription: "Today I Learned - \uC8FC\uC81C\uB97C \uB9AC\uC11C\uCE58\uD558\uACE0 \uB300\uD654\uD615\uC73C\uB85C \uD559\uC2B5\uD55C \uB4A4 TIL \uB9C8\uD06C\uB2E4\uC6B4\uC73C\uB85C \uC800\uC7A5"\nargument-hint: "<\uC8FC\uC81C> [\uCE74\uD14C\uACE0\uB9AC]"\nplugin-version: "__PLUGIN_VERSION__"\n---\n\n# TIL Skill\n\n\uC8FC\uC81C \uB9AC\uC11C\uCE58 \u2192 \uB300\uD654\uD615 \uD559\uC2B5 \u2192 TIL \uC800\uC7A5.\n\n## MCP \uB3C4\uAD6C\n\n- `til_list`: \uAE30\uC874 TIL \uD655\uC778 (\uB3D9\uC77C/\uC720\uC0AC \uC8FC\uC81C \uAC10\uC9C0)\n- `til_get_context`: \uAD00\uB828 TIL\xB7\uBC31\uB85C\uADF8 \uD30C\uC545, \uB9C1\uD06C \uD6C4\uBCF4\n- `vault_get_active_file`: \uC0AC\uC6A9\uC790\uAC00 \uBCF4\uB294 \uD30C\uC77C \uD655\uC778\n\n## Phase 1: \uC8FC\uC81C \uB9AC\uC11C\uCE58\n\n1. `til_get_context`\uB85C \uAE30\uC874 TIL \uD655\uC778. MCP \uBD88\uAC00 \uC2DC `til_list` \uD3F4\uBC31\n - \uBC31\uB85C\uADF8 \uD56D\uBAA9 \uD559\uC2B5 \uC2DC `til_backlog_status`(category) \u2192 `sections[].items[].sourceUrls` \uCC38\uC870\n - URL 1\uAC1C: `WebFetch`\uB85C \uC9C1\uC811 \uD328\uCE58\n - URL 2\uAC1C \uC774\uC0C1: `til-fetcher` subagent **1\uAC1C**\uC5D0 \uBAA8\uB4E0 URL \uC804\uB2EC\n2. \uAE30\uC874 TIL \uC788\uC73C\uBA74: \uC2EC\uD654 \uD559\uC2B5 / \uC0C8\uB85C \uC791\uC131 \uC120\uD0DD\uC9C0 \uC81C\uC2DC\n3. \uAE30\uC874 TIL \uC5C6\uC73C\uBA74: \uC6F9 \uAC80\uC0C9\uC73C\uB85C \uC870\uC0AC\n4. \uD575\uC2EC \uAC1C\uB150, \uC608\uC2DC, \uAD00\uB828 \uC790\uB8CC \uC218\uC9D1 \u2192 \uC694\uC57D\n\n## Phase 2: \uB300\uD654\uD615 \uD559\uC2B5\n\n1. \uB9AC\uC11C\uCE58 \uACB0\uACFC \uAE30\uBC18 \uC124\uBA85\n2. \uC2EC\uD654 \uD559\uC2B5 \uBAA8\uB4DC: \uAE30\uC874 \uB0B4\uC6A9 \uBC18\uBCF5\uD558\uC9C0 \uC54A\uACE0 \uC0C8 \uAD00\uC810\uC5D0 \uC9D1\uC911\n3. \uC0AC\uC6A9\uC790 \uC9C8\uBB38\uC5D0 \uB2F5\uBCC0\n4. \uC0AC\uC6A9\uC790\uAC00 "\uC800\uC7A5\uD574\uC918" \uB4F1 \uC694\uCCAD \uC2DC Phase 3 \uC804\uD658 (\uC790\uB3D9 \uC804\uD658 \uAE08\uC9C0)\n\n## Phase 3: \uC800\uC7A5\n\n`/save` \uC2A4\uD0AC \uADDC\uCE59\uC744 \uB530\uB77C \uC800\uC7A5. \uC2EC\uD654 \uD559\uC2B5 \uBAA8\uB4DC\uB294 \uAE30\uC874 \uD30C\uC77C\uC5D0 \uBCD1\uD569 (`updated` \uB0A0\uC9DC \uCD94\uAC00).\n\n## \uC778\uC218\n\n- \uCCAB \uBC88\uC9F8: \uD559\uC2B5 \uC8FC\uC81C (\uD544\uC218)\n- \uB450 \uBC88\uC9F8: \uCE74\uD14C\uACE0\uB9AC (\uC120\uD0DD, \uBBF8\uC9C0\uC815 \uC2DC \uC790\uB3D9 \uCD94\uB860)\n\n## \uADDC\uCE59\n\n- \uD55C\uAD6D\uC5B4 \uC791\uC131, \uAE30\uC220 \uC6A9\uC5B4 \uC6D0\uC5B4 \uBCD1\uAE30\n- \uB9C1\uD06C: `[\uD45C\uC2DC\uBA85](til/{\uCE74\uD14C\uACE0\uB9AC}/{slug}.md)` \u2014 `[[\uC704\uD0A4\uB9C1\uD06C]]` \uAE08\uC9C0\n- \uBBFC\uAC10 \uC815\uBCF4 \uB300\uCCB4\uAC12 \uC0AC\uC6A9 (example.com, your-api-key)\n';
|
|
39395
39424
|
|
|
39396
39425
|
// vault-assets/skills/backlog/SKILL.md
|
|
39397
|
-
var SKILL_default2 = '---\nname: backlog\ndescription: "\uD559\uC2B5 \uBC31\uB85C\uADF8\uB97C \uC870\uD68C\uD558\uACE0 \uC9C4\uD589 \uC0C1\uD669\uC744 \uBCF4\uC5EC\uC900\uB2E4"\nargument-hint: "[\uCE74\uD14C\uACE0\uB9AC]"\ndisable-model-invocation: true\nplugin-version: "__PLUGIN_VERSION__"\n---\n\n# Backlog Skill\n\n\uD559\uC2B5 \uBC31\uB85C\uADF8\uB97C \uC870\uD68C\uD558\uACE0 \uC9C4\uD589 \uC0C1\uD669\uC744 \uC694\uC57D\uD55C\uB2E4.\n\n## \uD65C\uC131\uD654 \uC870\uAC74\n\n- "/backlog"\n- "/backlog <\uCE74\uD14C\uACE0\uB9AC>"\n\n## \uBE44\uD65C\uC131\uD654 \uC870\uAC74\n\n- \uC0C8 \uBC31\uB85C\uADF8\uB97C \uB9CC\uB4E4\uAC70\uB098 \uD56D\uBAA9\uC744 \uCD94\uAC00\uD558\uACE0 \uC2F6\uC744 \uB54C \u2192 `/research` \uC0AC\uC6A9\n- \uD2B9\uC815 \uAC1C\uB150\uC744 \uD559\uC2B5\uD558\uACE0 \uC2F6\uC744 \uB54C \u2192 `/til` \uC0AC\uC6A9\n- \uBC31\uB85C\uADF8 \uD56D\uBAA9\uC744 \uC644\uB8CC \uCC98\uB9AC\uD558\uACE0 \uC2F6\uC744 \uB54C \u2192 `/til`\uB85C \uD559\uC2B5 \uD6C4 \uC790\uB3D9 \uCCB4\uD06C\uB418\uAC70\uB098 \uC9C1\uC811 \uD3B8\uC9D1\n\n## MCP \uB3C4\uAD6C \uD65C\uC6A9\n\n`oh-my-til` MCP \uC11C\uBC84\uAC00 \uC5F0\uACB0\uB418\uC5B4 \uC788\uC73C\uBA74 MCP \uB3C4\uAD6C\uB97C \uC6B0\uC120 \uC0AC\uC6A9\uD55C\uB2E4:\n\n- **\uC804\uCCB4 \uC870\uD68C** (`/backlog`): `til_backlog_status` \uB3C4\uAD6C\uB85C \uC9C4\uD589\uB960 \uB370\uC774\uD130\uB97C \uAC00\uC838\uC628\uB2E4\n- **\uCE74\uD14C\uACE0\uB9AC \uC870\uD68C** (`/backlog \uCE74\uD14C\uACE0\uB9AC`): `til_backlog_status` \uB3C4\uAD6C\uC5D0 `category` \uC778\uC218\uB97C \uC804\uB2EC\uD55C\uB2E4. `category` \uC9C0\uC815 \uC2DC `sections` \uD544\uB4DC\uAC00 \uD3EC\uD568\uB418\uC5B4 \uC139\uC158\uBCC4 \uAC1C\uBCC4 \uD56D\uBAA9\uC744 \uBC14\uB85C \uD65C\uC6A9\uD560 \uC218 \uC788\uB2E4\n\n`til_backlog_status` \uB3C4\uAD6C\uB294 JSON \uAD6C\uC870\uD654 \uB370\uC774\uD130\uB97C \uBC18\uD658\uD55C\uB2E4:\n```json\n{\n "totalDone": 77,\n "totalItems": 171,\n "categories": [\n { "name": "datadog", "path": "til/datadog/backlog.md", "done": 24, "total": 25 },\n { "name": "obsidian", "path": "til/obsidian/backlog.md", "done": 21, "total": 23 }\n ]\n}\n```\n\n`category` \uC778\uC218\uB97C \uC804\uB2EC\uD558\uBA74 `sections` \uD544\uB4DC\uAC00 \uCD94\uAC00\uB41C\uB2E4:\n```json\n{\n "totalDone": 0,\n "totalItems": 18,\n "categories": [\n {\n "name": "agile-story",\n "path": "til/agile-story/backlog.md",\n "done": 0,\n "total": 18,\n "sections": [\n {\n "heading": "\uC120\uD589 \uC9C0\uC2DD",\n "items": [\n { "displayName": "\uC9C0\uC2DD\uACFC \uB2A5\uB825\uC740 \uBCF5\uB9AC\uCC98\uB7FC \uB204\uC801\uB41C\uB2E4", "path": "til/agile-story/compound-learning.md", "done": false }\n ]\n }\n ]\n }\n ]\n}\n```\n\n\uC774 \uB370\uC774\uD130\uB85C \uD14C\uC774\uBE14\uC744 \uAD6C\uC131\uD560 \uB54C:\n- `name`\uACFC `path`\uB97C \uC870\uD569\uD558\uC5EC `[name](path)` \uB9C8\uD06C\uB2E4\uC6B4 \uB9C1\uD06C\uB85C \uCD9C\uB825\uD55C\uB2E4\n- `done`/`total`\uB85C \uC9C4\uD589\uB960\uACFC \uC9C4\uD589\uBC14\uB97C \uACC4\uC0B0\uD55C\uB2E4\n- \uACBD\uB85C(`path`)\uB97C \uADF8\uB300\uB85C \uB178\uCD9C\uD558\uC9C0 \uC54A\uB294\uB2E4\n- `sections`\uAC00 \uC788\uC73C\uBA74 (\uCE74\uD14C\uACE0\uB9AC \uC870\uD68C) \uC544\uB798 \uD615\uC2DD\uC73C\uB85C **\uBC18\uB4DC\uC2DC** \uC0C1\uD0DC \uD45C\uC2DC + \uB9C8\uD06C\uB2E4\uC6B4 \uB9C1\uD06C\uB85C \uCD9C\uB825\uD55C\uB2E4:\n - \uC139\uC158\uBCC4 \uD5E4\uB529: `## {heading} ({\uC644\uB8CC\uC218}/{\uC804\uCCB4\uC218})`\n - `done: true` \uD56D\uBAA9: `- (x) [{displayName}]({path})`\n - `done: false` \uD56D\uBAA9: `- ( ) [{displayName}]({path})`\n - **\uC808\uB300 `- displayName` \uD615\uC2DD\uC73C\uB85C \uCD9C\uB825\uD558\uC9C0 \uC54A\uB294\uB2E4. \uBC18\uB4DC\uC2DC `- ( )` \uB610\uB294 `- (x)` \uC0C1\uD0DC \uD45C\uC2DC\uB97C \uD3EC\uD568\uD574\uC57C \uD55C\uB2E4**\n - **`- [ ]`/`- [x]` \uB9C8\uD06C\uB2E4\uC6B4 \uCCB4\uD06C\uBC15\uC2A4 \uBB38\uBC95\uC740 \uC0AC\uC6A9\uD558\uC9C0 \uC54A\uB294\uB2E4** (\uD130\uBBF8\uB110\uC5D0\uC11C \uB80C\uB354\uB9C1\uB418\uC5B4 \uBCF4\uC774\uC9C0 \uC54A\uC74C)\n\nMCP \uB3C4\uAD6C\uB97C \uC0AC\uC6A9\uD560 \uC218 \uC5C6\uB294 \uACBD\uC6B0 \uC544\uB798 \uC6CC\uD06C\uD50C\uB85C\uC6B0\uB300\uB85C \uD30C\uC77C\uC744 \uC9C1\uC811 \uC77D\uB294\uB2E4.\n\n## \uC6CC\uD06C\uD50C\uB85C\uC6B0\n\n### \uC778\uC218\uAC00 \uC5C6\uC744 \uB54C (`/backlog`)\n\n1. `./til/*/backlog.md` \uD30C\uC77C\uC744 Glob\uC73C\uB85C \uBAA8\uB450 \uCC3E\uB294\uB2E4\n2. **\uBC31\uB85C\uADF8 \uD30C\uC77C\uC774 \uD558\uB098\uB3C4 \uC5C6\uC73C\uBA74**:\n ```\n \uC544\uC9C1 \uD559\uC2B5 \uBC31\uB85C\uADF8\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.\n /research <\uC8FC\uC81C> \uB85C \uD559\uC2B5 \uB85C\uB4DC\uB9F5\uC744 \uB9CC\uB4E4\uC5B4\uBCF4\uC138\uC694.\n \uC608: /research Kubernetes devops\n ```\n \uC548\uB0B4 \uD6C4 \uC885\uB8CC\uD55C\uB2E4.\n3. \uAC01 \uBC31\uB85C\uADF8 \uD30C\uC77C\uC744 \uC77D\uC5B4\uC11C \uB2E4\uC74C\uC744 \uC694\uC57D\uD55C\uB2E4:\n - \uCE74\uD14C\uACE0\uB9AC\uBA85\n - \uC804\uCCB4 \uD56D\uBAA9 \uC218\n - \uC644\uB8CC \uD56D\uBAA9 \uC218 (`- [x]`)\n - \uBBF8\uC644\uB8CC \uD56D\uBAA9 \uC218 (`- [ ]`)\n - \uC9C4\uD589\uB960 (%)\n - \uCD5C\uADFC \uD559\uC2B5\uC77C (frontmatter `updated` \uD544\uB4DC)\n3. \uC804\uCCB4 \uBC31\uB85C\uADF8 \uC694\uC57D\uC744 \uD14C\uC774\uBE14\uB85C \uBCF4\uC5EC\uC900\uB2E4\n\n### \uC778\uC218\uAC00 \uC788\uC744 \uB54C (`/backlog \uCE74\uD14C\uACE0\uB9AC`)\n\n1. `./til/{\uCE74\uD14C\uACE0\uB9AC}/backlog.md` \uD30C\uC77C\uC744 \uC77D\uB294\uB2E4\n2. \uD30C\uC77C\uC774 \uC5C6\uC73C\uBA74 "\uD574\uB2F9 \uCE74\uD14C\uACE0\uB9AC\uC5D0 \uBC31\uB85C\uADF8\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4"\uB77C\uACE0 \uC54C\uB9B0\uB2E4\n3. \uD30C\uC77C\uC774 \uC788\uC73C\uBA74 \uB2E4\uC74C\uC744 \uBCF4\uC5EC\uC900\uB2E4:\n - \uC9C4\uD589\uB960 \uC694\uC57D (\uC644\uB8CC/\uC804\uCCB4)\n - \uC139\uC158\uBCC4(\uC120\uD589 \uC9C0\uC2DD/\uD575\uC2EC \uAC1C\uB150/\uC2EC\uD654) \uBBF8\uC644\uB8CC \uD56D\uBAA9 \uBAA9\uB85D\n - \uC644\uB8CC\uB41C \uD56D\uBAA9\uC740 `- (x) \uD56D\uBAA9\uBA85` \uD615\uC2DD\uC73C\uB85C \uC0C1\uD0DC\uB97C \uD45C\uC2DC\uD558\uC5EC \uC2DC\uAC01\uC801\uC73C\uB85C \uAD6C\uBD84\n\n## \uCD9C\uB825 \uD615\uC2DD\n\n**[\uD544\uC218] \uBAA8\uB4E0 \uCD9C\uB825\uC5D0\uC11C \uB9C8\uD06C\uB2E4\uC6B4 \uB9C1\uD06C\uB97C \uC0AC\uC6A9\uD574\uC57C \uD55C\uB2E4.** \uD30C\uC77C \uACBD\uB85C\uB97C \uADF8\uB300\uB85C \uB178\uCD9C\uD558\uC9C0 \uC54A\uB294\uB2E4. \uBC18\uB4DC\uC2DC `[\uD45C\uC2DC\uBA85](\uACBD\uB85C)` \uD615\uD0DC\uC758 \uB9C8\uD06C\uB2E4\uC6B4 \uB9C1\uD06C\uB85C \uAC10\uC2F8\uC11C \uCD9C\uB825\uD55C\uB2E4. \uD130\uBBF8\uB110\uC5D0\uC11C \uB9C1\uD06C\uB97C \uD074\uB9AD\uD558\uBA74 \uD574\uB2F9 \uBB38\uC11C\uAC00 \uC5F4\uB9AC\uBBC0\uB85C, \uC0AC\uC6A9\uC790\uAC00 \uBC14\uB85C \uD0D0\uC0C9\uD560 \uC218 \uC788\uC5B4\uC57C \uD55C\uB2E4.\n\n**\uC798\uBABB\uB41C \uCD9C\uB825 (\uC808\uB300 \uC774\uB807\uAC8C \uD558\uC9C0 \uC54A\uB294\uB2E4):**\n```\n| til/claude-code/backlog.md | 30% | 4/13 | \u2190 \uACBD\uB85C\uB9CC \uB178\uCD9C (\uAE08\uC9C0)\n- til/claude-code/hooks.md \u2190 \uACBD\uB85C\uB9CC \uB178\uCD9C (\uAE08\uC9C0)\n- hooks.md \u2190 \uD30C\uC77C\uBA85\uB9CC \uB178\uCD9C (\uAE08\uC9C0)\n```\n\n**\uC62C\uBC14\uB978 \uCD9C\uB825 (\uBC18\uB4DC\uC2DC \uC774\uB807\uAC8C \uD55C\uB2E4):**\n```\n| [claude-code](til/claude-code/backlog.md) | 30% | 4/13 | \u2190 \uB9C8\uD06C\uB2E4\uC6B4 \uB9C1\uD06C\n- (x) [Hooks](til/claude-code/hooks.md) \u2190 \uB9C8\uD06C\uB2E4\uC6B4 \uB9C1\uD06C\n- ( ) [Permission \uBAA8\uB4DC](til/claude-code/permission-mode.md) \u2190 \uB9C8\uD06C\uB2E4\uC6B4 \uB9C1\uD06C\n```\n\n### \uC804\uCCB4 \uC870\uD68C (`/backlog`)\n\n```\n\uD559\uC2B5 \uBC31\uB85C\uADF8 \uD604\uD669\n\n| \uCE74\uD14C\uACE0\uB9AC | \uC9C4\uD589\uB960 | \uC644\uB8CC | \uCD5C\uADFC \uD559\uC2B5 | \uC9C4\uD589\uBC14 |\n|---------|--------|------|----------|--------|\n| [claude-code](til/claude-code/backlog.md) | 30% | 4/13 | 2026-02-15 | \u2588\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2591 |\n| [javascript](til/javascript/backlog.md) | 0% | 0/8 | 2026-02-10 | \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 |\n\n\uCD1D 21\uAC1C \uD56D\uBAA9 \uC911 4\uAC1C \uC644\uB8CC\n```\n\n- \uCE74\uD14C\uACE0\uB9AC\uBA85\uC740 \uBC18\uB4DC\uC2DC `[\uCE74\uD14C\uACE0\uB9AC\uBA85](til/{\uCE74\uD14C\uACE0\uB9AC}/backlog.md)` \uB9C8\uD06C\uB2E4\uC6B4 \uB9C1\uD06C\uB85C \uCD9C\uB825\uD55C\uB2E4\n- `til/claude-code/backlog.md`\uCC98\uB7FC \uACBD\uB85C\uB9CC \uB178\uCD9C\uD558\uBA74 \uC548 \uB41C\uB2E4 \u2192 `[claude-code](til/claude-code/backlog.md)`\uB85C \uCD9C\uB825\uD574\uC57C \uD55C\uB2E4\n\n### \uCE74\uD14C\uACE0\uB9AC \uC870\uD68C (`/backlog claude-code`)\n\n```\n[claude-code](til/claude-code/backlog.md) \uBC31\uB85C\uADF8 (4/13 \uC644\uB8CC, 30%)\n\n## \uC120\uD589 \uC9C0\uC2DD (2/4)\n- (x) [CLAUDE.md](til/claude-code/claude-md.md)\n- (x) [Settings\uC640 Configuration](til/claude-code/settings.md)\n- ( ) [Permission \uBAA8\uB4DC](til/claude-code/permission-mode.md)\n- ( ) [CLI \uB808\uD37C\uB7F0\uC2A4(CLI Reference)](til/claude-code/cli-reference.md)\n\n## \uD575\uC2EC \uAC1C\uB150 (1/5)\n- (x) [Hooks](til/claude-code/hooks.md)\n- ( ) [MCP(Model Context Protocol)](til/claude-code/mcp.md)\n- ( ) [Context \uAD00\uB9AC(Context Management)](til/claude-code/context-management.md)\n- ( ) [Agent Teams](til/claude-code/agent-teams.md)\n- ( ) [IDE Integration](til/claude-code/ide-integration.md)\n\n## \uC2EC\uD654 (1/4)\n- ( ) [GitHub Actions\uC640 CI/CD](til/claude-code/github-actions-ci-cd.md)\n- ...\n```\n\n- \uAC01 \uD56D\uBAA9\uC740 \uBC18\uB4DC\uC2DC `[\uD45C\uC2DC\uBA85](\uACBD\uB85C.md)` \uB9C8\uD06C\uB2E4\uC6B4 \uB9C1\uD06C\uB85C \uCD9C\uB825\uD55C\uB2E4. \uD30C\uC77C \uACBD\uB85C\uB9CC \uCD9C\uB825\uD558\uBA74 \uC548 \uB41C\uB2E4\n- \uC644\uB8CC\uB41C \uD56D\uBAA9\uC740 `- (x) [\uD56D\uBAA9\uBA85](\uACBD\uB85C.md)` \uD615\uC2DD\uC73C\uB85C \uC0C1\uD0DC \uD45C\uC2DC + \uB9C1\uD06C\uB97C \uCD9C\uB825\uD55C\uB2E4\n- backlog.md \uD30C\uC77C\uC5D0 \uC774\uBBF8 `[\uD45C\uC2DC\uBA85](\uACBD\uB85C.md)` \uD615\uD0DC\uB85C \uC800\uC7A5\uB418\uC5B4 \uC788\uC73C\uBBC0\uB85C, \uD574\uB2F9 \uB9C1\uD06C\uB97C \uADF8\uB300\uB85C \uCD9C\uB825\uD55C\uB2E4\n- \uC6D0\uBCF8\uC5D0 \uB9C1\uD06C\uAC00 \uC5C6\uB294 \uD56D\uBAA9\uB3C4 \uD30C\uC77C \uACBD\uB85C\uB97C \uC54C \uC218 \uC788\uC73C\uBA74 `[\uD56D\uBAA9\uBA85](\uCD94\uC815\uACBD\uB85C.md)` \uB9C1\uD06C\uB97C \uB9CC\uB4E4\uC5B4 \uCD9C\uB825\uD55C\uB2E4\n\n## \uC8FC\uC758\uC0AC\uD56D\n\n- \uBC31\uB85C\uADF8 \uD30C\uC77C\uC744 \uC218\uC815\uD558\uC9C0 \uC54A\uB294\uB2E4 (\uC77D\uAE30 \uC804\uC6A9)\n- \uC9C4\uD589\uB960 \uBC14\uB294 10\uCE78 \uAE30\uC900\uC73C\uB85C \uD45C\uC2DC\uD55C\uB2E4 (\u2588 = \uC644\uB8CC, \u2591 = \uBBF8\uC644\uB8CC)\n- `updated` frontmatter \uD544\uB4DC\uAC00 \uC5C6\uB294 \uBC31\uB85C\uADF8\uB294 \uCD5C\uADFC \uD559\uC2B5\uC77C \uCE7C\uB7FC\uC5D0 `-`\uB85C \uD45C\uC2DC\uD55C\uB2E4\n- \uD55C\uAD6D\uC5B4\uB85C \uCD9C\uB825\uD55C\uB2E4\n\n## \uD53C\uD574\uC57C \uD560 \uC2E4\uD328 \uBAA8\uB4DC\n\n- **\uBC31\uB85C\uADF8 \uD30C\uC77C \uC218\uC815**: \uC774 \uC2A4\uD0AC\uC740 \uC77D\uAE30 \uC804\uC6A9\uC774\uB2E4. \uC808\uB300 backlog.md\uB97C \uD3B8\uC9D1\uD558\uC9C0 \uC54A\uB294\uB2E4\n- **\uC798\uBABB\uB41C \uCE74\uC6B4\uD305**: `- [x]`\uC640 `- [ ]`\uB97C \uC815\uD655\uD788 \uC138\uC5B4\uC57C \uD55C\uB2E4. \uC139\uC158 \uD5E4\uB529(`##`)\uC774\uB098 \uBC31\uB85C\uADF8 \uB9C1\uD06C(`- [backlog](backlog.md)`)\uB97C \uD56D\uBAA9\uC73C\uB85C \uC798\uBABB \uC138\uC9C0 \uC54A\uB294\uB2E4\n- **\uC139\uC158 \uB204\uB77D**: \uCE74\uD14C\uACE0\uB9AC \uC870\uD68C \uC2DC \uBAA8\uB4E0 \uC139\uC158(\uC120\uD589 \uC9C0\uC2DD/\uD575\uC2EC \uAC1C\uB150/\uC2EC\uD654/\uC0DD\uD0DC\uACC4 \uB4F1)\uC744 \uBE60\uC9D0\uC5C6\uC774 \uBCF4\uC5EC\uC900\uB2E4\n- **\uD30C\uC77C \uACBD\uB85C\uB9CC \uCD9C\uB825**: `til/claude-code/backlog.md`\uCC98\uB7FC \uACBD\uB85C\uB97C \uADF8\uB300\uB85C \uB178\uCD9C\uD558\uBA74 \uC548 \uB41C\uB2E4. \uBC18\uB4DC\uC2DC `[claude-code](til/claude-code/backlog.md)` \uD615\uD0DC\uC758 \uB9C8\uD06C\uB2E4\uC6B4 \uB9C1\uD06C\uB85C \uCD9C\uB825\uD55C\uB2E4. \uCE74\uD14C\uACE0\uB9AC\uBA85, \uD56D\uBAA9\uBA85 \uBAA8\uB450 \uB3D9\uC77C\uD558\uAC8C \uB9C1\uD06C \uD615\uD0DC\uB97C \uC0AC\uC6A9\uD55C\uB2E4\n';
|
|
39426
|
+
var SKILL_default2 = '---\nname: backlog\ndescription: "\uD559\uC2B5 \uBC31\uB85C\uADF8\uB97C \uC870\uD68C\uD558\uACE0 \uC9C4\uD589 \uC0C1\uD669\uC744 \uBCF4\uC5EC\uC900\uB2E4"\nargument-hint: "[\uCE74\uD14C\uACE0\uB9AC]"\ndisable-model-invocation: true\nplugin-version: "__PLUGIN_VERSION__"\n---\n\n# Backlog Skill\n\n\uD559\uC2B5 \uBC31\uB85C\uADF8 \uC870\uD68C + \uC9C4\uD589 \uC0C1\uD669 \uC694\uC57D (\uC77D\uAE30 \uC804\uC6A9).\n\n## MCP \uB3C4\uAD6C\n\n- `til_backlog_status`: \uC804\uCCB4/\uCE74\uD14C\uACE0\uB9AC\uBCC4 \uC9C4\uD589\uB960 (category \uC9C0\uC815 \uC2DC sections \uD3EC\uD568)\n\n## \uC6CC\uD06C\uD50C\uB85C\uC6B0\n\n### \uC778\uC218 \uC5C6\uC74C (`/backlog`)\n\n1. `til_backlog_status` \uD638\uCD9C (MCP \uBD88\uAC00 \uC2DC `./til/*/backlog.md` Glob)\n2. \uBC31\uB85C\uADF8 \uC5C6\uC73C\uBA74 `/research` \uC548\uB0B4 \uD6C4 \uC885\uB8CC\n3. \uD14C\uC774\uBE14\uB85C \uC694\uC57D: \uCE74\uD14C\uACE0\uB9AC(\uB9C1\uD06C), \uC9C4\uD589\uB960, \uC644\uB8CC\uC218, \uCD5C\uADFC \uD559\uC2B5\uC77C, \uC9C4\uD589\uBC14\n\n### \uC778\uC218 \uC788\uC74C (`/backlog \uCE74\uD14C\uACE0\uB9AC`)\n\n1. `til_backlog_status`\uC5D0 category \uC804\uB2EC \u2192 sections \uD65C\uC6A9\n2. \uC139\uC158\uBCC4 \uCD9C\uB825:\n - `## {heading} ({\uC644\uB8CC\uC218}/{\uC804\uCCB4\uC218})`\n - `- (x) [{displayName}]({path})` / `- ( ) [{displayName}]({path})`\n - `- [ ]`/`- [x]` \uB9C8\uD06C\uB2E4\uC6B4 \uCCB4\uD06C\uBC15\uC2A4 \uC0AC\uC6A9 \uAE08\uC9C0 (\uD130\uBBF8\uB110 \uBBF8\uB80C\uB354\uB9C1)\n\n## \uCD9C\uB825 \uADDC\uCE59\n\n- \uBAA8\uB4E0 \uCE74\uD14C\uACE0\uB9AC\uBA85/\uD56D\uBAA9\uBA85\uC740 `[\uD45C\uC2DC\uBA85](\uACBD\uB85C)` \uB9C8\uD06C\uB2E4\uC6B4 \uB9C1\uD06C\uB85C \uCD9C\uB825\n- \uACBD\uB85C \uC9C1\uC811 \uB178\uCD9C \uAE08\uC9C0\n- \uC9C4\uD589\uBC14: 10\uCE78 (`\u2588` \uC644\uB8CC, `\u2591` \uBBF8\uC644\uB8CC)\n- \uD55C\uAD6D\uC5B4 \uCD9C\uB825\n- \uBC31\uB85C\uADF8 \uD30C\uC77C \uC218\uC815 \uAE08\uC9C0 (\uC77D\uAE30 \uC804\uC6A9)\n';
|
|
39398
39427
|
|
|
39399
39428
|
// vault-assets/skills/research/SKILL.md
|
|
39400
|
-
var SKILL_default3 = '---\nname: research\ndescription: "\uC8FC\uC81C\uB97C \uB9AC\uC11C\uCE58\uD558\uC5EC \uD559\uC2B5\uC5D0 \uD544\uC694\uD55C \uAC1C\uB150/\uC6A9\uC5B4\uB97C \uD30C\uC545\uD558\uACE0, Obsidian \uBC31\uB85C\uADF8\uB85C \uC815\uB9AC"\nargument-hint: "<\uC8FC\uC81C> [\uCE74\uD14C\uACE0\uB9AC]"\nplugin-version: "__PLUGIN_VERSION__"\n---\n\n# Research Skill\n\n\uC8FC\uC81C\uB97C \uAE4A\uC774 \uB9AC\uC11C\uCE58\uD558\uC5EC \uD559\uC2B5\uC5D0 \uD544\uC694\uD55C \uAC1C\uB150\uACFC \uC6A9\uC5B4\uB97C \uD30C\uC545\uD558\uACE0, Obsidian \uD638\uD658 \uBC31\uB85C\uADF8 \uD30C\uC77C\uB85C \uC815\uB9AC\uD55C\uB2E4.\n\n## \uD65C\uC131\uD654 \uC870\uAC74\n\n- "/research <\uC8FC\uC81C>"\n- "<\uC8FC\uC81C>\uC5D0 \uB300\uD574 \uB9AC\uC11C\uCE58\uD574\uC918"\n- "<\uC8FC\uC81C> \uD559\uC2B5 \uB85C\uB4DC\uB9F5 \uB9CC\uB4E4\uC5B4\uC918"\n\n## \uBE44\uD65C\uC131\uD654 \uC870\uAC74\n\n- \uD2B9\uC815 \uAC1C\uB150 \uD558\uB098\uB97C \uAE4A\uAC8C \uD559\uC2B5\uD558\uACE0 \uC2F6\uC744 \uB54C \u2192 `/til` \uC0AC\uC6A9\n- \uBC31\uB85C\uADF8 \uC9C4\uD589 \uC0C1\uD669\uB9CC \uD655\uC778\uD560 \uB54C \u2192 `/backlog` \uC0AC\uC6A9\n- \uC774\uBBF8 \uD574\uB2F9 \uCE74\uD14C\uACE0\uB9AC\uC5D0 \uBC31\uB85C\uADF8\uAC00 \uC788\uACE0, \uD56D\uBAA9\uC744 \uCD94\uAC00/\uC218\uC815\uB9CC \uD558\uACE0 \uC2F6\uC744 \uB54C \u2192 \uC9C1\uC811 \uD30C\uC77C \uD3B8\uC9D1\n- \uC0AC\uC6A9\uC790\uAC00 \uC774\uBBF8 \uD559\uC2B5 \uC21C\uC11C\uB97C \uC54C\uACE0 \uC788\uACE0 \uBC14\uB85C \uD559\uC2B5\uC744 \uC2DC\uC791\uD558\uACE0 \uC2F6\uC744 \uB54C \u2192 `/til`\uB85C \uBC14\uB85C \uC2DC\uC791\n\n## \uC6CC\uD06C\uD50C\uB85C\uC6B0\n\n### Phase 1: \uC8FC\uC81C \uB9AC\uC11C\uCE58\n\n1. \uC0AC\uC6A9\uC790\uAC00 \uC81C\uACF5\uD55C \uC8FC\uC81C\uB97C \uC6F9 \uAC80\uC0C9\uACFC \uBB38\uC11C\uB97C \uD1B5\uD574 \uB113\uAC8C \uC870\uC0AC\uD55C\uB2E4\n2. \uD574\uB2F9 \uC8FC\uC81C\uB97C \uC774\uD574\uD558\uAE30 \uC704\uD574 \uD544\uC694\uD55C \uAC1C\uB150, \uC6A9\uC5B4, \uC120\uD589 \uC9C0\uC2DD\uC744 \uD30C\uC545\uD55C\uB2E4\n3. \uAC1C\uB150 \uAC04 \uC758\uC874 \uAD00\uACC4\uB97C \uBD84\uC11D\uD55C\uB2E4 (A\uB97C \uC54C\uC544\uC57C B\uB97C \uC774\uD574\uD560 \uC218 \uC788\uB2E4)\n\n#### Subagent \uD65C\uC6A9 (\uBCD1\uB82C \uB9AC\uC11C\uCE58)\n\n\uC8FC\uC81C\uAC00 \uB113\uAC70\uB098 \uB2E4\uB8F0 \uC601\uC5ED\uC774 \uC5EC\uB7EC \uAC1C\uC77C \uB54C, Task \uB3C4\uAD6C\uB85C \uB9AC\uC11C\uCE58\uB97C \uBCD1\uB82C\uD654\uD55C\uB2E4:\n\n1. \uC8FC\uC81C\uB97C 3~5\uAC1C \uC18C\uC8FC\uC81C(sub-topic)\uB85C \uBD84\uD574\uD55C\uB2E4\n - \uC608: "Kubernetes devops" \u2192 "Pod/Container \uAE30\uCD08", "Service/Networking", "Storage/Volume", "Deployment \uC804\uB7B5", "\uBAA8\uB2C8\uD130\uB9C1/\uB85C\uAE45"\n2. \uAC01 \uC18C\uC8FC\uC81C\uC5D0 \uB300\uD574 Task \uB3C4\uAD6C\uB85C \uB9AC\uC11C\uCE58 subagent\uB97C **\uBCD1\uB82C spawn**\uD55C\uB2E4:\n ```\n Task(subagent_type="til-researcher", prompt="...", description="\uB9AC\uC11C\uCE58: {\uC18C\uC8FC\uC81C}")\n ```\n - \uAC01 subagent\uC5D0\uAC8C \uC804\uB2EC\uD560 \uD504\uB86C\uD504\uD2B8: "\'{\uC18C\uC8FC\uC81C}\'\uC5D0 \uB300\uD574 \uC6F9 \uAC80\uC0C9\uC73C\uB85C \uC870\uC0AC\uD558\uC5EC \uB2E4\uC74C\uC744 \uC815\uB9AC\uD574\uC918: (1) \uD575\uC2EC \uAC1C\uB150 3~5\uAC1C\uC640 \uAC01 1\uC904 \uC124\uBA85, (2) \uAD00\uB828 \uAE30\uC220 \uC6A9\uC5B4, (3) \uCC38\uACE0\uD560 \uB9CC\uD55C URL 2~3\uAC1C. \uD55C\uAD6D\uC5B4\uB85C \uC791\uC131\uD558\uB418 \uAE30\uC220 \uC6A9\uC5B4\uB294 \uC6D0\uC5B4 \uBCD1\uAE30."\n - \uBAA8\uB4E0 subagent\uB97C **\uD558\uB098\uC758 \uBA54\uC2DC\uC9C0\uC5D0\uC11C \uB3D9\uC2DC\uC5D0** \uD638\uCD9C\uD558\uC5EC \uBCD1\uB82C \uC2E4\uD589\uD55C\uB2E4\n3. \uBAA8\uB4E0 subagent \uACB0\uACFC\uB97C \uC218\uC9D1\uD55C \uB4A4, \uC18C\uC8FC\uC81C \uAC04 \uC758\uC874 \uAD00\uACC4\uB97C \uBD84\uC11D\uD558\uC5EC Phase 2\uC758 \uD559\uC2B5 \uC21C\uC11C \uC815\uB82C\uC5D0 \uBC18\uC601\uD55C\uB2E4\n\n> **\uCC38\uACE0**: \uC18C\uC8FC\uC81C\uAC00 2\uAC1C \uC774\uD558\uC774\uAC70\uB098 \uC8FC\uC81C\uAC00 \uCDA9\uBD84\uD788 \uC881\uC73C\uBA74 \uBCD1\uB82C\uD654 \uC5C6\uC774 \uC9C1\uC811 \uC870\uC0AC\uD55C\uB2E4.\n\n### Phase 1.5: \uB9AC\uC11C\uCE58 \uB9AC\uBDF0 (\uC870\uAC74\uBD80)\n\nPhase 1\uC5D0\uC11C \uBD84\uD574\uD55C **\uC18C\uC8FC\uC81C\uAC00 3\uAC1C \uC774\uC0C1**\uC77C \uB54C\uB9CC \uC2E4\uD589\uD55C\uB2E4. \uC18C\uC8FC\uC81C\uAC00 2\uAC1C \uC774\uD558\uC774\uBA74 \uC774 \uB2E8\uACC4\uB97C \uAC74\uB108\uB6F0\uACE0 Phase 2\uB85C \uBC14\uB85C \uC9C4\uD589\uD55C\uB2E4.\n\n```\nTask(subagent_type="til-research-reviewer", prompt="\uB2E4\uC74C \uB9AC\uC11C\uCE58 \uACB0\uACFC\uB97C 3\uAC00\uC9C0 \uD398\uB974\uC18C\uB098(\uCD08\uBCF4\uC790/\uC2E4\uBB34\uC790/\uBE44\uD310\uC790)\uB85C \uB9AC\uBDF0\uD574\uC918:\\n\\n{Phase 1 \uB9AC\uC11C\uCE58 \uACB0\uACFC}", description="\uB9AC\uC11C\uCE58 \uB9AC\uBDF0: {\uC8FC\uC81C}")\n```\n\n- **\uD1B5\uACFC** \uD310\uC815 \uC2DC: \uADF8\uB300\uB85C Phase 2\uB85C \uC9C4\uD589\uD55C\uB2E4\n- **\uBCF4\uC644 \uD6C4 \uC9C4\uD589** \uD310\uC815 \uC2DC: \uBCF4\uC644 \uC81C\uC548\uC744 \uBC18\uC601\uD558\uC5EC \uB9AC\uC11C\uCE58 \uACB0\uACFC\uB97C \uC218\uC815\uD55C \uB4A4 Phase 2\uB85C \uC9C4\uD589\uD55C\uB2E4\n\n### Phase 2: \uBC31\uB85C\uADF8 \uC815\uB9AC\n\n1. \uD30C\uC545\uD55C \uAC1C\uB150\uB4E4\uC744 \uD559\uC2B5 \uC21C\uC11C\uB300\uB85C \uC815\uB82C\uD55C\uB2E4 (\uC120\uD589 \uC9C0\uC2DD \u2192 \uD575\uC2EC \uAC1C\uB150 \u2192 \uC2EC\uD654)\n2. \uAC01 \uD56D\uBAA9\uC5D0 \uAC04\uB2E8\uD55C \uC124\uBA85(1\uC904)\uC744 \uBD99\uC778\uB2E4\n3. \uC0AC\uC6A9\uC790\uC5D0\uAC8C \uBC31\uB85C\uADF8\uB97C \uBCF4\uC5EC\uC8FC\uACE0 \uD53C\uB4DC\uBC31\uC744 \uBC1B\uB294\uB2E4\n4. \uC0AC\uC6A9\uC790\uAC00 \uD56D\uBAA9\uC744 \uCD94\uAC00/\uC81C\uAC70/\uC21C\uC11C \uBCC0\uACBD\uD560 \uC218 \uC788\uB2E4\n\n### Phase 3: \uC800\uC7A5\n\n1. \uC0AC\uC6A9\uC790\uAC00 "\uC800\uC7A5\uD574\uC918", "\uC815\uB9AC\uD574\uC918" \uB4F1\uC744 \uB9D0\uD558\uBA74 \uBC31\uB85C\uADF8 \uD30C\uC77C\uC744 \uC800\uC7A5\uD55C\uB2E4\n2. `./til/{\uCE74\uD14C\uACE0\uB9AC}/backlog.md` \uACBD\uB85C\uC5D0 \uC800\uC7A5\uD55C\uB2E4\n3. \uCE74\uD14C\uACE0\uB9AC \uD3F4\uB354\uAC00 \uC5C6\uC73C\uBA74 \uC790\uB3D9 \uC0DD\uC131\n4. **\uC774\uBBF8 backlog.md\uAC00 \uC788\uC73C\uBA74 \uBCD1\uD569\uD55C\uB2E4**:\n - `[x]`\uB85C \uC644\uB8CC\uB41C \uD56D\uBAA9\uC740 \uC0C8 \uB9AC\uC11C\uCE58\uC5D0\uC11C \uD574\uB2F9 \uD56D\uBAA9\uC774 \uC5C6\uC5B4\uB3C4 **\uBC18\uB4DC\uC2DC \uBCF4\uC874**\uD55C\uB2E4\n - \uB3D9\uC77C \uC774\uB984 \uD56D\uBAA9\uC740 \uAE30\uC874 \uCCB4\uD06C \uC0C1\uD0DC(`[x]`/`[ ]`)\uB97C \uC720\uC9C0\uD55C\uB2E4\n - \uC0C8 \uD56D\uBAA9\uC740 \uAE30\uC874 \uC139\uC158(\uC120\uD589 \uC9C0\uC2DD/\uD575\uC2EC \uAC1C\uB150/\uC2EC\uD654)\uC5D0 \uB9DE\uCDB0 \uCD94\uAC00\uD55C\uB2E4\n - \uB3D9\uC77C \uD56D\uBAA9\uC774 \uC0C8 \uB9AC\uC11C\uCE58\uC5D0\uC11C \uB2E4\uB978 \uC139\uC158\uC73C\uB85C \uBD84\uB958\uB41C \uACBD\uC6B0, \uAE30\uC874 \uC139\uC158 \uC704\uCE58\uB97C \uC720\uC9C0\uD55C\uB2E4\n - \uAE30\uC874 \uD56D\uBAA9\uC758 \uC124\uBA85\uC774\uB098 \uB9C1\uD06C\uAC00 \uB2EC\uB77C\uC9C4 \uACBD\uC6B0, \uAE30\uC874 \uAC83\uC744 \uC720\uC9C0\uD55C\uB2E4 (\uB36E\uC5B4\uC4F0\uC9C0 \uC54A\uC74C)\n - \uAE30\uC874 `sources`\uB294 \uBCF4\uC874\uD558\uACE0 \uC0C8 \uD56D\uBAA9\uB9CC \uCD94\uAC00\uD55C\uB2E4 (\uAE30\uC874 URL\uC744 \uB36E\uC5B4\uC4F0\uC9C0 \uC54A\uC74C)\n5. TIL MOC\uC5D0 \uBC31\uB85C\uADF8 \uB9C1\uD06C\uB97C \uCD94\uAC00\uD55C\uB2E4\n6. \uBCC0\uACBD\uB41C \uD30C\uC77C(\uBC31\uB85C\uADF8 + TIL MOC)\uC744 \uD558\uB098\uC758 atomic commit\uC73C\uB85C \uCEE4\uBC0B\uD55C\uB2E4\n - \uCEE4\uBC0B \uBA54\uC2DC\uC9C0: `\u{1F4CB} research: {\uC8FC\uC81C} \uD559\uC2B5 \uBC31\uB85C\uADF8 - {\uCE74\uD14C\uACE0\uB9AC}`\n - push\uB294 \uD558\uC9C0 \uC54A\uB294\uB2E4 (\uB85C\uCEEC \uCEE4\uBC0B\uB9CC)\n\n## \uBC31\uB85C\uADF8 \uD30C\uC77C \uD15C\uD50C\uB9BF\n\n```markdown\n---\ntags:\n - backlog\n - {\uCE74\uD14C\uACE0\uB9AC}\naliases:\n - "Backlog - {\uC8FC\uC81C}"\nupdated: YYYY-MM-DD\nsources:\n slug-a:\n - https://\uC6D0\uBCF8-url-1\n slug-b:\n - https://\uC6D0\uBCF8-url-1\n - https://\uC6D0\uBCF8-url-2\n---\n\n# {\uC8FC\uC81C} \uD559\uC2B5 \uBC31\uB85C\uADF8\n\n## \uC120\uD589 \uC9C0\uC2DD\n- [ ] [\uAC1C\uB150A](til/{\uCE74\uD14C\uACE0\uB9AC}/{slug-a}.md) - \uAC04\uB2E8\uD55C \uC124\uBA85\n- [ ] [\uAC1C\uB150B](til/{\uCE74\uD14C\uACE0\uB9AC}/{slug-b}.md) - \uAC04\uB2E8\uD55C \uC124\uBA85\n\n## \uD575\uC2EC \uAC1C\uB150\n- [ ] [\uAC1C\uB150C](til/{\uCE74\uD14C\uACE0\uB9AC}/{slug-c}.md) - \uAC04\uB2E8\uD55C \uC124\uBA85\n- [ ] [\uAC1C\uB150D](til/{\uCE74\uD14C\uACE0\uB9AC}/{slug-d}.md) - \uAC04\uB2E8\uD55C \uC124\uBA85\n\n## \uC2EC\uD654\n- [ ] [\uAC1C\uB150E](til/{\uCE74\uD14C\uACE0\uB9AC}/{slug-e}.md) - \uAC04\uB2E8\uD55C \uC124\uBA85\n- [ ] [\uAC1C\uB150F](til/{\uCE74\uD14C\uACE0\uB9AC}/{slug-f}.md) - \uAC04\uB2E8\uD55C \uC124\uBA85\n```\n\n### \uD15C\uD50C\uB9BF \uADDC\uCE59\n\n1. **\uCCB4\uD06C\uBC15\uC2A4**: Obsidian\uC5D0\uC11C \uCCB4\uD06C \uAC00\uB2A5\uD55C `- [ ]` \uD615\uC2DD. \uD559\uC2B5 \uC644\uB8CC \uC2DC `- [x]`\uB85C \uCCB4\uD06C\n2. **\uB9C1\uD06C**: \uAC01 \uD56D\uBAA9\uC740 `[\uD45C\uC2DC\uBA85](til/{\uCE74\uD14C\uACE0\uB9AC}/{slug}.md)` \uD615\uD0DC\uB85C \uD45C\uC900 \uB9C8\uD06C\uB2E4\uC6B4 \uB9C1\uD06C. /til\uB85C \uD559\uC2B5 \uD6C4 TIL \uB178\uD2B8\uAC00 \uC0DD\uAE30\uBA74 \uC790\uB3D9 \uC5F0\uACB0\uB428\n3. **3\uB2E8\uACC4 \uAD6C\uBD84**: \uC120\uD589 \uC9C0\uC2DD / \uD575\uC2EC \uAC1C\uB150 / \uC2EC\uD654\uB85C \uB098\uB220 \uD559\uC2B5 \uC6B0\uC120\uC21C\uC704\uB97C \uD45C\uD604\n4. **\uAC04\uB2E8\uD55C \uC124\uBA85**: \uD56D\uBAA9\uB2F9 1\uC904. "\uC774\uAC8C \uBB54\uC9C0"\uB97C \uBE60\uB974\uAC8C \uD30C\uC545\uD560 \uC218 \uC788\uB294 \uC815\uB3C4\n5. **updated**: \uBC31\uB85C\uADF8\uAC00 \uB9C8\uC9C0\uB9C9\uC73C\uB85C \uC218\uC815\uB41C \uB0A0\uC9DC\n6. **sources**: \uAC01 \uD56D\uBAA9\uC758 slug\uB97C \uD0A4\uB85C, \uB9AC\uC11C\uCE58 \uC2DC \uCC38\uC870\uD55C \uC6D0\uBCF8 URL \uBAA9\uB85D\uC744 \uBC30\uC5F4\uB85C \uC800\uC7A5. \uD558\uB098\uC758 \uAC1C\uB150\uC5D0 \uC5EC\uB7EC \uCD9C\uCC98\uAC00 \uC788\uC744 \uC218 \uC788\uB2E4. `/til` \uD559\uC2B5 \uC2DC \uC6D0\uBCF8 \uCD9C\uCC98\uB85C \uD65C\uC6A9\uB428. URL\uC774 \uC5C6\uB294 \uD56D\uBAA9(\uC6F9 \uAC80\uC0C9\uC73C\uB85C \uC5BB\uC740 \uC77C\uBC18 \uC9C0\uC2DD)\uC740 \uC0DD\uB7B5 \uAC00\uB2A5\n\n## TIL MOC \uC5F0\uB3D9\n\n\uBC31\uB85C\uADF8 \uC800\uC7A5 \uC2DC `./til/TIL MOC.md`\uC758 \uD574\uB2F9 \uCE74\uD14C\uACE0\uB9AC\uC5D0 \uBC31\uB85C\uADF8 \uB9C1\uD06C\uB97C \uCD94\uAC00\uD55C\uB2E4:\n\n```markdown\n### claude-code\n- [Backlog](til/claude-code/backlog.md)\n1. [Claude Code \uAC1C\uC694](til/claude-code/overview.md)\n```\n\n\uBC31\uB85C\uADF8 \uB9C1\uD06C\uB294 \uD574\uB2F9 \uCE74\uD14C\uACE0\uB9AC\uC758 TIL \uBAA9\uB85D \uC704\uC5D0 \uB454\uB2E4.\n\n## /til\uACFC\uC758 \uC5F0\uACC4\n\n- \uBC31\uB85C\uADF8\uC5D0\uC11C \uD559\uC2B5\uD560 \uD56D\uBAA9\uC744 \uACE8\uB77C `/til \uAC1C\uB150\uBA85 \uCE74\uD14C\uACE0\uB9AC`\uB85C \uD559\uC2B5\uD558\uBA74 TIL\uC774 \uC0DD\uC131\uB41C\uB2E4\n- \uBC31\uB85C\uADF8 \uD56D\uBAA9\uC774 \uC774\uBBF8 \uD45C\uC900 \uB9C8\uD06C\uB2E4\uC6B4 \uB9C1\uD06C(`[\uD45C\uC2DC\uBA85](til/{\uCE74\uD14C\uACE0\uB9AC}/{slug}.md)`)\uC774\uBBC0\uB85C, TIL \uD30C\uC77C\uC774 \uC0DD\uC131\uB418\uBA74 Obsidian\uC5D0\uC11C \uC790\uB3D9\uC73C\uB85C \uC5F0\uACB0\uB428\n- \uBC31\uB85C\uADF8\uC5D0 \uCD94\uAC00\uB41C \uD56D\uBAA9\uC740 \uB2E4\uB978 \uC2A4\uD0AC(`/til`, `/save`)\uC5D0\uC11C "\uBC31\uB85C\uADF8 \uD56D\uBAA9"\uC73C\uB85C \uC778\uC2DD\uB418\uC5B4 \uBCF8\uBB38\uC5D0\uC11C \uBC14\uB85C \uB9C1\uD06C\uB85C \uC0AC\uC6A9\uB41C\uB2E4\n- \uC0AC\uC6A9\uC790\uAC00 \uC9C1\uC811 Obsidian\uC5D0\uC11C \uCCB4\uD06C\uBC15\uC2A4\uB97C \uCCB4\uD06C\uD558\uC5EC \uC644\uB8CC\uB97C \uD45C\uC2DC\uD55C\uB2E4\n\n## \uC778\uC218 \uCC98\uB9AC\n\n- **\uCCAB \uBC88\uC9F8 \uC778\uC218**: \uB9AC\uC11C\uCE58 \uC8FC\uC81C (\uD544\uC218)\n - \uC608: "Kubernetes", "\uD568\uC218\uD615 \uD504\uB85C\uADF8\uB798\uBC0D", "OAuth 2.0"\n- **\uB450 \uBC88\uC9F8 \uC778\uC218**: \uCE74\uD14C\uACE0\uB9AC (\uC120\uD0DD)\n - \uC608: "devops", "programming", "security"\n - \uBBF8\uC9C0\uC815 \uC2DC \uC8FC\uC81C\uC5D0\uC11C \uC790\uB3D9 \uCD94\uB860\n\n## \uC2E4\uD589 \uC608\uC2DC\n\n```\n/research Kubernetes devops\n/research \uD568\uC218\uD615 \uD504\uB85C\uADF8\uB798\uBC0D\n/research OAuth 2.0 security\n```\n\n## \uC8FC\uC758\uC0AC\uD56D\n\n- \uBC31\uB85C\uADF8\uB294 "\uD559\uC2B5\uD574\uC57C \uD560 \uAC83"\uC758 \uBAA9\uB85D\uC774\uC9C0, \uD559\uC2B5 \uB0B4\uC6A9 \uC790\uCCB4\uAC00 \uC544\uB2C8\uB2E4\n- \uAC01 \uD56D\uBAA9\uC758 \uC124\uBA85\uC740 1\uC904\uB85C \uC9E7\uAC8C. \uC0C1\uC138 \uB0B4\uC6A9\uC740 /til\uB85C \uD559\uC2B5\uD560 \uB54C \uC791\uC131\uD55C\uB2E4\n- \uAE30\uC874 backlog.md\uAC00 \uC788\uC744 \uB54C\uB294 \uB36E\uC5B4\uC4F0\uC9C0 \uC54A\uACE0 \uBCD1\uD569\uD55C\uB2E4\n- \uD55C\uAD6D\uC5B4\uB85C \uC791\uC131\uD558\uB418, \uAE30\uC220 \uC6A9\uC5B4\uB294 \uC6D0\uC5B4 \uBCD1\uAE30 (\uC608: "\uD074\uB85C\uC800(Closure)")\n\n## \uD53C\uD574\uC57C \uD560 \uC2E4\uD328 \uBAA8\uB4DC\n\n- **\uBC31\uB85C\uADF8\uAC00 \uB108\uBB34 \uB113\uC74C**: \uD56D\uBAA9\uC774 20\uAC1C\uB97C \uB118\uC73C\uBA74 \uC8FC\uC81C\uB97C \uB354 \uC881\uD788\uAC70\uB098 \uD558\uC704 \uCE74\uD14C\uACE0\uB9AC\uB85C \uBD84\uB9AC\uD55C\uB2E4\n- **\uD56D\uBAA9\uC774 \uB108\uBB34 \uBAA8\uD638\uD568**: "\uAE30\uBCF8 \uAC1C\uB150" \uAC19\uC740 \uC774\uB984 \uB300\uC2E0 "MVCC (Multi-Version Concurrency Control)" \uCC98\uB7FC \uAD6C\uCCB4\uC801\uC73C\uB85C \uBA85\uBA85\n- **\uC758\uC874 \uAD00\uACC4 \uBB34\uC2DC**: A\uB97C \uC54C\uC544\uC57C B\uB97C \uC774\uD574\uD560 \uC218 \uC788\uB294\uB370 B\uB97C \uC120\uD589 \uC9C0\uC2DD\uC5D0 \uB450\uB294 \uC2E4\uC218. \uBC18\uB4DC\uC2DC \uC758\uC874 \uC21C\uC11C\uB97C \uAC80\uC99D\n- **\uAE30\uC874 \uBC31\uB85C\uADF8 \uB36E\uC5B4\uC4F0\uAE30**: \uC774\uBBF8 backlog.md\uAC00 \uC788\uC744 \uB54C \uC0C8 \uB0B4\uC6A9\uC73C\uB85C \uD1B5\uC9F8\uB85C \uAD50\uCCB4\uD558\uC9C0 \uC54A\uB294\uB2E4. \uAE30\uC874 \uD56D\uBAA9(\uD2B9\uD788 [x] \uC644\uB8CC \uD56D\uBAA9)\uC744 \uBCF4\uC874\uD558\uACE0 \uBCD1\uD569\n- **\uC124\uBA85 \uC5C6\uB294 \uD56D\uBAA9**: `- [ ] [\uAC1C\uB150](\uAC1C\uB150.md)`\uB9CC \uC788\uACE0 \uC124\uBA85\uC774 \uC5C6\uC73C\uBA74, \uB098\uC911\uC5D0 \uC774\uAC8C \uBB54\uC9C0 \uC54C \uC218 \uC5C6\uB2E4. \uBC18\uB4DC\uC2DC 1\uC904 \uC124\uBA85\uC744 \uBD99\uC778\uB2E4\n- **\uBBFC\uAC10 \uC815\uBCF4 \uD3EC\uD568**: \uBC31\uB85C\uADF8 \uD56D\uBAA9 \uC124\uBA85\uC5D0 \uD68C\uC0AC \uB0B4\uBD80 \uC2DC\uC2A4\uD15C\uBA85, \uC2E4\uC81C URL, \uACC4\uC815 \uC815\uBCF4 \uB4F1\uC744 \uD3EC\uD568\uD558\uC9C0 \uC54A\uB294\uB2E4. \uC77C\uBC18\uC801\uC778 \uC6A9\uC5B4\uB85C \uB300\uCCB4\uD55C\uB2E4\n\n## \uC644\uB8CC \uCCB4\uD06C\uB9AC\uC2A4\uD2B8 (Phase 3)\n\n\uC800\uC7A5 \uC2DC \uC544\uB798 \uD56D\uBAA9\uC744 \uBAA8\uB450 \uD655\uC778\uD55C\uB2E4:\n\n- [ ] \uBC31\uB85C\uADF8 \uD56D\uBAA9\uC774 3\uB2E8\uACC4(\uC120\uD589 \uC9C0\uC2DD / \uD575\uC2EC \uAC1C\uB150 / \uC2EC\uD654)\uB85C \uBD84\uB958\uB428\n- [ ] \uAC01 \uD56D\uBAA9\uC5D0 1\uC904 \uC124\uBA85\uC774 \uC788\uC74C\n- [ ] \uAE30\uC874 \uBC31\uB85C\uADF8\uAC00 \uC788\uC73C\uBA74 \uBCD1\uD569\uB428 (\uC644\uB8CC \uD56D\uBAA9 [x] \uBCF4\uC874)\n- [ ] TIL MOC\uC5D0 \uBC31\uB85C\uADF8 \uB9C1\uD06C(`- [Backlog](til/{\uCE74\uD14C\uACE0\uB9AC}/backlog.md)`)\uAC00 \uCD94\uAC00\uB428\n- [ ] `sources` frontmatter\uC5D0 \uC6D0\uBCF8 URL\uC774 \uC788\uB294 \uD56D\uBAA9\uC740 \uBAA8\uB450 \uB9E4\uD551\uB428\n- [ ] \uC0AC\uC6A9\uC790\uC5D0\uAC8C `/til`\uB85C \uD559\uC2B5\uC744 \uC2DC\uC791\uD558\uB294 \uBC29\uBC95\uC744 \uC548\uB0B4\uD568\n';
|
|
39429
|
+
var SKILL_default3 = '---\nname: research\ndescription: "\uC8FC\uC81C\uB97C \uB9AC\uC11C\uCE58\uD558\uC5EC \uD559\uC2B5\uC5D0 \uD544\uC694\uD55C \uAC1C\uB150/\uC6A9\uC5B4\uB97C \uD30C\uC545\uD558\uACE0, \uBC31\uB85C\uADF8\uB85C \uC815\uB9AC"\nargument-hint: "<\uC8FC\uC81C> [\uCE74\uD14C\uACE0\uB9AC]"\nplugin-version: "__PLUGIN_VERSION__"\n---\n\n# Research Skill\n\n\uC8FC\uC81C \uB9AC\uC11C\uCE58 \u2192 \uAC1C\uB150/\uC758\uC874 \uAD00\uACC4 \uD30C\uC545 \u2192 \uBC31\uB85C\uADF8 \uD30C\uC77C \uC800\uC7A5.\n\n## Phase 1: \uC8FC\uC81C \uB9AC\uC11C\uCE58\n\n1. \uC6F9 \uAC80\uC0C9\uC73C\uB85C \uC8FC\uC81C \uC870\uC0AC, \uD544\uC694 \uAC1C\uB150\xB7\uC6A9\uC5B4\xB7\uC120\uD589 \uC9C0\uC2DD \uD30C\uC545\n2. \uC18C\uC8FC\uC81C \uBD84\uD574 \uD6C4 \uC9C1\uC811 \uB9AC\uC11C\uCE58\n3. \uC18C\uC8FC\uC81C \uAC04 \uC758\uC874 \uAD00\uACC4 \uBD84\uC11D\n\n## Phase 2: \uBC31\uB85C\uADF8 \uC815\uB9AC\n\n1. \uD559\uC2B5 \uC21C\uC11C \uC815\uB82C: \uC120\uD589 \uC9C0\uC2DD \u2192 \uD575\uC2EC \uAC1C\uB150 \u2192 \uC2EC\uD654\n2. \uAC01 \uD56D\uBAA9\uC5D0 1\uC904 \uC124\uBA85\n3. \uC0AC\uC6A9\uC790 \uD53C\uB4DC\uBC31 (\uCD94\uAC00/\uC81C\uAC70/\uC21C\uC11C \uBCC0\uACBD)\n\n## Phase 3: \uC800\uC7A5\n\n1. `./til/{\uCE74\uD14C\uACE0\uB9AC}/backlog.md`\uC5D0 \uC800\uC7A5 (\uD3F4\uB354 \uC790\uB3D9 \uC0DD\uC131)\n2. \uAE30\uC874 backlog.md \uC788\uC73C\uBA74 \uBCD1\uD569:\n - `[x]` \uC644\uB8CC \uD56D\uBAA9 \uBCF4\uC874\n - \uB3D9\uC77C \uD56D\uBAA9 \uCCB4\uD06C \uC0C1\uD0DC \uC720\uC9C0\n - \uAE30\uC874 sources \uBCF4\uC874, \uC0C8 \uD56D\uBAA9\uB9CC \uCD94\uAC00\n3. TIL MOC\uC5D0 \uBC31\uB85C\uADF8 \uB9C1\uD06C \uCD94\uAC00\n4. atomic commit: `\u{1F4CB} research: {\uC8FC\uC81C} \uD559\uC2B5 \uBC31\uB85C\uADF8 - {\uCE74\uD14C\uACE0\uB9AC}` (push \uC548 \uD568)\n\n## \uBC31\uB85C\uADF8 \uD15C\uD50C\uB9BF\n\n```markdown\n---\ntags: [backlog, {\uCE74\uD14C\uACE0\uB9AC}]\naliases: ["Backlog - {\uC8FC\uC81C}"]\nupdated: YYYY-MM-DD\nsources:\n slug-a: [https://url-1]\n---\n\n# {\uC8FC\uC81C} \uD559\uC2B5 \uBC31\uB85C\uADF8\n\n## \uC120\uD589 \uC9C0\uC2DD\n- [ ] [\uAC1C\uB150A](til/{\uCE74\uD14C\uACE0\uB9AC}/{slug-a}.md) - \uC124\uBA85\n\n## \uD575\uC2EC \uAC1C\uB150\n- [ ] [\uAC1C\uB150C](til/{\uCE74\uD14C\uACE0\uB9AC}/{slug-c}.md) - \uC124\uBA85\n\n## \uC2EC\uD654\n- [ ] [\uAC1C\uB150E](til/{\uCE74\uD14C\uACE0\uB9AC}/{slug-e}.md) - \uC124\uBA85\n```\n\n## \uC778\uC218\n\n- \uCCAB \uBC88\uC9F8: \uB9AC\uC11C\uCE58 \uC8FC\uC81C (\uD544\uC218)\n- \uB450 \uBC88\uC9F8: \uCE74\uD14C\uACE0\uB9AC (\uC120\uD0DD, \uBBF8\uC9C0\uC815 \uC2DC \uC790\uB3D9 \uCD94\uB860)\n\n## \uADDC\uCE59\n\n- \uD56D\uBAA9\uB2F9 1\uC904 \uC124\uBA85, 20\uAC1C \uCD08\uACFC \uC2DC \uBD84\uB9AC\n- \uD55C\uAD6D\uC5B4 \uC791\uC131, \uAE30\uC220 \uC6A9\uC5B4 \uC6D0\uC5B4 \uBCD1\uAE30\n- \uB9C1\uD06C: `[\uD45C\uC2DC\uBA85](til/{\uCE74\uD14C\uACE0\uB9AC}/{slug}.md)`\n';
|
|
39401
39430
|
|
|
39402
39431
|
// vault-assets/skills/save/SKILL.md
|
|
39403
|
-
var SKILL_default4 = '---\nname: save\ndescription: "\uD559\uC2B5 \uB0B4\uC6A9\uC744 TIL \uD30C\uC77C\uB85C \uC800\uC7A5\uD558\uACE0 Daily \uB178\uD2B8, MOC, \uBC31\uB85C\uADF8\uB97C \uC77C\uAD04 \uC5C5\uB370\uC774\uD2B8"\nargument-hint: "[\uC8FC\uC81C] [\uCE74\uD14C\uACE0\uB9AC]"\nplugin-version: "__PLUGIN_VERSION__"\n---\n\n# Save Skill\n\n\uD559\uC2B5 \uB300\uD654\uC758 \uACB0\uACFC\uBB3C\uC744 Obsidian \uD638\uD658 TIL \uB9C8\uD06C\uB2E4\uC6B4\uC73C\uB85C \uC800\uC7A5\uD558\uACE0, \uC5F0\uAD00 \uD30C\uC77C(Daily \uB178\uD2B8, TIL MOC, \uBC31\uB85C\uADF8)\uC744 \uBE60\uC9D0\uC5C6\uC774 \uC5C5\uB370\uC774\uD2B8\uD55C\uB2E4.\n\n\uC774 \uC2A4\uD0AC\uC740 \uC800\uC7A5 \uC6D0\uCE59, \uC0C1\uC138 \uD15C\uD50C\uB9BF, \uC6CC\uD06C\uD50C\uB85C\uC6B0\uB97C \uBAA8\uB450 \uD3EC\uD568\uD55C\uB2E4.\n\n## \uD65C\uC131\uD654 \uC870\uAC74\n\n- "\uC800\uC7A5\uD574\uC918", "\uC800\uC7A5", "\uC815\uB9AC\uD574\uC918", "TIL\uB85C \uB9CC\uB4E4\uC5B4\uC918"\n- "/save"\n- `/til` Phase 2 \uC644\uB8CC \uD6C4 \uC0AC\uC6A9\uC790\uAC00 \uC800\uC7A5\uC744 \uC694\uCCAD\uD560 \uB54C\n\n## \uBE44\uD65C\uC131\uD654 \uC870\uAC74\n\n- \uD559\uC2B5 \uB300\uD654 \uC5C6\uC774 \uD638\uCD9C (\uC800\uC7A5\uD560 \uB0B4\uC6A9\uC774 \uC5C6\uC74C) \u2192 "\uC800\uC7A5\uD560 \uD559\uC2B5 \uB0B4\uC6A9\uC774 \uC5C6\uC2B5\uB2C8\uB2E4" \uC548\uB0B4\n- \uC774\uBBF8 \uC800\uC7A5\uB41C TIL \uD30C\uC77C\uC744 \uC218\uC815\uD558\uACE0 \uC2F6\uC744 \uB54C \u2192 \uC9C1\uC811 \uD30C\uC77C \uD3B8\uC9D1\n- \uBC31\uB85C\uADF8\uB9CC \uD655\uC778\uD558\uACE0 \uC2F6\uC744 \uB54C \u2192 `/backlog` \uC0AC\uC6A9\n\n## MCP \uB3C4\uAD6C \uD65C\uC6A9\n\n`oh-my-til` MCP \uC11C\uBC84\uAC00 \uC5F0\uACB0\uB418\uC5B4 \uC788\uC73C\uBA74 MCP \uB3C4\uAD6C\uB97C \uD65C\uC6A9\uD55C\uB2E4:\n\n- **\uC800\uC7A5 \uC804**: `til_get_context`\uB85C \uC8FC\uC81C \uAD00\uB828 \uAE30\uC874 TIL\uACFC \uBC31\uB85C\uADF8\uB97C \uD55C \uBC88\uC5D0 \uD30C\uC545\n- **\uC800\uC7A5 \uC804**: `til_list`\uB85C \uAE30\uC874 TIL \uBAA9\uB85D\uC744 \uD655\uC778\uD558\uC5EC \uB3D9\uC77C/\uC720\uC0AC \uC8FC\uC81C \uC911\uBCF5 \uBC29\uC9C0. `til_list`\uB294 JSON\uC744 \uBC18\uD658\uD55C\uB2E4: `{ totalCount, categories: [{ name, count, files }] }`\n- **\uC800\uC7A5 \uC804**: `vault_get_active_file`\uB85C \uC0AC\uC6A9\uC790\uAC00 \uBCF4\uACE0 \uC788\uB294 \uD30C\uC77C \uCEE8\uD14D\uC2A4\uD2B8 \uD655\uC778\n\nMCP \uB3C4\uAD6C\uB97C \uC0AC\uC6A9\uD560 \uC218 \uC5C6\uB294 \uACBD\uC6B0, `./til/TIL MOC.md`\uC640 `./til/{\uCE74\uD14C\uACE0\uB9AC}/backlog.md`\uB97C \uC9C1\uC811 \uC77D\uC5B4 \uAE30\uC874 TIL\uACFC \uBC31\uB85C\uADF8\uB97C \uD30C\uC545\uD55C\uB2E4.\n\n## \uC6CC\uD06C\uD50C\uB85C\uC6B0\n\n### Step 1: \uCEE8\uD14D\uC2A4\uD2B8 \uD655\uC778\n\n1. \uD604\uC7AC \uB300\uD654\uC5D0\uC11C \uD559\uC2B5\uD55C \uC8FC\uC81C\uB97C \uD30C\uC545\uD55C\uB2E4\n2. \uCE74\uD14C\uACE0\uB9AC\uAC00 \uC9C0\uC815\uB418\uC9C0 \uC54A\uC558\uC73C\uBA74 \uC8FC\uC81C\uC5D0 \uB9DE\uB294 \uCE74\uD14C\uACE0\uB9AC\uB97C \uC790\uB3D9 \uCD94\uCC9C\uD55C\uB2E4\n3. \uC8FC\uC81C\uB098 \uCE74\uD14C\uACE0\uB9AC\uAC00 \uBD88\uBA85\uD655\uD558\uBA74 \uC0AC\uC6A9\uC790\uC5D0\uAC8C \uC9C8\uBB38\uD55C\uB2E4\n\n### Step 2: \uB9C1\uD06C \uD6C4\uBCF4 \uD30C\uC545\n\n1. MCP \uB3C4\uAD6C(`til_get_context`) \uB610\uB294 MOC/\uBC31\uB85C\uADF8 \uD30C\uC77C\uC744 \uC77D\uC5B4 \uAE30\uC874 TIL\uACFC \uBC31\uB85C\uADF8 \uD56D\uBAA9\uC744 \uD30C\uC545\uD55C\uB2E4\n2. \uD559\uC2B5 \uB0B4\uC6A9\uC5D0\uC11C \uC5B8\uAE09\uB41C \uAD00\uB828 \uAC1C\uB150\uC744 \uBD84\uB958\uD55C\uB2E4:\n - **\uAE30\uC874 TIL** \u2192 \uBCF8\uBB38\uC5D0\uC11C \uBC14\uB85C \uB9C8\uD06C\uB2E4\uC6B4 \uB9C1\uD06C \uC0AC\uC6A9\n - **\uBC31\uB85C\uADF8 \uD56D\uBAA9** \u2192 \uBCF8\uBB38\uC5D0\uC11C \uBC14\uB85C \uB9C8\uD06C\uB2E4\uC6B4 \uB9C1\uD06C \uC0AC\uC6A9 (\uC774\uBBF8 \uD559\uC2B5 \uACC4\uD68D\uC5D0 \uC788\uC73C\uBBC0\uB85C)\n - **\uC874\uC7AC\uD558\uC9C0 \uC54A\uB294 \uAC1C\uB150** \u2192 \uD559\uC2B5\uD558\uBA74 \uC88B\uC744 \uAC1C\uB150\uB9CC \uD6C4\uBCF4\uB85C \uC120\uBCC4\n3. \uC874\uC7AC\uD558\uC9C0 \uC54A\uB294 \uAC1C\uB150 \uD6C4\uBCF4\uAC00 \uC788\uC73C\uBA74 \uC0AC\uC6A9\uC790\uC5D0\uAC8C \uC9C8\uBB38\uD55C\uB2E4:\n - "\uB2E4\uC74C \uAC1C\uB150\uB4E4\uC774 \uC544\uC9C1 TIL\uC5D0 \uC5C6\uC2B5\uB2C8\uB2E4. \uAD00\uB828 \uB178\uD2B8\uC5D0 \uCD94\uAC00\uD560\uAE4C\uC694?"\n - \uAC01 \uD6C4\uBCF4\uB97C \uBAA9\uB85D\uC73C\uB85C \uBCF4\uC5EC\uC8FC\uACE0, \uC0AC\uC6A9\uC790\uAC00 \uC120\uD0DD\uD55C \uAC83\uB9CC `## \uAD00\uB828 \uB178\uD2B8` \uC139\uC158\uC5D0 \uCD94\uAC00\n - \uD6C4\uBCF4\uAC00 \uC5C6\uC73C\uBA74 \uC9C8\uBB38 \uC5C6\uC774 \uB2E4\uC74C \uB2E8\uACC4\uB85C \uC9C4\uD589\n - \uCCAB TIL \uC791\uC131 \uC2DC (\uAE30\uC874 TIL/\uBC31\uB85C\uADF8 \uC5C6\uC74C) \uAD00\uB828 \uB178\uD2B8 \uD6C4\uBCF4\uAC00 \uACFC\uB3C4\uD558\uBA74 \uD575\uC2EC 2~3\uAC1C\uB9CC \uC81C\uC548\uD55C\uB2E4\n\n### Step 3: TIL \uD30C\uC77C \uC800\uC7A5\n\n1. \uD559\uC2B5 \uB0B4\uC6A9\uC744 \uC544\uB798 \uD15C\uD50C\uB9BF\uC5D0 \uB9DE\uCDB0 \uC815\uB9AC\uD55C\uB2E4 (Step 2\uC5D0\uC11C \uD655\uC815\uD55C \uB9C1\uD06C \uBC18\uC601)\n2. `./til/{\uCE74\uD14C\uACE0\uB9AC}/{\uC8FC\uC81C\uC2AC\uB7EC\uADF8}.md`\uC5D0 \uC800\uC7A5\uD55C\uB2E4\n3. **\uB3D9\uC77C \uC2AC\uB7EC\uADF8 \uD30C\uC77C\uC774 \uC788\uB294 \uACBD\uC6B0** \u2014 \uC790\uB3D9 \uBCD1\uD569\uC740 \uD55C \uAC00\uC9C0 \uC870\uAC74\uC5D0\uC11C\uB9CC \uD5C8\uC6A9\uD55C\uB2E4:\n - **\uC790\uB3D9 \uBCD1\uD569 \uC870\uAC74**: \uD604\uC7AC \uB300\uD654\uC5D0\uC11C `/til` Phase 1\uC774 \uAE30\uC874 TIL\uC744 \uAC10\uC9C0\uD558\uACE0, \uC0AC\uC6A9\uC790\uAC00 "\uC2EC\uD654 \uD559\uC2B5"\uC744 **\uBA85\uC2DC\uC801\uC73C\uB85C \uC120\uD0DD**\uD558\uACE0, \uADF8 \uB300\uD654\uAC00 \uB04A\uAE30\uC9C0 \uC54A\uACE0 \uBC14\uB85C \uC774\uC5B4\uC9C4 \uACBD\uC6B0\uC5D0\uB9CC\n - **\uADF8 \uC678 \uBAA8\uB4E0 \uACBD\uC6B0** (\uB3C5\uB9BD `/save` \uD638\uCD9C, \uB300\uD654\uAC00 \uAE38\uC5B4\uC9C4 \uACBD\uC6B0, `/til`\uC5D0\uC11C "\uC0C8\uB85C \uC791\uC131"\uC744 \uC120\uD0DD\uD55C \uACBD\uC6B0 \uB4F1): \uC790\uB3D9 \uBCD1\uD569\uD558\uC9C0 \uC54A\uACE0 \uC0AC\uC6A9\uC790\uC5D0\uAC8C "\uAE30\uC874 \uD30C\uC77C\uC5D0 \uBCD1\uD569 / \uB36E\uC5B4\uC4F0\uAE30 \uD655\uC778"\uC744 \uC694\uCCAD\uD55C\uB2E4\n - **\uC790\uB3D9 \uBCD1\uD569 \uC2DC** \u2192 \uAE30\uC874 \uD30C\uC77C\uC5D0 \uBCD1\uD569\uD55C\uB2E4:\n - `frontmatter`: `date` \uC720\uC9C0, `updated`\uB97C \uC624\uB298 \uB0A0\uC9DC\uB85C \uCD94\uAC00/\uAC31\uC2E0, `tags`/`aliases`\uC5D0 \uC0C8 \uD56D\uBAA9 \uCD94\uAC00 (\uAE30\uC874 \uC720\uC9C0)\n - `> [!tldr]` \uC694\uC57D: \uC2EC\uD654 \uB0B4\uC6A9\uC744 \uBC18\uC601\uD558\uC5EC \uC7AC\uC791\uC131\n - `## \uD575\uC2EC \uB0B4\uC6A9`: \uAE30\uC874 \uB0B4\uC6A9 \uC720\uC9C0 + \uC0C8 \uC18C\uC81C\uBAA9/\uB0B4\uC6A9 \uCD94\uAC00\n - `## \uC608\uC2DC`: \uC0C8 \uC608\uC2DC\uAC00 \uC788\uC73C\uBA74 \uCD94\uAC00\n - `## \uCC38\uACE0 \uC790\uB8CC`: \uAE30\uC874 + \uC2E0\uADDC \uBCD1\uD569\n - `## \uAD00\uB828 \uB178\uD2B8`: \uAE30\uC874 + \uC2E0\uADDC \uBCD1\uD569\n - \uC6D0\uCE59: **\uAE30\uC874 \uB0B4\uC6A9\uC744 \uC0AD\uC81C\uD558\uC9C0 \uC54A\uACE0 \uCD94\uAC00/\uBCF4\uAC15\uB9CC \uD55C\uB2E4** (\uB2E8, tldr\uC740 \uC804\uCCB4 \uBC18\uC601\uC744 \uC704\uD574 \uC7AC\uC791\uC131)\n - **\uADF8 \uC678** (\uC0C8 \uD559\uC2B5\uC778\uB370 \uC2AC\uB7EC\uADF8\uAC00 \uACB9\uCE58\uB294 \uACBD\uC6B0) \u2192 \uC0AC\uC6A9\uC790\uC5D0\uAC8C \uB36E\uC5B4\uC4F8\uC9C0 \uD655\uC778\uD55C\uB2E4\n\n### Step 4: \uC5F0\uAD00 \uD30C\uC77C \uBCD1\uB82C \uC5C5\uB370\uC774\uD2B8 + \uC790\uAE30 \uAC80\uC99D\n\nStep 3\uC5D0\uC11C TIL \uD30C\uC77C\uC774 \uC800\uC7A5\uB418\uBA74, \uD30C\uC77C \uC815\uBCF4(\uACBD\uB85C, \uCE74\uD14C\uACE0\uB9AC, \uC81C\uBAA9, \uC2AC\uB7EC\uADF8, \uB0A0\uC9DC)\uB97C \uD655\uC815\uD55C \uB4A4 3\uAC1C \uC5C5\uB370\uC774\uD2B8\uB97C Task \uB3C4\uAD6C\uB85C **\uBCD1\uB82C spawn**\uD55C\uB2E4:\n\n```\n# \uD558\uB098\uC758 \uBA54\uC2DC\uC9C0\uC5D0\uC11C 3\uAC1C subagent\uB97C \uB3D9\uC2DC\uC5D0 \uD638\uCD9C\nTask(subagent_type="til-file-updater", prompt="...", description="Daily \uB178\uD2B8 \uC5C5\uB370\uC774\uD2B8")\nTask(subagent_type="til-file-updater", prompt="...", description="TIL MOC \uC5C5\uB370\uC774\uD2B8")\nTask(subagent_type="til-file-updater", prompt="...", description="\uBC31\uB85C\uADF8 \uCCB4\uD06C")\n```\n\n\uAC01 subagent\uC758 \uC5ED\uD560:\n\n1. **Daily \uB178\uD2B8 \uC5C5\uB370\uC774\uD2B8**: \uD574\uB2F9 \uB0A0\uC9DC\uC758 Daily \uB178\uD2B8(`./Daily/YYYY-MM-DD.md`)\uC5D0 \uCE74\uD14C\uACE0\uB9AC\uBCC4\uB85C \uADF8\uB8F9\uD551\uD558\uC5EC \uB9C1\uD06C\uB97C \uCD94\uAC00\uD55C\uB2E4. Daily \uB178\uD2B8\uAC00 \uC5C6\uC73C\uBA74 \uC0C8\uB85C \uC0DD\uC131\uD55C\uB2E4.\n2. **TIL MOC \uC5C5\uB370\uC774\uD2B8**: `./til/TIL MOC.md`\uC758 \uD574\uB2F9 \uCE74\uD14C\uACE0\uB9AC\uC5D0 \uD56D\uBAA9\uC744 \uCD94\uAC00\uD55C\uB2E4.\n3. **\uBC31\uB85C\uADF8 \uCCB4\uD06C**: \uD574\uB2F9 \uCE74\uD14C\uACE0\uB9AC \uBC31\uB85C\uADF8(`./til/{\uCE74\uD14C\uACE0\uB9AC}/backlog.md`)\uC5D0 \uD56D\uBAA9\uC774 \uC788\uC73C\uBA74 `[x]`\uB85C \uCCB4\uD06C\uD558\uACE0, \uB9C1\uD06C\uAC00 \uD45C\uC900 \uB9C8\uD06C\uB2E4\uC6B4 \uD615\uC2DD(`[\uD45C\uC2DC\uBA85](til/{\uCE74\uD14C\uACE0\uB9AC}/{slug}.md)`)\uC774 \uC544\uB2C8\uBA74 \uC5C5\uB370\uC774\uD2B8\uD55C\uB2E4.\n\n\uAC01 subagent\uB294 \uC5C5\uB370\uC774\uD2B8 \uC644\uB8CC \uD6C4 **\uC790\uAE30 \uAC80\uC99D**\uC744 \uC218\uD589\uD55C\uB2E4: \uB2F4\uB2F9 \uD30C\uC77C\uC744 \uB2E4\uC2DC \uC77D\uC5B4\uC11C TIL \uB9C1\uD06C\uAC00 \uC2E4\uC81C\uB85C \uC874\uC7AC\uD558\uB294\uC9C0 \uD655\uC778\uD558\uACE0, \uAC80\uC99D \uACB0\uACFC\uB97C \uD568\uAED8 \uBC18\uD658\uD55C\uB2E4.\n\n3\uAC1C subagent \uBAA8\uB450 \uC644\uB8CC\uB41C \uD6C4 Step 5\uB85C \uC9C4\uD589\uD55C\uB2E4.\n\n> **\uCC38\uACE0**: \uAC01 subagent\uC5D0\uAC8C TIL \uD30C\uC77C \uACBD\uB85C, \uCE74\uD14C\uACE0\uB9AC, \uC81C\uBAA9, \uC2AC\uB7EC\uADF8, \uB0A0\uC9DC \uC815\uBCF4\uB97C \uBAA8\uB450 \uC804\uB2EC\uD558\uC5EC \uB3C5\uB9BD\uC801\uC73C\uB85C \uC791\uC5C5\uD560 \uC218 \uC788\uAC8C \uD55C\uB2E4. \uAC01 subagent\uB294 \uC11C\uB85C \uB2E4\uB978 \uD30C\uC77C\uC744 \uC218\uC815\uD558\uBBC0\uB85C \uCDA9\uB3CC \uC5C6\uC774 \uBCD1\uB82C \uC2E4\uD589 \uAC00\uB2A5\uD558\uB2E4.\n\n### Step 5: \uC790\uB3D9 \uD488\uC9C8 \uAC80\uC99D + \uB9C1\uD06C \uC720\uD6A8\uC131\n\n\uC800\uC7A5\uB41C \uD30C\uC77C \uACBD\uB85C\uB97C \uC0AC\uC6A9\uC790\uC5D0\uAC8C \uC548\uB0B4\uD55C \uB4A4, Task \uB3C4\uAD6C\uB85C \uD488\uC9C8 \uAC80\uC99D subagent\uB97C spawn\uD558\uC5EC \uC790\uB3D9 \uAC80\uC99D\uD55C\uB2E4:\n\n```\nTask(subagent_type="til-quality-checker", prompt="...", description="\uD488\uC9C8 \uAC80\uC99D: {slug}")\n```\n\nsubagent\uC5D0\uAC8C \uC800\uC7A5\uB41C TIL \uD30C\uC77C \uACBD\uB85C\uB97C \uC804\uB2EC\uD558\uACE0, \uB2E4\uC74C \uD56D\uBAA9\uC744 \uAC80\uC99D\uD558\uB3C4\uB85D \uC9C0\uC2DC\uD55C\uB2E4:\n\n1. **frontmatter \uD544\uC218 \uD544\uB4DC**: `date`, `category`, `tags`\uC5D0 `"til"` \uD3EC\uD568, `aliases` \uC874\uC7AC\n2. **\uC704\uD0A4\uB9C1\uD06C \uC794\uC874**: `[[...]]` \uD328\uD134\uC774 \uBCF8\uBB38\uC5D0 \uB0A8\uC544\uC788\uC9C0 \uC54A\uC740\uC9C0\n3. **\uB9C1\uD06C \uD615\uC2DD \uC900\uC218**: \uBAA8\uB4E0 \uB0B4\uBD80 \uB9C1\uD06C\uAC00 `[text](til/{\uCE74\uD14C\uACE0\uB9AC}/{slug}.md)` \uD615\uC2DD\uC778\uC9C0\n4. **\uC139\uC158 \uAD6C\uC870**: \uD575\uC2EC \uB0B4\uC6A9, \uC608\uC2DC, \uCC38\uACE0 \uC790\uB8CC, \uAD00\uB828 \uB178\uD2B8 \uC139\uC158\uC774 \uC874\uC7AC\uD558\uB294\uC9C0\n5. **\uBBFC\uAC10 \uC815\uBCF4 \uD328\uD134**: API \uD0A4 \uD615\uD0DC(`sk-`, `AKIA`, `ghp_` \uB4F1), \uB0B4\uBD80 URL \uD328\uD134(`192.168.`, `10.0.`, \uC0AC\uB0B4 \uB3C4\uBA54\uC778)\uC774 \uC5C6\uB294\uC9C0\n6. **\uB9C1\uD06C \uC720\uD6A8\uC131**: TIL \uBCF8\uBB38\uC758 \uB0B4\uBD80 \uB9C1\uD06C(`til/{\uCE74\uD14C\uACE0\uB9AC}/{slug}.md`)\uAC00 \uC2E4\uC81C \uD30C\uC77C\uC744 \uAC00\uB9AC\uD0A4\uB294\uC9C0\n\n\uAC80\uC99D \uACB0\uACFC \uCC98\uB9AC:\n- **\uBB38\uC81C \uBC1C\uACAC \uC2DC**: \uC790\uB3D9 \uC218\uC815\uC744 \uC801\uC6A9\uD558\uACE0, \uC218\uC815 \uB0B4\uC5ED\uC744 \uC0AC\uC6A9\uC790\uC5D0\uAC8C \uC694\uC57D\uD558\uC5EC \uBCF4\uC5EC\uC900 \uB4A4 Step 6\uC73C\uB85C \uC9C4\uD589\n- **\uBB38\uC81C \uC5C6\uC74C**: \uBC14\uB85C Step 6\uC73C\uB85C \uC9C4\uD589\n\n### Step 6: \uD06C\uB85C\uC2A4 \uB9C1\uD06C\n\n\uAD00\uB828 \uAE30\uC874 TIL\uC5D0 \uC591\uBC29\uD5A5 \uD06C\uB85C\uC2A4 \uB9C1\uD06C\uB97C \uCD94\uAC00\uD55C\uB2E4:\n\n```\nTask(subagent_type="til-cross-linker", prompt="\uC0C8 TIL \uD30C\uC77C: ./til/{\uCE74\uD14C\uACE0\uB9AC}/{slug}.md\\n\uC81C\uBAA9: {\uC81C\uBAA9}\\n\uCE74\uD14C\uACE0\uB9AC: {\uCE74\uD14C\uACE0\uB9AC}\\n\uD0DC\uADF8: {\uD0DC\uADF8 \uBAA9\uB85D}\\n\\n\uAD00\uB828 \uAE30\uC874 TIL\uC744 \uD0D0\uC0C9\uD558\uC5EC \uC591\uBC29\uD5A5 \uD06C\uB85C\uC2A4 \uB9C1\uD06C\uB97C \uCD94\uAC00\uD574\uC8FC\uC138\uC694.", description="\uD06C\uB85C\uC2A4 \uB9C1\uD06C: {slug}")\n```\n\n\uACB0\uACFC \uCC98\uB9AC:\n1. subagent\uAC00 \uBC18\uD658\uD55C \uC218\uC815 \uB0B4\uC6A9\uC744 \uC0AC\uC6A9\uC790\uC5D0\uAC8C \uBCF4\uC5EC\uC900\uB2E4\n2. \uC218\uC815\uB41C \uD30C\uC77C\uC774 \uC5C6\uC73C\uBA74 \uC774 \uB2E8\uACC4\uB97C \uC2A4\uD0B5\uD558\uACE0 Step 7\uB85C \uC9C4\uD589\uD55C\uB2E4\n3. \uD06C\uB85C\uC2A4 \uB9C1\uD06C \uBCC0\uACBD\uC740 Step 8\uC758 \uB2E8\uC77C \uCEE4\uBC0B\uC5D0 \uD568\uAED8 \uD3EC\uD568\uB41C\uB2E4\n\n### Step 7: \uBB38\uC11C \uB9AC\uBDF0\n\n\uCEE4\uBC0B \uC804\uC5D0 \uC0AC\uC6A9\uC790\uAC00 \uC800\uC7A5\uB41C \uBB38\uC11C\uB97C \uAC80\uD1A0\uD560 \uC218 \uC788\uB3C4\uB85D \uD55C\uB2E4.\n\n1. \uC800\uC7A5\uB41C TIL \uD30C\uC77C\uC758 \uC804\uCCB4 \uB0B4\uC6A9\uC744 \uBCF4\uC5EC\uC900\uB2E4 (\uD06C\uB85C\uC2A4 \uB9C1\uD06C \uBCC0\uACBD\uC774 \uC788\uC73C\uBA74 \uD568\uAED8 \uD45C\uC2DC)\n2. `AskUserQuestion` \uB3C4\uAD6C\uB85C \uD655\uC778\uC744 \uC694\uCCAD\uD55C\uB2E4 ("\uD655\uC778 \uC644\uB8CC" / "\uC218\uC815 \uD544\uC694")\n3. "\uC218\uC815 \uD544\uC694" \uC120\uD0DD \uC2DC \uC218\uC815 \uC0AC\uD56D\uC744 \uBC18\uC601\uD55C \uD6C4 \uB2E4\uC2DC \uB9AC\uBDF0\uD55C\uB2E4\n4. "\uD655\uC778 \uC644\uB8CC" \uC120\uD0DD \uC2DC \uB2E4\uC74C \uB2E8\uACC4\uB85C \uC9C4\uD589\uD55C\uB2E4\n\n### Step 8: git commit\n\n\uBCC0\uACBD\uB41C \uD30C\uC77C(TIL, Daily \uB178\uD2B8, MOC, \uBC31\uB85C\uADF8, \uD06C\uB85C\uC2A4 \uB9C1\uD06C \uBCC0\uACBD)\uC744 \uD558\uB098\uC758 atomic commit\uC73C\uB85C \uCEE4\uBC0B\uD55C\uB2E4.\n\n- \uCEE4\uBC0B \uBA54\uC2DC\uC9C0 \uD615\uC2DD: `\u{1F4DD} til: {\uD55C\uAE00 \uC81C\uBAA9}({\uC601\uBB38 \uC81C\uBAA9}) - {\uCE74\uD14C\uACE0\uB9AC}`\n - \uC608: `\u{1F4DD} til: \uD074\uB85C\uC800(Closure) - javascript`\n- push\uB294 \uD558\uC9C0 \uC54A\uB294\uB2E4 (\uB85C\uCEEC \uCEE4\uBC0B\uB9CC)\n- Step 1~7\uC774 \uBAA8\uB450 \uC644\uB8CC\uB41C \uD6C4\uC5D0\uB9CC \uCEE4\uBC0B\uD55C\uB2E4\n\n## \uC800\uC7A5 \uACBD\uB85C \uADDC\uCE59\n\n```\n./til/\n\u251C\u2500\u2500 TIL MOC.md \u2190 Obsidian MOC (Map of Content)\n\u251C\u2500\u2500 javascript/\n\u2502 \u251C\u2500\u2500 closure.md\n\u2502 \u2514\u2500\u2500 event-loop.md\n\u251C\u2500\u2500 rust/\n\u2502 \u2514\u2500\u2500 ownership.md\n\u2514\u2500\u2500 devops/\n \u2514\u2500\u2500 docker-network.md\n```\n\n- \uAE30\uBCF8 \uACBD\uB85C: `./til/{\uCE74\uD14C\uACE0\uB9AC}/{\uC8FC\uC81C\uC2AC\uB7EC\uADF8}.md`\n- \uCE74\uD14C\uACE0\uB9AC \uD3F4\uB354\uAC00 \uC5C6\uC73C\uBA74 \uC790\uB3D9 \uC0DD\uC131\n- \uC8FC\uC81C \uC2AC\uB7EC\uADF8: \uC601\uBB38 \uC18C\uBB38\uC790, \uD558\uC774\uD508 \uAD6C\uBD84 (\uC608: `event-loop`, `docker-network`)\n- \uB0A0\uC9DC\uB294 \uD30C\uC77C\uBA85\uC774 \uC544\uB2CC frontmatter `date` \uD544\uB4DC\uC5D0 \uAE30\uB85D\uD55C\uB2E4\n\n## TIL \uB9C8\uD06C\uB2E4\uC6B4 \uD15C\uD50C\uB9BF\n\n```markdown\n---\ndate: YYYY-MM-DDTHH:mm:ss\ncategory: \uCE74\uD14C\uACE0\uB9AC\ntags:\n - til\n - \uD0DC\uADF81\n - \uD0DC\uADF82\naliases:\n - "\uD55C\uAE00 \uC81C\uBAA9"\n - "\uC601\uBB38 \uC81C\uBAA9"\n---\n\n# \uC81C\uBAA9\n\n> [!tldr] \uD55C\uC904 \uC694\uC57D\n> \uD575\uC2EC\uC744 \uD55C \uBB38\uC7A5\uC73C\uB85C \uC694\uC57D\n\n## \uD575\uC2EC \uB0B4\uC6A9\n\n\uD559\uC2B5\uD55C \uD575\uC2EC \uAC1C\uB150\uC744 \uC124\uBA85\uD55C\uB2E4. \uD544\uC694\uD558\uBA74 \uC18C\uC81C\uBAA9\uC73C\uB85C \uB098\uB208\uB2E4.\n\n\uAD00\uB828 \uAC1C\uB150\uC774 vault\uC5D0 \uC788\uAC70\uB098 \uC55E\uC73C\uB85C \uC791\uC131\uB420 \uC218 \uC788\uC73C\uBA74 \uD45C\uC900 \uB9C8\uD06C\uB2E4\uC6B4 \uB9C1\uD06C\uB85C \uC5F0\uACB0\uD55C\uB2E4.\n\n### \uC18C\uC81C\uBAA9 (\uD544\uC694\uC2DC)\n\n\uC0C1\uC138 \uC124\uBA85...\n\n## \uC608\uC2DC\n\n```\uC5B8\uC5B4\n// \uCF54\uB4DC \uC608\uC2DC \uB610\uB294 \uC2E4\uC81C \uC0AC\uB840\n```\n\n> [!example] \uC2E4\uD589 \uACB0\uACFC\n> \uCF54\uB4DC \uC2E4\uD589 \uACB0\uACFC\uB098 \uB3D9\uC791 \uC124\uBA85\n\n## \uCC38\uACE0 \uC790\uB8CC\n\n- [\uC790\uB8CC \uC81C\uBAA9](URL)\n- [\uC790\uB8CC \uC81C\uBAA9](URL)\n\n## \uAD00\uB828 \uB178\uD2B8\n\n- [\uAD00\uB828 TIL \uC81C\uBAA9](til/{\uCE74\uD14C\uACE0\uB9AC}/{slug}.md)\n```\n\n### \uD15C\uD50C\uB9BF \uC791\uC131 \uADDC\uCE59\n\n1. **Properties (frontmatter)**\n - `tags`\uC5D0 \uD56D\uC0C1 `til`\uC744 \uD3EC\uD568\uD55C\uB2E4\n - `aliases`\uC5D0 \uD55C\uAE00/\uC601\uBB38 \uC81C\uBAA9\uC744 \uB123\uC5B4 \uAC80\uC0C9\uC774 \uC27D\uAC8C \uD55C\uB2E4\n - `date`\uB294 ISO \uD615\uC2DD (YYYY-MM-DDTHH:mm:ss, \uB85C\uCEEC \uC2DC\uAC04 \uAE30\uC900). \uBC18\uB4DC\uC2DC `date` \uBA85\uB839\uC5B4(`date +%Y-%m-%dT%H:%M:%S`)\uB85C \uC2E4\uC81C \uD604\uC7AC \uB85C\uCEEC \uC2DC\uAC01\uC744 \uC870\uD68C\uD558\uC5EC \uC0AC\uC6A9\uD55C\uB2E4\n\n2. **\uB9C1\uD06C** \u2014 \uD56D\uC0C1 \uD45C\uC900 \uB9C8\uD06C\uB2E4\uC6B4 \uB9C1\uD06C \uD615\uC2DD \uC0AC\uC6A9\n - **\uD615\uC2DD**: `[\uD45C\uC2DC\uBA85](til/{\uCE74\uD14C\uACE0\uB9AC}/{slug}.md)` (\uC608: `[\uD074\uB85C\uC800(Closure)](til/javascript/closure.md)`)\n - \uBCF8\uBB38, Daily \uB178\uD2B8, MOC, \uBC31\uB85C\uADF8 \uB4F1 **\uBAA8\uB4E0 \uC704\uCE58**\uC5D0\uC11C \uB3D9\uC77C\uD55C \uD615\uC2DD\uC744 \uC0AC\uC6A9\uD55C\uB2E4\n - **\uAE30\uC874 TIL**: \uBCF8\uBB38\uC5D0\uC11C \uBC14\uB85C \uB9C8\uD06C\uB2E4\uC6B4 \uB9C1\uD06C \uC0AC\uC6A9\n - **\uBC31\uB85C\uADF8 \uD56D\uBAA9**: \uBCF8\uBB38\uC5D0\uC11C \uBC14\uB85C \uB9C8\uD06C\uB2E4\uC6B4 \uB9C1\uD06C \uC0AC\uC6A9 (\uC774\uBBF8 \uD559\uC2B5 \uACC4\uD68D\uC5D0 \uC788\uC73C\uBBC0\uB85C)\n - **\uC874\uC7AC\uD558\uC9C0 \uC54A\uB294 \uAC1C\uB150**: \uBCF8\uBB38\uC5D0\uC11C\uB294 \uC77C\uBC18 \uD14D\uC2A4\uD2B8\uB85C \uC791\uC131\uD558\uACE0, Step 2\uC5D0\uC11C \uC0AC\uC6A9\uC790 \uD655\uC778 \uD6C4 `## \uAD00\uB828 \uB178\uD2B8` \uC139\uC158\uC5D0\uB9CC \uCD94\uAC00\n - **\uAE08\uC9C0**: `[[\uC704\uD0A4\uB9C1\uD06C]]` \uD615\uC2DD \uC0AC\uC6A9 \uAE08\uC9C0. \uD45C\uC900 \uB9C8\uD06C\uB2E4\uC6B4 \uB9C1\uD06C\uB9CC \uC0AC\uC6A9\uD55C\uB2E4\n - \uC608: "JavaScript\uC758 [\uD074\uB85C\uC800(Closure)](til/javascript/closure.md)\uB294 \uB809\uC2DC\uCEEC \uC2A4\uCF54\uD504\uB97C \uAE30\uC5B5\uD55C\uB2E4"\n\n3. **Callouts**\n - \uD55C\uC904 \uC694\uC57D: `> [!tldr]`, \uC2E4\uD589 \uACB0\uACFC: `> [!example]`, \uC8FC\uC758: `> [!warning]`, \uD301: `> [!tip]`\n\n4. **Mermaid \uB2E4\uC774\uC5B4\uADF8\uB7A8**\n - \uD14D\uC2A4\uD2B8\uB85C \uC124\uBA85 \uC5B4\uB824\uC6B4 \uAD6C\uC870/\uD750\uB984\uC5D0\uB9CC \uC0AC\uC6A9, TIL\uB2F9 \uCD5C\uB300 1\uAC1C\n\n5. **\uD0DC\uADF8**: frontmatter `tags`\uB85C \uAD00\uB9AC, \uCE74\uD14C\uACE0\uB9AC\uBA85\uB3C4 \uD0DC\uADF8\uC5D0 \uD3EC\uD568\n\n## Daily \uB178\uD2B8 \uC5F0\uB3D9\n\nTIL \uC800\uC7A5 \uC2DC `./Daily/YYYY-MM-DD.md`\uC5D0 \uCE74\uD14C\uACE0\uB9AC\uBCC4 \uB9C1\uD06C \uCD94\uAC00:\n\n```markdown\n## TIL\n\n### javascript\n- [\uD074\uB85C\uC800(Closure)](til/javascript/closure.md)\n\n### devops\n- [Docker \uB124\uD2B8\uC6CC\uD06C](til/devops/docker-network.md)\n```\n\n- `### \uCE74\uD14C\uACE0\uB9AC` \uC18C\uC81C\uBAA9\uC73C\uB85C \uADF8\uB8F9\uD551\n- \uAE30\uC874 Daily \uB178\uD2B8: `## TIL` \uC139\uC158 \uCC3E\uC544\uC11C \uCE74\uD14C\uACE0\uB9AC\uBCC4 \uD56D\uBAA9 \uCD94\uAC00 (\uC5C6\uC73C\uBA74 \uD30C\uC77C \uB05D\uC5D0 \uCD94\uAC00)\n- Daily \uB178\uD2B8 \uC5C6\uC73C\uBA74 \uC0C8\uB85C \uC0DD\uC131\n- \uCE74\uD14C\uACE0\uB9AC \uC18C\uC81C\uBAA9 \uC21C\uC11C: \uAE30\uC874 \uC720\uC9C0, \uC0C8 \uCE74\uD14C\uACE0\uB9AC\uB294 \uB9C8\uC9C0\uB9C9\n\n## TIL MOC (Map of Content)\n\n`./til/TIL MOC.md`\uC5D0 \uCE74\uD14C\uACE0\uB9AC\uBCC4 \uD56D\uBAA9 \uCD94\uAC00. MOC\uAC00 \uC5C6\uC73C\uBA74 \uC0C8\uB85C \uC0DD\uC131:\n\n```markdown\n---\ntags:\n - moc\n - til\n---\n\n# TIL (Today I Learned)\n\n## \uCE74\uD14C\uACE0\uB9AC\n\n### javascript\n- [\uD074\uB85C\uC800(Closure)](til/javascript/closure.md)\n```\n\n## \uBC31\uB85C\uADF8 \uC5F0\uB3D9\n\n`./til/{\uCE74\uD14C\uACE0\uB9AC}/backlog.md`\uC5D0 \uD559\uC2B5\uD55C \uC8FC\uC81C\uAC00 \uC788\uC73C\uBA74:\n\n1. `- [ ]`\uB97C `- [x]`\uB85C \uBCC0\uACBD\n2. \uB9C1\uD06C\uAC00 \uD45C\uC900 \uB9C8\uD06C\uB2E4\uC6B4 \uD615\uC2DD(`[\uD45C\uC2DC\uBA85](til/{\uCE74\uD14C\uACE0\uB9AC}/{slug}.md)`)\uC774 \uC544\uB2C8\uBA74 \uC5C5\uB370\uC774\uD2B8\n\n## \uD53C\uD574\uC57C \uD560 \uC2E4\uD328 \uBAA8\uB4DC\n\n- **Daily/MOC/\uBC31\uB85C\uADF8 \uB204\uB77D**: \uAC00\uC7A5 \uD754\uD55C \uC2E4\uC218. \uCCB4\uD06C\uB9AC\uC2A4\uD2B8 \uBC18\uB4DC\uC2DC \uD655\uC778\n- **\uC758\uB3C4\uD558\uC9C0 \uC54A\uC740 \uC2AC\uB7EC\uADF8 \uCDA9\uB3CC**: \uC0C8 \uD559\uC2B5\uC778\uB370 \uAC19\uC740 \uC2AC\uB7EC\uADF8 \uD30C\uC77C\uC774 \uC788\uB294\uC9C0 \uD655\uC778 (\uC2EC\uD654 \uD559\uC2B5 \uBAA8\uB4DC\uC5D0\uC11C\uB294 \uCDA9\uB3CC\uC774 \uC815\uC0C1)\n- **\uBBFC\uAC10 \uC815\uBCF4 \uB178\uCD9C**: `example.com`, `your-api-key` \uB4F1 \uB300\uCCB4\uAC12 \uC0AC\uC6A9\n\n## \uC644\uB8CC \uCCB4\uD06C\uB9AC\uC2A4\uD2B8\n\n\uC800\uC7A5 \uC2DC \uC544\uB798 \uD56D\uBAA9\uC744 **\uBAA8\uB450** \uD655\uC778\uD55C\uB2E4. \uD558\uB098\uB77C\uB3C4 \uBE60\uC9C0\uBA74 \uC800\uC7A5 \uBBF8\uC644\uB8CC:\n\n- [ ] \uB9C1\uD06C \uD6C4\uBCF4 \uD30C\uC545 \uC644\uB8CC (\uAE30\uC874 TIL/\uBC31\uB85C\uADF8 \uD655\uC778, \uBBF8\uC874\uC7AC \uAC1C\uB150\uC740 \uC0AC\uC6A9\uC790 \uD655\uC778)\n- [ ] TIL \uD30C\uC77C\uC774 \uD15C\uD50C\uB9BF \uD615\uC2DD\uC5D0 \uB9DE\uAC8C \uC800\uC7A5\uB428\n- [ ] \uC5F0\uAD00 \uD30C\uC77C \uBCD1\uB82C \uC5C5\uB370\uC774\uD2B8 + \uC790\uAE30 \uAC80\uC99D \uC644\uB8CC (Daily \uB178\uD2B8 + TIL MOC + \uBC31\uB85C\uADF8)\n- [ ] \uC790\uB3D9 \uD488\uC9C8 \uAC80\uC99D + \uB9C1\uD06C \uC720\uD6A8\uC131 \uD1B5\uACFC (Step 5)\n- [ ] \uD06C\uB85C\uC2A4 \uB9C1\uD06C \uD655\uC778 \uC644\uB8CC (Step 6)\n- [ ] \uBB38\uC11C \uB9AC\uBDF0 \uC644\uB8CC (\uC0AC\uC6A9\uC790 \uD655\uC778)\n- [ ] git commit (\uD06C\uB85C\uC2A4 \uB9C1\uD06C \uD3EC\uD568, \uB2E8\uC77C atomic commit, push \uC81C\uC678)\n\n## \uC800\uC7A5 \uADDC\uCE59 \uC694\uC57D (Quick Reference)\n\n### \uD544\uC218 \uACBD\uB85C\n\n- TIL \uD30C\uC77C: `./til/{\uCE74\uD14C\uACE0\uB9AC}/{\uC8FC\uC81C\uC2AC\uB7EC\uADF8}.md` (\uC2AC\uB7EC\uADF8: \uC601\uBB38 \uC18C\uBB38\uC790, \uD558\uC774\uD508 \uAD6C\uBD84)\n- Daily \uB178\uD2B8: `./Daily/YYYY-MM-DD.md`\n- TIL MOC: `./til/TIL MOC.md`\n- \uBC31\uB85C\uADF8: `./til/{\uCE74\uD14C\uACE0\uB9AC}/backlog.md`\n\n### \uC800\uC7A5 \uC2DC \uD544\uC218 \uC5C5\uB370\uC774\uD2B8 \uD56D\uBAA9\n\n1. TIL \uD30C\uC77C \uC800\uC7A5 (frontmatter: date, category, tags[til], aliases)\n2. \uC5F0\uAD00 \uD30C\uC77C \uBCD1\uB82C \uC5C5\uB370\uC774\uD2B8 + \uC790\uAE30 \uAC80\uC99D (Daily \uB178\uD2B8 + TIL MOC + \uBC31\uB85C\uADF8) \u2014 Step 4\n3. \uC790\uB3D9 \uD488\uC9C8 \uAC80\uC99D + \uB9C1\uD06C \uC720\uD6A8\uC131 \u2014 Step 5\n4. \uD06C\uB85C\uC2A4 \uB9C1\uD06C \u2014 Step 6\n5. \uBB38\uC11C \uB9AC\uBDF0 (\uC0AC\uC6A9\uC790 \uD655\uC778) \u2014 Step 7\n6. git commit (`\u{1F4DD} til: {\uD55C\uAE00 \uC81C\uBAA9}({\uC601\uBB38 \uC81C\uBAA9}) - {\uCE74\uD14C\uACE0\uB9AC}`, \uD06C\uB85C\uC2A4 \uB9C1\uD06C \uD3EC\uD568, push \uC81C\uC678)\n\n### \uC8FC\uC758\uC0AC\uD56D\n\n- TIL \uD30C\uC77C\uB9CC \uC800\uC7A5\uD558\uACE0 Daily/MOC/\uBC31\uB85C\uADF8 \uC5C5\uB370\uC774\uD2B8\uB97C \uBE60\uB728\uB9AC\uC9C0 \uC54A\uB294\uB2E4\n- \uB3D9\uC77C \uC2AC\uB7EC\uADF8 \uD30C\uC77C\uC774 \uC788\uC73C\uBA74: \uC2EC\uD654 \uD559\uC2B5(`/til`\uC5D0\uC11C \uAE30\uC874 TIL \uAE30\uBC18 \uD559\uC2B5)\uC778 \uACBD\uC6B0 \uC790\uB3D9 \uBCD1\uD569(\uAE30\uC874 \uB0B4\uC6A9 \uC720\uC9C0 + \uBCF4\uAC15, `updated` \uB0A0\uC9DC \uCD94\uAC00), \uADF8 \uC678\uB294 \uC0AC\uC6A9\uC790\uC5D0\uAC8C \uD655\uC778\n- \uBBFC\uAC10 \uC815\uBCF4(API \uD0A4, \uB0B4\uBD80 URL \uB4F1)\uB294 \uB300\uCCB4\uAC12 \uC0AC\uC6A9\n';
|
|
39432
|
+
var SKILL_default4 = '---\nname: save\ndescription: "\uD559\uC2B5 \uB0B4\uC6A9\uC744 TIL \uD30C\uC77C\uB85C \uC800\uC7A5\uD558\uACE0 Daily \uB178\uD2B8, MOC, \uBC31\uB85C\uADF8\uB97C \uC77C\uAD04 \uC5C5\uB370\uC774\uD2B8"\nargument-hint: "[\uC8FC\uC81C] [\uCE74\uD14C\uACE0\uB9AC]"\nplugin-version: "__PLUGIN_VERSION__"\n---\n\n# Save Skill\n\n\uD559\uC2B5 \uB300\uD654 \u2192 TIL \uD30C\uC77C \uC800\uC7A5 \u2192 Daily/MOC/\uBC31\uB85C\uADF8 \uC5C5\uB370\uC774\uD2B8 \u2192 \uBB38\uC11C \uB9AC\uBDF0 \u2192 \uCEE4\uBC0B.\n\n## MCP \uB3C4\uAD6C\n\n- `til_get_context`: \uAD00\uB828 TIL\xB7\uBC31\uB85C\uADF8 \uD30C\uC545\n- `til_list`: \uAE30\uC874 TIL \uC911\uBCF5 \uD655\uC778\n- `vault_get_active_file`: \uC0AC\uC6A9\uC790 \uD30C\uC77C \uCEE8\uD14D\uC2A4\uD2B8\n\n## Step 1: \uCEE8\uD14D\uC2A4\uD2B8 \uD655\uC778\n\n\uC8FC\uC81C\xB7\uCE74\uD14C\uACE0\uB9AC \uD30C\uC545. \uBD88\uBA85\uD655\uD558\uBA74 \uC0AC\uC6A9\uC790\uC5D0\uAC8C \uC9C8\uBB38.\n\n## Step 2: \uB9C1\uD06C \uD6C4\uBCF4 \uD30C\uC545\n\n1. `til_get_context` \uB610\uB294 MOC/\uBC31\uB85C\uADF8\uB85C \uAE30\uC874 TIL\xB7\uBC31\uB85C\uADF8 \uD56D\uBAA9 \uD30C\uC545\n2. \uAE30\uC874 TIL/\uBC31\uB85C\uADF8 \uD56D\uBAA9 \u2192 \uBCF8\uBB38\uC5D0\uC11C \uB9C8\uD06C\uB2E4\uC6B4 \uB9C1\uD06C \uC0AC\uC6A9\n3. \uC874\uC7AC\uD558\uC9C0 \uC54A\uB294 \uAC1C\uB150 \u2192 \uC0AC\uC6A9\uC790\uC5D0\uAC8C \uD655\uC778 \uD6C4 \uAD00\uB828 \uB178\uD2B8\uC5D0\uB9CC \uCD94\uAC00\n\n## Step 3: TIL \uD30C\uC77C \uC800\uC7A5\n\n\uACBD\uB85C: `./til/{\uCE74\uD14C\uACE0\uB9AC}/{\uC8FC\uC81C\uC2AC\uB7EC\uADF8}.md` (\uC2AC\uB7EC\uADF8: \uC601\uBB38 \uC18C\uBB38\uC790, \uD558\uC774\uD508)\n\n\uB3D9\uC77C \uC2AC\uB7EC\uADF8 \uD30C\uC77C \uC788\uC744 \uB54C:\n- `/til` \uC2EC\uD654 \uD559\uC2B5\uC774 \uC5F0\uC18D\uB41C \uACBD\uC6B0\uB9CC \uC790\uB3D9 \uBCD1\uD569 (\uAE30\uC874 \uB0B4\uC6A9 \uC720\uC9C0 + \uBCF4\uAC15, `updated` \uCD94\uAC00)\n- \uADF8 \uC678: \uC0AC\uC6A9\uC790\uC5D0\uAC8C \uBCD1\uD569/\uB36E\uC5B4\uC4F0\uAE30 \uD655\uC778\n\n### TIL \uD15C\uD50C\uB9BF\n\n```markdown\n---\ndate: YYYY-MM-DDTHH:mm:ss\ncategory: \uCE74\uD14C\uACE0\uB9AC\ntags: [til, \uD0DC\uADF81]\naliases: ["\uD55C\uAE00 \uC81C\uBAA9", "\uC601\uBB38 \uC81C\uBAA9"]\n---\n\n# \uC81C\uBAA9\n\n> [!tldr] \uD55C\uC904 \uC694\uC57D\n\n## \uD575\uC2EC \uB0B4\uC6A9\n## \uC608\uC2DC\n## \uCC38\uACE0 \uC790\uB8CC\n- [\uC81C\uBAA9](URL)\n## \uAD00\uB828 \uB178\uD2B8\n- [TIL](til/{\uCE74\uD14C\uACE0\uB9AC}/{slug}.md)\n```\n\n- `date`: `date +%Y-%m-%dT%H:%M:%S` \uBA85\uB839\uC73C\uB85C \uB85C\uCEEC \uC2DC\uAC01 \uC870\uD68C\n- \uB9C1\uD06C: `[\uD45C\uC2DC\uBA85](til/{\uCE74\uD14C\uACE0\uB9AC}/{slug}.md)` \u2014 `[[\uC704\uD0A4\uB9C1\uD06C]]` \uAE08\uC9C0\n\n## Step 4: \uC5F0\uAD00 \uD30C\uC77C \uC5C5\uB370\uC774\uD2B8\n\n\uC544\uB798 3\uAC1C \uD30C\uC77C\uC744 **\uC9C1\uC811** \uC21C\uCC28 \uC5C5\uB370\uC774\uD2B8\uD55C\uB2E4 (subagent \uC0AC\uC6A9 \uAE08\uC9C0):\n\n1. Daily \uB178\uD2B8 (`./Daily/YYYY-MM-DD.md`): \uCE74\uD14C\uACE0\uB9AC\uBCC4 TIL \uB9C1\uD06C \uCD94\uAC00 (\uC5C6\uC73C\uBA74 \uC0DD\uC131)\n2. TIL MOC (`./til/TIL MOC.md`): \uCE74\uD14C\uACE0\uB9AC \uC139\uC158\uC5D0 \uD56D\uBAA9 \uCD94\uAC00 (\uC5C6\uC73C\uBA74 \uC0DD\uC131)\n3. \uBC31\uB85C\uADF8 (`./til/{\uCE74\uD14C\uACE0\uB9AC}/backlog.md`): \uD574\uB2F9 \uD56D\uBAA9 `[ ]` \u2192 `[x]`\n\n\uAC01 \uD30C\uC77C: Read \u2192 \uC704\uCE58 \uD655\uC778 \u2192 Edit. \uD30C\uC77C \uC5C6\uC73C\uBA74 \uC0DD\uC131.\n\n## Step 5: \uBB38\uC11C \uB9AC\uBDF0\n\n\uC800\uC7A5\uB41C TIL \uC804\uCCB4 \uB0B4\uC6A9 \uD45C\uC2DC \u2192 `AskUserQuestion`\uC73C\uB85C \uD655\uC778 ("\uD655\uC778 \uC644\uB8CC" / "\uC218\uC815 \uD544\uC694").\n\n## Step 6: git commit\n\n`\u{1F4DD} til: {\uD55C\uAE00 \uC81C\uBAA9}({\uC601\uBB38 \uC81C\uBAA9}) - {\uCE74\uD14C\uACE0\uB9AC}` (push \uC548 \uD568)\n\n## \uADDC\uCE59\n\n- frontmatter \uD544\uC218: date, category, tags, aliases (\uB204\uB77D \uC2DC \uC800\uC7A5 \uC804 \uBCF4\uC644)\n- tags\uC5D0 \uBC18\uB4DC\uC2DC "til" \uD3EC\uD568 (\uC815\uC801 \uC0AC\uC774\uD2B8 \uD544\uD130 \uAE30\uC900)\n- `[[\uC704\uD0A4\uB9C1\uD06C]]` \uAE08\uC9C0 \u2014 `[\uD45C\uC2DC\uBA85](\uACBD\uB85C)` \uD615\uC2DD\uB9CC \uC0AC\uC6A9\n- TIL\uB9CC \uC800\uC7A5\uD558\uACE0 Daily/MOC/\uBC31\uB85C\uADF8 \uB204\uB77D\uD558\uC9C0 \uC54A\uB294\uB2E4\n- Callout \uD65C\uC6A9: `> [!tldr]`, `> [!example]`, `> [!warning]`, `> [!tip]`\n- \uBCF5\uC7A1\uD55C \uAC1C\uB150\uC740 Mermaid \uB2E4\uC774\uC5B4\uADF8\uB7A8\uC73C\uB85C \uC2DC\uAC01\uD654 (TIL\uB2F9 \uCD5C\uB300 1\uAC1C)\n- \uBBFC\uAC10 \uC815\uBCF4 \uB300\uCCB4\uAC12 \uC0AC\uC6A9\n- \uD55C\uAD6D\uC5B4 \uC791\uC131, \uAE30\uC220 \uC6A9\uC5B4 \uC6D0\uC5B4 \uBCD1\uAE30\n';
|
|
39404
39433
|
|
|
39405
39434
|
// vault-assets/skills/migrate-links/SKILL.md
|
|
39406
|
-
var SKILL_default5 = '---\nname: migrate-links\ndescription: "vault\uC758 [[wikilink]]\uB97C \uD45C\uC900 \uB9C8\uD06C\uB2E4\uC6B4 \uB9C1\uD06C\uB85C \uC77C\uAD04 \uBCC0\uD658"\nargument-hint: ""\nplugin-version: "__PLUGIN_VERSION__"\n---\n\n# Migrate Links Skill\n\
|
|
39435
|
+
var SKILL_default5 = '---\nname: migrate-links\ndescription: "vault\uC758 [[wikilink]]\uB97C \uD45C\uC900 \uB9C8\uD06C\uB2E4\uC6B4 \uB9C1\uD06C\uB85C \uC77C\uAD04 \uBCC0\uD658"\nargument-hint: ""\nplugin-version: "__PLUGIN_VERSION__"\n---\n\n# Migrate Links Skill\n\n`[[wikilink]]` \u2192 `[text](path.md)` \uC77C\uAD04 \uBCC0\uD658.\n\n## CLI\n\n```bash\nnode .obsidian/plugins/oh-my-til/migrate-links.mjs . scan\nnode .obsidian/plugins/oh-my-til/migrate-links.mjs . migrate\nnode .obsidian/plugins/oh-my-til/migrate-links.mjs . verify\n```\n\n## \uC6CC\uD06C\uD50C\uB85C\uC6B0\n\n1. **\uC2A4\uCE94**: `scan` \uC2E4\uD589 \u2192 wikilink \uC5C6\uC73C\uBA74 \uC885\uB8CC, \uC788\uC73C\uBA74 `AskUserQuestion`\uC73C\uB85C \uD655\uC778\n2. **\uBCC0\uD658**: `migrate` \uC2E4\uD589\n3. **\uAC80\uC99D**: `verify` \uC2E4\uD589 \u2192 \uC794\uC5EC wikilink \uC548\uB0B4\n4. **\uCEE4\uBC0B**: `\u267B\uFE0F refactor: [[wikilink]] \u2192 \uD45C\uC900 \uB9C8\uD06C\uB2E4\uC6B4 \uB9C1\uD06C \uC77C\uAD04 \uBCC0\uD658` (push \uC548 \uD568)\n\n## \uBCC0\uD658 \uADDC\uCE59\n\n- `[[path|Display]]` \u2192 `[Display](path.md)`\n- `[[path]]` \u2192 `[path](path.md)`\n- \uCF54\uB4DC \uBE14\uB85D \uB0B4\uBD80 \uC81C\uC678, \uD14C\uC774\uBE14 `\\|` \uC774\uC2A4\uCF00\uC774\uD504 \uCC98\uB9AC\n';
|
|
39407
39436
|
|
|
39408
39437
|
// vault-assets/skills/dashboard/SKILL.md
|
|
39409
|
-
var SKILL_default6 = '---\nname: dashboard\ndescription: "\uD559\uC2B5 \uB300\uC2DC\uBCF4\uB4DC - \uD1B5\uACC4, \uD65C\uB3D9 \uD788\uD2B8\uB9F5, \uCE74\uD14C\uACE0\uB9AC, \uBC31\uB85C\uADF8 \uC9C4\uD589\uB960"\ndisable-model-invocation: true\nplugin-version: "__PLUGIN_VERSION__"\n---\n\n# Dashboard Skill\n\n
|
|
39438
|
+
var SKILL_default6 = '---\nname: dashboard\ndescription: "\uD559\uC2B5 \uB300\uC2DC\uBCF4\uB4DC - \uD1B5\uACC4, \uD65C\uB3D9 \uD788\uD2B8\uB9F5, \uCE74\uD14C\uACE0\uB9AC, \uBC31\uB85C\uADF8 \uC9C4\uD589\uB960"\ndisable-model-invocation: true\nplugin-version: "__PLUGIN_VERSION__"\n---\n\n# Dashboard Skill\n\n`til_dashboard` MCP \uB3C4\uAD6C\uB85C \uD559\uC2B5 \uD1B5\uACC4\uB97C \uC870\uD68C\uD558\uC5EC \uD130\uBBF8\uB110\uC5D0 \uD45C\uC2DC.\n\n## MCP \uB3C4\uAD6C\n\n- `til_dashboard`: \uC694\uC57D/\uD788\uD2B8\uB9F5/\uCE74\uD14C\uACE0\uB9AC/\uBC31\uB85C\uADF8/\uCD94\uC774 JSON \uBC18\uD658\n\n## \uCD9C\uB825 \uD615\uC2DD\n\n### 1. \uC694\uC57D \uCE74\uB4DC\n\uCD1D TIL, \uCE74\uD14C\uACE0\uB9AC, \uC774\uBC88 \uC8FC, \uC5F0\uC18D \uD559\uC2B5 \u2014 \uD14C\uC774\uBE14.\n\n### 2. \uD65C\uB3D9 \uCD94\uC774\nheatmap cells\uB97C \uC8FC \uB2E8\uC704 \uD569\uC0B0 \u2192 \uC2A4\uD30C\uD06C\uB77C\uC778(`\u2581\u2582\u2583\u2585\u2587`).\n\n### 3. \uCE74\uD14C\uACE0\uB9AC\uBCC4 \uD604\uD669\n\uCE74\uD14C\uACE0\uB9AC(\uB9C1\uD06C), \uC218, \uCD5C\uADFC \uC218\uC815\uC77C \u2014 \uD30C\uC77C \uC218 \uB0B4\uB9BC\uCC28\uC21C.\n\n### 4. \uBC31\uB85C\uADF8 \uC9C4\uD589\uB960\n\uC9C4\uD589\uB960 \uB0B4\uB9BC\uCC28\uC21C, 10\uCE78 \uC9C4\uD589\uBC14(`\u2588`/`\u2591`).\n\n## MCP \uD3F4\uBC31\n\n`til_dashboard` \uBD88\uAC00 \uC2DC `til_list` + `til_backlog_status` + `til_recent_context` \uC870\uD569.\n\n## \uADDC\uCE59\n\n- \uD55C\uAD6D\uC5B4, \uB9C8\uD06C\uB2E4\uC6B4 \uB9C1\uD06C\uB85C \uCD9C\uB825 (\uACBD\uB85C \uC9C1\uC811 \uB178\uCD9C \uAE08\uC9C0)\n- \uB370\uC774\uD130 \uC5C6\uC73C\uBA74 "/til\uB85C \uCCAB \uD559\uC2B5\uC744 \uC2DC\uC791\uD574\uBCF4\uC138\uC694" \uC548\uB0B4\n';
|
|
39410
39439
|
|
|
39411
39440
|
// vault-assets/skills/setup-pages/SKILL.md
|
|
39412
|
-
var SKILL_default7 = '---\nname: setup-pages\ndescription: "
|
|
39441
|
+
var SKILL_default7 = '---\nname: setup-pages\ndescription: "(deprecated) /omt-setup deploy\uB85C \uC774\uC804\uB428"\nplugin-version: "__PLUGIN_VERSION__"\n---\n\n# Setup Pages (Deprecated)\n\n\uC774 \uC2A4\uD0AC\uC740 `/omt-setup deploy`\uB85C \uD1B5\uD569\uB418\uC5C8\uC2B5\uB2C8\uB2E4.\n\n`/omt-setup deploy`\uB97C \uC2E4\uD589\uD574\uC8FC\uC138\uC694.\n';
|
|
39413
39442
|
|
|
39414
|
-
// vault-assets/
|
|
39415
|
-
var
|
|
39443
|
+
// vault-assets/skills/omt-setup/SKILL.md
|
|
39444
|
+
var SKILL_default8 = '---\nname: omt-setup\ndescription: "oh-my-til \uD1B5\uD569 \uC124\uC815 \u2014 \uBC30\uD3EC \uC124\uC815"\nplugin-version: "__PLUGIN_VERSION__"\n---\n\n# OMT Setup Skill\n\noh-my-til \uC124\uC815\uC744 \uD55C \uACF3\uC5D0\uC11C \uAD00\uB9AC. \uC11C\uBE0C\uCEE4\uB9E8\uB4DC\uB85C \uB3D9\uC791.\n\n## \uC11C\uBE0C\uCEE4\uB9E8\uB4DC\n\n### `/omt-setup` (\uC778\uC218 \uC5C6\uC74C)\n\n`oh-my-til.json` \uC77D\uC5B4\uC11C \uD604\uC7AC \uC124\uC815 \uD45C\uC2DC + \uC11C\uBE0C\uCEE4\uB9E8\uB4DC \uC548\uB0B4:\n- `deploy` \u2014 GitHub Pages \uBC30\uD3EC \uC124\uC815\n\n### `/omt-setup deploy`\n\nGitHub Pages \uBC30\uD3EC \uC124\uC815:\n1. `.git/` \uD655\uC778 (\uC5C6\uC73C\uBA74 \uC548\uB0B4 \uD6C4 \uC885\uB8CC)\n2. `.github/workflows/deploy-til.yml` \uD655\uC778 (\uC788\uC73C\uBA74 \uC218\uC815 \uD544\uC694 \uC5EC\uBD80 \uC9C8\uBB38)\n3. `oh-my-til.json` deploy \uC139\uC158 \uC124\uC815 (\uC81C\uBAA9, \uBD80\uC81C\uBAA9, GitHub URL)\n4. \uC6CC\uD06C\uD50C\uB85C\uC6B0 YAML \uC0DD\uC131\n5. \uC644\uB8CC \uC548\uB0B4 (Settings \u2192 Pages \u2192 GitHub Actions \uC120\uD0DD, \uCEE4\uBC0B\xB7push \uBA85\uB839\uC5B4)\n\n## \uADDC\uCE59\n\n- \uD55C\uAD6D\uC5B4 \uCD9C\uB825\n- `oh-my-til.json`\uC758 \uAE30\uC874 \uC124\uC815 \uBCF4\uC874, \uD574\uB2F9 \uC139\uC158\uB9CC \uCD94\uAC00/\uC218\uC815\n- \uCEE4\uBC0B\uC740 \uD558\uC9C0 \uC54A\uC74C (\uC0AC\uC6A9\uC790\uC5D0\uAC8C \uBA85\uB839\uC5B4 \uC548\uB0B4\uB9CC)\n';
|
|
39416
39445
|
|
|
39417
|
-
// vault-assets/
|
|
39418
|
-
var
|
|
39446
|
+
// vault-assets/claude-md-section.md
|
|
39447
|
+
var claude_md_section_default = "## \uD559\uC2B5 \uC6CC\uD06C\uD50C\uB85C\uC6B0\n\n1. `/research <\uC8FC\uC81C>` \u2014 \uB9AC\uC11C\uCE58 \u2192 \uBC31\uB85C\uADF8 \uC0DD\uC131\n2. `/backlog [\uCE74\uD14C\uACE0\uB9AC]` \u2014 \uBC31\uB85C\uADF8 \uC9C4\uD589 \uD655\uC778\n3. `/til <\uC8FC\uC81C>` \u2014 \uB9AC\uC11C\uCE58 \u2192 \uB300\uD654\uD615 \uD559\uC2B5 \u2192 \uC800\uC7A5\n4. `/save` \u2014 TIL \uC800\uC7A5 (Daily/MOC/\uBC31\uB85C\uADF8 \uC790\uB3D9 \uC5C5\uB370\uC774\uD2B8)\n\n## MCP \uB3C4\uAD6C\n\n- `vault_read_note` \u2014 \uB178\uD2B8 \uC77D\uAE30\n- `vault_list_files` \u2014 \uD30C\uC77C \uBAA9\uB85D\n- `vault_search` \u2014 \uD14D\uC2A4\uD2B8 \uAC80\uC0C9\n- `vault_get_active_file` \u2014 \uD604\uC7AC \uD30C\uC77C\n- `til_list` \u2014 TIL \uBAA9\uB85D + \uCE74\uD14C\uACE0\uB9AC \uBD84\uB958\n- `til_get_context` \u2014 \uC8FC\uC81C \uAD00\uB828 \uCEE8\uD14D\uC2A4\uD2B8\n- `til_recent_context` \u2014 \uCD5C\uADFC \uD559\uC2B5 \uD750\uB984\n- `til_backlog_status` \u2014 \uBC31\uB85C\uADF8 \uC9C4\uD589\uB960\n- `til_dashboard` \u2014 \uD559\uC2B5 \uD1B5\uACC4\n\n### \uC5F0\uACB0\n\n```bash\nclaude mcp add --transport http oh-my-til http://localhost:22360/mcp\n```\n";
|
|
39419
39448
|
|
|
39420
39449
|
// vault-assets/agents/til-fetcher.md
|
|
39421
|
-
var til_fetcher_default = '---\nname: til-fetcher\ndescription: \uC18C\uC2A4 URL \uCF58\uD150\uCE20\uB97C \uD328\uCE58\uD558\uC5EC \uD559\uC2B5 \uC790\uB8CC\uB85C \uC694\uC57D\uD558\uB294 \uC804\uC6A9 \uC5D0\uC774\uC804\uD2B8\ntools: Read, WebFetch\nmodel: haiku\nplugin-version: "__PLUGIN_VERSION__"\n---\n\n# til-fetcher\n\n\uC18C\uC2A4 URL\uC758 \uCF58\uD150\uCE20\uB97C \uD328\uCE58\uD558\uACE0 \uD559\uC2B5\uC5D0 \uD544\uC694\uD55C \uD575\uC2EC \uB0B4\uC6A9\uC744 \uC694\uC57D\uD558\uB294 \uC804\uC6A9 \uC5D0\uC774\uC804\uD2B8.\n\n## \uC5ED\uD560\n\n- `/til` \uC2A4\uD0AC\uC758 Phase 1\uC5D0\uC11C sourceUrls \
|
|
39422
|
-
|
|
39423
|
-
// vault-assets/agents/til-quality-checker.md
|
|
39424
|
-
var til_quality_checker_default = '---\nname: til-quality-checker\ndescription: \uC800\uC7A5\uB41C TIL \uD30C\uC77C\uC758 \uD488\uC9C8\uC744 \uC790\uB3D9 \uAC80\uC99D\uD558\uB294 \uC804\uC6A9 \uC5D0\uC774\uC804\uD2B8\ntools: Read, Grep, Glob\nmodel: haiku\nplugin-version: "__PLUGIN_VERSION__"\n---\n\n# til-quality-checker\n\n\uC800\uC7A5\uB41C TIL \uD30C\uC77C\uC758 \uD488\uC9C8\uC744 \uC790\uB3D9 \uAC80\uC99D\uD558\uB294 \uC804\uC6A9 \uC5D0\uC774\uC804\uD2B8.\n\n## \uC5ED\uD560\n\n- `/save` \uC2A4\uD0AC\uC758 Step 7.5\uC5D0\uC11C \uD488\uC9C8 \uAC80\uC99D subagent\uB85C \uC0AC\uC6A9\uB41C\uB2E4\n- \uC800\uC7A5\uB41C TIL \uD30C\uC77C\uC744 \uC77D\uACE0 \uD488\uC9C8 \uAE30\uC900\uC744 \uAC80\uC99D\uD55C\uB2E4\n\n## \uAC80\uC99D \uD56D\uBAA9\n\n1. **frontmatter \uD544\uC218 \uD544\uB4DC**: `date`, `category`, `tags`\uC5D0 `"til"` \uD3EC\uD568, `aliases` \uC874\uC7AC\n2. **\uC704\uD0A4\uB9C1\uD06C \uC794\uC874**: `[[...]]` \uD328\uD134\uC774 \uBCF8\uBB38\uC5D0 \uB0A8\uC544\uC788\uC9C0 \uC54A\uC740\uC9C0\n3. **\uB9C1\uD06C \uD615\uC2DD \uC900\uC218**: \uBAA8\uB4E0 \uB0B4\uBD80 \uB9C1\uD06C\uAC00 `[text](til/{\uCE74\uD14C\uACE0\uB9AC}/{slug}.md)` \uD615\uC2DD\uC778\uC9C0\n4. **\uC139\uC158 \uAD6C\uC870**: \uD575\uC2EC \uB0B4\uC6A9, \uC608\uC2DC, \uCC38\uACE0 \uC790\uB8CC, \uAD00\uB828 \uB178\uD2B8 \uC139\uC158\uC774 \uC874\uC7AC\uD558\uB294\uC9C0\n5. **\uBBFC\uAC10 \uC815\uBCF4 \uD328\uD134**: API \uD0A4 \uD615\uD0DC(`sk-`, `AKIA`, `ghp_` \uB4F1), \uB0B4\uBD80 URL \uD328\uD134\uC774 \uC5C6\uB294\uC9C0\n6. **\uB9C1\uD06C \uC720\uD6A8\uC131**: TIL \uBCF8\uBB38\uC758 \uB0B4\uBD80 \uB9C1\uD06C(`til/{\uCE74\uD14C\uACE0\uB9AC}/{slug}.md`)\uAC00 \uC2E4\uC81C \uD30C\uC77C\uC744 \uAC00\uB9AC\uD0A4\uB294\uC9C0\n\n## \uCD9C\uB825 \uD615\uC2DD\n\n- \uBB38\uC81C \uBC1C\uACAC \uC2DC: \uD56D\uBAA9\uBCC4 \uBB38\uC81C \uB0B4\uC6A9\uACFC \uC218\uC815 \uC81C\uC548\n- \uBB38\uC81C \uC5C6\uC74C: "\uD488\uC9C8 \uAC80\uC99D \uD1B5\uACFC" \uBA54\uC2DC\uC9C0\n';
|
|
39425
|
-
|
|
39426
|
-
// vault-assets/agents/til-file-updater.md
|
|
39427
|
-
var til_file_updater_default = '---\nname: til-file-updater\ndescription: TIL \uC800\uC7A5 \uC2DC \uC5F0\uAD00 \uD30C\uC77C(Daily \uB178\uD2B8, MOC, \uBC31\uB85C\uADF8)\uC744 \uC5C5\uB370\uC774\uD2B8\uD558\uACE0 \uC790\uAE30 \uAC80\uC99D\uD558\uB294 \uC804\uC6A9 \uC5D0\uC774\uC804\uD2B8\ntools: Read, Write, Edit, Grep, Glob\nmodel: haiku\nplugin-version: "__PLUGIN_VERSION__"\n---\n\n# til-file-updater\n\nTIL \uC800\uC7A5 \uC2DC \uC5F0\uAD00 \uD30C\uC77C\uC744 \uC5C5\uB370\uC774\uD2B8\uD558\uACE0, \uC5C5\uB370\uC774\uD2B8 \uD6C4 \uC790\uAE30 \uAC80\uC99D\uAE4C\uC9C0 \uC218\uD589\uD558\uB294 \uC804\uC6A9 \uC5D0\uC774\uC804\uD2B8.\n\n## \uC5ED\uD560\n\n- `/save` \uC2A4\uD0AC\uC758 Step 4\uC5D0\uC11C \uBCD1\uB82C \uD30C\uC77C \uC5C5\uB370\uC774\uD2B8 subagent\uB85C \uC0AC\uC6A9\uB41C\uB2E4\n- \uAC01 subagent \uC778\uC2A4\uD134\uC2A4\uAC00 \uD558\uB098\uC758 \uD30C\uC77C\uC744 \uB2F4\uB2F9\uD558\uC5EC \uBCD1\uB82C \uC2E4\uD589\uB41C\uB2E4\n- \uC5C5\uB370\uC774\uD2B8 \uC644\uB8CC \uD6C4 \uD574\uB2F9 \uD30C\uC77C\uC5D0 TIL \uB9C1\uD06C\uAC00 \uC2E4\uC81C\uB85C \uC874\uC7AC\uD558\uB294\uC9C0 \uC790\uAE30 \uAC80\uC99D\uD55C\uB2E4\n\n## \uB2F4\uB2F9 \uD30C\uC77C (\uC778\uC2A4\uD134\uC2A4\uBCC4 1\uAC1C)\n\n1. **Daily \uB178\uD2B8** (`./Daily/YYYY-MM-DD.md`): \uCE74\uD14C\uACE0\uB9AC\uBCC4 \uADF8\uB8F9\uD551\uD558\uC5EC TIL \uB9C1\uD06C \uCD94\uAC00\n2. **TIL MOC** (`./til/TIL MOC.md`): \uD574\uB2F9 \uCE74\uD14C\uACE0\uB9AC\uC5D0 \uD56D\uBAA9 \uCD94\uAC00\n3. **\uBC31\uB85C\uADF8** (`./til/{\uCE74\uD14C\uACE0\uB9AC}/backlog.md`): \uD559\uC2B5 \uC644\uB8CC \uD56D\uBAA9 `[x]` \uCCB4\uD06C + \uB9C1\uD06C \uC5C5\uB370\uC774\uD2B8\n\n## \uC790\uAE30 \uAC80\uC99D\n\n\uC5C5\uB370\uC774\uD2B8 \uC644\uB8CC \uD6C4, \uB2F4\uB2F9 \uD30C\uC77C\uC744 \uB2E4\uC2DC \uC77D\uC5B4\uC11C \uB2E4\uC74C\uC744 \uD655\uC778\uD55C\uB2E4:\n\n- **Daily \uB178\uD2B8**: \uD574\uB2F9 TIL \uB9C1\uD06C\uAC00 \uC2E4\uC81C\uB85C \uC874\uC7AC\uD558\uB294\uC9C0\n- **TIL MOC**: \uD574\uB2F9 \uD56D\uBAA9\uC774 \uC2E4\uC81C\uB85C \uC874\uC7AC\uD558\uB294\uC9C0\n- **\uBC31\uB85C\uADF8**: \uD56D\uBAA9\uC774 \uC788\uC5C8\uB2E4\uBA74 `[x]`\uB85C \uCCB4\uD06C\uB418\uC5C8\uB294\uC9C0\n\n## \uCD9C\uB825\n\n- \uC5C5\uB370\uC774\uD2B8 \uACB0\uACFC + \uAC80\uC99D \uACB0\uACFC\uB97C \uD568\uAED8 \uBC18\uD658\uD55C\uB2E4\n- \uAC80\uC99D \uC2E4\uD328 \uC2DC \uC5B4\uB5A4 \uD56D\uBAA9\uC774 \uB204\uB77D\uB418\uC5C8\uB294\uC9C0 \uBA85\uC2DC\uD55C\uB2E4\n\n## \uD544\uC694 \uC785\uB825\n\n- TIL \uD30C\uC77C \uACBD\uB85C, \uCE74\uD14C\uACE0\uB9AC, \uC81C\uBAA9, \uC2AC\uB7EC\uADF8, \uB0A0\uC9DC\n- \uB2F4\uB2F9\uD560 \uD30C\uC77C \uC885\uB958 (daily / moc / backlog)\n';
|
|
39428
|
-
|
|
39429
|
-
// vault-assets/agents/til-research-reviewer.md
|
|
39430
|
-
var til_research_reviewer_default = '---\nname: til-research-reviewer\ndescription: \uB9AC\uC11C\uCE58 \uACB0\uACFC\uB97C 3\uAC00\uC9C0 \uD398\uB974\uC18C\uB098(\uCD08\uBCF4\uC790/\uC2E4\uBB34\uC790/\uBE44\uD310\uC790)\uB85C \uC140\uD504 \uB9AC\uBDF0\uD558\uB294 \uC5D0\uC774\uC804\uD2B8\ntools: Read, WebSearch, WebFetch\nmodel: sonnet\nplugin-version: "__PLUGIN_VERSION__"\n---\n\n# til-research-reviewer\n\n\uB9AC\uC11C\uCE58 \uACB0\uACFC\uB97C Phase 2(\uD559\uC2B5/\uC815\uB9AC)\uB85C \uB118\uAE30\uAE30 \uC804\uC5D0, 3\uAC00\uC9C0 \uD398\uB974\uC18C\uB098 \uAD00\uC810\uC5D0\uC11C \uD488\uC9C8\uC744 \uAC80\uC99D\uD558\uB294 \uC140\uD504 \uB9AC\uBDF0 \uC5D0\uC774\uC804\uD2B8.\n\n## \uC5ED\uD560\n\n- `/research` Phase 1\u21922 \uC0AC\uC774, `/til` Phase 1\u21922 \uC0AC\uC774\uC5D0\uC11C \uB9AC\uC11C\uCE58 \uACB0\uACFC \uB9AC\uBDF0\uB85C \uC0AC\uC6A9\uB41C\uB2E4\n- \uB2E8\uC77C \uD328\uC2A4\uC5D0\uC11C 3\uAC00\uC9C0 \uD398\uB974\uC18C\uB098\uB97C \uC21C\uCC28 \uC801\uC6A9\uD558\uC5EC \uBE60\uC9D0\uC5C6\uC774 \uAC80\uC99D\uD55C\uB2E4\n\n## \uAC80\uC99D \uD504\uB85C\uC138\uC2A4\n\n\uC804\uB2EC\uBC1B\uC740 \uB9AC\uC11C\uCE58 \uACB0\uACFC\uC5D0 \uB300\uD574 \uC544\uB798 3\uAC00\uC9C0 \uD398\uB974\uC18C\uB098\uB97C **\uC21C\uC11C\uB300\uB85C** \uC801\uC6A9\uD55C\uB2E4.\n\n### 1. \uCD08\uBCF4\uC790 \uAD00\uC810 (Beginner)\n\n- \uC124\uBA85\uB9CC\uC73C\uB85C \uAC1C\uB150\uC744 \uC774\uD574\uD560 \uC218 \uC788\uB294\uAC00?\n- \uC120\uD589 \uC9C0\uC2DD\uC774 \uC554\uBB35\uC801\uC73C\uB85C \uC804\uC81C\uB418\uC5B4 \uC788\uC9C0 \uC54A\uC740\uAC00?\n- \uC804\uBB38 \uC6A9\uC5B4\uC5D0 \uCDA9\uBD84\uD55C \uC124\uBA85\uC774 \uBD99\uC5B4 \uC788\uB294\uAC00?\n- \uD559\uC2B5 \uC21C\uC11C\uAC00 \uC758\uC874 \uAD00\uACC4\uC5D0 \uB9DE\uB294\uAC00? (A\uB97C \uC54C\uC544\uC57C B\uB97C \uC774\uD574\uD560 \uC218 \uC788\uB294\uB370 B\uAC00 \uBA3C\uC800 \uB098\uC624\uC9C0 \uC54A\uB294\uAC00?)\n\n### 2. \uC2E4\uBB34\uC790 \uAD00\uC810 (Practitioner)\n\n- \uC2E4\uBB34\uC5D0\uC11C \uC911\uC694\uD55C \uAC1C\uB150\uC774 \uB204\uB77D\uB418\uC9C0 \uC54A\uC558\uB294\uAC00?\n- \uC608\uC2DC\uB098 \uC0AC\uC6A9 \uC0AC\uB840\uAC00 \uC2E4\uC6A9\uC801\uC778\uAC00?\n- \uCD5C\uC2E0 \uAD00\uD589(best practice)\uC744 \uBC18\uC601\uD558\uACE0 \uC788\uB294\uAC00?\n- \uD559\uC2B5 \uD6C4 \uC2E4\uC81C \uC801\uC6A9\uD560 \uC218 \uC788\uC744 \uC815\uB3C4\uB85C \uAD6C\uCCB4\uC801\uC778\uAC00?\n\n### 3. \uBE44\uD310\uC790 \uAD00\uC810 (Critic)\n\n- \uBD80\uC815\uD655\uD558\uAC70\uB098 \uC624\uB798\uB41C \uC815\uBCF4\uAC00 \uD3EC\uD568\uB418\uC5B4 \uC788\uC9C0 \uC54A\uC740\uAC00?\n- \uCD9C\uCC98\uAC00 \uC2E0\uB8B0\uD560 \uB9CC\uD55C\uAC00? (\uACF5\uC2DD \uBB38\uC11C, \uC720\uBA85 \uAE30\uC220 \uBE14\uB85C\uADF8 \uB4F1)\n- \uC758\uC2EC\uC2A4\uB7EC\uC6B4 \uB0B4\uC6A9\uC740 WebSearch\uB85C \uAD50\uCC28 \uAC80\uC99D\uD55C\uB2E4\n- \uC8FC\uAD00\uC801 \uC758\uACAC\uC774 \uC0AC\uC2E4\uCC98\uB7FC \uC11C\uC220\uB418\uC5B4 \uC788\uC9C0 \uC54A\uC740\uAC00?\n\n## \uCD9C\uB825 \uD615\uC2DD\n\n```markdown\n## \uB9AC\uC11C\uCE58 \uB9AC\uBDF0 \uACB0\uACFC\n\n### \uCD08\uBCF4\uC790 \uAD00\uC810\n- **\uC591\uD638**: (\uC798 \uB41C \uC810)\n- **\uBCF4\uC644 \uD544\uC694**: (\uAC1C\uC120\uC774 \uD544\uC694\uD55C \uC810 \uBAA9\uB85D)\n\n### \uC2E4\uBB34\uC790 \uAD00\uC810\n- **\uC591\uD638**: (\uC798 \uB41C \uC810)\n- **\uBCF4\uC644 \uD544\uC694**: (\uAC1C\uC120\uC774 \uD544\uC694\uD55C \uC810 \uBAA9\uB85D)\n\n### \uBE44\uD310\uC790 \uAD00\uC810\n- **\uC591\uD638**: (\uC798 \uB41C \uC810)\n- **\uBCF4\uC644 \uD544\uC694**: (\uAC1C\uC120\uC774 \uD544\uC694\uD55C \uC810 \uBAA9\uB85D)\n\n### \uBCF4\uC644 \uC81C\uC548\n1. (\uAD6C\uCCB4\uC801\uC778 \uBCF4\uC644 \uC561\uC158 \u2014 \uC6B0\uC120\uC21C\uC704\uC21C)\n2. ...\n\n### \uC885\uD569 \uD310\uC815\n- **\uD1B5\uACFC** / **\uBCF4\uC644 \uD6C4 \uC9C4\uD589**\n```\n\n## \uD310\uC815 \uAE30\uC900\n\n- **\uD1B5\uACFC**: 3\uAC1C \uD398\uB974\uC18C\uB098 \uBAA8\uB450\uC5D0\uC11C "\uBCF4\uC644 \uD544\uC694" \uD56D\uBAA9\uC774 \uC5C6\uAC70\uB098 \uC0AC\uC18C\uD55C \uC218\uC900\n- **\uBCF4\uC644 \uD6C4 \uC9C4\uD589**: \uD558\uB098\uB77C\uB3C4 "\uBCF4\uC644 \uD544\uC694"\uC5D0 \uC911\uC694 \uD56D\uBAA9\uC774 \uC788\uC73C\uBA74, \uBCF4\uC644 \uC81C\uC548\uC744 \uBC18\uD658\n\n\uD55C\uAD6D\uC5B4\uB85C \uC791\uC131\uD558\uB418 \uAE30\uC220 \uC6A9\uC5B4\uB294 \uC6D0\uC5B4 \uBCD1\uAE30.\n';
|
|
39431
|
-
|
|
39432
|
-
// vault-assets/agents/til-cross-linker.md
|
|
39433
|
-
var til_cross_linker_default = '---\nname: til-cross-linker\ndescription: \uC0C8 TIL \uC800\uC7A5 \uD6C4 \uAD00\uB828 \uAE30\uC874 TIL\uC5D0 \uC591\uBC29\uD5A5 \uD06C\uB85C\uC2A4 \uB9C1\uD06C\uB97C \uCD94\uAC00\uD558\uB294 \uC5D0\uC774\uC804\uD2B8\ntools: Read, Glob, Grep, Edit\nmodel: sonnet\nplugin-version: "__PLUGIN_VERSION__"\n---\n\n# til-cross-linker\n\n\uC0C8 TIL \uC800\uC7A5 \uD6C4, \uAD00\uB828 \uAE30\uC874 TIL\uC758 `## \uAD00\uB828 \uB178\uD2B8` \uC139\uC158\uC5D0 \uC0C8 TIL \uB9C1\uD06C\uB97C \uC790\uB3D9 \uCD94\uAC00\uD558\uACE0, \uC0C8 TIL\uC5D0\uB3C4 \uC5ED\uBC29\uD5A5 \uB9C1\uD06C\uB97C \uCD94\uAC00\uD558\uB294 \uC5D0\uC774\uC804\uD2B8.\n\n## \uC5ED\uD560\n\n- `/save` \uC2A4\uD0AC\uC758 Step 6\uC5D0\uC11C \uD06C\uB85C\uC2A4 \uB9C1\uD06C subagent\uB85C \uC0AC\uC6A9\uB41C\uB2E4\n- \uCEE4\uBC0B \uC804\uC5D0 foreground spawn\uB418\uC5B4, \uD06C\uB85C\uC2A4 \uB9C1\uD06C \uBCC0\uACBD\uC774 \uB2E8\uC77C \uCEE4\uBC0B\uC5D0 \uD3EC\uD568\uB41C\uB2E4\n- \uC218\uC815 diff\uB97C \uBC18\uD658\uD558\uC5EC \uC0AC\uC6A9\uC790\uAC00 \uBB38\uC11C \uB9AC\uBDF0\uC5D0\uC11C \uD568\uAED8 \uD655\uC778\uD55C\uB2E4\n\n## \uB3D9\uC791 \uD750\uB984\n\n### 1. \uC0C8 TIL \uBD84\uC11D\n\n\uC0C8 TIL \uD30C\uC77C\uC744 \uC77D\uC5B4 \uB2E4\uC74C \uC815\uBCF4\uB97C \uCD94\uCD9C\uD55C\uB2E4:\n\n- **\uCE74\uD14C\uACE0\uB9AC**: frontmatter `category`\n- **\uD0DC\uADF8**: frontmatter `tags`\n- **\uC81C\uBAA9/\uC2AC\uB7EC\uADF8**: \uD30C\uC77C\uBA85\uACFC frontmatter `aliases`\n- **\uBCF8\uBB38 \uD0A4\uC6CC\uB4DC**: \uD575\uC2EC \uB0B4\uC6A9\uC5D0\uC11C \uC8FC\uC694 \uAC1C\uB150 \uCD94\uCD9C\n\n### 2. \uAD00\uB828 TIL \uD0D0\uC0C9\n\n`./til/` \uB514\uB809\uD1A0\uB9AC\uC5D0\uC11C \uAD00\uB828 TIL\uC744 \uC2DD\uBCC4\uD55C\uB2E4. \uC6B0\uC120\uC21C\uC704:\n\n1. **\uAC19\uC740 \uCE74\uD14C\uACE0\uB9AC\uC758 TIL** (\uB192\uC740 \uAD00\uB828\uB3C4): `./til/{\uCE74\uD14C\uACE0\uB9AC}/*.md` (backlog.md \uC81C\uC678)\n2. **\uB3D9\uC77C \uD0DC\uADF8\uB97C \uACF5\uC720\uD558\uB294 TIL** (\uC911\uAC04 \uAD00\uB828\uB3C4): \uB2E4\uB978 \uCE74\uD14C\uACE0\uB9AC\uB77C\uB3C4 \uD0DC\uADF8\uAC00 \uACB9\uCE58\uBA74 \uAD00\uB828\n3. **\uBCF8\uBB38\uC5D0\uC11C \uC0C8 TIL \uC8FC\uC81C\uB97C \uC5B8\uAE09\uD558\uB294 TIL** (\uD0A4\uC6CC\uB4DC \uB9E4\uCE6D): Grep\uC73C\uB85C \uC8FC\uC81C\uBA85/\uC2AC\uB7EC\uADF8 \uAC80\uC0C9\n\n### 3. \uAE30\uC874 TIL\uC5D0 \uB9C1\uD06C \uCD94\uAC00\n\n\uAD00\uB828 TIL\uC758 `## \uAD00\uB828 \uB178\uD2B8` \uC139\uC158\uC5D0 \uC0C8 TIL \uB9C1\uD06C\uB97C \uCD94\uAC00\uD55C\uB2E4:\n\n- **\uC774\uBBF8 \uB9C1\uD06C\uAC00 \uC788\uC73C\uBA74 \uC2A4\uD0B5**: \uC911\uBCF5 \uB9C1\uD06C \uBC29\uC9C0\n- **`## \uAD00\uB828 \uB178\uD2B8` \uC139\uC158\uC774 \uC5C6\uC73C\uBA74**: \uD30C\uC77C \uB05D\uC5D0 \uC139\uC158\uC744 \uC0C8\uB85C \uCD94\uAC00\n- **\uB9C1\uD06C \uD615\uC2DD**: `- [\uC81C\uBAA9](til/{\uCE74\uD14C\uACE0\uB9AC}/{slug}.md)`\n\n### 4. \uC0C8 TIL\uC5D0 \uC5ED\uBC29\uD5A5 \uB9C1\uD06C \uCD94\uAC00\n\n\uC0C8 TIL\uC758 `## \uAD00\uB828 \uB178\uD2B8` \uC139\uC158\uC5D0\uB3C4 \uAD00\uB828 TIL \uB9C1\uD06C\uB97C \uCD94\uAC00\uD55C\uB2E4:\n\n- \uC774\uBBF8 \uC788\uB294 \uB9C1\uD06C\uB294 \uC2A4\uD0B5\n- Step 2~3\uC5D0\uC11C \uB9C1\uD06C\uB97C \uCD94\uAC00\uD55C TIL\uB9CC \uB300\uC0C1\n\n### 5. \uACB0\uACFC \uBCF4\uACE0\n\n\uC218\uC815\uB41C \uD30C\uC77C \uBAA9\uB85D\uACFC \uAC01 \uD30C\uC77C\uC5D0 \uCD94\uAC00\uB41C \uB9C1\uD06C\uB97C \uBCF4\uACE0\uD55C\uB2E4.\n\n## \uD310\uB2E8 \uAE30\uC900\n\n- \uAC19\uC740 \uCE74\uD14C\uACE0\uB9AC TIL\uC740 \uCD5C\uB300 5\uAC1C\uAE4C\uC9C0\uB9CC \uB9C1\uD06C (\uB108\uBB34 \uB9CE\uC73C\uBA74 \uC758\uBBF8 \uC5C6\uC74C)\n- \uD0DC\uADF8 \uB9E4\uCE6D\uC740 `til` \uD0DC\uADF8\uC640 \uCE74\uD14C\uACE0\uB9AC\uBA85 \uD0DC\uADF8\uB294 \uC81C\uC678 (\uBC94\uC6A9\uC801\uC774\uB77C \uAD00\uB828\uB3C4 \uB0AE\uC74C)\n- \uD0A4\uC6CC\uB4DC \uB9E4\uCE6D\uC740 \uC81C\uBAA9/aliases\uC5D0 \uD3EC\uD568\uB41C \uACBD\uC6B0\uB9CC (\uBCF8\uBB38 \uC804\uCCB4 \uAC80\uC0C9\uC740 \uB178\uC774\uC988 \uB9CE\uC74C)\n- backlog.md \uD30C\uC77C\uC740 \uD0D0\uC0C9 \uB300\uC0C1\uC5D0\uC11C \uC81C\uC678\n\n## \uCD9C\uB825 \uD615\uC2DD\n\n```\n## \uD06C\uB85C\uC2A4 \uB9C1\uD06C \uACB0\uACFC\n\n### \uC218\uC815\uB41C \uD30C\uC77C (N\uAC1C)\n- `til/{\uCE74\uD14C\uACE0\uB9AC}/{slug}.md`: [\uC0C8 TIL \uC81C\uBAA9] \uB9C1\uD06C \uCD94\uAC00\n- ...\n\n### \uC0C8 TIL\uC5D0 \uCD94\uAC00\uB41C \uC5ED\uBC29\uD5A5 \uB9C1\uD06C\n- [\uAE30\uC874 TIL \uC81C\uBAA9](til/{\uCE74\uD14C\uACE0\uB9AC}/{slug}.md)\n- ...\n\n### \uC2A4\uD0B5\uB41C \uD30C\uC77C\n- `til/{\uCE74\uD14C\uACE0\uB9AC}/{slug}.md`: \uC774\uBBF8 \uB9C1\uD06C \uC874\uC7AC\n```\n';
|
|
39450
|
+
var til_fetcher_default = '---\nname: til-fetcher\ndescription: \uC18C\uC2A4 URL \uCF58\uD150\uCE20\uB97C \uD328\uCE58\uD558\uC5EC \uD559\uC2B5 \uC790\uB8CC\uB85C \uC694\uC57D\uD558\uB294 \uC804\uC6A9 \uC5D0\uC774\uC804\uD2B8\ntools: Read, WebFetch\nmodel: haiku\nplugin-version: "__PLUGIN_VERSION__"\n---\n\n# til-fetcher\n\n\uC18C\uC2A4 URL\uC758 \uCF58\uD150\uCE20\uB97C \uD328\uCE58\uD558\uACE0 \uD559\uC2B5\uC5D0 \uD544\uC694\uD55C \uD575\uC2EC \uB0B4\uC6A9\uC744 \uC694\uC57D\uD558\uB294 \uC804\uC6A9 \uC5D0\uC774\uC804\uD2B8.\n\n## \uC5ED\uD560\n\n- `/til` \uC2A4\uD0AC\uC758 Phase 1\uC5D0\uC11C sourceUrls \uD328\uCE58 subagent\uB85C \uC0AC\uC6A9\uB41C\uB2E4\n- \uC8FC\uC5B4\uC9C4 URL(1\uAC1C \uB610\uB294 \uC5EC\uB7EC \uAC1C)\uC744 WebFetch\uB85C \uC21C\uCC28 \uC77D\uACE0 \uD559\uC2B5\uC5D0 \uD544\uC694\uD55C \uD575\uC2EC \uB0B4\uC6A9\uC744 \uC694\uC57D\uD55C\uB2E4\n- \uC5EC\uB7EC URL\uC774 \uC804\uB2EC\uB418\uBA74 \uAC01\uAC01 \uD328\uCE58 \uD6C4 \uD1B5\uD569 \uC694\uC57D\uC744 \uBC18\uD658\uD55C\uB2E4\n\n## \uCD9C\uB825 \uD615\uC2DD\n\n- \uD575\uC2EC \uB0B4\uC6A9 \uC694\uC57D (\uD55C\uAD6D\uC5B4, \uAE30\uC220 \uC6A9\uC5B4 \uC6D0\uC5B4 \uBCD1\uAE30)\n- \uCF54\uB4DC \uC608\uC2DC\uAC00 \uC788\uC73C\uBA74 \uD3EC\uD568\n';
|
|
39434
39451
|
|
|
39435
39452
|
// vault-assets/hooks/notify-complete.sh
|
|
39436
39453
|
var notify_complete_default = '#!/bin/bash\n# Oh My TIL \u2014 Task completion notification hook\n\nTITLE="Oh My TIL"\nMESSAGE="\uC791\uC5C5\uC774 \uC644\uB8CC\uB418\uC5C8\uC2B5\uB2C8\uB2E4"\n\nif [[ "$OSTYPE" == "darwin"* ]]; then\n if command -v terminal-notifier &>/dev/null; then\n terminal-notifier -title "$TITLE" -message "$MESSAGE" -sound default 2>/dev/null\n else\n osascript -e "display notification \\"$MESSAGE\\" with title \\"$TITLE\\" sound name \\"default\\"" 2>/dev/null\n fi\nelif command -v notify-send &>/dev/null; then\n notify-send "$TITLE" "$MESSAGE" 2>/dev/null\nfi\n';
|
|
@@ -39477,16 +39494,12 @@ var SKILLS = {
|
|
|
39477
39494
|
"save/SKILL.md": SKILL_default4,
|
|
39478
39495
|
"migrate-links/SKILL.md": SKILL_default5,
|
|
39479
39496
|
"dashboard/SKILL.md": SKILL_default6,
|
|
39480
|
-
"setup-pages/SKILL.md": SKILL_default7
|
|
39497
|
+
"setup-pages/SKILL.md": SKILL_default7,
|
|
39498
|
+
"omt-setup/SKILL.md": SKILL_default8
|
|
39481
39499
|
};
|
|
39482
39500
|
var RULES = {};
|
|
39483
39501
|
var AGENTS = {
|
|
39484
|
-
"til-
|
|
39485
|
-
"til-fetcher.md": til_fetcher_default,
|
|
39486
|
-
"til-quality-checker.md": til_quality_checker_default,
|
|
39487
|
-
"til-file-updater.md": til_file_updater_default,
|
|
39488
|
-
"til-research-reviewer.md": til_research_reviewer_default,
|
|
39489
|
-
"til-cross-linker.md": til_cross_linker_default
|
|
39502
|
+
"til-fetcher.md": til_fetcher_default
|
|
39490
39503
|
};
|
|
39491
39504
|
var HOOKS = {
|
|
39492
39505
|
"notify-complete.sh": notify_complete_default
|
|
@@ -39751,7 +39764,7 @@ function installObsidianPlugin(vaultPath, packageRoot, options) {
|
|
|
39751
39764
|
// src/core/cli.ts
|
|
39752
39765
|
var path3 = __toESM(require("path"));
|
|
39753
39766
|
var os = __toESM(require("os"));
|
|
39754
|
-
var VALUE_OPTIONS = /* @__PURE__ */ new Set(["port", "til-path", "out", "title", "subtitle", "github"]);
|
|
39767
|
+
var VALUE_OPTIONS = /* @__PURE__ */ new Set(["port", "til-path", "out", "title", "subtitle", "github", "mode"]);
|
|
39755
39768
|
var BOOLEAN_OPTIONS = /* @__PURE__ */ new Set(["no-obsidian"]);
|
|
39756
39769
|
function parseArgs(args) {
|
|
39757
39770
|
const positional = [];
|
|
@@ -39975,10 +39988,17 @@ function renderMarkdown(md) {
|
|
|
39975
39988
|
const tokens = tokenize(body);
|
|
39976
39989
|
return renderTokens(tokens);
|
|
39977
39990
|
}
|
|
39978
|
-
function rewriteTilLinks(html) {
|
|
39991
|
+
function rewriteTilLinks(html, existingFiles) {
|
|
39979
39992
|
return html.replace(
|
|
39980
|
-
|
|
39981
|
-
(_match,
|
|
39993
|
+
/<a href="til\/([^"]+\.md)">([\s\S]*?)<\/a>/g,
|
|
39994
|
+
(_match, tilPath, text) => {
|
|
39995
|
+
const fullPath = `til/${tilPath}`;
|
|
39996
|
+
if (existingFiles && !existingFiles.has(fullPath)) {
|
|
39997
|
+
return `<a class="missing-link" title="\uC544\uC9C1 \uC791\uC131\uB418\uC9C0 \uC54A\uC740 \uBB38\uC11C">${text}</a>`;
|
|
39998
|
+
}
|
|
39999
|
+
const pathWithoutExt = tilPath.replace(/\.md$/, "");
|
|
40000
|
+
return `<a href="../${pathWithoutExt}.html">${text}</a>`;
|
|
40001
|
+
}
|
|
39982
40002
|
);
|
|
39983
40003
|
}
|
|
39984
40004
|
|
|
@@ -40111,6 +40131,7 @@ h1, h2, h3, h4, h5, h6 { font-weight: 700; line-height: 1.3; letter-spacing: -0.
|
|
|
40111
40131
|
}
|
|
40112
40132
|
.til-content li { margin-bottom: 4px; }
|
|
40113
40133
|
.til-content a { color: var(--accent-light); }
|
|
40134
|
+
.til-content a.missing-link { color: var(--text-secondary); text-decoration: underline dotted; cursor: default; }
|
|
40114
40135
|
.til-content hr {
|
|
40115
40136
|
border: none;
|
|
40116
40137
|
border-top: 1px solid var(--border);
|
|
@@ -40761,23 +40782,7 @@ function generateProfileHtml(config2, summaryCardsHtml, heatmapHtml, recentTilsH
|
|
|
40761
40782
|
// src/cli/index.ts
|
|
40762
40783
|
var path5 = __toESM(require("path"));
|
|
40763
40784
|
var fs4 = __toESM(require("fs"));
|
|
40764
|
-
|
|
40765
|
-
// src/core/config.ts
|
|
40766
|
-
var path4 = __toESM(require("path"));
|
|
40767
|
-
var fs3 = __toESM(require("fs"));
|
|
40768
|
-
function loadSiteConfig(basePath) {
|
|
40769
|
-
const configPath = path4.join(basePath, "oh-my-til.json");
|
|
40770
|
-
try {
|
|
40771
|
-
const raw = fs3.readFileSync(configPath, "utf-8");
|
|
40772
|
-
const parsed = JSON.parse(raw);
|
|
40773
|
-
return typeof parsed === "object" && parsed !== null && !Array.isArray(parsed) ? parsed : {};
|
|
40774
|
-
} catch {
|
|
40775
|
-
return {};
|
|
40776
|
-
}
|
|
40777
|
-
}
|
|
40778
|
-
|
|
40779
|
-
// src/cli/index.ts
|
|
40780
|
-
var VERSION = true ? "0.11.0" : "0.0.0";
|
|
40785
|
+
var VERSION = true ? "0.11.2" : "0.0.0";
|
|
40781
40786
|
function printUsage() {
|
|
40782
40787
|
console.log(`oh-my-til v${VERSION}
|
|
40783
40788
|
|
|
@@ -40838,7 +40843,7 @@ async function main() {
|
|
|
40838
40843
|
console.log(`Initializing oh-my-til in ${basePath}...`);
|
|
40839
40844
|
await installPlugin(storage, VERSION);
|
|
40840
40845
|
console.log("\nInstalled:");
|
|
40841
|
-
console.log(" - .claude/skills/ (
|
|
40846
|
+
console.log(" - .claude/skills/ (8 skills)");
|
|
40842
40847
|
console.log(" - .claude/rules/ (1 rule)");
|
|
40843
40848
|
console.log(" - .claude/CLAUDE.md (MCP section)");
|
|
40844
40849
|
console.log(`
|
|
@@ -40891,8 +40896,9 @@ To start MCP server: oh-my-til serve ${basePath}`);
|
|
|
40891
40896
|
console.log(`TIL path: ${tilPath}`);
|
|
40892
40897
|
console.log("Press Ctrl+C to stop");
|
|
40893
40898
|
} else if (command === "deploy") {
|
|
40894
|
-
const
|
|
40895
|
-
const
|
|
40899
|
+
const { loadOmtConfig: loadOmtConfig2 } = await Promise.resolve().then(() => (init_config(), config_exports));
|
|
40900
|
+
const omtConfig = loadOmtConfig2(basePath);
|
|
40901
|
+
const dc = omtConfig.deploy ?? {};
|
|
40896
40902
|
const deployTilPath = parsed.options["til-path"] ?? dc["til-path"] ?? tilPath;
|
|
40897
40903
|
const outDir = parsed.options["out"] ?? dc.out ?? "_site";
|
|
40898
40904
|
const siteTitle = parsed.options["title"] ?? dc.title ?? "TIL";
|
|
@@ -40914,6 +40920,7 @@ To start MCP server: oh-my-til serve ${basePath}`);
|
|
|
40914
40920
|
console.log(`No TIL files found in ${deployTilPath}/`);
|
|
40915
40921
|
process.exit(0);
|
|
40916
40922
|
}
|
|
40923
|
+
const existingTilPaths = new Set(tilFiles.map((f) => f.path));
|
|
40917
40924
|
const config2 = {
|
|
40918
40925
|
title: siteTitle,
|
|
40919
40926
|
description: "",
|
|
@@ -40943,7 +40950,7 @@ To start MCP server: oh-my-til serve ${basePath}`);
|
|
|
40943
40950
|
const title = headings.length > 0 ? headings[0] : typeof fmTitle === "string" && fmTitle ? fmTitle : slug.replace(/-/g, " ");
|
|
40944
40951
|
const fmDate = meta3?.frontmatter?.["date"];
|
|
40945
40952
|
const createdDate = typeof fmDate === "string" ? fmDate.slice(0, 10) : new Date(file2.ctime).toISOString().slice(0, 10);
|
|
40946
|
-
const contentHtml = rewriteTilLinks(renderMarkdown(content));
|
|
40953
|
+
const contentHtml = rewriteTilLinks(renderMarkdown(content), existingTilPaths);
|
|
40947
40954
|
const summary = extractSummary(content);
|
|
40948
40955
|
tilPageEntries.push({ title, category, slug, createdDate, contentHtml, summary });
|
|
40949
40956
|
if (!categoryMap.has(category))
|