SSD Nodes Learn Hosting plans →
கல்வி வழிகாட்டிகள் Matt Connorஆல் Matt Connor · புதுப்பிக்கப்பட்டது 2026-08-30

சொந்தமாக ஏஜென்ட் திறனை (Agent Skill) உருவாக்குவது எப்படி?

உங்கள் ஏஜென்ட் செய்த ஒரு தோல்வியிலிருந்து புதிய திறனை உருவாக்குவது எப்படி என்பதை அறிக. SKILL.md கோப்பின் அமைப்பு, சரியான தூண்டுதல் வரி மற்றும் சோதனை முறைகளை விரிவாகக் காண்போம்.

ஒரு உண்மையான தோல்வியிலிருந்து உங்கள் சொந்த ஏஜென்ட் திறனை உருவாக்குதல்

உங்கள் சொந்த ஏஜென்ட் திறனை (agent skill) உருவாக்குவதற்கான சிறந்த வழி, ஒரு உண்மையான தோல்வியிலிருந்து அதைப் பிரித்தெடுப்பதாகும். உங்கள் கோடிங் ஏஜென்ட் இரண்டு முறை தவறாகச் செய்த ஒரு பணியைக் கண்டறியவும், நீங்கள் இரண்டு முறையும் தட்டச்சு செய்த திருத்தத்தை எழுதி வைக்கவும், அந்தத் திருத்தத்தை ஏஜென்ட் தானாகவே ஏற்றக்கூடிய ஒரு SKILL.md கோப்பாகச் சேமிக்கவும். அதற்குப் பிறகு உள்ள அனைத்தும் தொழில்நுட்ப ரீதியானவை: கோப்பின் அமைப்பு மற்றும் அந்தத் திறன் எப்போது செயல்பட வேண்டும் என்பதைத் தீர்மானிக்கும் ஒற்றை வரி.

அந்த வரிசை முக்கியமானது. கற்பனையிலிருந்து எழுதப்பட்ட ஒரு திறன், உங்களுக்கு ஏற்படாத ஒரு சிக்கலை ஆவணப்படுத்துகிறது, மேலும் இது ஒவ்வொரு அமர்விலும் context-ஐ வீணாக்குகிறது. நீங்கள் கவனித்த ஒரு தோல்வியிலிருந்து பெறப்பட்ட திறன், அதனுடன் ஒரு சோதனையையும் (test) கொண்டு வருகிறது: அதே கேள்வியை மீண்டும் கேட்டு, இந்த முறை ஏஜென்ட் அதைச் சரியாகச் செய்கிறதா என்று பாருங்கள். இந்த வடிவம் உங்களுக்குப் புதியதாக இருந்தால், முதலில் ஏஜென்ட் திறன்கள் என்றால் என்ன மற்றும் ஏஜென்ட் அவற்றை எவ்வாறு ஏற்றுகிறது என்பதைப் படித்துவிட்டு, பிறகு வந்து ஒன்றை உருவாக்குங்கள்.

தவறாகச் செய்த பணியிலிருந்து தொடங்குதல்

ஒருமுறை நடப்பது தற்செயல். இருமுறை நடப்பது ஒரு பாணி (pattern), அந்தப் பாணியை ஒரு கோப்பாகச் சேமிக்க வேண்டும்.

நிஜமான server-களில் மீண்டும் மீண்டும் நிகழும் ஒரு தோல்வி இங்கே உள்ளது. Nginx-ல் reverse proxy block-ஐச் சேர்க்குமாறு நீங்கள் agent-ஐக் கேட்கிறீர்கள். அது /etc/nginx/conf.d/app.conf-ஐத் திருத்தி, பின் sudo systemctl restart nginx-ஐ இயக்குகிறது. அந்தத் திருத்தத்தில் பிழை இருப்பதால், 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-ன் சொந்த வழிகாட்டுதல் இதையே முதன்மையாக வைக்கிறது. எந்தத் திறனும் இல்லாத நிலையில், மாதிரிப் பணிகளில் agent-ஐ இயக்கி, அது எங்கே தோல்வியடைகிறது என்று பதிவு செய்யுங்கள். பின், அந்தத் தோல்விகளைச் சரிசெய்யும் குறைந்தபட்ச வழிமுறைகளை எழுதுங்கள். தோல்விகளே விவரக்குறிப்புகள் (specification); எனவே, ஒரு தோல்வியுடன் தொடர்புபடுத்த முடியாத திறன், யாருக்கும் தேவைப்படாத ஒன்றாகவே இருக்கும்.

