What is Hackers' Pub?

Hackers' Pub is a place for software engineers to share their knowledge and experience with each other. It's also an ActivityPub-enabled social network, so you can follow your favorite hackers in the fediverse and get their latest posts in your feed.

0

[USA] A new date has been set for the start of the Prairieland Defendantsโ€™ federal jury trial: Feb 17!
We have been told by multiple lawyers this date is very unlikely to change. The North Texas federal court circuit in Fort Worth is well-known for being fast & firm with trial dates. Dario Sanchezโ€™s state trial is set for Jan 12 in Johnson County. This is not a lot of time! Weโ€™re calling on supporters everywhere to do everything you can to help the defendants get the best defense possible.
@abcAnarchist Black Cross

Following a noise demo at the Prairieland ICE detention facility near Fort Worth, TX, federal agents and texas law enforcement have arrested 18 people and brought charges against them that include material support for terrorism, attempted murder, and tampering with evidence. The official story is one of an Antifa terrorist cell caught red-handed. But the facts suggest that this story is a fabrication; a politically motivated narrative used to justify a criminalization of left-wing politics, and to justify extreme charges for the purpose of stifling dissent. Supporting these individuals is an emergency in our current political landscape.TRIAL DATES

The first trial date is January 12th when Dario Sanchez will go to trial for state-level charges including "Hindering Prosecution of Terrorism."

Another nine defendants will go to trial for federal charges, including terrorism and attempted murder charges, the trial begins on February 17the.

These cases are happening in some of the fastest moving court systems in the US. The time to act is now. Read on for ways to support.WAYS TO SUPPORT

Please donate money to the defendants for legal expenses. Their cases will require top-notch legal representation. Donations links on the next slide.

Write letters to the defendants, many of whom have been incarcerated since July. Letter writing info at: https://dfwdefendants.noblogs.org/getinvolved/

Organize to support the defendants. Host fundraisers and do the work to raise awareness about these cases. 

Consider travelling to Fort Worth, Texas for court support. 

More info to come.DONATE TO THE PRAIRIELAND DEFENDANTS

Donations for legal expenses: givesendgo.com/supportDFWprotestors

Donations for Maricela Rueda's family: gofundme.com/f/help-maricelas-family-while-she-fights-for-justice

Donations for Des' immigration lawyer: gofundme.com/f/get-artist-des-revol-an-immigration-attorney

More info: dfwdefendants.noblogs.org/getinvolved/
0

ไป–ใฎไบบใŒใ‚ใ‚“ใพใ‚Šใ‚„ใฃใฆใชใ„ใ“ใจใ—ใŸใ„ใช๏ฝžใฃใฆๆ€ใฃใŸใใ“ใฎใ‚ญใƒŸใ€ๅคงๅˆคใ‚„ใ‚ใ†ใ€‚

0

ๆ˜Žๆ—ฅๅคฉๆฐ—่‰ฏใ•ใใ†ใ ใ‹ใ‚‰ใ€้ฉๅฝ“ใชใจใ“ใ‚ใงไป•ไบ‹็ดใ‚ใซใ—ใฆใ€โ€‹:misskey:โ€‹ใƒถไธ˜ๆ—ฅใฎๅ…ฅใ‚Šใ‚ฟใ‚คใƒ ใƒฉใƒ—ใ‚นไป•่พผใฟใซ่กŒใใ‹
Foveonใ‚‚ๆŒใก่พผใ‚‚ใ†

ใ“ใ‚Œใงๆ™ดๅคฉใƒปๆ›‡ๅคฉใฎๅค•ๆšฎใ‚ŒใŒๆƒใ†
ใ†ใพใ้ƒฝๅฟƒใŒๅค•ๆ—ฅใซ็…งใ‚‰ใ•ใ‚Œใ‚‹็ตตใซใชใ‚‹ใจใ„ใ„ใฎใ ใ‘ใฉ

1
0

๊ฑฐ๊พธ๋กœ ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ๋ฐ›์•„๋“ค์ผ ์ˆ˜ ์—†์œผ๋ฉด ๋งŒ๋“  ์‚ฌ๋žŒ์ด ์˜๋„ํ•œ ๋ ˆ๋ฒจ ๋””์ž์ธ๋„ ๋Œ๋ถ€๋ฆฌ์ผ ์ˆ˜๋ฐ–์— ์—†์Œโ€ฆ ๋„์ค‘์— ์ฃฝ์œผ๋ฉด ์ง€๊ธˆ๊นŒ์ง€ ๋จน์€ ์•„์ดํ…œ์„ ๋‹ค ๋–จ๊ตฌ๋Š” ๊ฒŒ์ž„์ด ์žฌ๋ฏธ์žˆ์„ ์ˆ˜ ์žˆ๋Š” ๊ฑฐ๋ž‘ '๋‚œ ์ด ๊ฒŒ์ž„ ์•ˆ ํ•  ๊ฑฐ์ž„'ํ•˜๊ณ  ๋‹ค์‹œ๋Š” ์•ˆ ์ผœ๋Š” ์‚ฌ๋žŒ์ด ์žˆ๋Š” ๊ฑด ๊ณต์กดํ•  ์ˆ˜ ์žˆ๋Š” ์ผ์ž„ ์‚ฌ๋žŒ์€ ์ƒ๊ฐ๋ณด๋‹ค ์‚ฌ์†Œํ•œ ์ด์œ ๋กœ ๊ฒŒ์ž„์„ ์ ‘๊ฒŒ ๋˜๊ณ  ์ง€๊ธˆ ์„ธ์ƒ์€ ๊ทธ๋ ‡๊ฒŒ ์•ˆ ํ•œ๋‹ค๊ณ  ์ณ๋„ ์—ฌ์ „ํžˆ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒŒ์ž„์ด 1๋…„์— (์ŠคํŒ€์—์„œ๋งŒ) 1๋งŒ๊ฐœ ์ด์ƒ ์ถœ์‹œ๋œ๋‹ค

0

์ฟ ํŒก โ€œ์ „ ์ง์› ๋‹จ๋…๋ฒ”ํ–‰, ์ œ3์ž ์œ ์ถœ ์—†์–ดโ€ ๊ธฐ์Šต ๋ฐœํ‘œโ€ฆ์ •๋ถ€ โ€œํ•ฉ๋™์กฐ์‚ฌ ์ค‘์ธ๋ฐโ€ ๋ฐœ๋ˆ ์ˆ˜์ • 2025.12.25 20:50 www.khan.co.kr/article/2025...

์ฟ ํŒก โ€œ์ „ ์ง์› ๋‹จ๋…๋ฒ”ํ–‰, ์ œ3์ž ์œ ์ถœ ์—†์–ดโ€ ๊ธฐ์Šต ๋ฐœ...

์ฟ ํŒก โ€œ์ „ ์ง์› ๋‹จ๋…๋ฒ”ํ–‰, ์ œ3์ž ์œ ์ถœ ์—†์–ดโ€ ๊ธฐ์Šต ๋ฐœํ‘œโ€ฆ์ •๋ถ€ โ€œํ•ฉ๋™์กฐ์‚ฌ ์ค‘์ธ๋ฐโ€ ๋ฐœ๋ˆ

์ฟ ํŒก์ด ๋Œ€๊ทœ๋ชจ ๊ฐœ์ธ์ •๋ณด ์œ ์ถœ ์‚ฌํƒœ์™€ ๊ด€๋ จํ•ด ์ „์ง ์ง์›์˜ ๋‹จ๋… ๋ฒ”ํ–‰์œผ๋กœ ์ œ3์ž์—๊ฒŒ ์ „๋‹ฌ๋œ ์ •ํ™ฉ์€ ์—†๋‹ค๊ณ  25์ผ ๋ฐํ˜”๋‹ค. ๋ฏผ๊ด€ํ•ฉ๋™์กฐ์‚ฌ๋‹จ๊ณผ๋Š” ๋ณ„๊ฐœ๋กœ ์ž์ฒด ์กฐ์‚ฌํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋‚ด๋†“์€ ๊ฒƒ์œผ๋กœ, ์ •๋ถ€๋Š” ์ฟ ํŒก ์ธก์˜ ์ผ๋ฐฉ์ ์ธ ๋ฐœํ‘œ์— ๊ฐ•๋ ฅ ํ•ญ์˜ํ–ˆ๋‹ค. ์ฟ ํŒก์€ ์ด๋‚  ๋ณด๋„์ž๋ฃŒ๋ฅผ ํ†ตํ•ด โ€œ๋””์ง€ํ„ธ ์ง€๋ฌธ ๋“ฑ ํฌ๋ Œ์‹ ์ฆ๊ฑฐ๋ฅผ ํ™œ์šฉํ•ด ๊ณ ๊ฐ ์ •๋ณด๋ฅผ ์œ ์ถœํ•œ ์ „์ง ์ง์›์„ ํŠน์ •ํ–ˆ๋‹คโ€๋ฉด์„œ โ€œํ•ด๋‹น ์œ ...

www.khan.co.kr ยท ๊ฒฝํ–ฅ์‹ ๋ฌธ

0
1

ํ‚ค์›Œ๋“œ: ์–‡์€ ํ—ˆ๋ฆฌ, ์•ˆ๊ฒฝ ๊ธ€๋ž˜๋จธ>์ฝ”๋ฅด์…‹>์ฒ™์ถ”๋ผˆ ์ˆœ์„œ๋กœ ํ—ˆ๋ฆฌ๊ฐ€ ์–‡์•„์ง€๊ฒŒ ๋˜์—ˆ๋„ค์š”. ์‚ฌ์‹ค ์ˆ˜์ธ์„ ๊ทธ๋ฆฌ๊ณ  ์‹ถ์—ˆ๊ณ  ์•ˆ๊ฒฝ์€ ๊ทธ๋ƒฅ ์ด์šฉ๋‹นํ•œ ๊ฐ์ด ์žˆ์ง€๋งŒ, ์–ด์จŒ๊ฑฐ๋‚˜ ์•ˆ๊ฒฝ์บ๋ฆญํ„ฐ๋Š” ๋งž์œผ๋‹ˆ๊นŒ์š”๐Ÿ˜—

0

โ€‹:skeb:โ€‹โ€‹:irai_bosyuu_tyuu:โ€‹โ€‹:blob_uooo:โ€‹
ๆœ€ไฝŽ้‡‘้ก5000ๅ††ใ‹ใ‚‰ใƒชใ‚ฏใ‚จใ‚นใƒˆใŠๅ—ใ‘ใ—ใฆใ„ใพใ™ใฎใงใ€ๆ˜ฏ้žๅฎœใ—ใใŠ้ก˜ใ„ใ—ใพใ™
โ€‹:sparkles_rainbow:โ€‹
ใƒชใ‚ฏใ‚จใ‚นใƒˆใŠๅพ…ใกใ—ใฆใ„ใพใ™
โ€‹:blobcat_gu1:โ€‹


https://skeb.jp/@shimi_panda

1
0

