[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M70HT78RR05GMT3NZ2GD3T1P":3,"skill-same:01M70HT78RR05GMT3NZ2GD3T1P":88},{"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":28,"publishedAt":45,"linkOnly":46,"markdownContent":47,"markdownBody":48,"frontMatter":49,"refName":50,"commitSha":51,"skillDirectory":52,"forksCount":53,"repositoryHtmlUrl":54,"repositoryHomepageUrl":55,"ownerHtmlUrl":56,"ownerBlogUrl":57,"ownerDescription":58,"updatedAt":59,"install":60,"resources":73},"01M70HT78RR05GMT3NZ2GD3T1P","coding-conventions",null,"Apply consistent security, performance, and accessibility standards across all recommendations. Use when reviewing code, designing features, or validating implementations. Cross-cutting skill for all agents.","shengdabai\u002FTony-Claude-Code-Skills","shengdabai","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F116417419?v=4","01M70F6D2WY5PQV5A92BKYJQEW","Tony Sheng","01M70F6D3GAAAYZ5H4CC1G8VXM",3,"MIT","https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002F_collections\u002Frsmdt-the-startup\u002Fplugins\u002Fteam\u002Fskills\u002Fcross-cutting\u002Fcoding-conventions\u002FSKILL.md",[18,23],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":26,"taxonomyTypeDesc":27},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44],"coding conventions","conventions","coding","standards","for","performance","use","reviewing code","when","apply","code","across","recommendations","features","accessibility","security","2026-11-10 10:12:30",false,"---\nname: coding-conventions\ndescription: Apply consistent security, performance, and accessibility standards across all recommendations. Use when reviewing code, designing features, or validating implementations. Cross-cutting skill for all agents.\n---\n\n# Best Practices\n\nA cross-cutting skill that enforces consistent security, performance, and quality standards across all agent recommendations. This skill provides actionable checklists aligned with industry standards.\n\n## When to Use\n\n- Reviewing code for security vulnerabilities\n- Validating performance characteristics of implementations\n- Ensuring accessibility compliance in UI components\n- Designing error handling strategies\n- Auditing existing systems for quality gaps\n\n## Core Domains\n\n### Security\n\nCovers common vulnerability prevention aligned with OWASP Top 10. Apply these checks to any code that handles user input, authentication, data storage, or external communications.\n\nSee: `checklists\u002Fsecurity-checklist.md`\n\n### Performance\n\nCovers optimization patterns for frontend, backend, and database operations. Apply these checks when performance is a concern or during code review.\n\nSee: `checklists\u002Fperformance-checklist.md`\n\n### Accessibility\n\nCovers WCAG 2.1 Level AA compliance. Apply these checks to all user-facing components to ensure inclusive design.\n\nSee: `checklists\u002Faccessibility-checklist.md`\n\n## Error Handling Patterns\n\nAll agents should recommend these error handling approaches:\n\n### Pattern 1: Fail Fast at Boundaries\n\nValidate inputs at system boundaries and fail immediately with clear error messages. Do not allow invalid data to propagate through the system.\n\n```\n\u002F\u002F At API boundary\nfunction handleRequest(input) {\n  const validation = validateInput(input);\n  if (!validation.valid) {\n    throw new ValidationError(validation.errors);\n  }\n  \u002F\u002F Process validated input\n}\n```\n\n### Pattern 2: Specific Error Types\n\nCreate domain-specific error types that carry context about what failed and why. Generic errors lose valuable debugging information.\n\n```\nclass PaymentDeclinedError extends Error {\n  constructor(reason, transactionId) {\n    super(`Payment declined: ${reason}`);\n    this.reason = reason;\n    this.transactionId = transactionId;\n  }\n}\n```\n\n### Pattern 3: User-Safe Messages\n\nNever expose internal error details to users. Log full context internally, present sanitized messages externally.\n\n```\ntry {\n  await processPayment(order);\n} catch (error) {\n  logger.error('Payment failed', {\n    error,\n    orderId: order.id,\n    userId: user.id\n  });\n  throw new UserFacingError('Payment could not be processed. Please try again.');\n}\n```\n\n### Pattern 4: Graceful Degradation\n\nWhen non-critical operations fail, degrade gracefully rather than failing entirely. Define what is critical vs. optional.\n\n```\nasync function loadDashboard() {\n  const [userData, analytics, recommendations] = await Promise.allSettled([\n    fetchUserData(),      \u002F\u002F Critical - fail if missing\n    fetchAnalytics(),     \u002F\u002F Optional - show placeholder\n    fetchRecommendations() \u002F\u002F Optional - hide section\n  ]);\n\n  if (userData.status === 'rejected') {\n    throw new Error('Cannot load dashboard');\n  }\n\n  return {\n    user: userData.value,\n    analytics: analytics.value ?? null,\n    recommendations: recommendations.value ?? []\n  };\n}\n```\n\n### Pattern 5: Retry with Backoff\n\nFor transient failures (network, rate limits), implement exponential backoff with maximum attempts.\n\n```\nasync function fetchWithRetry(url, maxAttempts = 3) {\n  for (let attempt = 1; attempt \u003C= maxAttempts; attempt++) {\n    try {\n      return await fetch(url);\n    } catch (error) {\n      if (attempt === maxAttempts) throw error;\n      await sleep(Math.pow(2, attempt) * 100); \u002F\u002F 200ms, 400ms, 800ms\n    }\n  }\n}\n```\n\n## Best Practices\n\n- Apply security checks before performance optimization\n- Make accessibility a default, not an afterthought\n- Use checklists during code review, not just at the end\n- Document exceptions to standards with rationale\n- Automate checks where possible (linting, testing)\n\n## References\n\n- `checklists\u002Fsecurity-checklist.md` - OWASP-aligned security checks\n- `checklists\u002Fperformance-checklist.md` - Performance optimization checklist\n- `checklists\u002Faccessibility-checklist.md` - WCAG 2.1 AA compliance checklist\n","# Best Practices\n\nA cross-cutting skill that enforces consistent security, performance, and quality standards across all agent recommendations. This skill provides actionable checklists aligned with industry standards.\n\n## When to Use\n\n- Reviewing code for security vulnerabilities\n- Validating performance characteristics of implementations\n- Ensuring accessibility compliance in UI components\n- Designing error handling strategies\n- Auditing existing systems for quality gaps\n\n## Core Domains\n\n### Security\n\nCovers common vulnerability prevention aligned with OWASP Top 10. Apply these checks to any code that handles user input, authentication, data storage, or external communications.\n\nSee: `checklists\u002Fsecurity-checklist.md`\n\n### Performance\n\nCovers optimization patterns for frontend, backend, and database operations. Apply these checks when performance is a concern or during code review.\n\nSee: `checklists\u002Fperformance-checklist.md`\n\n### Accessibility\n\nCovers WCAG 2.1 Level AA compliance. Apply these checks to all user-facing components to ensure inclusive design.\n\nSee: `checklists\u002Faccessibility-checklist.md`\n\n## Error Handling Patterns\n\nAll agents should recommend these error handling approaches:\n\n### Pattern 1: Fail Fast at Boundaries\n\nValidate inputs at system boundaries and fail immediately with clear error messages. Do not allow invalid data to propagate through the system.\n\n```\n\u002F\u002F At API boundary\nfunction handleRequest(input) {\n  const validation = validateInput(input);\n  if (!validation.valid) {\n    throw new ValidationError(validation.errors);\n  }\n  \u002F\u002F Process validated input\n}\n```\n\n### Pattern 2: Specific Error Types\n\nCreate domain-specific error types that carry context about what failed and why. Generic errors lose valuable debugging information.\n\n```\nclass PaymentDeclinedError extends Error {\n  constructor(reason, transactionId) {\n    super(`Payment declined: ${reason}`);\n    this.reason = reason;\n    this.transactionId = transactionId;\n  }\n}\n```\n\n### Pattern 3: User-Safe Messages\n\nNever expose internal error details to users. Log full context internally, present sanitized messages externally.\n\n```\ntry {\n  await processPayment(order);\n} catch (error) {\n  logger.error('Payment failed', {\n    error,\n    orderId: order.id,\n    userId: user.id\n  });\n  throw new UserFacingError('Payment could not be processed. Please try again.');\n}\n```\n\n### Pattern 4: Graceful Degradation\n\nWhen non-critical operations fail, degrade gracefully rather than failing entirely. Define what is critical vs. optional.\n\n```\nasync function loadDashboard() {\n  const [userData, analytics, recommendations] = await Promise.allSettled([\n    fetchUserData(),      \u002F\u002F Critical - fail if missing\n    fetchAnalytics(),     \u002F\u002F Optional - show placeholder\n    fetchRecommendations() \u002F\u002F Optional - hide section\n  ]);\n\n  if (userData.status === 'rejected') {\n    throw new Error('Cannot load dashboard');\n  }\n\n  return {\n    user: userData.value,\n    analytics: analytics.value ?? null,\n    recommendations: recommendations.value ?? []\n  };\n}\n```\n\n### Pattern 5: Retry with Backoff\n\nFor transient failures (network, rate limits), implement exponential backoff with maximum attempts.\n\n```\nasync function fetchWithRetry(url, maxAttempts = 3) {\n  for (let attempt = 1; attempt \u003C= maxAttempts; attempt++) {\n    try {\n      return await fetch(url);\n    } catch (error) {\n      if (attempt === maxAttempts) throw error;\n      await sleep(Math.pow(2, attempt) * 100); \u002F\u002F 200ms, 400ms, 800ms\n    }\n  }\n}\n```\n\n## Best Practices\n\n- Apply security checks before performance optimization\n- Make accessibility a default, not an afterthought\n- Use checklists during code review, not just at the end\n- Document exceptions to standards with rationale\n- Automate checks where possible (linting, testing)\n\n## References\n\n- `checklists\u002Fsecurity-checklist.md` - OWASP-aligned security checks\n- `checklists\u002Fperformance-checklist.md` - Performance optimization checklist\n- `checklists\u002Faccessibility-checklist.md` - WCAG 2.1 AA compliance checklist\n",{"name":5,"description":7},"main","7850740bd837adb32f0a109ab2af82482196c6f2","skills\u002F_collections\u002Frsmdt-the-startup\u002Fplugins\u002Fteam\u002Fskills\u002Fcross-cutting\u002Fcoding-conventions",1,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills","https:\u002F\u002Fzturnsgo.com","https:\u002F\u002Fgithub.com\u002Fshengdabai","https:\u002F\u002Fzturnsgo.com\u002F","AI × education creator — producer, not consumer. Taught 6,000+ learners; shipping learning tools & daily essays with Claude Code, practicing @xiaolai's way 🥋","2026-11-01 21:28:23",{"source":8,"skillName":5,"commands":61,"prompt":71,"zipAvailable":72},[62,65,68],{"tool":63,"command":64},"npx","npx skills add shengdabai\u002FTony-Claude-Code-Skills --skill coding-conventions",{"tool":66,"command":67},"bunx","bunx skills add shengdabai\u002FTony-Claude-Code-Skills --skill coding-conventions",{"tool":69,"command":70},"pnpm","pnpm dlx skills add shengdabai\u002FTony-Claude-Code-Skills --skill coding-conventions","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002F_collections\u002Frsmdt-the-startup\u002Fplugins\u002Fteam\u002Fskills\u002Fcross-cutting\u002Fcoding-conventions\u002FSKILL.md",true,[74,80,84],{"path":75,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":78,"sourceHtmlUrl":79},"checklists\u002Faccessibility-checklist.md","REFERENCE","参考文档",5874,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002F_collections\u002Frsmdt-the-startup\u002Fplugins\u002Fteam\u002Fskills\u002Fcross-cutting\u002Fcoding-conventions\u002Fchecklists\u002Faccessibility-checklist.md",{"path":81,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":82,"sourceHtmlUrl":83},"checklists\u002Fperformance-checklist.md",5034,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002F_collections\u002Frsmdt-the-startup\u002Fplugins\u002Fteam\u002Fskills\u002Fcross-cutting\u002Fcoding-conventions\u002Fchecklists\u002Fperformance-checklist.md",{"path":85,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":86,"sourceHtmlUrl":87},"checklists\u002Fsecurity-checklist.md",5149,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002F_collections\u002Frsmdt-the-startup\u002Fplugins\u002Fteam\u002Fskills\u002Fcross-cutting\u002Fcoding-conventions\u002Fchecklists\u002Fsecurity-checklist.md",[89,106,133,158,180,200],{"skillNo":90,"name":91,"nameZh":6,"description":92,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":93,"categories":94,"keywords":98,"publishedAt":45},"01M70P17DAD4C1C47NPH6A96EM","xiaolai-methodology","以李笑来(Li Xiaolai)的思考方式、方法论与表达风格,为用户做全方位 1-on-1 教练指导,覆盖创业、赚钱、投资、学习、自学、读书写作、用 AI、以及人生心态与自我管理。当用户提到 \"李笑来\"、\"笑来\"、\"笑来老师\"、\"扮演李笑来\"、\"找笑来聊聊\"、\"笑来怎么看\"、\"xiaolai\"、\"把时间当作朋友\"、\"通往财富自由之路\"、\"定投改变命运\"、\"韭菜的自我修养\"、\"自学是门手艺\"、\"让时间陪你慢慢变富\"、\"七年就是一辈子\"、\"元认知\"、\"活在未来\"、\"复利\u002F长期主义\"、\"践行\"、\"痴迷改进\"、\"个人商业模式\u002F出售时间\"、\"睡后收入\"、\"定投\"、\"财富自由\"、\"操作系统升级\"、\"最少必要知识\"、\"北极星提示词\"、\"用 AI 该怎么学\u002F思考\" 等任一触发词,或当用户带着关于创业\u002F赚钱\u002F投资\u002F学习\u002F职业\u002F重大人生决策的困惑、希望被人用笑来式的「逻辑 + 大白话 + 类比 + 重新定义 + 践行导向」来点醒和指导时,自动进入李笑来教练模式。","https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fxiaolai-methodology\u002FSKILL.md",[95],{"categoryNo":96,"categoryName":97,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000018","写作与文案",[99,100,101,102,103,104,105],"methodology","xiaolai","xiaolai methodology","朋友","投资","writing","收入",{"skillNo":107,"name":108,"nameZh":6,"description":109,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":110,"categories":111,"keywords":114,"publishedAt":45},"01M70P13NB9YP7ACJR1S861CDS","zread","Produce and consume a wiki-style knowledge base for a code repository via the `zread` CLI and its on-disk output under `.\u002F.zread\u002Fwiki\u002F`. Use this skill whenever the user wants to understand, onboard onto, explore, summarize, map, or get an overview of an unfamiliar codebase; asks for architecture docs, a project wiki, a repo walkthrough, module\u002Fpackage explanations, or \"what does this repo do\"; wants to generate, regenerate, resume, browse, or serve code documentation locally; or mentions zread \u002F zread.ai directly. Also use it proactively before diving into a large unknown repo — if `.\u002F.zread\u002Fwiki\u002Fcurrent` exists, read the generated pages instead of crawling source file-by-file; if it doesn't, consider offering to run `zread generate`. The trigger is the intent (understand a codebase through generated docs), not the literal word \"zread\".","https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fzread\u002FSKILL.md",[112,113],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":24,"categoryName":25,"taxonomyType":26,"taxonomyTypeDesc":27},[108,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,39,131,132],"knowledge","wiki","explore","walkthrough","project","get","knowledge base","run","generate","intent","cli","map","documentation","project wiki","disk","architecture","unknown","generated",{"skillNo":134,"name":135,"nameZh":6,"description":136,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":137,"categories":138,"keywords":143,"publishedAt":45},"01M70P10S4SWMZQ8BJAFBFDRW3","youtube","Launch the YouTube Creator Agent to auto-generate videos.\nUse when: user types \u002Fyoutube, wants to create YouTube videos,\ngenerate video content, or upload to YouTube.\nKeywords: youtube, video, 视频, 创作视频, 发布视频","https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fyoutube\u002FSKILL.md",[139,140],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":141,"categoryName":142,"taxonomyType":26,"taxonomyTypeDesc":27},"01JBSEEDCAT000000000000036","内容创作者",[135,144,145,146,147,148,149,150,123,151,152,153,37,35,154,155,156,157],"user","content","视频","creator","generate video","videos","launch","video content","create","upload","auto","types","Video","创作",{"skillNo":159,"name":160,"nameZh":6,"description":161,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":162,"categories":163,"keywords":165,"publishedAt":45},"01M70P0YE95D8BACZCGV8BK90K","youtube-script-sync","Sync, update, or optimize Tony's GetNote knowledge base `Youtube视频逐字稿` by turning each parent recording or first-person idea note into an idempotent child note containing a directly recordable YouTube long-video or Shorts script. Use when the user says “更新\u002F同步\u002F优化 Youtube视频逐字稿知识库”, or says “更新\u002F同步\u002F优化该知识库” while this knowledge base is the active context.","https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fyoutube-script-sync\u002FSKILL.md",[164],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[166,167,135,168,169,156,170,171,172,173,174,175,176,177,121,178,37,35,115,179],"sync","script","youtube script sync","recording","shorts","first","base","person","update","active","child","optimize","idempotent","long",{"skillNo":181,"name":182,"nameZh":6,"description":183,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":184,"categories":185,"keywords":190,"publishedAt":45},"01M70P0WMV5XT0EEC0N445PW07","writing-skills","How to write SKILL.md files that trigger reliably and teach effectively. Use when creating, improving, or reviewing Claude Code skills.","https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fxiaolai\u002Fnlpm\u002Fskills\u002Fnlpm\u002Fwriting-skills\u002FSKILL.md",[186,187,188,189],{"categoryNo":96,"categoryName":97,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":24,"categoryName":25,"taxonomyType":26,"taxonomyTypeDesc":27},{"categoryNo":141,"categoryName":142,"taxonomyType":26,"taxonomyTypeDesc":27},[191,104,192,193,194,195,39,37,35,196,197,198,199],"writing skills","how","teach","write skill","write","claude code skills","files","how to","trigger",{"skillNo":201,"name":202,"nameZh":6,"description":203,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":204,"categories":205,"keywords":208,"publishedAt":45},"01M70P0SJFR4YVJQBGMHKGSKXT","writing-rules","How to write .claude\u002Frules\u002F files that Claude actually follows. Use when creating, improving, or reviewing project rules.","https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fxiaolai\u002Fnlpm\u002Fskills\u002Fnlpm\u002Fwriting-rules\u002FSKILL.md",[206,207],{"categoryNo":96,"categoryName":97,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":141,"categoryName":142,"taxonomyType":26,"taxonomyTypeDesc":27},[209,104,210,119,211,197,37,192,195,35,198],"Rules","writing rules","project rules"]