[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6NTTHWM4A5C8QAFDPN1EXB8":3,"skill-same:01M6NTTHWM4A5C8QAFDPN1EXB8":95},{"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":26,"publishedAt":46,"linkOnly":47,"markdownContent":48,"markdownBody":49,"frontMatter":50,"refName":54,"commitSha":55,"skillDirectory":56,"forksCount":57,"repositoryHtmlUrl":58,"repositoryHomepageUrl":6,"ownerHtmlUrl":59,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":60,"install":61,"resources":74},"01M6NTTHWM4A5C8QAFDPN1EXB8","mysql",null,"Execute read-only SQL queries against multiple MySQL databases. Use when: (1) querying MySQL databases, (2) exploring database schemas\u002Ftables, (3) running SELECT queries for data analysis, (4) checking database contents. Supports multiple database connections with descriptions for intelligent auto-selection. Blocks all write operations (INSERT, UPDATE, DELETE, DROP, etc.) for safety.","mattonweb\u002Fai-assistant-foundry","mattonweb","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F2309734?v=4","01M6NQYCY846TKYN2ZCRS71WQ7","Matt Johnson","01M6NQYD2NPAQEFVD8TW9W0SVX",1,"Apache-2.0","https:\u002F\u002Fgithub.com\u002Fmattonweb\u002Fai-assistant-foundry\u002Fblob\u002Fmain\u002Fdata-database\u002Fsanjay3290\u002Fmysql\u002FSKILL.md",[18,23],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000010","后端与接口","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000013","分析与可视化",[5,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],"only","for","read-only","with","drop","connections","selection","queries","sql queries","databases","data analysis","auto","use","operations","select","analysis","database","update","delete","2026-11-10 10:12:30",false,"---\nname: mysql\ndescription: \"Execute read-only SQL queries against multiple MySQL databases. Use when: (1) querying MySQL databases, (2) exploring database schemas\u002Ftables, (3) running SELECT queries for data analysis, (4) checking database contents. Supports multiple database connections with descriptions for intelligent auto-selection. Blocks all write operations (INSERT, UPDATE, DELETE, DROP, etc.) for safety.\"\nlicense: Apache-2.0\nmetadata:\n  author: sanjay3290\n  version: \"1.0\"\n---\n\n# MySQL Read-Only Query Skill\n\nExecute safe, read-only queries against configured MySQL databases.\n\n## Requirements\n\n- Python 3.8+\n- mysql-connector-python: `pip install -r requirements.txt`\n\n## Setup\n\nCreate `connections.json` in the skill directory or `~\u002F.config\u002Fclaude\u002Fmysql-connections.json`.\n\n**Security**: Set file permissions to `600` since it contains credentials:\n```bash\nchmod 600 connections.json\n```\n\n```json\n{\n  \"databases\": [\n    {\n      \"name\": \"production\",\n      \"description\": \"Main app database - users, orders, transactions\",\n      \"host\": \"db.example.com\",\n      \"port\": 3306,\n      \"database\": \"app_prod\",\n      \"user\": \"readonly_user\",\n      \"password\": \"your-password\",\n      \"ssl_disabled\": false\n    }\n  ]\n}\n```\n\n### Config Fields\n\n| Field | Required | Description |\n|-------|----------|-------------|\n| name | Yes | Identifier for the database (case-insensitive) |\n| description | Yes | What data this database contains (used for auto-selection) |\n| host | Yes | Database hostname |\n| port | No | Port number (default: 3306) |\n| database | Yes | Database name |\n| user | Yes | Username |\n| password | Yes | Password |\n| ssl_disabled | No | Set to `true` to disable SSL (default: false) |\n| ssl_ca | No | Path to CA certificate file |\n| ssl_cert | No | Path to client certificate file |\n| ssl_key | No | Path to client private key file |\n\n## Usage\n\n### List configured databases\n```bash\npython3 scripts\u002Fquery.py --list\n```\n\n### Query a database\n```bash\npython3 scripts\u002Fquery.py --db production --query \"SELECT * FROM users LIMIT 10\"\n```\n\n### List tables\n```bash\npython3 scripts\u002Fquery.py --db production --tables\n```\n\n### Show schema\n```bash\npython3 scripts\u002Fquery.py --db production --schema\n```\n\n### Limit results\n```bash\npython3 scripts\u002Fquery.py --db production --query \"SELECT * FROM orders\" --limit 100\n```\n\n## Database Selection\n\nMatch user intent to database `description`:\n\n| User asks about | Look for description containing |\n|-----------------|--------------------------------|\n| users, accounts | users, accounts, customers |\n| orders, sales | orders, transactions, sales |\n| analytics, metrics | analytics, metrics, reports |\n| logs, events | logs, events, audit |\n\nIf unclear, run `--list` and ask user which database.\n\n## Safety Features\n\n- **Read-only session**: Connection uses MySQL `SET SESSION TRANSACTION READ ONLY` (primary protection)\n- **Query validation**: Only SELECT, SHOW, DESCRIBE, EXPLAIN, WITH queries allowed\n- **Single statement**: Multiple statements per query rejected\n- **SSL support**: Configurable SSL with CA, client cert, and key support\n- **Query timeout**: 30-second max_execution_time enforced (MySQL 5.7.8+)\n- **Memory protection**: Max 10,000 rows per query to prevent OOM\n- **Column width cap**: 100 char max per column for readable output\n- **Credential sanitization**: Error messages don't leak passwords\n\n## Troubleshooting\n\n| Error | Solution |\n|-------|----------|\n| Config not found | Create `connections.json` in skill directory |\n| Authentication failed | Check username\u002Fpassword in config |\n| Connection timeout | Verify host\u002Fport, check firewall\u002FVPN |\n| SSL error | Try `\"ssl_disabled\": true` for local databases |\n| Permission warning | Run `chmod 600 connections.json` |\n| max_execution_time not supported | Upgrade to MySQL 5.7.8+ or MariaDB 10.1.1+ |\n\n## Exit Codes\n\n- **0**: Success\n- **1**: Error (config missing, auth failed, invalid query, database error)\n\n## Workflow\n\n1. Run `--list` to show available databases\n2. Match user intent to database description\n3. Run `--tables` or `--schema` to explore structure\n4. Execute query with appropriate LIMIT\n","# MySQL Read-Only Query Skill\n\nExecute safe, read-only queries against configured MySQL databases.\n\n## Requirements\n\n- Python 3.8+\n- mysql-connector-python: `pip install -r requirements.txt`\n\n## Setup\n\nCreate `connections.json` in the skill directory or `~\u002F.config\u002Fclaude\u002Fmysql-connections.json`.\n\n**Security**: Set file permissions to `600` since it contains credentials:\n```bash\nchmod 600 connections.json\n```\n\n```json\n{\n  \"databases\": [\n    {\n      \"name\": \"production\",\n      \"description\": \"Main app database - users, orders, transactions\",\n      \"host\": \"db.example.com\",\n      \"port\": 3306,\n      \"database\": \"app_prod\",\n      \"user\": \"readonly_user\",\n      \"password\": \"your-password\",\n      \"ssl_disabled\": false\n    }\n  ]\n}\n```\n\n### Config Fields\n\n| Field | Required | Description |\n|-------|----------|-------------|\n| name | Yes | Identifier for the database (case-insensitive) |\n| description | Yes | What data this database contains (used for auto-selection) |\n| host | Yes | Database hostname |\n| port | No | Port number (default: 3306) |\n| database | Yes | Database name |\n| user | Yes | Username |\n| password | Yes | Password |\n| ssl_disabled | No | Set to `true` to disable SSL (default: false) |\n| ssl_ca | No | Path to CA certificate file |\n| ssl_cert | No | Path to client certificate file |\n| ssl_key | No | Path to client private key file |\n\n## Usage\n\n### List configured databases\n```bash\npython3 scripts\u002Fquery.py --list\n```\n\n### Query a database\n```bash\npython3 scripts\u002Fquery.py --db production --query \"SELECT * FROM users LIMIT 10\"\n```\n\n### List tables\n```bash\npython3 scripts\u002Fquery.py --db production --tables\n```\n\n### Show schema\n```bash\npython3 scripts\u002Fquery.py --db production --schema\n```\n\n### Limit results\n```bash\npython3 scripts\u002Fquery.py --db production --query \"SELECT * FROM orders\" --limit 100\n```\n\n## Database Selection\n\nMatch user intent to database `description`:\n\n| User asks about | Look for description containing |\n|-----------------|--------------------------------|\n| users, accounts | users, accounts, customers |\n| orders, sales | orders, transactions, sales |\n| analytics, metrics | analytics, metrics, reports |\n| logs, events | logs, events, audit |\n\nIf unclear, run `--list` and ask user which database.\n\n## Safety Features\n\n- **Read-only session**: Connection uses MySQL `SET SESSION TRANSACTION READ ONLY` (primary protection)\n- **Query validation**: Only SELECT, SHOW, DESCRIBE, EXPLAIN, WITH queries allowed\n- **Single statement**: Multiple statements per query rejected\n- **SSL support**: Configurable SSL with CA, client cert, and key support\n- **Query timeout**: 30-second max_execution_time enforced (MySQL 5.7.8+)\n- **Memory protection**: Max 10,000 rows per query to prevent OOM\n- **Column width cap**: 100 char max per column for readable output\n- **Credential sanitization**: Error messages don't leak passwords\n\n## Troubleshooting\n\n| Error | Solution |\n|-------|----------|\n| Config not found | Create `connections.json` in skill directory |\n| Authentication failed | Check username\u002Fpassword in config |\n| Connection timeout | Verify host\u002Fport, check firewall\u002FVPN |\n| SSL error | Try `\"ssl_disabled\": true` for local databases |\n| Permission warning | Run `chmod 600 connections.json` |\n| max_execution_time not supported | Upgrade to MySQL 5.7.8+ or MariaDB 10.1.1+ |\n\n## Exit Codes\n\n- **0**: Success\n- **1**: Error (config missing, auth failed, invalid query, database error)\n\n## Workflow\n\n1. Run `--list` to show available databases\n2. Match user intent to database description\n3. Run `--tables` or `--schema` to explore structure\n4. Execute query with appropriate LIMIT\n",{"name":5,"license":15,"metadata":51,"description":7},{"author":52,"version":53},"sanjay3290","1.0","main","d8518247cb8ab8b2dac57a6be33543ffd23b97c5","data-database\u002Fsanjay3290\u002Fmysql",0,"https:\u002F\u002Fgithub.com\u002Fmattonweb\u002Fai-assistant-foundry","https:\u002F\u002Fgithub.com\u002Fmattonweb","2026-05-29 08:42:23",{"source":8,"skillName":5,"commands":62,"prompt":72,"zipAvailable":73},[63,66,69],{"tool":64,"command":65},"npx","npx skills add mattonweb\u002Fai-assistant-foundry --skill mysql",{"tool":67,"command":68},"bunx","bunx skills add mattonweb\u002Fai-assistant-foundry --skill mysql",{"tool":70,"command":71},"pnpm","pnpm dlx skills add mattonweb\u002Fai-assistant-foundry --skill mysql","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmattonweb\u002Fai-assistant-foundry\u002Fblob\u002Fmain\u002Fdata-database\u002Fsanjay3290\u002Fmysql\u002FSKILL.md",true,[75,81,85,89],{"path":76,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":79,"sourceHtmlUrl":80},"connections.example.json","REFERENCE","参考文档",945,"https:\u002F\u002Fgithub.com\u002Fmattonweb\u002Fai-assistant-foundry\u002Fblob\u002Fmain\u002Fdata-database\u002Fsanjay3290\u002Fmysql\u002Fconnections.example.json",{"path":82,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":83,"sourceHtmlUrl":84},"README.md",1999,"https:\u002F\u002Fgithub.com\u002Fmattonweb\u002Fai-assistant-foundry\u002Fblob\u002Fmain\u002Fdata-database\u002Fsanjay3290\u002Fmysql\u002FREADME.md",{"path":86,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":87,"sourceHtmlUrl":88},"requirements.txt",34,"https:\u002F\u002Fgithub.com\u002Fmattonweb\u002Fai-assistant-foundry\u002Fblob\u002Fmain\u002Fdata-database\u002Fsanjay3290\u002Fmysql\u002Frequirements.txt",{"path":90,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":93,"sourceHtmlUrl":94},"scripts\u002Fquery.py","SCRIPT","脚本",10389,"https:\u002F\u002Fgithub.com\u002Fmattonweb\u002Fai-assistant-foundry\u002Fblob\u002Fmain\u002Fdata-database\u002Fsanjay3290\u002Fmysql\u002Fscripts\u002Fquery.py",[96,130,144,164,185,211],{"skillNo":97,"name":98,"nameZh":6,"description":99,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":100,"licenseFileUrl":6,"sourceHtmlUrl":101,"categories":102,"keywords":111,"publishedAt":46},"01M6P02DENRHN6KVGYC55FKASJ","writing-clearly-and-concisely","Use when writing prose humans will read—documentation, commit messages, error messages, explanations, reports, or UI text. Applies Strunk's timeless rules for clearer, stronger, more professional writing.","MIT","https:\u002F\u002Fgithub.com\u002Fmattonweb\u002Fai-assistant-foundry\u002Fblob\u002Fmain\u002Fwrite-technical\u002Fsoftaworks\u002Fwriting-clearly-and-concisely\u002FSKILL.md",[103,106],{"categoryNo":104,"categoryName":105,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000018","写作与文案",{"categoryNo":107,"categoryName":108,"taxonomyType":109,"taxonomyTypeDesc":110},"01JBSEEDCAT000000000000036","内容创作者","PROFESSION","适用职业",[112,113,114,115,28,116,117,118,119,120,121,39,122,123,124,125,126,127,128,129],"writing clearly and concisely","writing","concisely","text","more","timeless","error","professional","prose","reports","read","Rules","commit messages","messages","error messages","ui","documentation","commit",{"skillNo":131,"name":132,"nameZh":6,"description":133,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":100,"licenseFileUrl":6,"sourceHtmlUrl":134,"categories":135,"keywords":136,"publishedAt":46},"01M6P0286HZ8RWMFCCPC8HF7SC","crafting-effective-readmes","Use when writing or improving README files. Not all READMEs are the same — provides templates and guidance matched to your audience and project type.","https:\u002F\u002Fgithub.com\u002Fmattonweb\u002Fai-assistant-foundry\u002Fblob\u002Fmain\u002Fwrite-technical\u002Fsoftaworks\u002Fcrafting-effective-readmes\u002FSKILL.md",[],[137,138,113,139,140,39,141,142,143],"crafting effective readmes","README","templates","type","project","guidance","files",{"skillNo":145,"name":146,"nameZh":6,"description":147,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":100,"licenseFileUrl":6,"sourceHtmlUrl":148,"categories":149,"keywords":153,"publishedAt":46},"01M6P025A41BBTPWVTZ3GFQVG6","wiki-architect","You are a documentation architect that produces structured wiki catalogues and onboarding guides from codebases.","https:\u002F\u002Fgithub.com\u002Fmattonweb\u002Fai-assistant-foundry\u002Fblob\u002Fmain\u002Fwrite-technical\u002Fsickn33\u002Fwiki-architect\u002FSKILL.md",[150],{"categoryNo":151,"categoryName":152,"taxonomyType":109,"taxonomyTypeDesc":110},"01JBSEEDCAT000000000000038","人力资源",[154,155,156,157,158,159,160,161,162,163,128],"wiki","architect","wiki architect","unknown","you","documentation architect","guides","structured","community","onboarding",{"skillNo":165,"name":166,"nameZh":6,"description":167,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":100,"licenseFileUrl":6,"sourceHtmlUrl":168,"categories":169,"keywords":170,"publishedAt":46},"01M6P01NSKPXP77NWB4K0PXRK5","readme","You are an expert technical writer creating comprehensive project documentation. Your goal is to write a README.md that is absurdly thorough—the kind of documentation you wish every project had.","https:\u002F\u002Fgithub.com\u002Fmattonweb\u002Fai-assistant-foundry\u002Fblob\u002Fmain\u002Fwrite-technical\u002Fsickn33\u002Freadme\u002FSKILL.md",[],[138,171,172,173,158,174,175,141,176,177,54,178,179,180,181,182,128,183,184],"project documentation","tree","kind","expert","github","wish","writer","goal","write","technical writer","technical","https","write a readme","safe",{"skillNo":186,"name":187,"nameZh":6,"description":188,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":100,"licenseFileUrl":6,"sourceHtmlUrl":189,"categories":190,"keywords":191,"publishedAt":46},"01M6P01GP0NEN8KT3A3SA6ZFVE","ubiquitous-language","Extract a DDD-style ubiquitous language glossary from the current conversation, flagging ambiguities and proposing canonical terms. Saves to UBIQUITOUS_LANGUAGE.md. Use when user wants to define domain terms, build a glossary, harden terminology, create a ubiquitous language, or mentions \"domain model\" or \"DDD\".","https:\u002F\u002Fgithub.com\u002Fmattonweb\u002Fai-assistant-foundry\u002Fblob\u002Fmain\u002Fwrite-technical\u002Fmattpocock\u002Fubiquitous-language\u002FSKILL.md",[],[192,193,39,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210],"ubiquitous language","language","extract","user","glossary","model","terms","ddd","create","build","true","canonical","style","define","harden","domain model","domain","terminology","conversation",{"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":100,"licenseFileUrl":6,"sourceHtmlUrl":215,"categories":216,"keywords":219,"publishedAt":46},"01M6P01BJBP9XP4TDRT7QD1ZVA","technical-writing-style","Enforce clear, direct writing in software development documents including OKRs, PRDs, tech specs, architecture decision records (ADRs), git commit messages, PR descriptions, READMEs, changelogs, runbooks, incident postmortems, API docs, and onboarding guides. Trigger whenever a user asks to write, edit, revise, or review any of these document types. Also trigger when the user says writing \"sounds like AI\", \"feels robotic\", \"needs polish\", or asks to \"make it sound more natural\" in the context of technical or professional prose. Do not trigger for fiction, poetry, creative writing, academic papers, or legal documents unless the user explicitly asks for a more natural tone.","https:\u002F\u002Fgithub.com\u002Fmattonweb\u002Fai-assistant-foundry\u002Fblob\u002Fmain\u002Fwrite-technical\u002Fmattnebr\u002Ftechnical-writing-style\u002FSKILL.md",[217,218],{"categoryNo":104,"categoryName":105,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":107,"categoryName":108,"taxonomyType":109,"taxonomyTypeDesc":110},[220,221,204,181,113,222,119,223,224,225,226,227,228,229,230,125,231,232,129,233],"writing style","technical writing style","technical writing","papers","types","runbooks","software development","incident","Poetry","decision","api","documents","architecture","review"]