diff --git a/account/admin/skills/algorithmic-art/LICENSE.txt b/account/admin/skills/algorithmic-art/LICENSE.txt new file mode 100644 index 0000000..7a4a3ea --- /dev/null +++ b/account/admin/skills/algorithmic-art/LICENSE.txt @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. \ No newline at end of file diff --git a/account/admin/skills/algorithmic-art/SKILL.md b/account/admin/skills/algorithmic-art/SKILL.md new file mode 100644 index 0000000..27f069b --- /dev/null +++ b/account/admin/skills/algorithmic-art/SKILL.md @@ -0,0 +1,405 @@ +--- +name: openakita/skills@algorithmic-art +description: Creating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems. Create original algorithmic art rather than copying existing artists' work to avoid copyright violations. +license: Complete terms in LICENSE.txt +--- + +Algorithmic philosophies are computational aesthetic movements that are then expressed through code. Output .md files (philosophy), .html files (interactive viewer), and .js files (generative algorithms). + +This happens in two steps: +1. Algorithmic Philosophy Creation (.md file) +2. Express by creating p5.js generative art (.html + .js files) + +First, undertake this task: + +## ALGORITHMIC PHILOSOPHY CREATION + +To begin, create an ALGORITHMIC PHILOSOPHY (not static images or templates) that will be interpreted through: +- Computational processes, emergent behavior, mathematical beauty +- Seeded randomness, noise fields, organic systems +- Particles, flows, fields, forces +- Parametric variation and controlled chaos + +### THE CRITICAL UNDERSTANDING +- What is received: Some subtle input or instructions by the user to take into account, but use as a foundation; it should not constrain creative freedom. +- What is created: An algorithmic philosophy/generative aesthetic movement. +- What happens next: The same version receives the philosophy and EXPRESSES IT IN CODE - creating p5.js sketches that are 90% algorithmic generation, 10% essential parameters. + +Consider this approach: +- Write a manifesto for a generative art movement +- The next phase involves writing the algorithm that brings it to life + +The philosophy must emphasize: Algorithmic expression. Emergent behavior. Computational beauty. Seeded variation. + +### HOW TO GENERATE AN ALGORITHMIC PHILOSOPHY + +**Name the movement** (1-2 words): "Organic Turbulence" / "Quantum Harmonics" / "Emergent Stillness" + +**Articulate the philosophy** (4-6 paragraphs - concise but complete): + +To capture the ALGORITHMIC essence, express how this philosophy manifests through: +- Computational processes and mathematical relationships? +- Noise functions and randomness patterns? +- Particle behaviors and field dynamics? +- Temporal evolution and system states? +- Parametric variation and emergent complexity? + +**CRITICAL GUIDELINES:** +- **Avoid redundancy**: Each algorithmic aspect should be mentioned once. Avoid repeating concepts about noise theory, particle dynamics, or mathematical principles unless adding new depth. +- **Emphasize craftsmanship REPEATEDLY**: The philosophy MUST stress multiple times that the final algorithm should appear as though it took countless hours to develop, was refined with care, and comes from someone at the absolute top of their field. This framing is essential - repeat phrases like "meticulously crafted algorithm," "the product of deep computational expertise," "painstaking optimization," "master-level implementation." +- **Leave creative space**: Be specific about the algorithmic direction, but concise enough that the next Claude has room to make interpretive implementation choices at an extremely high level of craftsmanship. + +The philosophy must guide the next version to express ideas ALGORITHMICALLY, not through static images. Beauty lives in the process, not the final frame. + +### PHILOSOPHY EXAMPLES + +**"Organic Turbulence"** +Philosophy: Chaos constrained by natural law, order emerging from disorder. +Algorithmic expression: Flow fields driven by layered Perlin noise. Thousands of particles following vector forces, their trails accumulating into organic density maps. Multiple noise octaves create turbulent regions and calm zones. Color emerges from velocity and density - fast particles burn bright, slow ones fade to shadow. The algorithm runs until equilibrium - a meticulously tuned balance where every parameter was refined through countless iterations by a master of computational aesthetics. + +**"Quantum Harmonics"** +Philosophy: Discrete entities exhibiting wave-like interference patterns. +Algorithmic expression: Particles initialized on a grid, each carrying a phase value that evolves through sine waves. When particles are near, their phases interfere - constructive interference creates bright nodes, destructive creates voids. Simple harmonic motion generates complex emergent mandalas. The result of painstaking frequency calibration where every ratio was carefully chosen to produce resonant beauty. + +**"Recursive Whispers"** +Philosophy: Self-similarity across scales, infinite depth in finite space. +Algorithmic expression: Branching structures that subdivide recursively. Each branch slightly randomized but constrained by golden ratios. L-systems or recursive subdivision generate tree-like forms that feel both mathematical and organic. Subtle noise perturbations break perfect symmetry. Line weights diminish with each recursion level. Every branching angle the product of deep mathematical exploration. + +**"Field Dynamics"** +Philosophy: Invisible forces made visible through their effects on matter. +Algorithmic expression: Vector fields constructed from mathematical functions or noise. Particles born at edges, flowing along field lines, dying when they reach equilibrium or boundaries. Multiple fields can attract, repel, or rotate particles. The visualization shows only the traces - ghost-like evidence of invisible forces. A computational dance meticulously choreographed through force balance. + +**"Stochastic Crystallization"** +Philosophy: Random processes crystallizing into ordered structures. +Algorithmic expression: Randomized circle packing or Voronoi tessellation. Start with random points, let them evolve through relaxation algorithms. Cells push apart until equilibrium. Color based on cell size, neighbor count, or distance from center. The organic tiling that emerges feels both random and inevitable. Every seed produces unique crystalline beauty - the mark of a master-level generative algorithm. + +*These are condensed examples. The actual algorithmic philosophy should be 4-6 substantial paragraphs.* + +### ESSENTIAL PRINCIPLES +- **ALGORITHMIC PHILOSOPHY**: Creating a computational worldview to be expressed through code +- **PROCESS OVER PRODUCT**: Always emphasize that beauty emerges from the algorithm's execution - each run is unique +- **PARAMETRIC EXPRESSION**: Ideas communicate through mathematical relationships, forces, behaviors - not static composition +- **ARTISTIC FREEDOM**: The next Claude interprets the philosophy algorithmically - provide creative implementation room +- **PURE GENERATIVE ART**: This is about making LIVING ALGORITHMS, not static images with randomness +- **EXPERT CRAFTSMANSHIP**: Repeatedly emphasize the final algorithm must feel meticulously crafted, refined through countless iterations, the product of deep expertise by someone at the absolute top of their field in computational aesthetics + +**The algorithmic philosophy should be 4-6 paragraphs long.** Fill it with poetic computational philosophy that brings together the intended vision. Avoid repeating the same points. Output this algorithmic philosophy as a .md file. + +--- + +## DEDUCING THE CONCEPTUAL SEED + +**CRITICAL STEP**: Before implementing the algorithm, identify the subtle conceptual thread from the original request. + +**THE ESSENTIAL PRINCIPLE**: +The concept is a **subtle, niche reference embedded within the algorithm itself** - not always literal, always sophisticated. Someone familiar with the subject should feel it intuitively, while others simply experience a masterful generative composition. The algorithmic philosophy provides the computational language. The deduced concept provides the soul - the quiet conceptual DNA woven invisibly into parameters, behaviors, and emergence patterns. + +This is **VERY IMPORTANT**: The reference must be so refined that it enhances the work's depth without announcing itself. Think like a jazz musician quoting another song through algorithmic harmony - only those who know will catch it, but everyone appreciates the generative beauty. + +--- + +## P5.JS IMPLEMENTATION + +With the philosophy AND conceptual framework established, express it through code. Pause to gather thoughts before proceeding. Use only the algorithmic philosophy created and the instructions below. + +### ⚠️ STEP 0: READ THE TEMPLATE FIRST ⚠️ + +**CRITICAL: BEFORE writing any HTML:** + +1. **Read** `templates/viewer.html` using the Read tool +2. **Study** the exact structure, styling, and Anthropic branding +3. **Use that file as the LITERAL STARTING POINT** - not just inspiration +4. **Keep all FIXED sections exactly as shown** (header, sidebar structure, Anthropic colors/fonts, seed controls, action buttons) +5. **Replace only the VARIABLE sections** marked in the file's comments (algorithm, parameters, UI controls for parameters) + +**Avoid:** +- ❌ Creating HTML from scratch +- ❌ Inventing custom styling or color schemes +- ❌ Using system fonts or dark themes +- ❌ Changing the sidebar structure + +**Follow these practices:** +- ✅ Copy the template's exact HTML structure +- ✅ Keep Anthropic branding (Poppins/Lora fonts, light colors, gradient backdrop) +- ✅ Maintain the sidebar layout (Seed → Parameters → Colors? → Actions) +- ✅ Replace only the p5.js algorithm and parameter controls + +The template is the foundation. Build on it, don't rebuild it. + +--- + +To create gallery-quality computational art that lives and breathes, use the algorithmic philosophy as the foundation. + +### TECHNICAL REQUIREMENTS + +**Seeded Randomness (Art Blocks Pattern)**: +```javascript +// ALWAYS use a seed for reproducibility +let seed = 12345; // or hash from user input +randomSeed(seed); +noiseSeed(seed); +``` + +**Parameter Structure - FOLLOW THE PHILOSOPHY**: + +To establish parameters that emerge naturally from the algorithmic philosophy, consider: "What qualities of this system can be adjusted?" + +```javascript +let params = { + seed: 12345, // Always include seed for reproducibility + // colors + // Add parameters that control YOUR algorithm: + // - Quantities (how many?) + // - Scales (how big? how fast?) + // - Probabilities (how likely?) + // - Ratios (what proportions?) + // - Angles (what direction?) + // - Thresholds (when does behavior change?) +}; +``` + +**To design effective parameters, focus on the properties the system needs to be tunable rather than thinking in terms of "pattern types".** + +**Core Algorithm - EXPRESS THE PHILOSOPHY**: + +**CRITICAL**: The algorithmic philosophy should dictate what to build. + +To express the philosophy through code, avoid thinking "which pattern should I use?" and instead think "how to express this philosophy through code?" + +If the philosophy is about **organic emergence**, consider using: +- Elements that accumulate or grow over time +- Random processes constrained by natural rules +- Feedback loops and interactions + +If the philosophy is about **mathematical beauty**, consider using: +- Geometric relationships and ratios +- Trigonometric functions and harmonics +- Precise calculations creating unexpected patterns + +If the philosophy is about **controlled chaos**, consider using: +- Random variation within strict boundaries +- Bifurcation and phase transitions +- Order emerging from disorder + +**The algorithm flows from the philosophy, not from a menu of options.** + +To guide the implementation, let the conceptual essence inform creative and original choices. Build something that expresses the vision for this particular request. + +**Canvas Setup**: Standard p5.js structure: +```javascript +function setup() { + createCanvas(1200, 1200); + // Initialize your system +} + +function draw() { + // Your generative algorithm + // Can be static (noLoop) or animated +} +``` + +### CRAFTSMANSHIP REQUIREMENTS + +**CRITICAL**: To achieve mastery, create algorithms that feel like they emerged through countless iterations by a master generative artist. Tune every parameter carefully. Ensure every pattern emerges with purpose. This is NOT random noise - this is CONTROLLED CHAOS refined through deep expertise. + +- **Balance**: Complexity without visual noise, order without rigidity +- **Color Harmony**: Thoughtful palettes, not random RGB values +- **Composition**: Even in randomness, maintain visual hierarchy and flow +- **Performance**: Smooth execution, optimized for real-time if animated +- **Reproducibility**: Same seed ALWAYS produces identical output + +### OUTPUT FORMAT + +Output: +1. **Algorithmic Philosophy** - As markdown or text explaining the generative aesthetic +2. **Single HTML Artifact** - Self-contained interactive generative art built from `templates/viewer.html` (see STEP 0 and next section) + +The HTML artifact contains everything: p5.js (from CDN), the algorithm, parameter controls, and UI - all in one file that works immediately in claude.ai artifacts or any browser. Start from the template file, not from scratch. + +--- + +## INTERACTIVE ARTIFACT CREATION + +**REMINDER: `templates/viewer.html` should have already been read (see STEP 0). Use that file as the starting point.** + +To allow exploration of the generative art, create a single, self-contained HTML artifact. Ensure this artifact works immediately in claude.ai or any browser - no setup required. Embed everything inline. + +### CRITICAL: WHAT'S FIXED VS VARIABLE + +The `templates/viewer.html` file is the foundation. It contains the exact structure and styling needed. + +**FIXED (always include exactly as shown):** +- Layout structure (header, sidebar, main canvas area) +- Anthropic branding (UI colors, fonts, gradients) +- Seed section in sidebar: + - Seed display + - Previous/Next buttons + - Random button + - Jump to seed input + Go button +- Actions section in sidebar: + - Regenerate button + - Reset button + +**VARIABLE (customize for each artwork):** +- The entire p5.js algorithm (setup/draw/classes) +- The parameters object (define what the art needs) +- The Parameters section in sidebar: + - Number of parameter controls + - Parameter names + - Min/max/step values for sliders + - Control types (sliders, inputs, etc.) +- Colors section (optional): + - Some art needs color pickers + - Some art might use fixed colors + - Some art might be monochrome (no color controls needed) + - Decide based on the art's needs + +**Every artwork should have unique parameters and algorithm!** The fixed parts provide consistent UX - everything else expresses the unique vision. + +### REQUIRED FEATURES + +**1. Parameter Controls** +- Sliders for numeric parameters (particle count, noise scale, speed, etc.) +- Color pickers for palette colors +- Real-time updates when parameters change +- Reset button to restore defaults + +**2. Seed Navigation** +- Display current seed number +- "Previous" and "Next" buttons to cycle through seeds +- "Random" button for random seed +- Input field to jump to specific seed +- Generate 100 variations when requested (seeds 1-100) + +**3. Single Artifact Structure** +```html + + +
+ + + + + + +` | Title language (en, zh, ja, etc.) |
+| `--no-title` | Alias for `--text none` |
+| `--quick` | Skip confirmation, use auto-selection |
+| `--ref ` | Reference images for style/composition guidance |
+
+## Five Dimensions
+
+| Dimension | Values | Default |
+|-----------|--------|---------|
+| **Type** | hero, conceptual, typography, metaphor, scene, minimal | auto |
+| **Palette** | warm, elegant, cool, dark, earth, vivid, pastel, mono, retro | auto |
+| **Rendering** | flat-vector, hand-drawn, painterly, digital, pixel, chalk | auto |
+| **Text** | none, title-only, title-subtitle, text-rich | title-only |
+| **Mood** | subtle, balanced, bold | balanced |
+| **Font** | clean, handwritten, serif, display | clean |
+
+Auto-selection rules: [references/auto-selection.md](references/auto-selection.md)
+
+## Galleries
+
+**Types**: hero, conceptual, typography, metaphor, scene, minimal
+→ Details: [references/types.md](references/types.md)
+
+**Palettes**: warm, elegant, cool, dark, earth, vivid, pastel, mono, retro
+→ Details: [references/palettes/](references/palettes/)
+
+**Renderings**: flat-vector, hand-drawn, painterly, digital, pixel, chalk
+→ Details: [references/renderings/](references/renderings/)
+
+**Text Levels**: none (pure visual) | title-only (default) | title-subtitle | text-rich (with tags)
+→ Details: [references/dimensions/text.md](references/dimensions/text.md)
+
+**Mood Levels**: subtle (low contrast) | balanced (default) | bold (high contrast)
+→ Details: [references/dimensions/mood.md](references/dimensions/mood.md)
+
+**Fonts**: clean (sans-serif) | handwritten | serif | display (bold decorative)
+→ Details: [references/dimensions/font.md](references/dimensions/font.md)
+
+## File Structure
+
+Output directory per `default_output_dir` preference:
+- `same-dir`: `{article-dir}/`
+- `imgs-subdir`: `{article-dir}/imgs/`
+- `independent` (default): `cover-image/{topic-slug}/`
+
+```
+/
+├── source-{slug}.{ext} # Source files
+├── refs/ # Reference images (if provided)
+│ ├── ref-01-{slug}.{ext}
+│ └── ref-01-{slug}.md # Description file
+├── prompts/cover.md # Generation prompt
+└── cover.png # Output image
+```
+
+**Slug**: 2-4 words, kebab-case. Conflict: append `-YYYYMMDD-HHMMSS`
+
+## Workflow
+
+### Progress Checklist
+
+```
+Cover Image Progress:
+- [ ] Step 0: Check preferences (EXTEND.md) ⛔ BLOCKING
+- [ ] Step 1: Analyze content + save refs + determine output dir
+- [ ] Step 2: Confirm options (6 dimensions) ⚠️ unless --quick
+- [ ] Step 3: Create prompt
+- [ ] Step 4: Generate image
+- [ ] Step 5: Completion report
+```
+
+### Flow
+
+```
+Input → [Step 0: Preferences] ─┬─ Found → Continue
+ └─ Not found → First-Time Setup ⛔ BLOCKING → Save EXTEND.md → Continue
+ ↓
+Analyze + Save Refs → [Output Dir] → [Confirm: 6 Dimensions] → Prompt → Generate → Complete
+ ↓
+ (skip if --quick or all specified)
+```
+
+### Step 0: Load Preferences ⛔ BLOCKING
+
+Check EXTEND.md existence (priority: project → user):
+```bash
+test -f .baoyu-skills/baoyu-cover-image/EXTEND.md && echo "project"
+test -f "$HOME/.baoyu-skills/baoyu-cover-image/EXTEND.md" && echo "user"
+```
+
+| Result | Action |
+|--------|--------|
+| Found | Load, display summary → Continue |
+| Not found | ⛔ Run first-time setup ([references/config/first-time-setup.md](references/config/first-time-setup.md)) → Save → Continue |
+
+**CRITICAL**: If not found, complete setup BEFORE any other steps or questions.
+
+### Step 1: Analyze Content
+
+1. **Save reference images** (if provided) → [references/workflow/reference-images.md](references/workflow/reference-images.md)
+2. **Save source content** (if pasted, save to `source.md`)
+3. **Analyze content**: topic, tone, keywords, visual metaphors
+4. **Deep analyze references** ⚠️: Extract specific, concrete elements (see reference-images.md)
+5. **Detect language**: Compare source, user input, EXTEND.md preference
+6. **Determine output directory**: Per File Structure rules
+
+### Step 2: Confirm Options ⚠️
+
+Full confirmation flow: [references/workflow/confirm-options.md](references/workflow/confirm-options.md)
+
+| Condition | Skipped | Still Asked |
+|-----------|---------|-------------|
+| `--quick` or `quick_mode: true` | 6 dimensions | Aspect ratio (unless `--aspect`) |
+| All 6 + `--aspect` specified | All | None |
+
+### Step 3: Create Prompt
+
+Save to `prompts/cover.md`. Template: [references/workflow/prompt-template.md](references/workflow/prompt-template.md)
+
+**CRITICAL - References in Frontmatter**:
+- Files saved to `refs/` → Add to frontmatter `references` list
+- Style extracted verbally (no file) → Omit `references`, describe in body
+- Before writing → Verify: `test -f refs/ref-NN-{slug}.{ext}`
+
+**Reference elements in body** MUST be detailed, prefixed with "MUST"/"REQUIRED", with integration approach.
+
+### Step 4: Generate Image
+
+1. **Backup existing** `cover.png` if regenerating
+2. **Check image generation skills**; if multiple, ask preference
+3. **Process references** from prompt frontmatter:
+ - `direct` usage → pass via `--ref` (use ref-capable backend)
+ - `style`/`palette` → extract traits, append to prompt
+4. **Generate**: Call skill with prompt file, output path, aspect ratio
+5. On failure: auto-retry once
+
+### Step 5: Completion Report
+
+```
+Cover Generated!
+
+Topic: [topic]
+Type: [type] | Palette: [palette] | Rendering: [rendering]
+Text: [text] | Mood: [mood] | Font: [font] | Aspect: [ratio]
+Title: [title or "visual only"]
+Language: [lang] | Watermark: [enabled/disabled]
+References: [N images or "extracted style" or "none"]
+Location: [directory path]
+
+Files:
+✓ source-{slug}.{ext}
+✓ prompts/cover.md
+✓ cover.png
+```
+
+## Image Modification
+
+| Action | Steps |
+|--------|-------|
+| **Regenerate** | Backup → Update prompt file FIRST → Regenerate |
+| **Change dimension** | Backup → Confirm new value → Update prompt → Regenerate |
+
+## Composition Principles
+
+- **Whitespace**: 40-60% breathing room
+- **Visual anchor**: Main element centered or offset left
+- **Characters**: Simplified silhouettes; NO realistic humans
+- **Title**: Use exact title from user/source; never invent
+
+## Extension Support
+
+Custom configurations via EXTEND.md. See **Step 0** for paths.
+
+Supports: Watermark | Preferred dimensions | Default aspect/output | Quick mode | Custom palettes | Language
+
+Schema: [references/config/preferences-schema.md](references/config/preferences-schema.md)
+
+## References
+
+**Dimensions**: [text.md](references/dimensions/text.md) | [mood.md](references/dimensions/mood.md) | [font.md](references/dimensions/font.md)
+**Palettes**: [references/palettes/](references/palettes/)
+**Renderings**: [references/renderings/](references/renderings/)
+**Types**: [references/types.md](references/types.md)
+**Auto-Selection**: [references/auto-selection.md](references/auto-selection.md)
+**Style Presets**: [references/style-presets.md](references/style-presets.md)
+**Compatibility**: [references/compatibility.md](references/compatibility.md)
+**Visual Elements**: [references/visual-elements.md](references/visual-elements.md)
+**Workflow**: [confirm-options.md](references/workflow/confirm-options.md) | [prompt-template.md](references/workflow/prompt-template.md) | [reference-images.md](references/workflow/reference-images.md)
+**Config**: [preferences-schema.md](references/config/preferences-schema.md) | [first-time-setup.md](references/config/first-time-setup.md) | [watermark-guide.md](references/config/watermark-guide.md)
diff --git a/account/admin/skills/baoyu-format-markdown/.openakita-i18n.json b/account/admin/skills/baoyu-format-markdown/.openakita-i18n.json
new file mode 100644
index 0000000..92ca9f8
--- /dev/null
+++ b/account/admin/skills/baoyu-format-markdown/.openakita-i18n.json
@@ -0,0 +1,6 @@
+{
+ "zh": {
+ "name": "Markdown 格式化",
+ "description": "文本格式化为规范 Markdown,自动添加 frontmatter/标题/加粗/列表,支持中英文排版修复"
+ }
+}
diff --git a/account/admin/skills/baoyu-format-markdown/SKILL.md b/account/admin/skills/baoyu-format-markdown/SKILL.md
new file mode 100644
index 0000000..f59b708
--- /dev/null
+++ b/account/admin/skills/baoyu-format-markdown/SKILL.md
@@ -0,0 +1,298 @@
+---
+name: jimliu/baoyu-skills@baoyu-format-markdown
+description: Formats plain text or markdown files with frontmatter, titles, summaries, headings, bold, lists, and code blocks. Use when user asks to "format markdown", "beautify article", "add formatting", or improve article layout. Outputs to {filename}-formatted.md.
+---
+
+# Markdown Formatter
+
+Transforms plain text or markdown files into well-structured markdown with proper frontmatter, formatting, and typography.
+
+## Script Directory
+
+Scripts in `scripts/` subdirectory. Replace `${SKILL_DIR}` with this SKILL.md's directory path.
+
+| Script | Purpose |
+|--------|---------|
+| `scripts/main.ts` | Main entry point with CLI options (uses remark-cjk-friendly for CJK emphasis) |
+| `scripts/quotes.ts` | Replace ASCII quotes with fullwidth quotes |
+| `scripts/autocorrect.ts` | Add CJK/English spacing via autocorrect |
+
+## Preferences (EXTEND.md)
+
+Use Bash to check EXTEND.md existence (priority order):
+
+```bash
+# Check project-level first
+test -f .baoyu-skills/baoyu-format-markdown/EXTEND.md && echo "project"
+
+# Then user-level (cross-platform: $HOME works on macOS/Linux/WSL)
+test -f "$HOME/.baoyu-skills/baoyu-format-markdown/EXTEND.md" && echo "user"
+```
+
+┌──────────────────────────────────────────────────────────┬───────────────────┐
+│ Path │ Location │
+├──────────────────────────────────────────────────────────┼───────────────────┤
+│ .baoyu-skills/baoyu-format-markdown/EXTEND.md │ Project directory │
+├──────────────────────────────────────────────────────────┼───────────────────┤
+│ $HOME/.baoyu-skills/baoyu-format-markdown/EXTEND.md │ User home │
+└──────────────────────────────────────────────────────────┴───────────────────┘
+
+┌───────────┬───────────────────────────────────────────────────────────────────────────┐
+│ Result │ Action │
+├───────────┼───────────────────────────────────────────────────────────────────────────┤
+│ Found │ Read, parse, apply settings │
+├───────────┼───────────────────────────────────────────────────────────────────────────┤
+│ Not found │ Use defaults │
+└───────────┴───────────────────────────────────────────────────────────────────────────┘
+
+**EXTEND.md Supports**: Default formatting options | Summary length preferences
+
+## Usage
+
+Claude performs content analysis and formatting (Steps 1-6), then runs the script for typography fixes (Step 7).
+
+## Workflow
+
+### Step 1: Read Source File
+
+Read the user-specified markdown or plain text file.
+
+### Step 1.5: Detect Content Type & Confirm
+
+**Content Type Detection:**
+
+| Indicator | Classification |
+|-----------|----------------|
+| Has `---` YAML frontmatter | Markdown |
+| Has `#`, `##`, `###` headings | Markdown |
+| Has `**bold**`, `*italic*` | Markdown |
+| Has `- ` or `1. ` lists | Markdown |
+| Has ``` code blocks | Markdown |
+| Has `> ` blockquotes | Markdown |
+| None of above | Plain text |
+
+**Decision Flow:**
+
+┌─────────────────┬────────────────────────────────────────────────┐
+│ Content Type │ Action │
+├─────────────────┼────────────────────────────────────────────────┤
+│ Plain text │ Proceed to Step 2 (format to markdown) │
+├─────────────────┼────────────────────────────────────────────────┤
+│ Markdown │ Use AskUserQuestion to confirm optimization │
+└─────────────────┴────────────────────────────────────────────────┘
+
+**If Markdown detected, ask user:**
+
+```
+Detected existing markdown formatting. What would you like to do?
+
+1. Optimize formatting (Recommended)
+ - Add/improve frontmatter, headings, bold, lists
+ - Run typography script (spacing, emphasis fixes)
+ - Output: {filename}-formatted.md
+
+2. Keep original formatting
+ - Preserve existing markdown structure
+ - Run typography script (spacing, emphasis fixes)
+ - Output: {filename}-formatted.md
+
+3. Typography fixes only
+ - Run typography script on original file in-place
+ - No copy created, modifies original file directly
+```
+
+**Based on user choice:**
+- **Optimize**: Continue to Step 2-8 (full workflow)
+- **Keep original**: Skip Steps 2-5, copy file → Step 6-8 (run script on copy)
+- **Typography only**: Skip Steps 2-6, run Step 7 on original file directly
+
+### Step 2: Analyze Content Structure
+
+Identify:
+- Existing title (H1 `#`)
+- Paragraph separations
+- Keywords suitable for **bold**
+- Parallel content convertible to lists
+- Code snippets
+- Quotations
+
+### Step 3: Check/Create Frontmatter
+
+Check for YAML frontmatter (`---` block). Create if missing.
+
+**Meta field handling:**
+
+| Field | Processing |
+|-------|------------|
+| `title` | See Step 4 |
+| `slug` | Infer from file path (e.g., `posts/2026/01/10/vibe-coding/` → `vibe-coding`) or generate from title |
+| `summary` | Generate engaging summary (100-150 characters) |
+| `coverImage` | Check if `imgs/cover.png` exists in same directory; if so, use relative path (also accepted: `featureImage`) |
+
+### Step 4: Title Handling
+
+**Logic:**
+1. If frontmatter already has `title` → use it, no H1 in body
+2. If first line is H1 → extract to frontmatter `title`, remove H1 from body
+3. If neither exists → generate candidate titles
+
+**Title generation flow:**
+
+1. Generate 3 candidate titles based on content
+2. Use `AskUserQuestion` tool:
+
+```
+Select a title:
+
+1. [Title A] (Recommended)
+2. [Title B]
+3. [Title C]
+```
+
+3. If no selection within a few seconds, use recommended (option 1)
+
+**Title principles:**
+- Concise, max 20 characters
+- Captures core message
+- Engaging, sparks reading interest
+- Accurate, avoids clickbait
+
+**Important:** Once title is in frontmatter, body should NOT have H1 (avoid duplication)
+
+### Step 5: Format Processing
+
+**Formatting rules:**
+
+| Element | Format |
+|---------|--------|
+| Titles | Use `#`, `##`, `###` hierarchy |
+| Key points | Use `**bold**` |
+| Parallel items | Convert to `-` unordered or `1.` ordered lists |
+| Code/commands | Use `` `inline` `` or ` ```block``` ` |
+| Quotes/sayings | Use `>` blockquote |
+| Separators | Use `---` where appropriate |
+
+**Formatting principles:**
+- Preserve original content and viewpoints
+- Add formatting only, do not modify text
+- Formatting serves readability
+- Avoid over-formatting
+
+### Step 6: Save Formatted File
+
+Save as `{original-filename}-formatted.md`
+
+Examples:
+- `final.md` → `final-formatted.md`
+- `draft-v1.md` → `draft-v1-formatted.md`
+
+**If user chose "Keep original formatting" (from Step 1.5):**
+- Copy original file to `{filename}-formatted.md` without modifications
+- Proceed to Step 7 for typography fixes only
+
+**Backup existing file:**
+
+If `{filename}-formatted.md` already exists, backup before overwriting:
+
+```bash
+# Check if formatted file exists
+if [ -f "{filename}-formatted.md" ]; then
+ # Backup with timestamp
+ mv "{filename}-formatted.md" "{filename}-formatted.backup-$(date +%Y%m%d-%H%M%S).md"
+fi
+```
+
+Example:
+- `final-formatted.md` exists → backup to `final-formatted.backup-20260128-143052.md`
+
+### Step 7: Execute Text Formatting Script
+
+After saving, **must** run the formatting script:
+
+```bash
+npx -y bun ${SKILL_DIR}/scripts/main.ts {output-file-path} [options]
+```
+
+**Script Options:**
+
+| Option | Short | Description | Default |
+|--------|-------|-------------|---------|
+| `--quotes` | `-q` | Replace ASCII quotes with fullwidth quotes `"..."` | false |
+| `--no-quotes` | | Do not replace quotes | |
+| `--spacing` | `-s` | Add CJK/English spacing via autocorrect | true |
+| `--no-spacing` | | Do not add CJK/English spacing | |
+| `--emphasis` | `-e` | Fix CJK emphasis punctuation issues | true |
+| `--no-emphasis` | | Do not fix CJK emphasis issues | |
+| `--help` | `-h` | Show help message | |
+
+**Examples:**
+
+```bash
+# Default: spacing + emphasis enabled, quotes disabled
+npx -y bun ${SKILL_DIR}/scripts/main.ts article.md
+
+# Enable all features including quote replacement
+npx -y bun ${SKILL_DIR}/scripts/main.ts article.md --quotes
+
+# Only fix emphasis issues, skip spacing
+npx -y bun ${SKILL_DIR}/scripts/main.ts article.md --no-spacing
+
+# Disable all processing except frontmatter formatting
+npx -y bun ${SKILL_DIR}/scripts/main.ts article.md --no-spacing --no-emphasis
+```
+
+**Script performs (based on options):**
+1. Fix CJK emphasis/bold punctuation issues (default: enabled)
+2. Add CJK/English mixed text spacing via autocorrect (default: enabled)
+3. Replace ASCII quotes `"..."` with fullwidth quotes `"..."` (default: disabled)
+4. Format frontmatter YAML (always enabled)
+
+### Step 8: Display Results
+
+```
+**Formatting complete**
+
+File: posts/2026/01/09/example/final-formatted.md
+
+Changes:
+- Added title: [title content]
+- Added X bold markers
+- Added X lists
+- Added X code blocks
+```
+
+## Formatting Example
+
+**Before:**
+```
+This is plain text. First point is efficiency improvement. Second point is cost reduction. Third point is experience optimization. Use npm install to install dependencies.
+```
+
+**After:**
+```markdown
+---
+title: Three Core Advantages
+slug: three-core-advantages
+summary: Discover the three key benefits that drive success in modern projects.
+---
+
+This is plain text.
+
+**Main advantages:**
+- Efficiency improvement
+- Cost reduction
+- Experience optimization
+
+Use `npm install` to install dependencies.
+```
+
+## Notes
+
+- Preserve original writing style and tone
+- Specify correct language for code blocks (e.g., `python`, `javascript`)
+- Maintain CJK/English spacing standards
+- Do not add content not present in original
+
+## Extension Support
+
+Custom configurations via EXTEND.md. See **Preferences** section for paths and supported options.
diff --git a/account/admin/skills/baoyu-image-gen/.openakita-i18n.json b/account/admin/skills/baoyu-image-gen/.openakita-i18n.json
new file mode 100644
index 0000000..f402b9c
--- /dev/null
+++ b/account/admin/skills/baoyu-image-gen/.openakita-i18n.json
@@ -0,0 +1,6 @@
+{
+ "zh": {
+ "name": "AI 图像生成",
+ "description": "多服务商 AI 图像生成(DALL-E、Imagen、通义万象、Replicate),支持多种比例、质量预设、批量生成和 Prompt 优化。"
+ }
+}
diff --git a/account/admin/skills/baoyu-image-gen/SKILL.md b/account/admin/skills/baoyu-image-gen/SKILL.md
new file mode 100644
index 0000000..384de9d
--- /dev/null
+++ b/account/admin/skills/baoyu-image-gen/SKILL.md
@@ -0,0 +1,377 @@
+---
+name: jimliu/baoyu-skills@baoyu-image-gen
+description: Generate AI images using multiple providers (OpenAI DALL-E, Google Imagen, DashScope/Tongyi Wanxiang, Replicate). Supports various aspect ratios, quality presets, batch generation, and provider-specific prompt engineering techniques.
+license: MIT
+metadata:
+ author: openakita
+ version: "1.0.0"
+---
+
+# Baoyu Image Gen — AI 图像生成
+
+## When to Use
+
+- 用户要求生成图片、插图、海报、封面、图标等视觉内容
+- 需要为文章、PPT、网站创建配图
+- 需要特定比例的图片(社交媒体封面、手机壁纸等)
+- 需要批量生成多张图片并选择
+- 需要针对不同 AI 绘图服务编写优化 prompt
+- 需要将自然语言描述转换为高质量 AI 图片
+
+---
+
+## Prerequisites
+
+### API 密钥配置
+
+至少需要配置一个图像生成服务的 API 密钥。在 `.env` 文件或环境变量中设置:
+
+| 环境变量 | 服务商 | 获取方式 |
+|---------|--------|---------|
+| `OPENAI_API_KEY` | OpenAI DALL-E 3 | https://platform.openai.com/api-keys |
+| `GOOGLE_API_KEY` | Google Imagen 3 | https://aistudio.google.com/apikey |
+| `DASHSCOPE_API_KEY` | 通义万象 (阿里云) | https://dashscope.console.aliyun.com/ |
+| `REPLICATE_API_TOKEN` | Replicate (Flux 等) | https://replicate.com/account/api-tokens |
+
+### 必需依赖
+
+| 依赖 | 用途 | 安装方式 |
+|------|------|---------|
+| Python ≥ 3.10 | 运行生成脚本 | 系统预装 |
+| `httpx` | HTTP 请求 | `pip install httpx` |
+| `Pillow` | 图片处理 | `pip install Pillow` |
+
+### 可选依赖
+
+| 依赖 | 用途 | 安装方式 |
+|------|------|---------|
+| `openai` | OpenAI SDK | `pip install openai` |
+| `google-genai` | Google Gemini/Imagen SDK | `pip install google-genai` |
+| `dashscope` | 通义万象 SDK | `pip install dashscope` |
+| `replicate` | Replicate SDK | `pip install replicate` |
+
+---
+
+## Instructions
+
+### 服务商能力对比
+
+| 能力 | DALL-E 3 | Imagen 3 | 通义万象 | Replicate (Flux) |
+|------|----------|----------|---------|-----------------|
+| 图片质量 | ★★★★★ | ★★★★★ | ★★★★ | ★★★★★ |
+| 中文 prompt | ★★★ | ★★★ | ★★★★★ | ★★ |
+| 文字渲染 | ★★★★ | ★★★★ | ★★★ | ★★★ |
+| 速度 | 中等 | 快 | 快 | 慢 |
+| 价格 | 较贵 | 中等 | 便宜 | 按模型 |
+| 尺寸灵活度 | 3 种固定 | 多种 | 多种 | 自定义 |
+| 风格多样性 | ★★★★★ | ★★★★ | ★★★★ | ★★★★★ |
+
+### 服务商自动选择策略
+
+Agent 根据以下规则自动选择最合适的服务商:
+
+1. **中文场景优先** — 如果 prompt 是中文或涉及中国文化元素,优先使用通义万象
+2. **文字渲染需求** — 需要在图片中嵌入文字时,优先使用 DALL-E 3 或 Imagen 3
+3. **速度优先** — 用户要求快速生成时,优先使用 Imagen 3 或通义万象
+4. **质量优先** — 用户要求最高质量时,使用 DALL-E 3 或 Flux Pro
+5. **成本优先** — 批量生成时优先使用通义万象
+6. **可用性** — 根据用户已配置的 API Key 选择
+
+用户可通过指定服务商名称覆盖自动选择。
+
+### 宽高比速查
+
+| 比例 | 像素(示例) | 适用场景 |
+|------|-------------|---------|
+| 1:1 | 1024×1024 | 头像、图标、社交媒体帖子 |
+| 16:9 | 1792×1024 | PPT 配图、YouTube 封面、桌面壁纸 |
+| 4:3 | 1365×1024 | 传统幻灯片、相册 |
+| 9:16 | 1024×1792 | 手机壁纸、Instagram Stories、短视频封面 |
+| 3:2 | 1536×1024 | 摄影风格、杂志插图 |
+| 2:3 | 1024×1536 | 海报、书籍封面 |
+
+### 质量预设
+
+| 预设 | 说明 | 适用场景 |
+|------|------|---------|
+| `draft` | 快速草稿,低分辨率 | 方案探索、快速迭代 |
+| `standard` | 标准质量 | 日常使用、网页配图 |
+| `hd` | 高清,细节丰富 | 正式出版、印刷 |
+| `ultra` | 最高质量,最长等待 | 海报、展览 |
+
+---
+
+## Workflows
+
+### Workflow 1: 单张图片生成
+
+**步骤 1 — 理解用户意图**
+
+从用户描述中提取以下信息:
+
+| 要素 | 默认值 | 说明 |
+|------|--------|------|
+| 主题 | — | 图片的核心内容 |
+| 风格 | 写实 | 摄影、插画、水彩、赛博朋克、扁平化等 |
+| 比例 | 1:1 | 根据用途自动推断 |
+| 质量 | standard | draft/standard/hd/ultra |
+| 服务商 | auto | 自动选择或用户指定 |
+
+**步骤 2 — 构建优化 Prompt**
+
+将用户描述转换为各服务商优化的 prompt(见 Prompt 工程部分)。
+
+**步骤 3 — 调用生成 API**
+
+根据选择的服务商调用对应 API。
+
+**步骤 4 — 返回结果**
+
+输出生成的图片文件路径,并附上使用的 prompt 和参数。
+
+---
+
+### Workflow 2: 批量生成
+
+一次生成多张图片供用户选择:
+
+**步骤 1** — 确定批量参数
+
+| 参数 | 说明 |
+|------|------|
+| 数量 | 2-8 张(默认 4) |
+| 变体策略 | same-prompt(同 prompt 不同种子)/ varied-prompt(不同风格变体) |
+
+**步骤 2** — 生成所有图片
+
+并行调用 API 以加快速度。对于 varied-prompt 模式,为每张图调整 prompt 的风格描述词。
+
+**步骤 3** — 展示结果并让用户选择
+
+---
+
+### Workflow 3: Prompt 优化咨询
+
+当用户不确定如何描述想要的图片时:
+
+1. 与用户对话,逐步明确需求
+2. 提供 3-5 个不同方向的 prompt 建议
+3. 用户选择方向后微调 prompt
+4. 生成图片
+
+---
+
+## Prompt 工程指南
+
+### 通用 Prompt 结构
+
+```
+[主体描述], [环境/背景], [风格], [光线], [构图], [色调], [细节描述]
+```
+
+**示例**:
+
+```
+A cozy coffee shop interior with warm lighting,
+morning sunlight streaming through large windows,
+a steaming cup of latte on a wooden table with an open book,
+shot on 35mm film, soft warm tones,
+shallow depth of field, photorealistic
+```
+
+### DALL-E 3 专用技巧
+
+1. **自然语言描述** — DALL-E 3 理解长句叙述,不需要关键词堆砌
+2. **风格指定** — 明确说明 "digital art"、"oil painting"、"photograph" 等
+3. **避免否定词** — 说"蓝天"而非"没有云的天空"
+4. **文字嵌入** — 直接写 `with text "Hello"` 可以在图中渲染文字
+5. **revisedPrompt** — DALL-E 3 会重写 prompt,可从返回值获取实际使用的 prompt
+
+```python
+from openai import OpenAI
+client = OpenAI()
+
+response = client.images.generate(
+ model="dall-e-3",
+ prompt="一只橘猫坐在窗台上看雨,窗外是东京夜景,赛博朋克风格,霓虹灯倒映在雨滴中",
+ size="1792x1024",
+ quality="hd",
+ n=1
+)
+image_url = response.data[0].url
+revised_prompt = response.data[0].revised_prompt
+```
+
+### Google Imagen 3 专用技巧
+
+1. **结构化描述** — 主体 + 动作 + 环境 + 风格
+2. **摄影参数** — 可以指定镜头焦段、光圈、ISO 等
+3. **艺术家风格** — 可以参考知名艺术家的风格
+4. **多语言支持** — 支持中文 prompt 但英文效果更佳
+
+```python
+from google import genai
+client = genai.Client()
+
+response = client.models.generate_images(
+ model='imagen-3.0-generate-002',
+ prompt='A serene Japanese garden in autumn, koi fish swimming in a crystal clear pond, maple trees with red and orange leaves',
+ config=genai.types.GenerateImagesConfig(
+ number_of_images=1,
+ aspect_ratio='16:9'
+ )
+)
+
+for image in response.generated_images:
+ image.image.save('garden.png')
+```
+
+### 通义万象专用技巧
+
+1. **中文 prompt 最优** — 直接使用中文描述效果最佳
+2. **风格参数** — 支持 ``、``、`<3d cartoon>` 等风格标签
+3. **负向提示** — 支持 negative_prompt 排除不想要的元素
+4. **参考图** — 支持 img2img 以图生图
+
+```python
+import dashscope
+
+response = dashscope.ImageSynthesis.call(
+ api_key=os.getenv('DASHSCOPE_API_KEY'),
+ model='wanx-v1',
+ input={
+ 'prompt': '一座雪山下的小木屋,温暖的灯光从窗户透出,天空中有极光,油画风格',
+ 'negative_prompt': '低质量, 模糊, 变形'
+ },
+ parameters={
+ 'size': '1024*1024',
+ 'n': 1,
+ 'style': ''
+ }
+)
+
+image_url = response.output.results[0].url
+```
+
+### Replicate (Flux) 专用技巧
+
+1. **英文 prompt** — Flux 模型英文效果远优于中文
+2. **极致细节** — 适合描述复杂场景和精细纹理
+3. **风格混搭** — 可以混合多种艺术风格
+4. **自定义参数** — 支持 guidance_scale、steps 等高级参数
+
+```python
+import replicate
+
+output = replicate.run(
+ "black-forest-labs/flux-1.1-pro",
+ input={
+ "prompt": "An astronaut riding a horse on Mars, cinematic lighting, 8k resolution, hyperdetailed",
+ "aspect_ratio": "16:9",
+ "output_format": "png",
+ "safety_tolerance": 2
+ }
+)
+```
+
+---
+
+## Output Format
+
+### 文件命名
+
+```
+{描述关键词}_{服务商}_{比例}_{日期时间}.png
+```
+
+示例:`coffee_shop_dalle3_16x9_20250301_143022.png`
+
+### 输出内容
+
+每次图片生成后,返回以下信息:
+
+```
+📸 图片已生成
+- 文件:./images/coffee_shop_dalle3_16x9.png
+- 服务商:DALL-E 3
+- 尺寸:1792 × 1024 (16:9)
+- 质量:HD
+- Prompt:[实际使用的 prompt]
+- 耗时:8.3s
+- 费用估算:$0.08
+```
+
+### 多图对比输出
+
+批量生成时以网格形式对比展示,标注每张的差异(不同风格、不同构图等)。
+
+---
+
+## Common Pitfalls
+
+### 1. API Key 未配置
+
+**症状**:调用失败,返回 401/403 错误
+**解决**:检查 `.env` 或环境变量中的 API Key 是否已正确设置
+
+### 2. Prompt 过于模糊
+
+**错误**:"画一张好看的图"
+**正确**:"一只白色的猫咪趴在阳光下的窗台上,背景是模糊的绿色植物,温暖的暖色调,胶片摄影风格"
+
+### 3. 比例与用途不匹配
+
+常见错误搭配:
+- PPT 配图用了 1:1 → 应该用 16:9
+- 手机壁纸用了 16:9 → 应该用 9:16
+- 社交媒体头像用了 16:9 → 应该用 1:1
+
+### 4. 中文 prompt 发给 Flux/Replicate
+
+Flux 等模型对中文支持有限,必须先翻译为英文再调用。Agent 应自动完成翻译。
+
+### 5. 图片中文字乱码
+
+AI 图像生成模型在渲染中文文字时质量不稳定。如果必须在图片中嵌入中文文字,建议:
+- 先生成不含文字的图片
+- 然后用 Pillow 在图片上叠加中文文字
+
+```python
+from PIL import Image, ImageDraw, ImageFont
+
+img = Image.open('base_image.png')
+draw = ImageDraw.Draw(img)
+font = ImageFont.truetype('msyh.ttc', size=48)
+draw.text((100, 50), '标题文字', fill='white', font=font)
+img.save('final_image.png')
+```
+
+### 6. 费用失控
+
+批量生成时注意费用:
+| 服务商 | 单张费用(约) |
+|--------|-------------|
+| DALL-E 3 HD | $0.08 |
+| DALL-E 3 Standard | $0.04 |
+| Imagen 3 | $0.03 |
+| 通义万象 | ¥0.04 |
+| Flux Pro | $0.05 |
+
+生成前提醒用户预估费用。
+
+### 7. 内容安全限制
+
+所有服务商都有内容安全审查。如果生成被拒绝:
+- 检查 prompt 是否包含敏感词
+- 调整描述方式
+- 不要尝试绕过安全限制
+
+---
+
+## EXTEND.md 扩展
+
+用户可在技能同目录下创建 `EXTEND.md` 添加:
+- 首选服务商和默认参数
+- 自定义风格预设模板
+- 品牌相关的 prompt 片段(Logo 描述、品牌色等)
+- 额外的 API 端点或自部署模型地址
diff --git a/account/admin/skills/baoyu-infographic/.openakita-i18n.json b/account/admin/skills/baoyu-infographic/.openakita-i18n.json
new file mode 100644
index 0000000..daa388e
--- /dev/null
+++ b/account/admin/skills/baoyu-infographic/.openakita-i18n.json
@@ -0,0 +1,6 @@
+{
+ "zh": {
+ "name": "信息图生成",
+ "description": "专业信息图制作,21种布局×20种视觉风格,自动分析内容并推荐最佳组合"
+ }
+}
diff --git a/account/admin/skills/baoyu-infographic/SKILL.md b/account/admin/skills/baoyu-infographic/SKILL.md
new file mode 100644
index 0000000..47c0313
--- /dev/null
+++ b/account/admin/skills/baoyu-infographic/SKILL.md
@@ -0,0 +1,250 @@
+---
+name: jimliu/baoyu-skills@baoyu-infographic
+description: Generates professional infographics with 21 layout types and 20 visual styles. Analyzes content, recommends layout×style combinations, and generates publication-ready infographics. Use when user asks to create "infographic", "信息图", "visual summary", "可视化", or "高密度信息大图".
+---
+
+# Infographic Generator
+
+Two dimensions: **layout** (information structure) × **style** (visual aesthetics). Freely combine any layout with any style.
+
+## Usage
+
+```bash
+/baoyu-infographic path/to/content.md
+/baoyu-infographic path/to/content.md --layout hierarchical-layers --style technical-schematic
+/baoyu-infographic path/to/content.md --aspect portrait --lang zh
+/baoyu-infographic # then paste content
+```
+
+## Options
+
+| Option | Values |
+|--------|--------|
+| `--layout` | 21 options (see Layout Gallery), default: bento-grid |
+| `--style` | 20 options (see Style Gallery), default: craft-handmade |
+| `--aspect` | landscape (16:9), portrait (9:16), square (1:1) |
+| `--lang` | en, zh, ja, etc. |
+
+## Layout Gallery
+
+| Layout | Best For |
+|--------|----------|
+| `linear-progression` | Timelines, processes, tutorials |
+| `binary-comparison` | A vs B, before-after, pros-cons |
+| `comparison-matrix` | Multi-factor comparisons |
+| `hierarchical-layers` | Pyramids, priority levels |
+| `tree-branching` | Categories, taxonomies |
+| `hub-spoke` | Central concept with related items |
+| `structural-breakdown` | Exploded views, cross-sections |
+| `bento-grid` | Multiple topics, overview (default) |
+| `iceberg` | Surface vs hidden aspects |
+| `bridge` | Problem-solution |
+| `funnel` | Conversion, filtering |
+| `isometric-map` | Spatial relationships |
+| `dashboard` | Metrics, KPIs |
+| `periodic-table` | Categorized collections |
+| `comic-strip` | Narratives, sequences |
+| `story-mountain` | Plot structure, tension arcs |
+| `jigsaw` | Interconnected parts |
+| `venn-diagram` | Overlapping concepts |
+| `winding-roadmap` | Journey, milestones |
+| `circular-flow` | Cycles, recurring processes |
+| `dense-modules` | High-density modules, data-rich guides |
+
+Full definitions: `references/layouts/.md`
+
+## Style Gallery
+
+| Style | Description |
+|-------|-------------|
+| `craft-handmade` | Hand-drawn, paper craft (default) |
+| `claymation` | 3D clay figures, stop-motion |
+| `kawaii` | Japanese cute, pastels |
+| `storybook-watercolor` | Soft painted, whimsical |
+| `chalkboard` | Chalk on black board |
+| `cyberpunk-neon` | Neon glow, futuristic |
+| `bold-graphic` | Comic style, halftone |
+| `aged-academia` | Vintage science, sepia |
+| `corporate-memphis` | Flat vector, vibrant |
+| `technical-schematic` | Blueprint, engineering |
+| `origami` | Folded paper, geometric |
+| `pixel-art` | Retro 8-bit |
+| `ui-wireframe` | Grayscale interface mockup |
+| `subway-map` | Transit diagram |
+| `ikea-manual` | Minimal line art |
+| `knolling` | Organized flat-lay |
+| `lego-brick` | Toy brick construction |
+| `pop-laboratory` | Blueprint grid, coordinate markers, lab precision |
+| `morandi-journal` | Hand-drawn doodle, warm Morandi tones |
+| `retro-pop-grid` | 1970s retro pop art, Swiss grid, thick outlines |
+
+Full definitions: `references/styles/
+
+
+
+
+
+
+
+
+