blog-writer

작성자: microsoft

VS Code 블로그 게시물을 계획, 작성 및 검토합니다. 사용자가 "블로그 게시물 작성", "블로그 초안 작성", "블로그 게시물 추가", "검토…"를 요청할 때 항상 이 스킬을 사용하세요.

npx skills add https://github.com/microsoft/vscode-docs --skill blog-writer

Write or Review a Blog Post

Help author a new VS Code blog post or review an existing one in the blogs/ folder. The skill has two modes:

  • Write mode works in two phases: it first researches the topic and proposes an outline, then drafts the post only after you approve.
  • Review mode evaluates an existing draft for clarity, conciseness, and style, and reports concrete suggestions without editing unless asked.

All work must follow the blog-writing style guide, which in turn builds on the docs-writing style guide.

When to Use

Use this skill whenever the request maps to any of these:

  • The user says "write a blog post", "draft a blog", "add a blog post for…", or "announce this on the blog".
  • The user pastes a GitHub issue or PR link and asks you to turn it into a blog post.
  • The user asks you to "review this blog post", check a draft, or improve an existing post in blogs/.
  • Announcing or explaining a new or changed VS Code or GitHub Copilot feature in a narrative, conversational format.

For new posts, run the plan-first workflow rather than jumping straight to a draft, even when the topic seems small.

Do not use this skill for reference documentation, release notes, or API docs. Those are handled by other skills (doc-writer, release-note-writer) or direct edits. If the user wants reference docs rather than a narrative post, switch to doc-writer.

Guardrails

  • Blogs only. Limit changes to the blogs/ folder. Do not update reference docs, release notes, or API docs as part of this skill.
  • Public functionality only. Announce functionality only when it is publicly available in the named channel by the post's publication date. Do not announce internal dogfood or source-only functionality.
  • Folder structure. A new post MUST live in blogs/<year>/<month>/<day>/ with each date level as its own subfolder. Store images and the social image alongside the post.
  • Frontmatter is required. Every post needs the YAML frontmatter fields from the style guide (Order, TOCTitle, PageTitle, MetaDescription, MetaSocialImage, Date, Author). Order must be unique and higher than the most recent post, so check existing posts before assigning it.
  • Images and screenshots are human work. When a hero image or screenshot is needed, insert a TODO comment for a human to capture and add it later. Do not fabricate image references or invent file names beyond the placeholder.
  • Style compliance. Follow the blog-writing style guide: engaging, conversational tone, active voice, first-person plural ("we"), contractions, and a closing call to action ending with Happy coding! 💙.

Phase 1 — Research & Propose an Outline (no edits)

Do not modify any files in this phase.

  1. Understand the topic. Read the feature description, issue, or PR provided. If it is ambiguous or lacks detail, ask clarifying questions before continuing.

  2. Establish the content framing. Identify the primary persona, reader intent, and narrative purpose by following the blog content-framing guidance. Infer them from the topic, source material, existing coverage, and writer's request. If any part of the framing remains ambiguous and different interpretations would change the angle, ask the writer to confirm before proposing the outline.

  3. Check the source if needed. To understand the feature, inspect the source code in the microsoft/vscode and microsoft/vscode-copilot-chat repos. Use the gh CLI for all GitHub interactions (issues, PRs, code). See user memory gh-cli-powershell.md for PowerShell-specific gh patterns.

    Area being written aboutPrimary source repo
    Core editor, workbench, debug, terminal, tasks, settings, commands, keybindingsmicrosoft/vscode
    Copilot Chat, inline chat, agent mode, chat tools, chat participants, MCP in chatmicrosoft/vscode-copilot-chat
  4. Verify public availability. Confirm that each announced capability is available to users in the named public channel by the publication date. Public Preview, Experimental, and Insiders functionality qualifies when labeled clearly. Source-code existence or manual configurability is not enough. Exclude planned, hidden, internal dogfood, and source-only functionality.

  5. Determine placement and metadata. Decide the target folder (blogs/<year>/<month>/<day>/) and the next available Order value by checking recent posts. Confirm the author name and social media profile link with the user if unknown.

  6. Present the outline. Summarize:

    • The primary persona, reader intent, and narrative purpose.
    • The proposed title, target folder path, and draft frontmatter values.
    • A section-by-section outline (H2 headings) with a one-line description of each.
    • Any TODO image placeholders that will be needed (hero/social image, inline screenshots).
    • Open questions or assumptions.
  7. Stop and wait for approval. Do not proceed to Phase 2 until the user explicitly approves the outline (or adjusts it).

Phase 2 — Draft the Post (after approval)