இதே போன்ற ஒரு distillation-ன் உதாரணத்திற்கு, Ponytail, நீங்கள் கேட்டதை விட அதிகமாக மாற்றும் ஒரு agent-ன் மீண்டும் மீண்டும் நிகழும் தோல்வியை ஒரு திறனாக மாற்றுகிறது என்பதை நீங்கள் சொந்தமாக எழுதுவதற்கு முன் முழுமையாகப் படித்துப் பார்க்கலாம்.

ஒரு skill-ன் கட்டமைப்பு

ஒரு skill என்பது ஒரு கோப்பகமாகும் (directory), அதில் ஒரு கட்டாயக் கோப்பு இருக்க வேண்டும்.

.claude/skills/nginx-config-changes/
├── SKILL.md
├── reference/
│   └── proxy-headers.md
└── scripts/
    └── check-and-reload.sh

SKILL.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-லிருந்து இணைக்கவும் (link). இணைப்புகளை ஒரு நிலை ஆழத்தில் (one level deep) மட்டும் வைத்திருக்கவும், ஏனெனில் மற்றொரு கோப்பிலிருந்து குறிப்பிடப்படும் கோப்பு பெரும்பாலும் பகுதியளவு மட்டுமே வாசிக்கப்படலாம்.
  • scripts/: முகவர் வாசிப்பதற்குப் பதிலாக இயக்கும் கோப்புகள். இவற்றின் வெளியீடு (output) மட்டுமே context-ஐப் பாதிக்கும், எனவே 300 வரிகளைக் கொண்ட script-ம் குறைந்த செலவுடையதே.

ஒரு skill சரிசெய்யும் நடத்தை மிகவும் சிக்கலானதாக இருக்கும்போது, அது முழுமையான அமைப்பாக வளர்கிறது. சோம்பேறித்தனமற்ற skill, அந்த இடத்தைப் பயன்படுத்தி ஒரு Depth Tree, gates கோப்புகள் மற்றும் ஒரு PLAN.md ஒப்பந்தத்தை உருவாக்குகிறது. இது, வேலையின் பெரும் பகுதிகள் முடிக்கப்படாமல் இருக்கும்போதே முகவர் வேலையை முடித்துவிட்டதாக அறிவிப்பதைத் தடுக்கிறது.

கோப்பகத்தை நீங்கள் எங்கு வைக்கிறீர்கள் என்பது அந்த 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-ஐப் பயன்படுத்துவது குறித்த உங்கள் வீட்டு விதி அதற்குத் தெரியாது, அந்த விதி மட்டுமே இந்தக் கோப்பு இருப்பதற்கான ஒரே காரணம்.

ஒரு திறனானது, ஏஜென்ட்டை ஒரு தொகுக்கப்பட்ட script-ஐ இயக்கச் சொன்னால், ${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 *)
---

இந்த அனுமதி, திறனைச் செயல்படுத்திய சுற்றுக்கு மட்டுமே பொருந்தும். நீங்கள் அடுத்த செய்தியை அனுப்பும்போது இது நீக்கப்படும், எனவே இது நிரந்தரமான அனுமதியாக மாறாது.

ஒரு skill செயல்படுவதை உறுதி செய்வது எப்படி