โ€‹:skeb:โ€‹โ€‹:irai_bosyuu_tyuu:โ€‹โ€‹:blob_uooo:โ€‹
ๆœ€ไฝŽ้‡‘้ก5000ๅ††ใ‹ใ‚‰ใƒชใ‚ฏใ‚จใ‚นใƒˆใŠๅ—ใ‘ใ—ใฆใ„ใพใ™ใฎใงใ€ๆ˜ฏ้žๅฎœใ—ใใŠ้ก˜ใ„ใ—ใพใ™
โ€‹:sparkles_rainbow:โ€‹
ใƒชใ‚ฏใ‚จใ‚นใƒˆใŠๅพ…ใกใ—ใฆใ„ใพใ™
โ€‹:blobcat_gu1:โ€‹


https://skeb.jp/@shimi_panda

1
0

Jaeyeol Lee shared the below article:

Agent Skill๋„ Tool Use๋กœ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

์ž์†ํ‚ด @jasonkim@hackers.pub

Agent Skill์€ Anthropic์ด 2025๋…„ 10์›”์— ๋ฐœํ‘œํ•œ ๊ธฐ๋Šฅ์ด๋‹ค. ๋ฐœํ‘œ ์งํ›„๋ถ€ํ„ฐ ํญ๋ฐœ์ ์ธ ๋ฐ˜์‘์„ ์–ป์–ด ์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ ๋‹ค์–‘ํ•œ ์ข…๋ฅ˜์˜ Skill์ด ๋งŒ๋“ค์–ด์กŒ๋‹ค. 2025๋…„ 12์›” 18์ผ์— Anthropic์€ Agent Skills๋ฅผ ๋…๋ฆฝ์ ์ธ ์˜คํ”ˆ ์Šคํƒ ๋‹ค๋“œ๋กœ ๋ฐœํ‘œํ–ˆ๊ณ  ์—ฌ๋Ÿฌ ์„œ๋น„์Šค๋“ค์ด Skill์„ ์ง€์›ํ•˜๊ณ  ์žˆ๋‹ค.

์ด๋ฒˆ ๊ธ€์—์„œ๋Š” Agent Skill์ด Tool Use ์œ„์—์„œ ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๋Š”์ง€ ์•Œ์•„๋ณธ๋‹ค.

Agent Skill์ด๋ž€?

Agent Skill์€ ์—์ด์ „ํŠธ๊ฐ€ ํŠน์ • ์ž‘์—…์„ ๋” ์ •ํ™•ํ•˜๊ณ  ํšจ์œจ์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์‹œ๋ฌธ(instructions), ์Šคํฌ๋ฆฝํŠธ(scripts), ๋ฆฌ์†Œ์Šค(resources) ๋“ฑ์„ ๋™์ ์œผ๋กœ ๋ถˆ๋Ÿฌ์˜ฌ ์ˆ˜ ์žˆ๊ฒŒ ๊ตฌ์„ฑ๋œ ํด๋”๋‹ค.

์—์ด์ „ํŠธ๋Š” ์ ์  ๋” ๋งŽ์€ ๊ฒƒ์„ ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์‹ค์ œ ์—…๋ฌด๋ฅผ ์•ˆ์ •์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•˜๋ ค๋ฉด ์ ˆ์ฐจ์  ์ง€์‹๊ณผ ์กฐ์ง๋ณ„ ๋งฅ๋ฝ์ด ํ•„์š”ํ•˜๋‹ค. PDF ์–‘์‹์„ ์ฑ„์šฐ๋Š” ๋ฐฉ๋ฒ•, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ์•ˆ์ „ํ•˜๊ฒŒ ์ˆ˜ํ–‰ํ•˜๋Š” ์ˆœ์„œ, ๋ธŒ๋ผ์šฐ์ € ์ž๋™ํ™”์˜ ๋ฒ ์ŠคํŠธ ํ”„๋ž™ํ‹ฐ์Šค ๊ฐ™์€ ๊ฒƒ๋“ค์ด๋‹ค. ์ด๋Ÿฐ ์ง€์‹์„ ๋งค๋ฒˆ ํ”„๋กฌํ”„ํŠธ์— ๋ชจ๋‘ ์ž‘์„ฑํ•˜๋ฉด ์ปจํ…์ŠคํŠธ๋ฅผ ๋‚ญ๋น„ํ•˜๊ฒŒ ๋˜๊ณ  ์ผ๊ด€์„ฑ๋„ ๋–จ์–ด์ง„๋‹ค.

Agent Skill์€ ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋“ค์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ž‘์—…์— ํ•„์š”ํ•œ ์ง€์‹์„ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋‹จ์œ„๋กœ ํŒจํ‚ค์ง•ํ•˜๊ณ  ํ•„์š”ํ•  ๋•Œ๋งŒ ๋™์ ์œผ๋กœ ๋กœ๋“œํ•œ๋‹ค.

ํšจ์œจ์ ์ธ ์ปจํ…์ŠคํŠธ ๊ด€๋ฆฌ ๋ฐฉ๋ฒ•

Agent Skill์€ ์ ์ง„์  ๊ณต๊ฐœ(Progressive Disclosure) ํŒจํ„ด์œผ๋กœ ์ปจํ…์ŠคํŠธ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•œ๋‹ค. ์ ์ง„์  ๊ณต๊ฐœ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋‹จ๊ณ„๋กœ ๊ตฌ์„ฑ๋œ๋‹ค.

์ฒซ ๋ฒˆ์งธ ๋‹จ๊ณ„: ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ๋กœ๋“œ

์—์ด์ „ํŠธ๊ฐ€ ์‹œ์ž‘ํ•  ๋•Œ ๋ชจ๋“  Skill์˜ name๊ณผ description๋งŒ ๋กœ๋“œํ•œ๋‹ค. ์ด ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋Š” Claude๊ฐ€ ๊ฐ Skill์„ ์–ธ์ œ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š”์ง€ ํŒ๋‹จํ•  ์ˆ˜ ์žˆ์„ ๋งŒํผ์˜ ์ •๋ณด๋งŒ ์ œ๊ณตํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด PDF Skill์€ "PDF ํŒŒ์ผ์—์„œ ํ…์ŠคํŠธ ์ถ”์ถœ, ํผ ์ฑ„์šฐ๊ธฐ, ๋ฌธ์„œ ๋ณ‘ํ•ฉ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค"๋Š” ์„ค๋ช…๋งŒ ์‹œ์Šคํ…œ ํ”„๋กฌํ”„ํŠธ์— ํฌํ•จ๋œ๋‹ค.

๋‘ ๋ฒˆ์งธ ๋‹จ๊ณ„: SKILL.md ์ „์ฒด ๋กœ๋“œ

Claude๊ฐ€ ํ˜„์žฌ ์ž‘์—…์— ํ•ด๋‹น Skill์ด ๊ด€๋ จ ์žˆ๋‹ค๊ณ  ํŒ๋‹จํ•˜๋ฉด ์ „์ฒด SKILL.md๋ฅผ ์ปจํ…์ŠคํŠธ์— ๋กœ๋“œํ•œ๋‹ค. ์ด ๋‹จ๊ณ„์—์„œ ์ƒ์„ธํ•œ ์ง€์‹œ๋ฌธ์ด ์ถ”๊ฐ€๋œ๋‹ค. ๊ถŒ์žฅ ํฌ๊ธฐ๋Š” 5000 ํ† ํฐ ๋ฏธ๋งŒ์ด๋‹ค.

์„ธ ๋ฒˆ์งธ ๋‹จ๊ณ„ ์ด์ƒ: ์ถ”๊ฐ€ ํŒŒ์ผ ์˜จ๋””๋งจ๋“œ ๋กœ๋“œ

Skill์ด ๋ณต์žกํ•ด์ง€๋ฉด ๋ชจ๋“  ๋‚ด์šฉ์„ SKILL.md ํ•˜๋‚˜์— ๋‹ด๊ธฐ ์–ด๋ ค์›Œ์ง„๋‹ค. ์ด๋Ÿฐ ๊ฒฝ์šฐ references/, scripts/, assets/ ํด๋”์— ์ถ”๊ฐ€ ํŒŒ์ผ์„ ๋ฒˆ๋“คํ•˜๊ณ  SKILL.md์—์„œ ์ฐธ์กฐํ•œ๋‹ค. Claude๋Š” ํ•„์š”ํ•  ๋•Œ๋งŒ ์ด ํŒŒ์ผ๋“ค์„ ํƒ์ƒ‰ํ•˜๊ณ  ๋กœ๋“œํ•œ๋‹ค.

์ด ํŒจํ„ด์˜ ์žฅ์ ์€ "ํ•„์š”ํ•  ๋•Œ๋งŒ ํ•„์š”ํ•œ ๋งŒํผ"์ด๋‹ค. ๋ชจ๋“  Skill์˜ ์ „์ฒด ์ง€์‹œ๋ฌธ์„ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋กœ๋“œํ•˜๋ฉด ์ปจํ…์ŠคํŠธ๊ฐ€ ๊ธˆ๋ฐฉ ์†Œ์ง„๋œ๋‹ค. ์ ์ง„์  ๊ณต๊ฐœ๋Š” ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ฉด์„œ๋„ ์—์ด์ „ํŠธ๊ฐ€ ์ ์ ˆํ•œ ์‹œ์ ์— ์ ์ ˆํ•œ Skill์„ ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•œ๋‹ค.

Agent Skill์˜ ๊ตฌ์กฐ

์ผ๋ฐ˜์ ์ธ Skill์˜ ๊ตฌ์กฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

skill-name/
โ”œโ”€โ”€ SKILL.md           # ํ•„์ˆ˜: ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ + ์ง€์‹œ๋ฌธ
โ”œโ”€โ”€ scripts/           # ์„ ํƒ: ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ์ฝ”๋“œ
โ”œโ”€โ”€ references/        # ์„ ํƒ: ์ถ”๊ฐ€ ๋ฌธ์„œ
โ””โ”€โ”€ assets/            # ์„ ํƒ: ํ…œํ”Œ๋ฆฟ, ๋ฆฌ์†Œ์Šค

SKILL.md๋งŒ ํ•„์ˆ˜์ด๊ณ  ๋‚˜๋จธ์ง€๋Š” ๋ชจ๋‘ ์„ ํƒ์ด๋‹ค. ๋‹จ์ˆœํ•œ Skill์€ SKILL.md ํ•˜๋‚˜๋งŒ์œผ๋กœ ๊ตฌ์„ฑ๋  ์ˆ˜ ์žˆ๊ณ  ๋ณต์žกํ•œ Skill์€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์Šคํฌ๋ฆฝํŠธ์™€ ์ฐธ์กฐ ๋ฌธ์„œ๋ฅผ ํฌํ•จํ•  ์ˆ˜ ์žˆ๋‹ค.

ํ•„์ˆ˜์š”์†Œ์ธ SKILL.md๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํฌ๋งท์œผ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค.

---
name: pdf-processing
description: Extract text and tables from PDF files, fill forms, merge documents.
license: Apache-2.0
compatibility: Designed for Claude Code
metadata:
  author: example-org
  version: "1.0"
allowed-tools: Bash(git:*) Read
---

# PDF Processing

## When to use this skill
Use this skill when the user needs to work with PDF files...

## How to extract text
1. Use pdfplumber for text extraction...

