mindforge-cc 11.5.1 → 11.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (214) hide show
  1. package/.agent/mindforge/skill-tdd.md +53 -0
  2. package/.agent/mindforge/skills-index.md +118 -0
  3. package/.agent/mindforge/systematic-debug.md +60 -0
  4. package/.agent/mindforge/wf-catalog.md +37 -0
  5. package/.agent/mindforge/wf-code-audit.md +31 -0
  6. package/.agent/mindforge/wf-competitive-analysis.md +31 -0
  7. package/.agent/mindforge/wf-deep-research.md +32 -0
  8. package/.agent/mindforge/wf-feature-planner.md +31 -0
  9. package/.agent/mindforge/wf-incident-response.md +31 -0
  10. package/.agent/mindforge/wf-onboard-codebase.md +31 -0
  11. package/.agent/mindforge/wf-perf-optimize.md +31 -0
  12. package/.agent/mindforge/wf-pr-review.md +31 -0
  13. package/.agent/mindforge/wf-refactor-plan.md +31 -0
  14. package/.agent/mindforge/wf-release-prep.md +31 -0
  15. package/.agent/mindforge/wf-tdd-sprint.md +31 -0
  16. package/.agent/mindforge/wf-tech-evaluation.md +31 -0
  17. package/.agent/skills/1password-skill/SKILL.md +156 -0
  18. package/.agent/skills/1password-skill/references/cli-examples.md +31 -0
  19. package/.agent/skills/1password-skill/references/get-started.md +21 -0
  20. package/.agent/skills/article-illustrator/SKILL.md +199 -0
  21. package/.agent/skills/article-illustrator/references/prompt-construction.md +426 -0
  22. package/.agent/skills/article-illustrator/references/style-presets.md +80 -0
  23. package/.agent/skills/article-illustrator/references/styles.md +224 -0
  24. package/.agent/skills/article-illustrator/references/usage.md +50 -0
  25. package/.agent/skills/article-illustrator/references/workflow.md +332 -0
  26. package/.agent/skills/arxiv/SKILL.md +275 -0
  27. package/.agent/skills/blogwatcher/SKILL.md +130 -0
  28. package/.agent/skills/code-wiki/SKILL.md +438 -0
  29. package/.agent/skills/code-wiki/templates/README.md +31 -0
  30. package/.agent/skills/code-wiki/templates/architecture.md +30 -0
  31. package/.agent/skills/code-wiki/templates/getting-started.md +47 -0
  32. package/.agent/skills/code-wiki/templates/module.md +38 -0
  33. package/.agent/skills/codebase-inspection/SKILL.md +109 -0
  34. package/.agent/skills/comic-creator/SKILL.md +240 -0
  35. package/.agent/skills/comic-creator/references/analysis-framework.md +176 -0
  36. package/.agent/skills/comic-creator/references/auto-selection.md +71 -0
  37. package/.agent/skills/comic-creator/references/base-prompt.md +98 -0
  38. package/.agent/skills/comic-creator/references/character-template.md +180 -0
  39. package/.agent/skills/comic-creator/references/ohmsha-guide.md +85 -0
  40. package/.agent/skills/comic-creator/references/partial-workflows.md +106 -0
  41. package/.agent/skills/comic-creator/references/storyboard-template.md +143 -0
  42. package/.agent/skills/comic-creator/references/workflow.md +401 -0
  43. package/.agent/skills/concept-diagrams/SKILL.md +355 -0
  44. package/.agent/skills/concept-diagrams/references/dashboard-patterns.md +43 -0
  45. package/.agent/skills/concept-diagrams/references/infrastructure-patterns.md +144 -0
  46. package/.agent/skills/concept-diagrams/references/physical-shape-cookbook.md +42 -0
  47. package/.agent/skills/creative-ideation/SKILL.md +144 -0
  48. package/.agent/skills/creative-ideation/references/full-prompt-library.md +110 -0
  49. package/.agent/skills/devops-cli/SKILL.md +149 -0
  50. package/.agent/skills/devops-cli/references/app-discovery.md +112 -0
  51. package/.agent/skills/devops-cli/references/authentication.md +59 -0
  52. package/.agent/skills/devops-cli/references/cli-reference.md +104 -0
  53. package/.agent/skills/devops-cli/references/running-apps.md +171 -0
  54. package/.agent/skills/devops-watchers/SKILL.md +103 -0
  55. package/.agent/skills/docker-management/SKILL.md +273 -0
  56. package/.agent/skills/domain-intel/SKILL.md +96 -0
  57. package/.agent/skills/duckduckgo-search/SKILL.md +230 -0
  58. package/.agent/skills/github-auth/SKILL.md +240 -0
  59. package/.agent/skills/github-code-review/SKILL.md +474 -0
  60. package/.agent/skills/github-code-review/references/review-output-template.md +74 -0
  61. package/.agent/skills/github-issues/SKILL.md +363 -0
  62. package/.agent/skills/github-issues/templates/bug-report.md +35 -0
  63. package/.agent/skills/github-issues/templates/feature-request.md +31 -0
  64. package/.agent/skills/github-pr-workflow/SKILL.md +360 -0
  65. package/.agent/skills/github-pr-workflow/references/ci-troubleshooting.md +183 -0
  66. package/.agent/skills/github-pr-workflow/references/conventional-commits.md +71 -0
  67. package/.agent/skills/github-pr-workflow/templates/pr-body-bugfix.md +35 -0
  68. package/.agent/skills/github-pr-workflow/templates/pr-body-feature.md +33 -0
  69. package/.agent/skills/github-repo-management/SKILL.md +509 -0
  70. package/.agent/skills/github-repo-management/references/github-api-cheatsheet.md +161 -0
  71. package/.agent/skills/godmode/SKILL.md +396 -0
  72. package/.agent/skills/godmode/references/jailbreak-templates.md +128 -0
  73. package/.agent/skills/godmode/references/refusal-detection.md +142 -0
  74. package/.agent/skills/hyperframes/SKILL.md +182 -0
  75. package/.agent/skills/hyperframes/references/cli.md +185 -0
  76. package/.agent/skills/hyperframes/references/composition.md +129 -0
  77. package/.agent/skills/hyperframes/references/features.md +289 -0
  78. package/.agent/skills/hyperframes/references/gsap.md +136 -0
  79. package/.agent/skills/hyperframes/references/troubleshooting.md +137 -0
  80. package/.agent/skills/hyperframes/references/website-to-video.md +145 -0
  81. package/.agent/skills/jupyter-live-kernel/SKILL.md +160 -0
  82. package/.agent/skills/kanban-orchestrator/SKILL.md +209 -0
  83. package/.agent/skills/kanban-worker/SKILL.md +188 -0
  84. package/.agent/skills/llm-wiki/SKILL.md +499 -0
  85. package/.agent/skills/meme-generation/SKILL.md +122 -0
  86. package/.agent/skills/node-inspect-debugger/SKILL.md +312 -0
  87. package/.agent/skills/obsidian/SKILL.md +60 -0
  88. package/.agent/skills/osint-investigation/SKILL.md +269 -0
  89. package/.agent/skills/osint-investigation/templates/source-template.md +59 -0
  90. package/.agent/skills/oss-forensics/SKILL.md +422 -0
  91. package/.agent/skills/oss-forensics/references/evidence-types.md +89 -0
  92. package/.agent/skills/oss-forensics/references/github-archive-guide.md +184 -0
  93. package/.agent/skills/oss-forensics/references/investigation-templates.md +131 -0
  94. package/.agent/skills/oss-forensics/references/recovery-techniques.md +164 -0
  95. package/.agent/skills/oss-forensics/templates/forensic-report.md +151 -0
  96. package/.agent/skills/oss-forensics/templates/malicious-package-report.md +43 -0
  97. package/.agent/skills/parallel-cli/SKILL.md +384 -0
  98. package/.agent/skills/pinggy-tunnel/SKILL.md +302 -0
  99. package/.agent/skills/pixel-art/SKILL.md +209 -0
  100. package/.agent/skills/pixel-art/references/palettes.md +49 -0
  101. package/.agent/skills/plan/SKILL.md +331 -0
  102. package/.agent/skills/polymarket/SKILL.md +75 -0
  103. package/.agent/skills/polymarket/references/api-endpoints.md +220 -0
  104. package/.agent/skills/python-debugpy/SKILL.md +368 -0
  105. package/.agent/skills/requesting-code-review/SKILL.md +273 -0
  106. package/.agent/skills/research-paper-writing/SKILL.md +2367 -0
  107. package/.agent/skills/research-paper-writing/references/autoreason-methodology.md +394 -0
  108. package/.agent/skills/research-paper-writing/references/checklists.md +434 -0
  109. package/.agent/skills/research-paper-writing/references/citation-workflow.md +563 -0
  110. package/.agent/skills/research-paper-writing/references/experiment-patterns.md +728 -0
  111. package/.agent/skills/research-paper-writing/references/human-evaluation.md +476 -0
  112. package/.agent/skills/research-paper-writing/references/paper-types.md +481 -0
  113. package/.agent/skills/research-paper-writing/references/reviewer-guidelines.md +433 -0
  114. package/.agent/skills/research-paper-writing/references/sources.md +191 -0
  115. package/.agent/skills/research-paper-writing/references/writing-guide.md +474 -0
  116. package/.agent/skills/research-paper-writing/templates/README.md +251 -0
  117. package/.agent/skills/rest-graphql-debug/SKILL.md +507 -0
  118. package/.agent/skills/s6-container-supervision/SKILL.md +171 -0
  119. package/.agent/skills/scrapling/SKILL.md +328 -0
  120. package/.agent/skills/sherlock/SKILL.md +186 -0
  121. package/.agent/skills/simplify-code/SKILL.md +168 -0
  122. package/.agent/skills/skill-authoring/SKILL.md +158 -0
  123. package/.agent/skills/spike/SKILL.md +190 -0
  124. package/.agent/skills/subagent-driven-development/SKILL.md +345 -0
  125. package/.agent/skills/subagent-driven-development/references/context-budget-discipline.md +53 -0
  126. package/.agent/skills/subagent-driven-development/references/gates-taxonomy.md +93 -0
  127. package/.agent/skills/systematic-debugging/SKILL.md +360 -0
  128. package/.agent/skills/test-driven-development/SKILL.md +336 -0
  129. package/.agent/skills/video-orchestrator/SKILL.md +194 -0
  130. package/.agent/skills/video-orchestrator/references/examples.md +227 -0
  131. package/.agent/skills/video-orchestrator/references/intake.md +166 -0
  132. package/.agent/skills/video-orchestrator/references/kanban-setup.md +278 -0
  133. package/.agent/skills/video-orchestrator/references/monitoring.md +180 -0
  134. package/.agent/skills/video-orchestrator/references/role-archetypes.md +298 -0
  135. package/.agent/skills/video-orchestrator/references/tool-matrix.md +317 -0
  136. package/.agent/skills/web-pentest/SKILL.md +332 -0
  137. package/.agent/skills/web-pentest/references/bypass-techniques.md +133 -0
  138. package/.agent/skills/web-pentest/references/exploitation-techniques.md +204 -0
  139. package/.agent/skills/web-pentest/references/scope-enforcement.md +110 -0
  140. package/.agent/skills/web-pentest/references/vuln-taxonomy.md +81 -0
  141. package/.agent/skills/web-pentest/templates/authorization.md +69 -0
  142. package/.agent/skills/web-pentest/templates/pentest-report.md +178 -0
  143. package/.claude/commands/mindforge/skill-tdd.md +53 -0
  144. package/.claude/commands/mindforge/skills-index.md +118 -0
  145. package/.claude/commands/mindforge/systematic-debug.md +60 -0
  146. package/.claude/commands/mindforge/wf-catalog.md +37 -0
  147. package/.claude/commands/mindforge/wf-code-audit.md +31 -0
  148. package/.claude/commands/mindforge/wf-competitive-analysis.md +31 -0
  149. package/.claude/commands/mindforge/wf-deep-research.md +32 -0
  150. package/.claude/commands/mindforge/wf-feature-planner.md +31 -0
  151. package/.claude/commands/mindforge/wf-incident-response.md +31 -0
  152. package/.claude/commands/mindforge/wf-onboard-codebase.md +31 -0
  153. package/.claude/commands/mindforge/wf-perf-optimize.md +31 -0
  154. package/.claude/commands/mindforge/wf-pr-review.md +31 -0
  155. package/.claude/commands/mindforge/wf-refactor-plan.md +31 -0
  156. package/.claude/commands/mindforge/wf-release-prep.md +31 -0
  157. package/.claude/commands/mindforge/wf-tdd-sprint.md +31 -0
  158. package/.claude/commands/mindforge/wf-tech-evaluation.md +31 -0
  159. package/.mindforge/config.json +2 -2
  160. package/.mindforge/dynamic-workflows/REGISTRY.md +65 -0
  161. package/.mindforge/dynamic-workflows/index.json +171 -0
  162. package/.mindforge/dynamic-workflows/scripts/code-audit.js +103 -0
  163. package/.mindforge/dynamic-workflows/scripts/competitive-analysis.js +85 -0
  164. package/.mindforge/dynamic-workflows/scripts/deep-research.js +151 -0
  165. package/.mindforge/dynamic-workflows/scripts/feature-planner.js +104 -0
  166. package/.mindforge/dynamic-workflows/scripts/incident-response.js +106 -0
  167. package/.mindforge/dynamic-workflows/scripts/onboard-codebase.js +102 -0
  168. package/.mindforge/dynamic-workflows/scripts/perf-optimize.js +128 -0
  169. package/.mindforge/dynamic-workflows/scripts/pr-review.js +87 -0
  170. package/.mindforge/dynamic-workflows/scripts/refactor-plan.js +121 -0
  171. package/.mindforge/dynamic-workflows/scripts/release-prep.js +102 -0
  172. package/.mindforge/dynamic-workflows/scripts/tdd-sprint.js +103 -0
  173. package/.mindforge/dynamic-workflows/scripts/tech-evaluation.js +72 -0
  174. package/.mindforge/memory/sync-manifest.json +1 -1
  175. package/.mindforge/skills/arxiv/SKILL.md +294 -0
  176. package/.mindforge/skills/blogwatcher/SKILL.md +147 -0
  177. package/.mindforge/skills/code-wiki/SKILL.md +457 -0
  178. package/.mindforge/skills/codebase-inspection/SKILL.md +126 -0
  179. package/.mindforge/skills/concept-diagrams/SKILL.md +373 -0
  180. package/.mindforge/skills/creative-ideation/SKILL.md +162 -0
  181. package/.mindforge/skills/domain-intel/SKILL.md +116 -0
  182. package/.mindforge/skills/duckduckgo-search/SKILL.md +249 -0
  183. package/.mindforge/skills/github-code-review/SKILL.md +493 -0
  184. package/.mindforge/skills/github-issues/SKILL.md +382 -0
  185. package/.mindforge/skills/github-pr-workflow/SKILL.md +379 -0
  186. package/.mindforge/skills/jupyter-live-kernel/SKILL.md +179 -0
  187. package/.mindforge/skills/kanban-orchestrator/SKILL.md +227 -0
  188. package/.mindforge/skills/kanban-worker/SKILL.md +206 -0
  189. package/.mindforge/skills/meme-generation/SKILL.md +141 -0
  190. package/.mindforge/skills/obsidian/SKILL.md +80 -0
  191. package/.mindforge/skills/osint-investigation/SKILL.md +288 -0
  192. package/.mindforge/skills/oss-forensics/SKILL.md +421 -0
  193. package/.mindforge/skills/pixel-art/SKILL.md +228 -0
  194. package/.mindforge/skills/plan/SKILL.md +350 -0
  195. package/.mindforge/skills/requesting-code-review/SKILL.md +292 -0
  196. package/.mindforge/skills/research-paper-writing/SKILL.md +2384 -0
  197. package/.mindforge/skills/scrapling/SKILL.md +345 -0
  198. package/.mindforge/skills/sherlock/SKILL.md +203 -0
  199. package/.mindforge/skills/simplify-code/SKILL.md +187 -0
  200. package/.mindforge/skills/spike/SKILL.md +209 -0
  201. package/.mindforge/skills/subagent-driven-development/SKILL.md +364 -0
  202. package/.mindforge/skills/systematic-debugging/SKILL.md +379 -0
  203. package/.mindforge/skills/test-driven-development/SKILL.md +355 -0
  204. package/.mindforge/skills/web-pentest/SKILL.md +327 -0
  205. package/CHANGELOG.md +71 -0
  206. package/MINDFORGE.md +2 -2
  207. package/README.md +72 -3
  208. package/RELEASENOTES.md +109 -0
  209. package/bin/installer-core.js +6 -2
  210. package/bin/mindforge-cli.js +7 -0
  211. package/bin/workflows/workflow-runner.js +110 -0
  212. package/docs/commands-reference.md +25 -0
  213. package/docs/getting-started.md +42 -5
  214. package/package.json +2 -1