ஒரு skill ஏற்றப்படுவதைக் கவனிப்பதன் மூலம், agent அதைக் கண்டறிந்துவிட்டது என்பதை அறியலாம். ஆனால், பதில் மாறியுள்ளதா என்பதை இது உறுதிப்படுத்தாது. இரண்டையும் சரிபார்க்கவும். புதிய session-ல் இதைச் செய்யவும், ஏனெனில் நீங்கள் skill-ஐ எழுதிய அதே session-ல், அதை எழுதும் போது நீங்கள் கூறிய அனைத்தும் ஏற்கனவே சேமிக்கப்பட்டிருக்கும். அந்த எஞ்சியிருக்கும் context, கோப்பில் உள்ள குறைபாடுகளை மறைத்துவிடும்.

  1. திட்டத்தில் claude-ஐப் பயன்படுத்தி ஒரு புதிய session-ஐத் தொடங்கவும்.
  2. சாதாரண வேலை நாளில் நீங்கள் கேட்பது போலவே, skill-ன் பெயரைச் சொல்லாமல் உங்கள் சொந்த வார்த்தைகளில் கோரிக்கையைத் தட்டச்சு செய்யவும்.
  3. அது தூண்டப்படுகிறதா (invocation) என்று கவனிக்கவும். skill செயல்படவில்லை என்றால், அதன் விளக்கத்தைச் சரிசெய்யவும். அதன் உள்ளடக்கம் (body) இன்னும் சிக்கலாக இருக்காது.
  4. ஒரு கட்டுப்பாட்டு முறையாக (control), /nginx-config-changes-ஐப் பயன்படுத்தி அதை நீங்களே கைமுறையாகத் தூண்டவும். கைமுறையாகத் தூண்டும்போது சரியாகச் செயல்பட்டு, கோரிக்கையின் மூலம் தூண்டும்போது தவறாகச் செயல்பட்டால், அது instruction சிக்கல் அல்ல, trigger சிக்கல் என்பதை உறுதிப்படுத்தலாம்.
  5. skill-ஐ அணைத்துவிட்டு அதே கோரிக்கையை இயக்கி, இரண்டு பதில்களையும் ஒப்பிடவும். /skills மெனுவில், அந்த skill-ஐத் தேர்ந்தெடுத்து, Space-ஐ அழுத்தி அதன் நிலையை off-க்கு மாற்றவும், பிறகு Enter-ஐ அழுத்திச் சேமிக்கவும். இது .claude/settings.local.json-ல் ஒரு skillOverrides பதிவை உருவாக்கும். நீங்கள் முடித்ததும், மீண்டும் Space-ஐ அழுத்தினால் அது on நிலைக்குத் திரும்பிவிடும்.
  6. skill தூண்டப்படக் கூடாத சில கோரிக்கைகளை எழுதி, அந்தச் சூழலில் அது செயல்படாமல் இருப்பதை உறுதி செய்யவும்.

இந்தச் சுழற்சியை தானியக்கமாக்க, அதிகாரப்பூர்வ marketplace-லிருந்து skill-creator plugin-ஐ நிறுவவும்.

/plugin marketplace add anthropics/claude-plugins-official
/plugin install skill-creator@claude-plugins-official

நிறுவலின் வெளியீட்டில் Run /reload-plugins to activate. என்று வந்தால், அந்தக் கட்டளையை இயக்கவும். பிறகு, உங்கள் skill-ஐ அதன் பெயரைக் குறிப்பிட்டு மதிப்பீடு செய்யுமாறு Claude-இடம் கேட்கவும். இந்த plugin, test cases-களை skill directory-க்குள் உள்ள evals/evals.json-ல் சேமித்து, ஒவ்வொரு சோதனையையும் தனித்தனி subagent-ல் இயக்குகிறது. எனவே, ஒவ்வொரு முறையும் புதிய context-உடன் தொடங்கும். இது skill-உடன் மற்றும் skill-இல்லாமல் கிடைக்கும் பதில்களை ஒப்பிட்டு, உண்மையான தரவை வழங்கும்: அதாவது, skill-க்காகச் செலவிடப்படும் tokens மற்றும் நேரத்திற்கு ஈடாக, பதிலின் தரம் எவ்வளவு மேம்பட்டுள்ளது என்பதைக் காட்டும்.