SKILL.md๋Š” YAML frontmatter์™€ ๋งˆํฌ๋‹ค์šด ๋ณธ๋ฌธ์œผ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค. YAML frontmatter์—๋Š” name๊ณผ description์ด ํ•„์ˆ˜๋กœ ํฌํ•จ๋˜์–ด์•ผ ํ•œ๋‹ค. name์€ ์ตœ๋Œ€ 64์ž์˜ ์†Œ๋ฌธ์ž์™€ ์ˆซ์ž ๊ทธ๋ฆฌ๊ณ  ํ•˜์ดํ”ˆ์œผ๋กœ๋งŒ ๊ตฌ์„ฑ๋˜๋ฉฐ ํ•˜์ดํ”ˆ์œผ๋กœ ์‹œ์ž‘ํ•˜๊ฑฐ๋‚˜ ๋๋‚  ์ˆ˜ ์—†๋‹ค. description์€ ์ตœ๋Œ€ 1024์ž๋กœ ์ด Skill์ด ๋ฌด์—‡์„ ํ•˜๋Š”์ง€ ์–ธ์ œ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š”์ง€ ์„ค๋ช…ํ•œ๋‹ค.

license, compatibility, metadata, allowed-tools๋Š” ์„ ํƒ ํ•„๋“œ๋‹ค. ๊ฐ ์„ ํƒ ํ•„๋“œ์˜ ์—ญํ• ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  • license: ๋ผ์ด์„ ์Šค ์ด๋ฆ„ ๋˜๋Š” ๋ฒˆ๋“ค๋œ ๋ผ์ด์„ ์Šค ํŒŒ์ผ์— ๋Œ€ํ•œ ์ฐธ์กฐ๋ฅผ ๋ช…์‹œํ•œ๋‹ค.
  • compatibility: ์ตœ๋Œ€ 500์ž. ํ™˜๊ฒฝ ์š”๊ตฌ์‚ฌํ•ญ์„ ๋ช…์‹œํ•œ๋‹ค. ์˜๋„ํ•œ ์ œํ’ˆ, ํ•„์š”ํ•œ ์‹œ์Šคํ…œ ํŒจํ‚ค์ง€, ๋„คํŠธ์›Œํฌ ์ ‘๊ทผ ํ•„์š” ์—ฌ๋ถ€ ๋“ฑ์„ ๊ธฐ์ˆ ํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด "Designed for Claude Code" ๋˜๋Š” "Requires git, docker, jq, and access to the internet" ๊ฐ™์€ ํ˜•ํƒœ๋กœ ์ž‘์„ฑํ•œ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ Skill์€ ์ด ํ•„๋“œ๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š๋‹ค.
  • metadata: ์ž„์˜์˜ ํ‚ค-๊ฐ’ ์Œ์„ ์ €์žฅํ•˜๋Š” ๋งต์ด๋‹ค. author, version ๊ฐ™์€ ์ถ”๊ฐ€ ์†์„ฑ์„ ๋‹ด๋Š”๋‹ค.
  • allowed-tools: ๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ๋ถ„๋œ ์‚ฌ์ „ ์Šน์ธ ๋„๊ตฌ ๋ชฉ๋ก์ด๋‹ค. ์‹คํ—˜์  ๊ธฐ๋Šฅ์œผ๋กœ ์—์ด์ „ํŠธ ๊ตฌํ˜„์— ๋”ฐ๋ผ ์ง€์› ์—ฌ๋ถ€๊ฐ€ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ๋‹ค.

YAML frontmatter ์•„๋ž˜์˜ ๋งˆํฌ๋‹ค์šด ๋ณธ๋ฌธ์ด ์‹ค์ œ ์ง€์‹œ๋ฌธ์ด ๋œ๋‹ค. ์ด ์ง€์‹œ๋ฌธ์€ Skill์ด ํ™œ์„ฑํ™”๋  ๋•Œ ์ปจํ…์ŠคํŠธ์— ์ฃผ์ž…๋˜์–ด ์—์ด์ „ํŠธ์˜ ํ–‰๋™์„ ์•ˆ๋‚ดํ•œ๋‹ค.

์ฒซ๋ฒˆ์งธ ๋‹จ๊ณ„์—์„œ๋Š” frontmatter์˜ name๊ณผ description๋งŒ ์‚ฌ์šฉ๋œ๋‹ค. ์ด ์ •๋ณด๋กœ ์—์ด์ „ํŠธ๋Š” ์–ธ์ œ ์ด Skill์„ ํ™œ์„ฑํ™”ํ•ด์•ผ ํ•˜๋Š”์ง€ ํŒ๋‹จํ•œ๋‹ค. ๋‘๋ฒˆ์งธ ๋‹จ๊ณ„์—์„œ SKILL.md ์ „์ฒด๊ฐ€ ๋กœ๋“œ๋˜๊ณ  ์„ธ๋ฒˆ์งธ ๋‹จ๊ณ„์—์„œ ๋งˆํฌ๋‹ค์šด ๋ณธ๋ฌธ์˜ ์ง€์‹œ๋ฌธ์— ๋”ฐ๋ผ scripts/ ํด๋”์˜ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๊ฑฐ๋‚˜ references/ ํด๋”์˜ ์ถ”๊ฐ€ ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•œ๋‹ค.

dev-browser๋กœ ์‚ดํŽด๋ณด๋Š” ์‹ค์ œ Skill ๋™์ž‘

์ด์ œ Skill์ด ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๋Š”์ง€ ์‹ค์ œ ์˜ˆ์‹œ๋ฅผ ํ†ตํ•ด ์‚ดํŽด๋ณด์ž. ์ด ์˜ˆ์‹œ๋Š” Use Claude Code with Chrome์— ์žˆ๋Š” ์‚ฌ์šฉ ์˜ˆ์‹œ๋ฅผ dev-browser Skill์„ ์‚ฌ์šฉํ•ด ํ…Œ์ŠคํŠธํ•˜๊ณ  ๋ถ„์„ํ•œ ๊ฒƒ์ด๋‹ค.

์‚ฌ์šฉํ•œ ํ”„๋กฌํ”„ํŠธ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

Go to code.claude.com/docs, click on the search box,
type "hooks", and tell me what results appear

์ด ์š”์ฒญ์€ tools ๋ฐฐ์—ด๊ณผ ํ•จ๊ป˜ ์ „์†ก๋˜๋ฉฐ Skill๋„ tools ๋ฐฐ์—ด์— ํฌํ•จ๋˜์–ด ์žˆ๋‹ค. Claude API ์š”์ฒญ ๊ตฌ์กฐ์— ๋Œ€ํ•ด์„œ๋Š” ์ด์ „ ๊ธ€์„ ์ฐธ๊ณ ํ•œ๋‹ค.

{
  "name": "Skill",
  "description": "Execute a skill within the main conversation\n\n<skills_instructions>...",
  "input_schema": {
    "type": "object",
    "properties": {
      "skill": {
        "type": "string",
        "description": "The skill name. E.g., \"commit\", \"review-pr\", or \"pdf\""
      },
      "args": {
        "type": "string",
        "description": "Optional arguments for the skill"
      }
    },
    "required": ["skill"]
  }
}

Skill ๋„๊ตฌ์˜ description์—๋Š” <available_skills> ์„น์…˜์ด ํฌํ•จ๋˜์–ด ์žˆ์–ด ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  Skill์˜ ๋ชฉ๋ก๊ณผ ์„ค๋ช…์ด ๋“ค์–ด์žˆ๋‹ค.

<available_skills>
<skill>
<n>dev-browser:dev-browser</n>
<description>
Browser automation with persistent page state. Use when users ask to 
navigate websites, fill forms, take screenshots, extract web data, 
test web apps, or automate browser workflows. Trigger phrases include 
"go to [url]", "click on", "fill out the form", "take a screenshot"...
</description>
<location>plugin</location>
</skill>
</available_skills>

์‚ฌ์šฉ์ž์˜ ์š”์ฒญ "Go to code.claude.com/docs, click on the search box..."๊ฐ€ dev-browser์˜ description์— ์žˆ๋Š” ํŠธ๋ฆฌ๊ฑฐ ํ”„๋ ˆ์ด์ฆˆ "go to [url]", "click on"๊ณผ ๋งค์นญ๋œ๋‹ค. ์—์ด์ „ํŠธ๋Š” ์ด ๋งค์นญ์„ ๋ฐœ๊ฒฌํ•˜๊ณ  Skill ๋„๊ตฌ๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค.

{
  "type": "tool_use",
  "id": "toolu_017StpNdwovc4Lm8tGfK9XnA",
  "name": "Skill",
  "input": {
    "skill": "dev-browser:dev-browser",
    "args": "Go to code.claude.com/docs, click on the search box, type \"hooks\", and tell me what results appear"
  }
}

skill ํ•„๋“œ์— plugin name์„ ํฌํ•จํ•œ qualified name(plugin-name:skill-name)์ด ์‚ฌ์šฉ๋˜๊ณ  args์—๋Š” ์‚ฌ์šฉ์ž์˜ ์›๋ณธ ์š”์ฒญ์ด ๊ทธ๋Œ€๋กœ ์ „๋‹ฌ๋˜์—ˆ๋‹ค.

Skill ๋„๊ตฌ์˜ tool_result๋กœ SKILL.md ์ „์ฒด ๋‚ด์šฉ์ด ๋ฐ˜ํ™˜๋œ๋‹ค.

Launching skill: dev-browser:dev-browser

Base directory for this skill: /Users/dev-test/.claude/plugins/cache/
dev-browser-marketplace/dev-browser/58c332a7c61a/skills/dev-browser

# Dev Browser Skill

Browser automation that maintains page state across script executions. 
Write small, focused scripts to accomplish tasks incrementally...

## Setup

First, start the dev-browser server using the startup script:

```bash
./skills/dev-browser/server.sh &
```

## Writing Scripts

Execute scripts inline using heredocs:

```bash
cd skills/dev-browser && npx tsx <<'EOF'
import { connect } from "@/client.js";
const client = await connect();
const page = await client.page("homepage");
// Your automation code here
await client.disconnect();
EOF
```

ARGUMENTS: Go to code.claude.com/docs, click on the search box...

tool_result์—๋Š” SKILL.md์— ์žˆ๋Š” ๋ชจ๋“  ์ง€์‹œ๋ฌธ์ด ํฌํ•จ๋˜์–ด ์žˆ๋‹ค. ARGUMENTS์—๋Š” ์›๋ณธ ์‚ฌ์šฉ์ž ์š”์ฒญ์ด ์ฒจ๋ถ€๋˜์–ด ์žˆ์–ด ์—์ด์ „ํŠธ๊ฐ€ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ๋‹ค.

์ด์ œ ์—์ด์ „ํŠธ๋Š” SKILL.md์˜ ์ง€์‹œ๋ฌธ์„ ์ฝ๊ณ  ์ˆœ์„œ๋Œ€๋กœ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. ๋จผ์ € Setup ์„น์…˜์— ๋”ฐ๋ผ ์„œ๋ฒ„๋ฅผ ์‹œ์ž‘ํ•œ๋‹ค.

{
  "type": "tool_use",
  "name": "Bash",
  "input": {
    "command": "cd /Users/dev-test/.claude/plugins/cache/dev-browser-marketplace/dev-browser/58c332a7c61a/skills/dev-browser && ./server.sh &",
    "description": "Start dev-browser server"
  }
}

