[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6D111ECN97WMTB68PSQTGRV":3,"skill-same:01M6D111ECN97WMTB68PSQTGRV":287},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":22,"publishedAt":44,"linkOnly":45,"markdownContent":46,"markdownBody":47,"frontMatter":48,"refName":51,"commitSha":52,"skillDirectory":53,"forksCount":54,"repositoryHtmlUrl":55,"repositoryHomepageUrl":6,"ownerHtmlUrl":56,"ownerBlogUrl":6,"ownerDescription":57,"updatedAt":58,"install":59,"resources":72},"01M6D111ECN97WMTB68PSQTGRV","spring-boot-best-practices",null,"Spring Boot 3 + Java 21 + MyBatis Plus 项目的编码规范与架构纪律。涵盖分层依赖、国密 SM2\u002FSM3\u002FSM4、MyBatis Plus 实体与主键策略、多方言数据库迁移、R\u002FRList\u002FRPage 响应包装、DTO 职责边界、鉴权框架选型（Spring Security \u002F Sa-Token）与声明式权限校验、命名约定、模块 README 文档要求。在编写、审查或重构 Spring Boot 后端代码时使用——尤其是新增 Controller\u002FService\u002FMapper、定义 Entity 或 DTO、写数据库迁移、处理加解密与签名、设计 API 契约、或接入鉴权与权限校验时。","JinsYin\u002Fskills","JinsYin","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F12714609?v=4","01M6D0YYKCF1MT47KYYZSXWE30","01M6D0YYQ1F5AG45M6ATPECCAW",1,"MIT","https:\u002F\u002Fgithub.com\u002FJinsYin\u002Fskills\u002Fblob\u002Fmaster\u002Fskills\u002Fspring-boot-best-practices\u002FSKILL.md",[17],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000010","后端与接口","SCENARIO","使用场景",[23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43],"boot","best practices","spring boot","spring","spring boot best practices","dto","design","数据","后端","mybatis","spring security","spring boot 3","service","token","README","文档","校验","api","controller","java","security","2026-11-10 10:12:30",false,"---\ndescription: Remove AI-style writing patterns from text to sound more natural and human\nmodel: haiku\n---\n\n# Goal\n\n- Change text with recognizable AI mannerisms (hedging, dramatic pivots, cliched\n  transitions) and clean up AI-written content that's factually correct but tonally\n  flat\n\n# What This Skill Preserves\n- Author's opinions, arguments, and claims\n- Document structure and organization\n- Paragraph and section order\n- Core meaning and facts\n- Intentional stylistic choices (fragments, unconventional punctuation, etc.)\n\n# Workflow\n\n## Core Principles\n- Edit, don't rewrite: clean up pattern slop, preserve voice, opinions,\n  structure, and meaning\n- Apply systematically: check all 19 rules below; skip only if the rule doesn't\n  apply to the text\n- Use judgment on conflicts: if a rule break serves the writing (e.g., a\n  well-placed em dash for effect), keep it\n- Change nothing else: don't reorder paragraphs, add ideas, rephrase core\n  arguments, or alter facts\n\n## Pattern Checklist\nScan for these AI markers before applying detailed rules:\n\n- Overused Words and Jargon\n  - Grandiose: \"vital\", \"pivotal\", \"groundbreaking\", \"robust\", \"comprehensive\",\n    \"nuanced\", \"multifaceted\", \"transformative\"\n  - AI vocabulary: \"delve\", \"leverage\" (verb), \"reimagine\", \"empower\", \"unpack\",\n    \"synergy\"\n- Filler and Hedges\n  - \"It's worth noting that\", \"It's important to remember\", \"It should be\n    noted\", \"Interestingly enough\"\n  - \"Something we've observed\", \"This is where X really shines\"\n- Theatrical Transitions and Pivots\n  - Throat-clearing: \"Let's dive in\", \"Let's unpack\", \"In this article, we'll\"\n  - Dramatic pivots: \"But here's the thing\", \"Here's the catch\", \"Here's what\n    most people miss\"\n  - Overused connectors: \"Furthermore\", \"Moreover\", \"Additionally\", \"In addition\n    to the above\"\n  - Rhetorical openers: \"So what does this mean for you?\", \"Why does this\n    matter?\"\n- Structural Patterns\n  - Gift-wrapped endings: \"In summary\", \"In conclusion\", \"Ultimately\", \"At the\n    end of the day\", \"Moving forward\"\n  - Exhaustive lists: 7-10 items when 3-4 would suffice\n  - Passive voice clusters: 2+ passive sentences in a row\n  - Corrective antithesis: \"Not X. But Y.\" setup-payoff constructions\n- Meta-Language and Vagueness\n  - Meta-verbs: \"highlights\", \"underscores\", \"emphasizes\", \"showcases\",\n    \"illustrates\"\n  - Vague attribution: \"some experts say\", \"widely covered\", \"significant\n    attention\"\n  - Copy-paste metaphors: same metaphor repeated word-for-word 3+ times\n\n## Rules\n\n### Rule 1: Em Dashes\n- Remove excessive em dashes (—)\n- Rewrite using commas, full stops, or restructure the sentence\n- One or two in a long piece is fine; three or more is a pattern worth fixing\n\n### Rule 2: Corrective Antithesis\n- Remove \"Not X. But Y.\" constructions where you set up something the reader\n  never assumed, then correct it for drama\n- Bad: \"This isn't because they don't trust the technology. It's because they\n  can't predict it.\"\n- Good: \"They trust the technology fine. What they can't do is predict it.\"\n\n### Rule 3: Dramatic Pivot Phrases\n- Remove theatrical pivots: \"But here's the thing\", \"Here's the catch\", \"Here's\n  the bind\", \"Here's what most people miss\"\n- Fold the point into the sentence naturally\n- Bad: \"The patterns are valuable. But here's the bind: building a tool cost\n  more than most could justify.\"\n- Good: \"The patterns are valuable but building a tool to capture them cost more\n  than most could justify.\"\n\n### Rule 4: Soft Hedging Language\n- Cut filler hedges; just say the thing\n- Remove: \"It's worth noting that\", \"Something we've observed\", \"This is where X\n  really shines\", \"It's important to remember\", \"It should be noted\",\n  \"Interestingly enough\"\n- Bad: \"It's worth noting that this approach has shown some promising results in\n  certain contexts.\"\n- Good: \"This approach works.\"\n\n### Rule 5: Overused Transition Words\n- Cut or vary \"Furthermore\", \"Moreover\", \"Additionally\", \"In addition to the\n  above\" when chained together\n- Real writers use them sparingly\n- Bad: \"The system is fast. Furthermore, it is reliable. Moreover, it is easy to\n  use. Additionally, it integrates well.\"\n- Good: \"The system is fast, reliable, easy to use, and integrates without\n  friction.\"\n\n### Rule 6: AI Vocabulary\n- Replace words AI overuses with plain alternatives\n  - \"delve\" -> explore, look at, examine\n  - \"leverage\" (verb) -> use, apply, rely on\n  - \"robust\" -> strong, solid, reliable\n  - \"comprehensive\" -> thorough, complete, full\n  - \"nuanced\" -> subtle, layered, specific\n  - \"multifaceted\" -> complex, varied\n  - \"transformative\" -> significant, major\n  - \"unpack\" -> explain, break down\n  - \"reimagine\" -> rethink, redesign\n  - \"empower\" -> let, help, enable\n\n### Rule 7: Meta-Verbs\n- Don't say something \"highlights\", \"underscores\", \"emphasizes\", \"showcases\", or\n  \"illustrates\" a point\n- Explain what it actually shows\n- Bad: \"This underscores the importance of clear communication.\"\n- Good: \"Clear communication matters here.\"\n\n### Rule 8: Passive Voice Clusters\n- Flag sequences of two or more passive constructions in a row\n- Rewrite at least one in active voice to restore momentum\n- Bad: \"The report was reviewed by the team. Errors were identified. Changes\n  were recommended.\"\n- Good: \"The team reviewed the report, found errors, and recommended changes.\"\n\n### Rule 9: Rhetorical Section Openers\n- Cut rhetorical questions used as transitions (\"So what does this mean for\n  you?\", \"Why does this matter?\")\n- State the answer directly or remove entirely\n- Bad: \"So what does this mean for your team? It means you need to rethink your\n  process.\"\n- Good: \"Your team needs to rethink its process.\"\n\n### Rule 10: Staccato Rhythm\n- Break up runs of short, punchy sentences that stack without variation\n- Combine some; lengthen others\n- Let rhythm follow the thinking, not a drumbeat\n- Bad: \"Now, agents act. They send emails. They modify code. They book\n  appointments.\"\n- Good: \"Agents are starting to do real things now. They'll send an email on\n  your behalf or update a database, sometimes without you even realizing it\n  happened.\"\n\n### Rule 11: Cookie-Cutter Paragraphs\n- Vary paragraph length\n- If every paragraph is 3-4 sentences, break some into one-liners and let others\n  stretch\n- The shape on the page should look uneven, like real thinking\n\n### Rule 12: Gift-Wrapped Endings\n- Remove summary conclusions that restate the article's points\n- Cut: \"In summary\", \"In conclusion\", \"Ultimately\", \"Moving forward\", \"At the\n  end of the day\"\n- End with something specific, human, or unresolved\n- Bad: \"In summary, by focusing on clear communication, consistent feedback, and\n  mutual trust, teams can build stronger relationships.\"\n- Good: \"The best teams I've worked with never talked about trust. They just had\n  it.\"\n\n### Rule 13: Throat-Clearing Intros\n- Remove: \"Let's explore\", \"Let's unpack\", \"Let's dive in\", \"Let's break it\n  down\", \"In this article, we'll\"\n- Just start; the best first sentence puts the reader in the middle of something\n- Bad: \"In this article, we'll explore the hidden costs of micromanagement\n  Let's dive in.\"\n- Good: \"I micromanaged someone last Tuesday.\"\n\n### Rule 14: Exhaustive Lists\n- Trim bullet lists that run to 7-10 items when 3-4 would cover the essential\n  points\n- Long lists signal AI comprehensiveness, not human judgment\n- Cut the weakest items\n\n### Rule 15: Perfect Punctuation\n- Don't correct every grammar \"mistake\" if it sounds more natural broken\n  - Fragments are fine\n  - Starting with \"And\" or \"But\" is fine\n  - A comma splice can stay if it reads well\n- If the draft has personality in its punctuation, keep it\n\n### Rule 16: Copy-Paste Metaphors\n- If the same metaphor or phrase appears more than twice, vary the language\n- Use a pronoun, rephrase it, or trust the reader to remember\n- Never repeat a metaphor word-for-word three times\n- Bad: \"Trust is like a battery. When the trust battery is full... But when the\n  trust battery runs low... To recharge the trust battery...\"\n- Good: \"Trust is like a battery. When it's full, you barely think about it. But\n  let it drain and suddenly every interaction needs a charger.\"\n\n### Rule 17: Overexplaining the Obvious\n- Cut sentences that explain things the reader already understands\n- If you've made a clear point, don't re-explain how it works\n- Bad: \"Trust is earned over time. You give people small tasks, observe how they\n  handle them, then gradually expand their responsibilities.\"\n- Good: \"Trust is earned. Everyone knows this. The question is whether you're\n  actually giving people the chance to earn it.\"\n\n### Rule 18: Generic Examples\n- Flag examples that could apply to any company or product\n- If an example doesn't contain a specific, surprising, or insider detail, it's\n  filler\n- Either sharpen it or cut it\n- Bad: \"Take Slack, for example. By focusing on seamless team communication,\n  they transformed how modern workplaces collaborate.\"\n- Good: \"Slack solved the wrong problem brilliantly. Nobody needed another\n  messaging app, but everyone needed a place to dump links and pretend they'd\n  read them later.\"\n\n### Rule 19: Vague Attribution\n- Avoid vague references like \"some experts say\", \"widely covered\", \"significant\n  attention\"\n- Identify the actual critic, report, study, or author when possible\n- If you can't name the source, cut the claim\n\n## Save\n- Save the cleaned up text on top of the input file, without changing the format\n  but only the text\n\n# Verification\n- [ ] Confirm the file's structure, order, and meaning are unchanged\n- [ ] Confirm no AI markers listed in `## Pattern Checklist` remain\n","# Goal\n\n- Change text with recognizable AI mannerisms (hedging, dramatic pivots, cliched\n  transitions) and clean up AI-written content that's factually correct but tonally\n  flat\n\n# What This Skill Preserves\n- Author's opinions, arguments, and claims\n- Document structure and organization\n- Paragraph and section order\n- Core meaning and facts\n- Intentional stylistic choices (fragments, unconventional punctuation, etc.)\n\n# Workflow\n\n## Core Principles\n- Edit, don't rewrite: clean up pattern slop, preserve voice, opinions,\n  structure, and meaning\n- Apply systematically: check all 19 rules below; skip only if the rule doesn't\n  apply to the text\n- Use judgment on conflicts: if a rule break serves the writing (e.g., a\n  well-placed em dash for effect), keep it\n- Change nothing else: don't reorder paragraphs, add ideas, rephrase core\n  arguments, or alter facts\n\n## Pattern Checklist\nScan for these AI markers before applying detailed rules:\n\n- Overused Words and Jargon\n  - Grandiose: \"vital\", \"pivotal\", \"groundbreaking\", \"robust\", \"comprehensive\",\n    \"nuanced\", \"multifaceted\", \"transformative\"\n  - AI vocabulary: \"delve\", \"leverage\" (verb), \"reimagine\", \"empower\", \"unpack\",\n    \"synergy\"\n- Filler and Hedges\n  - \"It's worth noting that\", \"It's important to remember\", \"It should be\n    noted\", \"Interestingly enough\"\n  - \"Something we've observed\", \"This is where X really shines\"\n- Theatrical Transitions and Pivots\n  - Throat-clearing: \"Let's dive in\", \"Let's unpack\", \"In this article, we'll\"\n  - Dramatic pivots: \"But here's the thing\", \"Here's the catch\", \"Here's what\n    most people miss\"\n  - Overused connectors: \"Furthermore\", \"Moreover\", \"Additionally\", \"In addition\n    to the above\"\n  - Rhetorical openers: \"So what does this mean for you?\", \"Why does this\n    matter?\"\n- Structural Patterns\n  - Gift-wrapped endings: \"In summary\", \"In conclusion\", \"Ultimately\", \"At the\n    end of the day\", \"Moving forward\"\n  - Exhaustive lists: 7-10 items when 3-4 would suffice\n  - Passive voice clusters: 2+ passive sentences in a row\n  - Corrective antithesis: \"Not X. But Y.\" setup-payoff constructions\n- Meta-Language and Vagueness\n  - Meta-verbs: \"highlights\", \"underscores\", \"emphasizes\", \"showcases\",\n    \"illustrates\"\n  - Vague attribution: \"some experts say\", \"widely covered\", \"significant\n    attention\"\n  - Copy-paste metaphors: same metaphor repeated word-for-word 3+ times\n\n## Rules\n\n### Rule 1: Em Dashes\n- Remove excessive em dashes (—)\n- Rewrite using commas, full stops, or restructure the sentence\n- One or two in a long piece is fine; three or more is a pattern worth fixing\n\n### Rule 2: Corrective Antithesis\n- Remove \"Not X. But Y.\" constructions where you set up something the reader\n  never assumed, then correct it for drama\n- Bad: \"This isn't because they don't trust the technology. It's because they\n  can't predict it.\"\n- Good: \"They trust the technology fine. What they can't do is predict it.\"\n\n### Rule 3: Dramatic Pivot Phrases\n- Remove theatrical pivots: \"But here's the thing\", \"Here's the catch\", \"Here's\n  the bind\", \"Here's what most people miss\"\n- Fold the point into the sentence naturally\n- Bad: \"The patterns are valuable. But here's the bind: building a tool cost\n  more than most could justify.\"\n- Good: \"The patterns are valuable but building a tool to capture them cost more\n  than most could justify.\"\n\n### Rule 4: Soft Hedging Language\n- Cut filler hedges; just say the thing\n- Remove: \"It's worth noting that\", \"Something we've observed\", \"This is where X\n  really shines\", \"It's important to remember\", \"It should be noted\",\n  \"Interestingly enough\"\n- Bad: \"It's worth noting that this approach has shown some promising results in\n  certain contexts.\"\n- Good: \"This approach works.\"\n\n### Rule 5: Overused Transition Words\n- Cut or vary \"Furthermore\", \"Moreover\", \"Additionally\", \"In addition to the\n  above\" when chained together\n- Real writers use them sparingly\n- Bad: \"The system is fast. Furthermore, it is reliable. Moreover, it is easy to\n  use. Additionally, it integrates well.\"\n- Good: \"The system is fast, reliable, easy to use, and integrates without\n  friction.\"\n\n### Rule 6: AI Vocabulary\n- Replace words AI overuses with plain alternatives\n  - \"delve\" -> explore, look at, examine\n  - \"leverage\" (verb) -> use, apply, rely on\n  - \"robust\" -> strong, solid, reliable\n  - \"comprehensive\" -> thorough, complete, full\n  - \"nuanced\" -> subtle, layered, specific\n  - \"multifaceted\" -> complex, varied\n  - \"transformative\" -> significant, major\n  - \"unpack\" -> explain, break down\n  - \"reimagine\" -> rethink, redesign\n  - \"empower\" -> let, help, enable\n\n### Rule 7: Meta-Verbs\n- Don't say something \"highlights\", \"underscores\", \"emphasizes\", \"showcases\", or\n  \"illustrates\" a point\n- Explain what it actually shows\n- Bad: \"This underscores the importance of clear communication.\"\n- Good: \"Clear communication matters here.\"\n\n### Rule 8: Passive Voice Clusters\n- Flag sequences of two or more passive constructions in a row\n- Rewrite at least one in active voice to restore momentum\n- Bad: \"The report was reviewed by the team. Errors were identified. Changes\n  were recommended.\"\n- Good: \"The team reviewed the report, found errors, and recommended changes.\"\n\n### Rule 9: Rhetorical Section Openers\n- Cut rhetorical questions used as transitions (\"So what does this mean for\n  you?\", \"Why does this matter?\")\n- State the answer directly or remove entirely\n- Bad: \"So what does this mean for your team? It means you need to rethink your\n  process.\"\n- Good: \"Your team needs to rethink its process.\"\n\n### Rule 10: Staccato Rhythm\n- Break up runs of short, punchy sentences that stack without variation\n- Combine some; lengthen others\n- Let rhythm follow the thinking, not a drumbeat\n- Bad: \"Now, agents act. They send emails. They modify code. They book\n  appointments.\"\n- Good: \"Agents are starting to do real things now. They'll send an email on\n  your behalf or update a database, sometimes without you even realizing it\n  happened.\"\n\n### Rule 11: Cookie-Cutter Paragraphs\n- Vary paragraph length\n- If every paragraph is 3-4 sentences, break some into one-liners and let others\n  stretch\n- The shape on the page should look uneven, like real thinking\n\n### Rule 12: Gift-Wrapped Endings\n- Remove summary conclusions that restate the article's points\n- Cut: \"In summary\", \"In conclusion\", \"Ultimately\", \"Moving forward\", \"At the\n  end of the day\"\n- End with something specific, human, or unresolved\n- Bad: \"In summary, by focusing on clear communication, consistent feedback, and\n  mutual trust, teams can build stronger relationships.\"\n- Good: \"The best teams I've worked with never talked about trust. They just had\n  it.\"\n\n### Rule 13: Throat-Clearing Intros\n- Remove: \"Let's explore\", \"Let's unpack\", \"Let's dive in\", \"Let's break it\n  down\", \"In this article, we'll\"\n- Just start; the best first sentence puts the reader in the middle of something\n- Bad: \"In this article, we'll explore the hidden costs of micromanagement\n  Let's dive in.\"\n- Good: \"I micromanaged someone last Tuesday.\"\n\n### Rule 14: Exhaustive Lists\n- Trim bullet lists that run to 7-10 items when 3-4 would cover the essential\n  points\n- Long lists signal AI comprehensiveness, not human judgment\n- Cut the weakest items\n\n### Rule 15: Perfect Punctuation\n- Don't correct every grammar \"mistake\" if it sounds more natural broken\n  - Fragments are fine\n  - Starting with \"And\" or \"But\" is fine\n  - A comma splice can stay if it reads well\n- If the draft has personality in its punctuation, keep it\n\n### Rule 16: Copy-Paste Metaphors\n- If the same metaphor or phrase appears more than twice, vary the language\n- Use a pronoun, rephrase it, or trust the reader to remember\n- Never repeat a metaphor word-for-word three times\n- Bad: \"Trust is like a battery. When the trust battery is full... But when the\n  trust battery runs low... To recharge the trust battery...\"\n- Good: \"Trust is like a battery. When it's full, you barely think about it. But\n  let it drain and suddenly every interaction needs a charger.\"\n\n### Rule 17: Overexplaining the Obvious\n- Cut sentences that explain things the reader already understands\n- If you've made a clear point, don't re-explain how it works\n- Bad: \"Trust is earned over time. You give people small tasks, observe how they\n  handle them, then gradually expand their responsibilities.\"\n- Good: \"Trust is earned. Everyone knows this. The question is whether you're\n  actually giving people the chance to earn it.\"\n\n### Rule 18: Generic Examples\n- Flag examples that could apply to any company or product\n- If an example doesn't contain a specific, surprising, or insider detail, it's\n  filler\n- Either sharpen it or cut it\n- Bad: \"Take Slack, for example. By focusing on seamless team communication,\n  they transformed how modern workplaces collaborate.\"\n- Good: \"Slack solved the wrong problem brilliantly. Nobody needed another\n  messaging app, but everyone needed a place to dump links and pretend they'd\n  read them later.\"\n\n### Rule 19: Vague Attribution\n- Avoid vague references like \"some experts say\", \"widely covered\", \"significant\n  attention\"\n- Identify the actual critic, report, study, or author when possible\n- If you can't name the source, cut the claim\n\n## Save\n- Save the cleaned up text on top of the input file, without changing the format\n  but only the text\n\n# Verification\n- [ ] Confirm the file's structure, order, and meaning are unchanged\n- [ ] Confirm no AI markers listed in `## Pattern Checklist` remain\n",{"model":49,"description":50},"haiku","Remove AI-style writing patterns from text to sound more natural and human","master","39143a859859181eff7e774457997b5278fd9e99","skills\u002Fspring-boot-best-practices",0,"https:\u002F\u002Fgithub.com\u002FJinsYin\u002Fskills","https:\u002F\u002Fgithub.com\u002FJinsYin","Bigdata Architect. Do more things!","2026-11-09 10:40:45",{"source":8,"skillName":5,"commands":60,"prompt":70,"zipAvailable":71},[61,64,67],{"tool":62,"command":63},"npx","npx skills add JinsYin\u002Fskills --skill spring-boot-best-practices",{"tool":65,"command":66},"bunx","bunx skills add JinsYin\u002Fskills --skill spring-boot-best-practices",{"tool":68,"command":69},"pnpm","pnpm dlx skills add JinsYin\u002Fskills --skill spring-boot-best-practices","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FJinsYin\u002Fskills\u002Fblob\u002Fmaster\u002Fskills\u002Fspring-boot-best-practices\u002FSKILL.md",true,[73,79,83,87,91,95,99,103,107,111,115,119,123,127,131,135,139,143,147,151,155,159,163,167,171,175,179,183,187,191,195,199,203,207,211,215,219,223,227,231,235,238,242,246,250,254,257,261,265,269,273,277,281],{"path":74,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":77,"sourceHtmlUrl":78},"AGENTS.md","REFERENCE","参考文档",53953,"https:\u002F\u002Fgithub.com\u002FJinsYin\u002Fskills\u002Fblob\u002Fmaster\u002Fskills\u002Fspring-boot-best-practices\u002FAGENTS.md",{"path":80,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":81,"sourceHtmlUrl":82},"metadata.json",993,"https:\u002F\u002Fgithub.com\u002FJinsYin\u002Fskills\u002Fblob\u002Fmaster\u002Fskills\u002Fspring-boot-best-practices\u002Fmetadata.json",{"path":84,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":85,"sourceHtmlUrl":86},"README.md",3897,"https:\u002F\u002Fgithub.com\u002FJinsYin\u002Fskills\u002Fblob\u002Fmaster\u002Fskills\u002Fspring-boot-best-practices\u002FREADME.md",{"path":88,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":89,"sourceHtmlUrl":90},"rules\u002F_sections.md",2052,"https:\u002F\u002Fgithub.com\u002FJinsYin\u002Fskills\u002Fblob\u002Fmaster\u002Fskills\u002Fspring-boot-best-practices\u002Frules\u002F_sections.md",{"path":92,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":93,"sourceHtmlUrl":94},"rules\u002F_template.md",441,"https:\u002F\u002Fgithub.com\u002FJinsYin\u002Fskills\u002Fblob\u002Fmaster\u002Fskills\u002Fspring-boot-best-practices\u002Frules\u002F_template.md",{"path":96,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":97,"sourceHtmlUrl":98},"rules\u002Fcrypto-approved-algorithms.md",764,"https:\u002F\u002Fgithub.com\u002FJinsYin\u002Fskills\u002Fblob\u002Fmaster\u002Fskills\u002Fspring-boot-best-practices\u002Frules\u002Fcrypto-approved-algorithms.md",{"path":100,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":101,"sourceHtmlUrl":102},"rules\u002Fcrypto-no-hardcoded-secrets.md",820,"https:\u002F\u002Fgithub.com\u002FJinsYin\u002Fskills\u002Fblob\u002Fmaster\u002Fskills\u002Fspring-boot-best-practices\u002Frules\u002Fcrypto-no-hardcoded-secrets.md",{"path":104,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":105,"sourceHtmlUrl":106},"rules\u002Fcrypto-no-secret-logging.md",1041,"https:\u002F\u002Fgithub.com\u002FJinsYin\u002Fskills\u002Fblob\u002Fmaster\u002Fskills\u002Fspring-boot-best-practices\u002Frules\u002Fcrypto-no-secret-logging.md",{"path":108,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":109,"sourceHtmlUrl":110},"rules\u002Fcrypto-provider-registration.md",724,"https:\u002F\u002Fgithub.com\u002FJinsYin\u002Fskills\u002Fblob\u002Fmaster\u002Fskills\u002Fspring-boot-best-practices\u002Frules\u002Fcrypto-provider-registration.md",{"path":112,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":113,"sourceHtmlUrl":114},"rules\u002Fcrypto-sign-canonical-bytes.md",1096,"https:\u002F\u002Fgithub.com\u002FJinsYin\u002Fskills\u002Fblob\u002Fmaster\u002Fskills\u002Fspring-boot-best-practices\u002Frules\u002Fcrypto-sign-canonical-bytes.md",{"path":116,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":117,"sourceHtmlUrl":118},"rules\u002Fcrypto-unique-iv-nonce.md",861,"https:\u002F\u002Fgithub.com\u002FJinsYin\u002Fskills\u002Fblob\u002Fmaster\u002Fskills\u002Fspring-boot-best-practices\u002Frules\u002Fcrypto-unique-iv-nonce.md",{"path":120,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":121,"sourceHtmlUrl":122},"rules\u002Fdb-column-naming.md",627,"https:\u002F\u002Fgithub.com\u002FJinsYin\u002Fskills\u002Fblob\u002Fmaster\u002Fskills\u002Fspring-boot-best-practices\u002Frules\u002Fdb-column-naming.md",{"path":124,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":125,"sourceHtmlUrl":126},"rules\u002Fdb-distributed-unique-index.md",1968,"https:\u002F\u002Fgithub.com\u002FJinsYin\u002Fskills\u002Fblob\u002Fmaster\u002Fskills\u002Fspring-boot-best-practices\u002Frules\u002Fdb-distributed-unique-index.md",{"path":128,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":129,"sourceHtmlUrl":130},"rules\u002Fdb-index-naming.md",634,"https:\u002F\u002Fgithub.com\u002FJinsYin\u002Fskills\u002Fblob\u002Fmaster\u002Fskills\u002Fspring-boot-best-practices\u002Frules\u002Fdb-index-naming.md",{"path":132,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":133,"sourceHtmlUrl":134},"rules\u002Fdb-migration-base-overlay.md",3772,"https:\u002F\u002Fgithub.com\u002FJinsYin\u002Fskills\u002Fblob\u002Fmaster\u002Fskills\u002Fspring-boot-best-practices\u002Frules\u002Fdb-migration-base-overlay.md",{"path":136,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":137,"sourceHtmlUrl":138},"rules\u002Fdb-migration-immutable-after-apply.md",2046,"https:\u002F\u002Fgithub.com\u002FJinsYin\u002Fskills\u002Fblob\u002Fmaster\u002Fskills\u002Fspring-boot-best-practices\u002Frules\u002Fdb-migration-immutable-after-apply.md",{"path":140,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":141,"sourceHtmlUrl":142},"rules\u002Fdb-migration-locations-injection.md",2667,"https:\u002F\u002Fgithub.com\u002FJinsYin\u002Fskills\u002Fblob\u002Fmaster\u002Fskills\u002Fspring-boot-best-practices\u002Frules\u002Fdb-migration-locations-injection.md",{"path":144,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":145,"sourceHtmlUrl":146},"rules\u002Fdb-migration-parity.md",1151,"https:\u002F\u002Fgithub.com\u002FJinsYin\u002Fskills\u002Fblob\u002Fmaster\u002Fskills\u002Fspring-boot-best-practices\u002Frules\u002Fdb-migration-parity.md",{"path":148,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":149,"sourceHtmlUrl":150},"rules\u002Fdb-opengauss-dialect.md",813,"https:\u002F\u002Fgithub.com\u002FJinsYin\u002Fskills\u002Fblob\u002Fmaster\u002Fskills\u002Fspring-boot-best-practices\u002Frules\u002Fdb-opengauss-dialect.md",{"path":152,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":153,"sourceHtmlUrl":154},"rules\u002Fdb-opengauss-flyway-set-role.md",3350,"https:\u002F\u002Fgithub.com\u002FJinsYin\u002Fskills\u002Fblob\u002Fmaster\u002Fskills\u002Fspring-boot-best-practices\u002Frules\u002Fdb-opengauss-flyway-set-role.md",{"path":156,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":157,"sourceHtmlUrl":158},"rules\u002Fdb-table-naming.md",532,"https:\u002F\u002Fgithub.com\u002FJinsYin\u002Fskills\u002Fblob\u002Fmaster\u002Fskills\u002Fspring-boot-best-practices\u002Frules\u002Fdb-table-naming.md",{"path":160,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":161,"sourceHtmlUrl":162},"rules\u002Fdto-converter-mapstruct.md",816,"https:\u002F\u002Fgithub.com\u002FJinsYin\u002Fskills\u002Fblob\u002Fmaster\u002Fskills\u002Fspring-boot-best-practices\u002Frules\u002Fdto-converter-mapstruct.md",{"path":164,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":165,"sourceHtmlUrl":166},"rules\u002Fdto-internal-not-exposed.md",632,"https:\u002F\u002Fgithub.com\u002FJinsYin\u002Fskills\u002Fblob\u002Fmaster\u002Fskills\u002Fspring-boot-best-practices\u002Frules\u002Fdto-internal-not-exposed.md",{"path":168,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":169,"sourceHtmlUrl":170},"rules\u002Fdto-query-extends-pagequery.md",1021,"https:\u002F\u002Fgithub.com\u002FJinsYin\u002Fskills\u002Fblob\u002Fmaster\u002Fskills\u002Fspring-boot-best-practices\u002Frules\u002Fdto-query-extends-pagequery.md",{"path":172,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":173,"sourceHtmlUrl":174},"rules\u002Fdto-request-by-action.md",1144,"https:\u002F\u002Fgithub.com\u002FJinsYin\u002Fskills\u002Fblob\u002Fmaster\u002Fskills\u002Fspring-boot-best-practices\u002Frules\u002Fdto-request-by-action.md",{"path":176,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":177,"sourceHtmlUrl":178},"rules\u002Fdto-response-by-view.md",686,"https:\u002F\u002Fgithub.com\u002FJinsYin\u002Fskills\u002Fblob\u002Fmaster\u002Fskills\u002Fspring-boot-best-practices\u002Frules\u002Fdto-response-by-view.md",{"path":180,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":181,"sourceHtmlUrl":182},"rules\u002Fentity-field-fill.md",873,"https:\u002F\u002Fgithub.com\u002FJinsYin\u002Fskills\u002Fblob\u002Fmaster\u002Fskills\u002Fspring-boot-best-practices\u002Frules\u002Fentity-field-fill.md",{"path":184,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":185,"sourceHtmlUrl":186},"rules\u002Fentity-mapper-no-xml.md",1058,"https:\u002F\u002Fgithub.com\u002FJinsYin\u002Fskills\u002Fblob\u002Fmaster\u002Fskills\u002Fspring-boot-best-practices\u002Frules\u002Fentity-mapper-no-xml.md",{"path":188,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":189,"sourceHtmlUrl":190},"rules\u002Fentity-tableid-assign-id.md",913,"https:\u002F\u002Fgithub.com\u002FJinsYin\u002Fskills\u002Fblob\u002Fmaster\u002Fskills\u002Fspring-boot-best-practices\u002Frules\u002Fentity-tableid-assign-id.md",{"path":192,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":193,"sourceHtmlUrl":194},"rules\u002Fenvelope-bizexception-not-null.md",887,"https:\u002F\u002Fgithub.com\u002FJinsYin\u002Fskills\u002Fblob\u002Fmaster\u002Fskills\u002Fspring-boot-best-practices\u002Frules\u002Fenvelope-bizexception-not-null.md",{"path":196,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":197,"sourceHtmlUrl":198},"rules\u002Fenvelope-error-code-format.md",862,"https:\u002F\u002Fgithub.com\u002FJinsYin\u002Fskills\u002Fblob\u002Fmaster\u002Fskills\u002Fspring-boot-best-practices\u002Frules\u002Fenvelope-error-code-format.md",{"path":200,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":201,"sourceHtmlUrl":202},"rules\u002Fenvelope-factory-only.md",915,"https:\u002F\u002Fgithub.com\u002FJinsYin\u002Fskills\u002Fblob\u002Fmaster\u002Fskills\u002Fspring-boot-best-practices\u002Frules\u002Fenvelope-factory-only.md",{"path":204,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":205,"sourceHtmlUrl":206},"rules\u002Fenvelope-field-types.md",1329,"https:\u002F\u002Fgithub.com\u002FJinsYin\u002Fskills\u002Fblob\u002Fmaster\u002Fskills\u002Fspring-boot-best-practices\u002Frules\u002Fenvelope-field-types.md",{"path":208,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":209,"sourceHtmlUrl":210},"rules\u002Fenvelope-r-types.md",834,"https:\u002F\u002Fgithub.com\u002FJinsYin\u002Fskills\u002Fblob\u002Fmaster\u002Fskills\u002Fspring-boot-best-practices\u002Frules\u002Fenvelope-r-types.md",{"path":212,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":213,"sourceHtmlUrl":214},"rules\u002Flayer-controller-auth-annotations.md",4239,"https:\u002F\u002Fgithub.com\u002FJinsYin\u002Fskills\u002Fblob\u002Fmaster\u002Fskills\u002Fspring-boot-best-practices\u002Frules\u002Flayer-controller-auth-annotations.md",{"path":216,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":217,"sourceHtmlUrl":218},"rules\u002Flayer-controller-no-entity.md",966,"https:\u002F\u002Fgithub.com\u002FJinsYin\u002Fskills\u002Fblob\u002Fmaster\u002Fskills\u002Fspring-boot-best-practices\u002Frules\u002Flayer-controller-no-entity.md",{"path":220,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":221,"sourceHtmlUrl":222},"rules\u002Flayer-cross-service-via-service.md",870,"https:\u002F\u002Fgithub.com\u002FJinsYin\u002Fskills\u002Fblob\u002Fmaster\u002Fskills\u002Fspring-boot-best-practices\u002Frules\u002Flayer-cross-service-via-service.md",{"path":224,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":225,"sourceHtmlUrl":226},"rules\u002Flayer-no-map-response.md",837,"https:\u002F\u002Fgithub.com\u002FJinsYin\u002Fskills\u002Fblob\u002Fmaster\u002Fskills\u002Fspring-boot-best-practices\u002Frules\u002Flayer-no-map-response.md",{"path":228,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":229,"sourceHtmlUrl":230},"rules\u002Flayer-no-silent-catch.md",876,"https:\u002F\u002Fgithub.com\u002FJinsYin\u002Fskills\u002Fblob\u002Fmaster\u002Fskills\u002Fspring-boot-best-practices\u002Frules\u002Flayer-no-silent-catch.md",{"path":232,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":233,"sourceHtmlUrl":234},"rules\u002Flayer-one-direction.md",1277,"https:\u002F\u002Fgithub.com\u002FJinsYin\u002Fskills\u002Fblob\u002Fmaster\u002Fskills\u002Fspring-boot-best-practices\u002Frules\u002Flayer-one-direction.md",{"path":236,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":193,"sourceHtmlUrl":237},"rules\u002Flayer-service-no-http.md","https:\u002F\u002Fgithub.com\u002FJinsYin\u002Fskills\u002Fblob\u002Fmaster\u002Fskills\u002Fspring-boot-best-practices\u002Frules\u002Flayer-service-no-http.md",{"path":239,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":240,"sourceHtmlUrl":241},"rules\u002Fnaming-class-suffix.md",1458,"https:\u002F\u002Fgithub.com\u002FJinsYin\u002Fskills\u002Fblob\u002Fmaster\u002Fskills\u002Fspring-boot-best-practices\u002Frules\u002Fnaming-class-suffix.md",{"path":243,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":244,"sourceHtmlUrl":245},"rules\u002Fnaming-controller-methods.md",1378,"https:\u002F\u002Fgithub.com\u002FJinsYin\u002Fskills\u002Fblob\u002Fmaster\u002Fskills\u002Fspring-boot-best-practices\u002Frules\u002Fnaming-controller-methods.md",{"path":247,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":248,"sourceHtmlUrl":249},"rules\u002Fnaming-enum-constants.md",731,"https:\u002F\u002Fgithub.com\u002FJinsYin\u002Fskills\u002Fblob\u002Fmaster\u002Fskills\u002Fspring-boot-best-practices\u002Frules\u002Fnaming-enum-constants.md",{"path":251,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":252,"sourceHtmlUrl":253},"rules\u002Fnaming-package-layout.md",852,"https:\u002F\u002Fgithub.com\u002FJinsYin\u002Fskills\u002Fblob\u002Fmaster\u002Fskills\u002Fspring-boot-best-practices\u002Frules\u002Fnaming-package-layout.md",{"path":255,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":197,"sourceHtmlUrl":256},"rules\u002Fnaming-service-mapper-methods.md","https:\u002F\u002Fgithub.com\u002FJinsYin\u002Fskills\u002Fblob\u002Fmaster\u002Fskills\u002Fspring-boot-best-practices\u002Frules\u002Fnaming-service-mapper-methods.md",{"path":258,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":259,"sourceHtmlUrl":260},"rules\u002Fnaming-url.md",824,"https:\u002F\u002Fgithub.com\u002FJinsYin\u002Fskills\u002Fblob\u002Fmaster\u002Fskills\u002Fspring-boot-best-practices\u002Frules\u002Fnaming-url.md",{"path":262,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":263,"sourceHtmlUrl":264},"rules\u002Fstack-auth-framework.md",2357,"https:\u002F\u002Fgithub.com\u002FJinsYin\u002Fskills\u002Fblob\u002Fmaster\u002Fskills\u002Fspring-boot-best-practices\u002Frules\u002Fstack-auth-framework.md",{"path":266,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":267,"sourceHtmlUrl":268},"rules\u002Fstack-baseline.md",860,"https:\u002F\u002Fgithub.com\u002FJinsYin\u002Fskills\u002Fblob\u002Fmaster\u002Fskills\u002Fspring-boot-best-practices\u002Frules\u002Fstack-baseline.md",{"path":270,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":271,"sourceHtmlUrl":272},"rules\u002Fstack-lambda-simple.md",1441,"https:\u002F\u002Fgithub.com\u002FJinsYin\u002Fskills\u002Fblob\u002Fmaster\u002Fskills\u002Fspring-boot-best-practices\u002Frules\u002Fstack-lambda-simple.md",{"path":274,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":275,"sourceHtmlUrl":276},"rules\u002Fstack-lombok.md",692,"https:\u002F\u002Fgithub.com\u002FJinsYin\u002Fskills\u002Fblob\u002Fmaster\u002Fskills\u002Fspring-boot-best-practices\u002Frules\u002Fstack-lombok.md",{"path":278,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":279,"sourceHtmlUrl":280},"rules\u002Fstack-module-readme.md",3439,"https:\u002F\u002Fgithub.com\u002FJinsYin\u002Fskills\u002Fblob\u002Fmaster\u002Fskills\u002Fspring-boot-best-practices\u002Frules\u002Fstack-module-readme.md",{"path":282,"resourceType":283,"resourceTypeDesc":284,"sizeBytes":285,"sourceHtmlUrl":286},"scripts\u002Fbuild.sh","SCRIPT","脚本",1522,"https:\u002F\u002Fgithub.com\u002FJinsYin\u002Fskills\u002Fblob\u002Fmaster\u002Fskills\u002Fspring-boot-best-practices\u002Fscripts\u002Fbuild.sh",[288,320,341,365,395,420],{"skillNo":289,"name":290,"nameZh":6,"description":291,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":292,"categories":293,"keywords":297,"publishedAt":44},"01M6D11YS49YDGXSBJ1YJ0FAD3","write-great-skill","Workflow and quality bar for agent skills: draft, polish, compress, verify, ship. Use whenever creating or editing a skill (`SKILL.md`, `references\u002F`, `rules\u002F`), or when project conventions route root `CLAUDE.md`\u002F`AGENTS.md` edits here, even if the user only says “改一下这个 skill”.","https:\u002F\u002Fgithub.com\u002FJinsYin\u002Fskills\u002Fblob\u002Fmaster\u002Fskills\u002Fwrite-great-skill\u002FSKILL.md",[294],{"categoryNo":295,"categoryName":296,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000023","Skill与智能体开发",[298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319],"write","write great skill","draft","route","references","project conventions","verify","project","editing","polish","only","conventions","use","Rules","ship","workflow","quality","compress","user","for","when","bar",{"skillNo":321,"name":322,"nameZh":6,"description":323,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":324,"categories":325,"keywords":326,"publishedAt":44},"01M6D11PP5HJ8142DKTSRJV73A","write-fspec","Derive the 功能规格说明书 (functional spec) from the product prototype and keep it versioned under products\u002Ffspec\u002F: Flyway-style V files plus a merged CURRENT.md. Use when a prototype is finalized, changed or backfilled, when a draft V is confirmed or CURRENT.md lags, or when the user mentions 功能规格, 功能规格说明书 or fspec. Not for the feature spec (.scratch\u002F*\u002Fspec.md) or DESIGN.md.","https:\u002F\u002Fgithub.com\u002FJinsYin\u002Fskills\u002Fblob\u002Fmaster\u002Fskills\u002Fwrite-fspec\u002FSKILL.md",[],[298,327,300,328,329,330,331,332,333,334,29,335,310,336,316,317,337,318,338,339,340],"write fspec","prototype","feature","product","read","spec","edit","grep","files","Bash","scratch","keep","functional","style",{"skillNo":342,"name":343,"nameZh":6,"description":344,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":345,"categories":346,"keywords":347,"publishedAt":44},"01M6D11JXM378SWT0VYVCPGN0Y","version-release","Cut a SemVer release — bump every module's version in lockstep, promote CHANGELOG.md, commit, tag, push to origin. Args `major|minor|patch|\u003Cx.y.z>`; none → level inferred from `[Unreleased]`, confirmed with user. Invoke only on explicit request: the user, another skill, or a project convention asking for a release.","https:\u002F\u002Fgithub.com\u002FJinsYin\u002Fskills\u002Fblob\u002Fmaster\u002Fskills\u002Fversion-release\u002FSKILL.md",[],[348,349,350,351,352,353,305,354,355,308,356,357,358,316,359,317,360,361,362,363,364],"release","version release","version","promote","push","changelog","another skill","bump","semver","patch","commit","with","request","cut","module","invoke","origin",{"skillNo":366,"name":367,"nameZh":6,"description":368,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":369,"categories":370,"keywords":379,"publishedAt":44},"01M6D11AR4DYNS4JM0QWQGAYS6","ui-ux-best-practices","UI\u002FUX rules for Chinese-language React\u002FVue admin consoles and their product\u002Fdesign specs. Use when designing, building, reviewing, or refactoring forms, lists, modals\u002Fdrawers, destructive actions, copy, formats, or console layout.","https:\u002F\u002Fgithub.com\u002FJinsYin\u002Fskills\u002Fblob\u002Fmaster\u002Fskills\u002Fui-ux-best-practices\u002FSKILL.md",[371,374],{"categoryNo":372,"categoryName":373,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000009","前端开发",{"categoryNo":375,"categoryName":376,"taxonomyType":377,"taxonomyTypeDesc":378},"01JBSEEDCAT000000000000032","设计师","PROFESSION","适用职业",[380,381,382,24,383,384,385,330,386,387,388,389,390,29,310,311,391,392,393,317,318,394],"ux","ui ux best practices","ui","ui ux","admin","chinese","layout","refactoring","actions","forms","console","vue","language","react","formats",{"skillNo":396,"name":397,"nameZh":6,"description":398,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":399,"categories":400,"keywords":402,"publishedAt":44},"01M6D10Q5V8BG1YRW3AV89VVA3","setup-rules","Conduct an interactive interview, then install selected agent conventions, adapters, `skillsw`, and sensitive-file read restrictions into a project; `update` refreshes installed items without prompting. Use when the user asks to set up agent rules, or run `update` after `setup-rules` conventions change (e.g. Skill Workflow sync). Not for reviewing or hand-editing `CLAUDE.local.md`.","https:\u002F\u002Fgithub.com\u002FJinsYin\u002Fskills\u002Fblob\u002Fmaster\u002Fskills\u002Fsetup-rules\u002FSKILL.md",[401],{"categoryNo":295,"categoryName":296,"taxonomyType":20,"taxonomyTypeDesc":21},[403,311,404,405,406,407,305,408,306,409,331,410,411,412,413,309,310,313,414,415,416,317,318,417,418,419],"setup rules","setup","SET","interview","change","run","update","up","sync","local","install","Adapters","agent rules","conduct","file","interactive","hand",{"skillNo":421,"name":422,"nameZh":6,"description":423,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":424,"categories":425,"keywords":427,"publishedAt":44},"01M6D10F5KCMR6WX9VAC5AFMD3","self-improve","Retrospect the current agent session (failures, user corrections, detours, token-heavy or slow turns) into lessons, shipped as minimal edits to jinsyin\u002Fskills skills — or a new skill, or a `setup-rules` convention for a heavy manually-invoked third-party skill — each as GitHub Issue + PR; nothing qualifies → closed `no-pr` record Issue. Args `[--dry-run] [focus]`. Invoke only when the user, a rule, or another skill calls for it.","https:\u002F\u002Fgithub.com\u002FJinsYin\u002Fskills\u002Fblob\u002Fmaster\u002Fskills\u002Fself-improve\u002FSKILL.md",[426],{"categoryNo":295,"categoryName":296,"taxonomyType":20,"taxonomyTypeDesc":21},[428,429,430,431,432,433,308,311,434,435,436,354,437,408,36,438,439,440,441,442,317,443,444,363,318,445],"self improve","improve","self","pr","session","minimal","record","focus","github","github issue","issue","third-party","as","calls","dry","new","lessons","agent session"]