ஒரு skill, தனிப்பட்ட eval run-க்காகக் காத்திருக்காமல், தனது சொந்த ஆதாரத்தை தானே வழங்க முடியும். the Old Coder skill, agent-ஐ ஒரு ஆதார அறிக்கையைத் தயாரிக்கச் செய்து, அதை நீங்களே மீண்டும் இயக்க அனுமதிப்பதன் மூலம் இதைச் செய்கிறது.

தோல்வி முறை: skill ஒருபோதும் தூண்டப்படவில்லை

நீங்கள் கோரிக்கையைத் தட்டச்சு செய்கிறீர்கள், agent பழைய தவறான செயலையே செய்கிறது, எந்த ஒரு skill வரியும் தோன்றவில்லை. இவற்றை வரிசையாகச் சரிபார்க்கவும்.

  • skill என்ன செய்கிறது என்று விவரிப்பில் உள்ளது, ஆனால் அதை எப்போது பயன்படுத்த வேண்டும் என்று குறிப்பிடப்படவில்லை; எனவே உங்கள் கோரிக்கையில் அதனுடன் பொருந்தக்கூடிய எதுவும் இல்லை.
  • நீங்கள் தட்டச்சு செய்யும் சொற்களை விவரிப்பு தவிர்க்கிறது. நீங்கள் "nginx" என்று கூறினால், விவரிப்பில் nginx என்ற சொல் இருக்க வேண்டும்.
  • disable-model-invocation: true frontmatter-ல் அமைக்கப்பட்டுள்ளது. இது விவரிப்பை model-ன் சூழலில் இருந்து முழுமையாக நீக்குகிறது, மேலும் /name மூலம் மட்டுமே நீங்கள் skill-ஐ அழைக்க முடியும்.
  • frontmatter-ல் உள்ள paths glob, கோப்புகளைப் பொருத்துவதன் மூலம் செயல்பாட்டைக் கட்டுப்படுத்துகிறது, நீங்கள் பணிபுரியும் கோப்பு அதனுடன் பொருந்தவில்லை.
  • skill உங்கள் தொடக்கக் கோப்பகத்திற்கு கீழே உள்ள ஒரு nested .claude/skills/ கோப்பகத்தில் உள்ளது. அந்த subdirectory-க்குள் உள்ள ஒரு கோப்பை agent வாசிக்கும் வரை அல்லது திருத்தும் வரை மட்டுமே அவை ஏற்றப்படும், அதுவரை அந்த skill கிடைக்காது.

தோல்வி முறை: திறன் தொடர்ந்து தூண்டப்படுதல்

இதற்கு நேர்மாறான சிக்கல் என்னவென்றால், விளக்கமானது மிகவும் பொதுவானதாக இருப்பதால், தொடர்பில்லாத பணிகளுக்கும் அந்தத் திறன் தூண்டப்படுவதுதான். "Use when working on the server" என்பது server repository-ல் உள்ள கிட்டத்தட்ட அனைத்து கோரிக்கைகளுக்கும் பொருந்தும். இதனால், அந்தத் திறன் உதவ முடியாத பணிகளுக்கும் அது செயல்படத் தொடங்கி, அமர்வு முழுவதும் அதே சூழலில் நீடிக்கிறது.

விளக்கத்தை உண்மையில் முக்கியமான நிபந்தனைக்கு மட்டும் சுருக்கவும்; அது கையாளும் கோப்புகள் அல்லது கட்டளைகளைக் குறிப்பிடவும். ஒரு குறிப்பிட்ட கோப்புகளுக்கு மட்டுமே அந்தத் திறன் பொருந்தும் என்றால், ஒரு paths glob-ஐச் சேர்க்கவும். deploy அல்லது commit போன்ற பக்கவிளைவுகளைக் கொண்ட எதற்கும், disable-model-invocation: true-ஐ அமைத்து, /name மூலம் நீங்களே அதை இயக்கவும். இதன் மூலம், deploy செய்ய வேண்டிய தருணம் இதுதான் என்று agent தானாகவே முடிவெடுப்பதைத் தவிர்க்கலாம்.

