[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6RVQJYR66RZFZHWHJT5ZKZ6":3,"skill-same:01M6RVQJYR66RZFZHWHJT5ZKZ6":77},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":27,"publishedAt":48,"linkOnly":49,"markdownContent":50,"markdownBody":51,"frontMatter":52,"refName":58,"commitSha":59,"skillDirectory":60,"forksCount":13,"repositoryHtmlUrl":61,"repositoryHomepageUrl":6,"ownerHtmlUrl":62,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":63,"install":64,"resources":76},"01M6RVQJYR66RZFZHWHJT5ZKZ6","motion-ui",null,"Production-ready UI motion system for React\u002FNext.js. Use when implementing animations, transitions, or motion patterns.","sakamoto-family-smile\u002Fagent_monorepo","sakamoto-family-smile","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F132812403?v=4","01M6RTAT3H8PMWX5SJ65KP3VYF","01M6RTAV321WB5RAHCWTZMX5CV",0,"Apache-2.0","https:\u002F\u002Fgithub.com\u002Fsakamoto-family-smile\u002Fagent_monorepo\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fecc\u002Fmotion-ui\u002FSKILL.md",[17,22],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000009","前端开发","SCENARIO","使用场景",{"categoryNo":23,"categoryName":24,"taxonomyType":25,"taxonomyTypeDesc":26},"01JBSEEDCAT000000000000032","设计师","PROFESSION","适用职业",[28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47],"ui","motion ui","motion","when","react","animations","motion patterns","for","implementing","production-ready","motion system","transitions","next","patterns","ui motion","ready","use","system","Next.js","Production","2026-11-10 10:12:30",false,"---\nname: be-logging\ndescription: \"Audit logging patterns for structured logging, SLF4J usage, and MDC.\"\nargument-hint: \"[file-or-directory-path]\"\nuser-invocable: true\nallowed-tools: Read, Glob, Grep\n---\n\n# Logging Pattern Audit\n\nAudit Java source code for logging best practices: SLF4J usage, structured logging, and security.\n\n## Instructions\n\n### Step 0: Validate Configuration\n\n1. Read `.claude\u002Fbackend-springboot-plugin.json`\n2. If missing, tell the user to run `\u002Fbackend-springboot-plugin:be-init` first and stop\n\n### Step 1: Determine Scope\n\n- If argument provided: audit the specified file or directory\n- If no argument: audit all Java files in `{sourceDir}\u002F{basePackage}\u002F` (excluding test files)\n\n### Step 2: Scan for Issues\n\n#### Critical Issues\n\n1. **Console Output**\n   - `System.out.println` in production code\n   - `System.err.println` in production code\n   - `printStackTrace()` calls\n\n2. **Sensitive Data Exposure**\n   - Logging passwords, tokens, secrets, or API keys\n   - Logging full email addresses (should be masked)\n   - Logging credit card numbers or personal identification numbers\n   - Check log statements for variables named: `password`, `token`, `secret`, `key`, `credential`\n\n3. **Missing Exception Logging**\n   - `catch` blocks that silently swallow exceptions (empty catch or catch without logging)\n   - `catch` blocks that only log the message without the stack trace: use `log.error(\"msg\", exception)` not `log.error(exception.getMessage())`\n\n#### Warning Issues\n\n4. **String Concatenation**\n   - Log statements using `+` for string concatenation\n   - Should use `{}` placeholders: `log.info(\"User {} created\", userId)` not `log.info(\"User \" + userId + \" created\")`\n\n5. **Wrong Log Level**\n   - `log.error()` for non-error conditions\n   - `log.info()` for debug-level detail\n   - `log.debug()` for critical business events that should always be logged\n\n6. **Logger Declaration**\n   - Missing `private static final Logger log = LoggerFactory.getLogger(ClassName.class)`\n   - Using Lombok `@Slf4j` without Lombok being enabled\n   - Logger variable not named `log` (convention)\n\n#### Suggestions\n\n7. **MDC (Mapped Diagnostic Context)**\n   - Request handlers without MDC context (request ID, user ID)\n   - Suggest MDC filter for request tracing\n\n8. **Structured Logging**\n   - Consider key-value pairs in log messages for easier parsing\n   - Suggest consistent log message format across the project\n\n### Step 3: Report\n\nDisplay findings in the working language:\n\n```\nLogging Audit\n=============\n\nFiles scanned: {count}\n\nCritical ({count}):\n  {file}:{line} — {description}\n  Fix: {suggestion}\n\nWarnings ({count}):\n  {file}:{line} — {description}\n  Fix: {suggestion}\n\nSuggestions ({count}):\n  {description}\n```\n","# Logging Pattern Audit\n\nAudit Java source code for logging best practices: SLF4J usage, structured logging, and security.\n\n## Instructions\n\n### Step 0: Validate Configuration\n\n1. Read `.claude\u002Fbackend-springboot-plugin.json`\n2. If missing, tell the user to run `\u002Fbackend-springboot-plugin:be-init` first and stop\n\n### Step 1: Determine Scope\n\n- If argument provided: audit the specified file or directory\n- If no argument: audit all Java files in `{sourceDir}\u002F{basePackage}\u002F` (excluding test files)\n\n### Step 2: Scan for Issues\n\n#### Critical Issues\n\n1. **Console Output**\n   - `System.out.println` in production code\n   - `System.err.println` in production code\n   - `printStackTrace()` calls\n\n2. **Sensitive Data Exposure**\n   - Logging passwords, tokens, secrets, or API keys\n   - Logging full email addresses (should be masked)\n   - Logging credit card numbers or personal identification numbers\n   - Check log statements for variables named: `password`, `token`, `secret`, `key`, `credential`\n\n3. **Missing Exception Logging**\n   - `catch` blocks that silently swallow exceptions (empty catch or catch without logging)\n   - `catch` blocks that only log the message without the stack trace: use `log.error(\"msg\", exception)` not `log.error(exception.getMessage())`\n\n#### Warning Issues\n\n4. **String Concatenation**\n   - Log statements using `+` for string concatenation\n   - Should use `{}` placeholders: `log.info(\"User {} created\", userId)` not `log.info(\"User \" + userId + \" created\")`\n\n5. **Wrong Log Level**\n   - `log.error()` for non-error conditions\n   - `log.info()` for debug-level detail\n   - `log.debug()` for critical business events that should always be logged\n\n6. **Logger Declaration**\n   - Missing `private static final Logger log = LoggerFactory.getLogger(ClassName.class)`\n   - Using Lombok `@Slf4j` without Lombok being enabled\n   - Logger variable not named `log` (convention)\n\n#### Suggestions\n\n7. **MDC (Mapped Diagnostic Context)**\n   - Request handlers without MDC context (request ID, user ID)\n   - Suggest MDC filter for request tracing\n\n8. **Structured Logging**\n   - Consider key-value pairs in log messages for easier parsing\n   - Suggest consistent log message format across the project\n\n### Step 3: Report\n\nDisplay findings in the working language:\n\n```\nLogging Audit\n=============\n\nFiles scanned: {count}\n\nCritical ({count}):\n  {file}:{line} — {description}\n  Fix: {suggestion}\n\nWarnings ({count}):\n  {file}:{line} — {description}\n  Fix: {suggestion}\n\nSuggestions ({count}):\n  {description}\n```\n",{"name":53,"description":54,"allowed-tools":55,"argument-hint":56,"user-invocable":57},"be-logging","Audit logging patterns for structured logging, SLF4J usage, and MDC.","Read, Glob, Grep","[file-or-directory-path]",true,"main","99f07e592261c66756a2927d0440fc5fef950507",".claude\u002Fskills\u002Fecc\u002Fmotion-ui","https:\u002F\u002Fgithub.com\u002Fsakamoto-family-smile\u002Fagent_monorepo","https:\u002F\u002Fgithub.com\u002Fsakamoto-family-smile","2026-11-08 20:29:14",{"source":8,"skillName":53,"commands":65,"prompt":75,"zipAvailable":57},[66,69,72],{"tool":67,"command":68},"npx","npx skills add sakamoto-family-smile\u002Fagent_monorepo --skill be-logging",{"tool":70,"command":71},"bunx","bunx skills add sakamoto-family-smile\u002Fagent_monorepo --skill be-logging",{"tool":73,"command":74},"pnpm","pnpm dlx skills add sakamoto-family-smile\u002Fagent_monorepo --skill be-logging","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fsakamoto-family-smile\u002Fagent_monorepo\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fecc\u002Fmotion-ui\u002FSKILL.md",[],[78,107,115,133,156,182],{"skillNo":79,"name":80,"nameZh":6,"description":81,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":82,"categories":83,"keywords":88,"publishedAt":48},"01M6RW50THEFSKK42YNR8XFZA1","remotion-video-creation","Best practices for Remotion - Video creation in React. 29 domain-specific rules covering 3D, animations, audio, captions, charts, transitions, and more.","https:\u002F\u002Fgithub.com\u002Fsakamoto-family-smile\u002Fagent_monorepo\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fecc\u002Fremotion-video-creation\u002FSKILL.md",[84,85],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":86,"categoryName":87,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000016","图像与多媒体",[89,90,91,92,93,94,95,96,97,98,99,100,101,33,102,103,104,105,106,35],"Video","remotion video","remotion video creation","creation","Remotion","Charts","Captions","Audio","3D","Composition","Animation","best practices","more","domain-specific","domain","three","Rules","Lottie",{"skillNo":108,"name":109,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":110,"categories":111,"keywords":112,"publishedAt":48},"01M6VCJ23NPECPSZJKGY691F75","hotcook-recipes","https:\u002F\u002Fgithub.com\u002Fsakamoto-family-smile\u002Fagent_monorepo\u002Fblob\u002Fmain\u002Fhotcook-agent\u002Fdata\u002Fskills\u002Fhotcook-recipes\u002FSKILL.md",[],[113,114],"hotcook recipes","recipes",{"skillNo":116,"name":117,"nameZh":6,"description":118,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":119,"categories":120,"keywords":127,"publishedAt":48},"01M6VCHHE00X5XHSDRD1KH1BW2","code-helper","Code review and assistance skill","https:\u002F\u002Fgithub.com\u002Fsakamoto-family-smile\u002Fagent_monorepo\u002Fblob\u002Fmain\u002Fagent-system-2\u002Fskills\u002Fcode-helper\u002Fskill.md",[121,124],{"categoryNo":122,"categoryName":123,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000007","代码审查",{"categoryNo":125,"categoryName":126,"taxonomyType":25,"taxonomyTypeDesc":26},"01JBSEEDCAT000000000000030","开发工程师",[128,129,130,131,132],"code helper","helper","code","code review","review",{"skillNo":134,"name":135,"nameZh":6,"description":136,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":137,"categories":138,"keywords":145,"publishedAt":48},"01M6VCH3Q31A20H6SQ1H0J7JB2","research-assistant","Web research assistant skill using Brave Search MCP","https:\u002F\u002Fgithub.com\u002Fsakamoto-family-smile\u002Fagent_monorepo\u002Fblob\u002Fmain\u002Fagent-system-1\u002Fskills\u002Fresearch-assistant\u002Fskill.md",[139,142],{"categoryNo":140,"categoryName":141,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000021","资料检索与研究",{"categoryNo":143,"categoryName":144,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000023","Skill与智能体开发",[146,147,148,149,150,151,152,153,154,155],"research assistant","research","assistant","MCP","web","search","brave search","web research","brave","web research assistant",{"skillNo":157,"name":158,"nameZh":6,"description":159,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":160,"categories":161,"keywords":166,"publishedAt":48},"01M6VCGZZGPNVJSCZ1JTMNZAHY","x-api","X\u002FTwitter API integration for posting tweets, threads, reading timelines, search, and analytics. Covers OAuth auth patterns, rate limits, and platform-native content posting. Use when the user wants to interact with X programmatically.","https:\u002F\u002Fgithub.com\u002Fsakamoto-family-smile\u002Fagent_monorepo\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fecc\u002Fx-api\u002FSKILL.md",[162,165],{"categoryNo":163,"categoryName":164,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000010","后端与接口",{"categoryNo":125,"categoryName":126,"taxonomyType":25,"taxonomyTypeDesc":26},[167,168,169,31,170,171,35,172,173,174,175,176,41,177,178,44,179,180,151,181],"x api","api","with","limits","rate","threads","reading","native","posting","platform","api integration","twitter","auth","analytics","OAuth",{"skillNo":183,"name":184,"nameZh":6,"description":185,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":186,"categories":187,"keywords":189,"publishedAt":48},"01M6VCGVX6DGB1FKTA53QBBCQB","workspace-surface-audit","Audit the active repo, MCP servers, plugins, connectors, env surfaces, and harness setup, then recommend the highest-value ECC-native skills, hooks, agents, and operator workflows. Use when the user wants help setting up Claude Code or understanding what capabilities are actually available in their environment.","https:\u002F\u002Fgithub.com\u002Fsakamoto-family-smile\u002Fagent_monorepo\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fecc\u002Fworkspace-surface-audit\u002FSKILL.md",[188],{"categoryNo":143,"categoryName":144,"taxonomyType":20,"taxonomyTypeDesc":21},[190,191,192,193,149,194,195,130,196,197,198,199,44,200,201,202,203,174,204,31],"workspace surface audit","workspace","audit","hooks","workflows","connectors","capabilities","harness","repo","environment","up","harness setup","active","env","value"]