சொந்தமாக Agent Skill உருவாக்குவது எப்படி?
உங்கள் Agent Skill-ஐ உருவாக்க SKILL.md கோப்பின் கட்டமைப்பு, செயல்படும் விதத்தை தீர்மானிக்கும் விளக்கம் மற்றும் அதைச் சோதிக்கும் முறைகளை இந்த வழிகாட்டி மூலம் எளிதாகக் கற்றுக்கொள்ளுங்கள்.
ஒரு உண்மையான தோல்வியிலிருந்து உங்கள் சொந்த agent skill-ஐ உருவாக்குதல்
உங்கள் சொந்த agent skill-ஐ உருவாக்குவதற்கான சிறந்த வழி, ஒரு உண்மையான தோல்வியிலிருந்து அதைப் பிரித்தெடுப்பதாகும். உங்கள் coding agent இரண்டு முறை தவறாகச் செய்த ஒரு பணியைக் கண்டறியவும், நீங்கள் இரண்டு முறையும் தட்டச்சு செய்த திருத்தத்தை குறித்துக் கொள்ளவும், அந்தத் திருத்தத்தை agent தானாகவே ஏற்றக்கூடிய ஒரு SKILL.md கோப்பாகச் சேமிக்கவும். அதற்குப் பிறகு உள்ள அனைத்தும் வெறும் நுட்பங்களே: கோப்பின் அமைப்பு மற்றும் அந்த skill எப்போது செயல்பட வேண்டும் என்பதைத் தீர்மானிக்கும் ஒற்றை வரி.
அந்த வரிசை முக்கியமானது. கற்பனையிலிருந்து எழுதப்பட்ட ஒரு skill, உங்களுக்கு ஏற்படாத ஒரு சிக்கலை ஆவணப்படுத்துகிறது, மேலும் அது ஒவ்வொரு session-லும் context-ஐப் பயன்படுத்துகிறது. நீங்கள் கவனித்த ஒரு தோல்வியிலிருந்து பிரித்தெடுக்கப்பட்ட ஒரு skill, அதனுடன் இணைக்கப்பட்ட ஒரு சோதனையுடனேயே வருகிறது: அதே கேள்வியை மீண்டும் கேட்டு, இந்த முறை agent அதைச் சரியாகச் செய்கிறதா என்று பாருங்கள். இந்த வடிவம் உங்களுக்குப் புதியதாக இருந்தால், முதலில் agent skills என்றால் என்ன மற்றும் ஒரு agent அவற்றை எவ்வாறு ஏற்றுகிறது என்பதைப் படித்துவிட்டு, பிறகு வந்து ஒன்றை எழுதுங்கள்.
தவறாகச் செய்யப்பட்ட ஒரு பணியிலிருந்து தொடங்குதல்
ஒருமுறை நடப்பது தற்செயல். இருமுறை நடப்பது ஒரு பாணி (pattern), அந்தப் பாணி ஒரு கோப்பாகச் சேமிக்கப்பட வேண்டியது.
நிஜமான server-களில் மீண்டும் மீண்டும் நிகழும் ஒரு தோல்வி இங்கே உள்ளது. Nginx-ல் reverse proxy block-ஐச் சேர்க்குமாறு agent-இடம் கேட்கிறீர்கள். அது /etc/nginx/conf.d/app.conf-ஐத் திருத்தி, பின் sudo systemctl restart nginx-ஐ இயக்குகிறது. அந்தத் திருத்தத்தில் பிழை (typo) இருப்பதால், Nginx தொடங்க மறுக்கிறது; நீங்கள் அதைச் சரிசெய்யும் வரை தளம் முடங்கிக் கிடக்கும்:
nginx: [emerg] unknown directive "proxy_pas" in /etc/nginx/conf.d/app.conf:12
Job for nginx.service failed because the control process exited with error code.நீங்கள் உரையாடலில் அதைச் சரிசெய்கிறீர்கள். சேவையைத் தொடுவதற்கு முன் sudo nginx -t மூலம் configuration-ஐச் சோதிக்கவும், பின் restart-க்கு பதிலாக reload-ஐப் பயன்படுத்தி அதைச் செயல்படுத்தவும். ஒரு வாரம் கழித்து, வேறொரு பணியின் போது, அதே தவறு மீண்டும் நிகழ்கிறது. அந்த இரண்டாவது முறைதான் ஒரு எச்சரிக்கை.
தோல்வி உங்கள் கண்முன்னே இருக்கும்போதே இரண்டு விஷயங்களை எழுதி வையுங்கள்: நீங்கள் உள்ளிட்ட கோரிக்கை (request) மற்றும் நீங்கள் வழங்கிய திருத்தம் (correction). அந்த இரண்டு வரிகளே ஒரு திறனாக (skill) மாறுகின்றன. கோரிக்கை, தூண்டுதல் (trigger) எதனுடன் பொருந்த வேண்டும் என்பதை உங்களுக்குச் சொல்கிறது. திருத்தம் என்பது முழுமையான உள்ளடக்கமாகும்.
Anthropic-ன் சொந்த வழிகாட்டுதல் இதையே முதன்மையாக வைக்கிறது. எந்தத் திறனும் (skill) இல்லாத நிலையில், மாதிரிப் பணிகளில் agent-ஐ இயக்கி, அது எங்கே தோல்வியடைகிறது என்பதைக் குறித்துக் கொள்ளுங்கள். அந்தத் தோல்விகளைச் சரிசெய்யும் மிகக் குறைந்தபட்ச வழிமுறைகளை எழுதுங்கள். தோல்விகளே விவரக்குறிப்புகள் (specification); எனவே, ஒரு தோல்வியுடன் தொடர்புபடுத்த முடியாத திறன், யாருக்கும் தேவைப்படாத ஒன்றாகவே இருக்கும்.
ஒரு skill-ன் கட்டமைப்பு
ஒரு skill என்பது ஒரு கோப்பகமாகும் (directory), அதில் ஒரு கட்டாயக் கோப்பு இருக்க வேண்டும்.
.claude/skills/nginx-config-changes/
├── SKILL.md
├── reference/
│ └── proxy-headers.md
└── scripts/
└── check-and-reload.shSKILL.md ஒரு frontmatter தொகுதியுடன் தொடங்குகிறது. இதில் YAML வடிவில் சில அமைப்புகள் (Docker Compose கோப்புகள் பயன்படுத்தும் அதே கட்டமைப்பு) --- குறிப்பான்களுக்கு இடையே இருக்கும். அதைத் தொடர்ந்து markdown வடிவில் அறிவுறுத்தல்கள் இருக்கும். மேலே குறிப்பிட்ட தோல்விக்கான முழுமையான skill இதோ:
---
name: nginx-config-changes
description: Tests and reloads nginx safely after a config edit. Use when editing files under /etc/nginx, adding a server block or a reverse proxy, or changing a TLS certificate path.
---
## Rules
Run `sudo nginx -t` after every edit under `/etc/nginx`. Do not touch the service until it prints `test is successful`.
Apply the change with `sudo systemctl reload nginx`. Never use `restart`. A reload keeps the running workers serving traffic until the new config parses, so a broken config leaves the site up. A restart stops nginx first, so a broken config takes the site down.
If `nginx -t` fails, fix the file and test again. Never reload a config that failed the test.
For the proxy header defaults this project expects, see [reference/proxy-headers.md](reference/proxy-headers.md).அந்தக் கோப்பு இருபது வரிகளுக்கும் குறைவாகவே உள்ளது, இதுவே ஒரு முழுமையான skill ஆகும். அதன் பகுதிகள்:
name: அதிகபட்சம் 64 எழுத்துகள், சிறிய எழுத்துகள் (lowercase), எண்கள் மற்றும் ஹைபன்கள் மட்டுமே இருக்க வேண்டும். இதில்claudeஅல்லதுanthropicஆகிய சொற்கள் இருக்கக்கூடாது. தனிப்பட்ட அல்லது திட்டப்பணி சார்ந்த skill-களில் இது ஒரு காட்சிப் பெயராக (display label) மட்டுமே செயல்படும். நீங்கள் தட்டச்சு செய்யும் கட்டளை கோப்பகத்தின் பெயரிலிருந்து வருவதால், இது/nginx-config-changesஎன்ற கட்டளைக்கு பதிலளிக்கும்.description: அந்த skill என்ன செய்கிறது மற்றும் அதை எப்போது பயன்படுத்த வேண்டும் என்பது பற்றிய விளக்கம், அதிகபட்சம் 1,024 எழுத்துகள். இந்த வரிதான் உண்மையான வேலையைச் செய்கிறது, அடுத்த பகுதி இதைப் பற்றியது மட்டுமே.- உடல் பகுதி (The body): அறிவுறுத்தல்கள், இவை skill இயங்கும்போது மட்டுமே ஏற்றப்படும்.
reference/: முகவர் (agent) தேவைப்படும்போது வாசிக்கும் கூடுதல் கோப்புகள். இவற்றைSKILL.md-லிருந்து இணைக்கவும். இணைப்புகளை ஒரு நிலை ஆழத்திற்குள் (one level deep) வைத்திருக்கவும், ஏனெனில் ஒரு கோப்பிலிருந்து மற்றொரு கோப்பிற்குச் செல்லும்போது, சில நேரங்களில் கோப்பின் ஒரு பகுதி மட்டுமே வாசிக்கப்படலாம்.scripts/: முகவர் வாசிப்பதற்குப் பதிலாக இயக்கும் கோப்புகள். இவற்றின் வெளியீடு (output) மட்டுமே context-ஐப் பாதிக்கும், எனவே 300 வரிகளைக் கொண்ட script-ஐப் பயன்படுத்துவது சிக்கனமானது.
கோப்பகத்தை நீங்கள் எங்கு வைக்கிறீர்கள் என்பது அந்த skill யாருக்குக் கிடைக்கும் என்பதைத் தீர்மானிக்கிறது.
.claude/skills/<name>/SKILL.mdகளஞ்சியத்தில் (repository): இந்தத் திட்டப்பணிக்கு மட்டும், மேலும் இந்த repo-வை clone செய்யும் அனைவருக்கும் இது கிடைக்கும்.~/.claude/skills/<name>/SKILL.md: உங்கள் கணினியில் உள்ள அனைத்துத் திட்டப்பணிகளுக்கும், மற்றவர்களுக்கு இது கிடைக்காது.<plugin>/skills/<name>/SKILL.md: ஒரு plugin-க்குள் சேர்க்கப்பட்டது, அந்த plugin எங்கு இயக்கப்பட்டாலும் அங்கு இது கிடைக்கும்.
mkdir -p .claude/skills/nginx-config-changes மூலம் ஒன்றை உருவாக்கி கோப்பை எழுதவும். Claude Code இந்த கோப்பகங்களைக் கண்காணிப்பதால், ஏற்கனவே உள்ள ஒரு skill-ஐத் திருத்தினால் அது இயங்கும் session-ல் உடனடியாகச் செயல்படும். session தொடங்கும் போது இல்லாத ஒரு புதிய உயர்மட்ட (top-level) skills கோப்பகத்தை உருவாக்கினால், session-ஐ மறுதொடக்கம் (restart) செய்ய வேண்டும். ஏனெனில் session தொடங்கியபோது கண்காணிப்பதற்கு அங்கு எதுவும் இல்லை.
கோப்பின் description புலம் மிக முக்கியமான வரியாகும்
தொடக்கத்தில், agent ஒவ்வொரு கிடைக்கக்கூடிய skill-ன் name மற்றும் description ஆகியவற்றை அதன் context-ல் ஏற்றுகிறது. இது body-களை ஏற்றுவதில்லை. உங்கள் கோரிக்கை வரும்போது, அந்த ஒரு வரிதான் இந்த skill பொருத்தமானதா என்பதைத் தீர்மானிப்பதற்கான முழு அடிப்படையாகும். எனவே, தெளிவற்ற description-க்கு பின்னால் இருக்கும் மிகச்சிறந்த body ஒருபோதும் வாசிக்கப்படாது.
Description-ஐ படர்க்கையில் (third person) எழுதவும். "Tests and reloads nginx safely" என்பது சரியாக வேலை செய்யும். "I can help you with nginx" என்பது வேலை செய்யாது, ஏனெனில் இந்த உரை system prompt-ல் சேர்க்கப்படுகிறது; அங்கு தன்மை (first person) பயன்படுத்தப்பட்டால், அது model தன்னைப்பற்றித்தானே பேசிக்கொள்வது போல அமையும்.
இதில் இரண்டு விஷயங்களைச் சேர்க்கவும்: அந்த skill என்ன செய்கிறது மற்றும் அது எந்தச் சூழலில் பொருந்தும் என்பது. முக்கியமான பயன்பாட்டை முதலில் வைக்கவும், ஏனெனில் Claude Code பட்டியலை 1,536 எழுத்துகளுக்கு மேல் வெட்டிவிடும். கூடுதல் trigger சொற்கள் மற்றும் உதாரணக் கோரிக்கைகளுக்காக விருப்பத்தேர்வாக when_to_use புலம் உள்ளது, அது அந்த வரம்பிற்குள் description-ன் கீழே சேர்க்கப்படும்.
பிறகு, நீங்கள் உண்மையில் தட்டச்சு செய்யும் சொற்களைப் பயன்படுத்தவும். description: Helps with nginx எதையும் பொருத்தாது, ஏனெனில் யாரும் "helps with" என்று தட்டச்சு செய்வதில்லை. மேலே உள்ள பதிப்பு /etc/nginx, server block, reverse proxy மற்றும் TLS (transport layer security) certificate path ஆகியவற்றைக் குறிப்பிடுகிறது, இது அந்த skill-ஐத் தூண்டக்கூடிய எந்தவொரு கோரிக்கையின் சொல்லகராதியாகும்.
description-க்கான சோதனை இதோ. அந்த body-ஐப் பார்த்திராத ஒருவரிடம் அந்த ஒற்றை வரியையும், நீங்கள் தட்டச்சு செய்யப்போகும் கோரிக்கையையும் கொடுத்து, அந்த skill பொருந்துமா என்று கேளுங்கள். அவர்களால் சொல்ல முடியவில்லை என்றால், model-ஆலும் சொல்ல முடியாது.
உடலின் அளவைச் சிறியதாக வைத்திருங்கள், ஏனெனில் அது சூழலில் அப்படியே இருக்கும்
ஒரு திறன் (skill) செயல்படுத்தப்படும்போது, அதன் உள்ளடக்கமானது ஒரு செய்தியாக உரையாடலில் இணைந்து, அமர்வு முடியும் வரை அங்கேயே இருக்கும். Claude Code பிற்காலச் சுற்றுகளில் கோப்பை மீண்டும் வாசிப்பதில்லை. நீங்கள் எழுதும் ஒவ்வொரு வரியும் ஒரு பதிலுக்கான செலவு அல்ல, முழு அமர்வுக்கான செலவாகும்.
SKILL.md-ஐ 500 வரிகளுக்குக் குறைவாக வைத்திருக்கவும், கூடுதல் விவரங்களைத் தனித்தனி கோப்புகளுக்கு மாற்றவும் Anthropic பரிந்துரைக்கிறது. இந்த எண் தன்னிச்சையானது அல்ல என்பதை சுருக்கம் (compaction) காட்டுகிறது. சூழலை விடுவிக்க உரையாடல் சுருக்கப்படும்போது, ஒவ்வொரு திறனின் மிக சமீபத்திய செயல்பாட்டை Claude Code மீண்டும் இணைக்கும், ஒவ்வொன்றிலும் முதல் 5,000 tokens-ஐ மட்டும் வைத்திருக்கும், மேலும் மிக சமீபத்தில் செயல்படுத்தப்பட்ட திறனிலிருந்து தொடங்கி 25,000 tokens வரவு செலவுத் திட்டத்தை நிரப்பும். ஒரு நீண்ட திறன் பாதியிலேயே துண்டிக்கப்படலாம். பல நீண்ட திறன்கள் ஒன்றையொன்று முழுமையாக வெளியேற்றிவிடும்.
எனவே, மாதிரிக்கு ஏற்கனவே தெரியாதவற்றை மட்டும் எழுதுங்கள். Nginx என்றால் என்ன, reverse proxy என்ன செய்யும் என்பது அதற்குத் தெரியும். restart-க்கு மேலாக reload-ஐப் பயன்படுத்துவது குறித்த உங்கள் வீட்டு விதி அதற்குத் தெரியாது, அந்த விதி மட்டுமே இந்தக் கோப்பு இருப்பதற்கான ஒரே காரணம்.
ஒரு திறனானது முகவரை (agent) தொகுக்கப்பட்ட ஸ்கிரிப்டை இயக்கச் சொன்னால், ${CLAUDE_SKILL_DIR} உடன் பாதையைக் குறிப்பிடவும், இதனால் திறன் எங்கு நிறுவப்பட்டிருந்தாலும் அது சரியாகச் செயல்படும். மேலும், அதே கட்டளைக்கு முன்கூட்டியே அனுமதி (pre-approve) வழங்கவும், அப்போதுதான் அனுமதி கோரும் தூண்டுதலால் (permission prompt) இயக்கம் நிற்காது.
---
name: nginx-config-changes
description: Tests and reloads nginx safely after a config edit. Use when editing files under /etc/nginx, adding a server block or a reverse proxy, or changing a TLS certificate path.
allowed-tools: Bash(${CLAUDE_SKILL_DIR}/scripts/check-and-reload.sh *)
---இந்த அனுமதி, திறனைச் செயல்படுத்திய சுற்றை (turn) மட்டுமே உள்ளடக்கும். நீங்கள் அடுத்த செய்தியை அனுப்பும்போது இது நீக்கப்படும், எனவே இது நிரந்தரமான அனுமதியாக மாறாது.
திறன் (skill) செயல்படுவதை உறுதி செய்வது எப்படி
ஒரு திறன் ஏற்றப்படுவதைக் கவனிப்பதன் மூலம், முகவர் (agent) அதைக் கண்டறிந்துவிட்டது என்பதை அறியலாம். ஆனால், பதில் மாறியுள்ளதா என்பதை இது உறுதிப்படுத்தாது. இரண்டையும் சரிபார்க்கவும். புதிய அமர்வில் (session) சரிபார்ப்பது அவசியம், ஏனெனில் நீங்கள் திறனை எழுதிய அதே அமர்வில், அதை எழுதும் போது நீங்கள் கூறிய அனைத்தும் ஏற்கனவே சேமிக்கப்பட்டிருக்கும். அந்த எஞ்சிய சூழல் (context), கோப்பில் உள்ள குறைபாடுகளை மறைத்துவிடும்.
- திட்டத்தில்
claude-ஐப் பயன்படுத்தி புதிய அமர்வைத் தொடங்கவும். - திறனின் பெயரை குறிப்பிடாமல், ஒரு சாதாரண வேலை நாளில் நீங்கள் கேட்பது போலவே உங்கள் சொந்த வார்த்தைகளில் கோரிக்கையைத் தட்டச்சு செய்யவும்.
- அது தூண்டப்படுகிறதா (invocation) என்று கவனிக்கவும். திறன் செயல்படவில்லை என்றால், அதன் விளக்கத்தைச் சரிசெய்யவும். அதன் உள்ளடக்கம் (body) இன்னும் சிக்கலாக இருக்காது.
- கட்டுப்பாட்டுக்காக (control)
/nginx-config-changesமூலம் கைமுறையாக அதைத் தூண்டவும். கைமுறையாகத் தூண்டும்போது சரியாகச் செயல்பட்டு, கோரிக்கையின் மூலம் தூண்டும்போது தவறாகச் செயல்பட்டால், அது அறிவுறுத்தல் சிக்கல் அல்ல, தூண்டுதல் (trigger) சிக்கல் என்பதை உறுதிப்படுத்தலாம். - திறனை அணைத்துவிட்டு அதே கோரிக்கையை இயக்கி, இரண்டு பதில்களையும் ஒப்பிடவும்.
/skillsமெனுவில், அந்தத் திறனைத் தேர்ந்தெடுத்து,Space-ஐ அழுத்தி அதன் நிலையைoff-க்கு மாற்றவும், பின்னர் சேமிக்கEnter-ஐ அழுத்தவும். இது.claude/settings.local.json-ல் ஒருskillOverridesபதிவை எழுதும். முடித்த பிறகு,Space-ஐ மீண்டும் அழுத்தினால் அதுonநிலைக்குத் திரும்பும். - திறனைத் தூண்டக்கூடாத சில கோரிக்கைகளை எழுதி, அந்தச் சூழல்களில் அது செயல்படாமல் இருப்பதை உறுதி செய்யவும்.
இந்தச் சுழற்சியை தானியக்கமாக்க, அதிகாரப்பூர்வ சந்தையிலிருந்து skill-creator செருகுநிரலை (plugin) நிறுவவும்.
/plugin marketplace add anthropics/claude-plugins-official
/plugin install skill-creator@claude-plugins-officialநிறுவல் வெளியீட்டில் Run /reload-plugins to activate. என்று வந்தால், அந்தக் கட்டளையை இயக்கவும். பின்னர், உங்கள் திறனை அதன் பெயரைக் குறிப்பிட்டு மதிப்பீடு செய்யுமாறு Claude-இடம் கேட்கவும். இந்தச் செருகுநிரல் சோதனை நிகழ்வுகளை (test cases) திறன் கோப்பகத்திற்குள் evals/evals.json-ல் சேமித்து, ஒவ்வொரு நிகழ்வையும் தனித்தனி துணை முகவரில் (subagent) இயக்கும். எனவே, ஒவ்வொரு இயக்கமும் புதிய சூழலில் தொடங்கும். இது திறனுடன் மற்றும் திறன் இல்லாமல் பெறப்பட்ட பதில்களை ஒப்பிட்டு, உண்மையான தரவை வழங்கும்: அதாவது, திறன் எடுக்கும் டோக்கன்கள் மற்றும் நேரத்திற்கு எதிராக, செயல்திறன் எவ்வளவு மேம்பட்டுள்ளது என்பதைக் காட்டும்.
தோல்வி முறை: skill ஒருபோதும் தூண்டப்படவில்லை
நீங்கள் கோரிக்கையைத் தட்டச்சு செய்கிறீர்கள், ஆனால் agent பழைய தவறான செயலையே செய்கிறது, எந்த ஒரு skill வரியும் தோன்றவில்லை. இவற்றை வரிசையாகச் சரிபார்க்கவும்.
- அந்த skill என்ன செய்கிறது என்று விவரிப்பில் உள்ளது, ஆனால் அதை எப்போது பயன்படுத்த வேண்டும் என்று குறிப்பிடப்படவில்லை. எனவே, உங்கள் கோரிக்கையில் அதற்குப் பொருத்தமான எதுவும் இல்லை.
- நீங்கள் தட்டச்சு செய்யும் சொற்கள் விவரிப்பில் இல்லை. நீங்கள் "nginx" என்று கூறினால், விவரிப்பிலும் nginx என்ற சொல் இருக்க வேண்டும்.
disable-model-invocation: truefrontmatter-ல் அமைக்கப்பட்டுள்ளது. இது விவரிப்பை model-ன் context-லிருந்து முழுமையாக நீக்குகிறது, மேலும் அந்த skill-ஐ நீங்கள்/nameமூலம் மட்டுமே அழைக்க முடியும்.- frontmatter-ல் உள்ள
pathsglob, செயல்பாட்டைப் பொருந்தக்கூடிய கோப்புகளுக்கு மட்டுமே கட்டுப்படுத்துகிறது, நீங்கள் பணிபுரியும் கோப்பு அதற்குப் பொருந்தவில்லை. - அந்த skill உங்கள் தொடக்கக் கோப்பகத்திற்கு கீழே உள்ள ஒரு nested
.claude/skills/கோப்பகத்தில் உள்ளது. அந்த subdirectory-க்குள் உள்ள ஒரு கோப்பை agent வாசிக்கும் வரை அல்லது திருத்தும் வரை மட்டுமே அவை ஏற்றப்படும், அதுவரை அந்த skill கிடைக்காது.
தோல்வி முறை: திறன் தொடர்ந்து தூண்டப்படுதல்
இதற்கு நேர்மாறான சிக்கல் என்னவென்றால், விளக்கமானது மிகவும் பொதுவானதாக இருப்பதால், தொடர்பில்லாத பணிகளுக்கும் அந்தத் திறன் தூண்டப்படுவதுதான். "server-ல் வேலை செய்யும்போது இதைப் பயன்படுத்து" என்ற விளக்கம், server repository-ல் உள்ள கிட்டத்தட்ட அனைத்து கோரிக்கைகளுக்கும் பொருந்தும். இதனால், அந்தத் திறன் உதவ முடியாத பணிகளுக்கும் அது செயல்படத் தொடங்கி, அந்த session முழுவதும் சூழலில் (context) நீடிக்கிறது.
விளக்கத்தை உண்மையில் முக்கியமான நிபந்தனைக்கு மட்டும் சுருக்கி, அது கையாளும் கோப்புகள் அல்லது commands-ன் பெயர்களைக் குறிப்பிடவும். ஒரு திறன் குறிப்பிட்ட கோப்புகளுக்கு மட்டுமே பொருந்தும் என்றால், paths glob-ஐச் சேர்க்கவும். deploy அல்லது commit போன்ற பக்கவிளைவுகளைக் கொண்ட எதற்கும், disable-model-invocation: true-ஐ அமைத்து, /name மூலம் நீங்களே அதை இயக்கவும். அப்போதுதான், deploy செய்வதற்கு இதுதான் சரியான தருணம் என்று agent தானாகவே முடிவு செய்யாது.
தோல்வி முறை: திறன் (skill) உங்கள் விதிகள் கோப்பில் (rules file) இருக்க வேண்டும்
CLAUDE.md அல்லது AGENTS.md போன்ற ஒரு விதிகள் கோப்பு ஒவ்வொரு அமர்வின் தொடக்கத்திலும் ஏற்றப்பட்டு, அனைத்து பணிகளுக்கும் பொருந்தும். ஒரு திறனின் உள்ளடக்கம், அந்தத் திறன் தூண்டப்படும்போது மட்டுமே ஏற்றப்படும். அதன் பயன்பாட்டு அதிர்வெண்ணே முடிவெடுப்பதற்கான அடிப்படை. நீங்கள் பயன்படுத்தும் package manager போன்ற, களஞ்சியத்தில் உள்ள அனைத்து பணிகளுக்கும் பொருந்தும் ஒரு உண்மை, விதிகள் கோப்பில் இருக்க வேண்டும். மேலே உள்ள nginx விதி போன்ற, ஒரு சிறிய அளவிலான பணிகளுக்கு மட்டும் பொருந்தும் நடைமுறை, ஒரு திறனில் இருக்க வேண்டும்; அப்போதுதான் யாரும் nginx-ஐ மாற்றாத நாட்களில் அதற்கு எந்தச் செலவும் இருக்காது.
இரண்டு இடங்களிலும் அதைப் பதிவேற்றுவதே உண்மையான தோல்வி. இரண்டு பிரதிகளும் காலப்போக்கில் மாறுபடும்; முகவர் (agent) தவறான செயலைச் செய்யும்போது, அது எந்தப் பிரதியைப் பின்பற்றியது என்பதை உங்களால் கண்டறிய முடியாது. ஒவ்வொரு அறிவுறுத்தலுக்கும் ஒரு இடத்தை மட்டும் தேர்வு செய்யவும். திறன்கள், MCP servers மற்றும் விதிகள் கோப்புகளுக்கு இடையிலான எல்லை கடினமான சூழல்களை விளக்குகிறது; ஒரு முகவருக்கு புதிய அறிவுறுத்தலை வழங்குவதற்குப் பதிலாக, புதிய கருவியை வழங்கும் MCP (model context protocol) server-ஐப் பயன்படுத்துவதே சரியான தீர்வாக இருக்கும் சூழல்களும் இதில் அடங்கும்.
பயன்பாட்டுக்கு உகந்ததாக மாறியவுடன் பகிரவும்
ஒரு வார கால நடைமுறைப் பணியில் நிலைத்து நிற்கும் திறன், ஆவணப்படுத்தப்பட வேண்டிய தகுதியைப் பெறுகிறது. .claude/skills/-ல் உள்ள திட்டத் திறன்கள் (project skills), code போலவே மதிப்பாய்வு செய்யப்பட்டு repository-உடன் சேர்த்து வருகின்றன. எனவே, ஒரு குழு உறுப்பினர் அதை clone செய்யும்போது, கூடுதல் அமைப்பு மாற்றங்கள் ஏதுமின்றி உங்கள் திருத்தங்கள் அவருக்குக் கிடைக்கும். Copy மற்றும் paste செய்யாமல் ஒரு repository-லிருந்து மற்றொன்றுக்குத் திறனை நகர்த்துவது ஒரு தனிச் சவால். இது how to share agent skills across repos பகுதியில் விளக்கப்பட்டுள்ளது.
இடமாற்றம் குறித்த ஒரு குறிப்பு: Claude Code பல வகையான frontmatter புலங்களை (fields) ஏற்கும், ஆனால் Agent Skills தரநிலை ஆறே புலங்களை மட்டுமே அனுமதிக்கிறது: name, description, license, compatibility, metadata மற்றும் allowed-tools. ஒரு திறனை claude.ai-க்கு பதிவேற்றும்போது அல்லது Skills API-க்காக தொகுக்கும்போது, frontmatter-ல் வேறு ஏதேனும் புலங்கள் இருந்தால், அந்தப் புலத்தைப் புறக்கணிப்பதற்குப் பதிலாக, செயல்முறை முழுமையாகத் தோல்வியடையும்:
Unexpected key(s) in SKILL.md frontmatter: argument-hint. Allowed properties are: allowed-tools, compatibility, description, license, metadata, nameஇந்த ஆறு புலங்களுக்குள் செயல்பட்டால், அதே கோப்பு Claude Code மற்றும் தரநிலையைப் பின்பற்றும் பிற மென்பொருள்களிலும் இயங்கும். வெவ்வேறு model-களுக்கு மாற்றினாலும் செயல்படும் வகையில் அறிவுறுத்தல்களை எழுதுவது ஒரு தனிப்பணி. இது writing skills that work with any model பகுதியில் விவரிக்கப்பட்டுள்ளது.
FAQ
SKILL.md கோப்பு எவ்வளவு நீளமாக இருக்க வேண்டும்?
500 வரிகளுக்குள் வைத்திருங்கள். பயனுள்ள பெரும்பாலான திறன்கள் (skills) இதைவிட மிகக் குறைவாகவே இருக்கும். ஒரு திறன் பயன்படுத்தப்படும்போது அதன் உள்ளடக்கம் உரையாடலில் சேர்க்கப்பட்டு, அந்த அமர்வு முடியும் வரை அங்கேயே இருக்கும். எனவே, ஒவ்வொரு வரியும் ஒருமுறை மட்டும் செலவாகும் விஷயம் அல்ல, அது மீண்டும் மீண்டும் கணக்கில் கொள்ளப்படும் செலவாகும். நீண்ட குறிப்புத் தகவல்களைத் திறன்களுக்கான கோப்பகத்தில் (skill directory) தனித்தனி கோப்புகளாக மாற்றி, அவற்றை SKILL.mdSKILL.md மூலம் ஒரு நிலை ஆழத்தில் இணைக்கவும். அப்போதுதான், தேவைப்படும்போது மட்டும் ஏஜென்ட் அவற்றைப் படிக்கும். இணைக்கப்பட்ட ஸ்கிரிப்டுகள் (bundled scripts) வாசிக்கப்படாமல் நேரடியாக இயக்கப்படுவதால், அவற்றின் வெளியீடு மட்டுமே செலவாகக் கணக்கிடப்படும்.
எனது திறன் ஏன் தூண்டப்படுவதில்லை (trigger)?
இதற்கு பெரும்பாலும் அதன் விளக்கமே (description) காரணமாக இருக்கும். ஏனெனில், ஒரு திறனைப் பயன்படுத்தலாமா வேண்டாமா என்று மாடல் முடிவெடுக்கும்போது, அந்த விளக்கம் மட்டுமே அதன் கவனத்தில் இருக்கும். அந்தத் திறன் என்ன செய்யும் என்பதை மட்டும் குறிப்பிடாமல், அதை எப்போது பயன்படுத்த வேண்டும் என்பதையும் தெளிவாகக் குறிப்பிடவும். மேலும், நீங்கள் கோரிக்கைகளில் பயன்படுத்தும் சொற்கள் அந்த விளக்கத்தில் இருப்பதை உறுதி செய்யவும். விளக்கம் சரியாக இருந்தால், disable-model-invocation: truedisable-model-invocation: true உள்ளதா என்று பார்க்கவும்; இது அந்தத் திறனை மாடலின் பார்வையிலிருந்து முழுமையாக மறைத்துவிடும். மேலும், pathspaths குளோப் (glob) ஏதேனும் உள்ளதா என்று பார்க்கவும்; இது நீங்கள் கையாளாத கோப்புகளுக்கு மட்டும் அந்தத் திறனைக் கட்டுப்படுத்தலாம். உங்கள் தொடக்கக் கோப்பகத்திற்கு கீழே உள்ள ஒரு .claude/skills/.claude/skills/ கோப்பகத்தில் திறன் இருந்தால், அதுவும் ஒரு காரணமாக இருக்கலாம்: ஏஜென்ட் அந்த உட்பிரிவுக் கோப்பகத்தில் உள்ள ஒரு கோப்பைப் படித்தாலோ அல்லது திருத்தினாலோ மட்டுமே அந்தத் திறன் ஏற்றப்படும்.
இதை ஒரு திறனாக வைக்க வேண்டுமா அல்லது விதிகள் கோப்பில் (rules file) ஒரு வரியாகச் சேர்க்க வேண்டுமா?
உங்கள் பணிகளில் இது எவ்வளவு அடிக்கடி பயன்படுகிறது என்று பாருங்கள். விதிகள் கோப்பு ஒவ்வொரு அமர்விலும் ஏற்றப்படும், எனவே தொகுப்பு மேலாளர் (package manager) அல்லது கிளை பெயரிடும் முறை (branch naming convention) போன்ற அனைத்துப் பணிகளுக்கும் பொதுவான உண்மைகளை அதில் வைக்கவும். ஒரு திறன் அது தூண்டப்படும்போது மட்டுமே ஏற்றப்படும், எனவே சில குறிப்பிட்ட பணிகளுக்கு மட்டும் தேவைப்படும் நடைமுறைகளை அதில் வைப்பதே சிறந்தது. ஒரே அறிவுறுத்தலை இரண்டு இடங்களிலும் எழுத வேண்டாம்; அவ்வாறு செய்தால், காலப்போக்கில் அவை மாறுபட்டு, ஏஜென்ட் எதைப் பின்பற்றியது என்பதைக் கண்டறிய முடியாமல் போய்விடும்.
ஒரு திறன் உண்மையில் உதவியதா என்பதை எப்படி அறிவது?
அடிப்படைத் தரவுகளுடன் (baseline) ஒப்பிட்டுப் பாருங்கள். சில உண்மையான கோரிக்கைகளைச் சேகரித்து, அந்தத் திறன் இருக்கும் நிலையில் ஒரு புதிய அமர்வில் ஒவ்வொன்றையும் இயக்கவும். பிறகு, /skills/skills மெனு மூலம் அந்தத் திறனை அணைத்துவிட்டு மீண்டும் இயக்கவும். இரண்டு பதில்களையும் அருகருகே வைத்துப் படிக்கவும். புதிய அமர்வில் சோதிப்பது முக்கியம், ஏனெனில் நீங்கள் திறனை எழுதிய உரையாடலில் ஏற்கனவே உங்கள் விளக்கங்கள் இருப்பதால், முழுமையற்ற கோப்பு கூட முழுமையானது போலத் தோன்றும். skill-creatorskill-creator பிளகின் இந்த ஒப்பீட்டை உங்களுக்காகச் செய்து, டோக்கன் செலவுடன் சேர்த்து வெற்றி விகிதத்தையும் (pass rate) வழங்கும்.
ஒரே SKILL.md கோப்பை வெவ்வேறு ஏஜென்ட்களுடன் பயன்படுத்த முடியுமா?
ஆம், Agent Skills தரநிலை வரையறுக்கும் புலங்களுக்குள் (fields) நீங்கள் இருக்கும் வரை இதைப் பயன்படுத்தலாம்: name, description, license, compatibility, metadata மற்றும் allowed-tools. Claude Code பல கூடுதல் புலங்களை ஏற்றுக்கொள்கிறது. மேலும், பிற கருவிகள் இயக்காத ஷெல் கமாண்ட் இன்ஜெக்ஷன் (shell command injection) போன்ற அம்சங்களையும் இது ஆதரிக்கிறது. தரநிலைக்கு வெளியே உள்ள ஒரு புலத்துடன் திறனைப் பதிவேற்றினால், அனுமதிக்கப்பட்ட பண்புகளைக் காட்டும் பிழைச் செய்தி தோன்றும். எனவே, ஒரு திறன் Claude Code-ல் மட்டுமே இருக்க வேண்டுமா அல்லது பிற இடங்களுக்கும் செல்ல வேண்டுமா என்பதை முன்கூட்டியே முடிவு செய்யுங்கள்.