தோல்வி முறை: ஒரு திறன் (skill) உங்கள் விதிகள் கோப்பில் (rules file) இருக்க வேண்டும்

CLAUDE.md அல்லது AGENTS.md போன்ற ஒரு விதிகள் கோப்பு ஒவ்வொரு அமர்வின் தொடக்கத்திலும் ஏற்றப்பட்டு, அனைத்து பணிகளுக்கும் பொருந்தும். ஒரு திறன் (skill) அதன் செயல்பாடு தூண்டப்படும்போது மட்டுமே ஏற்றப்படும். அதன் பயன்பாட்டு அதிர்வெண்ணே (frequency) முடிவெடுப்பதற்கான அடிப்படை. நீங்கள் பயன்படுத்தும் package manager போன்ற, களஞ்சியத்தில் உள்ள அனைத்து பணிகளுக்கும் பொருந்தும் ஒரு உண்மை, விதிகள் கோப்பில் இருக்க வேண்டும். மேலே உள்ள nginx விதி போன்ற, ஒரு சிறிய அளவிலான பணிகளுக்கு மட்டும் பொருந்தும் ஒரு செயல்முறை, ஒரு திறனில் (skill) இருக்க வேண்டும்; அப்போதுதான் யாரும் nginx-ஐ மாற்றாத நாட்களில் அதற்கு எந்தச் செலவும் இருக்காது.

இரண்டு இடங்களிலும் ஒரே தகவலை வைப்பதுதான் உண்மையான தோல்வி. இரண்டு பிரதிகளும் காலப்போக்கில் மாறுபடும்; முகவர் (agent) தவறான செயலைச் செய்யும்போது, அது எந்தப் பிரதியைப் பின்பற்றியது என்பதை உங்களால் கண்டறிய முடியாது. ஒவ்வொரு அறிவுறுத்தலுக்கும் ஒரு இடத்தை மட்டும் தேர்வு செய்யவும். ஏற்கனவே ஒரு இடத்தில் மட்டும் இருக்கும் ஒரு விதி புறக்கணிக்கப்படுகிறது என்றால், அது வேறு ஒரு சிக்கல். அதை ஒரு திறனுக்கு மாற்றி, அந்த மாற்றம் சிக்கலைச் சரிசெய்யும் என்று நம்புவதற்கு முன்பு, புறக்கணிக்கப்பட்ட அறிவுறுத்தலுக்குப் பின்னால் உள்ள இயக்கவியல் (the mechanics behind an ignored instruction) குறித்துச் சரிபார்ப்பது அவசியம். திறன்கள், MCP servers மற்றும் விதிகள் கோப்புகளுக்கு இடையிலான எல்லை (the boundary between skills, MCP servers and rules files) கடினமான சூழல்களை விளக்குகிறது; இதில் ஒரு புதிய அறிவுறுத்தலுக்குப் பதிலாக, முகவருக்கு ஒரு புதிய கருவியை வழங்கும் MCP (model context protocol) server-ஐப் பயன்படுத்துவதே சரியான தீர்வாக இருக்கும் சூழல்களும் அடங்கும்.

தகுதியானதாக மாறியவுடன் அதைப் பகிரவும்

ஒரு வார கால நடைமுறைப் பணியில் நிலைத்து நிற்கும் திறன், சேமித்து வைக்கத் தகுதியானது. .claude/skills/-ல் உள்ள திட்டத் திறன்கள் (project skills) குறியீட்டைப் போலவே மதிப்பாய்வு செய்யப்படுகின்றன; அவை களஞ்சியத்துடன் (repository) வருவதால், அதை clone செய்யும் குழு உறுப்பினர் எந்தவித கூடுதல் அமைப்பும் (setup) இன்றி உங்கள் திருத்தத்தைப் பெற முடியும். நகலெடுத்து ஒட்டுதல் (copy and paste) இன்றி ஒரு களஞ்சியத்திலிருந்து மற்றொரு களஞ்சியத்திற்குத் திறனை நகர்த்துவது ஒரு தனிச் சவாலாகும், இது how to share agent skills across repos பகுதியில் விளக்கப்பட்டுள்ளது.