์„œ๋ฒ„๊ฐ€ ์ค€๋น„๋˜๋ฉด SKILL.md์˜ ์ธ๋ผ์ธ ์ฝ”๋“œ ํ…œํ”Œ๋ฆฟ์„ ์ฐธ๊ณ ํ•˜์—ฌ ๋ธŒ๋ผ์šฐ์ € ์ž๋™ํ™” ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ์‹คํ–‰ํ•œ๋‹ค.

{
  "type": "tool_use",
  "name": "Bash",
  "input": {
    "command": "cd /Users/dev-test/.claude/plugins/cache/dev-browser-marketplace/dev-browser/58c332a7c61a/skills/dev-browser && npx tsx <<'EOF'\nimport { connect, waitForPageLoad } from \"@/client.js\";\n\nconst client = await connect();\nconst page = await client.page(\"claude-docs\");\nawait page.setViewportSize({ width: 1280, height: 800 });\n\nawait page.goto(\"https://docs.anthropic.com/en/docs/claude-code\");\nawait waitForPageLoad(page);\n\nconsole.log(\"Current URL:\", page.url());\nconst snapshot = await client.getAISnapshot(\"claude-docs\");\nconsole.log(snapshot);\n\nawait client.disconnect();\nEOF",
    "description": "Navigate to Claude Code docs"
  }
}

์—์ด์ „ํŠธ๋Š” SKILL.md์˜ ์ฝ”๋“œ ํ…œํ”Œ๋ฆฟ์„ ๊ทธ๋Œ€๋กœ ๋ณต์‚ฌํ•˜์ง€ ์•Š๋Š”๋‹ค. ํ…œํ”Œ๋ฆฟ ๊ตฌ์กฐ(import, connect, heredoc ํŒจํ„ด)๋ฅผ ๋”ฐ๋ฅด๋˜ ์ž‘์—…์— ๋งž๊ฒŒ ์ฆ‰์„์—์„œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•œ๋‹ค. page.goto() URL์ด๋‚˜ selectSnapshotRef() ref ID ๋“ฑ์„ ๋™์ ์œผ๋กœ ๊ฒฐ์ •ํ•œ๋‹ค.

SKILL.md๊ฐ€ ๋ช…์‹œํ•œ Workflow Loop ํŒจํ„ด์— ๋”ฐ๋ผ Write a script โ†’ Run it โ†’ Evaluate โ†’ Decide โ†’ Repeat ๊ณผ์ •์ด ๋ฐ˜๋ณต๋œ๋‹ค. ํŽ˜์ด์ง€ ํƒ์ƒ‰ ์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰ โ†’ ARIA ์Šค๋ƒ…์ƒท ํ™•์ธ โ†’ ๊ฒ€์ƒ‰ ๋ฒ„ํŠผ ํด๋ฆญ โ†’ ๊ฒ€์ƒ‰์–ด ์ž…๋ ฅ โ†’ ๊ฒฐ๊ณผ ํ™•์ธ ์ˆœ์„œ๋กœ ์ง„ํ–‰๋œ๋‹ค.

์ „์ฒด ํ๋ฆ„์„ ์ •๋ฆฌํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

User: "Go to code.claude.com/docs... Use dev-browser"
        โ”‚
        โ–ผ
LLM: available_skills์—์„œ ๋งค์นญ ๋ฐœ๊ฒฌ
     description์— "go to", "click on" ํŠธ๋ฆฌ๊ฑฐ ํฌํ•จ
        โ”‚
        โ–ผ
tool_use: Skill
  skill: "dev-browser:dev-browser"
  args: "Go to code.claude.com/docs..."
        โ”‚
        โ–ผ
tool_result: SKILL.md ์ „์ฒด + Base directory + ARGUMENTS
        โ”‚
        โ–ผ
LLM: SKILL.md ์ง€์‹œ๋ฌธ ํ•ด์„
     "First, start the dev-browser server"
        โ”‚
        โ–ผ
tool_use: Bash (./server.sh &)  โ”€โ”€โ–บ tool_result: "Server ready"
        โ”‚
        โ–ผ
LLM: heredoc ํ…œํ”Œ๋ฆฟ ์ฐธ๊ณ ํ•˜์—ฌ ์Šคํฌ๋ฆฝํŠธ ์ž‘์„ฑ
     page.goto(), getAISnapshot() ํ™œ์šฉ
        โ”‚
        โ–ผ
tool_use: Bash (npx tsx <<'EOF'...)
        โ”‚
        โ–ผ
tool_result: snapshot ์ถœ๋ ฅ (ARIA ํŠธ๋ฆฌ)
        โ”‚
        โ–ผ
(๋ฐ˜๋ณต: ํด๋ฆญ, ์ž…๋ ฅ, ์Šคํฌ๋ฆฐ์ƒท ๋“ฑ)

Skill ๋„๊ตฌ์˜ ์—ญํ• ์€ SKILL.md ํŒŒ์ผ ๊ฒฝ๋กœ๋ฅผ ํ•ด์„ํ•˜๊ณ  ์ „์ฒด ๋‚ด์šฉ์„ tool_result๋กœ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฒƒ๋ฟ์ด๋‹ค. ์‹ค์ œ ๋Šฅ๋ ฅ์€ ์—์ด์ „ํŠธ๊ฐ€ SKILL.md๋ฅผ ์ฝ๊ณ  ์ง€์‹œ๋ฌธ์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ๋„๊ตฌ๋“ค์„ ์‚ฌ์šฉํ•˜๋ฉด์„œ ๋ฐœํ˜„๋œ๋‹ค.

Agent Skill๊ณผ Subagent

Subagent์™€ Agent Skill์€ ์„œ๋กœ ๋‹ค๋ฅธ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•œ๋‹ค.

Subagent๋Š” ์ปจํ…์ŠคํŠธ ๋ถ„๋ฆฌ๊ฐ€ ํ•„์š”ํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. ํƒ์ƒ‰์ด๋‚˜ ๋ถ„์„ ๊ณผ์ •์ด ๋ฉ”์ธ ๋Œ€ํ™”๋ฅผ ์˜ค์—ผ์‹œํ‚ค๋ฉด ์•ˆ ๋  ๋•Œ ์ ํ•ฉํ•˜๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ฝ”๋“œ๋ฒ ์ด์Šค ์ „์ฒด๋ฅผ ํƒ์ƒ‰ํ•ด์•ผ ํ•˜๋Š”๋ฐ ๊ทธ ๊ณผ์ •์˜ ๋ชจ๋“  ํŒŒ์ผ ๋‚ด์šฉ์ด ๋ฉ”์ธ ์ปจํ…์ŠคํŠธ์— ์Œ“์ด๋ฉด ๊ธˆ๋ฐฉ ์ปจํ…์ŠคํŠธ๊ฐ€ ์†Œ์ง„๋œ๋‹ค. Subagent๋Š” ๋…๋ฆฝ์ ์ธ ์ปจํ…์ŠคํŠธ ์œˆ๋„์šฐ์—์„œ ์ž‘์—…ํ•˜๊ณ  ๊ฒฐ๊ณผ๋งŒ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ๋˜ํ•œ ๊ฐ€๋ฒผ์šด ๋ชจ๋ธ(Haiku)๋กœ ๋น ๋ฅด๊ฒŒ ์ฒ˜๋ฆฌํ•˜๊ฑฐ๋‚˜ ๋ฌด๊ฑฐ์šด ๋ชจ๋ธ(Opus)๋กœ ๊นŠ์ด ๋ถ„์„ํ•˜๋Š” ์„ ํƒ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

Agent Skill์€ ์ ˆ์ฐจ์  ์ง€์‹์ด ํ•„์š”ํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. PDF ํผ ์ฑ„์šฐ๊ธฐ๋‚˜ ๋ธŒ๋ผ์šฐ์ € ์ž๋™ํ™”์ฒ˜๋Ÿผ "์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ•˜๋Š”์ง€"์— ๋Œ€ํ•œ ๋ฒ ์ŠคํŠธ ํ”„๋ž™ํ‹ฐ์Šค๊ฐ€ ์žˆ๋Š” ์ž‘์—…์— ์ ํ•ฉํ•˜๋‹ค. Skill์€ ํ˜„์žฌ ์ปจํ…์ŠคํŠธ๋ฅผ ๊ณต์œ ํ•˜๋ฉด์„œ ์ง€์‹œ๋ฌธ๋งŒ ์ถ”๊ฐ€๋กœ ์ฃผ์ž…ํ•œ๋‹ค. ๋ณ„๋„์˜ ๋ฉ”์‹œ์ง€ ๋ฃจํ”„๋ฅผ ๋งŒ๋“ค์ง€ ์•Š๋Š”๋‹ค.

Agent Skill๊ณผ MCP

MCP์™€ Agent Skill๋„ ์—ญํ• ์ด ๋‹ค๋ฅด๋‹ค.

MCP๋Š” ์™ธ๋ถ€ ์‹œ์Šคํ…œ๊ณผ์˜ ์—ฐ๋™์ด ํ•„์š”ํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. ๋ธŒ๋ผ์šฐ์ €, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, ์™ธ๋ถ€ API์ฒ˜๋Ÿผ ์—์ด์ „ํŠธ ๋‚ด๋ถ€์—์„œ ์ง์ ‘ ์‹คํ–‰ํ•˜๊ธฐ ์–ด๋ ค์šด ๋„๊ตฌ๊ฐ€ ํ•„์š”ํ•  ๋•Œ ์ ํ•ฉํ•˜๋‹ค. MCP ์„œ๋ฒ„๋Š” ์™ธ๋ถ€ ํ”„๋กœ์„ธ์Šค์—์„œ ์‹คํ–‰๋˜๊ณ  ํ”„๋กœํ† ์ฝœ์„ ํ†ตํ•ด ํ†ต์‹ ํ•œ๋‹ค. ๊ฐ™์€ ๋„๊ตฌ๋ฅผ ์—ฌ๋Ÿฌ ์—์ด์ „ํŠธ์—์„œ ๊ณต์œ ํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

Agent Skill์€ ๋„๊ตฌ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•์„ ๊ฐ€๋ฅด์น  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. MCP๊ฐ€ "์–ด๋–ค ๋„๊ตฌ๊ฐ€ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ์ง€"๋ฅผ ์•Œ๋ ค์ค€๋‹ค๋ฉด Skill์€ "๊ทธ ๋„๊ตฌ๋ฅผ ์–ด๋–ป๊ฒŒ ํšจ๊ณผ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š”์ง€"๋ฅผ ๊ฐ€๋ฅด์นœ๋‹ค. ์‹ค์ œ๋กœ mcp-builder๋ผ๋Š” Skill์€ MCP ์„œ๋ฒ„๋ฅผ ๋” ์ž˜ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ์ง€์‹์„ ์ œ๊ณตํ•œ๋‹ค. Skill์ด MCP๋ฅผ ๋Œ€์ฒดํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๋ณด์™„ํ•˜๋Š” ๊ด€๊ณ„๋‹ค.

๋งˆ๋ฌด๋ฆฌ

์ง€๊ธˆ๊นŒ์ง€ Agent Skill์ด Tool Use ์œ„์—์„œ ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๋Š”์ง€ ์•Œ์•„๋ณด์•˜๋‹ค.

