Skip to content

Add goose-blog-post skill#11

Merged
angiejones merged 14 commits intomainfrom
add-goose-blog-post-skill
Feb 10, 2026
Merged

Add goose-blog-post skill#11
angiejones merged 14 commits intomainfrom
add-goose-blog-post-skill

Conversation

@angiejones
Copy link
Collaborator

@angiejones angiejones commented Feb 10, 2026

Summary

Adds a new goose-blog-post skill that guides AI agents through writing and publishing blog posts for the block/goose open-source project.

What This Skill Does

Provides a step-by-step workflow for creating blog posts on the goose Docusaurus blog:

  1. Gather blog post details — topic, author, audience, key points
  2. Verify/create author entry — checks authors.yml and scaffolds new entries
  3. Create the blog post directory — correct YYYY-MM-DD-slug-title/ naming convention
  4. Write the blog post — frontmatter, banner image, truncate marker, content with goose-specific conventions
  5. Social media image setup — Open Graph / Twitter card metadata
  6. Review checklist — validates all conventions are followed
  7. Local preview instructions — tells the user how to preview (without blocking the terminal)

Conventions Encoded

  • Frontmatter format (title, description, authors)
  • Banner image requirements (1200×600, placed after frontmatter)
  • <!--truncate--> marker placement
  • Heading hierarchy (no h1 in body)
  • goose-specific linking and naming conventions
  • authors.yml entry format with GitHub avatar URL derivation

Checklist

  • Skill follows the Agent Skills specification
  • SKILL.md includes required frontmatter (name, description)
  • No secrets, API keys, or sensitive data
  • Skill is broadly useful for anyone contributing to the goose blog
  • Includes a complete example blog post for reference

A skill that guides agents through writing and publishing blog posts
for the block/goose open-source project. Includes step-by-step workflow
for author setup, directory creation, frontmatter, content writing with
goose-specific conventions, and a review checklist.
@github-actions
Copy link

github-actions bot commented Feb 10, 2026

✅ Validate Skills — PASSED

Summary: FAIL=0 · WARN=0
Changed skill dirs: goose-blog-post

Output (last 200 lines)

✅ Found 7 skill directories.
✅ api-setup: structure validated
✅ beads: structure validated
✅ code-review: structure validated
✅ frontend-design: structure validated
✅ goose-blog-post: structure validated
✅ rp-why: structure validated
✅ testing-strategy: structure validated

Structure validation PASSED.

@github-actions
Copy link

github-actions bot commented Feb 10, 2026

🛡️ Skills Security Scan — WARN

Summary: FAIL=0 · WARN=30 · FILES=3
Changed skills scanned: goose-blog-post

⚠️ WARN requires investigation + CODEOWNERS review.

⚠️ Warnings

goose-blog-post

  • network:urlgoose-blog-post/README.md:3