இடமாற்றத்திறன் (portability) குறித்த ஒரு குறிப்பு. 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-லும் மற்றும் தரநிலையைப் படிக்கும் பிற அனைத்திலும் இயங்கும். கோப்பு எங்கே ஏற்றப்படுகிறது என்பது அதன் செயல்பாட்டைத் தீர்மானிக்கிறது, ஏனெனில் Cowork runs in an Anthropic sandbox while Claude Code runs on your own machine or VPS. எனவே, மேலே உள்ள nginx திறன் ஒரு குழு உறுப்பினரின் checkout-க்கு எடுத்துச் செல்லத் தகுதியானது, ஆனால் server-ஐ அணுக முடியாத sandbox சூழலில் இது பயனற்றது. வெவ்வேறு மாதிரிகளுக்கு (models) மாற்றினாலும் செயல்படும் வகையில் வழிமுறைகளை எழுதுவது ஒரு தனிப் பணியாகும், இது writing skills that work with any model பகுதியில் விவரிக்கப்பட்டுள்ளது.

FAQ

SKILL.md கோப்பு எவ்வளவு நீளமாக இருக்க வேண்டும்?

இதை 500 வரிகளுக்குள் வைத்திருக்கவும். பெரும்பாலான பயனுள்ள திறன்கள் (skills) இதைவிட மிகக் குறைவாகவே இருக்கும். ஒரு திறன் தூண்டப்படும்போது, அதன் உள்ளடக்கம் உரையாடலில் இணைந்து, அந்த அமர்வு முடியும் வரை அங்கேயே இருக்கும். எனவே, ஒவ்வொரு வரியும் ஒருமுறை மட்டும் செலவாகும் விஷயம் அல்ல, அது மீண்டும் மீண்டும் கணக்கில் கொள்ளப்படும் செலவாகும். நீண்ட குறிப்புத் தகவல்களைத் திறன் கோப்பகத்தில் உள்ள தனித்தனி கோப்புகளுக்கு நகர்த்தி, அவற்றை SKILL.md மூலம் ஒரு நிலை ஆழத்தில் இணைக்கவும். அப்போதுதான் முகவர் (agent) தேவைப்படும்போது மட்டும் அவற்றை வாசிக்கும். தொகுக்கப்பட்ட ஸ்கிரிப்டுகள் (bundled scripts) வாசிக்கப்படாமல் நேரடியாக இயக்கப்படுவதால், அவற்றின் வெளியீடு மட்டுமே செலவாகக் கணக்கிடப்படும்.

எனது திறன் ஏன் தூண்டப்படுவதில்லை?

இதற்கு பெரும்பாலும் அதன் விளக்கமே (description) காரணமாக இருக்கும். ஏனெனில், ஒரு திறனைப் பயன்படுத்த வேண்டுமா என்று மாதிரி (model) முடிவெடுக்கும்போது, அந்த விளக்கம் மட்டுமே சூழலில் இருக்கும். அந்தத் திறன் என்ன செய்யும் என்பதை மட்டும் குறிப்பிடாமல், அதை எப்போது பயன்படுத்த வேண்டும் என்பதையும் தெளிவாகக் குறிப்பிடவும். மேலும், உங்கள் கோரிக்கைகளில் நீங்கள் பயன்படுத்தும் சொற்கள் அந்த விளக்கத்தில் இருப்பதை உறுதி செய்யவும். விளக்கம் சரியாக இருந்தால், disable-model-invocation: true-க்கான முன்மொழிவை (frontmatter) சரிபார்க்கவும்; இது அந்தத் திறனை மாதிரியிடமிருந்து முழுமையாக மறைக்கக்கூடும். மேலும், paths glob-ஐச் சரிபார்க்கவும், இது நீங்கள் கையாளாத கோப்புகளுக்கு மட்டும் திறனை மட்டுப்படுத்தலாம். உங்கள் தொடக்கக் கோப்பகத்திற்கு கீழே உள்ள ஒரு உட்பொதிக்கப்பட்ட .claude/skills/ கோப்பகத்தில் திறன் இருந்தால், முகவர் அந்த உட்பிரிவில் உள்ள ஒரு கோப்பை வாசித்த அல்லது திருத்திய பிறகு மட்டுமே அது ஏற்றப்படும்.