Skill ๋„๊ตฌ๊ฐ€ tools ๋ฐฐ์—ด์— ์ •์˜๋˜์–ด ์žˆ๊ณ  tool_use โ†’ tool_result ์‚ฌ์ดํด์„ ๊ฑฐ์นœ๋‹ค. ์ด๋Š” Subagent(Task ๋„๊ตฌ)๋‚˜ MCP(mcp__xxx ๋„๊ตฌ)์™€ ๋™์ผํ•œ ํŒจํ„ด์ด๋‹ค.

tools ๋ฐฐ์—ด
โ”œโ”€โ”€ ๋‚ด์žฅ ๋„๊ตฌ (Bash, Read, Glob...)
โ”‚   โ””โ”€โ”€ Host ๋‚ด๋ถ€์—์„œ ์ง์ ‘ ์‹คํ–‰
โ”‚
โ”œโ”€โ”€ Task ๋„๊ตฌ (Subagent)
โ”‚   โ””โ”€โ”€ ์ƒˆ ๋ฉ”์‹œ์ง€ ๋ฃจํ”„์—์„œ LLM ์‘๋‹ต ๋ฐ˜ํ™˜
โ”‚
โ”œโ”€โ”€ mcp__xxx ๋„๊ตฌ (MCP)
โ”‚   โ””โ”€โ”€ ์™ธ๋ถ€ ์„œ๋ฒ„์˜ ์‹คํ–‰ ๊ฒฐ๊ณผ ๋ฐ˜ํ™˜
โ”‚
โ””โ”€โ”€ Skill ๋„๊ตฌ (Skills)
    โ””โ”€โ”€ SKILL.md ๋กœ๋“œ ํ›„ ํ›„์† ๋„๊ตฌ ์‚ฌ์šฉ ์•ˆ๋‚ด

Agent Skill์€ ๋‹ค๋ฅธ ๋„๊ตฌ ์‚ฌ์šฉ์„ ์•ˆ๋‚ดํ•˜๋Š” ๋ฉ”ํƒ€ ๋„๊ตฌ๋‹ค. tool_result๋กœ ์ง€์‹œ๋ฌธ์„ ์ปจํ…์ŠคํŠธ์— ์ฃผ์ž…ํ•˜๊ณ  ์ดํ›„ Bash, Read ๊ฐ™์€ ๋‹ค๋ฅธ ๋„๊ตฌ๋“ค์˜ ์‚ฌ์šฉ์„ ์•ˆ๋‚ดํ•œ๋‹ค. ๊ฒฐ๊ตญ Skill โ†’ Bash โ†’ Read... ํ˜•ํƒœ์˜ ๋„๊ตฌ ์ฒด์ด๋‹์ด ๋ฐœ์ƒํ•œ๋‹ค.

Subagent์™€ MCP๊ฐ€ "๋ฌด์—‡์„ ํ•  ์ˆ˜ ์žˆ๋Š”๊ฐ€"๋ฅผ ํ™•์žฅํ•œ๋‹ค๋ฉด Skills๋Š” "์–ด๋–ป๊ฒŒ ์ž˜ ํ•  ๊ฒƒ์ธ๊ฐ€"๋ฅผ ํ™•์žฅํ•œ๋‹ค.

Read more โ†’
7

Day 25 of Advent of Compiler Optimisations!

We've reached the end of this journey through compiler magicโ€”from simple arithmetic tricks to mind-bending loop transformations. Thank you for following along! Whether you celebrate Christmas or just enjoy a good compiler optimisation, I hope you've discovered something that made you see your code differently.

Read more: xania.org/202512/25-thank-you
Watch: youtu.be/N1sRfYwzmso

0
0
0

ใ‚‚ใ†้ ญ็—›ใƒผใ‚‹ใฎใ€Œใ‹ใชใ‚Š็—›ใ„ใ€ใŒ24%ใจใ‹ใซใชใฃใฆใฆไบบใ€…ใฏๅๅˆ†่‹ฆใ—ใ‚“ใงใพใ™ใ‚ˆ

1
1
1
0
0
1
0

ไปŠ12x20ใฎๅคงๅˆคใ‚ซใƒกใƒฉใงใƒญใƒƒใ‚ญใƒผๅฑฑ่„ˆใฎๅ†™็œŸๆ’ฎใฃใฆใ‚‹ใคใ‚ˆใคใ‚ˆใŠใ˜ใ•ใ‚“ใฎๅ‹•็”ป่ฆณใฆใ‚‹

0

ๆš–ๅ†ฌใจใ‹ๅŽณๅ†ฌใจใ‹ใ˜ใ‚ƒใชใใฆไธกๆ–นใซๆฅต็ซฏใซใชใ‚‹ใฎใฏใ•ใ‚ใ€้•ใ†ใ˜ใ‚ƒใ‚“ใ€ใกใ‚‡ใฃใจ

1
0
1
0
2
0
0
0
0

ไป•ไบ‹ใ‚’ๆŠผใ—ไป˜ใ‘ใ‚‰ใ‚ŒใŒใกใชๅ‹‡่€…ใ€Œใฏใ„ใฏใ„ใ€ใฉใ†ใ›็งใŒใ‚„ใ‚Œใฐใ„ใ„ใ‚“ใงใ—ใ‚‡ใ†โ€ฆใ€

1
1
0

ๆ—ฅไธญไบคๆตๅ†ทๅป ๆ—ฅๅฐๆดป่บ ๅนดๆœซๅนดๅˆๆœ‰็ด„30ๅๆ—ฅๆœฌ่ญฐๅ“ก่จชๅฐ
rfi.my/CIPj

ๅœจไปŠๅนดๅนดๅบ•ๅ’Œๆ˜Žๅนดๅนดๅˆ,ๆ—ฅๆœฌ่ญฐๅ“ก่จชๅฐๆดป่บ,่‡ชๆฐ‘้ปจๆ‰€ๅฑฌๅœ‹ๆœƒ่ญฐๅ“กๆŽฅ้€ฃ่จชๅ•ๅฐ็ฃ;ๅฆไธ€ๆ–น้ข,ๆ—ฅๆœฌ่ˆ‡ไธญๅœ‹็š„ไบคๆตๅป้™ทๅ…ฅๅœๆปฏใ€‚ไธญๅœ‹ๅฐ้ซ˜ๅธ‚ๆ—ฉ่‹—้ฆ–็›ธๅœจๅœ‹ๆœƒ็š„็ญ”่พฏๅๆ‡‰ๆ„ˆ็™ผๅผท็ƒˆ,ๅŽŸๆœฌไฝœ็‚บๆ”ฟๅบœ้–“ๅค–ไบค่ฃœๅ……็š„ๅฐ่ฏ่ญฐๅ“กๅค–ไบคไธ€็ฑŒ่Žซๅฑ•ใ€‚

0
0
2
0
0
1
์ด๋ฒˆ ํฌ๋ฆฌ์Šค๋งˆ์Šค๋Š” ๊ฐ€์กฑ์ด๋ž‘ ์‹ธ์šฐ์ง€๋Š” ์•Š์•˜์ง€๋งŒ, ๋งˆ๊ฐ€ ๊ผˆ๋‚˜, ์•ˆ ์ข‹์€ ์ผ๋งŒ ์—ฐ๋‹ฌ์•„์„œ ํ„ฐ์กŒ๋‹ค.
1
0
1
0

์•ˆ๋…•ํ•˜์‹ญ๋‹ˆ๊นŒ.
์ปค๋ฏธ์…˜ ์ž‘์—…ํ•ด์ฃผ์‹ค ๋ถ„ 2๋ถ„ ๋ชจ์‹ญ๋‹ˆ๋‹ค. ์บ๋ฆญํ„ฐ ๋ณต์žฅ ๋””์ž์ธ 1๋ถ„, ๋ฐ˜์‹  ์ปฌ๋Ÿฌ ์ผ๋Ÿฌ์ŠคํŠธ 1๋ถ„ ๋ชจ์‹ญ๋‹ˆ๋‹ค.
์ž์„ธํ•œ ์ž‘์—… ๋‚ด์šฉ์€ ์ฒจ๋ถ€๋œ ์ด๋ฏธ์ง€๋ฅผ ์ฐธ๊ณ ํ•ด ์ฃผ์‹ญ์‹œ์˜ค.
๊ด€์‹ฌ ์žˆ์œผ์‹œ๋‹ค๋ฉด 2025-12-28(์ผ) 13์‹œ๊นŒ์ง€ DM์ด๋‚˜ ๋‹ต๋ฉ˜์…˜๋“ฑ์œผ๋กœ ๊ฐ€๊ฒฉ, ์ƒ˜ํ”Œ ์ฐธ๊ณ ์šฉ ๋งํฌ์™€ ํ•จ๊ป˜ ์‘๋‹ต ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.
๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

0
0
0
1

Lionhairdino shared the below article:

Agent Skill๋„ Tool Use๋กœ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

์ž์†ํ‚ด @jasonkim@hackers.pub

Agent Skill์€ Anthropic์ด 2025๋…„ 10์›”์— ๋ฐœํ‘œํ•œ ๊ธฐ๋Šฅ์ด๋‹ค. ๋ฐœํ‘œ ์งํ›„๋ถ€ํ„ฐ ํญ๋ฐœ์ ์ธ ๋ฐ˜์‘์„ ์–ป์–ด ์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ ๋‹ค์–‘ํ•œ ์ข…๋ฅ˜์˜ Skill์ด ๋งŒ๋“ค์–ด์กŒ๋‹ค. 2025๋…„ 12์›” 18์ผ์— Anthropic์€ Agent Skills๋ฅผ ๋…๋ฆฝ์ ์ธ ์˜คํ”ˆ ์Šคํƒ ๋‹ค๋“œ๋กœ ๋ฐœํ‘œํ–ˆ๊ณ  ์—ฌ๋Ÿฌ ์„œ๋น„์Šค๋“ค์ด Skill์„ ์ง€์›ํ•˜๊ณ  ์žˆ๋‹ค.

์ด๋ฒˆ ๊ธ€์—์„œ๋Š” Agent Skill์ด Tool Use ์œ„์—์„œ ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๋Š”์ง€ ์•Œ์•„๋ณธ๋‹ค.

Agent Skill์ด๋ž€?

Agent Skill์€ ์—์ด์ „ํŠธ๊ฐ€ ํŠน์ • ์ž‘์—…์„ ๋” ์ •ํ™•ํ•˜๊ณ  ํšจ์œจ์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์‹œ๋ฌธ(instructions), ์Šคํฌ๋ฆฝํŠธ(scripts), ๋ฆฌ์†Œ์Šค(resources) ๋“ฑ์„ ๋™์ ์œผ๋กœ ๋ถˆ๋Ÿฌ์˜ฌ ์ˆ˜ ์žˆ๊ฒŒ ๊ตฌ์„ฑ๋œ ํด๋”๋‹ค.

