[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6AFJH4560DBPWQS02C39FSZ":3,"skill-same:01M6AFJH4560DBPWQS02C39FSZ":104},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":45,"linkOnly":46,"markdownContent":47,"markdownBody":48,"frontMatter":49,"refName":50,"commitSha":51,"skillDirectory":52,"forksCount":53,"repositoryHtmlUrl":54,"repositoryHomepageUrl":55,"ownerHtmlUrl":56,"ownerBlogUrl":57,"ownerDescription":58,"updatedAt":59,"install":60,"resources":73},"01M6AFJH4560DBPWQS02C39FSZ","protocolsio-integration",null,"Integration with protocols.io API for managing scientific protocols. This skill should be used when working with protocols.io to search, create, update, or publish protocols; manage protocol steps and materials; handle discussions and comments; organize workspaces; upload and manage files; or integrate protocols.io functionality into workflows. Applicable for protocol discovery, collaborative protocol development, experiment tracking, lab protocol management, and scientific documentation.","davila7\u002Fclaude-code-templates","davila7","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F6216945?v=4","01M6ADEWWFPS191NFM0Y1EX1JH","Daniel Avila","01M6ADJHGM78PHQRD3XZTFDVKK",33332,"MIT","https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fscientific\u002Fprotocolsio-integration\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44],"integration","protocolsio integration","when","workflows","Experiment Tracking","scientific","io","organize","files","workspaces","integrate","experiment","api","publish","protocols","search","protocol","update","create","development","documentation","2026-11-10 10:12:30",false,"---\nname: protocolsio-integration\ndescription: Integration with protocols.io API for managing scientific protocols. This skill should be used when working with protocols.io to search, create, update, or publish protocols; manage protocol steps and materials; handle discussions and comments; organize workspaces; upload and manage files; or integrate protocols.io functionality into workflows. Applicable for protocol discovery, collaborative protocol development, experiment tracking, lab protocol management, and scientific documentation.\n---\n\n# Protocols.io Integration\n\n## Overview\n\nProtocols.io is a comprehensive platform for developing, sharing, and managing scientific protocols. This skill provides complete integration with the protocols.io API v3, enabling programmatic access to protocols, workspaces, discussions, file management, and collaboration features.\n\n## When to Use This Skill\n\nUse this skill when working with protocols.io in any of the following scenarios:\n\n- **Protocol Discovery**: Searching for existing protocols by keywords, DOI, or category\n- **Protocol Management**: Creating, updating, or publishing scientific protocols\n- **Step Management**: Adding, editing, or organizing protocol steps and procedures\n- **Collaborative Development**: Working with team members on shared protocols\n- **Workspace Organization**: Managing lab or institutional protocol repositories\n- **Discussion & Feedback**: Adding or responding to protocol comments\n- **File Management**: Uploading data files, images, or documents to protocols\n- **Experiment Tracking**: Documenting protocol executions and results\n- **Data Export**: Backing up or migrating protocol collections\n- **Integration Projects**: Building tools that interact with protocols.io\n\n## Core Capabilities\n\nThis skill provides comprehensive guidance across five major capability areas:\n\n### 1. Authentication & Access\n\nManage API authentication using access tokens and OAuth flows. Includes both client access tokens (for personal content) and OAuth tokens (for multi-user applications).\n\n**Key operations:**\n- Generate authorization links for OAuth flow\n- Exchange authorization codes for access tokens\n- Refresh expired tokens\n- Manage rate limits and permissions\n\n**Reference:** Read `references\u002Fauthentication.md` for detailed authentication procedures, OAuth implementation, and security best practices.\n\n### 2. Protocol Operations\n\nComplete protocol lifecycle management from creation to publication.\n\n**Key operations:**\n- Search and discover protocols by keywords, filters, or DOI\n- Retrieve detailed protocol information with all steps\n- Create new protocols with metadata and tags\n- Update protocol information and settings\n- Manage protocol steps (create, update, delete, reorder)\n- Handle protocol materials and reagents\n- Publish protocols with DOI issuance\n- Bookmark protocols for quick access\n- Generate protocol PDFs\n\n**Reference:** Read `references\u002Fprotocols_api.md` for comprehensive protocol management guidance, including API endpoints, parameters, common workflows, and examples.\n\n### 3. Discussions & Collaboration\n\nEnable community engagement through comments and discussions.\n\n**Key operations:**\n- View protocol-level and step-level comments\n- Create new comments and threaded replies\n- Edit or delete your own comments\n- Analyze discussion patterns and feedback\n- Respond to user questions and issues\n\n**Reference:** Read `references\u002Fdiscussions.md` for discussion management, comment threading, and collaboration workflows.\n\n### 4. Workspace Management\n\nOrganize protocols within team workspaces with role-based permissions.\n\n**Key operations:**\n- List and access user workspaces\n- Retrieve workspace details and member lists\n- Request access or join workspaces\n- List workspace-specific protocols\n- Create protocols within workspaces\n- Manage workspace permissions and collaboration\n\n**Reference:** Read `references\u002Fworkspaces.md` for workspace organization, permission management, and team collaboration patterns.\n\n### 5. File Operations\n\nUpload, organize, and manage files associated with protocols.\n\n**Key operations:**\n- Search workspace files and folders\n- Upload files with metadata and tags\n- Download files and verify uploads\n- Organize files into folder hierarchies\n- Update file metadata\n- Delete and restore files\n- Manage storage and organization\n\n**Reference:** Read `references\u002Ffile_manager.md` for file upload procedures, organization strategies, and storage management.\n\n### 6. Additional Features\n\nSupplementary functionality including profiles, notifications, and exports.\n\n**Key operations:**\n- Manage user profiles and settings\n- Query recently published protocols\n- Create and track experiment records\n- Receive and manage notifications\n- Export organization data for archival\n\n**Reference:** Read `references\u002Fadditional_features.md` for profile management, publication discovery, experiment tracking, and data export.\n\n## Getting Started\n\n### Step 1: Authentication Setup\n\nBefore using any protocols.io API functionality:\n\n1. Obtain an access token (CLIENT_ACCESS_TOKEN or OAUTH_ACCESS_TOKEN)\n2. Read `references\u002Fauthentication.md` for detailed authentication procedures\n3. Store the token securely\n4. Include in all requests as: `Authorization: Bearer YOUR_TOKEN`\n\n### Step 2: Identify Your Use Case\n\nDetermine which capability area addresses your needs:\n\n- **Working with protocols?** → Read `references\u002Fprotocols_api.md`\n- **Managing team protocols?** → Read `references\u002Fworkspaces.md`\n- **Handling comments\u002Ffeedback?** → Read `references\u002Fdiscussions.md`\n- **Uploading files\u002Fdata?** → Read `references\u002Ffile_manager.md`\n- **Tracking experiments or profiles?** → Read `references\u002Fadditional_features.md`\n\n### Step 3: Implement Integration\n\nFollow the guidance in the relevant reference files:\n\n- Each reference includes detailed endpoint documentation\n- API parameters and request\u002Fresponse formats are specified\n- Common use cases and workflows are provided with examples\n- Best practices and error handling guidance included\n\n## Base URL and Request Format\n\nAll API requests use the base URL:\n```\nhttps:\u002F\u002Fprotocols.io\u002Fapi\u002Fv3\n```\n\nAll requests require the Authorization header:\n```\nAuthorization: Bearer YOUR_ACCESS_TOKEN\n```\n\nMost endpoints support JSON request\u002Fresponse format with `Content-Type: application\u002Fjson`.\n\n## Content Format Options\n\nMany endpoints support a `content_format` parameter to control how protocol content is returned:\n\n- `json`: Draft.js JSON format (default)\n- `html`: HTML format\n- `markdown`: Markdown format\n\nInclude as query parameter: `?content_format=html`\n\n## Rate Limiting\n\nBe aware of API rate limits:\n\n- **Standard endpoints**: 100 requests per minute per user\n- **PDF endpoint**: 5 requests\u002Fminute (signed-in), 3 requests\u002Fminute (unsigned)\n\nImplement exponential backoff for rate limit errors (HTTP 429).\n\n## Common Workflows\n\n### Workflow 1: Import and Analyze Protocol\n\nTo analyze an existing protocol from protocols.io:\n\n1. **Search**: Use `GET \u002Fprotocols` with keywords to find relevant protocols\n2. **Retrieve**: Get full details with `GET \u002Fprotocols\u002F{protocol_id}`\n3. **Extract**: Parse steps, materials, and metadata for analysis\n4. **Review discussions**: Check `GET \u002Fprotocols\u002F{id}\u002Fcomments` for user feedback\n5. **Export**: Generate PDF if needed for offline reference\n\n**Reference files**: `protocols_api.md`, `discussions.md`\n\n### Workflow 2: Create and Publish Protocol\n\nTo create a new protocol and publish with DOI:\n\n1. **Authenticate**: Ensure you have valid access token (see `authentication.md`)\n2. **Create**: Use `POST \u002Fprotocols` with title and description\n3. **Add steps**: For each step, use `POST \u002Fprotocols\u002F{id}\u002Fsteps`\n4. **Add materials**: Document reagents in step components\n5. **Review**: Verify all content is complete and accurate\n6. **Publish**: Issue DOI with `POST \u002Fprotocols\u002F{id}\u002Fpublish`\n\n**Reference files**: `protocols_api.md`, `authentication.md`\n\n### Workflow 3: Collaborative Lab Workspace\n\nTo set up team protocol management:\n\n1. **Create\u002Fjoin workspace**: Access or request workspace membership (see `workspaces.md`)\n2. **Organize structure**: Create folder hierarchy for lab protocols (see `file_manager.md`)\n3. **Create protocols**: Use `POST \u002Fworkspaces\u002F{id}\u002Fprotocols` for team protocols\n4. **Upload files**: Add experimental data and images\n5. **Enable discussions**: Team members can comment and provide feedback\n6. **Track experiments**: Document protocol executions with experiment records\n\n**Reference files**: `workspaces.md`, `file_manager.md`, `protocols_api.md`, `discussions.md`, `additional_features.md`\n\n### Workflow 4: Experiment Documentation\n\nTo track protocol executions and results:\n\n1. **Execute protocol**: Perform protocol in laboratory\n2. **Upload data**: Use File Manager API to upload results (see `file_manager.md`)\n3. **Create record**: Document execution with `POST \u002Fprotocols\u002F{id}\u002Fruns`\n4. **Link files**: Reference uploaded data files in experiment record\n5. **Note modifications**: Document any protocol deviations or optimizations\n6. **Analyze**: Review multiple runs for reproducibility assessment\n\n**Reference files**: `additional_features.md`, `file_manager.md`, `protocols_api.md`\n\n### Workflow 5: Protocol Discovery and Citation\n\nTo find and cite protocols in research:\n\n1. **Search**: Query published protocols with `GET \u002Fpublications`\n2. **Filter**: Use category and keyword filters for relevant protocols\n3. **Review**: Read protocol details and community comments\n4. **Bookmark**: Save useful protocols with `POST \u002Fprotocols\u002F{id}\u002Fbookmarks`\n5. **Cite**: Use protocol DOI in publications (proper attribution)\n6. **Export PDF**: Generate formatted PDF for offline reference\n\n**Reference files**: `protocols_api.md`, `additional_features.md`\n\n## Python Request Examples\n\n### Basic Protocol Search\n\n```python\nimport requests\n\ntoken = \"YOUR_ACCESS_TOKEN\"\nheaders = {\"Authorization\": f\"Bearer {token}\"}\n\n# Search for CRISPR protocols\nresponse = requests.get(\n    \"https:\u002F\u002Fprotocols.io\u002Fapi\u002Fv3\u002Fprotocols\",\n    headers=headers,\n    params={\n        \"filter\": \"public\",\n        \"key\": \"CRISPR\",\n        \"page_size\": 10,\n        \"content_format\": \"html\"\n    }\n)\n\nprotocols = response.json()\nfor protocol in protocols[\"items\"]:\n    print(f\"{protocol['title']} - {protocol['doi']}\")\n```\n\n### Create New Protocol\n\n```python\nimport requests\n\ntoken = \"YOUR_ACCESS_TOKEN\"\nheaders = {\n    \"Authorization\": f\"Bearer {token}\",\n    \"Content-Type\": \"application\u002Fjson\"\n}\n\n# Create protocol\ndata = {\n    \"title\": \"CRISPR-Cas9 Gene Editing Protocol\",\n    \"description\": \"Comprehensive protocol for CRISPR gene editing\",\n    \"tags\": [\"CRISPR\", \"gene editing\", \"molecular biology\"]\n}\n\nresponse = requests.post(\n    \"https:\u002F\u002Fprotocols.io\u002Fapi\u002Fv3\u002Fprotocols\",\n    headers=headers,\n    json=data\n)\n\nprotocol_id = response.json()[\"item\"][\"id\"]\nprint(f\"Created protocol: {protocol_id}\")\n```\n\n### Upload File to Workspace\n\n```python\nimport requests\n\ntoken = \"YOUR_ACCESS_TOKEN\"\nheaders = {\"Authorization\": f\"Bearer {token}\"}\n\n# Upload file\nwith open(\"data.csv\", \"rb\") as f:\n    files = {\"file\": f}\n    data = {\n        \"folder_id\": \"root\",\n        \"description\": \"Experimental results\",\n        \"tags\": \"experiment,data,2025\"\n    }\n\n    response = requests.post(\n        \"https:\u002F\u002Fprotocols.io\u002Fapi\u002Fv3\u002Fworkspaces\u002F12345\u002Ffiles\u002Fupload\",\n        headers=headers,\n        files=files,\n        data=data\n    )\n\nfile_id = response.json()[\"item\"][\"id\"]\nprint(f\"Uploaded file: {file_id}\")\n```\n\n## Error Handling\n\nImplement robust error handling for API requests:\n\n```python\nimport requests\nimport time\n\ndef make_request_with_retry(url, headers, max_retries=3):\n    for attempt in range(max_retries):\n        try:\n            response = requests.get(url, headers=headers)\n\n            if response.status_code == 200:\n                return response.json()\n            elif response.status_code == 429:  # Rate limit\n                retry_after = int(response.headers.get('Retry-After', 60))\n                time.sleep(retry_after)\n                continue\n            elif response.status_code >= 500:  # Server error\n                time.sleep(2 ** attempt)  # Exponential backoff\n                continue\n            else:\n                response.raise_for_status()\n\n        except requests.exceptions.RequestException as e:\n            if attempt == max_retries - 1:\n                raise\n            time.sleep(2 ** attempt)\n\n    raise Exception(\"Max retries exceeded\")\n```\n\n## Reference Files\n\nLoad the appropriate reference file based on your task:\n\n- **`authentication.md`**: OAuth flows, token management, rate limiting\n- **`protocols_api.md`**: Protocol CRUD, steps, materials, publishing, PDFs\n- **`discussions.md`**: Comments, replies, collaboration\n- **`workspaces.md`**: Team workspaces, permissions, organization\n- **`file_manager.md`**: File upload, folders, storage management\n- **`additional_features.md`**: Profiles, publications, experiments, notifications\n\nTo load a reference file, read the file from the `references\u002F` directory when needed for specific functionality.\n\n## Best Practices\n\n1. **Authentication**: Store tokens securely, never in code or version control\n2. **Rate Limiting**: Implement exponential backoff and respect rate limits\n3. **Error Handling**: Handle all HTTP error codes appropriately\n4. **Data Validation**: Validate input before API calls\n5. **Documentation**: Document protocol steps thoroughly\n6. **Collaboration**: Use comments and discussions for team communication\n7. **Organization**: Maintain consistent naming and tagging conventions\n8. **Versioning**: Track protocol versions when making updates\n9. **Attribution**: Properly cite protocols using DOIs\n10. **Backup**: Regularly export important protocols and workspace data\n\n## Additional Resources\n\n- **Official API Documentation**: https:\u002F\u002Fapidoc.protocols.io\u002F\n- **Protocols.io Platform**: https:\u002F\u002Fwww.protocols.io\u002F\n- **Support**: Contact protocols.io support for API access and technical issues\n- **Community**: Engage with protocols.io community for best practices\n\n## Troubleshooting\n\n**Authentication Issues:**\n- Verify token is valid and not expired\n- Check Authorization header format: `Bearer YOUR_TOKEN`\n- Ensure appropriate token type (CLIENT vs OAUTH)\n\n**Rate Limiting:**\n- Implement exponential backoff for 429 errors\n- Monitor request frequency\n- Consider caching frequent requests\n\n**Permission Errors:**\n- Verify workspace\u002Fprotocol access permissions\n- Check user role in workspace\n- Ensure protocol is not private if accessing without permission\n\n**File Upload Failures:**\n- Check file size against workspace limits\n- Verify file type is supported\n- Ensure multipart\u002Fform-data encoding is correct\n\nFor detailed troubleshooting guidance, refer to the specific reference files covering each capability area.\n","# Protocols.io Integration\n\n## Overview\n\nProtocols.io is a comprehensive platform for developing, sharing, and managing scientific protocols. This skill provides complete integration with the protocols.io API v3, enabling programmatic access to protocols, workspaces, discussions, file management, and collaboration features.\n\n## When to Use This Skill\n\nUse this skill when working with protocols.io in any of the following scenarios:\n\n- **Protocol Discovery**: Searching for existing protocols by keywords, DOI, or category\n- **Protocol Management**: Creating, updating, or publishing scientific protocols\n- **Step Management**: Adding, editing, or organizing protocol steps and procedures\n- **Collaborative Development**: Working with team members on shared protocols\n- **Workspace Organization**: Managing lab or institutional protocol repositories\n- **Discussion & Feedback**: Adding or responding to protocol comments\n- **File Management**: Uploading data files, images, or documents to protocols\n- **Experiment Tracking**: Documenting protocol executions and results\n- **Data Export**: Backing up or migrating protocol collections\n- **Integration Projects**: Building tools that interact with protocols.io\n\n## Core Capabilities\n\nThis skill provides comprehensive guidance across five major capability areas:\n\n### 1. Authentication & Access\n\nManage API authentication using access tokens and OAuth flows. Includes both client access tokens (for personal content) and OAuth tokens (for multi-user applications).\n\n**Key operations:**\n- Generate authorization links for OAuth flow\n- Exchange authorization codes for access tokens\n- Refresh expired tokens\n- Manage rate limits and permissions\n\n**Reference:** Read `references\u002Fauthentication.md` for detailed authentication procedures, OAuth implementation, and security best practices.\n\n### 2. Protocol Operations\n\nComplete protocol lifecycle management from creation to publication.\n\n**Key operations:**\n- Search and discover protocols by keywords, filters, or DOI\n- Retrieve detailed protocol information with all steps\n- Create new protocols with metadata and tags\n- Update protocol information and settings\n- Manage protocol steps (create, update, delete, reorder)\n- Handle protocol materials and reagents\n- Publish protocols with DOI issuance\n- Bookmark protocols for quick access\n- Generate protocol PDFs\n\n**Reference:** Read `references\u002Fprotocols_api.md` for comprehensive protocol management guidance, including API endpoints, parameters, common workflows, and examples.\n\n### 3. Discussions & Collaboration\n\nEnable community engagement through comments and discussions.\n\n**Key operations:**\n- View protocol-level and step-level comments\n- Create new comments and threaded replies\n- Edit or delete your own comments\n- Analyze discussion patterns and feedback\n- Respond to user questions and issues\n\n**Reference:** Read `references\u002Fdiscussions.md` for discussion management, comment threading, and collaboration workflows.\n\n### 4. Workspace Management\n\nOrganize protocols within team workspaces with role-based permissions.\n\n**Key operations:**\n- List and access user workspaces\n- Retrieve workspace details and member lists\n- Request access or join workspaces\n- List workspace-specific protocols\n- Create protocols within workspaces\n- Manage workspace permissions and collaboration\n\n**Reference:** Read `references\u002Fworkspaces.md` for workspace organization, permission management, and team collaboration patterns.\n\n### 5. File Operations\n\nUpload, organize, and manage files associated with protocols.\n\n**Key operations:**\n- Search workspace files and folders\n- Upload files with metadata and tags\n- Download files and verify uploads\n- Organize files into folder hierarchies\n- Update file metadata\n- Delete and restore files\n- Manage storage and organization\n\n**Reference:** Read `references\u002Ffile_manager.md` for file upload procedures, organization strategies, and storage management.\n\n### 6. Additional Features\n\nSupplementary functionality including profiles, notifications, and exports.\n\n**Key operations:**\n- Manage user profiles and settings\n- Query recently published protocols\n- Create and track experiment records\n- Receive and manage notifications\n- Export organization data for archival\n\n**Reference:** Read `references\u002Fadditional_features.md` for profile management, publication discovery, experiment tracking, and data export.\n\n## Getting Started\n\n### Step 1: Authentication Setup\n\nBefore using any protocols.io API functionality:\n\n1. Obtain an access token (CLIENT_ACCESS_TOKEN or OAUTH_ACCESS_TOKEN)\n2. Read `references\u002Fauthentication.md` for detailed authentication procedures\n3. Store the token securely\n4. Include in all requests as: `Authorization: Bearer YOUR_TOKEN`\n\n### Step 2: Identify Your Use Case\n\nDetermine which capability area addresses your needs:\n\n- **Working with protocols?** → Read `references\u002Fprotocols_api.md`\n- **Managing team protocols?** → Read `references\u002Fworkspaces.md`\n- **Handling comments\u002Ffeedback?** → Read `references\u002Fdiscussions.md`\n- **Uploading files\u002Fdata?** → Read `references\u002Ffile_manager.md`\n- **Tracking experiments or profiles?** → Read `references\u002Fadditional_features.md`\n\n### Step 3: Implement Integration\n\nFollow the guidance in the relevant reference files:\n\n- Each reference includes detailed endpoint documentation\n- API parameters and request\u002Fresponse formats are specified\n- Common use cases and workflows are provided with examples\n- Best practices and error handling guidance included\n\n## Base URL and Request Format\n\nAll API requests use the base URL:\n```\nhttps:\u002F\u002Fprotocols.io\u002Fapi\u002Fv3\n```\n\nAll requests require the Authorization header:\n```\nAuthorization: Bearer YOUR_ACCESS_TOKEN\n```\n\nMost endpoints support JSON request\u002Fresponse format with `Content-Type: application\u002Fjson`.\n\n## Content Format Options\n\nMany endpoints support a `content_format` parameter to control how protocol content is returned:\n\n- `json`: Draft.js JSON format (default)\n- `html`: HTML format\n- `markdown`: Markdown format\n\nInclude as query parameter: `?content_format=html`\n\n## Rate Limiting\n\nBe aware of API rate limits:\n\n- **Standard endpoints**: 100 requests per minute per user\n- **PDF endpoint**: 5 requests\u002Fminute (signed-in), 3 requests\u002Fminute (unsigned)\n\nImplement exponential backoff for rate limit errors (HTTP 429).\n\n## Common Workflows\n\n### Workflow 1: Import and Analyze Protocol\n\nTo analyze an existing protocol from protocols.io:\n\n1. **Search**: Use `GET \u002Fprotocols` with keywords to find relevant protocols\n2. **Retrieve**: Get full details with `GET \u002Fprotocols\u002F{protocol_id}`\n3. **Extract**: Parse steps, materials, and metadata for analysis\n4. **Review discussions**: Check `GET \u002Fprotocols\u002F{id}\u002Fcomments` for user feedback\n5. **Export**: Generate PDF if needed for offline reference\n\n**Reference files**: `protocols_api.md`, `discussions.md`\n\n### Workflow 2: Create and Publish Protocol\n\nTo create a new protocol and publish with DOI:\n\n1. **Authenticate**: Ensure you have valid access token (see `authentication.md`)\n2. **Create**: Use `POST \u002Fprotocols` with title and description\n3. **Add steps**: For each step, use `POST \u002Fprotocols\u002F{id}\u002Fsteps`\n4. **Add materials**: Document reagents in step components\n5. **Review**: Verify all content is complete and accurate\n6. **Publish**: Issue DOI with `POST \u002Fprotocols\u002F{id}\u002Fpublish`\n\n**Reference files**: `protocols_api.md`, `authentication.md`\n\n### Workflow 3: Collaborative Lab Workspace\n\nTo set up team protocol management:\n\n1. **Create\u002Fjoin workspace**: Access or request workspace membership (see `workspaces.md`)\n2. **Organize structure**: Create folder hierarchy for lab protocols (see `file_manager.md`)\n3. **Create protocols**: Use `POST \u002Fworkspaces\u002F{id}\u002Fprotocols` for team protocols\n4. **Upload files**: Add experimental data and images\n5. **Enable discussions**: Team members can comment and provide feedback\n6. **Track experiments**: Document protocol executions with experiment records\n\n**Reference files**: `workspaces.md`, `file_manager.md`, `protocols_api.md`, `discussions.md`, `additional_features.md`\n\n### Workflow 4: Experiment Documentation\n\nTo track protocol executions and results:\n\n1. **Execute protocol**: Perform protocol in laboratory\n2. **Upload data**: Use File Manager API to upload results (see `file_manager.md`)\n3. **Create record**: Document execution with `POST \u002Fprotocols\u002F{id}\u002Fruns`\n4. **Link files**: Reference uploaded data files in experiment record\n5. **Note modifications**: Document any protocol deviations or optimizations\n6. **Analyze**: Review multiple runs for reproducibility assessment\n\n**Reference files**: `additional_features.md`, `file_manager.md`, `protocols_api.md`\n\n### Workflow 5: Protocol Discovery and Citation\n\nTo find and cite protocols in research:\n\n1. **Search**: Query published protocols with `GET \u002Fpublications`\n2. **Filter**: Use category and keyword filters for relevant protocols\n3. **Review**: Read protocol details and community comments\n4. **Bookmark**: Save useful protocols with `POST \u002Fprotocols\u002F{id}\u002Fbookmarks`\n5. **Cite**: Use protocol DOI in publications (proper attribution)\n6. **Export PDF**: Generate formatted PDF for offline reference\n\n**Reference files**: `protocols_api.md`, `additional_features.md`\n\n## Python Request Examples\n\n### Basic Protocol Search\n\n```python\nimport requests\n\ntoken = \"YOUR_ACCESS_TOKEN\"\nheaders = {\"Authorization\": f\"Bearer {token}\"}\n\n# Search for CRISPR protocols\nresponse = requests.get(\n    \"https:\u002F\u002Fprotocols.io\u002Fapi\u002Fv3\u002Fprotocols\",\n    headers=headers,\n    params={\n        \"filter\": \"public\",\n        \"key\": \"CRISPR\",\n        \"page_size\": 10,\n        \"content_format\": \"html\"\n    }\n)\n\nprotocols = response.json()\nfor protocol in protocols[\"items\"]:\n    print(f\"{protocol['title']} - {protocol['doi']}\")\n```\n\n### Create New Protocol\n\n```python\nimport requests\n\ntoken = \"YOUR_ACCESS_TOKEN\"\nheaders = {\n    \"Authorization\": f\"Bearer {token}\",\n    \"Content-Type\": \"application\u002Fjson\"\n}\n\n# Create protocol\ndata = {\n    \"title\": \"CRISPR-Cas9 Gene Editing Protocol\",\n    \"description\": \"Comprehensive protocol for CRISPR gene editing\",\n    \"tags\": [\"CRISPR\", \"gene editing\", \"molecular biology\"]\n}\n\nresponse = requests.post(\n    \"https:\u002F\u002Fprotocols.io\u002Fapi\u002Fv3\u002Fprotocols\",\n    headers=headers,\n    json=data\n)\n\nprotocol_id = response.json()[\"item\"][\"id\"]\nprint(f\"Created protocol: {protocol_id}\")\n```\n\n### Upload File to Workspace\n\n```python\nimport requests\n\ntoken = \"YOUR_ACCESS_TOKEN\"\nheaders = {\"Authorization\": f\"Bearer {token}\"}\n\n# Upload file\nwith open(\"data.csv\", \"rb\") as f:\n    files = {\"file\": f}\n    data = {\n        \"folder_id\": \"root\",\n        \"description\": \"Experimental results\",\n        \"tags\": \"experiment,data,2025\"\n    }\n\n    response = requests.post(\n        \"https:\u002F\u002Fprotocols.io\u002Fapi\u002Fv3\u002Fworkspaces\u002F12345\u002Ffiles\u002Fupload\",\n        headers=headers,\n        files=files,\n        data=data\n    )\n\nfile_id = response.json()[\"item\"][\"id\"]\nprint(f\"Uploaded file: {file_id}\")\n```\n\n## Error Handling\n\nImplement robust error handling for API requests:\n\n```python\nimport requests\nimport time\n\ndef make_request_with_retry(url, headers, max_retries=3):\n    for attempt in range(max_retries):\n        try:\n            response = requests.get(url, headers=headers)\n\n            if response.status_code == 200:\n                return response.json()\n            elif response.status_code == 429:  # Rate limit\n                retry_after = int(response.headers.get('Retry-After', 60))\n                time.sleep(retry_after)\n                continue\n            elif response.status_code >= 500:  # Server error\n                time.sleep(2 ** attempt)  # Exponential backoff\n                continue\n            else:\n                response.raise_for_status()\n\n        except requests.exceptions.RequestException as e:\n            if attempt == max_retries - 1:\n                raise\n            time.sleep(2 ** attempt)\n\n    raise Exception(\"Max retries exceeded\")\n```\n\n## Reference Files\n\nLoad the appropriate reference file based on your task:\n\n- **`authentication.md`**: OAuth flows, token management, rate limiting\n- **`protocols_api.md`**: Protocol CRUD, steps, materials, publishing, PDFs\n- **`discussions.md`**: Comments, replies, collaboration\n- **`workspaces.md`**: Team workspaces, permissions, organization\n- **`file_manager.md`**: File upload, folders, storage management\n- **`additional_features.md`**: Profiles, publications, experiments, notifications\n\nTo load a reference file, read the file from the `references\u002F` directory when needed for specific functionality.\n\n## Best Practices\n\n1. **Authentication**: Store tokens securely, never in code or version control\n2. **Rate Limiting**: Implement exponential backoff and respect rate limits\n3. **Error Handling**: Handle all HTTP error codes appropriately\n4. **Data Validation**: Validate input before API calls\n5. **Documentation**: Document protocol steps thoroughly\n6. **Collaboration**: Use comments and discussions for team communication\n7. **Organization**: Maintain consistent naming and tagging conventions\n8. **Versioning**: Track protocol versions when making updates\n9. **Attribution**: Properly cite protocols using DOIs\n10. **Backup**: Regularly export important protocols and workspace data\n\n## Additional Resources\n\n- **Official API Documentation**: https:\u002F\u002Fapidoc.protocols.io\u002F\n- **Protocols.io Platform**: https:\u002F\u002Fwww.protocols.io\u002F\n- **Support**: Contact protocols.io support for API access and technical issues\n- **Community**: Engage with protocols.io community for best practices\n\n## Troubleshooting\n\n**Authentication Issues:**\n- Verify token is valid and not expired\n- Check Authorization header format: `Bearer YOUR_TOKEN`\n- Ensure appropriate token type (CLIENT vs OAUTH)\n\n**Rate Limiting:**\n- Implement exponential backoff for 429 errors\n- Monitor request frequency\n- Consider caching frequent requests\n\n**Permission Errors:**\n- Verify workspace\u002Fprotocol access permissions\n- Check user role in workspace\n- Ensure protocol is not private if accessing without permission\n\n**File Upload Failures:**\n- Check file size against workspace limits\n- Verify file type is supported\n- Ensure multipart\u002Fform-data encoding is correct\n\nFor detailed troubleshooting guidance, refer to the specific reference files covering each capability area.\n",{"name":5,"description":7},"main","2b749c82b5d11fac39d9a6e021ce3f5b8a541bd1","cli-tool\u002Fcomponents\u002Fskills\u002Fscientific\u002Fprotocolsio-integration",3911,"https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates","https:\u002F\u002Faitmpl.com","https:\u002F\u002Fgithub.com\u002Fdavila7","https:\u002F\u002Fdanielavila.me","Building AI dev tools with LLMs","2026-11-11 21:38:31",{"source":8,"skillName":5,"commands":61,"prompt":71,"zipAvailable":72},[62,65,68],{"tool":63,"command":64},"npx","npx skills add davila7\u002Fclaude-code-templates --skill protocolsio-integration",{"tool":66,"command":67},"bunx","bunx skills add davila7\u002Fclaude-code-templates --skill protocolsio-integration",{"tool":69,"command":70},"pnpm","pnpm dlx skills add davila7\u002Fclaude-code-templates --skill protocolsio-integration","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fscientific\u002Fprotocolsio-integration\u002FSKILL.md",true,[74,80,84,88,92,96,100],{"path":75,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":78,"sourceHtmlUrl":79},"references\u002Fadditional_features.md","REFERENCE","参考文档",10119,"https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fscientific\u002Fprotocolsio-integration\u002Freferences\u002Fadditional_features.md",{"path":81,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":82,"sourceHtmlUrl":83},"references\u002Fauthentication.md",3374,"https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fscientific\u002Fprotocolsio-integration\u002Freferences\u002Fauthentication.md",{"path":85,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":86,"sourceHtmlUrl":87},"references\u002Fdiscussions.md",6915,"https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fscientific\u002Fprotocolsio-integration\u002Freferences\u002Fdiscussions.md",{"path":89,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":90,"sourceHtmlUrl":91},"references\u002Ffile_manager.md",11036,"https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fscientific\u002Fprotocolsio-integration\u002Freferences\u002Ffile_manager.md",{"path":93,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":94,"sourceHtmlUrl":95},"references\u002Fprotocols_api.md",7937,"https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fscientific\u002Fprotocolsio-integration\u002Freferences\u002Fprotocols_api.md",{"path":97,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":98,"sourceHtmlUrl":99},"references\u002Fworkspaces.md",8098,"https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fscientific\u002Fprotocolsio-integration\u002Freferences\u002Fworkspaces.md",{"path":101,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":102,"sourceHtmlUrl":103},"templates\u002Fresearch-plan-template.md",5877,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Frsmdt-the-startup\u002Fplugins\u002Fteam\u002Fskills\u002Fdesign\u002Fuser-insight-synthesis\u002Ftemplates\u002Fresearch-plan-template.md",[105,132,159,192,227,251],{"skillNo":106,"name":107,"nameZh":6,"description":108,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":109,"categories":110,"keywords":112,"publishedAt":45},"01M70NHBTQ8BV0A2SCAZXEPHCX","wealthville-pool-scoring","Score DeFi liquidity pools before providing liquidity. Returns a 0-100 pool score and an Enter\u002FHold\u002FExit\u002FReduce\u002FAvoid verdict with calibrated confidence for ~68,800 Solana pools and 575 EVM pools, plus a public miss-inclusive track record. Use when asked whether a pool is worth LPing into, which pools look best right now, or how accurate the scores have actually been.","https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fweb-data\u002Fwealthville-pool-scoring\u002FSKILL.md",[111],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[113,114,115,116,117,118,119,120,121,26,122,123,124,125,126,127,128,129,130,131],"scoring","pool","wealthville pool scoring","liquidity","which","for","exit","now","use","reduce","with","record","track","verdict","evm","solana","how","public","look",{"skillNo":133,"name":134,"nameZh":6,"description":135,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":136,"categories":137,"keywords":139,"publishedAt":45},"01M70MB6VR8ERJ4EM8D5KHBMEV","technical-debt-auditor","Scans a codebase and produces a quantified technical debt report with a prioritized remediation plan. Analyzes dead code, TODO\u002FFIXME\u002FHACK markers, dependency staleness, complexity hotspots, code duplication signals, test coverage gaps, unused exports, and outdated patterns. Use this skill when the user asks to audit their codebase for tech debt, wants a health check of their code quality, says things like \"where should I focus refactoring\", \"find code smells\", \"audit my codebase\", \"what technical debt do we have\", \"prioritize cleanup work\", or asks about code quality metrics. Also trigger when the user mentions \"code rot\", \"legacy cleanup\", \"refactoring priorities\", or wants to understand the overall health of a project before a major effort. Trigger even if the user doesn't say \"technical debt\" explicitly — any request to systematically assess code quality and identify improvement priorities belongs here.","https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fdevelopment\u002Ftechnical-debt-auditor\u002FSKILL.md",[138],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[140,141,142,143,144,145,146,147,148,149,150,26,151,152,153,154,155,156,157,158],"technical debt","debt","technical","technical debt auditor","auditor","coverage","complexity","markers","project","cleanup","unused","code","todo","work","plan","focus","signals","audit","dependency",{"skillNo":160,"name":161,"nameZh":6,"description":162,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":163,"categories":164,"keywords":174,"publishedAt":45},"01M70KPYH9QNHCNME5GJQGE22K","readonly-sql-guard","Make an agent's database access provably read-only. Use when an agent runs caller-supplied SQL against a production\u002FERP\u002Fanalytics database (a \"query\" MCP tool, text-to-SQL, an admin console), or when reviewing DB-access code for write\u002FDDL\u002Fside-effect\u002Ftransaction-escape risks. Checks what a statement CALLS, not just its shape.","https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fdatabase\u002Freadonly-sql-guard\u002FSKILL.md",[165,168,169],{"categoryNo":166,"categoryName":167,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000010","后端与接口",{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":170,"categoryName":171,"taxonomyType":172,"taxonomyTypeDesc":173},"01JBSEEDCAT000000000000033","数据分析师","PROFESSION","适用职业",[175,176,177,178,179,180,181,118,182,183,184,185,186,187,188,121,189,190,26,191],"readonly","guard","sql guard","sql","readonly sql guard","erp","effect","read-only","db","just","tool","calls","only","MCP","access","database","query",{"skillNo":193,"name":194,"nameZh":6,"description":195,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":196,"licenseFileUrl":197,"sourceHtmlUrl":198,"categories":199,"keywords":203,"publishedAt":45},"01M6AFY6F7CC2BBZP1QD6VTNVC","web-artifacts-builder","Suite of tools for creating elaborate, multi-component claude.ai HTML artifacts using modern frontend web technologies (React, Tailwind CSS, shadcn\u002Fui). Use for complex artifacts requiring state management, routing, or shadcn\u002Fui components - not for simple single-file HTML\u002FJSX artifacts.","Apache-2.0","https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Futilities\u002Fweb-artifacts-builder\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Futilities\u002Fweb-artifacts-builder\u002FSKILL.md",[200],{"categoryNo":201,"categoryName":202,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000009","前端开发",[204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,118,226],"artifacts builder","web","web artifacts builder","artifacts","builder","state","routing","state management","component","css","frontend","ui","Tools","file","components","shadcn","react","Tailwind","suite","jsx","html","single-file","ui components",{"skillNo":228,"name":229,"nameZh":6,"description":230,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":196,"licenseFileUrl":231,"sourceHtmlUrl":232,"categories":233,"keywords":238,"publishedAt":45},"01M6AFWF33SFV9Z3SF4PEEE4BF","webapp-testing","Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs.","https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fsecurity\u002Fwebapp-testing\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fsecurity\u002Fwebapp-testing\u002FSKILL.md",[234,237],{"categoryNo":235,"categoryName":236,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":201,"categoryName":202,"taxonomyType":21,"taxonomyTypeDesc":22},[239,240,241,242,243,205,244,214,215,245,246,247,248,118,249,123,250],"webapp testing","testing","webapp","browser","playwright","applications","debugging","toolkit","logs","screenshots","local","behavior",{"skillNo":252,"name":253,"nameZh":6,"description":254,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":196,"licenseFileUrl":255,"sourceHtmlUrl":256,"categories":257,"keywords":265,"publishedAt":45},"01M6AF67Q67JJJ5V51JR2P52KA","discernment-nudge","After you give a substantive answer or draft that the user may act on — advice or recommendations, drafted artifacts such as goals, plans, pitches, proposals, or emails, estimates or projections, analysis or interpretation of data, factual claims they may rely on, or a multi-step argument — invoke this skill BEFORE finalizing your reply and then, if it applies, append 2-3 short follow-up questions, each tied to something specific in what you just produced, that help the user check key facts, probe the reasoning or assumptions, and notice missing context. Do this at most once per conversation. Skip it when the user asked a trivial how-to or simple lookup, wants a purely educational explanation, asked you only to format, convert, or assemble a file from content they provided, is writing code they will run, is doing creative writing or casual chat, or already asked you to double-check, cite, or review — the skill file explains these boundaries and the exact output format.","https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fproductivity\u002Fdiscernment-nudge\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fproductivity\u002Fdiscernment-nudge\u002FSKILL.md",[258,261,262],{"categoryNo":259,"categoryName":260,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000018","写作与文案",{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":263,"categoryName":264,"taxonomyType":172,"taxonomyTypeDesc":173},"01JBSEEDCAT000000000000036","内容创作者",[266,267,268,269,270,271,272,273,207,274,217,151,275,276,277,278,279,187,280,26,281,282,283,284,285,129,286],"discernment nudge","nudge","interpretation","help","run","reasoning","data","writing","lookup","content","review","conversation","short","up","invoke","you","analysis","claims","argument","assemble","recommendations"]