Blog writer
Skill IdkwhatImD0ing/hackathonstarterkit/.agents/skills/blog-writer
Win your next hackathon: a battle-tested playbook plus an AI agent skill pipeline that scaffolds and ships your project.
npx -y skills add IdkwhatImD0ing/hackathonstarterkit --skill blog-writerAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Write or expand Hackathon Playbook blog posts in `lib/blog.ts` using the site's rich content block system and SEO rules. Use this skill whenever the user asks for a new article, blog idea, SEO post, content update, or anything that should become a `/blog/[slug]` entry, even if they only describe the topic casually.
SKILL.md
5.6 KB, as published. Nobody here has run it
Blog Writer
Create blog posts for the Hackathon Playbook site. Posts are structured data in lib/blog.ts; rendering, metadata, JSON-LD, and sitemap entries are handled by the blog templates.
Start With Context
Read lib/blog.ts and, if needed, app/blog/[slug]/page.tsx before writing. Identify existing post slugs, reusable internal links, the exact BlogPost and ContentBlock shapes, and any renderer constraints.
If the user did not provide enough direction, ask for the missing essentials:
- Topic or working title
- Target reader
- Primary search keyword
- Desired angle, such as beginner guide, tactical checklist, teardown, or opinionated recommendation
If the user is unsure, suggest three ideas that fill gaps in current coverage.
Plan Before Editing
Share a short outline and wait for approval unless the user explicitly asked you to proceed without review. Include:
- Slug matched to the target query
- Title under 70 characters when practical
- Description of 150-160 characters with the primary keyword early
- Four to six keywords
- Five to eight sections with planned block types
- Internal links to related playbook, non-coder, or blog pages
- Estimated reading time
Content Rules
Prefer the blocks array over legacy paragraphs. Each section should normally start with a paragraph block, then use visual blocks to make the article scannable.
Use these block types from lib/blog.ts:
paragraph: context, transitions, and narrative explanationscallout: one important warning, tip, background note, or takeawaystat-row: two to four metrics that support the argumentstep-list: three to six sequential stepsquote: social proof or expert framingpro-con: decisions, tradeoffs, or do/don't guidancecode-snippet: commands, config, or code exampleschecklist: preparation or launch checklists with four to eight itemslink-card: internal links, especially in the final section
Composition guidance:
- Use three to five different block types per article.
- Avoid back-to-back visual blocks without a
paragraphtransition when the reader needs context. - Use callouts sparingly. If everything is highlighted, nothing feels important.
- Put terminal commands in
code-snippetblocks. - Emphasize key phrases by wrapping them in
**double asterisks**insideparagraphorcallouttext; the renderer converts them to bold. Use sparingly. This is the only inline markdown the renderer supports (no italics, links, or*single*asterisks in body text). - Include at least one
link-cardto existing site content. - Every quote must include a real attribution with the person's full name and credential, title, or source.
Write To Be Finished
Most readers never reach the end. Optimize for completion, grounded in docs/blog-engagement-research.md (read it for the evidence and sources). The highest-leverage moves:
- Front-load the payoff. Put the core answer in the first sentence and above the fold (inverted pyramid). Readers absorb only about 20 to 28% of a page's words (NN/g, 2008).
- Short first sentence. Start momentum at near-zero effort; the headline's job is just to earn sentence one (Joseph Sugarman, 1998).
- One concrete curiosity gap in the intro, paid off later.
- Cut verbosity. Word count is not a ranking factor; edit until no word can be removed. Cover the intent, then stop.
- A surprise in the middle and a forward-looking payoff at the end, not a recap.
Before finishing, run the post through docs/blog-engagement-checklist.md.
Add The Post
Append the post object to BLOG_POSTS in lib/blog.ts. Preserve local formatting and do not rewrite unrelated posts. Use today's date unless the user specifies a publication date.
Minimum post shape:
{
slug: "target-keyword-slug",
title: "Keyword-Rich Title",
description: "150-160 character SEO description with the primary keyword early.",
date: "YYYY-MM-DD",
readingTime: "X min read",
keywords: ["primary keyword", "secondary keyword"],
content: [
{
heading: "Section Heading",
paragraphs: [],
blocks: [
{ type: "paragraph", text: "Section introduction." },
{ type: "callout", variant: "tip", text: "Important guidance." },
],
},
],
}
Verify
Check the post against the SEO plan:
- Slug targets the search query
- Title contains the primary keyword naturally
- Description is 150-160 characters
- Keywords list has four to six entries
- Internal link-card is present
- Quote attributions are complete
- Metadata, JSON-LD, and sitemap are covered by the existing blog templates
- The post passes
docs/blog-engagement-checklist.md(short first sentence, front-loaded payoff, scannable structure, no padding)
Run the project validation that matches the repo. Prefer the existing build command if package scripts reveal one; otherwise use npx next build.
Final Response
Return:
- Post Summary: title, slug, keyword, section count, and block types used
- SEO Status: checklist results and any tradeoffs
- Verification: command run and outcome, or why it was skipped
- Next Step: one useful content improvement or promotion idea