์—์ด์ „ํŠธ๋Š” ์ ์  ๋” ๋งŽ์€ ๊ฒƒ์„ ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์‹ค์ œ ์—…๋ฌด๋ฅผ ์•ˆ์ •์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•˜๋ ค๋ฉด ์ ˆ์ฐจ์  ์ง€์‹๊ณผ ์กฐ์ง๋ณ„ ๋งฅ๋ฝ์ด ํ•„์š”ํ•˜๋‹ค. PDF ์–‘์‹์„ ์ฑ„์šฐ๋Š” ๋ฐฉ๋ฒ•, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ์•ˆ์ „ํ•˜๊ฒŒ ์ˆ˜ํ–‰ํ•˜๋Š” ์ˆœ์„œ, ๋ธŒ๋ผ์šฐ์ € ์ž๋™ํ™”์˜ ๋ฒ ์ŠคํŠธ ํ”„๋ž™ํ‹ฐ์Šค ๊ฐ™์€ ๊ฒƒ๋“ค์ด๋‹ค. ์ด๋Ÿฐ ์ง€์‹์„ ๋งค๋ฒˆ ํ”„๋กฌํ”„ํŠธ์— ๋ชจ๋‘ ์ž‘์„ฑํ•˜๋ฉด ์ปจํ…์ŠคํŠธ๋ฅผ ๋‚ญ๋น„ํ•˜๊ฒŒ ๋˜๊ณ  ์ผ๊ด€์„ฑ๋„ ๋–จ์–ด์ง„๋‹ค.

Agent Skill์€ ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋“ค์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ž‘์—…์— ํ•„์š”ํ•œ ์ง€์‹์„ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋‹จ์œ„๋กœ ํŒจํ‚ค์ง•ํ•˜๊ณ  ํ•„์š”ํ•  ๋•Œ๋งŒ ๋™์ ์œผ๋กœ ๋กœ๋“œํ•œ๋‹ค.

ํšจ์œจ์ ์ธ ์ปจํ…์ŠคํŠธ ๊ด€๋ฆฌ ๋ฐฉ๋ฒ•

Agent Skill์€ ์ ์ง„์  ๊ณต๊ฐœ(Progressive Disclosure) ํŒจํ„ด์œผ๋กœ ์ปจํ…์ŠคํŠธ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•œ๋‹ค. ์ ์ง„์  ๊ณต๊ฐœ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋‹จ๊ณ„๋กœ ๊ตฌ์„ฑ๋œ๋‹ค.

์ฒซ ๋ฒˆ์งธ ๋‹จ๊ณ„: ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ๋กœ๋“œ

์—์ด์ „ํŠธ๊ฐ€ ์‹œ์ž‘ํ•  ๋•Œ ๋ชจ๋“  Skill์˜ name๊ณผ description๋งŒ ๋กœ๋“œํ•œ๋‹ค. ์ด ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋Š” Claude๊ฐ€ ๊ฐ Skill์„ ์–ธ์ œ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š”์ง€ ํŒ๋‹จํ•  ์ˆ˜ ์žˆ์„ ๋งŒํผ์˜ ์ •๋ณด๋งŒ ์ œ๊ณตํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด PDF Skill์€ "PDF ํŒŒ์ผ์—์„œ ํ…์ŠคํŠธ ์ถ”์ถœ, ํผ ์ฑ„์šฐ๊ธฐ, ๋ฌธ์„œ ๋ณ‘ํ•ฉ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค"๋Š” ์„ค๋ช…๋งŒ ์‹œ์Šคํ…œ ํ”„๋กฌํ”„ํŠธ์— ํฌํ•จ๋œ๋‹ค.

๋‘ ๋ฒˆ์งธ ๋‹จ๊ณ„: SKILL.md ์ „์ฒด ๋กœ๋“œ

Claude๊ฐ€ ํ˜„์žฌ ์ž‘์—…์— ํ•ด๋‹น Skill์ด ๊ด€๋ จ ์žˆ๋‹ค๊ณ  ํŒ๋‹จํ•˜๋ฉด ์ „์ฒด SKILL.md๋ฅผ ์ปจํ…์ŠคํŠธ์— ๋กœ๋“œํ•œ๋‹ค. ์ด ๋‹จ๊ณ„์—์„œ ์ƒ์„ธํ•œ ์ง€์‹œ๋ฌธ์ด ์ถ”๊ฐ€๋œ๋‹ค. ๊ถŒ์žฅ ํฌ๊ธฐ๋Š” 5000 ํ† ํฐ ๋ฏธ๋งŒ์ด๋‹ค.

์„ธ ๋ฒˆ์งธ ๋‹จ๊ณ„ ์ด์ƒ: ์ถ”๊ฐ€ ํŒŒ์ผ ์˜จ๋””๋งจ๋“œ ๋กœ๋“œ

Skill์ด ๋ณต์žกํ•ด์ง€๋ฉด ๋ชจ๋“  ๋‚ด์šฉ์„ SKILL.md ํ•˜๋‚˜์— ๋‹ด๊ธฐ ์–ด๋ ค์›Œ์ง„๋‹ค. ์ด๋Ÿฐ ๊ฒฝ์šฐ references/, scripts/, assets/ ํด๋”์— ์ถ”๊ฐ€ ํŒŒ์ผ์„ ๋ฒˆ๋“คํ•˜๊ณ  SKILL.md์—์„œ ์ฐธ์กฐํ•œ๋‹ค. Claude๋Š” ํ•„์š”ํ•  ๋•Œ๋งŒ ์ด ํŒŒ์ผ๋“ค์„ ํƒ์ƒ‰ํ•˜๊ณ  ๋กœ๋“œํ•œ๋‹ค.

์ด ํŒจํ„ด์˜ ์žฅ์ ์€ "ํ•„์š”ํ•  ๋•Œ๋งŒ ํ•„์š”ํ•œ ๋งŒํผ"์ด๋‹ค. ๋ชจ๋“  Skill์˜ ์ „์ฒด ์ง€์‹œ๋ฌธ์„ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋กœ๋“œํ•˜๋ฉด ์ปจํ…์ŠคํŠธ๊ฐ€ ๊ธˆ๋ฐฉ ์†Œ์ง„๋œ๋‹ค. ์ ์ง„์  ๊ณต๊ฐœ๋Š” ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ฉด์„œ๋„ ์—์ด์ „ํŠธ๊ฐ€ ์ ์ ˆํ•œ ์‹œ์ ์— ์ ์ ˆํ•œ Skill์„ ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•œ๋‹ค.

Agent Skill์˜ ๊ตฌ์กฐ

์ผ๋ฐ˜์ ์ธ Skill์˜ ๊ตฌ์กฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

skill-name/
โ”œโ”€โ”€ SKILL.md           # ํ•„์ˆ˜: ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ + ์ง€์‹œ๋ฌธ
โ”œโ”€โ”€ scripts/           # ์„ ํƒ: ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ์ฝ”๋“œ
โ”œโ”€โ”€ references/        # ์„ ํƒ: ์ถ”๊ฐ€ ๋ฌธ์„œ
โ””โ”€โ”€ assets/            # ์„ ํƒ: ํ…œํ”Œ๋ฆฟ, ๋ฆฌ์†Œ์Šค

SKILL.md๋งŒ ํ•„์ˆ˜์ด๊ณ  ๋‚˜๋จธ์ง€๋Š” ๋ชจ๋‘ ์„ ํƒ์ด๋‹ค. ๋‹จ์ˆœํ•œ Skill์€ SKILL.md ํ•˜๋‚˜๋งŒ์œผ๋กœ ๊ตฌ์„ฑ๋  ์ˆ˜ ์žˆ๊ณ  ๋ณต์žกํ•œ Skill์€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์Šคํฌ๋ฆฝํŠธ์™€ ์ฐธ์กฐ ๋ฌธ์„œ๋ฅผ ํฌํ•จํ•  ์ˆ˜ ์žˆ๋‹ค.

ํ•„์ˆ˜์š”์†Œ์ธ SKILL.md๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํฌ๋งท์œผ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค.

---
name: pdf-processing
description: Extract text and tables from PDF files, fill forms, merge documents.
license: Apache-2.0
compatibility: Designed for Claude Code
metadata:
  author: example-org
  version: "1.0"
allowed-tools: Bash(git:*) Read
---

# PDF Processing

## When to use this skill
Use this skill when the user needs to work with PDF files...

## How to extract text
1. Use pdfplumber for text extraction...

SKILL.md๋Š” YAML frontmatter์™€ ๋งˆํฌ๋‹ค์šด ๋ณธ๋ฌธ์œผ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค. YAML frontmatter์—๋Š” name๊ณผ description์ด ํ•„์ˆ˜๋กœ ํฌํ•จ๋˜์–ด์•ผ ํ•œ๋‹ค. name์€ ์ตœ๋Œ€ 64์ž์˜ ์†Œ๋ฌธ์ž์™€ ์ˆซ์ž ๊ทธ๋ฆฌ๊ณ  ํ•˜์ดํ”ˆ์œผ๋กœ๋งŒ ๊ตฌ์„ฑ๋˜๋ฉฐ ํ•˜์ดํ”ˆ์œผ๋กœ ์‹œ์ž‘ํ•˜๊ฑฐ๋‚˜ ๋๋‚  ์ˆ˜ ์—†๋‹ค. description์€ ์ตœ๋Œ€ 1024์ž๋กœ ์ด Skill์ด ๋ฌด์—‡์„ ํ•˜๋Š”์ง€ ์–ธ์ œ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š”์ง€ ์„ค๋ช…ํ•œ๋‹ค.

license, compatibility, metadata, allowed-tools๋Š” ์„ ํƒ ํ•„๋“œ๋‹ค. ๊ฐ ์„ ํƒ ํ•„๋“œ์˜ ์—ญํ• ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  • license: ๋ผ์ด์„ ์Šค ์ด๋ฆ„ ๋˜๋Š” ๋ฒˆ๋“ค๋œ ๋ผ์ด์„ ์Šค ํŒŒ์ผ์— ๋Œ€ํ•œ ์ฐธ์กฐ๋ฅผ ๋ช…์‹œํ•œ๋‹ค.
  • compatibility: ์ตœ๋Œ€ 500์ž. ํ™˜๊ฒฝ ์š”๊ตฌ์‚ฌํ•ญ์„ ๋ช…์‹œํ•œ๋‹ค. ์˜๋„ํ•œ ์ œํ’ˆ, ํ•„์š”ํ•œ ์‹œ์Šคํ…œ ํŒจํ‚ค์ง€, ๋„คํŠธ์›Œํฌ ์ ‘๊ทผ ํ•„์š” ์—ฌ๋ถ€ ๋“ฑ์„ ๊ธฐ์ˆ ํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด "Designed for Claude Code" ๋˜๋Š” "Requires git, docker, jq, and access to the internet" ๊ฐ™์€ ํ˜•ํƒœ๋กœ ์ž‘์„ฑํ•œ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ Skill์€ ์ด ํ•„๋“œ๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š๋‹ค.
  • metadata: ์ž„์˜์˜ ํ‚ค-๊ฐ’ ์Œ์„ ์ €์žฅํ•˜๋Š” ๋งต์ด๋‹ค. author, version ๊ฐ™์€ ์ถ”๊ฐ€ ์†์„ฑ์„ ๋‹ด๋Š”๋‹ค.
  • allowed-tools: ๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ๋ถ„๋œ ์‚ฌ์ „ ์Šน์ธ ๋„๊ตฌ ๋ชฉ๋ก์ด๋‹ค. ์‹คํ—˜์  ๊ธฐ๋Šฅ์œผ๋กœ ์—์ด์ „ํŠธ ๊ตฌํ˜„์— ๋”ฐ๋ผ ์ง€์› ์—ฌ๋ถ€๊ฐ€ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ๋‹ค.

