article-authoring
Use when creating or substantially editing documentation articles in src/content, including frontmatter, headings, media embeds (R2/Gyazo), workflow links, tags, summaries, and preserving the owner's
SKILL.md.claude/skills/article-authoring/SKILL.md
GitHubArticle Authoring
Pipeline
This skill is the entry point for a new article. The steps after it are separate skills; read the one you need when you reach it, and tell the owner what is still outstanding.
- external-model-research — before writing, when the page covers a model or node you have not verified
- article-authoring (here) — the Japanese page. JA is always the source
- workflow-json / ia-nav-adr — when the page ships workflow files, or changes placement, slug or nav
- preview-site — check it on localhost. Not a one-off step: look again after any later step changes what a page renders
- localization — EN/ZH, only when the owner asks
- news-readme-update — for a new page only, one news row per language that exists
- release-check — before commit, re-audit the complete article package from the final Japanese source; prior step completion is not evidence
- publish-pr — only on an explicit request
Do not run steps 5-8 on your own initiative. Finish the step you are on, then say which steps remain.
Read First
- Read
/ops/style-writing.mdfor style, structure, media embeds, mediaRow, tags, and translation-adjacent rules. - Read
/ops/ia.mdwhen adding a page or changing page placement. - Read nearby articles in the same section and language before writing.
Workflow
- Confirm the target language, section, slug, and scope.
- Preserve the owner's authorship. Do not rewrite beyond the requested fix unless the text is factually wrong, confusing, or structurally broken.
- Keep Japanese as the source for new content unless the owner requested localization.
- Use frontmatter consistently:
section,slug,navId,title,summary,created,updatedtagsare optional and max 5.notesusesnoteTags; do not substitute normaltags.seoTitle/seoDescriptionare optional search-result overrides for<title>(before| site name),og:/twitter:title and description, meta description, and JSON-LD description. The visible H1 andsummarystay unchanged. Write them in the page language around what searchers type (model or node name, "ComfyUI", the task); describe the owner's readable-workflow approach in plain words rather than the coined term. The owner writes or approves the wording. Every indexable page in every language must havesummary,seoTitle, andseoDescription(enforced bynpm run check:content); keepseoTitlewithin 64 display columns andseoDescriptionwithin 260 (JA/ZH) or 170 characters (EN). Mark body-less "coming soon" stubsrobots: noindex.
- Use H2/H3 only for article body structure unless an existing page pattern requires otherwise.
- Use media markup consistently.
{media=...}is the display mode and works for R2 and Gyazo URLs;{gyazo=...}is a compatible alias:- static image:
{media=image} - loop:
{media=loop} - player:
{media=player} - R2 media is referenced only as
/media/<logical name>(for example/media/basic-workflows/minimax-h3/minimax_h3_audio_driven_i2va.png:<section>/<article slug>/<lowercase_snake_case file name>), backed by an original inCOMFY_MEDIA_ORIGINALS. Unuploaded originals preview on the dev server; the pre-commit hook runsnpm run media:syncto upload and register them insrc/_data/media.json. Never run uploads on the owner's behalf unless asked. Never writemedia.comfyui.nomadoor.netURLs directly, and never invent or rename logical names without the owner. - Gyazo and other external media URLs are written directly.
- static image:
- When linking workflow JSON, use paths under
/workflows/....- Keep Performance data beside its Workflow JSON; never put it in front matter. Replace the normal Markdown link with
{% workflow "/workflows/.../example.json", level=2, gpu="RTX 4070 Ti 12GB", ram="DDR5 64GB", time="51s", tags=["2.3MP"] %}. - For multiple measured environments, pass
runs=[{ gpu: "...", ram: "...", time: "...", tags: ["..."] }, ...]to the sameworkflowshortcode. - Sampler speed is optional. Enter the value exactly as ComfyUI reports it using either
s/itorit/s, for examplesamplers=[{ speed: "2.3 s/it" }]orsamplers=[{ speed: "1.72 it/s" }]; the popup normalizes either form tos/it. Multiple Samplers are allowed, but every entry then requires a short identifyingname, for examplesamplers=[{ name: "Base", speed: "2.3 s/it" }, { name: "Refiner", speed: "1.72 it/s" }]. - For a
workflowPicker, pass an object containingfileand the same Performance fields in place of that Workflow's path string. - Keep generation-size tags compact with an approximate megapixel value such as
1MP,2.3MP, or4MP. Decimal values are allowed when useful; do not force the value to an integer. Use exactW×Honly when those dimensions are important beyond performance context.
- Keep Performance data beside its Workflow JSON; never put it in front matter. Replace the normal Markdown link with
Editing Owner Drafts
- Treat the facts, examples, and explanations present in the owner's draft as the content boundary. When asked to "整える" or fix a rough passage, repair wording and structure without inventing examples, recommendations, parameter values, or background explanations.
- Do not expand a shorthand statement merely because a generic tutorial would explain it more fully. Add prose only when the owner explicitly asks for an explanation, or when a sentence cannot be understood without it.
- Respect the page sequence. If the page says it continues from or shares behavior with an earlier page, explain only the difference here. Do not repeat inherited mechanics or settings unless the owner wrote them again for a reason.
- If research reveals a missing fact or dependency, report it to the owner before inserting it. Factual review is not permission to enlarge the draft.
- Read several nearby articles before editing and copy their site-specific conventions, not a generic documentation template. In particular, model download links include the displayed file size and are followed by the matching
ComfyUI/models/placement tree. - Preserve deliberate brevity, looseness, and author judgments. Do not replace them with textbook transitions, comprehensive lists, or polished marketing prose.
Checks
git diff --checknpm run check:contentnpm run build- Add or run
npm run test:playwrightwhen the edit affects UI behavior, nav, search, notes, or layout.