[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6C2DP81DY28MKM0RKFWJQHX":3,"skill-same:01M6C2DP81DY28MKM0RKFWJQHX":81},{"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":38,"linkOnly":39,"markdownContent":40,"markdownBody":41,"frontMatter":42,"refName":52,"commitSha":53,"skillDirectory":54,"forksCount":55,"repositoryHtmlUrl":56,"repositoryHomepageUrl":57,"ownerHtmlUrl":58,"ownerBlogUrl":6,"ownerDescription":59,"updatedAt":60,"install":61,"resources":74},"01M6C2DP81DY28MKM0RKFWJQHX","skill-commit",null,"Creates professional git commits following conventional-commits format. Trigger: When creating commits, after completing code changes, when user asks to commit.","davidleonmayor\u002Fproyecto-grado-unimayor","davidleonmayor","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F142275316?v=4","01M6C2D07NAZV2VQE96MD4HWYW","David León","01M6C2D0BN278C193FYXQB3TME",3,"Apache-2.0","https:\u002F\u002Fgithub.com\u002Fdavidleonmayor\u002Fproyecto-grado-unimayor\u002Fblob\u002Fmain\u002Fskills\u002Fskill-commit\u002FSKILL.md",[18,23],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000009","前端开发","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[27,28,29,30,31,32,33,34,35,36,37],"commit","skill commit","frontend","git commit","code","git","commits","format","user","landing","backend","2026-11-10 10:12:30",false,"---\nname: skill-commit\ndescription: >\n  Creates professional git commits following conventional-commits format.\n  Trigger: When creating commits, after completing code changes, when user asks to commit.\nlicense: Apache-2.0\nmetadata:\n  author: davidleonmayor\n  version: \"1.0\"\n  scope: [root, backend, frontend, landing, skills]\n  auto_invoke:\n    - \"Creating a git commit\"\n    - \"Committing changes\"\n---\n\n## Critical Rules\n\n- ALWAYS use conventional-commits format: `type(scope): description`\n- ALWAYS keep the first line under 72 characters\n- ALWAYS ask for user confirmation before committing\n- NEVER be overly specific (avoid counts like \"6 subsections\", \"3 files\")\n- NEVER include implementation details in the title\n- NEVER use `-n` flag unless user explicitly requests it\n- NEVER use `git push --force` or `git push -f` (destructive, rewrites history)\n- NEVER proactively offer to commit - wait for user to explicitly request it\n\n---\n\n## Commit Format\n\n```\ntype(scope): concise description\n\n- Key change 1\n- Key change 2\n- Key change 3\n```\n\n### Types\n\n| Type | Use When |\n|------|----------|\n| `feat` | New feature or functionality |\n| `fix` | Bug fix |\n| `docs` | Documentation only |\n| `chore` | Maintenance, dependencies, configs |\n| `refactor` | Code change without feature\u002Ffix |\n| `test` | Adding or updating tests |\n| `perf` | Performance improvement |\n| `style` | Formatting, no code change |\n| `ci` | CI\u002FCD pipeline changes |\n\n### Scopes\n\n| Scope | When |\n|-------|------|\n| `frontend` | Changes in `frontend\u002F` |\n| `backend` | Changes in `backend\u002F` |\n| `landing` | Changes in `landing\u002F` |\n| `skills` | Changes in `skills\u002F` |\n| `ci` | Changes in `.github\u002F` |\n| `docs` | Documentation changes |\n| `UI` | UI-only changes across frontend\u002Flanding |\n| `API` | API-only changes in backend |\n| `UI\u002FAPI` | Changes spanning both frontend and backend |\n| *omit* | Multiple scopes or root-level |\n\n---\n\n## Good vs Bad Examples\n\n### Title Line\n\n```\n# GOOD - Concise and clear\nfeat(frontend): add student registration form\nfix(backend): resolve JWT validation on refresh\nrefactor(frontend): implement scalable modular architecture\nchore(skills): add commit skill configuration\nfeat(UI\u002FAPI): connect teachers section with backend\n\n# BAD - Too specific or verbose\nfeat(frontend): add student registration form with 5 fields and email validation using regex\nfix(backend): fix the bug in auth controller on line 45\nchore(skills): add comprehensive commit documentation covering 8 sections\n```\n\n### Body (Bullet Points)\n\n```\n# GOOD - High-level changes\n- Add student CRUD endpoints\n- Connect frontend forms with backend API\n- Update authentication middleware\n\n# BAD - Too detailed\n- Add POST \u002Fapi\u002Fstudents with name, email, code fields\n- Update lines 45-67 in StudentsPage.tsx\n- Add validateJwt middleware to 3 routes\n```\n\n---\n\n## Workflow\n\n1. **Analyze changes**\n   ```bash\n   git status\n   git diff --stat HEAD\n   git log -3 --oneline  # Check recent commit style\n   ```\n\n2. **Draft commit message**\n   - Choose appropriate type and scope\n   - Write concise title (\u003C 72 chars)\n   - Add 2-5 bullet points for significant changes\n\n3. **Present to user for confirmation**\n   - Show files to be committed\n   - Show proposed message\n   - Wait for explicit confirmation\n\n4. **Execute commit**\n   ```bash\n   git add \u003Cfiles>\n   git commit -m \"$(cat \u003C\u003C'EOF'\n   type(scope): description\n\n   - Change 1\n   - Change 2\n   EOF\n   )\"\n   ```\n\n---\n\n## Decision Tree\n\n```\nSingle file changed?\n├─ Yes → May omit body, title only\n└─ No → Include body with key changes\n\nMultiple scopes affected?\n├─ Yes → Omit scope: `feat: description`\n│        Or use combined scope: `feat(UI\u002FAPI): description`\n└─ No → Include scope: `feat(frontend): description`\n\nFixing a bug?\n├─ User-facing → fix(scope): description\n└─ Internal\u002Fdev → chore(scope): fix description\n\nAdding documentation?\n├─ Code docs (docstrings) → Part of feat\u002Ffix\n└─ Standalone docs → docs: or docs(scope):\n```\n\n---\n\n## Commands\n\n```bash\n# Check current state\ngit status\ngit diff --stat HEAD\n\n# Standard commit\ngit add \u003Cfiles>\ngit commit -m \"type(scope): description\"\n\n# Multi-line commit\ngit commit -m \"$(cat \u003C\u003C'EOF'\ntype(scope): description\n\n- Change 1\n- Change 2\nEOF\n)\"\n\n# Amend last commit (same message)\ngit commit --amend --no-edit\n\n# Amend with new message\ngit commit --amend -m \"new message\"\n```\n","## Critical Rules\n\n- ALWAYS use conventional-commits format: `type(scope): description`\n- ALWAYS keep the first line under 72 characters\n- ALWAYS ask for user confirmation before committing\n- NEVER be overly specific (avoid counts like \"6 subsections\", \"3 files\")\n- NEVER include implementation details in the title\n- NEVER use `-n` flag unless user explicitly requests it\n- NEVER use `git push --force` or `git push -f` (destructive, rewrites history)\n- NEVER proactively offer to commit - wait for user to explicitly request it\n\n---\n\n## Commit Format\n\n```\ntype(scope): concise description\n\n- Key change 1\n- Key change 2\n- Key change 3\n```\n\n### Types\n\n| Type | Use When |\n|------|----------|\n| `feat` | New feature or functionality |\n| `fix` | Bug fix |\n| `docs` | Documentation only |\n| `chore` | Maintenance, dependencies, configs |\n| `refactor` | Code change without feature\u002Ffix |\n| `test` | Adding or updating tests |\n| `perf` | Performance improvement |\n| `style` | Formatting, no code change |\n| `ci` | CI\u002FCD pipeline changes |\n\n### Scopes\n\n| Scope | When |\n|-------|------|\n| `frontend` | Changes in `frontend\u002F` |\n| `backend` | Changes in `backend\u002F` |\n| `landing` | Changes in `landing\u002F` |\n| `skills` | Changes in `skills\u002F` |\n| `ci` | Changes in `.github\u002F` |\n| `docs` | Documentation changes |\n| `UI` | UI-only changes across frontend\u002Flanding |\n| `API` | API-only changes in backend |\n| `UI\u002FAPI` | Changes spanning both frontend and backend |\n| *omit* | Multiple scopes or root-level |\n\n---\n\n## Good vs Bad Examples\n\n### Title Line\n\n```\n# GOOD - Concise and clear\nfeat(frontend): add student registration form\nfix(backend): resolve JWT validation on refresh\nrefactor(frontend): implement scalable modular architecture\nchore(skills): add commit skill configuration\nfeat(UI\u002FAPI): connect teachers section with backend\n\n# BAD - Too specific or verbose\nfeat(frontend): add student registration form with 5 fields and email validation using regex\nfix(backend): fix the bug in auth controller on line 45\nchore(skills): add comprehensive commit documentation covering 8 sections\n```\n\n### Body (Bullet Points)\n\n```\n# GOOD - High-level changes\n- Add student CRUD endpoints\n- Connect frontend forms with backend API\n- Update authentication middleware\n\n# BAD - Too detailed\n- Add POST \u002Fapi\u002Fstudents with name, email, code fields\n- Update lines 45-67 in StudentsPage.tsx\n- Add validateJwt middleware to 3 routes\n```\n\n---\n\n## Workflow\n\n1. **Analyze changes**\n   ```bash\n   git status\n   git diff --stat HEAD\n   git log -3 --oneline  # Check recent commit style\n   ```\n\n2. **Draft commit message**\n   - Choose appropriate type and scope\n   - Write concise title (\u003C 72 chars)\n   - Add 2-5 bullet points for significant changes\n\n3. **Present to user for confirmation**\n   - Show files to be committed\n   - Show proposed message\n   - Wait for explicit confirmation\n\n4. **Execute commit**\n   ```bash\n   git add \u003Cfiles>\n   git commit -m \"$(cat \u003C\u003C'EOF'\n   type(scope): description\n\n   - Change 1\n   - Change 2\n   EOF\n   )\"\n   ```\n\n---\n\n## Decision Tree\n\n```\nSingle file changed?\n├─ Yes → May omit body, title only\n└─ No → Include body with key changes\n\nMultiple scopes affected?\n├─ Yes → Omit scope: `feat: description`\n│        Or use combined scope: `feat(UI\u002FAPI): description`\n└─ No → Include scope: `feat(frontend): description`\n\nFixing a bug?\n├─ User-facing → fix(scope): description\n└─ Internal\u002Fdev → chore(scope): fix description\n\nAdding documentation?\n├─ Code docs (docstrings) → Part of feat\u002Ffix\n└─ Standalone docs → docs: or docs(scope):\n```\n\n---\n\n## Commands\n\n```bash\n# Check current state\ngit status\ngit diff --stat HEAD\n\n# Standard commit\ngit add \u003Cfiles>\ngit commit -m \"type(scope): description\"\n\n# Multi-line commit\ngit commit -m \"$(cat \u003C\u003C'EOF'\ntype(scope): description\n\n- Change 1\n- Change 2\nEOF\n)\"\n\n# Amend last commit (same message)\ngit commit --amend --no-edit\n\n# Amend with new message\ngit commit --amend -m \"new message\"\n```\n",{"name":5,"license":15,"metadata":43,"description":51},{"scope":44,"author":9,"version":47,"auto_invoke":48},[45,37,29,36,46],"root","skills","1.0",[49,50],"Creating a git commit","Committing changes","Creates professional git commits following conventional-commits format. Trigger: When creating commits, after completing code changes, when user asks to commit.\n","main","3d76dc018cdded158c4f49df5edb56829229d265","skills\u002Fskill-commit",0,"https:\u002F\u002Fgithub.com\u002Fdavidleonmayor\u002Fproyecto-grado-unimayor","https:\u002F\u002Fproyecto-grado-unimayor-8rtknmpjt-davidleonmayors-projects.vercel.app\u002Fadmin","https:\u002F\u002Fgithub.com\u002Fdavidleonmayor","Full-stack developer focused on microservices backend","2026-11-11 00:05:51",{"source":8,"skillName":5,"commands":62,"prompt":72,"zipAvailable":73},[63,66,69],{"tool":64,"command":65},"npx","npx skills add davidleonmayor\u002Fproyecto-grado-unimayor --skill skill-commit",{"tool":67,"command":68},"bunx","bunx skills add davidleonmayor\u002Fproyecto-grado-unimayor --skill skill-commit",{"tool":70,"command":71},"pnpm","pnpm dlx skills add davidleonmayor\u002Fproyecto-grado-unimayor --skill skill-commit","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fdavidleonmayor\u002Fproyecto-grado-unimayor\u002Fblob\u002Fmain\u002Fskills\u002Fskill-commit\u002FSKILL.md",true,[75],{"path":76,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":79,"sourceHtmlUrl":80},"references\u002Fdetails.md","REFERENCE","参考文档",12253,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-hunt-ssrf\u002Freferences\u002Fdetails.md",[82,96,116,128,149,170],{"skillNo":83,"name":84,"nameZh":6,"description":85,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":86,"categories":87,"keywords":89,"publishedAt":38},"01M6C2DVB157H69PFWB1XXBVZS","skill-sync","Synchronizes skill metadata to AGENTS.md Auto-invoke sections. Trigger: When syncing skill metadata to AGENTS.md.","https:\u002F\u002Fgithub.com\u002Fdavidleonmayor\u002Fproyecto-grado-unimayor\u002Fblob\u002Fmain\u002Fskills\u002Fskill-sync\u002FSKILL.md",[88],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[90,91,92,93,94,95],"skill sync","sync","metadata","cloud","prowler","auto",{"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":15,"licenseFileUrl":6,"sourceHtmlUrl":100,"categories":101,"keywords":103,"publishedAt":38},"01M6C2DRSV8QKEFA2J94YQKWK1","skill-creator","Creates new AI agent skills following the Agent Skills spec. Trigger: When user asks to create a new skill, add agent instructions, or document patterns for AI.","https:\u002F\u002Fgithub.com\u002Fdavidleonmayor\u002Fproyecto-grado-unimayor\u002Fblob\u002Fmain\u002Fskills\u002Fskill-creator\u002FSKILL.md",[102],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[104,105,106,107,93,94,108,109,110,111,112,113,35,114,115],"skill creator","ai agent","spec","create","Bash","grep","read","write","edit","instructions","webfetch","add agent",{"skillNo":117,"name":118,"nameZh":6,"description":119,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":120,"categories":121,"keywords":122,"publishedAt":38},"01M6C2DMHK8HST60TFQHMK8D94","project-info","General monorepo structure and component overview. Trigger: When AI needs project context or component locations.","https:\u002F\u002Fgithub.com\u002Fdavidleonmayor\u002Fproyecto-grado-unimayor\u002Fblob\u002Fmain\u002Fskills\u002Fproject-info\u002FSKILL.md",[],[123,124,125,126,127],"project info","component","monorepo","context","overview",{"skillNo":129,"name":130,"nameZh":6,"description":131,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":132,"categories":133,"keywords":140,"publishedAt":38},"01M6C2DHT1Q0Q87WRYBCBH3QHG","frontend-context","Frontend architecture, patterns and conventions for the Next.js 15 app. Trigger: When working on frontend code, components, pages, or API integration.","https:\u002F\u002Fgithub.com\u002Fdavidleonmayor\u002Fproyecto-grado-unimayor\u002Fblob\u002Fmain\u002Fskills\u002Ffrontend-context\u002FSKILL.md",[134,135],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":136,"categoryName":137,"taxonomyType":138,"taxonomyTypeDesc":139},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[141,126,29,142,143,144,31,145,146,147,148],"frontend context","js","components","architecture","frontend architecture","integration","api","Next.js",{"skillNo":150,"name":151,"nameZh":6,"description":152,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":153,"categories":154,"keywords":161,"publishedAt":38},"01M6C2DESFJR14Z3G38F4KZCSG","express-mocks-testing","Unit testing pattern for Express 5 controllers using node-mocks-http and @prisma\u002Fclient mocks. Trigger: When writing unit tests for backend controllers, testing Express routes, or avoiding Supertest\u002FServer instantiation.","https:\u002F\u002Fgithub.com\u002Fdavidleonmayor\u002Fproyecto-grado-unimayor\u002Fblob\u002Fmain\u002Fskills\u002Fexpress-mocks-testing\u002FSKILL.md",[155,158],{"categoryNo":156,"categoryName":157,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":159,"categoryName":160,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000010","后端与接口",[162,163,164,165,37,166,167,168,169],"express mocks testing","testing","node","programming","server","http","unit tests","writing",{"skillNo":171,"name":172,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":173,"licenseFileUrl":6,"sourceHtmlUrl":174,"categories":175,"keywords":177,"publishedAt":38},"01M6C2DCXFSYWZCQWMPGWWQJQ7","backend-service","MIT","https:\u002F\u002Fgithub.com\u002Fdavidleonmayor\u002Fproyecto-grado-unimayor\u002Fblob\u002Fmain\u002Fskills\u002Fbackend-service\u002FSKILL.md",[176],{"categoryNo":159,"categoryName":160,"taxonomyType":21,"taxonomyTypeDesc":22},[178,37],"backend service"]