{"id":912001,"date":"2026-08-05T18:30:00","date_gmt":"2026-08-05T16:30:00","guid":{"rendered":"urn:skill-md-expanded:2026-08-05T16:30:00Z"},"modified":"2026-08-05T18:29:37","modified_gmt":"2026-08-05T16:29:37","slug":"building-reusable-ai-agent-workflows-with-skill-md-import-2","status":"publish","type":"post","link":"https:\/\/programmier-workshops.de\/blog\/building-reusable-ai-agent-workflows-with-skill-md-import-2\/","title":{"rendered":"Building Reusable AI Agent Workflows with SKILL.md"},"content":{"rendered":"<p>AI agents become substantially more useful when they can follow repeatable operating procedures instead of reconstructing the same workflow from a fresh prompt every time. <strong>Agent Skills<\/strong> provide a structured way to package those procedures so they can be discovered, loaded, reused, tested, versioned, and shared.<\/p>\n<p>This guide explains what skills are, how they work, how to create them, how to use them safely, and which skills are especially useful for developers, content creators, and influencers.<\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_86 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/programmier-workshops.de\/blog\/building-reusable-ai-agent-workflows-with-skill-md-import-2\/#What_is_an_AI_agent_skill\" >What is an AI agent skill?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/programmier-workshops.de\/blog\/building-reusable-ai-agent-workflows-with-skill-md-import-2\/#Skills_are_more_than_saved_prompts\" >Skills are more than saved prompts<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/programmier-workshops.de\/blog\/building-reusable-ai-agent-workflows-with-skill-md-import-2\/#What_belongs_in_a_skill\" >What belongs in a skill?<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/programmier-workshops.de\/blog\/building-reusable-ai-agent-workflows-with-skill-md-import-2\/#1_Metadata\" >1. Metadata<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/programmier-workshops.de\/blog\/building-reusable-ai-agent-workflows-with-skill-md-import-2\/#2_Operational_instructions\" >2. Operational instructions<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/programmier-workshops.de\/blog\/building-reusable-ai-agent-workflows-with-skill-md-import-2\/#3_Scripts\" >3. Scripts<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/programmier-workshops.de\/blog\/building-reusable-ai-agent-workflows-with-skill-md-import-2\/#4_References\" >4. References<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/programmier-workshops.de\/blog\/building-reusable-ai-agent-workflows-with-skill-md-import-2\/#5_Assets_and_templates\" >5. Assets and templates<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/programmier-workshops.de\/blog\/building-reusable-ai-agent-workflows-with-skill-md-import-2\/#How_skills_work\" >How skills work<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/programmier-workshops.de\/blog\/building-reusable-ai-agent-workflows-with-skill-md-import-2\/#Stage_1_Discovery\" >Stage 1: Discovery<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/programmier-workshops.de\/blog\/building-reusable-ai-agent-workflows-with-skill-md-import-2\/#Stage_2_Selection\" >Stage 2: Selection<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/programmier-workshops.de\/blog\/building-reusable-ai-agent-workflows-with-skill-md-import-2\/#Stage_3_Loading\" >Stage 3: Loading<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/programmier-workshops.de\/blog\/building-reusable-ai-agent-workflows-with-skill-md-import-2\/#Stage_4_Execution\" >Stage 4: Execution<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/programmier-workshops.de\/blog\/building-reusable-ai-agent-workflows-with-skill-md-import-2\/#When_should_you_create_a_skill\" >When should you create a skill?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/programmier-workshops.de\/blog\/building-reusable-ai-agent-workflows-with-skill-md-import-2\/#How_to_create_a_skill\" >How to create a skill<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-16\" href=\"https:\/\/programmier-workshops.de\/blog\/building-reusable-ai-agent-workflows-with-skill-md-import-2\/#Step_1_Choose_one_focused_responsibility\" >Step 1: Choose one focused responsibility<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-17\" href=\"https:\/\/programmier-workshops.de\/blog\/building-reusable-ai-agent-workflows-with-skill-md-import-2\/#Step_2_Define_the_skill_contract\" >Step 2: Define the skill contract<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-18\" href=\"https:\/\/programmier-workshops.de\/blog\/building-reusable-ai-agent-workflows-with-skill-md-import-2\/#Inputs\" >Inputs<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-19\" href=\"https:\/\/programmier-workshops.de\/blog\/building-reusable-ai-agent-workflows-with-skill-md-import-2\/#Output\" >Output<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-20\" href=\"https:\/\/programmier-workshops.de\/blog\/building-reusable-ai-agent-workflows-with-skill-md-import-2\/#Constraints\" >Constraints<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-21\" href=\"https:\/\/programmier-workshops.de\/blog\/building-reusable-ai-agent-workflows-with-skill-md-import-2\/#Success_criteria\" >Success criteria<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-22\" href=\"https:\/\/programmier-workshops.de\/blog\/building-reusable-ai-agent-workflows-with-skill-md-import-2\/#Failure_behavior\" >Failure behavior<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-23\" href=\"https:\/\/programmier-workshops.de\/blog\/building-reusable-ai-agent-workflows-with-skill-md-import-2\/#Step_3_Create_the_directory\" >Step 3: Create the directory<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-24\" href=\"https:\/\/programmier-workshops.de\/blog\/building-reusable-ai-agent-workflows-with-skill-md-import-2\/#Step_4_Create_SKILLmd\" >Step 4: Create SKILL.md<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-25\" href=\"https:\/\/programmier-workshops.de\/blog\/building-reusable-ai-agent-workflows-with-skill-md-import-2\/#Step_5_Add_resources_only_when_needed\" >Step 5: Add resources only when needed<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-26\" href=\"https:\/\/programmier-workshops.de\/blog\/building-reusable-ai-agent-workflows-with-skill-md-import-2\/#Step_6_Design_the_output_deliberately\" >Step 6: Design the output deliberately<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-27\" href=\"https:\/\/programmier-workshops.de\/blog\/building-reusable-ai-agent-workflows-with-skill-md-import-2\/#Step_7_Add_examples\" >Step 7: Add examples<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-28\" href=\"https:\/\/programmier-workshops.de\/blog\/building-reusable-ai-agent-workflows-with-skill-md-import-2\/#Step_8_Test_activation\" >Step 8: Test activation<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-29\" href=\"https:\/\/programmier-workshops.de\/blog\/building-reusable-ai-agent-workflows-with-skill-md-import-2\/#Step_9_Test_the_workflow\" >Step 9: Test the workflow<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-30\" href=\"https:\/\/programmier-workshops.de\/blog\/building-reusable-ai-agent-workflows-with-skill-md-import-2\/#Step_10_Validate_and_version_the_skill\" >Step 10: Validate and version the skill<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-31\" href=\"https:\/\/programmier-workshops.de\/blog\/building-reusable-ai-agent-workflows-with-skill-md-import-2\/#How_to_use_skills\" >How to use skills<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-32\" href=\"https:\/\/programmier-workshops.de\/blog\/building-reusable-ai-agent-workflows-with-skill-md-import-2\/#Automatic_activation\" >Automatic activation<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-33\" href=\"https:\/\/programmier-workshops.de\/blog\/building-reusable-ai-agent-workflows-with-skill-md-import-2\/#Explicit_invocation\" >Explicit invocation<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-34\" href=\"https:\/\/programmier-workshops.de\/blog\/building-reusable-ai-agent-workflows-with-skill-md-import-2\/#Skill_composition\" >Skill composition<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-35\" href=\"https:\/\/programmier-workshops.de\/blog\/building-reusable-ai-agent-workflows-with-skill-md-import-2\/#Personal_project_and_organization_skills\" >Personal, project, and organization skills<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-36\" href=\"https:\/\/programmier-workshops.de\/blog\/building-reusable-ai-agent-workflows-with-skill-md-import-2\/#How_skills_differ_from_related_mechanisms\" >How skills differ from related mechanisms<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-37\" href=\"https:\/\/programmier-workshops.de\/blog\/building-reusable-ai-agent-workflows-with-skill-md-import-2\/#Security_considerations\" >Security considerations<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-38\" href=\"https:\/\/programmier-workshops.de\/blog\/building-reusable-ai-agent-workflows-with-skill-md-import-2\/#Helpful_skills_for_developers\" >Helpful skills for developers<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-39\" href=\"https:\/\/programmier-workshops.de\/blog\/building-reusable-ai-agent-workflows-with-skill-md-import-2\/#Recommended_developer_starter_pack\" >Recommended developer starter pack<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-40\" href=\"https:\/\/programmier-workshops.de\/blog\/building-reusable-ai-agent-workflows-with-skill-md-import-2\/#Helpful_skills_for_content_creators\" >Helpful skills for content creators<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-41\" href=\"https:\/\/programmier-workshops.de\/blog\/building-reusable-ai-agent-workflows-with-skill-md-import-2\/#Recommended_content-creator_starter_pack\" >Recommended content-creator starter pack<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-42\" href=\"https:\/\/programmier-workshops.de\/blog\/building-reusable-ai-agent-workflows-with-skill-md-import-2\/#Helpful_skills_for_influencers\" >Helpful skills for influencers<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-43\" href=\"https:\/\/programmier-workshops.de\/blog\/building-reusable-ai-agent-workflows-with-skill-md-import-2\/#Recommended_influencer_starter_pack\" >Recommended influencer starter pack<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-44\" href=\"https:\/\/programmier-workshops.de\/blog\/building-reusable-ai-agent-workflows-with-skill-md-import-2\/#A_complete_example_content_repurposing_skill\" >A complete example: content repurposing skill<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-45\" href=\"https:\/\/programmier-workshops.de\/blog\/building-reusable-ai-agent-workflows-with-skill-md-import-2\/#Quality_checklist_for_every_skill\" >Quality checklist for every skill<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-46\" href=\"https:\/\/programmier-workshops.de\/blog\/building-reusable-ai-agent-workflows-with-skill-md-import-2\/#Building_a_skill_library_over_time\" >Building a skill library over time<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-47\" href=\"https:\/\/programmier-workshops.de\/blog\/building-reusable-ai-agent-workflows-with-skill-md-import-2\/#Official_references\" >Official references<\/a><\/li><\/ul><\/nav><\/div>\n<h2 id=\"what-is-an-ai-agent-skill\"><span class=\"ez-toc-section\" id=\"What_is_an_AI_agent_skill\"><\/span>What is an AI agent skill?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>An <strong>AI agent skill<\/strong> is a reusable capability for a specific class of tasks. It combines instructions with optional scripts, references, templates, examples, and other resources.<\/p>\n<p>A skill normally lives in its own directory. Its entry point is a file named <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">SKILL.md<\/code>.<\/p>\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-group=\"\" data-enlighter-highlight=\"\" data-enlighter-language=\"generic\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-theme=\"\" data-enlighter-title=\"\">my-skill\/\n\u251c\u2500\u2500 SKILL.md\n\u251c\u2500\u2500 scripts\/\n\u251c\u2500\u2500 references\/\n\u2514\u2500\u2500 assets\/<\/pre>\n\n<p>Only <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">SKILL.md<\/code> is required. The additional directories are optional.<\/p>\n<p>A useful distinction is:<\/p>\n<blockquote>\n<p>A prompt describes what to do once. A skill defines how to perform a recurring task consistently.<\/p>\n<\/blockquote>\n<p>A good skill should answer six questions:<\/p>\n<ol type=\"1\">\n<li><strong>What task does this skill perform?<\/strong><\/li>\n<li><strong>When should the agent use it?<\/strong><\/li>\n<li><strong>What inputs does it require?<\/strong><\/li>\n<li><strong>Which steps should the agent follow?<\/strong><\/li>\n<li><strong>What output should it produce?<\/strong><\/li>\n<li><strong>What should happen when information, permissions, or tools are missing?<\/strong><\/li>\n<\/ol>\n<h2 id=\"skills-are-more-than-saved-prompts\"><span class=\"ez-toc-section\" id=\"Skills_are_more_than_saved_prompts\"><\/span>Skills are more than saved prompts<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>A saved prompt can be useful, but it is usually just a block of text. A skill is closer to an executable playbook.<\/p>\n<table>\n<thead>\n<tr class=\"header\">\n<th>Saved prompt<\/th>\n<th>Agent skill<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr class=\"odd\">\n<td>Usually one block of instructions<\/td>\n<td>Structured directory with an entry file and resources<\/td>\n<\/tr>\n<tr class=\"even\">\n<td>Manually pasted or selected<\/td>\n<td>Can be discovered and activated automatically<\/td>\n<\/tr>\n<tr class=\"odd\">\n<td>Often lacks versioning or tests<\/td>\n<td>Can be stored in Git and reviewed like source code<\/td>\n<\/tr>\n<tr class=\"even\">\n<td>Limited supporting context<\/td>\n<td>Can include references, scripts, templates, and examples<\/td>\n<\/tr>\n<tr class=\"odd\">\n<td>Often tied to one conversation<\/td>\n<td>Designed for repeated use across projects or tools<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Skills are most valuable when a task has several steps, a strict output format, a quality checklist, organization-specific rules, or supporting resources that should not be pasted into every conversation.<\/p>\n<h2 id=\"what-belongs-in-a-skill\"><span class=\"ez-toc-section\" id=\"What_belongs_in_a_skill\"><\/span>What belongs in a skill?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3 id=\"1-metadata\"><span class=\"ez-toc-section\" id=\"1_Metadata\"><\/span>1. Metadata<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Metadata tells the host and the agent what the skill is called and when it is relevant.<\/p>\n<p>The two required fields are normally:<\/p>\n<ul>\n<li><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">name<\/code><\/li>\n<li><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">description<\/code><\/li>\n<\/ul>\n<p>Example:<\/p>\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-group=\"\" data-enlighter-highlight=\"\" data-enlighter-language=\"yaml\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-theme=\"\" data-enlighter-title=\"\">---\nname: review-pr\ndescription: Reviews pull requests for correctness, security risks, breaking changes, and missing tests. Use when reviewing a pull request, code diff, or proposed change.\n---<\/pre>\n\n<p>The description is effectively the routing rule. It should contain both the capability and the situations in which the skill should activate.<\/p>\n<p>Weak description:<\/p>\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-group=\"\" data-enlighter-highlight=\"\" data-enlighter-language=\"yaml\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-theme=\"\" data-enlighter-title=\"\">description: Helps with reviews.<\/pre>\n\n<p>Better description:<\/p>\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-group=\"\" data-enlighter-highlight=\"\" data-enlighter-language=\"yaml\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-theme=\"\" data-enlighter-title=\"\">description: Reviews pull requests for correctness, security risks, breaking changes, and missing tests. Use when reviewing a pull request, code diff, or proposed change.<\/pre>\n\n<h3 id=\"2-operational-instructions\"><span class=\"ez-toc-section\" id=\"2_Operational_instructions\"><\/span>2. Operational instructions<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>The Markdown body describes the workflow.<\/p>\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-group=\"\" data-enlighter-highlight=\"\" data-enlighter-language=\"markdown\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-theme=\"\" data-enlighter-title=\"\"># Objective\n\nReturn a risk-focused review of the proposed change.\n\n# Procedure\n\n1. Summarize the intended behavior.\n2. Inspect correctness and edge cases.\n3. Check authentication, authorization, validation, and secret handling.\n4. Identify API, schema, or configuration compatibility risks.\n5. Evaluate tests and missing coverage.\n6. Return findings ordered by severity with precise file references.<\/pre>\n\n<h3 id=\"3-scripts\"><span class=\"ez-toc-section\" id=\"3_Scripts\"><\/span>3. Scripts<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Scripts are useful for deterministic work such as:<\/p>\n<ul>\n<li>validation;<\/li>\n<li>linting;<\/li>\n<li>data conversion;<\/li>\n<li>report generation;<\/li>\n<li>repository checks;<\/li>\n<li>extracting structured information.<\/li>\n<\/ul>\n<p>Example structure:<\/p>\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-group=\"\" data-enlighter-highlight=\"\" data-enlighter-language=\"generic\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-theme=\"\" data-enlighter-title=\"\">scripts\/\n\u251c\u2500\u2500 run-tests.sh\n\u251c\u2500\u2500 validate-schema.py\n\u2514\u2500\u2500 generate-report.js<\/pre>\n\n<p>Use scripts when a task should be reproducible. Do not replace every reasoning step with a script; analysis and judgment usually belong in the instructions.<\/p>\n<h3 id=\"4-references\"><span class=\"ez-toc-section\" id=\"4_References\"><\/span>4. References<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Reference files hold information that is only needed in some situations:<\/p>\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-group=\"\" data-enlighter-highlight=\"\" data-enlighter-language=\"generic\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-theme=\"\" data-enlighter-title=\"\">references\/\n\u251c\u2500\u2500 security-policy.md\n\u251c\u2500\u2500 api-conventions.md\n\u251c\u2500\u2500 editorial-style.md\n\u2514\u2500\u2500 campaign-rules.md<\/pre>\n\n<p>Keeping long references outside <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">SKILL.md<\/code> supports progressive disclosure and reduces unnecessary context usage.<\/p>\n<h3 id=\"5-assets-and-templates\"><span class=\"ez-toc-section\" id=\"5_Assets_and_templates\"><\/span>5. Assets and templates<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Assets can include:<\/p>\n<ul>\n<li>output templates;<\/li>\n<li>example documents;<\/li>\n<li>schemas;<\/li>\n<li>checklists;<\/li>\n<li>image briefs;<\/li>\n<li>data files;<\/li>\n<li>boilerplate configurations.<\/li>\n<\/ul>\n<p>Example:<\/p>\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-group=\"\" data-enlighter-highlight=\"\" data-enlighter-language=\"generic\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-theme=\"\" data-enlighter-title=\"\">assets\/\n\u251c\u2500\u2500 review-report-template.md\n\u251c\u2500\u2500 article-template.md\n\u2514\u2500\u2500 campaign-brief.yaml<\/pre>\n\n<h2 id=\"how-skills-work\"><span class=\"ez-toc-section\" id=\"How_skills_work\"><\/span>How skills work<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>A typical skill lifecycle has four stages.<\/p>\n<h3 id=\"stage-1-discovery\"><span class=\"ez-toc-section\" id=\"Stage_1_Discovery\"><\/span>Stage 1: Discovery<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>The host scans configured skill locations and reads only lightweight metadata such as the skill name and description.<\/p>\n<h3 id=\"stage-2-selection\"><span class=\"ez-toc-section\" id=\"Stage_2_Selection\"><\/span>Stage 2: Selection<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>The agent compares the current task with available descriptions. A skill can be selected automatically, or the user can request it explicitly.<\/p>\n<h3 id=\"stage-3-loading\"><span class=\"ez-toc-section\" id=\"Stage_3_Loading\"><\/span>Stage 3: Loading<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>The full <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">SKILL.md<\/code> body is loaded only after the skill is selected. Supporting files are loaded only when the workflow calls for them.<\/p>\n<h3 id=\"stage-4-execution\"><span class=\"ez-toc-section\" id=\"Stage_4_Execution\"><\/span>Stage 4: Execution<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>The agent follows the workflow, uses permitted tools, reads references, runs scripts where appropriate, and produces the required output.<\/p>\n<p>This model is called <strong>progressive disclosure<\/strong>. It allows an agent to have many skills available without loading all instructions into every session.<\/p>\n<h2 id=\"when-should-you-create-a-skill\"><span class=\"ez-toc-section\" id=\"When_should_you_create_a_skill\"><\/span>When should you create a skill?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Create a skill when the task:<\/p>\n<ul>\n<li>is repeated regularly;<\/li>\n<li>benefits from a defined sequence;<\/li>\n<li>has a predictable input and output;<\/li>\n<li>uses a checklist, standard, or policy;<\/li>\n<li>must produce a consistent format;<\/li>\n<li>depends on reusable references or templates;<\/li>\n<li>should be shared across a team.<\/li>\n<\/ul>\n<p>Typical candidates include:<\/p>\n<ul>\n<li>pull-request reviews;<\/li>\n<li>release readiness checks;<\/li>\n<li>article creation;<\/li>\n<li>transcript repurposing;<\/li>\n<li>SEO review;<\/li>\n<li>social media campaign planning;<\/li>\n<li>meeting analysis;<\/li>\n<li>compliance checks;<\/li>\n<li>document conversion;<\/li>\n<li>structured research.<\/li>\n<\/ul>\n<p>A skill is less useful for a one-off question, an open-ended conversation, or a task whose goal and process change completely every time.<\/p>\n<h2 id=\"how-to-create-a-skill\"><span class=\"ez-toc-section\" id=\"How_to_create_a_skill\"><\/span>How to create a skill<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h2 id=\"step-1-choose-one-focused-responsibility\"><span class=\"ez-toc-section\" id=\"Step_1_Choose_one_focused_responsibility\"><\/span>Step 1: Choose one focused responsibility<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Avoid broad skills such as <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">marketing-everything<\/code> or <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">software-development<\/code>. They are difficult to trigger correctly and difficult to test.<\/p>\n<p>Prefer focused skills:<\/p>\n<ul>\n<li><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">review-pr<\/code><\/li>\n<li><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">release-readiness<\/code><\/li>\n<li><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">article-outline<\/code><\/li>\n<li><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">seo-review<\/code><\/li>\n<li><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">caption-generator<\/code><\/li>\n<li><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">campaign-planner<\/code><\/li>\n<\/ul>\n<p>A skill should have one primary responsibility even if it contains several internal steps.<\/p>\n<h2 id=\"step-2-define-the-skill-contract\"><span class=\"ez-toc-section\" id=\"Step_2_Define_the_skill_contract\"><\/span>Step 2: Define the skill contract<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Before writing the instructions, define:<\/p>\n<h3 id=\"inputs\"><span class=\"ez-toc-section\" id=\"Inputs\"><\/span>Inputs<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>What does the skill receive?<\/p>\n<p>Examples:<\/p>\n<ul>\n<li>a code diff;<\/li>\n<li>a repository;<\/li>\n<li>a transcript;<\/li>\n<li>research notes;<\/li>\n<li>an audience profile;<\/li>\n<li>a product brief;<\/li>\n<li>existing brand guidelines.<\/li>\n<\/ul>\n<h3 id=\"output\"><span class=\"ez-toc-section\" id=\"Output\"><\/span>Output<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>What exactly should the skill return?<\/p>\n<p>Examples:<\/p>\n<ul>\n<li>a severity-ranked review report;<\/li>\n<li>a Markdown article;<\/li>\n<li>a JSON content plan;<\/li>\n<li>five caption variants;<\/li>\n<li>a release checklist;<\/li>\n<li>a campaign calendar.<\/li>\n<\/ul>\n<h3 id=\"constraints\"><span class=\"ez-toc-section\" id=\"Constraints\"><\/span>Constraints<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>What must the skill preserve or avoid?<\/p>\n<p>Examples:<\/p>\n<ul>\n<li>do not modify production files;<\/li>\n<li>do not invent sources;<\/li>\n<li>preserve the brand voice;<\/li>\n<li>do not publish automatically;<\/li>\n<li>do not expose secrets;<\/li>\n<li>do not overwrite existing assets.<\/li>\n<\/ul>\n<h3 id=\"success-criteria\"><span class=\"ez-toc-section\" id=\"Success_criteria\"><\/span>Success criteria<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>How can the output be evaluated?<\/p>\n<p>Examples:<\/p>\n<ul>\n<li>all findings include file references;<\/li>\n<li>every factual claim has a source;<\/li>\n<li>the result matches the required schema;<\/li>\n<li>the article contains a title, excerpt, headings, and metadata;<\/li>\n<li>the campaign covers all target platforms.<\/li>\n<\/ul>\n<h3 id=\"failure-behavior\"><span class=\"ez-toc-section\" id=\"Failure_behavior\"><\/span>Failure behavior<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Define what happens when prerequisites are missing.<\/p>\n<p>Examples:<\/p>\n<ul>\n<li>request the missing file;<\/li>\n<li>state which command failed;<\/li>\n<li>return a partial report with unresolved items;<\/li>\n<li>stop before publishing or deleting data;<\/li>\n<li>distinguish assumptions from verified facts.<\/li>\n<\/ul>\n<h2 id=\"step-3-create-the-directory\"><span class=\"ez-toc-section\" id=\"Step_3_Create_the_directory\"><\/span>Step 3: Create the directory<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>A vendor-neutral project path is commonly:<\/p>\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-group=\"\" data-enlighter-highlight=\"\" data-enlighter-language=\"bash\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-theme=\"\" data-enlighter-title=\"\">mkdir -p .agents\/skills\/review-pr<\/pre>\n\n<p>Tool-specific paths may also be supported. Keep the folder name stable because the skill name should match it.<\/p>\n<h2 id=\"step-4-create-skillmd\"><span class=\"ez-toc-section\" id=\"Step_4_Create_SKILLmd\"><\/span>Step 4: Create <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">SKILL.md<\/code><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-group=\"\" data-enlighter-highlight=\"\" data-enlighter-language=\"bash\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-theme=\"\" data-enlighter-title=\"\">$EDITOR .agents\/skills\/review-pr\/SKILL.md<\/pre>\n\n<p>Minimal example:<\/p>\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-group=\"\" data-enlighter-highlight=\"\" data-enlighter-language=\"markdown\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-theme=\"\" data-enlighter-title=\"\">---\nname: review-pr\ndescription: Reviews pull requests for correctness, security risks, breaking changes, and missing tests. Use when reviewing a pull request, code diff, or proposed change.\n---\n\n# Objective\n\nReview the change and return prioritized, actionable findings.\n\n# Inputs\n\n- Pull request description\n- Code diff\n- Relevant repository files\n- Test output when available\n\n# Procedure\n\n1. Summarize the intended behavior.\n2. Inspect changed files and affected interfaces.\n3. Identify correctness and edge-case problems.\n4. Review security and data-handling risks.\n5. Check backward compatibility.\n6. Evaluate tests and missing coverage.\n7. Return findings by severity.\n\n# Output format\n\n## Summary\n\n## Blockers\n\n## Warnings\n\n## Suggestions\n\n## Missing information<\/pre>\n\n<h2 id=\"step-5-add-resources-only-when-needed\"><span class=\"ez-toc-section\" id=\"Step_5_Add_resources_only_when_needed\"><\/span>Step 5: Add resources only when needed<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Do not create empty directories merely because they are conventional. Add scripts, references, and assets when they improve the workflow.<\/p>\n<p>Good examples:<\/p>\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-group=\"\" data-enlighter-highlight=\"\" data-enlighter-language=\"generic\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-theme=\"\" data-enlighter-title=\"\">references\/security-checklist.md\nreferences\/api-compatibility.md\nscripts\/run-tests.sh\nassets\/review-template.md<\/pre>\n\n<p>Tell the agent when to load each resource:<\/p>\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-group=\"\" data-enlighter-highlight=\"\" data-enlighter-language=\"markdown\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-theme=\"\" data-enlighter-title=\"\">Read `references\/api-compatibility.md` when public API signatures, schemas, or configuration formats are changed.<\/pre>\n\n<p>This is better than a vague instruction such as \u201cread the references if needed.\u201d<\/p>\n<h2 id=\"step-6-design-the-output-deliberately\"><span class=\"ez-toc-section\" id=\"Step_6_Design_the_output_deliberately\"><\/span>Step 6: Design the output deliberately<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>A clear output schema makes a skill much more reliable.<\/p>\n<p>Example:<\/p>\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-group=\"\" data-enlighter-highlight=\"\" data-enlighter-language=\"markdown\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-theme=\"\" data-enlighter-title=\"\"># Required output\n\n## Executive summary\nTwo to four sentences.\n\n## Findings\nFor each finding include:\n- Severity\n- Location\n- Problem\n- Impact\n- Recommended correction\n\n## Verification status\nList checks that were completed and checks that could not be performed.<\/pre>\n\n<p>For machine-readable workflows, define JSON or YAML explicitly:<\/p>\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-group=\"\" data-enlighter-highlight=\"\" data-enlighter-language=\"json\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-theme=\"\" data-enlighter-title=\"\">{\n  \"status\": \"ready|blocked|warning\",\n  \"blockers\": [],\n  \"warnings\": [],\n  \"completed_checks\": [],\n  \"missing_information\": []\n}<\/pre>\n\n<h2 id=\"step-7-add-examples\"><span class=\"ez-toc-section\" id=\"Step_7_Add_examples\"><\/span>Step 7: Add examples<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Examples reduce ambiguity. Include one good input\/output example and, where useful, one failure example.<\/p>\n<p>Examples should demonstrate structure rather than force the agent to copy exact wording.<\/p>\n<h2 id=\"step-8-test-activation\"><span class=\"ez-toc-section\" id=\"Step_8_Test_activation\"><\/span>Step 8: Test activation<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Test at least four cases:<\/p>\n<ol type=\"1\">\n<li><strong>Clear match<\/strong> \u2014 the skill should activate.<\/li>\n<li><strong>Borderline match<\/strong> \u2014 activation should depend on context.<\/li>\n<li><strong>Unrelated request<\/strong> \u2014 the skill should not activate.<\/li>\n<li><strong>Explicit invocation<\/strong> \u2014 the skill should run when named directly.<\/li>\n<\/ol>\n<p>If a skill activates too often, narrow the description. If it activates too rarely, add relevant keywords and situations.<\/p>\n<h2 id=\"step-9-test-the-workflow\"><span class=\"ez-toc-section\" id=\"Step_9_Test_the_workflow\"><\/span>Step 9: Test the workflow<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Test:<\/p>\n<ul>\n<li>normal inputs;<\/li>\n<li>missing inputs;<\/li>\n<li>invalid files;<\/li>\n<li>failed commands;<\/li>\n<li>conflicting requirements;<\/li>\n<li>insufficient permissions;<\/li>\n<li>large inputs;<\/li>\n<li>partial outputs.<\/li>\n<\/ul>\n<h2 id=\"step-10-validate-and-version-the-skill\"><span class=\"ez-toc-section\" id=\"Step_10_Validate_and_version_the_skill\"><\/span>Step 10: Validate and version the skill<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>The Agent Skills reference tooling can validate the directory structure and frontmatter:<\/p>\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-group=\"\" data-enlighter-highlight=\"\" data-enlighter-language=\"bash\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-theme=\"\" data-enlighter-title=\"\">skills-ref validate .\/review-pr<\/pre>\n\n<p>Store skills in version control and review changes like code. A modified skill can change operational behavior, so changes should be visible and auditable.<\/p>\n<h2 id=\"how-to-use-skills\"><span class=\"ez-toc-section\" id=\"How_to_use_skills\"><\/span>How to use skills<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h2 id=\"automatic-activation\"><span class=\"ez-toc-section\" id=\"Automatic_activation\"><\/span>Automatic activation<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>The user asks for a task that matches the description:<\/p>\n<blockquote>\n<p>Review this pull request for security risks, breaking changes, and missing tests.<\/p>\n<\/blockquote>\n<p>The agent discovers the matching <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">review-pr<\/code> skill and loads it.<\/p>\n<h2 id=\"explicit-invocation\"><span class=\"ez-toc-section\" id=\"Explicit_invocation\"><\/span>Explicit invocation<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>The user names the skill directly:<\/p>\n<blockquote>\n<p>Use the <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">release-readiness<\/code> skill and return only blockers and warnings.<\/p>\n<\/blockquote>\n<p>Some clients also expose skills as slash commands.<\/p>\n<h2 id=\"skill-composition\"><span class=\"ez-toc-section\" id=\"Skill_composition\"><\/span>Skill composition<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Complex workflows can be assembled from smaller skills:<\/p>\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-group=\"\" data-enlighter-highlight=\"\" data-enlighter-language=\"generic\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-theme=\"\" data-enlighter-title=\"\">research-topic\n    \u2193\narticle-outline\n    \u2193\nblog-writer\n    \u2193\nfact-check\n    \u2193\nseo-review\n    \u2193\ncontent-repurpose<\/pre>\n\n<p>Each skill remains focused. An orchestration layer or the agent decides the order, passes outputs between skills, and handles failures.<\/p>\n<h2 id=\"personal-project-and-organization-skills\"><span class=\"ez-toc-section\" id=\"Personal_project_and_organization_skills\"><\/span>Personal, project, and organization skills<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Skills can be installed at different scopes:<\/p>\n<ul>\n<li><strong>Personal skills<\/strong> are available across the user&#8217;s projects.<\/li>\n<li><strong>Project skills<\/strong> are stored with a repository and shared through version control.<\/li>\n<li><strong>Organization or managed skills<\/strong> can define common workflows for a team.<\/li>\n<\/ul>\n<p>Project skills are useful for repository-specific conventions. Personal skills are useful for individual workflows such as writing, research, or repeated administrative tasks.<\/p>\n<h2 id=\"how-skills-differ-from-related-mechanisms\"><span class=\"ez-toc-section\" id=\"How_skills_differ_from_related_mechanisms\"><\/span>How skills differ from related mechanisms<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<table>\n<thead>\n<tr class=\"header\">\n<th>Mechanism<\/th>\n<th>Main responsibility<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr class=\"odd\">\n<td>Skill<\/td>\n<td>Reusable procedure, knowledge package, or task workflow<\/td>\n<\/tr>\n<tr class=\"even\">\n<td>Project instructions<\/td>\n<td>Persistent rules and context loaded for a workspace<\/td>\n<\/tr>\n<tr class=\"odd\">\n<td>MCP server or tool integration<\/td>\n<td>Access to external APIs, databases, applications, and services<\/td>\n<\/tr>\n<tr class=\"even\">\n<td>Subagent<\/td>\n<td>Separate worker with isolated context<\/td>\n<\/tr>\n<tr class=\"odd\">\n<td>Hook<\/td>\n<td>Automation triggered by a lifecycle event<\/td>\n<\/tr>\n<tr class=\"even\">\n<td>Plugin<\/td>\n<td>Distribution package that may include skills, tools, agents, and hooks<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>A deployment setup might use all of them:<\/p>\n<ul>\n<li>project instructions define repository conventions;<\/li>\n<li>a deployment skill defines the procedure;<\/li>\n<li>an MCP server or CLI tool performs external actions;<\/li>\n<li>a hook records the result;<\/li>\n<li>a plugin distributes the complete setup.<\/li>\n<\/ul>\n<h2 id=\"security-considerations\"><span class=\"ez-toc-section\" id=\"Security_considerations\"><\/span>Security considerations<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Treat third-party skills as executable dependencies.<\/p>\n<p>Before installing or using a skill, review:<\/p>\n<ul>\n<li>shell commands;<\/li>\n<li>file access;<\/li>\n<li>network access;<\/li>\n<li>external package installation;<\/li>\n<li>credential handling;<\/li>\n<li>write and delete operations;<\/li>\n<li>bundled scripts;<\/li>\n<li>referenced tools and services.<\/li>\n<\/ul>\n<p>Important rules:<\/p>\n<ul>\n<li>keep secrets outside skill files;<\/li>\n<li>require confirmation for destructive or publishing actions;<\/li>\n<li>use least-privilege tool access;<\/li>\n<li>prefer read-only checks before modifications;<\/li>\n<li>verify external URLs and dependencies;<\/li>\n<li>log important actions where appropriate;<\/li>\n<li>keep human approval for high-impact decisions.<\/li>\n<\/ul>\n<h2 id=\"helpful-skills-for-developers\"><span class=\"ez-toc-section\" id=\"Helpful_skills_for_developers\"><\/span>Helpful skills for developers<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>The following skills are useful building blocks for software work.<\/p>\n<table>\n<thead>\n<tr class=\"header\">\n<th>Skill<\/th>\n<th>Typical trigger<\/th>\n<th>Input<\/th>\n<th>Output<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr class=\"odd\">\n<td><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">review-pr<\/code><\/td>\n<td>Review a PR or code diff<\/td>\n<td>Diff, repository files, tests<\/td>\n<td>Prioritized findings<\/td>\n<\/tr>\n<tr class=\"even\">\n<td><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">debug-investigator<\/code><\/td>\n<td>Diagnose an error or failing behavior<\/td>\n<td>Logs, reproduction steps, code<\/td>\n<td>Root-cause analysis and fix plan<\/td>\n<\/tr>\n<tr class=\"odd\">\n<td><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">test-generator<\/code><\/td>\n<td>Add missing tests<\/td>\n<td>Source code and expected behavior<\/td>\n<td>Unit, integration, or regression tests<\/td>\n<\/tr>\n<tr class=\"even\">\n<td><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">refactor-plan<\/code><\/td>\n<td>Improve maintainability<\/td>\n<td>Target modules and constraints<\/td>\n<td>Staged refactoring proposal<\/td>\n<\/tr>\n<tr class=\"odd\">\n<td><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">api-design-review<\/code><\/td>\n<td>Review an API contract<\/td>\n<td>Routes, schemas, examples<\/td>\n<td>Compatibility and design report<\/td>\n<\/tr>\n<tr class=\"even\">\n<td><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">migration-review<\/code><\/td>\n<td>Review a database migration<\/td>\n<td>Migration files and schema<\/td>\n<td>Risk and rollback assessment<\/td>\n<\/tr>\n<tr class=\"odd\">\n<td><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">release-readiness<\/code><\/td>\n<td>Prepare a release<\/td>\n<td>Version, changelog, test results<\/td>\n<td>Blockers, warnings, checklist<\/td>\n<\/tr>\n<tr class=\"even\">\n<td><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">security-audit<\/code><\/td>\n<td>Check security-sensitive changes<\/td>\n<td>Code, config, architecture<\/td>\n<td>Security findings and remediation<\/td>\n<\/tr>\n<tr class=\"odd\">\n<td><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">performance-profile<\/code><\/td>\n<td>Investigate slow behavior<\/td>\n<td>Metrics, traces, code<\/td>\n<td>Bottleneck analysis and benchmark plan<\/td>\n<\/tr>\n<tr class=\"even\">\n<td><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">dependency-review<\/code><\/td>\n<td>Upgrade or add dependencies<\/td>\n<td>Manifest, lock file, release notes<\/td>\n<td>Compatibility and risk report<\/td>\n<\/tr>\n<tr class=\"odd\">\n<td><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">architecture-documenter<\/code><\/td>\n<td>Document a system<\/td>\n<td>Repository and design decisions<\/td>\n<td>Architecture document and diagrams<\/td>\n<\/tr>\n<tr class=\"even\">\n<td><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">incident-analysis<\/code><\/td>\n<td>Analyze an outage<\/td>\n<td>Timeline, logs, alerts<\/td>\n<td>Incident report and preventive actions<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3 id=\"recommended-developer-starter-pack\"><span class=\"ez-toc-section\" id=\"Recommended_developer_starter_pack\"><\/span>Recommended developer starter pack<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-group=\"\" data-enlighter-highlight=\"\" data-enlighter-language=\"generic\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-theme=\"\" data-enlighter-title=\"\">.agents\/skills\/\n\u251c\u2500\u2500 review-pr\/\n\u251c\u2500\u2500 debug-investigator\/\n\u251c\u2500\u2500 test-generator\/\n\u251c\u2500\u2500 release-readiness\/\n\u2514\u2500\u2500 architecture-documenter\/<\/pre>\n\n<h2 id=\"helpful-skills-for-content-creators\"><span class=\"ez-toc-section\" id=\"Helpful_skills_for_content_creators\"><\/span>Helpful skills for content creators<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Content skills should separate research, drafting, editing, and publishing rather than attempting everything in one workflow.<\/p>\n<table>\n<thead>\n<tr class=\"header\">\n<th>Skill<\/th>\n<th>Typical trigger<\/th>\n<th>Input<\/th>\n<th>Output<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr class=\"odd\">\n<td><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">topic-research<\/code><\/td>\n<td>Research a topic<\/td>\n<td>Topic, audience, constraints<\/td>\n<td>Structured research notes<\/td>\n<\/tr>\n<tr class=\"even\">\n<td><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">article-outline<\/code><\/td>\n<td>Plan an article<\/td>\n<td>Topic and research<\/td>\n<td>Heading structure and content plan<\/td>\n<\/tr>\n<tr class=\"odd\">\n<td><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">blog-writer<\/code><\/td>\n<td>Draft a complete article<\/td>\n<td>Outline, notes, sources<\/td>\n<td>Publishable article draft<\/td>\n<\/tr>\n<tr class=\"even\">\n<td><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">fact-check<\/code><\/td>\n<td>Verify claims<\/td>\n<td>Draft and sources<\/td>\n<td>Claim-by-claim verification report<\/td>\n<\/tr>\n<tr class=\"odd\">\n<td><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">seo-review<\/code><\/td>\n<td>Optimize an article<\/td>\n<td>Draft, target query, audience<\/td>\n<td>SEO recommendations and metadata<\/td>\n<\/tr>\n<tr class=\"even\">\n<td><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">content-repurpose<\/code><\/td>\n<td>Reuse long-form content<\/td>\n<td>Article, podcast, or transcript<\/td>\n<td>Posts, summaries, scripts, and excerpts<\/td>\n<\/tr>\n<tr class=\"odd\">\n<td><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">newsletter-builder<\/code><\/td>\n<td>Create a newsletter<\/td>\n<td>Updates and source material<\/td>\n<td>Newsletter issue with subject lines<\/td>\n<\/tr>\n<tr class=\"even\">\n<td><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">video-script<\/code><\/td>\n<td>Produce a video script<\/td>\n<td>Topic, format, duration<\/td>\n<td>Scene-by-scene script<\/td>\n<\/tr>\n<tr class=\"odd\">\n<td><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">brand-voice-check<\/code><\/td>\n<td>Enforce editorial style<\/td>\n<td>Draft and style guide<\/td>\n<td>Revised copy and deviations report<\/td>\n<\/tr>\n<tr class=\"even\">\n<td><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">visual-brief<\/code><\/td>\n<td>Plan supporting visuals<\/td>\n<td>Article or campaign<\/td>\n<td>Image and infographic briefs<\/td>\n<\/tr>\n<tr class=\"odd\">\n<td><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">wordpress-package<\/code><\/td>\n<td>Prepare WordPress content<\/td>\n<td>Article, metadata, assets<\/td>\n<td>HTML, excerpt, tags, import-ready files<\/td>\n<\/tr>\n<tr class=\"even\">\n<td><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">content-calendar<\/code><\/td>\n<td>Plan publication<\/td>\n<td>Themes, channels, cadence<\/td>\n<td>Scheduled editorial calendar<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3 id=\"recommended-content-creator-starter-pack\"><span class=\"ez-toc-section\" id=\"Recommended_content-creator_starter_pack\"><\/span>Recommended content-creator starter pack<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-group=\"\" data-enlighter-highlight=\"\" data-enlighter-language=\"generic\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-theme=\"\" data-enlighter-title=\"\">.agents\/skills\/\n\u251c\u2500\u2500 topic-research\/\n\u251c\u2500\u2500 article-outline\/\n\u251c\u2500\u2500 blog-writer\/\n\u251c\u2500\u2500 fact-check\/\n\u251c\u2500\u2500 seo-review\/\n\u2514\u2500\u2500 content-repurpose\/<\/pre>\n\n<h2 id=\"helpful-skills-for-influencers\"><span class=\"ez-toc-section\" id=\"Helpful_skills_for_influencers\"><\/span>Helpful skills for influencers<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Influencer workflows benefit from clear audience context, brand constraints, campaign requirements, and platform-specific output formats.<\/p>\n<table>\n<thead>\n<tr class=\"header\">\n<th>Skill<\/th>\n<th>Typical trigger<\/th>\n<th>Input<\/th>\n<th>Output<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr class=\"odd\">\n<td><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">caption-generator<\/code><\/td>\n<td>Create a social caption<\/td>\n<td>Post topic, platform, tone<\/td>\n<td>Multiple caption variants<\/td>\n<\/tr>\n<tr class=\"even\">\n<td><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">reel-idea-generator<\/code><\/td>\n<td>Generate short-form ideas<\/td>\n<td>Niche, audience, goal<\/td>\n<td>Hooks and reel concepts<\/td>\n<\/tr>\n<tr class=\"odd\">\n<td><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">story-sequence<\/code><\/td>\n<td>Plan stories<\/td>\n<td>Campaign or topic<\/td>\n<td>Multi-frame story sequence<\/td>\n<\/tr>\n<tr class=\"even\">\n<td><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">trend-analysis<\/code><\/td>\n<td>Evaluate current trends<\/td>\n<td>Platform data and niche<\/td>\n<td>Relevant trend summary and risks<\/td>\n<\/tr>\n<tr class=\"odd\">\n<td><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">hashtag-research<\/code><\/td>\n<td>Select hashtags<\/td>\n<td>Topic, platform, audience<\/td>\n<td>Grouped hashtag set<\/td>\n<\/tr>\n<tr class=\"even\">\n<td><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">comment-reply<\/code><\/td>\n<td>Respond to comments<\/td>\n<td>Comment, brand voice, policy<\/td>\n<td>Concise response options<\/td>\n<\/tr>\n<tr class=\"odd\">\n<td><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">dm-response<\/code><\/td>\n<td>Handle direct messages<\/td>\n<td>Message type and policy<\/td>\n<td>Reusable response patterns<\/td>\n<\/tr>\n<tr class=\"even\">\n<td><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">campaign-planner<\/code><\/td>\n<td>Plan a promotion<\/td>\n<td>Goal, offer, dates, channels<\/td>\n<td>Campaign timeline and deliverables<\/td>\n<\/tr>\n<tr class=\"odd\">\n<td><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">brand-deal-brief<\/code><\/td>\n<td>Prepare sponsored content<\/td>\n<td>Contract and product details<\/td>\n<td>Requirements, claims, and talking points<\/td>\n<\/tr>\n<tr class=\"even\">\n<td><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">ugc-script<\/code><\/td>\n<td>Create UGC-style content<\/td>\n<td>Product, audience, duration<\/td>\n<td>Hook, scenes, voice-over, CTA<\/td>\n<\/tr>\n<tr class=\"odd\">\n<td><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">engagement-review<\/code><\/td>\n<td>Analyze performance<\/td>\n<td>Post metrics and examples<\/td>\n<td>Pattern analysis and next experiments<\/td>\n<\/tr>\n<tr class=\"even\">\n<td><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">content-risk-check<\/code><\/td>\n<td>Review claims and disclosures<\/td>\n<td>Draft post and campaign rules<\/td>\n<td>Compliance and disclosure checklist<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3 id=\"recommended-influencer-starter-pack\"><span class=\"ez-toc-section\" id=\"Recommended_influencer_starter_pack\"><\/span>Recommended influencer starter pack<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-group=\"\" data-enlighter-highlight=\"\" data-enlighter-language=\"generic\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-theme=\"\" data-enlighter-title=\"\">.agents\/skills\/\n\u251c\u2500\u2500 reel-idea-generator\/\n\u251c\u2500\u2500 caption-generator\/\n\u251c\u2500\u2500 story-sequence\/\n\u251c\u2500\u2500 campaign-planner\/\n\u251c\u2500\u2500 comment-reply\/\n\u2514\u2500\u2500 engagement-review\/<\/pre>\n\n<h2 id=\"a-complete-example-content-repurposing-skill\"><span class=\"ez-toc-section\" id=\"A_complete_example_content_repurposing_skill\"><\/span>A complete example: content repurposing skill<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-group=\"\" data-enlighter-highlight=\"\" data-enlighter-language=\"markdown\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-theme=\"\" data-enlighter-title=\"\">---\nname: content-repurpose\ndescription: Converts a long-form article, transcript, podcast, or video into channel-specific short-form content. Use when adapting existing content for blogs, newsletters, LinkedIn, Instagram, TikTok, YouTube Shorts, or similar channels.\nmetadata:\n  version: \"1.0.0\"\n---\n\n# Objective\n\nCreate platform-appropriate derivative content without inventing claims or changing the source meaning.\n\n# Required inputs\n\n- Source content\n- Target platforms\n- Audience\n- Brand voice\n- Desired call to action\n\n# Workflow\n\n1. Extract the central argument, key facts, and strongest examples.\n2. Identify claims that require citations or must not be shortened.\n3. Create one content angle per target platform.\n4. Adapt length, hook, structure, and CTA for each platform.\n5. Preserve factual meaning and brand constraints.\n6. Return the outputs grouped by platform.\n\n# Output\n\n## Source summary\n\n## LinkedIn post\n\n## Instagram caption\n\n## Short-video script\n\n## Newsletter excerpt\n\n## Claims requiring verification\n\n# Failure handling\n\n- If the source is incomplete, list the missing material.\n- If a claim cannot be verified, mark it as unverified.\n- Do not invent quotations, statistics, or testimonials.<\/pre>\n\n<h2 id=\"quality-checklist-for-every-skill\"><span class=\"ez-toc-section\" id=\"Quality_checklist_for_every_skill\"><\/span>Quality checklist for every skill<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Before publishing a skill, verify:<\/p>\n<ul class=\"task-list\">\n<li><label><input type=\"checkbox\"\/>The skill has one clear responsibility.<\/label><\/li>\n<li><label><input type=\"checkbox\"\/>The directory name and <code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">name<\/code> match.<\/label><\/li>\n<li><label><input type=\"checkbox\"\/>The description states what the skill does and when to use it.<\/label><\/li>\n<li><label><input type=\"checkbox\"\/>Inputs and outputs are explicit.<\/label><\/li>\n<li><label><input type=\"checkbox\"\/>Constraints are documented.<\/label><\/li>\n<li><label><input type=\"checkbox\"\/>Failure behavior is defined.<\/label><\/li>\n<li><label><input type=\"checkbox\"\/>Long references are outside the main file.<\/label><\/li>\n<li><label><input type=\"checkbox\"\/>Scripts document dependencies and errors.<\/label><\/li>\n<li><label><input type=\"checkbox\"\/>Destructive actions require confirmation.<\/label><\/li>\n<li><label><input type=\"checkbox\"\/>Activation and non-activation cases have been tested.<\/label><\/li>\n<li><label><input type=\"checkbox\"\/>Example outputs demonstrate the expected structure.<\/label><\/li>\n<li><label><input type=\"checkbox\"\/>The skill passes format validation.<\/label><\/li>\n<li><label><input type=\"checkbox\"\/>The skill is versioned and reviewed.<\/label><\/li>\n<\/ul>\n<h2 id=\"building-a-skill-library-over-time\"><span class=\"ez-toc-section\" id=\"Building_a_skill_library_over_time\"><\/span>Building a skill library over time<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Do not start by creating dozens of skills. Start with the workflows that create the most repeated effort or the most frequent quality problems.<\/p>\n<p>A practical maturity path is:<\/p>\n<ol type=\"1\">\n<li><strong>Capture<\/strong> \u2014 turn a repeated prompt into a focused skill.<\/li>\n<li><strong>Clarify<\/strong> \u2014 define inputs, outputs, constraints, and failure behavior.<\/li>\n<li><strong>Test<\/strong> \u2014 evaluate activation and output quality.<\/li>\n<li><strong>Automate<\/strong> \u2014 add scripts for deterministic work.<\/li>\n<li><strong>Compose<\/strong> \u2014 combine focused skills into larger workflows.<\/li>\n<li><strong>Govern<\/strong> \u2014 version, review, distribute, and audit the library.<\/li>\n<\/ol>\n<p>The strongest skill libraries are not the largest. They are the ones that encode valuable procedures clearly and produce reliable results repeatedly.<\/p>\n<h2 id=\"official-references\"><span class=\"ez-toc-section\" id=\"Official_references\"><\/span>Official references<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<ul>\n<li>Agent Skills specification: <a href=\"https:\/\/agentskills.io\/specification\">https:\/\/agentskills.io\/specification<\/a><\/li>\n<li>Agent Skills overview: <a href=\"https:\/\/agentskills.io\/home\">https:\/\/agentskills.io\/home<\/a><\/li>\n<li>Agent Skills best practices: <a href=\"https:\/\/agentskills.io\/skill-creation\/best-practices\">https:\/\/agentskills.io\/skill-creation\/best-practices<\/a><\/li>\n<li>Claude Code skills documentation: <a href=\"https:\/\/code.claude.com\/docs\/en\/slash-commands\">https:\/\/code.claude.com\/docs\/en\/slash-commands<\/a><\/li>\n<li>Gemini CLI Agent Skills: <a href=\"https:\/\/geminicli.com\/docs\/cli\/skills\/\">https:\/\/geminicli.com\/docs\/cli\/skills\/<\/a><\/li>\n<li>OpenAI Academy skills guide: <a href=\"https:\/\/academy.openai.com\/en\/public\/clubs\/work-users-ynjqu\/resources\/skills\">https:\/\/academy.openai.com\/en\/public\/clubs\/work-users-ynjqu\/resources\/skills<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>A detailed practical guide to AI agent skills: what they are, how to create and test them, how to use them safely, and which skills are useful for developers, content creators, and influencers.<\/p>\n","protected":false},"author":2,"featured_media":1548,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[43],"tags":[46,47,59,61,60,62,45],"class_list":["post-912001","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-artificial-intelligence","tag-agent-skills","tag-ai-agents","tag-ai-workflows","tag-content-creation","tag-developer-tools","tag-influencer-marketing","tag-skill-md"],"_links":{"self":[{"href":"https:\/\/programmier-workshops.de\/blog\/wp-json\/wp\/v2\/posts\/912001","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/programmier-workshops.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/programmier-workshops.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/programmier-workshops.de\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/programmier-workshops.de\/blog\/wp-json\/wp\/v2\/comments?post=912001"}],"version-history":[{"count":1,"href":"https:\/\/programmier-workshops.de\/blog\/wp-json\/wp\/v2\/posts\/912001\/revisions"}],"predecessor-version":[{"id":912002,"href":"https:\/\/programmier-workshops.de\/blog\/wp-json\/wp\/v2\/posts\/912001\/revisions\/912002"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/programmier-workshops.de\/blog\/wp-json\/wp\/v2\/media\/1548"}],"wp:attachment":[{"href":"https:\/\/programmier-workshops.de\/blog\/wp-json\/wp\/v2\/media?parent=912001"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/programmier-workshops.de\/blog\/wp-json\/wp\/v2\/categories?post=912001"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/programmier-workshops.de\/blog\/wp-json\/wp\/v2\/tags?post=912001"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}