Neljäkymmentä tuntia rakentaa MCP-palvelin, joka palveli koodin tarkistuspyyntöjä, kollega pudotti markdown-tiedoston Kymmenen minuuttia verrattuna neljäkymmentä tuntia. .claude/skills/ Claude Codeilla on kolme erillistä laajennettavuusmekanismia, ja niillä on nolla päällekkäisyyttä, kun ymmärrät, mitä kukin todella tekee. Nämä kolme mekanismia paljastavat tarkoituksellisen arkkitehtonisen filosofian, joka kannattaa ymmärtää ennen kuin kirjoitat yhden linjan kokoonpanoa. Suunnittelupäätökset Arkkitehtuuri kolmen mekanismin takana Jokainen Claude Code -laajennus kuuluu johonkin kolmesta luokasta. Ne ovat erillisiä mekanismeja, koska ne toimivat järjestelmän pohjimmiltaan eri kerroksissa. Tämä ei ole sattumaa. Vastaus: "Miten Claude käyttää järjestelmiä prosessien rajojen ulkopuolella?" Ne ovat erillisiä ohjelmia, jotka kommunikoivat Claude kanssa JSON-RPC: n kautta. Malli Context Protocol määrittelee langan muodon (työkalukutsut, resurssien lukemat, pyyntömalleja), mutta itse palvelin on vain ohjelma, joka puhuu JSON: sta tai HTTP: stä. Se ylläpitää omia yhteyksiä, omaa tilaansa, omaa elinkaartaan. Claude lähettää pyynnön, palvelin tekee työn ja lähettää vastauksen. Todellinen prosessien välinen viestintä kaikilla sen aiheuttamilla vaikutuksilla. MCP servers Vastaus: "Kuinka voit ajaa Claudea eri käyttäytymisellä eri tehtäviin?" Subagentti on eristetty Claude-istunto, jossa on oma järjestelmähuomautus, oma mallivalinta, oma työkalupalvelun käyttöoikeus ja kriittisesti oma kontekstiikkuna. Kun kutsut subagenttia, se alkaa uudelleen. Ei kertyneitä yhteyksiä aiemmasta keskustelustasi. Ei työkalupalvelun käyttöoikeutta sen ulkopuolelle, mitä olet nimenomaisesti myöntänyt. Eristys on ominaisuus. Subagents vastaus: "Miten lisäät uudelleenkäytettävää tietoa keskusteluun?" Taito on markdown-tiedosto, joka muuttuu slash-komennoksi. Kun sitä kutsutaan, sen sisältö ruiskutetaan suoraan nykyiseen keskusteluun ohjeina. Ei uutta prosessia. Ei eristäytymistä. Ei erillistä kontekstia. Vain teksti, joka muovaa Claudein käyttäytymistä olemassa olevassa istunnossa. Skills Miten MCP-palvelimet todella toimivat hupun alla Model Context Protocol on JSON-RPC 2.0 -protokolla. Kun Claude Code käynnistyy, se käynnistää jokaisen konfiguroidun MCP-palvelimen lapsen prosessina ja perustaa kaksisuuntaisen viestintäkanavan stdio-palvelimen kautta. Kun Claude päättää käyttää MCP-työkalua, sekvenssi on: Claude luo työkalukutsun, jossa on nimi ja JSON-argumentit Claude Code lähettää tämän JSON-RPC-pyynnön asianmukaiselle palvelimen prosessille Palvelin suorittaa pyynnön (haastaa tietokannan, soittaa API: n, lukee tiedostojärjestelmän) Palvelin palauttaa tuloksen JSON-RPC-vastauksena Claude Code syöttää vastauksen takaisin Claude'n kontekstiin Tämä on aito prosessien välinen viestintä. Palvelin voidaan kirjoittaa millä tahansa kielellä. Se voi ylläpitää pysyviä yhteyksiä tietokantoihin, välimuisti tuloksia, toteuttaa nopeusrajoituksia, valvoa pääsyn valvontaa. Se on todellinen ohjelma, jolla on todellinen tila. { "mcpServers": { "analytics": { "command": "node", "args": ["./mcp-servers/analytics.js"], "env": { "DATABASE_URL": "postgresql://localhost/analytics", "MAX_ROWS": "1000", "QUERY_TIMEOUT_MS": "5000" } }, "deploy": { "command": "./mcp-servers/deploy-server", "args": ["--environment", "staging", "--read-only"], "env": { "API_TOKEN": "${DEPLOY_TOKEN}" } } } } Sillä ja Yllä olevat ympäristömuuttujat eivät ole MCP-protokollan ominaisuuksia. Ne ovat sovellustason turvallisuusrajoja, joita analytiikkapalvelin valvoo sisäisesti. Tämä on tärkeä arkkitehtoninen kohta: MCP-protokolla käsittelee viestintää, mutta palvelimesi käsittelee käytäntöjä. Jos Claude pyytää jokaista riviä kymmenen miljoonan rivin taulukossa, protokolla lähettää pyynnön. palvelimesi tarvitsee sanoa ei. MAX_ROWS QUERY_TIMEOUT_MS Suorituskyvyn kannalta kriittisissä integraatioissa, joissa palvelin käsittelee tuhansia pyyntöjä tai ylläpitää yhteyspuistoja, Rust on investoinnin arvoinen. kattaa koko prosessin protokollan käsittelystä tuotannon käyttöönottoon, mukaan lukien yhteyden yhdistämisen ja lempeän sulkemisen. Opas MCP-palvelinten rakentamiseen Rustissa Etäiset MCP-palvelimet HTTP:n kautta SSE:n kanssa noudattavat samaa protokollaa, mutta korvaavat stdio HTTP-siirron avulla.Tämä koskee jaetun tiimin infrastruktuuria, jossa yksi MCP-palvelinesiintymä palvelee useita kehittäjiä, mutta se lisää verkon latenssia ja vaatii todentamista. Kuinka alihankkijat työskentelevät hatun alla Subagentit eivät ole erillinen tekniikka. Ne ovat Claude Code -istuntoja, joissa on rajoitettuja parametreja. Kun kutsut subagenttia, Claude Code aloittaa uuden keskustelun agentin kokoonpanossa määritellyn mallin kanssa. Järjestelmäpyyntö tulee agenttiedoston markdown-kehosta. Työkalulista suodatetaan vain siihen, mitä agentin kokoonpano sallii. Ja kriittisesti, kontekstiikkuna on tyhjä lukuun ottamatta järjestelmäpyyntöä ja tehtävää, jonka olet antanut subagentille. Tällä eristäytymisellä on syviä vaikutuksia sekä kustannuksiin että laatuun. Harkitse debugging-istuntoa, jossa olet tutkinut koodipohjaa kaksikymmentä minuuttia. Pääkontekstiikkunasi sisältää kymmeniä tiedostojen lukemisia, tarttumistuloksia, pinoja ja keskusteluja. Jos nyt pyydät koodin tarkastelua samassa istunnossa, tarkastelu tapahtuu kaiken tämän debugging-melun yhteydessä. Subagent aloittaa puhtaana. Sen konteksti sisältää vain järjestelmän kehotuksen (tarkistuksen kriteerit) ja tiedostot, joita olet pyytänyt sitä tarkastelemaan. Ei melua. Ei kertyneitä tiloja. kuin main-session arvioinnit, koska malli keskittyy kokonaan tehtävään. Parempi --- name: code-reviewer description: Reviews code for quality, security, and style model: haiku tools: Read, Grep, Glob, Bash disallowedTools: Write, Edit mcpServers: - github maxTurns: 15 --- You are a code review specialist. You have read-only access to the codebase and the GitHub API. Review criteria: - No unwrap() in production code paths (use proper error handling) - All public functions have doc comments - Error types implement std::fmt::Display - No println! in library code (use tracing macros) - Integration tests exist for new API endpoints - No TODO without a linked issue number For each file, provide a pass/fail checklist and specific line references for any failures. Do not provide general advice — only specific findings. Sillä Direktiivi reitittää tämän alihenkilön halvimmalle mallitasolle. Tyyliä vastaavassa työssä, kuten tyylin tarkistuksessa ja yleissopimuksen täytäntöönpanossa, Haiku suorittaa vertailukelpoisesti Opusin kanssa. model: haiku Sillä direktiivi luo kovaa rajaa. Vaikka järjestelmäpyyntö sanoisi "korjaa kaikki löydetyt ongelmat", alihankkija ei voi muokata tiedostoja. Tämä pannaan täytäntöön työkalujen käyttöoikeuskerroksessa, ei pyyntökerroksessa. disallowedTools: Write, Edit Sillä estää juoksevien alihankkijoiden istuntojen. Ilman tätä alihankkija, joka analysoi suuren koodipohjan, voisi iteroida viisikymmentä kierrosta keräämällä kustannuksia. kääntöraja pakottaa alihankkijan olemaan tiivis ja priorisoimaan havaintonsa. maxTurns: 15 Mallien reittien todelliset kustannukset Tämä on paikka, jossa alihankkijat maksavat itsestään ja sitten jotkut. Harkitse viiden kehittäjän tiimiä, joista jokainen suorittaa noin kymmenen koodin tarkastelua päivässä Claude Coden kautta. Ilman alihankkijoita jokainen tarkastelu suoritetaan Opus-pääistunnossa. Kun konteksti kerääntyy muusta työstä, tyypillinen tarkastelu voi kuluttaa 15 000–25 000 syöttötunnusta ja tuottaa 2 000–4 000 tuotetunnusta. Haiku-alaedustajan kanssa sama tarkistus suoritetaan puhtaassa kontekstiikkunassa. Syöttötunnukset laskevat 3 000–8 000:een (järjestelmäpyyntö plus koodi, jota tarkistetaan, ei kerättyä kontekstia). Ja Haiku-tunnuksen kustannukset ovat dramaattisesti alhaisemmat kuin Opus. Pienemmän kontekstin ja halvemman mallin yhdistelmävaikutus vähentää tavallisesti koodin tarkistuskustannuksia 85–95%. Mutta on olemassa hienovaraisempi kustannustehokkuus. Koska alihankkijan asiayhteysikkunat ovat eristettyjä ja puhtaita, arvostelut ovat nopeampia. Vähemmän syöttöyhteyttä tarkoittaa vähemmän käsittelyaikaa. Haiku-alihankkijan arviointi palautuu yleensä 2-5 sekunnissa. Sama arviointi turvonnut Opus-istunnossa voi kestää 10-20 sekuntia. Yli viisikymmentä päivittäistä arviointia, mikä säästää merkittävästi aikaa. Mallin reitityspäätös ei kuitenkaan ole aina ilmeinen. Jotkut tehtävät todella tarvitsevat Opus-tason päättelyä. Syvä debugging-istunnot, joissa malli tarvitsee pitää monimutkaista tilaa monissa tiedostoissa. Arkkitehtoninen analyysi, jossa malli tarvitsee pohtia koko järjestelmän vaikutuksia. Refactoring-tehtävät, joissa malli tarvitsee ymmärtää hienovaraisia semanttisia suhteita. Nämä pitäisi pysyä Opusissa, mutta erillisissä aliaineissa, jotta konteksti pysyy puhtaana. Laajempien kustannusstrategioiden osalta meidän kattaa mallin reitityksen muiden lähestymistapojen rinnalla, kuten kontekstinhallinnan ja token-tietoisen kehotuksen. Claude Code kustannusoptimointiopas Miten taidot toimivat prompt-kerroksessa Taidot ovat arkkitehtonisesti yksinkertaisin mekanismi, ja yksinkertaisuus on ominaisuus. Ohjekirjan nimi muuttuu slash-komennoksi. Pääosat Claude Code Raeds ja ruiskuttaa sen sisällön nykyiseen keskusteluun. .claude/skills/ /review .claude/skills/review/SKILL.md Ei ole prosessia. Ei eristäytymistä. Ei erillistä kontekstin ikkunaa. Taidon teksti liittyy olemassa olevaan keskusteluun ikään kuin olisit kirjoittanut sen itse. Tämä tarkoittaa, että taidot hyötyvät keskustelun olemassa olevasta kontekstista (Claude tietää jo, mitä tiedostoja olet työskennellyt), mutta ne myös perivät keskustelun kertyneen melun. # SQL Migration Standards Review the migration files for compliance with team standards. ## Naming Conventions - Tables: plural snake_case (user_sessions, not UserSession or user_session) - Columns: singular snake_case (created_at, not CreatedAt) - Indexes: idx_{table}_{columns} (idx_user_sessions_user_id) - Foreign keys: fk_{table}_{referenced_table} (fk_orders_users) ## Safety Requirements - All CREATE INDEX must use CONCURRENTLY - ALTER TABLE ADD COLUMN must include a DEFAULT for non-nullable columns - No DROP COLUMN without a preceding release that stops reading the column - All migrations must be reversible (provide both up and down) ## Query Patterns - Use EXISTS instead of IN for subqueries - Use COALESCE instead of CASE WHEN ... IS NULL - Avoid SELECT * in application code - Always specify column lists in INSERT statements Current schema for reference: $(cat db/schema.sql) Migration to review: $ARGUMENTS Sillä syntax suorittaa shell-komennon kutsumisaikana ja ruiskuttaa tuloksen. Tämä antaa taitoille rajoitetun dynaamisen kyvyn. Ne voivat sisältää tiedoston sisällön, ympäristömuuttujat tai komennon tuloksen, mutta ne eivät voi ylläpitää yhteyksiä tai suorittaa monivaiheisia ulkoisia toimintoja. $(cat db/schema.sql) Sillä muuttujat tallentavat kaiken slash-komennon jälkeen. Asettaisi tiedoston polulle, jolloin voit ohjata taitoa tiettyihin tiedostoihin. $ARGUMENTS /migration db/migrations/20260311_add_sessions.sql $ARGUMENTS Taidot ovat voimakkaita juuri siksi, että ne ovat yksinkertaisia. Kuka tahansa voi kirjoittaa yhden. Tiimille, joissa ei-kehittäjät tarvitse koodata asiantuntemustaan, Kattaa, miten QA-insinöörit, tuotepäälliköt ja tekniset kirjoittajat luovat tehokkaita taitoja koskematta koodia. Taitoja ei-teknisille tiimille Milloin ei käytetä jokaista mekanismia (anti-malleja) Ymmärtäminen, mitä jokainen mekanismi tekee hyvin, on vain puolet kuvasta. MCP-palvelimen antipatterit Jos tieto ei muutu kutsujen välillä eikä se tule ulkoisesta järjestelmästä, se on taito. Olen nähnyt tiimien rakentavan MCP-palvelimia, jotka palauttavat yrityksen koodausstandardeja, API-asiakirjoja ja jopa tyylioppaita. Do not build an MCP server to serve static content. Claude Codeilla on jo Bash-työkalu. Jos "integraatiosi" on CLI-komennon suorittaminen ja tulostuksen analysointi, et tarvitse MCP-palvelinta. Taito, joka ohjaa Claudea käyttämään Bashia tiettyjen komentojen kanssa, on yksinkertaisempi. Kaikki ulkoiset eivät tarvitse MCP-palvelinta. Jos Claude voi suorittaa CLI-komennon Bashin kautta, se on yksinkertaisempaa kuin MCP-palvelimen rakentaminen ja ylläpito. Do not build an MCP server when a Bash tool call would suffice. MCP-palvelimet ovat välttämättömiä, kun tarvitset etäkäyttöä, käyttöoikeuksien laajentamista, pysyviä yhteyksiä tai tilan mukaisia toimintoja. tai juosta MCP-palvelimet ansaitsevat monimutkaisuutensa, kun useat agentit tai käyttäjät tarvitsevat jaettua käyttöoikeutta, kun tarvitset hienosäädettyjä käyttöoikeussäädöksiä tai kun integrointi vaatii tilan ylläpitoa useiden pyyntöjen välillä. git log cargo test MCP-palvelin, joka suorittaa mielivaltaisen SQL:n tuotantoa vastaan, on ladattu ase. Jokaisen palvelimen on pantava täytäntöön kyselylomakkeet, rivirajat, tarvittaessa vain lukeminen ja syöttövalidointi.Protokolla ei suojaa sinua. Do not build an MCP server without safety boundaries. Subagent Anti-Patterns Näytä tarkat tiedot Subagentit loistavat toistuvaan, erikoistuneeseen työhön. Jos sinun täytyy tehdä jotain kerran, tee se vain pääistunnossa. Agentin kokoonpanotiedoston luominen ja ylläpito ei ole sen arvoista ad-hoc-työlle. Do not create a subagent for a one-off task. Jotkut tehtävät todella vaativat vahvempaa päättelyä. Yritin suorittaa arkkitehtonista analyysiä Haikulla kerran. Se tunnisti pinta-alan ongelmat, mutta jätti pois pyöreän riippuvuuden, jonka Opus tarttui välittömästi. Haiku on loistava kuvioiden vastaamiseen ja tarkistuslistan täytäntöönpanoon. Se kamppailee tehtävien kanssa, jotka edellyttävät monivaiheista päättelyä monissa tiedostoissa. Do not route everything to Haiku to save money. Subagentti, joka vetoaa toiseen subagenttiin, joka vetoaa kolmanteen, on anti-malli. Jokainen kerros lisää latenssia ja peittää todellisen työn. Jos tarvitset niin paljon orkestrointia, rakenna lähestymistapa uudelleen. Yleensä vastaus on yksi subagentti, jolla on pääsy useisiin MCP-palvelimiin ja taitoihin, ei ketju subagentteja. Do not create deeply nested subagent chains. Taitoja antipattereille Jos tehtävä vaatii tietoja Claudein istunnon ulkopuolelta, tarvitset MCP-palvelimen (tai alihankkijan, jolla on MCP-yhteys). Do not write skills that require external data. Taidon sisältö ruiskutetaan asiayhteyden ikkunaan. 5000-sanan taito kuluttaa tunnisteita jokaiseen vetoomukseen. Pidä taidot keskittyneinä. Jos tarvitset laajaa viiteainetta, käytä pistää se ehdollisesti sen sijaan, että se liitetään suoraan taitoon. Do not write skills that are too long. $(cat reference.md) Taito kulkee nykyisessä kontekstissa.Jos nykyinen konteksti on saastunut liittymättömällä työllä, taidon tehokkuus laskee.Työt, jotka tarvitsevat puhtaan laatan (arvostelut, analyysit, dokumentaation tuottaminen) palvelevat paremmin alihankkijoita, jotka alkavat tuoreella kontekstiikkunalla. Do not use skills for tasks that need isolation. Koostumusmalli tuotannossa Kolme mekanismia eivät ole vaihtoehtoja. Ne ovat kerroksia, jotka muodostavat. Koostumusmallien ymmärtäminen on se, mikä erottaa työasennuksen tyylikkäästä. Subagentilla voi olla sille määrättyjä MCP-palvelimia.Tämä luo laaja-alaisen käyttöoikeuden. Subagentti, joka tarkistaa koodia, voi päästä GitHubin API:hen GitHubin MCP-palvelimen kautta, mutta ei voi koskettaa tietokantaa tai käyttöönottoa. Tietokannan-analyytikon alihankkija kuormittaa sql-standardien taitoa, joten jokainen analyysi seuraa tiimisi nimeämiskonventioita ja kyselymalleja ilman, että analyytikon alihankkija tarvitsee näitä yleissopimuksia järjestelmän esitteessä. Voit antaa alihankkijalle pääsyn GitHubin MCP-palvelimeen (joten se voi lukea PR-tiedostoja ja kommentteja) estäen samalla kirjoittamisen ja muokkaamisen (joten se ei voi muokata paikallisia tiedostoja). Tuotantolaitoksessamme 8 markkinapaikan lisäosassa kerrokset näyttävät tältä: Layer 3: Skills (Team Knowledge) /review — code review checklist /migration — database migration standards /deploy-check — pre-deployment verification steps /sql-standards — SQL naming and query conventions /api-design — REST endpoint design patterns Layer 2: Subagents (Specialised Behaviour) code-reviewer (Haiku, read-only, GitHub MCP, review skill) debugger (Opus, full access, all MCP servers) database-analyst (Sonnet, read-only, PostgreSQL MCP, sql-standards skill) deploy-checker (Sonnet, read-only, deploy + analytics MCP, deploy-check skill) doc-writer (Haiku, read-only, no MCP, style-guide skill) Layer 1: MCP Servers (External Connections) analytics-db — PostgreSQL metrics database deploy-pipeline — deployment API wrapper github — GitHub API for PRs and issues content-api — CMS for documentation publishing postgresql — application database (read-only) Jokainen alihankkija koostuu tarkalleen MCP-palvelimista ja taidoista, joita se tarvitsee, mallitasolla, joka vastaa sen tehtävän monimutkaisuutta. Asennus-tarkistaja käyttää Sonnetia, koska sen on perusteltava asennuksen valmiutta useiden tietolähteiden välillä. Doc-kirjoittaja käyttää Haikua, koska tekninen kirjoittaminen on ensisijaisesti kuviota, joka vastaa tyylisuunnittelijaa. Täydellistä tietoa siitä, miten nämä kerrokset toimivat yhdessä, oppaamme koko kokoonpanomallin läpi. ja erityisesti alihankkijan kokoonpanoon, meidän kattaa jokaisen frontmatter-kentän esimerkkien kanssa. Plugins, MCP-palvelimet ja taidot kerrostuneena arkkitehtuurina Claude agentti rakennusopas Päätöksenteon tehtävä Vuoden kuluttua tuotannon laajennusten rakentamisesta päätös on puhdas toiminto siitä, mitä tarvitset: def choose_mechanism(need): if need.requires_external_data or need.has_side_effects: return "MCP Server" if need.requires_different_model or need.requires_tool_restrictions or need.benefits_from_isolation: return "Subagent" if need.is_reusable_knowledge or need.is_workflow_template: return "Skill" if need.is_complex: return "Subagent + MCP Server + Skill" # compose all three Jos löydät itsesi rakentamaan MCP-palvelimen, joka palauttaa staattista tekstiä, lopeta. Se on taito. Jos kirjoitat taitoa, joka sanoo "kysy tietokantaa", lopeta. Se on MCP-palvelin. Jos käytät kalliita Opus-istuntoja rutiinitarkastuksiin, lopeta. Mikä on muuttunut meille Ennen kuin ymmärsimme kolmion, meillä oli MCP-palvelimia, jotka tekivät taitojen työtä, taitoja, jotka yrittivät tehdä MCP-palvelinten työtä, eikä alihankkijoita lainkaan. Uudelleenjärjestelyn jälkeen: 34+ taitoa koodaa tiimimme yleissopimukset koodin tarkistuksen, tietokantatyön, käyttöönoton, dokumentaation ja API-suunnittelun kautta. Viisi alihankkijaa käsittelee erikoistuneita tehtäviä oikealla hintatasolla oikeilla käyttöoikeussäätimillä. Kuukausikustannukset laskivat merkittävästi. Arvioinnin laatu parani, koska alihankkijat alkoivat puhtaalla kontekstilla. Tiimin yleissopimukset tulivat johdonmukaisiksi, koska taidot panevat ne täytäntöön samalla tavalla jokaiselle kehittäjälle. Ja MCP-palvelimet tulivat yksinkertaisemmiksi, koska ne lakkasivat yrittämästä olla kaikkea; ne vain silta ulkoisiin järjestelmiin eikä mitään muuta. Laajennettavuuskolmio ei ole teoreettinen kehys. Se on käytännöllinen työkalu, joka estää sinua rakentamasta väärää asiaa.