[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6ACQXPRPRPMJ66XMHTCTH3R":3,"skill-same:01M6ACQXPRPRPMJ66XMHTCTH3R":176},{"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":18,"publishedAt":38,"linkOnly":39,"markdownContent":40,"markdownBody":41,"frontMatter":42,"refName":43,"commitSha":44,"skillDirectory":45,"forksCount":46,"repositoryHtmlUrl":47,"repositoryHomepageUrl":48,"ownerHtmlUrl":49,"ownerBlogUrl":50,"ownerDescription":6,"updatedAt":51,"install":52,"resources":65},"01M6ACQXPRPRPMJ66XMHTCTH3R","doris-img-gen",null,"Create Apache Doris article illustrations in the Doris hand-drawn whiteboard style, using a randomly selected Pip, Dori, or Flux mascot only when a task, guide, operator, diagnosis, or anthropomorphic narrative benefits from a character. Use when the user invokes $doris-img-gen or asks for a Doris technical article illustration, concept visual, infographic, architecture diagram, process diagram, or mascot-assisted explanatory graphic.","apache\u002Fdoris-website","apache","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F47359?v=4","01M6AC83E6K4FDKK7HZ8WNMQKE","The Apache Software Foundation","01M6ACQ6ZTWKNCG0HSKEJ2RDF7",137,"Apache-2.0","https:\u002F\u002Fgithub.com\u002Fapache\u002Fdoris-website\u002Fblob\u002Fmaster\u002Fdoc-tools\u002Fskills\u002Fdoris-img-gen\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,9,35,36,37],"doris","doris img gen","img","flux","when","hand","whiteboard","benefits","article illustrations","narrative","diagnosis","article","architecture","infographic","only","operator","create","architecture diagram","diagram","2026-11-10 10:12:30",false,"---\nname: doris-img-gen\ndescription: Create Apache Doris article illustrations in the Doris hand-drawn whiteboard style, using a randomly selected Pip, Dori, or Flux mascot only when a task, guide, operator, diagnosis, or anthropomorphic narrative benefits from a character. Use when the user invokes $doris-img-gen or asks for a Doris technical article illustration, concept visual, infographic, architecture diagram, process diagram, or mascot-assisted explanatory graphic.\n---\n\n# Doris Article Illustration Generator\n\nCreate technically clear, visually consistent illustrations for Apache Doris articles. Treat the text after `$doris-img-gen` as the primary content brief.\n\n## Prepare\n\n1. Read `references\u002Fvisual-style.md` completely before generating an image.\n2. Extract the requested concepts, relationships, sequence, labels, and layout constraints. Preserve them; do not invent technical facts, metrics, components, or product claims.\n3. If the request refers to an article, section, or local draft, read the relevant passage before composing the illustration.\n4. Keep all in-image wording in English by default. Use the user's exact quoted labels when supplied. Keep labels short and render each label exactly once.\n\n## Decide Whether to Use a Mascot\n\nApply the **semantic-role test**: include a mascot only when it performs a meaningful action that can be stated as a verb in the image.\n\nInclude one mascot when the scene needs:\n\n- an operator starting or running a task;\n- an investigator searching, observing, comparing, or diagnosing;\n- a guide teaching or walking readers through a process;\n- a central actor already present in the requested narrative;\n- a human-like moment that makes an abstract idea easier to understand.\n\nOmit the mascot when the image is primarily:\n\n- architecture, topology, data flow, or component relationships;\n- a chart, table, query plan, dashboard, or factual comparison;\n- a compact process whose clarity would be reduced by a character;\n- a scene where the mascot would be decorative rather than explanatory.\n\nNever add a mascot only to fill space. Use one mascot by default. Use more than one only when interaction among roles is itself part of the requested content.\n\nAn explicit user request for a character always overrides random selection.\n\nTreat the character roles as personality and prop hints, not fixed assignment rules:\n\n- **Pip — The Query Runner:** purple triangular character; can run, launch, point, inspect, or guide.\n- **Dori — The Core Engine:** cyan capsule character; can compute, operate, inspect, compare, or guide.\n- **Flux — The Data Explorer:** mint-green diagonal capsule character; can search, investigate, connect, inspect, or guide.\n\n### Randomize Mascot Selection\n\nAfter applying the semantic-role test, count only the images that need a mascot and do not already have a user-specified character. Randomize those slots by running the bundled selector once from the skill directory:\n\n```bash\npython3 scripts\u002Fselect_mascot.py --count \u003Cnumber-of-unspecified-mascot-slots>\n```\n\nAssign the returned names to the mascot-bearing images in output order. For a single image, omit `--count` or pass `--count 1`.\n\nThe selector creates a fresh system-random order on every invocation. In a batch, it uses every character once before reshuffling and avoids the same character on adjacent slots. Use its output exactly: do not replace or rerun a valid result because another mascot seems more suitable for the scene. Do not run the selector for images that fail the semantic-role test.\n\nInspect `assets\u002Fmeet-d-crew.jpg` with an image-viewing tool whenever a mascot will appear. Use it as the identity reference and preserve the selected character's silhouette, body color, face, and simple black limbs. Translate the character into the illustration style instead of copying the reference card layout or its surrounding text.\n\n## Compose the Image Prompt\n\nBuild a structured prompt with these fields:\n\n```text\nUse case: infographic-diagram\nAsset type: Apache Doris technical article illustration\nPrimary request: \u003Ccontent and relationships from the user's brief>\nScene\u002Fbackdrop: \u003Conly what is needed to explain the content>\nSubject: \u003Cmain concepts, icons, arrows, and the mascot's action if included>\nStyle\u002Fmedium: \u003Cthe canonical style from references\u002Fvisual-style.md>\nComposition\u002Fframing: landscape 1200 x 630 with a clear reading order and generous margins\nText (verbatim): \u003Cexact English labels, or \"No text\">\nColor palette: \u003Cthe canonical palette from references\u002Fvisual-style.md>\nConstraints: technically faithful; readable labels; consistent icon scale; clear arrow direction; no extra text; no watermark; no photorealism; no 3D\nAvoid: decorative clutter; dense paragraphs; tiny labels; unrelated logos; mascot use without a semantic role\n```\n\nIf using the D-Crew reference, add:\n\n```text\nInput images: Image N is the D-Crew identity reference. Use only the selected mascot; do not reproduce the reference poster, logo lockup, cards, headings, or descriptive copy.\nCharacter consistency: preserve the selected mascot's recognizable geometry, color, face, and limbs; render it with the same hand-drawn marker linework as the rest of the illustration.\n```\n\nIf the user also supplies a composition reference, identify each input image by number and role. Preserve the composition's information architecture without copying irrelevant artifacts.\n\n## Generate and Review\n\n1. Use the built-in image-generation tool by default.\n2. For a new image without a mascot or other supplied image reference, omit all reference-image parameters.\n3. When using a local mascot or composition reference, pass the required local files through `referenced_image_paths` and describe each image's role explicitly.\n4. Save the final image in the user's project or requested destination as a PNG with a descriptive filename.\n5. Inspect the result at full resolution. Verify:\n   - all requested concepts and relationships are present;\n   - arrow directions and process order are correct;\n   - every label is English, legible, and spelled correctly;\n   - no unrequested wording appears;\n   - the mascot decision adds meaning, and the chosen character follows the random rotation or the user's explicit request;\n   - the image follows the canonical palette, background, linework, and dimensions.\n6. If any verification fails, refine the smallest necessary area and inspect again.\n\n## Invocation Examples\n\n```text\n$doris-img-gen Show a query diagnosis loop with the exact labels \"Hypothesis\", \"Evidence\", \"Observation\", and \"Elimination\". A data investigator reviews profile, plan, chart, and checklist evidence.\n```\n\n```text\n$doris-img-gen Draw a left-to-right Doris data flow from client to FE to BE to object storage. Use no mascot and no text beyond the component labels.\n```\n","# Doris Article Illustration Generator\n\nCreate technically clear, visually consistent illustrations for Apache Doris articles. Treat the text after `$doris-img-gen` as the primary content brief.\n\n## Prepare\n\n1. Read `references\u002Fvisual-style.md` completely before generating an image.\n2. Extract the requested concepts, relationships, sequence, labels, and layout constraints. Preserve them; do not invent technical facts, metrics, components, or product claims.\n3. If the request refers to an article, section, or local draft, read the relevant passage before composing the illustration.\n4. Keep all in-image wording in English by default. Use the user's exact quoted labels when supplied. Keep labels short and render each label exactly once.\n\n## Decide Whether to Use a Mascot\n\nApply the **semantic-role test**: include a mascot only when it performs a meaningful action that can be stated as a verb in the image.\n\nInclude one mascot when the scene needs:\n\n- an operator starting or running a task;\n- an investigator searching, observing, comparing, or diagnosing;\n- a guide teaching or walking readers through a process;\n- a central actor already present in the requested narrative;\n- a human-like moment that makes an abstract idea easier to understand.\n\nOmit the mascot when the image is primarily:\n\n- architecture, topology, data flow, or component relationships;\n- a chart, table, query plan, dashboard, or factual comparison;\n- a compact process whose clarity would be reduced by a character;\n- a scene where the mascot would be decorative rather than explanatory.\n\nNever add a mascot only to fill space. Use one mascot by default. Use more than one only when interaction among roles is itself part of the requested content.\n\nAn explicit user request for a character always overrides random selection.\n\nTreat the character roles as personality and prop hints, not fixed assignment rules:\n\n- **Pip — The Query Runner:** purple triangular character; can run, launch, point, inspect, or guide.\n- **Dori — The Core Engine:** cyan capsule character; can compute, operate, inspect, compare, or guide.\n- **Flux — The Data Explorer:** mint-green diagonal capsule character; can search, investigate, connect, inspect, or guide.\n\n### Randomize Mascot Selection\n\nAfter applying the semantic-role test, count only the images that need a mascot and do not already have a user-specified character. Randomize those slots by running the bundled selector once from the skill directory:\n\n```bash\npython3 scripts\u002Fselect_mascot.py --count \u003Cnumber-of-unspecified-mascot-slots>\n```\n\nAssign the returned names to the mascot-bearing images in output order. For a single image, omit `--count` or pass `--count 1`.\n\nThe selector creates a fresh system-random order on every invocation. In a batch, it uses every character once before reshuffling and avoids the same character on adjacent slots. Use its output exactly: do not replace or rerun a valid result because another mascot seems more suitable for the scene. Do not run the selector for images that fail the semantic-role test.\n\nInspect `assets\u002Fmeet-d-crew.jpg` with an image-viewing tool whenever a mascot will appear. Use it as the identity reference and preserve the selected character's silhouette, body color, face, and simple black limbs. Translate the character into the illustration style instead of copying the reference card layout or its surrounding text.\n\n## Compose the Image Prompt\n\nBuild a structured prompt with these fields:\n\n```text\nUse case: infographic-diagram\nAsset type: Apache Doris technical article illustration\nPrimary request: \u003Ccontent and relationships from the user's brief>\nScene\u002Fbackdrop: \u003Conly what is needed to explain the content>\nSubject: \u003Cmain concepts, icons, arrows, and the mascot's action if included>\nStyle\u002Fmedium: \u003Cthe canonical style from references\u002Fvisual-style.md>\nComposition\u002Fframing: landscape 1200 x 630 with a clear reading order and generous margins\nText (verbatim): \u003Cexact English labels, or \"No text\">\nColor palette: \u003Cthe canonical palette from references\u002Fvisual-style.md>\nConstraints: technically faithful; readable labels; consistent icon scale; clear arrow direction; no extra text; no watermark; no photorealism; no 3D\nAvoid: decorative clutter; dense paragraphs; tiny labels; unrelated logos; mascot use without a semantic role\n```\n\nIf using the D-Crew reference, add:\n\n```text\nInput images: Image N is the D-Crew identity reference. Use only the selected mascot; do not reproduce the reference poster, logo lockup, cards, headings, or descriptive copy.\nCharacter consistency: preserve the selected mascot's recognizable geometry, color, face, and limbs; render it with the same hand-drawn marker linework as the rest of the illustration.\n```\n\nIf the user also supplies a composition reference, identify each input image by number and role. Preserve the composition's information architecture without copying irrelevant artifacts.\n\n## Generate and Review\n\n1. Use the built-in image-generation tool by default.\n2. For a new image without a mascot or other supplied image reference, omit all reference-image parameters.\n3. When using a local mascot or composition reference, pass the required local files through `referenced_image_paths` and describe each image's role explicitly.\n4. Save the final image in the user's project or requested destination as a PNG with a descriptive filename.\n5. Inspect the result at full resolution. Verify:\n   - all requested concepts and relationships are present;\n   - arrow directions and process order are correct;\n   - every label is English, legible, and spelled correctly;\n   - no unrequested wording appears;\n   - the mascot decision adds meaning, and the chosen character follows the random rotation or the user's explicit request;\n   - the image follows the canonical palette, background, linework, and dimensions.\n6. If any verification fails, refine the smallest necessary area and inspect again.\n\n## Invocation Examples\n\n```text\n$doris-img-gen Show a query diagnosis loop with the exact labels \"Hypothesis\", \"Evidence\", \"Observation\", and \"Elimination\". A data investigator reviews profile, plan, chart, and checklist evidence.\n```\n\n```text\n$doris-img-gen Draw a left-to-right Doris data flow from client to FE to BE to object storage. Use no mascot and no text beyond the component labels.\n```\n",{"name":5,"description":7},"master","618ed23852c4c67b16296910731076bb11594a09","doc-tools\u002Fskills\u002Fdoris-img-gen",488,"https:\u002F\u002Fgithub.com\u002Fapache\u002Fdoris-website","https:\u002F\u002Fdoris.apache.org\u002F","https:\u002F\u002Fgithub.com\u002Fapache","https:\u002F\u002Fwww.apache.org\u002F","2026-11-11 10:45:31",{"source":8,"skillName":5,"commands":53,"prompt":63,"zipAvailable":64},[54,57,60],{"tool":55,"command":56},"npx","npx skills add apache\u002Fdoris-website --skill doris-img-gen",{"tool":58,"command":59},"bunx","bunx skills add apache\u002Fdoris-website --skill doris-img-gen",{"tool":61,"command":62},"pnpm","pnpm dlx skills add apache\u002Fdoris-website --skill doris-img-gen","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fapache\u002Fdoris-website\u002Fblob\u002Fmaster\u002Fdoc-tools\u002Fskills\u002Fdoris-img-gen\u002FSKILL.md",true,[66,72,76,82,86,90,94,98,102,106,110,114,118,124,128,132,136,140,144,148,152,156,160,164,168,172],{"path":67,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":70,"sourceHtmlUrl":71},".claude-plugin\u002Fmarketplace.json","REFERENCE","参考文档",2631,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Farticle-to-prototype-cskill\u002F.claude-plugin\u002Fmarketplace.json",{"path":73,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":74,"sourceHtmlUrl":75},"agents\u002Fopenai.yaml",262,"https:\u002F\u002Fgithub.com\u002Fapache\u002Fdoris-website\u002Fblob\u002Fmaster\u002Fdoc-tools\u002Fskills\u002Fdoris-img-gen\u002Fagents\u002Fopenai.yaml",{"path":77,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":80,"sourceHtmlUrl":81},"assets\u002Fexamples\u002Fsample_input.md","ASSET","资产文件",1154,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Farticle-to-prototype-cskill\u002Fassets\u002Fexamples\u002Fsample_input.md",{"path":83,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":84,"sourceHtmlUrl":85},"assets\u002Fmeet-d-crew.jpg",164870,"https:\u002F\u002Fgithub.com\u002Fapache\u002Fdoris-website\u002Fblob\u002Fmaster\u002Fdoc-tools\u002Fskills\u002Fdoris-img-gen\u002Fassets\u002Fmeet-d-crew.jpg",{"path":87,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":88,"sourceHtmlUrl":89},"assets\u002Fprompts\u002Fanalysis_prompt.txt",835,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Farticle-to-prototype-cskill\u002Fassets\u002Fprompts\u002Fanalysis_prompt.txt",{"path":91,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":92,"sourceHtmlUrl":93},"DECISIONS.md",12397,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Farticle-to-prototype-cskill\u002FDECISIONS.md",{"path":95,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":96,"sourceHtmlUrl":97},"README.md",8768,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Farticle-to-prototype-cskill\u002FREADME.md",{"path":99,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":100,"sourceHtmlUrl":101},"references\u002Fanalysis-methodology.md",2304,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Farticle-to-prototype-cskill\u002Freferences\u002Fanalysis-methodology.md",{"path":103,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":104,"sourceHtmlUrl":105},"references\u002Fextraction-patterns.md",3188,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Farticle-to-prototype-cskill\u002Freferences\u002Fextraction-patterns.md",{"path":107,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":108,"sourceHtmlUrl":109},"references\u002Fgeneration-rules.md",3486,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Farticle-to-prototype-cskill\u002Freferences\u002Fgeneration-rules.md",{"path":111,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":112,"sourceHtmlUrl":113},"references\u002Fvisual-style.md",2932,"https:\u002F\u002Fgithub.com\u002Fapache\u002Fdoris-website\u002Fblob\u002Fmaster\u002Fdoc-tools\u002Fskills\u002Fdoris-img-gen\u002Freferences\u002Fvisual-style.md",{"path":115,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":116,"sourceHtmlUrl":117},"requirements.txt",335,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Farticle-to-prototype-cskill\u002Frequirements.txt",{"path":119,"resourceType":120,"resourceTypeDesc":121,"sizeBytes":122,"sourceHtmlUrl":123},"scripts\u002F__init__.py","SCRIPT","脚本",172,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Farticle-to-prototype-cskill\u002Fscripts\u002F__init__.py",{"path":125,"resourceType":120,"resourceTypeDesc":121,"sizeBytes":126,"sourceHtmlUrl":127},"scripts\u002Fanalyzers\u002F__init__.py",519,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Farticle-to-prototype-cskill\u002Fscripts\u002Fanalyzers\u002F__init__.py",{"path":129,"resourceType":120,"resourceTypeDesc":121,"sizeBytes":130,"sourceHtmlUrl":131},"scripts\u002Fanalyzers\u002Fcode_detector.py",3926,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Farticle-to-prototype-cskill\u002Fscripts\u002Fanalyzers\u002Fcode_detector.py",{"path":133,"resourceType":120,"resourceTypeDesc":121,"sizeBytes":134,"sourceHtmlUrl":135},"scripts\u002Fanalyzers\u002Fcontent_analyzer.py",14354,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Farticle-to-prototype-cskill\u002Fscripts\u002Fanalyzers\u002Fcontent_analyzer.py",{"path":137,"resourceType":120,"resourceTypeDesc":121,"sizeBytes":138,"sourceHtmlUrl":139},"scripts\u002Fextractors\u002F__init__.py",359,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Farticle-to-prototype-cskill\u002Fscripts\u002Fextractors\u002F__init__.py",{"path":141,"resourceType":120,"resourceTypeDesc":121,"sizeBytes":142,"sourceHtmlUrl":143},"scripts\u002Fextractors\u002Fmarkdown_extractor.py",6272,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Farticle-to-prototype-cskill\u002Fscripts\u002Fextractors\u002Fmarkdown_extractor.py",{"path":145,"resourceType":120,"resourceTypeDesc":121,"sizeBytes":146,"sourceHtmlUrl":147},"scripts\u002Fextractors\u002Fnotebook_extractor.py",8285,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Farticle-to-prototype-cskill\u002Fscripts\u002Fextractors\u002Fnotebook_extractor.py",{"path":149,"resourceType":120,"resourceTypeDesc":121,"sizeBytes":150,"sourceHtmlUrl":151},"scripts\u002Fextractors\u002Fpdf_extractor.py",16216,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Farticle-to-prototype-cskill\u002Fscripts\u002Fextractors\u002Fpdf_extractor.py",{"path":153,"resourceType":120,"resourceTypeDesc":121,"sizeBytes":154,"sourceHtmlUrl":155},"scripts\u002Fextractors\u002Fweb_extractor.py",16745,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Farticle-to-prototype-cskill\u002Fscripts\u002Fextractors\u002Fweb_extractor.py",{"path":157,"resourceType":120,"resourceTypeDesc":121,"sizeBytes":158,"sourceHtmlUrl":159},"scripts\u002Fgenerators\u002F__init__.py",379,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Farticle-to-prototype-cskill\u002Fscripts\u002Fgenerators\u002F__init__.py",{"path":161,"resourceType":120,"resourceTypeDesc":121,"sizeBytes":162,"sourceHtmlUrl":163},"scripts\u002Fgenerators\u002Flanguage_selector.py",4572,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Farticle-to-prototype-cskill\u002Fscripts\u002Fgenerators\u002Flanguage_selector.py",{"path":165,"resourceType":120,"resourceTypeDesc":121,"sizeBytes":166,"sourceHtmlUrl":167},"scripts\u002Fgenerators\u002Fprototype_generator.py",14388,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Farticle-to-prototype-cskill\u002Fscripts\u002Fgenerators\u002Fprototype_generator.py",{"path":169,"resourceType":120,"resourceTypeDesc":121,"sizeBytes":170,"sourceHtmlUrl":171},"scripts\u002Fmain.py",7386,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Farticle-to-prototype-cskill\u002Fscripts\u002Fmain.py",{"path":173,"resourceType":120,"resourceTypeDesc":121,"sizeBytes":174,"sourceHtmlUrl":175},"scripts\u002Fselect_mascot.py",1173,"https:\u002F\u002Fgithub.com\u002Fapache\u002Fdoris-website\u002Fblob\u002Fmaster\u002Fdoc-tools\u002Fskills\u002Fdoris-img-gen\u002Fscripts\u002Fselect_mascot.py",[177,212,222,264],{"skillNo":178,"name":179,"nameZh":6,"description":180,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":181,"categories":182,"keywords":193,"publishedAt":38},"01M6ACR42RYYQ0EZ0Y56K2ADK8","weekly-report-slack","Generate an English Slack-ready post and save a temporary Markdown copy from an Apache Doris weekly community report MDX file. Use when the user invokes `$weekly-report-slack path\u002Fto\u002Freport.mdx` or asks to turn a Doris weekly report, especially `src\u002Fpages\u002Fcommunity-report\u002F_reports\u002FYYYY-MM-DD.mdx`, into the standard Slack announcement format with date range, summary paragraph, highlights, and report link.","https:\u002F\u002Fgithub.com\u002Fapache\u002Fdoris-website\u002Fblob\u002Fmaster\u002Fdoc-tools\u002Fskills\u002Fweekly-report-slack\u002FSKILL.md",[183,188],{"categoryNo":184,"categoryName":185,"taxonomyType":186,"taxonomyTypeDesc":187},"01JBSEEDCAT000000000000005","邮件与沟通","SCENARIO","使用场景",{"categoryNo":189,"categoryName":190,"taxonomyType":191,"taxonomyTypeDesc":192},"01JBSEEDCAT000000000000034","行政与办公人员","PROFESSION","适用职业",[194,195,196,197,198,9,199,200,201,19,202,203,204,205,206,207,208,209,210,211,23],"slack","report","weekly report slack","Weekly Report","weekly","generate","announcement","file","save","markdown","src","ready","reports","community","pages","english","mm","path",{"skillNo":213,"name":214,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":215,"categories":216,"keywords":217,"publishedAt":38},"01M6ACR0TWBD63DPH03X00A541","doris-release-docs","https:\u002F\u002Fgithub.com\u002Fapache\u002Fdoris-website\u002Fblob\u002Fmaster\u002Fdoc-tools\u002Fskills\u002Fdoris-release-docs\u002FSKILL.md",[],[218,219,19,220,221],"release docs","doris release docs","release","docs",{"skillNo":223,"name":224,"nameZh":6,"description":225,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":226,"categories":227,"keywords":240,"publishedAt":38},"01M6ACQTR81TG0BRJX9V8GK714","doris-doc-optimize","Restructure and SEO\u002FGEO-optimize an existing Apache Doris user documentation file (`.md` \u002F `.mdx`), primarily under `i18n\u002Fzh-CN\u002Fdocusaurus-plugin-content-docs-next\u002Fcurrent\u002F` or `docs-next\u002F`. The skill reorganizes the doc from a user-scenario perspective, applies tables and lists for parameters \u002F scenarios \u002F FAQs, fixes formatting (4-space indent, code-block language tags, blank lines, Chinese\u002FEnglish spacing, command-concatenation bugs), validates every external link with `curl` and every `\u002Fimages\u002F...` reference against `static\u002F`, and updates the frontmatter `description` + `keywords` per the bundled `.\u002Freferences\u002Fseo-geo.md` guide — all without changing the original meaning or dropping any technical content (commands, parameters, YAML, sample outputs, images are preserved verbatim). Use this skill whenever the user points at a single Doris doc file and asks to \"优化这篇文档\", \"重新组织这篇文档\", \"帮我优化文档结构\", \"对这篇文章进行 SEO 优化\", \"按 SEO\u002FGEO 优化这篇文档\", \"调整一下这篇文档的结构\", \"把这篇文档润色一下\", \"optimize this doc\", \"restructure this doc\", \"polish this doc\", or anything similar — even if the user only says \"make this doc better\" or \"这篇文档读起来不顺\" while pointing at a Doris doc path. Do NOT use this skill for translating between languages (use `doris-translate-zh-to-en` instead), writing a brand-new doc from scratch (use `doris-feature-card` or `doc-coauthoring`), or pure link-checking without restructure (use `check-md-links` instead).","https:\u002F\u002Fgithub.com\u002Fapache\u002Fdoris-website\u002Fblob\u002Fmaster\u002Fdoc-tools\u002Fskills\u002Fdoris-doc-optimize\u002FSKILL.md",[228,231,234,237],{"categoryNo":229,"categoryName":230,"taxonomyType":186,"taxonomyTypeDesc":187},"01JBSEEDCAT000000000000019","营销推广",{"categoryNo":232,"categoryName":233,"taxonomyType":186,"taxonomyTypeDesc":187},"01JBSEEDCAT000000000000023","Skill与智能体开发",{"categoryNo":235,"categoryName":236,"taxonomyType":191,"taxonomyTypeDesc":192},"01JBSEEDCAT000000000000035","市场营销",{"categoryNo":238,"categoryName":239,"taxonomyType":191,"taxonomyTypeDesc":192},"01JBSEEDCAT000000000000036","内容创作者",[241,19,242,243,244,245,246,247,248,249,250,251,9,252,253,254,255,256,201,257,258,259,260,261,262,221,263],"doris doc optimize","doc","optimize","static","文章","at","tables","links","card","scenario","guide","do","chinese","command","brand","polish","content","i18n","code","plugin","documentation","translate","writing",{"skillNo":265,"name":266,"nameZh":6,"description":267,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":268,"categories":269,"keywords":273,"publishedAt":38},"01M6ACQQ2B7GN6YEX6SQ6PZNR7","add-release","Publish a new Apache Doris Core or Doris ecosystem release on the Doris website. Use when updating download data, bilingual release notes, the Doris Core release index, release navigation, or ecosystem release pages. Confirm the component and release metadata first because Core and ecosystem releases use different files and validation paths.","https:\u002F\u002Fgithub.com\u002Fapache\u002Fdoris-website\u002Fblob\u002Fmaster\u002Fdoc-tools\u002Fskills\u002Fadd-release\u002FSKILL.md",[270],{"categoryNo":271,"categoryName":272,"taxonomyType":191,"taxonomyTypeDesc":192},"01JBSEEDCAT000000000000033","数据分析师",[274,275,220,19,276,277,208,278,279,280,281,282,23,283,284,285,9,286,287,288,289,290,291],"add","add release","ecosystem","paths","files","releases","use","data","publish","website","metadata","index","validation","core","release notes","notes","component","new"]