Source Intelligence
Sweep 28 Aug 2026 ยท 00:00Z Build v2.1.250 478 read Stable v2.1.236 Latest v2.1.250 Next v2.1.250 Feeds RSS JSON llms.txt

DisclaimerUnofficial, and not affiliated with Anthropic. Nearly all of this is read straight out of what ships: npm bundles, captured prompts, published docs. Anthropic's own notes go in verbatim, marked as theirs. The rest is my reading, and every entry carries the strings behind it. If one looks wrong, vote it down and say why.

One change

skills-guide

build-with-claude/skills-guide

first seen The page's own history The capture it came from

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'
                   ]
               ]