இதை ஒரு திறனாக வைக்க வேண்டுமா அல்லது விதிகள் கோப்பில் (rules file) ஒரு வரியாகச் சேர்க்க வேண்டுமா?

உங்கள் பணிகளில் இது எத்தனை முறை தேவைப்படுகிறது என்று கேட்டுக்கொள்ளுங்கள். விதிகள் கோப்பு ஒவ்வொரு அமர்விலும் ஏற்றப்படும், எனவே தொகுப்பு மேலாளர் (package manager) அல்லது கிளை பெயரிடும் முறை (branch naming convention) போன்ற அனைத்துப் பணிகளுக்கும் பொதுவான உண்மைகளை அதில் வைக்கவும். ஒரு திறன் அது தூண்டப்படும்போது மட்டுமே ஏற்றப்படும், எனவே சில குறிப்பிட்ட பணிகளுக்கு மட்டும் தேவைப்படும் நடைமுறைகளை அங்கு வைப்பதே சரியானது. ஒரே அறிவுறுத்தலை இரண்டு இடங்களிலும் எழுத வேண்டாம்; ஏனெனில், காலப்போக்கில் அவை மாறுபட்டு, முகவர் எதைப் பின்பற்றியது என்பதைக் கண்டறிய முடியாமல் போய்விடும்.

ஒரு திறன் உண்மையில் உதவியதா என்பதை எப்படி அறிவது?

அடிப்படைத் தரவுகளுடன் (baseline) ஒப்பிட்டுப் பார்க்கவும். சில உண்மையான கோரிக்கைகளைச் சேகரிக்கவும். ஒவ்வொரு கோரிக்கையையும் அந்தத் திறன் இருக்கும் நிலையில் ஒரு புதிய அமர்வில் இயக்கவும். பிறகு, /skills மெனுவிலிருந்து அந்தத் திறனை அணைத்துவிட்டு மீண்டும் இயக்கவும். இரண்டு பதில்களையும் அருகருகே வைத்து வாசிக்கவும். புதிய அமர்வில் சோதிப்பது முக்கியம், ஏனெனில் நீங்கள் திறனை எழுதிய உரையாடலில் உங்கள் விளக்கங்கள் ஏற்கனவே இருக்கும், அது முழுமையற்ற கோப்பை முழுமையானது போலக் காட்டக்கூடும். skill-creator செருகுநிரல் (plugin) இந்த ஒப்பீட்டை உங்களுக்காகச் செய்து, டோக்கன் செலவுடன் சேர்த்து வெற்றி விகிதத்தையும் (pass rate) தெரிவிக்கும்.

ஒரே SKILL.md கோப்பை வெவ்வேறு முகவர்களுடன் பயன்படுத்த முடியுமா?

ஆம், Agent Skills தரநிலை வரையறுக்கும் புலங்களுக்குள் (fields) நீங்கள் இருக்கும் வரை இதைப் பயன்படுத்தலாம்: name, description, license, compatibility, metadata மற்றும் allowed-tools. Claude Code பல கூடுதல் புலங்களை ஏற்றுக்கொள்கிறது. மேலும், பிற கருவிகள் இயக்காத shell command injection போன்ற உடல் அம்சங்களையும் (body features) இது ஆதரிக்கிறது. தரநிலைக்கு வெளியே உள்ள ஒரு புலத்துடன் திறனைப் பதிவேற்றினால், அனுமதிக்கப்பட்ட பண்புகளைப் பட்டியலிடும் பிழைச் செய்தி தோன்றும். எனவே, ஒரு திறன் Claude Code-ல் மட்டும் இருக்க வேண்டுமா அல்லது பிற கருவிகளுக்கும் செல்ல வேண்டுமா என்பதை முன்கூட்டியே தீர்மானிக்கவும்.