YAML frontmatter ์•„๋ž˜์˜ ๋งˆํฌ๋‹ค์šด ๋ณธ๋ฌธ์ด ์‹ค์ œ ์ง€์‹œ๋ฌธ์ด ๋œ๋‹ค. ์ด ์ง€์‹œ๋ฌธ์€ Skill์ด ํ™œ์„ฑํ™”๋  ๋•Œ ์ปจํ…์ŠคํŠธ์— ์ฃผ์ž…๋˜์–ด ์—์ด์ „ํŠธ์˜ ํ–‰๋™์„ ์•ˆ๋‚ดํ•œ๋‹ค.

์ฒซ๋ฒˆ์งธ ๋‹จ๊ณ„์—์„œ๋Š” frontmatter์˜ name๊ณผ description๋งŒ ์‚ฌ์šฉ๋œ๋‹ค. ์ด ์ •๋ณด๋กœ ์—์ด์ „ํŠธ๋Š” ์–ธ์ œ ์ด Skill์„ ํ™œ์„ฑํ™”ํ•ด์•ผ ํ•˜๋Š”์ง€ ํŒ๋‹จํ•œ๋‹ค. ๋‘๋ฒˆ์งธ ๋‹จ๊ณ„์—์„œ SKILL.md ์ „์ฒด๊ฐ€ ๋กœ๋“œ๋˜๊ณ  ์„ธ๋ฒˆ์งธ ๋‹จ๊ณ„์—์„œ ๋งˆํฌ๋‹ค์šด ๋ณธ๋ฌธ์˜ ์ง€์‹œ๋ฌธ์— ๋”ฐ๋ผ scripts/ ํด๋”์˜ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๊ฑฐ๋‚˜ references/ ํด๋”์˜ ์ถ”๊ฐ€ ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•œ๋‹ค.

dev-browser๋กœ ์‚ดํŽด๋ณด๋Š” ์‹ค์ œ Skill ๋™์ž‘

์ด์ œ Skill์ด ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๋Š”์ง€ ์‹ค์ œ ์˜ˆ์‹œ๋ฅผ ํ†ตํ•ด ์‚ดํŽด๋ณด์ž. ์ด ์˜ˆ์‹œ๋Š” Use Claude Code with Chrome์— ์žˆ๋Š” ์‚ฌ์šฉ ์˜ˆ์‹œ๋ฅผ dev-browser Skill์„ ์‚ฌ์šฉํ•ด ํ…Œ์ŠคํŠธํ•˜๊ณ  ๋ถ„์„ํ•œ ๊ฒƒ์ด๋‹ค.

์‚ฌ์šฉํ•œ ํ”„๋กฌํ”„ํŠธ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

Go to code.claude.com/docs, click on the search box,
type "hooks", and tell me what results appear

์ด ์š”์ฒญ์€ tools ๋ฐฐ์—ด๊ณผ ํ•จ๊ป˜ ์ „์†ก๋˜๋ฉฐ Skill๋„ tools ๋ฐฐ์—ด์— ํฌํ•จ๋˜์–ด ์žˆ๋‹ค. Claude API ์š”์ฒญ ๊ตฌ์กฐ์— ๋Œ€ํ•ด์„œ๋Š” ์ด์ „ ๊ธ€์„ ์ฐธ๊ณ ํ•œ๋‹ค.

{
  "name": "Skill",
  "description": "Execute a skill within the main conversation\n\n<skills_instructions>...",
  "input_schema": {
    "type": "object",
    "properties": {
      "skill": {
        "type": "string",
        "description": "The skill name. E.g., \"commit\", \"review-pr\", or \"pdf\""
      },
      "args": {
        "type": "string",
        "description": "Optional arguments for the skill"
      }
    },
    "required": ["skill"]
  }
}

Skill ๋„๊ตฌ์˜ description์—๋Š” <available_skills> ์„น์…˜์ด ํฌํ•จ๋˜์–ด ์žˆ์–ด ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  Skill์˜ ๋ชฉ๋ก๊ณผ ์„ค๋ช…์ด ๋“ค์–ด์žˆ๋‹ค.

<available_skills>
<skill>
<n>dev-browser:dev-browser</n>
<description>
Browser automation with persistent page state. Use when users ask to 
navigate websites, fill forms, take screenshots, extract web data, 
test web apps, or automate browser workflows. Trigger phrases include 
"go to [url]", "click on", "fill out the form", "take a screenshot"...
</description>
<location>plugin</location>
</skill>
</available_skills>

์‚ฌ์šฉ์ž์˜ ์š”์ฒญ "Go to code.claude.com/docs, click on the search box..."๊ฐ€ dev-browser์˜ description์— ์žˆ๋Š” ํŠธ๋ฆฌ๊ฑฐ ํ”„๋ ˆ์ด์ฆˆ "go to [url]", "click on"๊ณผ ๋งค์นญ๋œ๋‹ค. ์—์ด์ „ํŠธ๋Š” ์ด ๋งค์นญ์„ ๋ฐœ๊ฒฌํ•˜๊ณ  Skill ๋„๊ตฌ๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค.

{
  "type": "tool_use",
  "id": "toolu_017StpNdwovc4Lm8tGfK9XnA",
  "name": "Skill",
  "input": {
    "skill": "dev-browser:dev-browser",
    "args": "Go to code.claude.com/docs, click on the search box, type \"hooks\", and tell me what results appear"
  }
}

skill ํ•„๋“œ์— plugin name์„ ํฌํ•จํ•œ qualified name(plugin-name:skill-name)์ด ์‚ฌ์šฉ๋˜๊ณ  args์—๋Š” ์‚ฌ์šฉ์ž์˜ ์›๋ณธ ์š”์ฒญ์ด ๊ทธ๋Œ€๋กœ ์ „๋‹ฌ๋˜์—ˆ๋‹ค.

Skill ๋„๊ตฌ์˜ tool_result๋กœ SKILL.md ์ „์ฒด ๋‚ด์šฉ์ด ๋ฐ˜ํ™˜๋œ๋‹ค.

Launching skill: dev-browser:dev-browser

Base directory for this skill: /Users/dev-test/.claude/plugins/cache/
dev-browser-marketplace/dev-browser/58c332a7c61a/skills/dev-browser

# Dev Browser Skill

Browser automation that maintains page state across script executions. 
Write small, focused scripts to accomplish tasks incrementally...

## Setup

First, start the dev-browser server using the startup script:

```bash
./skills/dev-browser/server.sh &
```

## Writing Scripts

Execute scripts inline using heredocs:

```bash
cd skills/dev-browser && npx tsx <<'EOF'
import { connect } from "@/client.js";
const client = await connect();
const page = await client.page("homepage");
// Your automation code here
await client.disconnect();
EOF
```

ARGUMENTS: Go to code.claude.com/docs, click on the search box...

tool_result์—๋Š” SKILL.md์— ์žˆ๋Š” ๋ชจ๋“  ์ง€์‹œ๋ฌธ์ด ํฌํ•จ๋˜์–ด ์žˆ๋‹ค. ARGUMENTS์—๋Š” ์›๋ณธ ์‚ฌ์šฉ์ž ์š”์ฒญ์ด ์ฒจ๋ถ€๋˜์–ด ์žˆ์–ด ์—์ด์ „ํŠธ๊ฐ€ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ๋‹ค.

์ด์ œ ์—์ด์ „ํŠธ๋Š” SKILL.md์˜ ์ง€์‹œ๋ฌธ์„ ์ฝ๊ณ  ์ˆœ์„œ๋Œ€๋กœ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. ๋จผ์ € Setup ์„น์…˜์— ๋”ฐ๋ผ ์„œ๋ฒ„๋ฅผ ์‹œ์ž‘ํ•œ๋‹ค.

{
  "type": "tool_use",
  "name": "Bash",
  "input": {
    "command": "cd /Users/dev-test/.claude/plugins/cache/dev-browser-marketplace/dev-browser/58c332a7c61a/skills/dev-browser && ./server.sh &",
    "description": "Start dev-browser server"
  }
}

์„œ๋ฒ„๊ฐ€ ์ค€๋น„๋˜๋ฉด SKILL.md์˜ ์ธ๋ผ์ธ ์ฝ”๋“œ ํ…œํ”Œ๋ฆฟ์„ ์ฐธ๊ณ ํ•˜์—ฌ ๋ธŒ๋ผ์šฐ์ € ์ž๋™ํ™” ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ์‹คํ–‰ํ•œ๋‹ค.

{
  "type": "tool_use",
  "name": "Bash",
  "input": {
    "command": "cd /Users/dev-test/.claude/plugins/cache/dev-browser-marketplace/dev-browser/58c332a7c61a/skills/dev-browser && npx tsx <<'EOF'\nimport { connect, waitForPageLoad } from \"@/client.js\";\n\nconst client = await connect();\nconst page = await client.page(\"claude-docs\");\nawait page.setViewportSize({ width: 1280, height: 800 });\n\nawait page.goto(\"https://docs.anthropic.com/en/docs/claude-code\");\nawait waitForPageLoad(page);\n\nconsole.log(\"Current URL:\", page.url());\nconst snapshot = await client.getAISnapshot(\"claude-docs\");\nconsole.log(snapshot);\n\nawait client.disconnect();\nEOF",
    "description": "Navigate to Claude Code docs"
  }
}

์—์ด์ „ํŠธ๋Š” SKILL.md์˜ ์ฝ”๋“œ ํ…œํ”Œ๋ฆฟ์„ ๊ทธ๋Œ€๋กœ ๋ณต์‚ฌํ•˜์ง€ ์•Š๋Š”๋‹ค. ํ…œํ”Œ๋ฆฟ ๊ตฌ์กฐ(import, connect, heredoc ํŒจํ„ด)๋ฅผ ๋”ฐ๋ฅด๋˜ ์ž‘์—…์— ๋งž๊ฒŒ ์ฆ‰์„์—์„œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•œ๋‹ค. page.goto() URL์ด๋‚˜ selectSnapshotRef() ref ID ๋“ฑ์„ ๋™์ ์œผ๋กœ ๊ฒฐ์ •ํ•œ๋‹ค.

SKILL.md๊ฐ€ ๋ช…์‹œํ•œ Workflow Loop ํŒจํ„ด์— ๋”ฐ๋ผ Write a script โ†’ Run it โ†’ Evaluate โ†’ Decide โ†’ Repeat ๊ณผ์ •์ด ๋ฐ˜๋ณต๋œ๋‹ค. ํŽ˜์ด์ง€ ํƒ์ƒ‰ ์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰ โ†’ ARIA ์Šค๋ƒ…์ƒท ํ™•์ธ โ†’ ๊ฒ€์ƒ‰ ๋ฒ„ํŠผ ํด๋ฆญ โ†’ ๊ฒ€์ƒ‰์–ด ์ž…๋ ฅ โ†’ ๊ฒฐ๊ณผ ํ™•์ธ ์ˆœ์„œ๋กœ ์ง„ํ–‰๋œ๋‹ค.

์ „์ฒด ํ๋ฆ„์„ ์ •๋ฆฌํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

User: "Go to code.claude.com/docs... Use dev-browser"
        โ”‚
        โ–ผ