@@ -0,0 +1,156 @@
1
+ ---
2
+ name: 1password
3
+ description: Set up and use 1Password CLI (op). Use when installing the CLI, enabling desktop app integration, signing in, and reading/injecting secrets for commands.
4
+ version: 1.0.0
5
+ setup:
6
+ help: "Create a service account at https://my.1password.com → Settings → Service Accounts"
7
+ collect_secrets:
8
+ - env_var: OP_SERVICE_ACCOUNT_TOKEN
9
+ prompt: "1Password Service Account Token"
10
+ provider_url: "https://developer.1password.com/docs/service-accounts/"
11
+ secret: true
12
+ ---
13
+
14
+ # 1Password CLI
15
+
16
+ Use this skill when the user wants secrets managed through 1Password instead of plaintext env vars or files.
17
+
18
+ ## Requirements
19
+
20
+ - 1Password account
21
+ - 1Password CLI (`op`) installed
22
+ - One of: desktop app integration, service account token (`OP_SERVICE_ACCOUNT_TOKEN`), or Connect server
23
+ - `tmux` available for stable authenticated sessions during the agent terminal calls (desktop app flow only)
24
+
25
+ ## When to Use
26
+
27
+ - Install or configure 1Password CLI
28
+ - Sign in with `op signin`
29
+ - Read secret references like `op://Vault/Item/field`
30
+ - Inject secrets into config/templates using `op inject`
31
+ - Run commands with secret env vars via `op run`
32
+
33
+ ## Authentication Methods
34
+
35
+ ### Service Account (recommended for the agent)
36
+
37
+ Set `OP_SERVICE_ACCOUNT_TOKEN` in `${HERMES_HOME:-~/.hermes}/.env` (the skill will prompt for this on first load).
38
+ No desktop app needed. Supports `op read`, `op inject`, `op run`.
39
+
40
+ ```bash
41
+ export OP_SERVICE_ACCOUNT_TOKEN="your-token-here"
42
+ op whoami # verify — should show Type: SERVICE_ACCOUNT
43
+ ```
44
+
45
+ ### Desktop App Integration (interactive)
46
+
47
+ 1. Enable in 1Password desktop app: Settings → Developer → Integrate with 1Password CLI
48
+ 2. Ensure app is unlocked
49
+ 3. Run `op signin` and approve the biometric prompt
50
+
51
+ ### Connect Server (self-hosted)
52
+
53
+ ```bash
54
+ export OP_CONNECT_HOST="http://localhost:8080"
55
+ export OP_CONNECT_TOKEN="your-connect-token"
56
+ ```
57
+
58
+ ## Setup
59
+
60
+ 1. Install CLI:
61
+
62
+ ```bash
63
+ # macOS
64
+ brew install 1password-cli
65
+
66
+ # Linux (official package/install docs)
67
+ # See references/get-started.md for distro-specific links.
68
+
69
+ # Windows (winget)
70
+ winget install AgileBits.1Password.CLI
71
+ ```
72
+
73
+ 2. Verify:
74
+
75
+ ```bash
76
+ op --version
77
+ ```
78
+
79
+ 3. Choose an auth method above and configure it.
80
+
81
+ ## the agent Execution Pattern (desktop app flow)
82
+
83
+ the agent terminal commands are non-interactive by default and can lose auth context between calls.
84
+ For reliable `op` use with desktop app integration, run sign-in and secret operations inside a dedicated tmux session.
85
+
86
+ Note: This is NOT needed when using `OP_SERVICE_ACCOUNT_TOKEN` — the token persists across terminal calls automatically.
87
+
88
+ ```bash
89
+ SOCKET_DIR="${TMPDIR:-/tmp}/hermes-tmux-sockets"
90
+ mkdir -p "$SOCKET_DIR"
91
+ SOCKET="$SOCKET_DIR/hermes-op.sock"
92
+ SESSION="op-auth-$(date +%Y%m%d-%H%M%S)"
93
+
94
+ tmux -S "$SOCKET" new -d -s "$SESSION" -n shell
95
+
96
+ # Sign in (approve in desktop app when prompted)
97
+ tmux -S "$SOCKET" send-keys -t "$SESSION":0.0 -- "eval \"\$(op signin --account my.1password.com)\"" Enter
98
+
99
+ # Verify auth
100
+ tmux -S "$SOCKET" send-keys -t "$SESSION":0.0 -- "op whoami" Enter
101
+
102
+ # Example read
103
+ tmux -S "$SOCKET" send-keys -t "$SESSION":0.0 -- "op read 'op://Private/Npmjs/one-time password?attribute=otp'" Enter
104
+
105
+ # Capture output when needed
106
+ tmux -S "$SOCKET" capture-pane -p -J -t "$SESSION":0.0 -S -200
107
+
108
+ # Cleanup
109
+ tmux -S "$SOCKET" kill-session -t "$SESSION"
110
+ ```
111
+
112
+ ## Common Operations
113
+
114
+ ### Read a secret
115
+
116
+ ```bash
117
+ op read "op://app-prod/db/password"
118
+ ```
119
+
120
+ ### Get OTP
121
+
122
+ ```bash
123
+ op read "op://app-prod/npm/one-time password?attribute=otp"
124
+ ```
125
+
126
+ ### Inject into template
127
+
128
+ ```bash
129
+ echo "db_password: {{ op://app-prod/db/password }}" | op inject
130
+ ```
131
+
132
+ ### Run a command with secret env var
133
+
134
+ ```bash
135
+ export DB_PASSWORD="op://<vault>/<item>/<field>"
136
+ op run -- sh -c '[ -n "$DB_PASSWORD" ] && echo "DB_PASSWORD is set" || echo "DB_PASSWORD missing"'
137
+ ```
138
+
139
+ ## Guardrails
140
+
141
+ - Never print raw secrets back to user unless they explicitly request the value.
142
+ - Prefer `op run` / `op inject` instead of writing secrets into files.
143
+ - If command fails with "account is not signed in", run `op signin` again in the same tmux session.
144
+ - If desktop app integration is unavailable (headless/CI), use service account token flow.
145
+
146
+ ## CI / Headless note
147
+
148
+ For non-interactive use, authenticate with `OP_SERVICE_ACCOUNT_TOKEN` and avoid interactive `op signin`.
149
+ Service accounts require CLI v2.18.0+.
150
+
151
+ ## References
152
+
153
+ - `references/get-started.md`
154
+ - `references/cli-examples.md`
155
+ - https://developer.1password.com/docs/cli/
156
+ - https://developer.1password.com/docs/service-accounts/
@@ -0,0 +1,31 @@
1
+ # op CLI examples
2
+
3
+ ## Sign-in and identity
4
+
5
+ ```bash
6
+ op signin
7
+ op signin --account my.1password.com
8
+ op whoami
9
+ op account list
10
+ ```
11
+
12
+ ## Read secrets
13
+
14
+ ```bash
15
+ op read "op://app-prod/db/password"
16
+ op read "op://app-prod/npm/one-time password?attribute=otp"
17
+ ```
18
+
19
+ ## Inject secrets
20
+
21
+ ```bash
22
+ echo "api_key: {{ op://app-prod/openai/api key }}" | op inject
23
+ op inject -i config.tpl.yml -o config.yml
24
+ ```
25
+
26
+ ## Run command with secrets
27
+
28
+ ```bash
29
+ export DB_PASSWORD="op://<vault>/<item>/<field>"
30
+ op run -- sh -c '[ -n "$DB_PASSWORD" ] && echo "DB_PASSWORD is set"'
31
+ ```
@@ -0,0 +1,21 @@
1
+ # 1Password CLI get-started (summary)
2
+
3
+ Official docs: https://developer.1password.com/docs/cli/get-started/
4
+
5
+ ## Core flow
6
+
7
+ 1. Install `op` CLI.
8
+ 2. Enable desktop app integration in 1Password app.
9
+ 3. Unlock app.
10
+ 4. Run `op signin` and approve prompt.
11
+ 5. Verify with `op whoami`.
12
+
13
+ ## Multiple accounts
14
+
15
+ - Use `op signin --account <subdomain.1password.com>`
16
+ - Or set `OP_ACCOUNT`
17
+
18
+ ## Non-interactive / automation
19
+
20
+ - Use service accounts and `OP_SERVICE_ACCOUNT_TOKEN`
21
+ - Prefer `op run` and `op inject` for runtime secret handling
@@ -0,0 +1,199 @@
1
+ ---
2
+ name: baoyu-article-illustrator
3
+ description: "Article illustrations: type × style × palette consistency."
4
+ version: 1.57.0
5
+ ---
6
+
7
+ # Article Illustrator
8
+
9
+ Adapted from [baoyu-article-illustrator](https://github.com/JimLiu/baoyu-skills) for
10
+
11
+ Analyze articles, identify illustration positions, generate images with **Type × Style × Palette** consistency.
12
+
13
+ ## When to Use
14
+
15
+ Trigger this skill when the user asks to illustrate an article, add images to an article, generate illustrations for content, or uses phrases like "为文章配图", "illustrate article", or "add images". The user provides an article (file path or pasted content) and optionally specifies type, style, palette, or density.
16
+
17
+ ## Three Dimensions
18
+
19
+ | Dimension | Controls | Examples |
20
+ |-----------|----------|----------|
21
+ | **Type** | Information structure | infographic, scene, flowchart, comparison, framework, timeline |
22
+ | **Style** | Rendering approach | notion, warm, minimal, blueprint, watercolor, elegant |
23
+ | **Palette** | Color scheme (optional) | macaron, warm, neon — overrides style's default colors |
24
+
25
+ Combine freely: `type=infographic, style=vector-illustration, palette=macaron`.
26
+
27
+ Or use presets: `edu-visual` → type + style + palette in one shot. See [style-presets.md](references/style-presets.md).
28
+
29
+ ## Types
30
+
31
+ | Type | Best For |
32
+ |------|----------|
33
+ | `infographic` | Data, metrics, technical |
34
+ | `scene` | Narratives, emotional |
35
+ | `flowchart` | Processes, workflows |
36
+ | `comparison` | Side-by-side, options |
37
+ | `framework` | Models, architecture |
38
+ | `timeline` | History, evolution |
39
+
40
+ ## Styles
41
+
42
+ See [references/styles.md](references/styles.md) for Core Styles, the full gallery, and Type × Style compatibility.
43
+
44
+ ## Output Structure
45
+
46
+ ```
47
+ {output-dir}/
48
+ ├── source-{slug}.{ext} # Only for pasted content
49
+ ├── outline.md
50
+ ├── prompts/
51
+ │ └── NN-{type}-{slug}.md
52
+ └── NN-{type}-{slug}.png
53
+ ```
54
+
55
+ **Default output directory**:
56
+
57
+ | Input | Output Directory | Markdown Insert Path |
58
+ |-------|------------------|----------------------|
59
+ | Article file path | `{article-dir}/imgs/` | `imgs/NN-{type}-{slug}.png` |
60
+ | Pasted content | `illustrations/{topic-slug}/` (cwd) | `illustrations/{topic-slug}/NN-{type}-{slug}.png` |
61
+
62
+ If the user asks for a different layout (e.g., images alongside the article, or a `illustrations/` subdirectory), honor that.
63
+
64
+ **Slug**: 2-4 words, kebab-case. **Conflict**: append `-YYYYMMDD-HHMMSS`.
65
+
66
+ ## Core Principles
67
+
68
+ - **Visualize concepts, not metaphors** — if the article uses a metaphor (e.g., "电锯切西瓜"), illustrate the underlying concept, not the literal image.
69
+ - **Labels use article data** — actual numbers, terms, and quotes from the article, not generic placeholders.
70
+ - **Prompt files are reproducibility records** — every illustration must have a saved prompt file under `prompts/` before any image is generated.
71
+ - **Strip secrets** — scan source content for API keys, tokens, or credentials before writing anything to disk.
72
+
73
+ ## Workflow
74
+
75
+ ```
76
+ - [ ] Step 1: Detect reference images (if provided)
77
+ - [ ] Step 2: Analyze content
78
+ - [ ] Step 3: Confirm settings (clarify tool, one question at a time)
79
+ - [ ] Step 4: Generate outline
80
+ - [ ] Step 5: Generate prompts
81
+ - [ ] Step 6: Generate images (image_generate)
82
+ - [ ] Step 7: Finalize
83
+ ```
84
+
85
+ ### Step 1: Detect Reference Images
86
+
87
+ If the user supplies reference images (paths pasted inline, attachments, or a URL):
88
+
89
+ 1. For each reference, call `vision_analyze` with the path/URL and a question asking for style, palette, composition, and subject. Record the returned description in `{output-dir}/references/NN-ref-{slug}.md` via `write_file`.
90
+ 2. **Do not** try to copy the binary via `write_file` / `read_file` — those are text-only. If you want a local copy for the record, use `terminal` (`cp "$src" "{output-dir}/references/NN-ref-{slug}.{ext}"`). The skill itself never needs to read the binary; it works off the vision description.
91
+ 3. Since `image_generate` doesn't take image inputs, the vision description is what gets embedded in prompts during Step 5.
92
+
93
+ Full procedures: [references/workflow.md](references/workflow.md#step-1-detect-reference-images).
94
+
95
+ ### Step 2: Analyze
96
+
97
+ | Analysis | Output |
98
+ |----------|--------|
99
+ | Content type | Technical / Tutorial / Methodology / Narrative |
100
+ | Purpose | information / visualization / imagination |
101
+ | Core arguments | 2-5 main points |
102
+ | Positions | Where illustrations add value |
103
+
104
+ Read source (file path → `read_file`, or pasted text) and write the analysis to `{output-dir}/analysis.md` using `write_file`.
105
+
106
+ Full procedures: [references/workflow.md](references/workflow.md#step-2-analyze).
107
+
108
+ ### Step 3: Confirm Settings
109
+
110
+ Use the `clarify` tool. Since `clarify` handles one question at a time, ask the most important question first. Skip any question whose answer is already present in the user's request.
111
+
112
+ | Order | Question | Options |
113
+ |-------|----------|---------|
114
+ | Q1 | **Preset or Type** | [Recommended preset], [alt preset], or manual: infographic, scene, flowchart, comparison, framework, timeline, mixed |
115
+ | Q2 | **Density** | minimal (1-2), balanced (3-5), per-section (Recommended), rich (6+) |
116
+ | Q3 | **Style** *(skip if preset chosen in Q1)* | [Recommended], minimal-flat, sci-fi, hand-drawn, editorial, scene, poster |
117
+ | Q4 | **Palette** *(optional)* | Default (style colors), macaron, warm, neon |
118
+ | Q5 | **Language** *(only if article language is ambiguous)* | article language / user language |
119
+
120
+ Don't ask more than 2-3 `clarify` questions in a row. If the user already specified these in their request, skip entirely.
121
+
122
+ Full procedures: [references/workflow.md](references/workflow.md#step-3-confirm-settings).
123
+
124
+ ### Step 4: Generate Outline → `outline.md`
125
+
126
+ Save `{output-dir}/outline.md` using `write_file` with frontmatter (type, density, style, palette, image_count) and one entry per illustration:
127
+
128
+ ```yaml
129
+ ## Illustration 1
130
+ **Position**: [section/paragraph]
131
+ **Purpose**: [why]
132
+ **Visual Content**: [what to show]
133
+ **Filename**: 01-infographic-concept-name.png
134
+ ```
135
+
136
+ Full template: [references/workflow.md](references/workflow.md#step-4-generate-outline).
137
+
138
+ ### Step 5: Generate Prompts
139
+
140
+ **BLOCKING**: Every illustration must have a saved prompt file before any image is generated — the prompt file is the reproducibility record.
141
+
142
+ For each illustration:
143
+
144
+ 1. Create a prompt file per [references/prompt-construction.md](references/prompt-construction.md).
145
+ 2. Save to `{output-dir}/prompts/NN-{type}-{slug}.md` using `write_file` with YAML frontmatter.
146
+ 3. Prompts MUST use type-specific templates with structured sections (ZONES / LABELS / COLORS / STYLE / ASPECT).
147
+ 4. LABELS MUST include article-specific data: actual numbers, terms, metrics, quotes.
148
+ 5. Process references (`direct`/`style`/`palette`) per prompt frontmatter — for `direct` usage, embed a textual description of the reference in the prompt (since `image_generate` doesn't take reference-image inputs).
149
+
150
+ ### Step 6: Generate Images
151
+
152
+ For each prompt file:
153
+
154
+ 1. Call `image_generate(prompt=..., aspect_ratio=...)`. `image_generate` returns a JSON result containing an image URL; it does NOT write to disk and does NOT accept an output path.
155
+ 2. Map the prompt's `ASPECT` to `image_generate`'s enum: `16:9` → `landscape`, `9:16` → `portrait`, `1:1` → `square`. Custom ratios → nearest named aspect.
156
+ 3. Download the returned URL to `{output-dir}/NN-{type}-{slug}.png` via `terminal` (e.g. `curl -sSL -o "{output-dir}/NN-{type}-{slug}.png" "{url}"`).
157
+ 4. On generation failure, auto-retry once.
158
+
159
+ Note: the underlying image-generation backend is user-configured (default: FAL FLUX 2 Klein 9B) and is NOT agent-selectable via `image_generate`. Do not write model names into prompts expecting them to route.
160
+
161
+ ### Step 7: Finalize
162
+
163
+ Insert `![description]({relative-path}/NN-{type}-{slug}.png)` after the corresponding paragraph. Alt text: concise description in the article's language.
164
+
165
+ Report:
166
+
167
+ ```
168
+ Article Illustration Complete!
169
+ Article: [path] | Type: [type] | Density: [level] | Style: [style] | Palette: [palette or default]
170
+ Images: X/N generated
171
+ ```
172
+
173
+ ## Modification
174
+
175
+ | Action | Steps |
176
+ |--------|-------|
177
+ | Edit | Update prompt → Regenerate → Update reference |
178
+ | Add | Position → Prompt → Generate → Update outline → Insert |
179
+ | Delete | Delete files → Remove reference → Update outline |
180
+
181
+ ## References
182
+
183
+ | File | Content |
184
+ |------|---------|
185
+ | [references/workflow.md](references/workflow.md) | Detailed procedures |
186
+ | [references/usage.md](references/usage.md) | Invocation examples |
187
+ | [references/styles.md](references/styles.md) | Style gallery + Palette gallery |
188
+ | [references/style-presets.md](references/style-presets.md) | Preset shortcuts (type + style + palette) |
189
+ | [references/prompt-construction.md](references/prompt-construction.md) | Prompt templates |
190
+
191
+ ## Pitfalls
192
+
193
+ 1. **Data integrity is paramount** — never summarize, paraphrase, or alter source statistics. "73% increase" stays "73% increase".
194
+ 2. **Strip secrets** — scan source content for API keys, tokens, or credentials before including in any output file.
195
+ 3. **Don't illustrate metaphors literally** — visualize the underlying concept.
196
+ 4. **Prompt files are mandatory** — no image generation without a saved prompt file. The file is what lets you regenerate or switch backends later.
197
+ 5. **`image_generate` aspect ratios** — the tool supports `landscape`, `portrait`, and `square`. Custom ratios map to the nearest option.
198
+ 6. **`image_generate` returns a URL, not a local file** — always download via `terminal` (`curl`) before inserting local image paths into the article.
199
+ 7. **No backend selection from the agent** — `image_generate` uses whatever model the user configured (default: FAL FLUX 2 Klein 9B). Don't write `"use <model> to generate this"` into prompts expecting it to route.