Once the user approves the outline:

  1. Create the post at blogs/<year>/<month>/<day>/<slug>.md with complete YAML frontmatter.
  2. Write the body following the approved content framing and the content structure from the style guide:
    • An H1 title, followed by a byline <Month> <day>, <year> by [<author>](<social link>) and a blank line.
    • A brief introduction that summarizes the main points.
    • H2 sections as outlined, in an engaging, conversational tone using active voice, "we", and contractions.
    • Images via relative paths with descriptive alt text. Use absolute URLs for links to documentation articles.
    • A closing call to action, ending with Happy coding! 💙.
  3. Add TODO comments where images or screenshots need to be captured by a human.
  4. Verify that the opening, examples, terminology, key takeaways, and call to action serve the approved primary persona and reader intent.
  5. Summarize the post you created and call out any remaining TODOs for the user.

Review Mode

When the user asks you to review an existing blog post instead of writing one:

  1. Read the draft and check it against the blog-writing style guide:
    • Content framing (a clear primary persona, reader intent, and narrative purpose reflected consistently throughout the post).
    • Frontmatter completeness and correctness (all required fields, unique Order, MetaDescription under 160 chars, TOCTitle under 30 chars).
    • Folder structure (blogs/<year>/<month>/<day>/).
    • Content structure (H1 title, byline, intro, H2 sections, alt text on images, absolute URLs for doc links, closing call to action ending with Happy coding! 💙).
    • Writing style (engaging and conversational, active voice, first-person plural, contractions, clear language for a developer audience).
  2. Verify technical claims against the source where practical (setting names, command IDs, version availability), using the gh CLI.
  3. Verify that announced functionality is public in the named channel by the post's publication date. Flag content that presents planned, hidden, internal dogfood, or source-only functionality as available.
  4. Report concrete, practical suggestions grouped by theme. Do not edit the file unless the user asks you to apply the changes.

microsoft의 다른 스킬

oss-growth
microsoft
OSS 성장 해커 페르소나
agent-framework-azure-ai-py
microsoft
Microsoft Agent Framework Python SDK(agent-framework-azure-ai)를 사용하여 Azure AI Foundry 에이전트를 구축합니다. AzureAIAgentsProvider로 지속적 에이전트를 만들 때, 호스팅 도구(코드 인터프리터, 파일 검색, 웹 검색)를 사용할 때, MCP 서버를 통합할 때, 대화 스레드를 관리할 때, 또는 스트리밍 응답을 구현할 때 사용합니다. 함수 도구, 구조화된 출력, 다중 도구 에이전트를 다룹니다.
development
airunway-aks-setup
microsoft
AKS에서 AI Runway 설정 — 빈 클러스터에서 실행 중인 모델까지. 클러스터 검증, 컨트롤러 설치, GPU 평가, 공급자 설정, 첫 배포를 다룹니다. 시기: "AI Runway 설정", "AKS 클러스터 온보딩", "AI Runway 설치", "airunway 설정", "AKS에 모델 배포", "AKS에서 GPU 추론", "AKS에서 KAITO 설정", "AKS에서 LLM 실행", "AKS에서 vLLM", "AKS에서 모델 서빙 설정", "AI Runway 컨트롤러".
devops
appinsights-instrumentation
microsoft
Azure Application Insights로 웹앱을 계측하기 위한 지침입니다. 원격 분석 패턴, SDK 설정, 구성 참조를 제공합니다. WHEN: 앱 계측 방법, App Insights SDK, 원격 분석 패턴, App Insights란 무엇인가, Application Insights 지침, 계측 예시, APM 모범 사례.
devops
applicationinsights-web-ts
microsoft
브라우저/웹 앱을 Application Insights JavaScript SDK(@microsoft/applicationinsights-web)로 계측합니다. Real User Monitoring(RUM) — 페이지 뷰, 클릭, AJAX/fetch 종속성, 예외, 사용자 지정 이벤트, 백엔드 OpenTelemetry 트레이스와 상관관계가 있는 브라우저 측 GenAI 에이전트 트레이스에 사용합니다. SDK Loader Script 및 npm 설정, 프레임워크 확장(React, React Native, Angular), Click Analytics, 텔레메트리 이니셜라이저, 브라우저에서 생성된 에이전트/도구/모델 스팬에 대한 OTel GenAI 의미론적 규칙을 다룹니다.
devops
azure-ai-anomalydetector-java
microsoft
Azure AI Anomaly Detector SDK for Java로 이상 탐지 애플리케이션을 구축하세요. 단변량/다변량 이상 탐지, 시계열 분석 또는 AI 기반 모니터링을 구현할 때 사용하세요.
development
azure-ai-language-conversations-py
microsoft
azure-ai-language-conversations Python SDK를 사용하여 대화형 언어 이해(CLU)를 구현합니다. ConversationAnalysisClient로 대화 의도와 엔터티를 분석하거나, NLP 기능을 구축하거나, 애플리케이션에 언어 이해를 통합할 때 사용합니다.
development
azure-ai-ml-py
microsoft
Azure Machine Learning SDK v2 for Python. ML 작업 영역, 작업, 모델, 데이터 세트, 컴퓨팅 및 파이프라인에 사용합니다. 트리거: "azure-ai-ml", "MLClient", "workspace", "model registry", "training jobs", "datasets".
development