LLM: available_skills์—์„œ ๋งค์นญ ๋ฐœ๊ฒฌ
     description์— "go to", "click on" ํŠธ๋ฆฌ๊ฑฐ ํฌํ•จ
        โ”‚
        โ–ผ
tool_use: Skill
  skill: "dev-browser:dev-browser"
  args: "Go to code.claude.com/docs..."
        โ”‚
        โ–ผ
tool_result: SKILL.md ์ „์ฒด + Base directory + ARGUMENTS
        โ”‚
        โ–ผ
LLM: SKILL.md ์ง€์‹œ๋ฌธ ํ•ด์„
     "First, start the dev-browser server"
        โ”‚
        โ–ผ
tool_use: Bash (./server.sh &)  โ”€โ”€โ–บ tool_result: "Server ready"
        โ”‚
        โ–ผ
LLM: heredoc ํ…œํ”Œ๋ฆฟ ์ฐธ๊ณ ํ•˜์—ฌ ์Šคํฌ๋ฆฝํŠธ ์ž‘์„ฑ
     page.goto(), getAISnapshot() ํ™œ์šฉ
        โ”‚
        โ–ผ
tool_use: Bash (npx tsx <<'EOF'...)
        โ”‚
        โ–ผ
tool_result: snapshot ์ถœ๋ ฅ (ARIA ํŠธ๋ฆฌ)
        โ”‚
        โ–ผ
(๋ฐ˜๋ณต: ํด๋ฆญ, ์ž…๋ ฅ, ์Šคํฌ๋ฆฐ์ƒท ๋“ฑ)

Skill ๋„๊ตฌ์˜ ์—ญํ• ์€ SKILL.md ํŒŒ์ผ ๊ฒฝ๋กœ๋ฅผ ํ•ด์„ํ•˜๊ณ  ์ „์ฒด ๋‚ด์šฉ์„ tool_result๋กœ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฒƒ๋ฟ์ด๋‹ค. ์‹ค์ œ ๋Šฅ๋ ฅ์€ ์—์ด์ „ํŠธ๊ฐ€ SKILL.md๋ฅผ ์ฝ๊ณ  ์ง€์‹œ๋ฌธ์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ๋„๊ตฌ๋“ค์„ ์‚ฌ์šฉํ•˜๋ฉด์„œ ๋ฐœํ˜„๋œ๋‹ค.

Agent Skill๊ณผ Subagent

Subagent์™€ Agent Skill์€ ์„œ๋กœ ๋‹ค๋ฅธ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•œ๋‹ค.

Subagent๋Š” ์ปจํ…์ŠคํŠธ ๋ถ„๋ฆฌ๊ฐ€ ํ•„์š”ํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. ํƒ์ƒ‰์ด๋‚˜ ๋ถ„์„ ๊ณผ์ •์ด ๋ฉ”์ธ ๋Œ€ํ™”๋ฅผ ์˜ค์—ผ์‹œํ‚ค๋ฉด ์•ˆ ๋  ๋•Œ ์ ํ•ฉํ•˜๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ฝ”๋“œ๋ฒ ์ด์Šค ์ „์ฒด๋ฅผ ํƒ์ƒ‰ํ•ด์•ผ ํ•˜๋Š”๋ฐ ๊ทธ ๊ณผ์ •์˜ ๋ชจ๋“  ํŒŒ์ผ ๋‚ด์šฉ์ด ๋ฉ”์ธ ์ปจํ…์ŠคํŠธ์— ์Œ“์ด๋ฉด ๊ธˆ๋ฐฉ ์ปจํ…์ŠคํŠธ๊ฐ€ ์†Œ์ง„๋œ๋‹ค. Subagent๋Š” ๋…๋ฆฝ์ ์ธ ์ปจํ…์ŠคํŠธ ์œˆ๋„์šฐ์—์„œ ์ž‘์—…ํ•˜๊ณ  ๊ฒฐ๊ณผ๋งŒ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ๋˜ํ•œ ๊ฐ€๋ฒผ์šด ๋ชจ๋ธ(Haiku)๋กœ ๋น ๋ฅด๊ฒŒ ์ฒ˜๋ฆฌํ•˜๊ฑฐ๋‚˜ ๋ฌด๊ฑฐ์šด ๋ชจ๋ธ(Opus)๋กœ ๊นŠ์ด ๋ถ„์„ํ•˜๋Š” ์„ ํƒ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

Agent Skill์€ ์ ˆ์ฐจ์  ์ง€์‹์ด ํ•„์š”ํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. PDF ํผ ์ฑ„์šฐ๊ธฐ๋‚˜ ๋ธŒ๋ผ์šฐ์ € ์ž๋™ํ™”์ฒ˜๋Ÿผ "์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ•˜๋Š”์ง€"์— ๋Œ€ํ•œ ๋ฒ ์ŠคํŠธ ํ”„๋ž™ํ‹ฐ์Šค๊ฐ€ ์žˆ๋Š” ์ž‘์—…์— ์ ํ•ฉํ•˜๋‹ค. Skill์€ ํ˜„์žฌ ์ปจํ…์ŠคํŠธ๋ฅผ ๊ณต์œ ํ•˜๋ฉด์„œ ์ง€์‹œ๋ฌธ๋งŒ ์ถ”๊ฐ€๋กœ ์ฃผ์ž…ํ•œ๋‹ค. ๋ณ„๋„์˜ ๋ฉ”์‹œ์ง€ ๋ฃจํ”„๋ฅผ ๋งŒ๋“ค์ง€ ์•Š๋Š”๋‹ค.

Agent Skill๊ณผ MCP

MCP์™€ Agent Skill๋„ ์—ญํ• ์ด ๋‹ค๋ฅด๋‹ค.

MCP๋Š” ์™ธ๋ถ€ ์‹œ์Šคํ…œ๊ณผ์˜ ์—ฐ๋™์ด ํ•„์š”ํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. ๋ธŒ๋ผ์šฐ์ €, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, ์™ธ๋ถ€ API์ฒ˜๋Ÿผ ์—์ด์ „ํŠธ ๋‚ด๋ถ€์—์„œ ์ง์ ‘ ์‹คํ–‰ํ•˜๊ธฐ ์–ด๋ ค์šด ๋„๊ตฌ๊ฐ€ ํ•„์š”ํ•  ๋•Œ ์ ํ•ฉํ•˜๋‹ค. MCP ์„œ๋ฒ„๋Š” ์™ธ๋ถ€ ํ”„๋กœ์„ธ์Šค์—์„œ ์‹คํ–‰๋˜๊ณ  ํ”„๋กœํ† ์ฝœ์„ ํ†ตํ•ด ํ†ต์‹ ํ•œ๋‹ค. ๊ฐ™์€ ๋„๊ตฌ๋ฅผ ์—ฌ๋Ÿฌ ์—์ด์ „ํŠธ์—์„œ ๊ณต์œ ํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

Agent Skill์€ ๋„๊ตฌ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•์„ ๊ฐ€๋ฅด์น  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. MCP๊ฐ€ "์–ด๋–ค ๋„๊ตฌ๊ฐ€ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ์ง€"๋ฅผ ์•Œ๋ ค์ค€๋‹ค๋ฉด Skill์€ "๊ทธ ๋„๊ตฌ๋ฅผ ์–ด๋–ป๊ฒŒ ํšจ๊ณผ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š”์ง€"๋ฅผ ๊ฐ€๋ฅด์นœ๋‹ค. ์‹ค์ œ๋กœ mcp-builder๋ผ๋Š” Skill์€ MCP ์„œ๋ฒ„๋ฅผ ๋” ์ž˜ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ์ง€์‹์„ ์ œ๊ณตํ•œ๋‹ค. Skill์ด MCP๋ฅผ ๋Œ€์ฒดํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๋ณด์™„ํ•˜๋Š” ๊ด€๊ณ„๋‹ค.

๋งˆ๋ฌด๋ฆฌ

์ง€๊ธˆ๊นŒ์ง€ Agent Skill์ด Tool Use ์œ„์—์„œ ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๋Š”์ง€ ์•Œ์•„๋ณด์•˜๋‹ค.

Skill ๋„๊ตฌ๊ฐ€ tools ๋ฐฐ์—ด์— ์ •์˜๋˜์–ด ์žˆ๊ณ  tool_use โ†’ tool_result ์‚ฌ์ดํด์„ ๊ฑฐ์นœ๋‹ค. ์ด๋Š” Subagent(Task ๋„๊ตฌ)๋‚˜ MCP(mcp__xxx ๋„๊ตฌ)์™€ ๋™์ผํ•œ ํŒจํ„ด์ด๋‹ค.

tools ๋ฐฐ์—ด
โ”œโ”€โ”€ ๋‚ด์žฅ ๋„๊ตฌ (Bash, Read, Glob...)
โ”‚   โ””โ”€โ”€ Host ๋‚ด๋ถ€์—์„œ ์ง์ ‘ ์‹คํ–‰
โ”‚
โ”œโ”€โ”€ Task ๋„๊ตฌ (Subagent)
โ”‚   โ””โ”€โ”€ ์ƒˆ ๋ฉ”์‹œ์ง€ ๋ฃจํ”„์—์„œ LLM ์‘๋‹ต ๋ฐ˜ํ™˜
โ”‚
โ”œโ”€โ”€ mcp__xxx ๋„๊ตฌ (MCP)
โ”‚   โ””โ”€โ”€ ์™ธ๋ถ€ ์„œ๋ฒ„์˜ ์‹คํ–‰ ๊ฒฐ๊ณผ ๋ฐ˜ํ™˜
โ”‚
โ””โ”€โ”€ Skill ๋„๊ตฌ (Skills)
    โ””โ”€โ”€ SKILL.md ๋กœ๋“œ ํ›„ ํ›„์† ๋„๊ตฌ ์‚ฌ์šฉ ์•ˆ๋‚ด

Agent Skill์€ ๋‹ค๋ฅธ ๋„๊ตฌ ์‚ฌ์šฉ์„ ์•ˆ๋‚ดํ•˜๋Š” ๋ฉ”ํƒ€ ๋„๊ตฌ๋‹ค. tool_result๋กœ ์ง€์‹œ๋ฌธ์„ ์ปจํ…์ŠคํŠธ์— ์ฃผ์ž…ํ•˜๊ณ  ์ดํ›„ Bash, Read ๊ฐ™์€ ๋‹ค๋ฅธ ๋„๊ตฌ๋“ค์˜ ์‚ฌ์šฉ์„ ์•ˆ๋‚ดํ•œ๋‹ค. ๊ฒฐ๊ตญ Skill โ†’ Bash โ†’ Read... ํ˜•ํƒœ์˜ ๋„๊ตฌ ์ฒด์ด๋‹์ด ๋ฐœ์ƒํ•œ๋‹ค.

Subagent์™€ MCP๊ฐ€ "๋ฌด์—‡์„ ํ•  ์ˆ˜ ์žˆ๋Š”๊ฐ€"๋ฅผ ํ™•์žฅํ•œ๋‹ค๋ฉด Skills๋Š” "์–ด๋–ป๊ฒŒ ์ž˜ ํ•  ๊ฒƒ์ธ๊ฐ€"๋ฅผ ํ™•์žฅํ•œ๋‹ค.

Read more โ†’
7
0
0