ソース情報
- リポジトリ
- ahastudio/til
- ソースの最終更新活動
- 2026年8月9日 00:26
- 検出された SKILL.md の言語
- 英語
- スター
- 187
- フォーク
- 25
インストール方法
デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。
ソースファイルを確認
インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。
メニュー
デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。
インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。
SOC 職業分類に基づく
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
直接コマンドでは確認用 Prompt が省略されます。実行前にソースを確認してください。
npx skills add https://github.com/ahastudio/til --skill analyze-articleコマンドは1行のまま表示されます。コピー前に横へスクロールして全体を確認してください。
ローカルで確認しますか?SkillsMP が現在取得できるファイルをダウンロードできます。
SKILL.md を表示中
Convert ASCII double quotes (") in a markdown file to Unicode curly quotes ("\u201c", "\u201d"). Use when the user asks to convert double quotes, apply Unicode quotes, or use typographic/curly quotes.
Pick hot articles from GeekNews (news.hada.io) and write a TIL document for each. Select top articles by points and only process articles that do not duplicate existing documents.
Find the GeekNews (news.hada.io) discussion for the article in the current TIL document and weave the key native GN comments into the document body with precise footnote links. Use when the user wants to reflect community reactions from GeekNews into an existing TIL file.
| name | analyze-article |
| description | Read a web source — an article OR a non-article (GitHub repo, project |
Read a web article and write a TIL document with a summary / analysis / critique / insights structure.
The output document MUST be written in Korean. All section content (summary, analysis, critique, insights) is written in Korean. Technical terms may be written alongside their original English form.
/analyze-article https://example.com/article [security/article-name.md]
The user often pastes several URLs at once, sometimes each on its own
/analyze-article line. Treat that as a queue, not as an error.
Fetch the content of the $0 URL with WebFetch.
If WebFetch returns a summary rather than the text, or returns too little to
summarize accurately, fetch again asking for the body verbatim, or retrieve
the page directly and strip the markup. Never write the 요약 section from a
thin summary — numbers, names, and quoted phrasing must come from the actual
text. For sources WebFetch cannot handle, see step 4a and
_agent/rules/web-fetching.md.
Check in this order, and do all three before concluding anything:
If a duplicate exists, do NOT skip it and do NOT write a second document on the same source. Enhance the existing file instead.
Enhancing means: fetch the source again in full, then compare it against the existing document and add what is missing. Look for content the source carries that the document never captured, community reactions not yet woven in, sections the current structure requires but the document lacks, and passages where the existing text misreads the source — a document written from a thin fetch often critiques the source for an omission the source does not actually have. Correct those. Preserve everything already there that is still accurate, and keep the existing H1 unless the user asks otherwise. Report which file was enhanced and what was added or corrected.
A near-miss is not a duplicate: a document that merely mentions the subject (e.g. cites the project in passing) does not block a document about the source. Say which case it is when reporting.
Before writing anything, decide what the source actually IS. This decision controls the source-link line AND the first section heading. Getting it wrong is a defect, not a style choice.
There are two kinds of subjects:
Article / blog post / news / paper — the source is a piece of writing by an author making an argument. Examples: a blog post, a newsletter issue, a news story, an academic paper, an essay, a documentation article that reads as prose.
Non-article — the source is a thing you use or explore, not a piece of writing. Examples: a GitHub repository, a project/product homepage, a library or framework landing page, a service marketing site, an API reference index, a tool's docs root.
When in doubt, ask: "Is there an author advancing a thesis I can summarize, or am I describing a tool/project/site?" A README that pitches a product is a non-article (it describes the project), even though it contains prose.
The # heading is written in Korean, not copied from the source.
The document is a Korean note; its title is the first thing the reader sees
and must read as Korean prose.
SwiftUI, ClickHouse, Soppo, PostgreSQL, MCP.
Translate the surrounding words, not these.<제품명>: <한국어 설명> shape works well when the subject is a named
thing. A plain Korean sentence or noun phrase works well when the subject is
an argument.Examples:
| 원문 제목 | H1 |
|---|---|
| SwiftUI After 7 Years: A Story of Mediocrity | SwiftUI 7년, 평범함의 기록 |
| Devtools must be open source | 개발 도구는 오픈소스여야 한다 |
| GitHub has alternatives, but no replacement | GitHub에는 대안이 있지만 대체재는 없다 |
| Soppo (project homepage) | Soppo: Go에 빠진 기능을 더한 언어 |
| The next chapter of our AI momentum | Google AI 모멘텀의 다음 장 |
This rule governs the H1 only. Two things stay in their original language:
원문: link text keeps the source's own title, untranslated (step 4).If the H1 is in English, the document is wrong regardless of how good the body is. Fix it before writing the first section.
This rule applies to documents written from now on only. Many existing TIL documents have English H1 titles. That is a settled decision, not a backlog: do NOT retitle them, and do NOT propose a sweep. Touch an existing H1 only when the user asks for that specific file.
This is the rule most often gotten wrong. Follow it exactly.
The link form depends on whether the subject is a published piece (an article, post, paper, tweet, or video) or a thing (a site address, a GitHub repository, a project homepage).
Published piece → labeled source line directly under the title, written as a titled markdown link with the source's own title as the link text:
원문: [<원문 제목>](<URL>)
Use the title exactly as the source presents it, including its site suffix
when the page title carries one (e.g. ... | Google Search Central Blog).
Do not translate it, do not shorten it, do not invent one. If the page has
no usable title, use the most specific heading on the page.
A bare <URL> here is a defect: the reader cannot tell what they are about
to open.
Non-article (GitHub repo, homepage, service site, etc.) → NEVER write
원문:, and NEVER use a titled link. An 원문: label means "original
writing," which a repo or homepage is not. Place the bare URL(s) under
the title with no label and no link text:
<https://github.com/org/project>
If the subject has both a homepage and a repo, list both as separate bare URL lines (homepage first, then repo), each on its own line separated by a blank line.
There is ZERO case where a GitHub repository or a product/service homepage
gets an 원문: label or a [text](url) link. If you catch yourself typing
either one for a repo or a homepage, STOP — you misclassified the subject in
step 3.
Checklist before writing the source line:
원문: [실제 제목](URL), never a bare <URL>.<URL>, never 원문: and never [text](url).If any answer is wrong, fix it before writing the first section.
Discussion links added later (HN 토론:, Lobste.rs 토론:, GN 토론:) also
keep the bare <URL> form, because their score/comment count already
identifies them.
Some sources need a fetch strategy or a link form of their own. Handle these explicitly rather than improvising.
| Source type | Fetch method | Source line |
|---|---|---|
| Twitter / X | agent-browser (see web-fetching.md) | 트윗: [<제목 또는 첫 문장>](URL) |
| YouTube | Transcript or description via WebFetch | 영상: [<영상 제목>](URL) |
| Paper (PDF/arXiv) | WebFetch, or Read the PDF | 논문: [<논문 제목>](URL) |
| Press release | WebFetch | 원문: [<제목>](URL) |
For Twitter / X, twitter.com is used instead of x.com per
writing-guidelines.md. For a long tweet, call it a 트윗, not a 스레드,
unless the user says otherwise.
For YouTube, the first section is ## 요약 only if the video advances an
argument (a talk, an essay video). For a demo or a walkthrough, choose a
heading that fits — e.g. ## 내용, ## 데모.
If the source cannot be fetched at all, STOP and tell the user which URL failed and what was tried. Never write a document from the title alone or from prior knowledge of the subject.
The first top-level section depends on the same classification:
## 요약 (summary).## 요약. Choose a heading that fits what the
section actually covers — e.g. ## 소개, ## 명세, ## 사용법,
## 주요 기능, ## CLI. A single subject may warrant multiple top-level
sections if its content naturally splits.Regardless of subject type, always include ## 분석, then ## 비평
immediately after, and end with ## 인사이트.
Write a markdown document with the following structure. The 원문: line and
## 요약 heading shown below apply to ARTICLES ONLY — for non-articles,
substitute per steps 4 and 5.
# <한국어 제목>
원문: [<원문 제목>](<URL>)
## 요약
Summarize the core content in 3-5 paragraphs.
Convey technical details accurately — preserve numbers, names, and
technical terms. Do not editorialize; save judgment for later sections.
## 분석
Analyze the logical structure and context. Go beyond restating what the
article says — ask WHY the argument is structured this way, WHAT it
assumes, and WHERE it connects to broader trends.
Each sub-section (###) should make a distinct analytical point:
- What is the article's core claim, and what does it rest on?
- What historical or technical context explains why this matters now?
- What structural pattern does this represent — and where else does it
appear?
- What does the author take for granted that deserves scrutiny?
Aim for 3–4 sub-sections. Each sub-section is 2–4 paragraphs.
Do NOT list observations — build an argument within each sub-section.
## 비평
Do NOT use "강점 / 약점" sub-headings. A list of pros and cons is not
critique — it is a summary with opinions attached.
Real critique means: identify a specific flaw in the article's logic,
generalizability, omissions, or framing — and develop that flaw into a
substantive argument with evidence or counter-examples. Each sub-section
targets one such flaw.
Frame sub-headings as focused critical claims, not generic categories:
Good examples:
- "글의 논리는 성공 조건을 숨긴다"
- "저자가 인식하고도 답하지 않은 문제"
- "이 워크플로는 특정 맥락에서만 성립한다"
- "결론의 일반화는 근거 없이 확장된다"
Bad examples (forbidden):
- "강점"
- "약점"
- "한계"
- "긍정적 측면 / 부정적 측면"
Aim for 3–4 sub-sections of 3–5 paragraphs each. The critique must be
harder and sharper than the analysis — find the places where the article
fails to hold up under scrutiny.
## 인사이트
Insights are the most important section. They must offer something the
reader could NOT have obtained by reading the source alone.
Each insight (###) must be developed over 3–5 paragraphs. The sub-heading
names the insight as a declarative claim — not a question or topic label.
Mandatory coverage across the insights:
- A second-order effect or consequence the article does not anticipate
- A historical analogy or structural pattern that reframes the issue
A tension or trade-off the article glosses over but that will matter
at scale or over time
What to avoid:
Restating the article's own conclusions as insights
Surface-level observations ("this is an important trend")
Insights that follow directly from the article without adding a new
frame
Write at least 3 insights. 4 is better if the subject warrants it.
## and ### heading is Korean too.If $1 is provided, create the file at that path. If it is not provided, propose an appropriate directory and filename and confirm with the user.
The file name is the subject. Nothing else.
Use lowercase English kebab-case. Include only words that identify which subject this is. Never include words that state what category, medium, or kind of artifact the subject is, and never describe what this document does to the subject.
Name a named thing by its name. Name an argument by its claim. Name a specific release or incident by its identifier. Add words only to disambiguate, and only words that narrow the subject.
Keep it short. Do not transliterate Korean; the name stays English even though the H1 is Korean (step 3a).
Mandatory check before writing the file:
After creating the file, invoke the quotes-curly skill via the Skill tool
with the output file path as the argument. Show the conversion result to the
user.
After post-processing, automatically invoke the following two skills in sequence via the Skill tool, passing the output file path as the argument to each:
hackernews-reactions — finds the Hacker News thread and weaves key
comments into the document.lobsters-reactions — finds the Lobste.rs thread and weaves key comments
into the document.Run them regardless of whether the user asked. If a skill reports that no thread was found, that is a normal result — note it briefly and continue to the next skill.