[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6BYP37P2KF40QVMNH08RRZ8":3,"skill-same:01M6BYP37P2KF40QVMNH08RRZ8":125},{"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":18,"publishedAt":34,"linkOnly":35,"markdownContent":36,"markdownBody":37,"frontMatter":38,"refName":65,"commitSha":66,"skillDirectory":67,"forksCount":68,"repositoryHtmlUrl":69,"repositoryHomepageUrl":6,"ownerHtmlUrl":70,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":71,"install":72,"resources":85},"01M6BYP37P2KF40QVMNH08RRZ8","to-tickets",null,"Break a plan, spec, or the current conversation into a set of tracer-bullet tickets, each declaring its blocking edges, published to the configured tracker (edges as text in one file per ticket locally, or native blocking links on a real tracker).","Vortex375\u002Fseraph","Vortex375","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F5016523?v=4","01M6BYMHA5FQE4EMD6BSZ13M46","Benjamin Schmitz","01M6BYMHEYGQ7DM3Q8A7KBNZ48",2,"AGPL-3.0","https:\u002F\u002Fgithub.com\u002FVortex375\u002Fseraph\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fto-tickets\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33],"to tickets","tickets","spec","file","SET","plan","text","tracker","conversation","as","ticket","native","links","true","break","2026-11-10 10:12:30",false,"---\nname: collecting-threat-intelligence-with-misp\ndescription: Deploy MISP, configure threat feeds (MISP community, freetext, TAXII, CSV), and use the PyMISP API to programmatically fetch, add, and search events and IOCs, building automated collection pipelines that aggregate indicators from community and commercial sources. Use when gathering, storing, or correlating IOCs and threat intelligence, or when scripting MISP ingestion via PyMISP.\ndomain: cybersecurity\nsubdomain: threat-intelligence\ntags:\n- threat-intelligence\n- cti\n- ioc\n- mitre-attack\n- stix\n- misp\n- taxii\n- threat-sharing\nversion: '1.0'\nauthor: mahipal\nlicense: Apache-2.0\nnist_csf:\n- ID.RA-01\n- ID.RA-05\n- DE.CM-01\n- DE.AE-02\nmitre_attack:\n- T1071.001\n- T1588.001\n- T1583.001\n- T1566.001\n- T1587.001\n---\n# Collecting Threat Intelligence with MISP\n\n## Overview\n\nMISP (Malware Information Sharing Platform) is an open-source threat intelligence platform for gathering, sharing, storing, and correlating Indicators of Compromise (IOCs) of targeted attacks, threat intelligence, financial fraud information, vulnerability information, or counter-terrorism information. This skill covers deploying MISP, configuring threat feeds, using the PyMISP API for programmatic access, and building automated collection pipelines that aggregate IOCs from multiple community and commercial sources.\n\n\n## When to Use\n\n- When managing security operations that require collecting threat intelligence with misp\n- When improving security program maturity and operational processes\n- When establishing standardized procedures for security team workflows\n- When integrating threat intelligence or vulnerability data into operations\n\n## Prerequisites\n\n- Python 3.9+ with `pymisp` library installed\n- Docker and Docker Compose for MISP deployment\n- Understanding of STIX 2.1 and TAXII 2.1 protocols\n- Familiarity with IOC types: hashes, IP addresses, domains, URLs, email addresses\n- Network access to MISP community feeds (circl.lu, botvrij.eu)\n\n## Key Concepts\n\n### MISP Architecture\n\nMISP operates on an event-based model where threat intelligence is organized into events containing attributes (IOCs), objects (structured groupings of attributes), galaxies (threat actor\u002Fmalware clusters linked to MITRE ATT&CK), and tags for classification. Synchronization between MISP instances uses a pull\u002Fpush model over HTTPS with API key authentication.\n\n### Feed Types\n\n- **MISP Feeds**: Native JSON\u002FCSV feeds from MISP community (CIRCL OSINT, botvrij.eu)\n- **Freetext Feeds**: Unstructured text feeds parsed for IOCs (abuse.ch, Feodo Tracker)\n- **TAXII Feeds**: STIX\u002FTAXII 2.1 compatible feeds from commercial and government sources\n- **CSV Feeds**: Structured CSV feeds with configurable column mapping\n\n### PyMISP API\n\nPyMISP is the official Python library to access MISP platforms via their REST API. It supports fetching events, adding\u002Fupdating events and attributes, uploading samples, and searching across the entire MISP dataset. Authentication uses an API key passed in the `Authorization` header.\n\n## Workflow\n\n### Step 1: Deploy MISP with Docker\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002FMISP\u002Fmisp-docker.git\ncd misp-docker\ncp template.env .env\n# Edit .env to set MISP_BASEURL, MISP_ADMIN_EMAIL, MISP_ADMIN_PASSPHRASE\ndocker compose up -d\n```\n\n### Step 2: Configure Default Feeds\n\nEnable built-in MISP feeds via the web UI or API:\n\n```python\nfrom pymisp import PyMISP\n\nmisp = PyMISP('https:\u002F\u002Fmisp.local', 'YOUR_API_KEY', ssl=False)\n\n# List available feeds\nfeeds = misp.feeds()\nfor feed in feeds:\n    print(f\"{feed['Feed']['id']}: {feed['Feed']['name']} - Enabled: {feed['Feed']['enabled']}\")\n\n# Enable CIRCL OSINT Feed\nmisp.enable_feed(feed_id=1)\nmisp.cache_feed(feed_id=1)\nmisp.fetch_feed(feed_id=1)\n```\n\n### Step 3: Add Custom Threat Feeds\n\n```python\n# Add abuse.ch URLhaus feed\nfeed_data = {\n    'name': 'URLhaus Recent URLs',\n    'provider': 'abuse.ch',\n    'url': 'https:\u002F\u002Furlhaus.abuse.ch\u002Fdownloads\u002Fcsv_recent\u002F',\n    'source_format': 'csv',\n    'input_source': 'network',\n    'publish': False,\n    'enabled': True,\n    'headers': '',\n    'distribution': 0,\n    'sharing_group_id': 0,\n    'tag_id': 0,\n    'default': False,\n    'lookup_visible': True\n}\nresult = misp.add_feed(feed_data)\nprint(f\"Feed added: {result}\")\n```\n\n### Step 4: Programmatic Event Search and Retrieval\n\n```python\nfrom pymisp import PyMISP, MISPEvent\nfrom datetime import datetime, timedelta\n\nmisp = PyMISP('https:\u002F\u002Fmisp.local', 'YOUR_API_KEY', ssl=False)\n\n# Search for events from the last 7 days\nresult = misp.search(\n    controller='events',\n    date_from=(datetime.now() - timedelta(days=7)).strftime('%Y-%m-%d'),\n    type_attribute='ip-dst',\n    to_ids=True,\n    pythonify=True\n)\n\nfor event in result:\n    print(f\"Event {event.id}: {event.info}\")\n    for attr in event.attributes:\n        if attr.type == 'ip-dst' and attr.to_ids:\n            print(f\"  IOC: {attr.value} (category: {attr.category})\")\n```\n\n### Step 5: Export IOCs for Downstream Tools\n\n```python\n# Export as STIX 2.1 bundle\nstix_output = misp.search(\n    controller='events',\n    return_format='stix2',\n    tags=['tlp:white'],\n    published=True\n)\n\n# Export IDS-flagged attributes as Suricata rules\nsuricata_rules = misp.search(\n    controller='attributes',\n    return_format='suricata',\n    to_ids=True,\n    type_attribute=['ip-dst', 'domain', 'url']\n)\n\n# Export as CSV for SIEM ingestion\ncsv_output = misp.search(\n    controller='attributes',\n    return_format='csv',\n    type_attribute='ip-dst',\n    to_ids=True\n)\n```\n\n## Validation Criteria\n\n- MISP instance is deployed and accessible via HTTPS\n- At least 3 community feeds are enabled and fetching data successfully\n- PyMISP script can authenticate, search events, and retrieve IOCs\n- Events contain properly tagged and categorized attributes\n- Export to STIX 2.1 produces valid STIX bundles\n- Automated feed fetch runs on schedule (cron or MISP scheduler)\n\n## References\n\n- [MISP Project Official Site](https:\u002F\u002Fwww.misp-project.org\u002F)\n- [PyMISP Documentation](https:\u002F\u002Fpymisp.readthedocs.io\u002F)\n- [MISP GitHub Repository](https:\u002F\u002Fgithub.com\u002FMISP\u002FMISP)\n- [MISP OpenAPI Specification](https:\u002F\u002Fwww.misp-project.org\u002Fopenapi\u002F)\n- [CIRCL OSINT Feed](https:\u002F\u002Fwww.circl.lu\u002Fdoc\u002Fmisp\u002Ffeed-osint\u002F)\n","# Collecting Threat Intelligence with MISP\n\n## Overview\n\nMISP (Malware Information Sharing Platform) is an open-source threat intelligence platform for gathering, sharing, storing, and correlating Indicators of Compromise (IOCs) of targeted attacks, threat intelligence, financial fraud information, vulnerability information, or counter-terrorism information. This skill covers deploying MISP, configuring threat feeds, using the PyMISP API for programmatic access, and building automated collection pipelines that aggregate IOCs from multiple community and commercial sources.\n\n\n## When to Use\n\n- When managing security operations that require collecting threat intelligence with misp\n- When improving security program maturity and operational processes\n- When establishing standardized procedures for security team workflows\n- When integrating threat intelligence or vulnerability data into operations\n\n## Prerequisites\n\n- Python 3.9+ with `pymisp` library installed\n- Docker and Docker Compose for MISP deployment\n- Understanding of STIX 2.1 and TAXII 2.1 protocols\n- Familiarity with IOC types: hashes, IP addresses, domains, URLs, email addresses\n- Network access to MISP community feeds (circl.lu, botvrij.eu)\n\n## Key Concepts\n\n### MISP Architecture\n\nMISP operates on an event-based model where threat intelligence is organized into events containing attributes (IOCs), objects (structured groupings of attributes), galaxies (threat actor\u002Fmalware clusters linked to MITRE ATT&CK), and tags for classification. Synchronization between MISP instances uses a pull\u002Fpush model over HTTPS with API key authentication.\n\n### Feed Types\n\n- **MISP Feeds**: Native JSON\u002FCSV feeds from MISP community (CIRCL OSINT, botvrij.eu)\n- **Freetext Feeds**: Unstructured text feeds parsed for IOCs (abuse.ch, Feodo Tracker)\n- **TAXII Feeds**: STIX\u002FTAXII 2.1 compatible feeds from commercial and government sources\n- **CSV Feeds**: Structured CSV feeds with configurable column mapping\n\n### PyMISP API\n\nPyMISP is the official Python library to access MISP platforms via their REST API. It supports fetching events, adding\u002Fupdating events and attributes, uploading samples, and searching across the entire MISP dataset. Authentication uses an API key passed in the `Authorization` header.\n\n## Workflow\n\n### Step 1: Deploy MISP with Docker\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002FMISP\u002Fmisp-docker.git\ncd misp-docker\ncp template.env .env\n# Edit .env to set MISP_BASEURL, MISP_ADMIN_EMAIL, MISP_ADMIN_PASSPHRASE\ndocker compose up -d\n```\n\n### Step 2: Configure Default Feeds\n\nEnable built-in MISP feeds via the web UI or API:\n\n```python\nfrom pymisp import PyMISP\n\nmisp = PyMISP('https:\u002F\u002Fmisp.local', 'YOUR_API_KEY', ssl=False)\n\n# List available feeds\nfeeds = misp.feeds()\nfor feed in feeds:\n    print(f\"{feed['Feed']['id']}: {feed['Feed']['name']} - Enabled: {feed['Feed']['enabled']}\")\n\n# Enable CIRCL OSINT Feed\nmisp.enable_feed(feed_id=1)\nmisp.cache_feed(feed_id=1)\nmisp.fetch_feed(feed_id=1)\n```\n\n### Step 3: Add Custom Threat Feeds\n\n```python\n# Add abuse.ch URLhaus feed\nfeed_data = {\n    'name': 'URLhaus Recent URLs',\n    'provider': 'abuse.ch',\n    'url': 'https:\u002F\u002Furlhaus.abuse.ch\u002Fdownloads\u002Fcsv_recent\u002F',\n    'source_format': 'csv',\n    'input_source': 'network',\n    'publish': False,\n    'enabled': True,\n    'headers': '',\n    'distribution': 0,\n    'sharing_group_id': 0,\n    'tag_id': 0,\n    'default': False,\n    'lookup_visible': True\n}\nresult = misp.add_feed(feed_data)\nprint(f\"Feed added: {result}\")\n```\n\n### Step 4: Programmatic Event Search and Retrieval\n\n```python\nfrom pymisp import PyMISP, MISPEvent\nfrom datetime import datetime, timedelta\n\nmisp = PyMISP('https:\u002F\u002Fmisp.local', 'YOUR_API_KEY', ssl=False)\n\n# Search for events from the last 7 days\nresult = misp.search(\n    controller='events',\n    date_from=(datetime.now() - timedelta(days=7)).strftime('%Y-%m-%d'),\n    type_attribute='ip-dst',\n    to_ids=True,\n    pythonify=True\n)\n\nfor event in result:\n    print(f\"Event {event.id}: {event.info}\")\n    for attr in event.attributes:\n        if attr.type == 'ip-dst' and attr.to_ids:\n            print(f\"  IOC: {attr.value} (category: {attr.category})\")\n```\n\n### Step 5: Export IOCs for Downstream Tools\n\n```python\n# Export as STIX 2.1 bundle\nstix_output = misp.search(\n    controller='events',\n    return_format='stix2',\n    tags=['tlp:white'],\n    published=True\n)\n\n# Export IDS-flagged attributes as Suricata rules\nsuricata_rules = misp.search(\n    controller='attributes',\n    return_format='suricata',\n    to_ids=True,\n    type_attribute=['ip-dst', 'domain', 'url']\n)\n\n# Export as CSV for SIEM ingestion\ncsv_output = misp.search(\n    controller='attributes',\n    return_format='csv',\n    type_attribute='ip-dst',\n    to_ids=True\n)\n```\n\n## Validation Criteria\n\n- MISP instance is deployed and accessible via HTTPS\n- At least 3 community feeds are enabled and fetching data successfully\n- PyMISP script can authenticate, search events, and retrieve IOCs\n- Events contain properly tagged and categorized attributes\n- Export to STIX 2.1 produces valid STIX bundles\n- Automated feed fetch runs on schedule (cron or MISP scheduler)\n\n## References\n\n- [MISP Project Official Site](https:\u002F\u002Fwww.misp-project.org\u002F)\n- [PyMISP Documentation](https:\u002F\u002Fpymisp.readthedocs.io\u002F)\n- [MISP GitHub Repository](https:\u002F\u002Fgithub.com\u002FMISP\u002FMISP)\n- [MISP OpenAPI Specification](https:\u002F\u002Fwww.misp-project.org\u002Fopenapi\u002F)\n- [CIRCL OSINT Feed](https:\u002F\u002Fwww.circl.lu\u002Fdoc\u002Fmisp\u002Ffeed-osint\u002F)\n",{"name":39,"tags":40,"author":49,"domain":50,"license":51,"version":52,"nist_csf":53,"subdomain":41,"description":58,"mitre_attack":59},"collecting-threat-intelligence-with-misp",[41,42,43,44,45,46,47,48],"threat-intelligence","cti","ioc","mitre-attack","stix","misp","taxii","threat-sharing","mahipal","cybersecurity","Apache-2.0","1.0",[54,55,56,57],"ID.RA-01","ID.RA-05","DE.CM-01","DE.AE-02","Deploy MISP, configure threat feeds (MISP community, freetext, TAXII, CSV), and use the PyMISP API to programmatically fetch, add, and search events and IOCs, building automated collection pipelines that aggregate indicators from community and commercial sources. Use when gathering, storing, or correlating IOCs and threat intelligence, or when scripting MISP ingestion via PyMISP.",[60,61,62,63,64],"T1071.001","T1588.001","T1583.001","T1566.001","T1587.001","main","54a798831d2266a3ca61ce68a7acb80b81160d57",".agents\u002Fskills\u002Fto-tickets",0,"https:\u002F\u002Fgithub.com\u002FVortex375\u002Fseraph","https:\u002F\u002Fgithub.com\u002FVortex375","2026-11-08 18:46:14",{"source":8,"skillName":39,"commands":73,"prompt":83,"zipAvailable":84},[74,77,80],{"tool":75,"command":76},"npx","npx skills add Vortex375\u002Fseraph --skill collecting-threat-intelligence-with-misp",{"tool":78,"command":79},"bunx","bunx skills add Vortex375\u002Fseraph --skill collecting-threat-intelligence-with-misp",{"tool":81,"command":82},"pnpm","pnpm dlx skills add Vortex375\u002Fseraph --skill collecting-threat-intelligence-with-misp","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FVortex375\u002Fseraph\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fto-tickets\u002FSKILL.md",true,[86,92,98,103,107,111,115,121],{"path":87,"resourceType":88,"resourceTypeDesc":89,"sizeBytes":90,"sourceHtmlUrl":91},"agents\u002Fopenai.yaml","REFERENCE","参考文档",146,"https:\u002F\u002Fgithub.com\u002FVortex375\u002Fseraph\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fto-tickets\u002Fagents\u002Fopenai.yaml",{"path":93,"resourceType":94,"resourceTypeDesc":95,"sizeBytes":96,"sourceHtmlUrl":97},"assets\u002Ftemplate.md","ASSET","资产文件",3053,"https:\u002F\u002Fgithub.com\u002Fmukul975\u002FAnthropic-Cybersecurity-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fcollecting-threat-intelligence-with-misp\u002Fassets\u002Ftemplate.md",{"path":99,"resourceType":99,"resourceTypeDesc":100,"sizeBytes":101,"sourceHtmlUrl":102},"LICENSE","许可证",11255,"https:\u002F\u002Fgithub.com\u002Fmukul975\u002FAnthropic-Cybersecurity-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fcollecting-threat-intelligence-with-misp\u002FLICENSE",{"path":104,"resourceType":88,"resourceTypeDesc":89,"sizeBytes":105,"sourceHtmlUrl":106},"references\u002Fapi-reference.md",1851,"https:\u002F\u002Fgithub.com\u002Fmukul975\u002FAnthropic-Cybersecurity-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fcollecting-threat-intelligence-with-misp\u002Freferences\u002Fapi-reference.md",{"path":108,"resourceType":88,"resourceTypeDesc":89,"sizeBytes":109,"sourceHtmlUrl":110},"references\u002Fstandards.md",2316,"https:\u002F\u002Fgithub.com\u002Fmukul975\u002FAnthropic-Cybersecurity-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fcollecting-threat-intelligence-with-misp\u002Freferences\u002Fstandards.md",{"path":112,"resourceType":88,"resourceTypeDesc":89,"sizeBytes":113,"sourceHtmlUrl":114},"references\u002Fworkflows.md",4877,"https:\u002F\u002Fgithub.com\u002Fmukul975\u002FAnthropic-Cybersecurity-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fcollecting-threat-intelligence-with-misp\u002Freferences\u002Fworkflows.md",{"path":116,"resourceType":117,"resourceTypeDesc":118,"sizeBytes":119,"sourceHtmlUrl":120},"scripts\u002Fagent.py","SCRIPT","脚本",5732,"https:\u002F\u002Fgithub.com\u002Fmukul975\u002FAnthropic-Cybersecurity-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fcollecting-threat-intelligence-with-misp\u002Fscripts\u002Fagent.py",{"path":122,"resourceType":117,"resourceTypeDesc":118,"sizeBytes":123,"sourceHtmlUrl":124},"scripts\u002Fprocess.py",12206,"https:\u002F\u002Fgithub.com\u002Fmukul975\u002FAnthropic-Cybersecurity-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fcollecting-threat-intelligence-with-misp\u002Fscripts\u002Fprocess.py",[126,150,175,195,211,230],{"skillNo":127,"name":128,"nameZh":6,"description":129,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":130,"categories":131,"keywords":142,"publishedAt":34},"01M6BYS1QVW7F887EXS5RR34TA","writing-for-agents","Writing documents for agents. Use when creating or editing skills, or modifying AGENTS.md or CLAUDE.md.","https:\u002F\u002Fgithub.com\u002FVortex375\u002Fseraph\u002Fblob\u002Fmain\u002Fapp\u002Fseraph_app\u002F.agents\u002Fskills\u002Fwriting-for-agents\u002FSKILL.md",[132,137],{"categoryNo":133,"categoryName":134,"taxonomyType":135,"taxonomyTypeDesc":136},"01JBSEEDCAT000000000000018","写作与文案","SCENARIO","使用场景",{"categoryNo":138,"categoryName":139,"taxonomyType":140,"taxonomyTypeDesc":141},"01JBSEEDCAT000000000000036","内容创作者","PROFESSION","适用职业",[143,144,145,146,147,148,149],"writing","for","writing for agents","when","use","editing","documents",{"skillNo":151,"name":152,"nameZh":6,"description":153,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":154,"categories":155,"keywords":156,"publishedAt":34},"01M6BYRZNREK0C7V6Y43AKDJWW","wizard","Generate an interactive bash wizard that walks a human through steps only they can perform. Use when provisioning infrastructure, setting up credentials or CI secrets, walking an unfamiliar third-party dashboard, or running a one-off migration or cutover. Don't invoke this for steps the agent can perform itself.","https:\u002F\u002Fgithub.com\u002FVortex375\u002Fseraph\u002Fblob\u002Fmain\u002Fapp\u002Fseraph_app\u002F.agents\u002Fskills\u002Fwizard\u002FSKILL.md",[],[152,157,158,159,160,161,162,163,146,164,165,144,166,167,168,169,170,171,147,172,173,174],"provisioning","ci","generate","infrastructure","dashboard","can","running","invoke","party","credentials","human","provisioning infrastructure","migration","up","only","interactive","Bash","secrets",{"skillNo":176,"name":177,"nameZh":6,"description":178,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":179,"categories":180,"keywords":181,"publishedAt":34},"01M6BYRY92S448X31PTG25TCJC","wayfinder","Plan a huge chunk of work (more than one agent session can hold) as a shared map of decision tickets on your issue tracker, and resolve them one at a time until the way to the destination is clear.","https:\u002F\u002Fgithub.com\u002FVortex375\u002Fseraph\u002Fblob\u002Fmain\u002Fapp\u002Fseraph_app\u002F.agents\u002Fskills\u002Fwayfinder\u002FSKILL.md",[],[177,182,183,184,162,185,32,186,187,20,28,188,189,190,191,192,193,24,194,26],"at","map","agent session","time","shared","more","clear","issue","session","one at a time","work","decision","chunk",{"skillNo":196,"name":197,"nameZh":6,"description":198,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":199,"categories":200,"keywords":201,"publishedAt":34},"01M6BYRWXMYWB6PD7E9PAD44M4","wait-what","Stop. That last message did not land: re-pitch it.","https:\u002F\u002Fgithub.com\u002FVortex375\u002Fseraph\u002Fblob\u002Fmain\u002Fapp\u002Fseraph_app\u002F.agents\u002Fskills\u002Fwait-what\u002FSKILL.md",[],[202,203,204,32,205,206,207,208,209,210],"wait what","wait","re","last","it","pitch","message","stop","land",{"skillNo":212,"name":213,"nameZh":6,"description":214,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":215,"categories":216,"keywords":217,"publishedAt":34},"01M6BYRTS6JNDYB7BZVAWK7JJ9","triage","Move issues and external PRs through a state machine of triage roles, categorise, verify, grill if needed, and write agent-ready briefs.","https:\u002F\u002Fgithub.com\u002FVortex375\u002Fseraph\u002Fblob\u002Fmain\u002Fapp\u002Fseraph_app\u002F.agents\u002Fskills\u002Ftriage\u002FSKILL.md",[],[213,218,219,220,221,222,223,224,225,226,227,228,32,229],"machine","roles","grill","ready","write","verify","issues","state","move","prs","state machine","briefs",{"skillNo":231,"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":232,"categories":233,"keywords":234,"publishedAt":34},"01M6BYRRRCDHNXH2YBDTYJPG36","https:\u002F\u002Fgithub.com\u002FVortex375\u002Fseraph\u002Fblob\u002Fmain\u002Fapp\u002Fseraph_app\u002F.agents\u002Fskills\u002Fto-tickets\u002FSKILL.md",[],[19,20,21,31,33,32,30,29,28,27,26,25,24,23,22]]