సొంతంగా ఏజెంట్ స్కిల్ రాసుకోవడం ఎలా?
మీ స్వంత ఏజెంట్ స్కిల్ను రూపొందించే విధానం ఇక్కడ ఉంది. SKILL.md ఫైల్ నిర్మాణం, ఏజెంట్ ఎప్పుడు స్పందించాలో నిర్ణయించే డిస్క్రిప్షన్ లైన్ మరియు మీ స్కిల్ను ఎలా పరీక్షించాలో తెలుసుకోండి.
ఒక నిజమైన వైఫల్యం నుండి మీ స్వంత ఏజెంట్ స్కిల్ను రూపొందించడం
మీ స్వంత ఏజెంట్ స్కిల్ను రూపొందించడానికి ఉత్తమ మార్గం, దానిని ఒక నిజమైన వైఫల్యం నుండి సంగ్రహించడం. మీ కోడింగ్ ఏజెంట్ రెండుసార్లు తప్పుగా చేసిన ఒక పనిని గుర్తించండి, ఆ రెండుసార్లు మీరు టైప్ చేసిన సవరణను రాసుకోండి, మరియు ఆ సవరణను ఏజెంట్ స్వయంగా లోడ్ చేసుకోగల SKILL.md ఫైల్గా సేవ్ చేయండి. ఆ తర్వాత వచ్చేదంతా కేవలం సాంకేతిక ప్రక్రియ మాత్రమే: ఫైల్ లేఅవుట్, మరియు ఆ స్కిల్ ఎప్పుడు అమలు కావాలో నిర్ణయించే ఒకే ఒక లైన్.
ఆ క్రమం చాలా ముఖ్యం. ఊహతో రాసిన స్కిల్ మీకు ఎప్పుడూ ఎదురుకాని సమస్యను డాక్యుమెంట్ చేస్తుంది, మరియు అది ప్రతి సెషన్లోనూ context ను వృథా చేస్తుంది. మీరు స్వయంగా చూసిన వైఫల్యం నుండి సంగ్రహించిన స్కిల్, దానితో పాటే ఒక పరీక్షను కూడా కలిగి ఉంటుంది: అదే విషయాన్ని మళ్ళీ అడగండి, మరియు ఈసారి ఏజెంట్ దానిని సరిగ్గా చేస్తుందో లేదో చూడండి. ఒకవేళ ఈ ఫార్మాట్ మీకు కొత్తగా ఉంటే, ముందుగా ఏజెంట్ స్కిల్స్ అంటే ఏమిటి మరియు ఏజెంట్ వాటిని ఎలా లోడ్ చేస్తుంది అనే దానిని చదవండి, ఆపై తిరిగి వచ్చి ఒక స్కిల్ను రూపొందించండి.
ఏజెంట్ రెండుసార్లు తప్పు చేసిన పని నుండి ప్రారంభించండి
ఒకసారి జరిగితే అది యాదృచ్ఛికం. రెండుసార్లు జరిగితే అది ఒక పద్ధతి (pattern), ఆ పద్ధతిని ఒక ఫైల్గా భద్రపరచడం విలువైనది.
నిజమైన సర్వర్లపై పదేపదే జరిగే ఒక వైఫల్యం ఇక్కడ ఉంది. మీరు ఒక reverse proxy block ను nginx కు జోడించమని ఏజెంట్ను అడిగారు. అది /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 తో కాన్ఫిగరేషన్ను పరీక్షించండి, ఆపై restart కి బదులుగా reload తో దాన్ని అమలు చేయండి. ఒక వారం తర్వాత, వేరే పనిలో, మళ్ళీ అదే తప్పు జరుగుతుంది. ఆ రెండోసారి జరిగినదే సంకేతం.
వైఫల్యం మీ కళ్లముందే ఉన్నప్పుడు రెండు విషయాలను రాసుకోండి: మీరు టైప్ చేసిన అభ్యర్థన (request), మరియు మీరు ఇచ్చిన సవరణ (correction), మీరు ఉపయోగించిన పదాలతోనే. ఆ రెండు లైన్లు ఒక నైపుణ్యంగా (skill) మారుతాయి. అభ్యర్థన అనేది trigger దేనితో సరిపోలాలో చెబుతుంది. సవరణ అనేది పూర్తి కంటెంట్.
Anthropic యొక్క సొంత రచనా మార్గదర్శకాలు దీనికి మొదటి ప్రాధాన్యతనిస్తాయి. ఏజెంట్ను ఎటువంటి నైపుణ్యం లేకుండా ప్రాతినిధ్య పనులపై రన్ చేయండి, అది ఎక్కడ విఫలమవుతుందో రికార్డ్ చేయండి, ఆపై ఆ వైఫల్యాలను సరిచేసే కనీస సూచనలను రాయండి. వైఫల్యాలే స్పెసిఫికేషన్, కాబట్టి ఒక వైఫల్యంతో సంబంధం లేని నైపుణ్యం సాధారణంగా ఎవరికీ అవసరం లేనిది.
అదే distillation కు సంబంధించిన ఒక ఉదాహరణ కోసం, Ponytail ఒక పదేపదే జరిగే వైఫల్యాన్ని, అంటే మీరు అడిగిన దానికంటే ఎక్కువ రీరైట్ చేసే ఏజెంట్ను, ఒక నైపుణ్యంగా ఎలా మారుస్తుందో మీరు మీ స్వంత నైపుణ్యాన్ని రాసే ముందు పూర్తిగా చదవవచ్చు.
ఒక skill యొక్క నిర్మాణం
ఒక skill అనేది ఒక డైరెక్టరీ, ఇందులో ఒక తప్పనిసరి ఫైల్ ఉంటుంది.
.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 లో ఇది కేవలం ప్రదర్శన లేబుల్ మాత్రమే. మీరు టైప్ చేసే కమాండ్ డైరెక్టరీ పేరు నుండి వస్తుంది, కాబట్టి ఇది/nginx-config-changesకమాండ్కు స్పందిస్తుంది.description: ఈ skill ఏమి చేస్తుంది మరియు దీనిని ఎప్పుడు ఉపయోగించాలి, గరిష్టంగా 1,024 అక్షరాలు. ఈ లైన్ అసలైన పనిని చేస్తుంది, మరియు తదుపరి విభాగం దీని గురించి మాత్రమే వివరిస్తుంది.- బాడీ (The body): సూచనలు, ఇవి skill అమలు అయినప్పుడు మాత్రమే లోడ్ అవుతాయి.
reference/: ఏజెంట్ అడిగినప్పుడు చదివే అదనపు ఫైళ్లు. వీటినిSKILL.mdనుండి లింక్ చేయండి మరియు లింక్లను ఒక స్థాయి లోతులోనే ఉంచండి, ఎందుకంటే మరొక ఫైల్ నుండి రిఫరెన్స్ చేయబడిన ఫైల్ కొన్నిసార్లు పాక్షికంగా మాత్రమే చదవబడుతుంది.scripts/: ఏజెంట్ చదవడానికి బదులుగా అమలు చేసే ఫైళ్లు. వీటి అవుట్పుట్ మాత్రమే కాంటెక్స్ట్ పరిమాణాన్ని ప్రభావితం చేస్తుంది, కాబట్టి 300 లైన్ల స్క్రిప్ట్ కూడా తక్కువ ఖర్చుతో కూడుకున్నదే.
ఒక skill పరిష్కరించే సమస్య మొండిగా ఉన్నప్పుడు, అది పూర్తి స్థాయి లేఅవుట్గా మారుతుంది. అప్పుడు the unlazy skill spends that room on a Depth Tree, a set of gates files and a PLAN.md contract ఉపయోగిస్తారు. ఇది పని ఇంకా మిగిలి ఉన్నప్పుడు ఏజెంట్ పని పూర్తయిందని ప్రకటించకుండా నిరోధిస్తుంది.
మీరు డైరెక్టరీని ఎక్కడ ఉంచుతారనే దానిపై ఆ skill ఎవరికి అందుబాటులో ఉంటుందో నిర్ణయించబడుతుంది.
.claude/skills/<name>/SKILL.mdరిపోజిటరీలో: ఈ ప్రాజెక్ట్కు మాత్రమే, మరియు రిపోజిటరీని క్లోన్ చేసే ప్రతి ఒక్కరికీ ఇది అందుతుంది.~/.claude/skills/<name>/SKILL.md: మీ మెషీన్లోని ప్రతి ప్రాజెక్ట్కు, మరియు వేరెవరికీ కాదు.<plugin>/skills/<name>/SKILL.md: ప్లగిన్ లోపల ప్యాక్ చేయబడింది, ఆ ప్లగిన్ ఎనేబుల్ చేయబడిన చోటల్లా ఇది అందుబాటులో ఉంటుంది.
mkdir -p .claude/skills/nginx-config-changes ఉపయోగించి ఒకదానిని సృష్టించండి మరియు ఫైల్ను రాయండి. Claude Code ఈ డైరెక్టరీలను గమనిస్తూ ఉంటుంది, కాబట్టి ఇప్పటికే ఉన్న skill ను ఎడిట్ చేస్తే అది రన్ అవుతున్న సెషన్లోనే వెంటనే అమల్లోకి వస్తుంది. సెషన్ ప్రారంభమైనప్పుడు లేని ఒక టాప్-లెవల్ skills డైరెక్టరీని కొత్తగా సృష్టించినట్లయితే, సెషన్ను రీస్టార్ట్ చేయాలి. ఎందుకంటే సెషన్ ప్రారంభమైనప్పుడు గమనించడానికి అక్కడ ఏమీ లేదు.
ఫైల్లోని description ఫీల్డ్ అత్యంత కీలకమైన లైన్
స్టార్టప్ సమయంలో, ఏజెంట్ ప్రతి అందుబాటులో ఉన్న స్కిల్ యొక్క name మరియు description లను దాని కాంటెక్స్ట్లోకి లోడ్ చేస్తుంది. ఇది బాడీలను లోడ్ చేయదు. మీ అభ్యర్థన వచ్చినప్పుడు, ఆ ఒక్క లైన్ మాత్రమే ఈ స్కిల్ సంబంధితమైనదా కాదా అని నిర్ణయించడానికి ప్రాతిపదికగా ఉంటుంది, కాబట్టి అస్పష్టమైన వివరణ వెనుక ఉన్న ఎంత గొప్ప బాడీ అయినా చదవబడదు.
వివరణను థర్డ్ పర్సన్లో రాయండి. "Tests and reloads nginx safely" అనేది పనిచేస్తుంది. "I can help you with nginx" అనేది పనిచేయదు, ఎందుకంటే ఈ టెక్స్ట్ సిస్టమ్ ప్రాంప్ట్లోకి ఇంజెక్ట్ చేయబడుతుంది, అక్కడ ఫస్ట్ పర్సన్ వాడటం వల్ల మోడల్ తన గురించి తాను మాట్లాడుకుంటున్నట్లుగా అనిపిస్తుంది.
దీనిలో రెండు విషయాలను చేర్చండి: స్కిల్ ఏమి చేస్తుంది మరియు అది ఏ పరిస్థితుల్లో వర్తిస్తుంది. ముఖ్యమైన యూజ్ కేస్ను మొదట ఉంచండి, ఎందుకంటే Claude Code లిస్టింగ్ ఎంట్రీని 1,536 క్యారెక్టర్ల వద్ద కత్తిరిస్తుంది (truncate చేస్తుంది). అదనపు ట్రిగ్గర్ పదబంధాలు మరియు ఉదాహరణ అభ్యర్థనల కోసం ఒక ఐచ్ఛిక when_to_use ఫీల్డ్ ఉంది, ఇది అదే పరిమితి కింద వివరణకు జోడించబడుతుంది.
ఆపై మీరు నిజంగా టైప్ చేసే పదాలను ఉపయోగించండి. description: Helps with nginx దేనితోనూ మ్యాచ్ అవ్వదు, ఎందుకంటే ఎవరూ "helps with" అని టైప్ చేయరు. పైన ఉన్న వెర్షన్ /etc/nginx, server block, reverse proxy మరియు TLS (transport layer security) certificate path లను పేర్కొంటుంది, ఇది ఆ స్కిల్ను ట్రిగ్గర్ చేయాల్సిన ఏదైనా అభ్యర్థన యొక్క పదజాలానికి సమానంగా ఉంటుంది.
వివరణ కోసం ఇక్కడ ఒక పరీక్ష ఉంది. బాడీని ఎప్పుడూ చూడని వ్యక్తికి ఆ ఒక్క లైన్ను, మీరు టైప్ చేయబోయే అభ్యర్థనతో పాటు ఇచ్చి, ఆ స్కిల్ వర్తిస్తుందో లేదో అడగండి. వారు చెప్పలేకపోతే, మోడల్ కూడా చెప్పలేదు.
బాడీని చిన్నదిగా ఉంచండి, ఎందుకంటే ఇది సందర్భంలోనే ఉంటుంది
ఒక skill ని పిలిచినప్పుడు, దాని ద్వారా రూపొందించబడిన కంటెంట్ ఒక సందేశంగా సంభాషణలోకి ప్రవేశిస్తుంది మరియు సెషన్ ముగిసే వరకు అక్కడే ఉంటుంది. Claude Code తర్వాతి మలుపులలో ఫైల్ను మళ్లీ చదవదు. మీరు రాసే ప్రతి లైన్ ఒక సమాధానం కోసం కాకుండా, మొత్తం సెషన్ కోసం మీరు చెల్లించే ఖర్చు అవుతుంది.
SKILL.md ని 500 లైన్ల లోపు ఉంచాలని మరియు వివరాలను ప్రత్యేక ఫైళ్లకు తరలించాలని Anthropic సిఫార్సు చేస్తోంది. ఆ సంఖ్య ఎందుకు యాదృచ్ఛికం కాదో కాంపాక్షన్ చూపిస్తుంది. సందర్భాన్ని ఖాళీ చేయడానికి సంభాషణను సంగ్రహించినప్పుడు, Claude Code ప్రతి skill యొక్క అత్యంత ఇటీవలి ఇన్వోకేషన్ను తిరిగి జోడిస్తుంది, ప్రతి దానిలో మొదటి 5,000 టోకెన్లను మాత్రమే ఉంచుతుంది మరియు అత్యంత ఇటీవలి skill నుండి ప్రారంభించి మొత్తం 25,000 టోకెన్ల బడ్జెట్ను భర్తీ చేస్తుంది. ఒక సుదీర్ఘమైన skill మధ్యలోనే కత్తిరించబడుతుంది. అనేక సుదీర్ఘమైన skills ఒకదానికొకటి పూర్తిగా బయటకు నెట్టేస్తాయి.
కాబట్టి మోడల్కు ఇప్పటికే తెలియని విషయాలను మాత్రమే రాయండి. nginx అంటే ఏమిటి మరియు reverse proxy ఏమి చేస్తుందో దానికి తెలుసు. restart కంటే reload ని ఉపయోగించాలనే మీ ఇంటి నియమం దానికి తెలియదు, మరియు ఆ నియమం వల్లే ఈ ఫైల్ ఉనికిలో ఉంది.
ఒకవేళ ఆ skill ఏజెంట్ను బండిల్ చేసిన script ని రన్ చేయమని చెబితే, ఆ పాత్ను ${CLAUDE_SKILL_DIR} తో పేర్కొనండి, తద్వారా ఆ skill ఎక్కడ ఇన్స్టాల్ చేయబడినా అది పనిచేస్తుంది. అలాగే అదే కమాండ్ను ముందుగానే ఆమోదించండి (pre-approve), తద్వారా రన్ అయ్యేటప్పుడు పర్మిషన్ ప్రాంప్ట్ వద్ద ఆగిపోదు.
---
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 *)
---ఈ అనుమతి (grant) ఆ skill ని పిలిచిన టర్న్కు మాత్రమే వర్తిస్తుంది మరియు మీరు తదుపరి సందేశాన్ని పంపినప్పుడు క్లియర్ అవుతుంది, కాబట్టి ఇది శాశ్వత అనుమతిగా మారదు.
skill ఎలా పనిచేస్తుందో నిర్ధారించడం ఎలా
ఒక skill లోడ్ అవ్వడాన్ని గమనిస్తే, agent దానిని గుర్తించిందని అర్థం. కానీ, దాని వల్ల సమాధానం మారిందని దీని అర్థం కాదు. రెండింటినీ తనిఖీ చేయండి. అలాగే, కొత్త session లో పరీక్షించండి, ఎందుకంటే మీరు skill రాస్తున్నప్పుడు వాడిన session లో మీరు చెప్పిన విషయాలన్నీ నిల్వ ఉంటాయి. ఆ పాత context ఫైల్లోని లోపాలను కప్పిపుచ్చుతుంది.
- ప్రాజెక్టులో
claudeతో కొత్త session ప్రారంభించండి. - సాధారణ పని రోజున మీరు అడిగే విధంగా, skill పేరును ప్రస్తావించకుండా మీ సొంత మాటల్లో అభ్యర్థనను టైప్ చేయండి.
- అది invoke అవుతుందో లేదో గమనించండి. ఒకవేళ skill పనిచేయకపోతే, దాని వివరణను (description) సరిచేయండి. అప్పటికి body లో సమస్య ఉండదు.
- నియంత్రణ (control) కోసం
/nginx-config-changesతో మాన్యువల్గా invoke చేయండి. మాన్యువల్గా invoke చేసినప్పుడు సరిగ్గా పనిచేసి, అభ్యర్థన ద్వారా అడిగినప్పుడు తప్పుగా పనిచేస్తుంటే, అది instruction సమస్య కాదు, trigger సమస్య అని అర్థం. - skill ను ఆపివేసి (switch off) అదే అభ్యర్థనను రన్ చేయండి, రెండింటి సమాధానాలను పోల్చండి.
/skillsమెనూలో, skill ను ఎంచుకుని,Spaceనొక్కి దాని స్థితినిoffకి మార్చండి, ఆపై సేవ్ చేయడానికిEnterనొక్కండి. ఇది.claude/settings.local.jsonలో ఒకskillOverridesఎంట్రీని రాస్తుంది. పని పూర్తయ్యాక, మళ్ళీSpaceనొక్కితే అది తిరిగిonస్థితికి వస్తుంది. - skill ట్రిగ్గర్ అవ్వకూడని కొన్ని అభ్యర్థనలను రాసి, అప్పుడు అది స్పందించకుండా ఉంటుందో లేదో తనిఖీ చేయండి.
ఈ ప్రక్రియను ఆటోమేట్ చేయడానికి, అధికారిక marketplace నుండి skill-creator ప్లగిన్ను ఇన్స్టాల్ చేయండి.
/plugin marketplace add anthropics/claude-plugins-official
/plugin install skill-creator@claude-plugins-officialఇన్స్టాల్ అవుట్పుట్లో Run /reload-plugins to activate. అని కనిపిస్తే, ఆ కమాండ్ను రన్ చేయండి. ఆ తర్వాత మీ skill ను పేరుతో evaluate చేయమని Claude ను అడగండి. ఈ ప్లగిన్ test cases ను skill డైరెక్టరీలోని evals/evals.json లో నిల్వ చేస్తుంది మరియు ప్రతి case ను విడి subagent లో రన్ చేస్తుంది, కాబట్టి ప్రతి రన్ కొత్త context తో మొదలవుతుంది. ఇది skill ఉన్నప్పుడు మరియు లేనప్పుడు వచ్చే సమాధానాలను పోల్చి చూపిస్తుంది. ఇదే అసలైన ఫలితం: skill కోసం ఖర్చయ్యే tokens మరియు సమయంతో పోలిస్తే, అది ఎంత మెరుగైన ఫలితాన్ని ఇస్తుందో ఇది తెలియజేస్తుంది.
ఒక skill విడిగా eval రన్ చేయాల్సిన అవసరం లేకుండా, తన సొంత నిరూపణను కూడా కలిగి ఉండవచ్చు. the Old Coder skill చేసేది ఇదే, ఇది agent ద్వారా ఒక evidence report ను ఇప్పిస్తుంది, దానిని మీరు మళ్ళీ రన్ చేసుకోవచ్చు.
వైఫల్య విధానం: skill ఎప్పుడూ ట్రిగ్గర్ అవ్వదు
మీరు అభ్యర్థనను టైప్ చేసినప్పుడు, ఏజెంట్ పాత తప్పు పద్ధతినే అనుసరిస్తుంది మరియు ఎటువంటి skill లైన్ కనిపించదు. వీటిని క్రమ పద్ధతిలో పరిశీలించండి.
- వివరణలో skill ఏమి చేస్తుందో ఉంది కానీ అది ఎప్పుడు ఉపయోగించాలో లేదు, కాబట్టి మీ అభ్యర్థనలో ఏదీ దానికి సరిపోలడం లేదు.
- వివరణలో మీరు టైప్ చేసిన పదాలు లేవు. మీరు "nginx" అని అంటే, వివరణలో కూడా nginx అని ఉండాలి.
disable-model-invocation: trueఫ్రంట్మ్యాటర్లో సెట్ చేయబడింది. ఇది వివరణను మోడల్ యొక్క కాంటెక్స్ట్ నుండి పూర్తిగా దూరంగా ఉంచుతుంది, మరియు ఆ skill ను మీరు కేవలం/nameద్వారా మాత్రమే పిలవగలరు.- ఫ్రంట్మ్యాటర్లోని
pathsగ్లోబ్ యాక్టివేషన్ను సరిపోలే ఫైళ్లకు మాత్రమే పరిమితం చేస్తుంది, మరియు మీరు పని చేస్తున్న ఫైల్ దానికి సరిపోలడం లేదు. - ఈ skill మీ ప్రారంభ డైరెక్టరీకి దిగువన ఉన్న ఒక నెస్టెడ్
.claude/skills/డైరెక్టరీలో ఉంది. ఏజెంట్ ఆ సబ్-డైరెక్టరీలోని ఫైల్ను చదివినప్పుడు లేదా ఎడిట్ చేసినప్పుడు మాత్రమే అవి లోడ్ అవుతాయి, కాబట్టి అంతవరకు ఆ skill అందుబాటులో ఉండదు.
వైఫల్య విధానం: స్కిల్ నిరంతరం ట్రిగ్గర్ అవ్వడం
దీనికి విరుద్ధమైన సమస్య ఏమిటంటే, వివరణ చాలా విస్తృతంగా ఉండటం వల్ల సంబంధం లేని పనులకు కూడా స్కిల్ స్పందించడం. "సర్వర్పై పనిచేసేటప్పుడు ఉపయోగించు" అనే వివరణ, సర్వర్ రిపోజిటరీలోని దాదాపు ప్రతి అభ్యర్థనకు సరిపోతుంది. దీనివల్ల స్కిల్ తనకు సంబంధం లేని పనులకు కూడా లోడ్ అవుతుంది మరియు సెషన్ మొత్తం అలాగే కొనసాగుతుంది.
వివరణను నిజంగా ముఖ్యమైన కండిషన్కు పరిమితం చేయండి మరియు అది కవర్ చేసే ఫైళ్లు లేదా కమాండ్ల పేర్లను పేర్కొనండి. స్కిల్ కేవలం కొన్ని నిర్దిష్ట ఫైళ్లకు మాత్రమే వర్తించేటప్పుడు paths గ్లోబ్ను జోడించండి. డిప్లాయ్ (deploy) లేదా కమిట్ (commit) వంటి సైడ్ ఎఫెక్ట్స్ ఉన్న ఏ పనికైనా, disable-model-invocation: true సెట్ చేసి, దానిని మీరే /name తో ఇన్వోక్ చేయండి. తద్వారా, డిప్లాయ్ చేయడానికి ఇదే సరైన సమయమని ఏజెంట్ సొంతంగా నిర్ణయం తీసుకోకుండా చూడవచ్చు.
వైఫల్య విధానం: నైపుణ్యం (skill) మీ రూల్స్ ఫైల్లో ఉండాలి
CLAUDE.md లేదా AGENTS.md వంటి రూల్స్ ఫైల్ ప్రతి సెషన్ ప్రారంభంలో లోడ్ అవుతుంది మరియు ప్రతి పనికి వర్తిస్తుంది. ఒక నైపుణ్యం (skill) బాడీ, ఆ నైపుణ్యం అమలులోకి వచ్చినప్పుడు మాత్రమే లోడ్ అవుతుంది. దీనికి సంబంధించిన నిర్ణయం మొత్తం ఫ్రీక్వెన్సీపై ఆధారపడి ఉంటుంది. మీరు ఉపయోగించే ప్యాకేజీ మేనేజర్ వంటి, రిపోజిటరీలోని ప్రతి పనికి వర్తించే వాస్తవం రూల్స్ ఫైల్లో ఉండాలి. పైన పేర్కొన్న nginx రూల్ వంటి, తక్కువ పనులకు మాత్రమే వర్తించే విధానం ఒక నైపుణ్యంలో ఉండాలి; ఎవరూ nginx ను ఎడిట్ చేయని రోజుల్లో దీనివల్ల ఎటువంటి అదనపు భారం ఉండదు.
నిజమైన వైఫల్యం ఏమిటంటే, ఒకే విషయాన్ని రెండు చోట్లా ఉంచడం. రెండు కాపీలు కాలక్రమేణా మారుతుంటాయి, ఏజెంట్ తప్పు చేసినప్పుడు అది ఏ కాపీని అనుసరించిందో మీరు గుర్తించలేరు. ప్రతి సూచనకు ఒకే చోట స్థానం కల్పించండి. ఇప్పటికే ఒకే చోట ఉన్న రూల్ను ఏజెంట్ పట్టించుకోకపోతే, అది వేరే సమస్య. అటువంటప్పుడు, దాన్ని నైపుణ్యంలోకి మార్చి సమస్య పరిష్కారమవుతుందని ఆశించే ముందు నిర్లక్ష్యం చేయబడిన సూచన వెనుక ఉన్న మెకానిక్స్ గురించి పరిశీలించడం మంచిది. నైపుణ్యాలు, MCP సర్వర్లు మరియు రూల్స్ ఫైళ్ల మధ్య సరిహద్దు క్లిష్టమైన సందర్భాలను వివరిస్తుంది; ఇందులో ఏజెంట్కు కొత్త సూచనను ఇచ్చే బదులు, కొత్త సాధనాన్ని (tool) అందించే MCP (model context protocol) సర్వర్ను ఉపయోగించడం సరైన సమాధానం అయ్యే సందర్భాలు కూడా ఉంటాయి.
అర్హత సాధించిన తర్వాత దానిని షేర్ చేయండి
ఒక వారం రోజుల నిజమైన పనిలో ఉపయోగపడిన నైపుణ్యం (skill) భద్రపరచదగినది. .claude/skills/ లోని ప్రాజెక్ట్ నైపుణ్యాలు కోడ్ లాగానే సమీక్షించబడతాయి మరియు రిపోజిటరీతో పాటే వస్తాయి. కాబట్టి, దానిని క్లోన్ చేసుకునే సహోద్యోగికి ఎటువంటి అదనపు సెటప్ అవసరం లేకుండానే మీ సవరణలు అందుతాయి. కాపీ-పేస్ట్ చేయకుండా ఒక రిపోజిటరీ నుండి మరొక దానికి నైపుణ్యాన్ని తరలించడం ఒక ప్రత్యేక సమస్య, దీని గురించి how to share agent skills across repos లో వివరించబడింది.
పోర్టబిలిటీ గురించి ఒక ముఖ్య గమనిక. Claude Code అనేక ఫ్రంట్మేటర్ ఫీల్డ్లను అంగీకరిస్తుంది, కానీ Agent Skills ప్రమాణం కేవలం ఆరింటిని మాత్రమే అనుమతిస్తుంది: name, description, license, compatibility, metadata మరియు allowed-tools. ఫ్రంట్మేటర్లో వీటి కంటే అదనంగా ఏవైనా ఉంచి, ఒక నైపుణ్యాన్ని claude.ai కి అప్లోడ్ చేసినా లేదా Skills API కోసం ప్యాకేజీ చేసినా, అది ఆ ఫీల్డ్లను విస్మరించకుండా నేరుగా విఫలమవుతుంది:
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 నైపుణ్యం సహోద్యోగి చెకౌట్కు ఉపయోగకరంగా ఉంటుంది, కానీ సర్వర్ను చేరుకోలేని శాండ్బాక్స్లో అది నిరుపయోగం. వేరే మోడల్కు మారినప్పుడు కూడా పనిచేసేలా సూచనలను రాయడం ఒక ప్రత్యేక పని, దీని గురించి writing skills that work with any model లో వివరించబడింది.
FAQ
SKILL.md ఫైల్ ఎంత పొడవు ఉండాలి?
దీనిని 500 లైన్ల లోపు ఉంచండి. చాలా ఉపయోగకరమైన స్కిల్స్ అంతకంటే చాలా తక్కువ పొడవునే ఉంటాయి. ఒక స్కిల్ ఉపయోగించినప్పుడు దాని బాడీ (body) సంభాషణలోకి ప్రవేశించి, సెషన్ ముగిసే వరకు అక్కడే ఉంటుంది. కాబట్టి, ప్రతి లైన్ ఒకేసారి కాకుండా, ప్రతిసారీ ఖర్చుతో కూడుకున్నదిగా మారుతుంది. ఎక్కువ సమాచారం ఉన్న రిఫరెన్స్ మెటీరియల్ను స్కిల్ డైరెక్టరీలోని వేరే ఫైళ్లకు తరలించి, వాటిని SKILL.md నుండి ఒక స్థాయి లోతులో లింక్ చేయండి. దీనివల్ల ఏజెంట్ అవసరమైనప్పుడు మాత్రమే వాటిని చదువుతుంది. బండిల్ చేసిన స్క్రిప్ట్లను చదవకుండా నేరుగా అమలు చేస్తారు, కాబట్టి వాటి అవుట్పుట్ మాత్రమే ఖర్చు అవుతుంది.
నా స్కిల్ ఎందుకు ట్రిగ్గర్ అవ్వడం లేదు?
సాధారణంగా దీనికి కారణం డిస్క్రిప్షన్ (description). మోడల్ ఒక నిర్ణయం తీసుకునేటప్పుడు కాంటెక్స్ట్లో ఉండే ఏకైక భాగం ఇదే. స్కిల్ ఏమి చేస్తుందో మాత్రమే కాకుండా, దానిని ఎప్పుడు ఉపయోగించాలో కూడా డిస్క్రిప్షన్లో స్పష్టంగా రాయండి. మీరు అభ్యర్థనలలో టైప్ చేసే పదాలు అందులో ఉండేలా చూసుకోండి. డిస్క్రిప్షన్ సరిగ్గానే ఉంటే, disable-model-invocation: true కోసం ఫ్రంట్మ్యాటర్ను తనిఖీ చేయండి; ఇది స్కిల్ను మోడల్కు పూర్తిగా కనిపించకుండా చేస్తుంది. అలాగే, మీరు పని చేయని ఫైళ్లకు మాత్రమే పరిమితం చేసే paths గ్లోబ్ (glob) ఉందేమో చూడండి. మీ స్టార్టింగ్ డైరెక్టరీకి దిగువన ఉన్న నెస్టెడ్ .claude/skills/ డైరెక్టరీలోని స్కిల్ కూడా ట్రిగ్గర్ అవ్వకపోవచ్చు; ఏజెంట్ ఆ సబ్-డైరెక్టరీలోని ఫైల్ను చదివినప్పుడు లేదా ఎడిట్ చేసినప్పుడు మాత్రమే అది లోడ్ అవుతుంది.
ఇది స్కిల్ అవ్వాలా లేదా నా రూల్స్ ఫైల్లో ఒక లైన్ అవ్వాలా?
మీ పనులలో ఇది ఎంత తరచుగా ఉపయోగపడుతుందో ఆలోచించండి. రూల్స్ ఫైల్ ప్రతి సెషన్లో లోడ్ అవుతుంది, కాబట్టి ప్యాకేజీ మేనేజర్ లేదా బ్రాంచ్ నేమింగ్ కన్వెన్షన్ వంటి ప్రతి పనికి వర్తించే విషయాలను అందులో ఉంచాలి. ఒక స్కిల్ అది ట్రిగ్గర్ అయినప్పుడు మాత్రమే లోడ్ అవుతుంది, కాబట్టి తక్కువ పనులకు మాత్రమే అవసరమయ్యే విధానాలకు ఇది సరైన చోటు. ఒకే సూచనను రెండు చోట్లా రాయకండి. అలా చేస్తే, రెండు కాపీల మధ్య తేడాలు వచ్చి, ఏజెంట్ దేనిని అనుసరించిందో తెలుసుకోవడం కష్టమవుతుంది.
ఒక స్కిల్ నిజంగా సహాయపడిందని నాకు ఎలా తెలుస్తుంది?
దీనిని ఒక బేస్లైన్తో పోల్చి చూడండి. కొన్ని నిజమైన అభ్యర్థనలను సేకరించండి. ప్రతి అభ్యర్థనను స్కిల్ అందుబాటులో ఉన్నప్పుడు ఒక కొత్త సెషన్లో రన్ చేయండి. ఆ తర్వాత /skills మెనూ నుండి స్కిల్ను ఆఫ్ చేసి మళ్ళీ రన్ చేయండి. రెండు సమాధానాలను పక్కపక్కన పెట్టి చదవండి. కొత్త సెషన్లో పరీక్షించడం ముఖ్యం, ఎందుకంటే మీరు స్కిల్ రాసిన సంభాషణలో మీ వివరణలు ఉంటాయి, ఇది అసంపూర్ణమైన ఫైల్ను కూడా పూర్తిస్థాయిలో ఉన్నట్లు చూపిస్తుంది. skill-creator ప్లగిన్ ఈ పోలికను మీ కోసం చేసి, టోకెన్ ఖర్చుతో పాటు సక్సెస్ రేటును కూడా తెలియజేస్తుంది.
నేను ఒకే SKILL.mdని వేరే ఏజెంట్తో ఉపయోగించవచ్చా?
అవును, Agent Skills ప్రమాణాలు నిర్వచించిన ఫీల్డ్స్ (name, description, license, compatibility, metadata మరియు allowed-tools) పరిధిలో ఉన్నంత వరకు మీరు ఉపయోగించవచ్చు. Claude Code మరిన్ని ఫీల్డ్స్ను అంగీకరిస్తుంది. ఇతర టూల్స్ రన్ చేయని షెల్ కమాండ్ ఇంజెక్షన్ వంటి బాడీ ఫీచర్లకు కూడా ఇది మద్దతు ఇస్తుంది. ప్రమాణాలకు వెలుపల ఉన్న ఫీల్డ్తో స్కిల్ను అప్లోడ్ చేస్తే, అనుమతించబడిన ప్రాపర్టీలను పేర్కొంటూ ఎర్రర్ వస్తుంది. కాబట్టి, ఒక స్కిల్ Claude Code లోనే ఉండాలా లేదా ఇతర చోట్ల కూడా ఉపయోగపడాలా అనేది ముందే నిర్ణయించుకోండి.