Paano I-share ang Agent Skills Nang Walang Drift
Ipinapakita kung paano gumamit ng isang shared repo, pinned version, smoke test, at review path para hindi magkaiba ang skill copies sa walong repo.
Paano magbahagi ng agent skills sa iba’t ibang repo
Para magbahagi ng agent skills sa iba’t ibang repo, huwag nang kopyahin ang file at sa halip ay gawing dependency ito. Magpanatili ng isang skills repository, lagyan ito ng tag, at ipa-pin sa bawat project ang isang tag. Pagkatapos, magdagdag ng smoke test para sa bawat skill, at i-review ang bawat update gaya ng pag-review sa pag-update ng isang dependency.
May apat na bahagi ito: isang shared source of truth, naka-pin na version para sa bawat repository, smoke test para sa bawat skill, at review path. Ipinapaliwanag sa ibaba kung bakit kailangan ang bawat bahagi, paano ito hinahandle ng mga tool na nire-release sa 2026, at paano buuin ang buong setup sa self-hosted git remote nang walang kasamang external service.
Ang agent skill ay isang folder na naglalaman ng SKILL.md file, pati ng anumang script at reference file na kailangan nito. Kung bago sa iyo ang unit na ito, basahin muna ang kung ano ang agent skill at paano gumagana ang SKILL.md. Tungkol ang page na ito sa supply chain na nakapaligid sa unit na iyon.
Saan nakaimbak ang isang skill, at bakit mahirap itong i-share
Nilo-load ng Claude Code ang mga skill mula sa tatlong lugar, at tinutukoy ng dokumentasyon ng skills ang bawat path.
~/.claude/skills/<skill-name>/SKILL.mday personal. Nilo-load ito sa lahat ng iyong project at hindi sa project ng iba..claude/skills/<skill-name>/SKILL.mday nasa antas ng project. Nilo-load ito para sa sinumang mag-checkout ng repository na iyon.<plugin>/skills/<skill-name>/SKILL.mday kasama sa isang plugin. Nilo-load ito saanman naka-enable ang plugin na iyon.
Ang pangalawa ang kapaki-pakinabang para sa isang team dahil naka-commit ito, at makukuha ito ng lahat ng magco-clone ng repo. Dito rin nagsisimula ang problema. Ang isang skill sa .claude/skills/ ay pagmamay-ari ng isang repository. Mayroon kang walong repository. Kaya walong beses makokopya ang skill.
Walang naitutulong ang frontmatter. Anim na key ang pinapayagan ng Agent Skills spec, at ipinapakita ng mga distribution path na nagpapatupad nito ang listahan kapag ibang key ang ginamit mo:
Unexpected key(s) in SKILL.md frontmatter: argument-hint. Allowed properties are: allowed-tools, compatibility, description, license, metadata, namePansinin kung ano ang wala: walang version key. Walang anumang nasa loob ng file na nagtatala kung aling kopya ang mas bago. Makatuwiran ito dahil document ang isang skill, hindi package. Ibig sabihin, kailangang manggaling sa layer sa paligid ng file ang versioning, at ikaw ang responsable sa layer na iyon.
Unang problema: walong kopyang unti-unting nagkakaiba
Gumagana ang copy-paste sa unang araw. Pumapalya ito pagsapit ng ika-60 araw. May nag-aayos ng maling instruction sa payments repo pero hindi ina-update ang pito pa. May ibang nagdaragdag ng rule tungkol sa pagination sa orders. Ngayon, nagbibigay ng dalawang magkaibang review ang parehong skill name depende sa directory kung saan nagsimula ang agent, at walang developer ang nakakaalam nito.
Tahimik ang failure dahil walang error state. Prose ang isang skill. Nagdudulot ang lumang instruction ng kumpiyansa ngunit maling sagot, at iyon ang mas magastos na uri ng error. Walang bahagi ng agent ang nagko-compare ng kopya mo sa kopya ng iba, kaya ang tanging signal ay kapag may taong nakapansing hindi nagtutugma ang dalawang repo.
Problema 2: walang nagpi-pin ng version
Kahit nasa iisang lugar ang mga skill ng team, karaniwang paraan ng pagbabahagi ang pagkopya: isang setup script, isang linya ng curl sa onboarding doc, o isang shell alias na nagsi-sync ng folder. Ini-install ng lahat ng iyon kung ano ang kasalukuyang nasa pinakahuling commit ng branch.
Ibig sabihin, maaaring magpatakbo ng magkakaibang instruction ang dalawang developer na gumagamit ng parehong commit ng parehong application dahil magkaibang araw nila isinagawa ang sync. Ibig sabihin din, hindi mo masasagot ang mahalagang tanong pagkatapos ng isang maling agent run: aling version ng skill ang gumawa nito? Kung walang naitalang revision, hindi reproducible ang run, kaya hindi actionable ang bug report.
Problema tatlo: walang nakaaalam kung gumagana pa ang skill
Walang compiler ang isang skill. Mga instruction ito para sa isang model, kaya maaari itong tumigil sa paggana kahit eksaktong pareho pa rin ang file sa bawat byte. Binabago ng model upgrade kung gaano nito nasusunod nang eksakto ang mahahabang instruction. Maaaring mapalitan ng command-line tool na tinatawag ng skill ang pangalan ng isang flag. Maaari ring magsimulang magbalik ng 404 ang isang URL sa reference file, at gamitin ng agent ang error page bilang batayan.
Walang malinaw na failure sa alinman sa mga sitwasyong ito. Sumasagot pa rin ang agent. Mas masama lang ang sagot kaysa noong nakaraang buwan, at mahirap itong mapansin kung paisang pull request lang ang sinusuri.
Mga nilulutas ng mga tool na inilalabas sa 2026
May ilang sagot na lumalabas ngayon, at hindi sila nagkakasundo kung saan dapat ilagay ang bersyon.
Lockfiles. Ang skills command line tool mula sa Vercel Labs (vercel-labs/skills, may MIT license, v1.5.22 noong 5 August 2026) ay nag-i-install ng skills mula sa git repository papunta sa directory na inaasahan ng iyong agent. Alam nito ang layout para sa mahigit pitumpung agent. Nag-i-install ang npx skills add <repo>, nag-a-upgrade ang npx skills update, at ipinapakita ng npx skills list kung ano ang mayroon ka. Isang beses bawat user, sa halip na isang beses bawat repository, iniingatan ang record ng mga naka-install. May open request sa project na iyon (issue 283) para sa skills install command na muling nag-i-install ng lahat ng naka-track na skill mula sa lock file, upang magkapareho ang set sa ikalawang machine. Ituring ang request na iyon bilang status report. Napagpasyahan na ang lockfile approach. Ginagawa pa rin ang bahagi nito para sa bawat project.
Specs at tests. Iba ang approach ng SkillSpec. Itinuturing nito ang SKILL.md bilang contract na dapat i-check, sa halip na prose na basta pagkatiwalaan. Ang nakasaad nitong layunin ay gawing “followable, testable, at provable” ang skills. Iniuulat ng skillspec doctor <path> kung saan malamang mawala sa thread ang isang agent. Iniuulat ng skillspec boundary map <path> kung ano ang maaaring maabot ng skill, at niraranggo ng skillspec boundary assess <path> ang mga resultang iyon ayon sa risk. Rust crate ito na may dual license na MIT o Apache 2.0, at nasa bersyon 0.2.2 noong 29 July 2026. I-install ang naka-pin na bersyon sa halip na ang pinakabago:
cargo install skillspec --version 0.2.2 --locked
skillspec --versionNagbu-build ang --locked gamit ang mga dependency version na kasama noong inilabas ang crate, kaya hindi nagbabago ang build nang hindi mo namamalayan. Dapat i-print ng skillspec --version ang 0.2.2. Ibig sabihin ng ibang number na isang mas lumang binary sa unahan ng iyong PATH ang ginagamit.
Practice ng vendor. Inilarawan ng Google kung paano nito bina-build ang mga skill sa google/skills sa isang post tungkol sa kung paano nito bina-build, tine-test, at pinalalawak ang mga agent skill. Kapag inalis ang scale, ordinaryong continuous integration (CI) ang mekanismo. Bawat skill ay dumaraan sa mga linter para sa frontmatter metadata, bilang ng linya, directory layout, at naming bago ito ma-merge. Pinapabagsak ng link checker ang build kapag may URL na nagbabalik ng 404. Nahuhuli nito ang mukhang wastong link na inimbento ng agent. Kailangang magbigay ang mga author ng evaluation prompt suite at scoring rubric kasama ng skill. Ang mga naka-schedule na evaluation job ay tumatakbo linggu-linggo laban sa buong library upang makahuli ng regression. May nakatalagang owner din ang bawat skill na inaasahang aayos dito kapag bumaba ang kalidad.
Ang pattern sa likod ng tatlong sagot
Hindi mo kailangang pumili ng isa sa mga iyon. Sa ilalim ng mga ito ay may iisang anyo, at ibinibigay sa iyo ng plain git ang lahat ng kailangan mo.
- Isang source of truth. May eksaktong isang lokasyon ang skill, at tumutukoy ang bawat repository sa lokasyong iyon sa halip na maglaman ng sariling kopya.
- Naka-pin na version bawat repository. Itinatala ng bawat project ang eksaktong revision na ginagamit nito, kaya ang pag-upgrade ay isang commit sa project na iyon, kasama ang author at petsa.
- Isang smoke test bawat skill. May isang runnable check na nagpapatunay na ginagawa pa rin ng skill ang ipinapangako nitong resulta.
- Isang review path. Sumasailalim sa review ang pagbabago sa shared skill, at nakikita ng bawat consumer ang diff bago ito tanggapin.
Iyan ang anyo ng isang dependency. Mas mabilis naging shared artifact ang mga skill kaysa sa pag-unlad ng tooling para sa mga ito, kaya ang pinakaligtas na gamitin ay ang tooling na pinagkakatiwalaan mo na.
Layout para sa maliit na team sa isang self-hosted git remote
Isang repository ang naglalaman ng mga skill. Wala nang ibang laman dito, kaya ang history nito ay nagsisilbing changelog ng mga instruction.
agent-skills/
skills/
api-review/
SKILL.md
release-notes/
SKILL.md
tests/
api-review.sh
release-notes.sh
CHANGELOG.mdAng mga release ay mga tag. Gumamit ng annotated tags dahil naglalaman ang mga ito ng message at petsa. Isulat ang message bilang dahilan kung bakit gugustuhin ng consumer ang update:
git tag -a v1.4.0 -m "api-review: require pagination on list endpoints"
git push origin v1.4.0Kung Gitea, Forgejo, GitLab, o bare repository over SSH sa sarili mong VPS ang remote mo, walang magbabago sa mga susunod na hakbang. git at isang symlink lang ang kailangan dito.
Pag-pin gamit ang git submodule
Nagtatala ang isang submodule ng isang eksaktong commit mula sa ibang repository sa loob ng iyong repository. Ang tala na iyon ang pin. Sa bawat project na gumagamit nito:
git submodule add https://git.example.com/team/agent-skills.git vendor/agent-skills
git -C vendor/agent-skills fetch --tags
git -C vendor/agent-skills checkout v1.4.0
mkdir -p .claude/skills
ln -s ../../vendor/agent-skills/skills/api-review .claude/skills/api-review
git add .gitmodules vendor/agent-skills .claude/skills/api-review
git commit -m "Pin shared agent skills to v1.4.0"Ang symlink ang bahaging nagpapagana rito. Ang isang skill entry sa antas ng project ay maaaring symlink papunta sa directory sa ibang lokasyon sa disk, at sinusundan ito ng Claude Code at binabasa ang SKILL.md mula sa target. Kaya naglo-load ang skill bilang normal na project skill, habang nasa submodule ang mga byte sa commit na pinili mo.
Suriin ang pin:
git submodule statusAng wastong linya ay nagsisimula sa space, kasunod ang commit, pagkatapos ang path, at pagkatapos ang pinakamalapit na tag:
4d1a7c2f0b93e5a1c8d6f2b40e7a95c3d1f8b602 vendor/agent-skills (v1.4.0)Nangangahulugan ang nauunang - na hindi pa na-initialise ang submodule, kaya walang tinutukoy ang .claude/skills/api-review at tahimik na hindi naglo-load ang skill. Ayusin ito gamit ang git submodule update --init. Nangangahulugan ang nauunang + na iba ang naka-checkout na commit sa naitalang commit, kaya nagpapatakbo ang developer na iyon ng mga instruction na wala sa iba. Kailangan ng mga bagong clone ang git clone --recurse-submodules, at dapat ilagay ang linyang iyon sa README, dahil iniiwang walang laman ng plain clone ang vendor/agent-skills at walang error na ipinapakita.
Sinasadya ang pag-upgrade, at iyon mismo ang layunin:
git -C vendor/agent-skills fetch --tags
git -C vendor/agent-skills diff v1.4.0 v1.5.0 -- skills/
git -C vendor/agent-skills checkout v1.5.0
git add vendor/agent-skills
git commit -m "Bump shared agent skills to v1.5.0"Ang linya ng diff ang review path. Ipinapakita nito ang parehong pagbabago na makikita ng bawat iba pang consuming repo, at kasya ito sa isang pull request.
Sa halip na pinning gamit ang plugin marketplace
Kung ayaw mong turuan ang bawat developer tungkol sa submodules, ang Claude Code plugin system na ang mamamahala sa distribution para sa iyo, at gumagana ito sa self-hosted remote. Maglagay ng catalog sa .claude-plugin/marketplace.json sa skills repository:
{
"name": "acme-agents",
"owner": { "name": "Platform team", "email": "platform@example.com" },
"plugins": [
{
"name": "team-skills",
"description": "Shared review and release skills",
"version": "1.4.0",
"source": {
"source": "url",
"url": "https://git.example.com/team/agent-skills.git",
"ref": "v1.4.0",
"sha": "4d1a7c2f0b93e5a1c8d6f2b40e7a95c3d1f8b602"
}
}
]
}Dalawang magkaibang source ang ginagamit dito, at ang pagkakalito sa mga ito ang karaniwang pagkakamali. Ang marketplace source, o ang pinanggagalingan ng catalog mismo, ay tumatanggap ng ref para sa branch o tag at hindi tumatanggap ng sha. Ang plugin source sa loob ng catalog ay tumatanggap ng pareho, at kapag parehong nakatakda ang mga ito, ang sha ang aktuwal na pin. Kaya dapat ilagay ang exact-commit pin sa catalog entry.
Idinedeklara ng bawat repository na gumagamit nito ang marketplace sa committed nitong .claude/settings.json:
{
"extraKnownMarketplaces": {
"acme-agents": {
"source": {
"source": "url",
"url": "https://git.example.com/team/agent-skills.git",
"ref": "v1.4.0"
}
}
},
"enabledPlugins": {
"team-skills@acme-agents": true
}
}Ang teammate na nagtitiwala sa project folder ay ipo-prompt na i-install ang marketplace, at awtomatikong mae-enable ang plugin para sa kanya nang hindi na kailangan ng wiki page na nagtuturo kung paano ito gawin. Pagkatapos, gagamitin ng skills ang /team-skills:api-review, dahil ang plugin skills ay may namespace batay sa plugin name at hindi sumasalungat sa project skill na kapareho ang pangalan. Pagkatapos mong mag-push ng bagong tag, magre-refresh ang mga consumer gamit ang /plugin marketplace update acme-agents, saka patakbuhin ang /reload-plugins kung hinihingi ito sa install summary.
Pagsulat ng smoke test para sa isang skill
Ang smoke test ay isang scripted agent run laban sa fixture na may kilalang fault, kasama ang isang assertion. Tumatakbo ang Claude Code nang non-interactively gamit ang -p, at gumagana roon ang skill na tinatawag ng user: ilagay ang /skill-name sa prompt string at ie-expand ito bago magsimula ang run.
#!/usr/bin/env bash
set -euo pipefail
claude -p "/api-review Read fixtures/orders-api.md and list the rule ids it breaks." \
--allowedTools "Read" \
--output-format json \
--json-schema '{"type":"object","properties":{"rule_ids":{"type":"array","items":{"type":"string"}}},"required":["rule_ids"]}' \
| jq -e '.structured_output.rule_ids | index("pagination-required")' > /dev/nullAng fixtures/orders-api.md ay maikling file na may isang sadyang fault. Ang assertion ay dapat pangalanan ito ng skill. Nag-e-exit ang jq -e nang non-zero kapag nag-produce ang filter nito ng null, kaya mabibigo ang script kapag hindi na nahuhuli ng skill ang seeded fault. Nag-e-exit din ang claude nang non-zero kapag nabigo ang run, at ginagawang failed test ng set -euo pipefail ang alinman sa mga failure na ito.
Muling binubuo ng model ang mga sagot nito sa bawat run, kaya huwag mag-assert batay sa buong pangungusap. Mag-assert batay sa identifier na dapat i-emit ng skill, o sa field ng schema na hiningi mo, at panatilihing maliit ang fixture para hindi magastos ang run.
Sa CI, idagdag ang --bare. Kung wala ito, nilo-load ng claude -p ang parehong context na ginagamit ng interactive session, kasama ang hooks, plugins, at CLAUDE.md mula sa machine kung saan ito tumatakbo. Dahil dito, maaaring baguhin ng personal na configuration ng teammate ang resulta. Nilalaktawan ng bare mode ang lahat ng auto-discovery, kaya nilalaktawan din nito ang skill na tine-test mo. I-load nang tahasan ang skill na iyon. Hindi rin binabasa ng bare mode ang subscription login mo, kaya itakda muna ang ANTHROPIC_API_KEY sa environment:
claude --bare -p "/team-skills:api-review Read fixtures/orders-api.md and list the rule ids it breaks." \
--plugin-dir vendor/agent-skills \
--allowedTools "Read" \
--output-format jsonKapag ginamit ang --output-format stream-json, iniuulat ng unang event ng run kung aling mga plugin ang na-load at naglalaman ito ng plugin_errors array para sa mga hindi na-load. I-fail ang CI job kapag hindi walang laman ang plugin_errors. Nahuhuli nito ang pin na tumutukoy sa revision na wala na, na kung hindi ay lalabas na tila tahimik na binabalewala ng agent ang house rules mo.
Ang shared skill ay executable instruction
Dalawang feature ang gumagawa rito nang literal, at parehong mahalaga kapag galing sa ibang team ang file.
Una, maaaring magpatakbo ang isang SKILL.md ng mga shell command bago magbasa ng kahit ano ang model. Ang linyang tulad nito sa body ay preprocessing:
- Current branch: !`git rev-parse --abbrev-ref HEAD`Tumatakbo ang command sa machine na naglo-load ng skill, at pinapalitan ng output nito ang placeholder sa text na natatanggap ng model. Ang fenced block na binuksan ng tatlong backtick at sinundan ng ! ay nagpapatakbo ng maraming command sa parehong paraan. Walang nag-a-approve sa mga ito habang tumatakbo ang system. Ang pagbabasa ng shared skill ay nangangahulugang pagbabasa rin ng mga command substitution nito.
Ikalawa, maaaring mag-pre-approve ng tools ang frontmatter. Ibinibigay ng allowed-tools ang mga nakalistang tool nang walang permission prompt para sa turn na nag-invoke sa skill. Para sa project skill, magkakabisa ang grant na ito kapag may tumanggap sa workspace trust dialog para sa folder. Malinaw ang pahayag ng Claude Code documentation tungkol sa resulta: suriin ang project skills bago pagkatiwalaan ang isang repository, dahil maaaring bigyan ng skill ang sarili nito ng malawak na tool access.
Kaya ituring ang pag-update ng skill na parang pag-update ng dependency. Gumamit ng exact commit bilang pin, saanman ito pinapayagan ng mechanism, dahil maaaring ilipat ang isang tag at likas na gumagalaw ang isang branch. Sa isang locked-down machine, pinapalitan ng "disableSkillShellExecution": true sa settings ang bawat command substitution ng literal na text na [shell command execution disabled by policy] sa halip na patakbuhin ito, at kapag inilapat sa pamamagitan ng managed settings, hindi ito maaaring i-override ng user. Exempt sa setting na ito ang bundled at managed skills.
Pareho ring pag-iingat ang kailangan sa binabasa ng skill. Ang skill na nagpapatakbo ng env o nagbubukas ng config file ay kumukuha ng anumang makita nito papunta sa context ng model. Ito ang failure na tinatalakay sa pag-iwas na mailagay ang mga secret sa mga agent na pinapatakbo mo. Ang skill na kumukuha ng page o nagpapatakbo ng query ay kaparehong exposure na nakaturo naman palabas, dahil napupunta sa context ang retrieved text at eksaktong nagmumukhang mga instruction na ikaw ang sumulat. Mahalagang basahin ito bago mo ituro ang isang agent sa sarili mong SearXNG instance para sa web search.
Mga babasahin kapag nagpalit ng version
- Ang diff ng bawat
SKILL.mdbody, dahil ang tekstong iyon ang instruction na susundin ng iyong agent. - Bawat command substitution, dahil tumatakbo ang mga ito sa iyong machine kapag nag-load ang skill.
- Anumang pagbabago sa
allowed-tools, dahil nagbibigay ang linyang iyon ng mga tool nang walang prompt. - Ang test run na nasa likod ng tag. Kung nagpapatakbo ang shared repository ng sarili nitong smoke tests sa CI, dapat may green run na naka-attach sa tag na iyong pini-pin.
Kung hindi mabasa ng reviewer ang buong diff sa loob ng sampung minuto, masyado nang malaki ang skill. Hatiin ito. Ganoon din ang naaangkop sa mga dokumento ng repository na binabasa ng iyong mga agent: ilagay ang mga durable rule sa mga file na inilalarawan sa paghahati ng AGENTS.md at HUMAN.md at ang architectural reasoning sa DESIGN.md na isinulat para sa mga agent, at panatilihing makitid ang saklaw ng mga skill bilang mga procedure.
Kapag nakasira ng skill ang pagbabago sa model o tool
May ilang bagay sa ilalim ng skill na nagbabago kahit walang nag-e-edit dito. Binabago ng model upgrade kung gaano ito kaaasahang sumusunod sa mahabang instruction. Dahil dito, maaaring hindi na makarating sa step nine ang skill na umaasa rito. Kapag pinalitan ng command line tool ang pangalan ng isang flag, tatakbuhin ng agent ang lumang flag, babasahin ang error, at mag-iimprovise. Maaari ring magsimulang magbalik ng 404 ang isang nire-reference na URL. Maaari ring magbago ang agent harness sa pagpili nito ng mga skill, kaya ang isang description na dating nananalo sa match ay hindi na napipili.
Ito ang dahilan kung bakit napakahalaga ng smoke test sa setup na ito. Patakbuhin ang test ng bawat skill ayon sa iskedyul at tuwing may push. Lingguhang pinapatakbo ng Google ang evaluation jobs nito laban sa buong library para sa kadahilanang ito. Para sa team na may sampung skill, sapat na ang isang weekly cron job sa maliit na VPS. Ito ang tanging paraan para malaman ninyo ang problema bago pa ito matuklasan ng developer.
Nakakatulong din ang portability. Nililimitahan ng Agent Skills spec sa anim na key ang frontmatter. Dahil dito, naglo-load ang skill na nakasulat ayon sa spec sa iba pang tool bukod sa tool kung saan ninyo ito isinulat. Samantala, bawat harness-specific key na idinaragdag ninyo ay isang pagtaya sa isang vendor. Ang pagsulat ng mga skill na gumagana kahit magpalit ng model ay hiwalay na disiplina. Tinalakay ito sa paggawa ng skill na gumagana sa anumang model.
FAQ
Paano ko maibabahagi ang isang agent skill sa ilang repository?
Ilagay ang skill sa isang dedicated git repository, mag-tag ng mga release rito, at ipa-reference sa bawat gumagamit na project ang isang tag sa halip na kopyahin ang file. Dalawang mekanismo ang gumagana. Nagtatala ang git submodule ng eksaktong commit, at ginagawa ng symlink mula sa .claude/skills/<name> papunta sa submodule na ma-load ito bilang normal na project skill. Pareho ang ginagawa ng plugin marketplace sa pamamagitan ng /plugin, at idinedeklara ang pin sa .claude/settings.json ng consuming repository. Parehong inilalagay ng mga ito ang bersyon sa git history, kaya matutukoy mo kung aling instructions ang gumawa ng isang agent run.
Maaari ko bang i-pin ang isang agent skill sa partikular na bersyon?
Hindi mula sa loob ng SKILL.md, dahil walang version key ang frontmatter na iyon. Kailangang manggaling ang pin sa layer na nakapaligid sa file. Idinidisenyo ang git submodule upang mag-pin ng eksaktong commit. Sa Claude Code plugin marketplace, tumatanggap ang plugin source ng ref para sa branch o tag at ng sha para sa eksaktong commit, at mananaig ang sha kapag parehong naroon. ref lamang ang tinatanggap ng marketplace source mismo. Mas mainam ang commit pin, dahil maaaring ilipat ang isang tag pagkatapos mo itong ma-review.
Ano ang dapat i-assert ng isang skill smoke test?
Mag-assert sa isang stable na bagay. Patakbuhin ang skill nang non-interactive laban sa fixture na may kilalang fault, pagkatapos ay tiyaking lumilitaw sa output ang isang partikular na identifier, gaya ng rule id na dapat i-report ng skill. Mas eksakto ang check kapag humingi ng structured output gamit ang --output-format json at --json-schema, at pinapabagsak ng jq -e ang script kapag nawawala ang value. Huwag kailanman mag-assert sa isang buong pangungusap, dahil nire-reword ng model ang mga sagot nito sa magkakaibang run.
Ligtas bang mag-install ng shared skill mula sa repository ng ibang team?
Ituring ito bilang code dependency, dahil executable instruction ito. Maaaring magpatakbo ang isang SKILL.md ng shell commands kapag nilo-load sa pamamagitan ng ! command substitution form, at maaaring mag-pre-approve ng tools nang walang prompt ang allowed-tools field ng frontmatter. Basahin ang diff sa bawat bump, mag-pin sa eksaktong commit sa halip na branch, at mas piliin ang source na kontrolado ng sarili mong team. Sa mga managed machine, pinipigilan ng "disableSkillShellExecution": true sa settings ang lahat ng command substitution na tumakbo.
Gagana ba ang shared skill sa mga agent maliban sa Claude Code?
Depende ito sa frontmatter na ginagamit mo. Tinutukoy ng Agent Skills spec ang anim na key: name, description, license, compatibility, metadata at allowed-tools. Ang skill na limitado sa mga iyon ay naglo-load sa mga tool na nag-iimplement ng spec, at naglo-load din ito sa Claude Code nang walang pagbabago. Binabalewala o nire-reject sa ibang tool ang mga harness-specific key at body feature na wala sa spec, kaya alisin ang mga ito sa skill na balak mong ibahagi nang malawakan.