One change
skills-guide
build-with-claude/skills-guide
Nearest release: v2.1.239, published 2 hours before this site recorded the change. Shown because the two are within 24 hours of each other. Nothing here says the release caused the edit.
build-with-claude/skills-guide Changed · +79 / -114 lines
from line 250
``` ```php PHP - // The PHP SDK supports container skills only through $client->beta->messages with the skills beta. $client = new Client(); - $message = $client->beta->messages->create( + $message = $client->messages->create( maxTokens: 4096, messages: [ ['role' => 'user', 'content' => 'Create a presentation about renewable energy'] ], model: 'claude-opus-5', - betas: ['code-execution-2025-08-25', 'skills-2025-10-02'], container: [ 'skills' => [ [ 'type' => 'anthropic', - 'skill_id' => 'pptx', + 'skillID' => 'pptx', 'version' => 'latest' ] ]
from line 387
--raw-output) # Step 4: Download the file using Files API - ant files download \ - --file-id "$FILE_ID" \ - --output "$FILENAME" > /dev/null + ant files download --file-id "$FILE_ID" --output "$FILENAME" > /dev/null printf 'Downloaded: %s\n' "$FILENAME" ```
from line 663
``` ```php PHP - // The PHP SDK exposes the Files API under the beta namespace; field names can differ from other SDKs. - // The PHP SDK supports container skills only through $client->beta->messages with the skills beta. $client = new Client(); // Step 1: Use a Skill to create a file - $response = $client->beta->messages->create( + $response = $client->messages->create( maxTokens: 4096, messages: [ ['role' => 'user', 'content' => 'Create an Excel file with a simple budget spreadsheet'] ], model: 'claude-opus-5', - betas: ['code-execution-2025-08-25', 'skills-2025-10-02'], container: [ 'skills' => [ - ['type' => 'anthropic', 'skill_id' => 'xlsx', 'version' => 'latest'] + ['type' => 'anthropic', 'skillID' => 'xlsx', 'version' => 'latest'] ] ], tools: [
from line 700
// Step 3: Download the file using Files API foreach (extractFileIds($response) as $fileId) { - $fileMetadata = $client->beta->files->retrieveMetadata($fileId); - $fileContent = $client->beta->files->download($fileId); + $fileMetadata = $client->files->retrieveMetadata($fileId); + $fileContent = $client->files->download($fileId); // Step 4: Save to disk file_put_contents($fileMetadata->filename, $fileContent);
from line 785
--format yaml # List all files - ant files list \ - --transform '{filename,created_at}' \ - --format yaml + ant files list --transform '{filename,created_at}' --format yaml # Delete a file ant files delete --file-id "$FILE_ID" >/dev/null
from line 894
``` ```php PHP - // The PHP SDK exposes the Files API under the beta namespace; field names can differ from other SDKs. $client = new Client(); $fileId = 'file_011CNha8iCJcU1wXNR6q4V8w'; // Get file metadata - $fileInfo = $client->beta->files->retrieveMetadata($fileId); + $fileInfo = $client->files->retrieveMetadata($fileId); echo "Filename: {$fileInfo->filename}, Size: {$fileInfo->sizeBytes} bytes\n"; // List files (first page) - $files = $client->beta->files->list(); - foreach ($files->data as $file) { + foreach ($client->files->list()->getItems() as $file) { echo "{$file->filename} - {$file->createdAt->format(DATE_ATOM)}\n"; } // Delete a file - $client->beta->files->delete($fileId); + $client->files->delete($fileId); ``` ```ruby Ruby
from line 1249
``` ```php PHP - // The PHP SDK supports container skills only through $client->beta->messages with the skills beta. $client = new Client(); - $response1 = $client->beta->messages->create( + $response1 = $client->messages->create( maxTokens: 4096, messages: [ ['role' => 'user', 'content' => 'Create a sample sales dataset and analyze it'] ], model: 'claude-opus-5', - betas: ['code-execution-2025-08-25', 'skills-2025-10-02'], container: [ 'skills' => [ - ['type' => 'anthropic', 'skill_id' => 'xlsx', 'version' => 'latest'] + ['type' => 'anthropic', 'skillID' => 'xlsx', 'version' => 'latest'] ] ], tools: [
from line 1277
['role' => 'user', 'content' => 'What was the total revenue?'] ]; - $response2 = $client->beta->messages->create( + $response2 = $client->messages->create( maxTokens: 4096, messages: $messages, model: 'claude-opus-5', - betas: ['code-execution-2025-08-25', 'skills-2025-10-02'], container: [ 'id' => $response1->container->id, 'skills' => [ - ['type' => 'anthropic', 'skill_id' => 'xlsx', 'version' => 'latest'] + ['type' => 'anthropic', 'skillID' => 'xlsx', 'version' => 'latest'] ] ], tools: [
from line 1725
``` ```php PHP - // The PHP SDK supports container skills only through $client->beta->messages with the skills beta. $client = new Client(); $messages = [
from line 1732
]; $maxRetries = 10; - $response = $client->beta->messages->create( + $response = $client->messages->create( maxTokens: 4096, messages: $messages, model: 'claude-opus-5', - betas: ['code-execution-2025-08-25', 'skills-2025-10-02'], container: [ 'skills' => [ [ 'type' => 'custom', - 'skill_id' => 'skill_01AbCdEfGhIjKlMnOpQrStUv', + 'skillID' => 'skill_01AbCdEfGhIjKlMnOpQrStUv', 'version' => 'latest' ] ]
from line 1755
$messages[] = ['role' => 'assistant', 'content' => $response->content]; - $response = $client->beta->messages->create( + $response = $client->messages->create( maxTokens: 4096, messages: $messages, model: 'claude-opus-5', - betas: ['code-execution-2025-08-25', 'skills-2025-10-02'], container: [ 'id' => $response->container->id, 'skills' => [ [ 'type' => 'custom', - 'skill_id' => 'skill_01AbCdEfGhIjKlMnOpQrStUv', + 'skillID' => 'skill_01AbCdEfGhIjKlMnOpQrStUv', 'version' => 'latest' ] ]
from line 2077
``` ```php PHP - // The PHP SDK supports container skills only through $client->beta->messages with the skills beta. $client = new Client(); - $message = $client->beta->messages->create( + $message = $client->messages->create( maxTokens: 4096, messages: [ ['role' => 'user', 'content' => 'Analyze sales data and create a presentation'] ], model: 'claude-opus-5', - betas: ['code-execution-2025-08-25', 'skills-2025-10-02'], container: [ 'skills' => [ [ 'type' => 'anthropic', - 'skill_id' => 'xlsx', + 'skillID' => 'xlsx', 'version' => 'latest' ], [ 'type' => 'anthropic', - 'skill_id' => 'pptx', + 'skillID' => 'pptx', 'version' => 'latest' ], [ 'type' => 'custom', - 'skill_id' => 'skill_01AbCdEfGhIjKlMnOpQrStUv', + 'skillID' => 'skill_01AbCdEfGhIjKlMnOpQrStUv', 'version' => 'latest' ] ]
from line 2389
``` ```php PHP - // The PHP SDK exposes the Skills API under the beta namespace; field names can differ from other SDKs. use Anthropic\Core\FileParam; // ...
from line 2395
$client = new Client(); // Option 1: Using a zip file - $skill = $client->beta->skills->create( + $skill = $client->skills->create( files: [ - FileParam::fromResource(fopen('example_skill.zip', 'r')) + FileParam::fromResource(fopen('example_skill.zip', 'r')), ], ); // Option 2: Using individual files - $skill = $client->beta->skills->create( + $skill = $client->skills->create( files: [ - FileParam::fromResource(fopen('financial_skill/SKILL.md', 'r'), 'financial_skill/SKILL.md', 'text/markdown'), - FileParam::fromResource(fopen('financial_skill/analyze.py', 'r'), 'financial_skill/analyze.py', 'text/x-python') + FileParam::fromResource( + fopen('financial_skill/SKILL.md', 'r'), + filename: 'financial_skill/SKILL.md', + contentType: 'text/markdown', + ), + FileParam::fromResource( + fopen('financial_skill/analyze.py', 'r'), + filename: 'financial_skill/analyze.py', + contentType: 'text/x-python', + ), ], ); echo "Created skill: {$skill->id}\n"; - echo "Latest version: {$skill->latestVersion}\n"; + echo "Latest version: {$skill->latestVersionID}\n"; ``` ```ruby Ruby
from line 2583
``` ```php PHP - // The PHP SDK exposes the Skills API under the beta namespace; field names can differ from other SDKs. $client = new Client(); // List Skills (first page) - $skills = $client->beta->skills->list(); - - foreach ($skills->data as $skill) { - echo "{$skill->id}: {$skill->displayTitle} (source: {$skill->source})\n"; + foreach ($client->skills->list()->getItems() as $skill) { + echo "{$skill->id}: {$skill->displayName} (source: {$skill->source->type})\n"; } // List only custom Skills - $customSkills = $client->beta->skills->list( + $customSkills = $client->skills->list( source: 'custom', ); ```
from line 2625
``` ```bash CLI - ant skills retrieve \ - --skill-id skill_01AbCdEfGhIjKlMnOpQrStUv + ant skills retrieve --skill-id skill_01AbCdEfGhIjKlMnOpQrStUv ``` ```python Python
from line 2689
``` ```php PHP - // The PHP SDK exposes the Skills API under the beta namespace; field names can differ from other SDKs. $client = new Client(); - $skill = $client->beta->skills->retrieve( - skillID: 'skill_01AbCdEfGhIjKlMnOpQrStUv', - ); + $skill = $client->skills->retrieve('skill_01AbCdEfGhIjKlMnOpQrStUv'); - echo "Skill: " . $skill->displayTitle . "\n"; - echo "Latest version: " . $skill->latestVersion . "\n"; - echo "Created: " . $skill->createdAt . "\n"; + echo "Skill: {$skill->displayName}\n"; + echo "Latest version: {$skill->latestVersionID}\n"; + echo "Created: {$skill->createdAt->format(DATE_ATOM)}\n"; ``` ```ruby Ruby
from line 2721
``` ```bash CLI - ant skills delete \ - --skill-id skill_01AbCdEfGhIjKlMnOpQrStUv >/dev/null + ant skills delete --skill-id skill_01AbCdEfGhIjKlMnOpQrStUv >/dev/null ``` ```python Python
from line 2763
``` ```php PHP - // The PHP SDK exposes the Skills API under the beta namespace; field names can differ from other SDKs. $client = new Client(); - // In the beta namespace, a Skill's versions must be deleted before the Skill itself. - $skillId = 'skill_01AbCdEfGhIjKlMnOpQrStUv'; - foreach ($client->beta->skills->versions->list($skillId)->pagingEachItem() as $version) { - $client->beta->skills->versions->delete($version->version, skillID: $skillId); - } - $client->beta->skills->delete($skillId); + $client->skills->delete('skill_01AbCdEfGhIjKlMnOpQrStUv'); ``` ```ruby Ruby
from line 3203
``` ```php PHP - // The PHP SDK exposes the Skills API under the beta namespace; field names can differ from other SDKs. - // The PHP SDK supports container skills only through $client->beta->messages with the skills beta. use Anthropic\Core\FileParam; - // ... + $client = new Client(); // Create a new version - $newVersion = $client->beta->skills->versions->create( + $newVersion = $client->skills->versions->create( skillID: 'skill_01AbCdEfGhIjKlMnOpQrStUv', files: [ - FileParam::fromResource(fopen('financial_skill/SKILL.md', 'r'), 'financial_skill/SKILL.md', 'text/markdown'), - FileParam::fromResource(fopen('financial_skill/analyze.py', 'r'), 'financial_skill/analyze.py', 'text/x-python'), + FileParam::fromResource( + fopen('financial_skill/SKILL.md', 'r'), + filename: 'financial_skill/SKILL.md', + contentType: 'text/markdown', + ), + FileParam::fromResource( + fopen('financial_skill/analyze.py', 'r'), + filename: 'financial_skill/analyze.py', + contentType: 'text/x-python', + ), ], ); // Use specific version - $response = $client->beta->messages->create( + $response = $client->messages->create( maxTokens: 4096, messages: [['role' => 'user', 'content' => 'Use updated Skill']], model: 'claude-opus-5', - betas: ['code-execution-2025-08-25', 'skills-2025-10-02'], container: [ 'skills' => [[ 'type' => 'custom', - 'skill_id' => 'skill_01AbCdEfGhIjKlMnOpQrStUv', - 'version' => $newVersion->version + 'skillID' => 'skill_01AbCdEfGhIjKlMnOpQrStUv', + 'version' => $newVersion->id ]] ], tools: [['type' => 'code_execution_20250825', 'name' => 'code_execution']]
from line 3242
echo $response; // Use latest version - $latestResponse = $client->beta->messages->create( + $latestResponse = $client->messages->create( maxTokens: 4096, messages: [['role' => 'user', 'content' => 'Use latest Skill version']], model: 'claude-opus-5', - betas: ['code-execution-2025-08-25', 'skills-2025-10-02'], container: [ 'skills' => [[ 'type' => 'custom', - 'skill_id' => 'skill_01AbCdEfGhIjKlMnOpQrStUv', + 'skillID' => 'skill_01AbCdEfGhIjKlMnOpQrStUv', 'version' => 'latest' ]] ],
from line 3599
``` ```php PHP - // The PHP SDK supports container skills only through $client->beta->messages with the skills beta. $client = new Client(); // Custom DCF analysis Skill (ID obtained from Skills API create response) - $dcfSkillId = "skill_01AbCdEfGhIjKlMnOpQrStUv"; + $dcfSkillId = 'skill_01AbCdEfGhIjKlMnOpQrStUv'; // Use with Excel to create financial model - $message = $client->beta->messages->create( + $message = $client->messages->create( maxTokens: 4096, messages: [ ['role' => 'user', 'content' => 'Build a DCF valuation model for a SaaS company'] ], model: 'claude-opus-5', - betas: ['code-execution-2025-08-25', 'skills-2025-10-02'], container: [ 'skills' => [ - ['type' => 'anthropic', 'skill_id' => 'xlsx', 'version' => 'latest'], - ['type' => 'custom', 'skill_id' => $dcfSkillId, 'version' => 'latest'] + ['type' => 'anthropic', 'skillID' => 'xlsx', 'version' => 'latest'], + ['type' => 'custom', 'skillID' => $dcfSkillId, 'version' => 'latest'] ] ], tools: [
from line 3827
$container = [ 'skills' => [[ 'type' => 'custom', - 'skill_id' => 'skill_01AbCdEfGhIjKlMnOpQrStUv', - 'version' => '1759178010641129' + 'skillID' => 'skill_01AbCdEfGhIjKlMnOpQrStUv', + 'version' => 'skver_01AbCdEfGhIjKlMnOpQrStUv' ]] ]; ```
from line 3968
$container = [ 'skills' => [[ 'type' => 'custom', - 'skill_id' => 'skill_01AbCdEfGhIjKlMnOpQrStUv', + 'skillID' => 'skill_01AbCdEfGhIjKlMnOpQrStUv', 'version' => 'latest' ]] ];
from line 4306
``` ```php PHP - // The PHP SDK supports container skills only through $client->beta->messages with the skills beta. $client = new Client(); // Skills render into the system prompt in a fixed, cache-friendly order - $response1 = $client->beta->messages->create( + $response1 = $client->messages->create( maxTokens: 4096, messages: [ ['role' => 'user', 'content' => 'Analyze sales data'] ], model: 'claude-opus-5', - betas: [ - 'code-execution-2025-08-25', - 'skills-2025-10-02', - ], container: [ 'skills' => [ - ['type' => 'anthropic', 'skill_id' => 'xlsx', 'version' => 'latest'] + ['type' => 'anthropic', 'skillID' => 'xlsx', 'version' => 'latest'] ] ], tools: [
from line 4327
echo $response1; // Changing the Skills list ([xlsx] vs [xlsx, pptx]) changes the prefix: a cache miss, while an identical list is a cache hit - $response2 = $client->beta->messages->create( + $response2 = $client->messages->create( maxTokens: 4096, messages: [ ['role' => 'user', 'content' => 'Create a presentation'] ], model: 'claude-opus-5', - betas: [ - 'code-execution-2025-08-25', - 'skills-2025-10-02', - ], container: [ 'skills' => [ - ['type' => 'anthropic', 'skill_id' => 'xlsx', 'version' => 'latest'], - ['type' => 'anthropic', 'skill_id' => 'pptx', 'version' => 'latest'] + ['type' => 'anthropic', 'skillID' => 'xlsx', 'version' => 'latest'], + ['type' => 'anthropic', 'skillID' => 'pptx', 'version' => 'latest'] ] ], tools: [
from line 4588
``` ```php PHP - // The PHP SDK supports container skills only through $client->beta->messages with the skills beta. use Anthropic\Core\Exceptions\BadRequestException; $client = new Client(); try { - $message = $client->beta->messages->create( + $message = $client->messages->create( maxTokens: 4096, messages: [ ['role' => 'user', 'content' => 'Process data'] ], model: 'claude-opus-5', - betas: ['code-execution-2025-08-25', 'skills-2025-10-02'], container: [ 'skills' => [ [ 'type' => 'custom', - 'skill_id' => 'skill_01AbCdEfGhIjKlMnOpQrStUv', + 'skillID' => 'skill_01AbCdEfGhIjKlMnOpQrStUv', 'version' => 'latest' ] ]