A skill that guides AI agents through writing and publishing blog posts for the [block/goose](https://github.com/block/goose) open source project.

Guidance: Review: URL present; confirm expected destination and purpose.

  • network:urlgoose-blog-post/README.md:8
npx skills add https://github.com/block/agent-skills --skill goose-blog-post

Guidance: Review: URL present; confirm expected destination and purpose.

  • content:entropy-high-filegoose-blog-post/SKILL.md:1
---
  • network:urlgoose-blog-post/SKILL.md:16
Write blog posts for the [block/goose](https://github.com/block/goose) open source project blog powered by Docusaurus.

Guidance: Review: URL present; confirm expected destination and purpose.

  • network:urlgoose-blog-post/SKILL.md:69
  image_url: https://avatars.githubusercontent.com/u/<github-id>?v=4

Guidance: Review: URL present; confirm expected destination and purpose.

  • network:urlgoose-blog-post/SKILL.md:77
Ask the user for any missing details (name, title, GitHub username, social handles). The `image_url` can be derived from their GitHub profile: `https://avatars.githubusercontent.com/u/<id>?v=4`. Look up their GitHub user ID if needed:

Guidance: Review: URL present; confirm expected destination and purpose.

  • network:urlgoose-blog-post/SKILL.md:180
- When linking to goose docs: `https://block.github.io/goose/`

Guidance: Review: URL present; confirm expected destination and purpose.

  • network:urlgoose-blog-post/SKILL.md:181
- When linking to the repo: `https://github.com/block/goose`

Guidance: Review: URL present; confirm expected destination and purpose.

  • network:urlgoose-blog-post/SKILL.md:182
- When linking to extensions: `https://block.github.io/goose/extensions`

Guidance: Review: URL present; confirm expected destination and purpose.

  • network:urlgoose-blog-post/SKILL.md:192
  <meta property="og:url" content="https://block.github.io/goose/blog/YYYY/MM/DD/slug-title" />

Guidance: Review: URL present; confirm expected destination and purpose.

  • network:urlgoose-blog-post/SKILL.md:194
  <meta property="og:image" content="https://block.github.io/goose/assets/images/BANNER_FILENAME_WITH_HASH.png" />

Guidance: Review: URL present; confirm expected destination and purpose.

  • network:urlgoose-blog-post/SKILL.md:199
  <meta name="twitter:image" content="https://block.github.io/goose/assets/images/BANNER_FILENAME_WITH_HASH.png" />

Guidance: Review: URL present; confirm expected destination and purpose.

  • network:urlgoose-blog-post/SKILL.md:208
- `og:url` — the production URL: `https://block.github.io/goose/blog/YYYY/MM/DD/slug-title`

Guidance: Review: URL present; confirm expected destination and purpose.

  • network:urlgoose-blog-post/SKILL.md:213
When first creating the post, use `https://block.github.io/goose/assets/images/BANNER_FILENAME_WITH_HASH.png` as the placeholder for `og:image` and `twitter:image`. The `BANNER_FILENAME_WITH_HASH` portion will be replaced with the real file…

Guidance: Review: URL present; confirm expected destination and purpose.

  • network:urlgoose-blog-post/SKILL.md:228
This starts a local dev server at `http://localhost:3000` with hot reloading.

Guidance: Review: URL present; confirm expected destination and purpose.

  • network:urlgoose-blog-post/SKILL.md:234
   `http://localhost:3000/goose/assets/images/banner-a1b2c3d4e5f6.png`

Guidance: Review: URL present; confirm expected destination and purpose.

  • network:urlgoose-blog-post/SKILL.md:237
   `https://block.github.io/goose/assets/images/banner-a1b2c3d4e5f6.png`

Guidance: Review: URL present; confirm expected destination and purpose.

  • network:urlgoose-blog-post/SKILL.md:320
Building an MCP server took about an hour and saved our team countless context switches. If you want to learn more, check out the [MCP documentation](https://modelcontextprotocol.io/introduction) and the [goose extensions directory](https:/…

Guidance: Review: URL present; confirm expected destination and purpose.

  • network:urlgoose-blog-post/SKILL.md:325
  <meta property="og:url" content="https://block.github.io/goose/blog/2025/07/01/custom-mcp-server" />

Guidance: Review: URL present; confirm expected destination and purpose.

  • network:urlgoose-blog-post/SKILL.md:327
  <meta property="og:image" content="https://block.github.io/goose/assets/images/banner-a1b2c3d4e5f6.png" />

Guidance: Review: URL present; confirm expected destination and purpose.

  • network:urlgoose-blog-post/SKILL.md:332
  <meta name="twitter:image" content="https://block.github.io/goose/assets/images/banner-a1b2c3d4e5f6.png" />

Guidance: Review: URL present; confirm expected destination and purpose.

  • network:urlgoose-blog-post/references/BLOG-POST-TEMPLATE.md:36
  <meta property="og:url" content="https://block.github.io/goose/blog/YYYY/MM/DD/slug-title" />

Guidance: Review: URL present; confirm expected destination and purpose.

  • network:urlgoose-blog-post/references/BLOG-POST-TEMPLATE.md:38
  <meta property="og:image" content="https://block.github.io/goose/assets/images/FILENAME_FROM_PREVIEW" />

Guidance: Review: URL present; confirm expected destination and purpose.

  • network:urlgoose-blog-post/references/BLOG-POST-TEMPLATE.md:43
  <meta name="twitter:image" content="https://block.github.io/goose/assets/images/FILENAME_FROM_PREVIEW" />

Guidance: Review: URL present; confirm expected destination and purpose.

  • network:urlgoose-blog-post/references/BLOG-POST-TEMPLATE.md:55
  image_url: https://avatars.githubusercontent.com/u/GITHUB_USER_ID?v=4

Guidance: Review: URL present; confirm expected destination and purpose.

  • network:urlgoose-blog-post/references/BLOG-POST-TEMPLATE.md:88
- goose docs: https://block.github.io/goose/

Guidance: Review: URL present; confirm expected destination and purpose.

  • network:urlgoose-blog-post/references/BLOG-POST-TEMPLATE.md:89
- goose repo: https://github.com/block/goose

Guidance: Review: URL present; confirm expected destination and purpose.

  • network:urlgoose-blog-post/references/BLOG-POST-TEMPLATE.md:90
- Extensions directory: https://block.github.io/goose/extensions

Guidance: Review: URL present; confirm expected destination and purpose.

  • network:urlgoose-blog-post/references/BLOG-POST-TEMPLATE.md:91
- MCP docs: https://modelcontextprotocol.io/introduction

Guidance: Review: URL present; confirm expected destination and purpose.

  • network:urlgoose-blog-post/references/BLOG-POST-TEMPLATE.md:99
5. Production URL: `https://block.github.io/goose/assets/images/<filename>`

Guidance: Review: URL present; confirm expected destination and purpose.


Notes: This comment auto-updates on each push to keep PRs clean.

Authors often want to write their own content rather than have the agent
write everything. The skill now supports three modes:

1. 'I have a draft' — agent scaffolds and reviews, preserves author voice
2. 'I have notes/an outline' — agent expands into draft, author reviews
3. 'Write it for me' — agent writes full post, author reviews

Also adds a mandatory 'present draft for review' step and moves content
type suggestions into their own reference section.
Includes a quick-start template, author entry template, frontmatter
quick reference table, directory naming convention, and key URLs.
This supports progressive disclosure — the agent loads the main SKILL.md
first and can pull in this reference for scaffolding details.
- Banner image is now the social sharing image (no separate social-banner)
- Every post must end with a <head> section for Open Graph and Twitter cards
- Added Step 6: Preview locally to discover the Docusaurus-hashed image URL
- Updated template reference to include <head> section and image URL discovery
- Reordered steps: preview is now required (not optional) since it's needed
  to get the image URL for the social metadata
- Template placeholder now shows full production URL with just the filename
  as the variable part: https://block.github.io/goose/assets/images/FILENAME
- Ensures agents never paste localhost URLs into the <head> section
- Consistent between SKILL.md and BLOG-POST-TEMPLATE.md
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new goose-blog-post Agent Skill that provides a structured workflow (with templates) for drafting and publishing blog posts to the block/goose Docusaurus blog.

Changes:

  • Introduces goose-blog-post/SKILL.md with an end-to-end, step-by-step blog authoring/publishing workflow.
  • Adds goose-blog-post/references/BLOG-POST-TEMPLATE.md as a reusable post + author-entry template.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 4 comments.

File Description
goose-blog-post/SKILL.md Defines the guided workflow, conventions, preview steps, and an example post.
goose-blog-post/references/BLOG-POST-TEMPLATE.md Provides a starter index.md template and authors.yml entry scaffold.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

EbonyLouis
EbonyLouis previously approved these changes Feb 10, 2026
Use 4-backtick outer fence so inner ```bash code blocks render
correctly instead of showing literal backslash escapes.

Resolves Copilot review comment.
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 3 out of 3 changed files in this pull request and generated 2 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@angiejones angiejones merged commit 60bfdad into main Feb 10, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

Comments