Docs Writer
strands-agents/harness-sdk
Draft or rewrite Strands Agents documentation pages. An agent skill from strands-agents/harness-sdk.
Blog post authoring for Atmos: MDX template, frontmatter, website/blog/tags.yml and authors.yml rules, problem-first framing, backtick-opening ban, optional cast embeds, and no-Go-internals leakage.
$ npx skills add cloudposse/atmos --skill changelog -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install cloudposse/atmos changelog --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/cloudposse/atmos.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/changelog .claude/skills/changelog && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "changelog" agent skill from https://github.com/cloudposse/atmos/tree/main/.claude/skills/changelog into .claude/skills/changelog/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "changelog", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/cloudposse/atmos/tree/main/.claude/skills/changelogType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add cloudposse/atmos --skill changelog -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install cloudposse/atmos changelog --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/cloudposse/atmos.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/changelog .agents/skills/changelog && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "changelog" agent skill from https://github.com/cloudposse/atmos/tree/main/.claude/skills/changelog into .agents/skills/changelog/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "changelog", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add cloudposse/atmos --skill changelog -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install cloudposse/atmos changelog --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/cloudposse/atmos.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/changelog .cursor/skills/changelog && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "changelog" agent skill from https://github.com/cloudposse/atmos/tree/main/.claude/skills/changelog into .cursor/skills/changelog/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "changelog", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/cloudposse/atmos.git --path .claude/skills/changelog--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add cloudposse/atmos --skill changelog -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install cloudposse/atmos changelog --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/cloudposse/atmos.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/changelog .gemini/skills/changelog && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "changelog" agent skill from https://github.com/cloudposse/atmos/tree/main/.claude/skills/changelog into .gemini/skills/changelog/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "changelog", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install cloudposse/atmos changelogInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add cloudposse/atmos --skill changelog -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/cloudposse/atmos.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/changelog .github/skills/changelog && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "changelog" agent skill from https://github.com/cloudposse/atmos/tree/main/.claude/skills/changelog into .github/skills/changelog/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "changelog", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add cloudposse/atmos --skill changelog -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install cloudposse/atmos changelog --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/cloudposse/atmos.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/changelog .opencode/skills/changelog && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "changelog" agent skill from https://github.com/cloudposse/atmos/tree/main/.claude/skills/changelog into .opencode/skills/changelog/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "changelog", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
changelogBlog post authoring for Atmos: MDX template, frontmatter, website/blog/tags.yml and authors.yml rules, problem-first framing, backtick-opening ban, optional cast embeds, and no-Go-internals leakage.
Changelog is an agent skill from cloudposse/atmos. Blog post authoring for Atmos: MDX template, frontmatter, website/blog/tags.yml and authors.yml rules, problem-first framing, backtick-opening ban, optional cast embeds, and no-Go-internals leakage. Invoke when writing, editing, or reviewing a website/blog/.mdx changelog post.
Its SKILL.md is about 2.7k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Development, covering Changelog and release notes, Markdown and Blog and article writing. The repository describes itself as: Atmos is the open-source runtime for infrastructure — it builds, authenticates, and ships Terraform, OpenTofu, Packer, Ansible, Kubernetes, Helm, and containers the same way on… The licence is Apache-2.0.
Read from SKILL.md and the folder at commit 36726ae. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
npmFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use npm, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Changelog loads about 2.7k tokens when it runs. Until then it costs about 72 tokens; SKILL.md has 1,345 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from cloudposse/atmos at commit 36726ae, republished under its Apache-2.0 licence (© cloudposse). 1,345 words, ~2,732 tokens.
.claude/skills/changelog/SKILL.md (or your agent's skills folder).Use this skill whenever you create or edit a post under website/blog/. It is the single source of truth
for the template, tags, authors, and style rules — CLAUDE.md, the pull-request skill, and the docs
skill all point here instead of restating these rules. Don't re-duplicate them elsewhere.
Only non-draft PRs targeting main, labeled minor or major, need one — see the pull-request skill's
label decision tree. CI enforces this via .github/workflows/changelog-check.yml, which checks for a new
website/blog/*.md or *.mdx file (draft PRs, and PRs targeting a branch other than main, are exempt
entirely). Write posts as .mdx regardless — Rule 3 below embeds <CastEmbed> as real JSX, which only
.mdx renders; CI accepts .md but that's not this repo's convention.
If a change is genuinely internal-only with zero user-visible effect, it doesn't get a post at all — that
invariant belongs to the roadmap skill ("no changelog post for internal-only refactors"); don't work around
it by writing an implementation-heavy post instead.
Create website/blog/YYYY-MM-DD-<slug>.mdx:
---
slug: descriptive-slug
title: "Clear Title"
authors: [username]
tags: [feature]
---
Open on the PAIN the reader already feels — the broken/tedious/confusing thing they live with
today — then name the change as the relief.
<!--truncate-->
## The Problem
...
## The Fix
...
## How to Use It
...
## Get Involved.mdx, YAML frontmatter, <!--truncate--> immediately after the intro paragraph(s) — that's what shows in
the blog feed.## What Changed — lead with the problem (see Rule 1).website/blog/tags.yml, never invent oneUser-facing: feature, enhancement, bugfix, dx, breaking-change, security, documentation,
deprecation, experimental, atmos-pro. Internal/contributor-only, zero user impact: core.
website/blog/authors.ymlUse the individual human contributor's GitHub username, not a generic team byline. This repo's own history
favors real usernames overwhelmingly (e.g. osterman and aknysh account for the large majority of posts) —
a generic atmos author appears on only a small minority of posts and is a pattern to avoid going forward.
If the contributor isn't in authors.yml yet, add them in the same PR before referencing their username
in frontmatter.
The intro (the text above <!--truncate-->) must open on the reader's pain, not on what Atmos now does.
Don't make the post self-referential ("Atmos doesn't support X, so we added it") — describe the general
problem or technique first, the way someone outside the project would recognize it, then bring in the fix.
2026-07-02-atmos-builds-atmos.mdx opens: "Atmos now builds itself through a first-class
Atmos command:" — self-referential and feature-first.2026-06-28-list-dependencies.mdx opens: "The new atmos list dependencies command
renders..." — feature-first (and also a Rule 2 violation, see below).2026-06-29-ci-log-groups.mdx opens: "A workflow fails in CI. You open the run and you're
staring at two thousand lines of undifferentiated output..." — pain first, product named later.2026-07-09-vendor-diff-and-update.mdx opens: "Bumping a vendored component to a newer
version has always meant guessing."Structure the body ## The Problem / ## The Fix / ## How to Use It / ## Get Involved.
Find the actual motivating reason for the change (PR description, linked issue, commit messages) before writing the intro, and open on that — not a plausible-sounding scenario constructed to fit it, and not narrowed to the one path you happened to notice it through when the real gap is broader. Both are the same mistake: substituting a specific, contrived framing for the real, general one.
2026-07-13-atmos-stack-schema-command.mdx: "Editors, CI pipelines, and offline
environments that want to validate stack manifests locally have had one option: fetch the JSON Schema
from atmos.tools... and hope it matches." A real, checkable limitation, not an anecdote.2026-08-06-toolchain-lockfile-default.mdx opened with a fabricated "a
teammate's laptop and CI don't quite match" vignette, when the real reason (stated correctly two
paragraphs later) was simpler: the fix already existed but was undocumented, so nobody enabled it.2026-08-05-taskfile-convergence.mdx opens "If you've ever tried to move
a Taskfile.yml over to Atmos, you've hit the gap..." — framing a general task-runner deficiency (no
dependency ordering, no incremental builds — table-stakes features nearly every task runner has) as if it
only matters to people migrating from one specific competitor. The real problem, stated correctly under
## The Problem, is category-general: Atmos was missing it as a task runner, full stop.If you can't find the real reason, ask rather than invent one — and state it at the scope it actually applies to.
Prose (a sentence, paragraph, or the post intro) must start with a word, not an inline code span or fence. Bullets may open with a backtick — this rule is about prose paragraphs only.
2025-10-15-introducing-atmos-auth-list.md:39: "atmos auth list solves these
challenges..."2026-06-27-git-clone-fork-pr-safety-gate.mdx:9: "atmos git clone is Atmos's native
replacement for..."2026-06-28-list-dependencies.mdx:18, 2026-06-04-use-version-ref.mdx:12: same pattern.atmos auth list command solves these challenges..." — lead with a word, then the
code span.Only a small minority of recent posts embed a cast — it's a nice-to-have, not a requirement, and should never
block a post. When a recorded demo exists (or is worth recording) under examples/<name>/ or demo/casts/...
per the atmos-asciicast skill, embed it near the top of the post, after the intro/truncate:
import CastEmbed from '@site/src/components/CastEmbed'
<CastEmbed src="/casts/examples/demo-component-versions/vendor-versions.cast" title="atmos component version vendoring" chrome controls scrubber />src points under website/static/casts/{examples,demo}/....chrome controls scrubber flags.<CastEmbed> tags are fine in one post if there are multiple relevant recordings.CastEmbed wraps CastPlayer and adds Download (rendered GIF/MP4/SVG/WEBM via Atmos Pro) and Share controls,
on by default against cloudposse/atmos at the site build's Git commit (GITHUB_SHA in CI,
main for local builds). This lets PR previews download recordings introduced by the same PR.
Use gitRef to override the source revision explicitly; do not hide controls just because a cast is unmerged.[View the full example](/examples/<name>).EmbedExample in blog posts — that component's README/file-listing duplicates content the post's
own prose already covers; it's for docs pages that need the "browse the full example" callout instead.A blog post is for users, not contributors. Never name Go package paths, internal file layout, or implementation structure — describe behavior only in CLI/config/output terms.
2025-12-18-function-registry-package.mdx: title itself is "New pkg/function Package for
Format-Agnostic Function Registry"; body names pkg/function/, pkg/yaml/, pkg/aws/identity/. A business
reader doesn't care about Go package paths.2026-06-29-ci-log-groups.mdx and 2026-06-28-list-dependencies.mdx describe mechanisms only
in terms of commands, flags, and observable output — never Go internals.Link the first useful prose mention of a feature, command, flag, configuration field, or YAML function to the specific usage page or section. A changelog announcement should lead the reader to instructions they can follow. Keep code blocks copyable and avoid linking every repetition. Verify the actual route and heading anchor; filenames are not always public URLs. When supported functionality has no usage documentation, add it to the appropriate reference page before linking. For retired functionality, link applicable migration or deprecation guidance without rewriting history.
## What Changed opener)website/blog/tags.ymlwebsite/blog/authors.yml (added in this PR if new)cd website && npm run build succeedsroadmap skill — link the post's slug into the shipped milestone (changelog: 'your-slug') once
published. This skill doesn't own roadmap.js edits; hand off to the roadmap skill for that.pull-request skill — owns the semver-label decision tree that determines whether a post is required at
all; this skill only owns the post itself once one is required.© cloudposse, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .claude/skills/changelog of cloudposse/atmos.
Open the folder on GitHubat commit 36726ae
Changelog next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Changelog this skillcloudposse/atmos | 1.4k | — | ~2.7k | Automated safety check: Pass | Apache-2.0 | |
| Docs Writerstrands-agents/harness-sdk | 8.7k | — | ~2k | Automated safety check: Pass | Apache-2.0 | |
| Noodle Releasewilfredinni/noodle | 363 | — | ~2k | Automated safety check: Pass | Apache-2.0 | |
| Opik Docs Writercomet-ml/opik | 22k | — | ~3.2k | Automated safety check: Pass | Apache-2.0 | |
| Release Announcementpaperclipai/paperclip | 99k | — | ~1.7k | Automated safety check: Pass | MIT | |
| Avoid AI Writingwshobson/agents | 40k | — | ~1.9k | Automated safety check: Pass | MIT |
strands-agents/harness-sdk
Draft or rewrite Strands Agents documentation pages. An agent skill from strands-agents/harness-sdk.
wilfredinni/noodle
Prepare a versioned Noodle release by updating package.json, inspecting changes since the latest tag, auditing every repository-maintained skill, synchronizing affected README, AGENTS.md, tests…
comet-ml/opik
Guides writing Fern MDX pages for the Opik documentation site, including frontmatter, structure, components, navigation entries and release-note routing.
paperclipai/paperclip
Write a release announcement — changelog, blog post, in-app note, or social post — that leads with user impact, names the audience, and includes upgrade/migration steps without filler.
wshobson/agents
Audit and rewrite prose so it stops reading as machine-generated.
gooseworks-ai/goose-skills
Creates talking head videos from any source material (docs, changelogs, blog posts, notes, transcripts).
cloudposse/atmos
A skill your agent uses when implementing, finishing, documenting, or reviewing a fix, repair, remediation, bug fix, debug-and-fix task, workflow fix, infrastructure fix, or any change that should…
cloudposse/atmos
Atmos Terraform linting with TFLint: standalone atmos terraform lint, component-aware config discovery and toolchain versions, TFLint rule configuration, and lifecycle hooks/CI findings.
cloudposse/atmos
Decide whether a PR's new or changed default needs edition-journal handling (pkg/edition, docs/prd/editions.md), and do the mechanical work if so: journal entries, the four-layer default check…
cloudposse/atmos
Migrate to Atmos from native Terraform, Terraform Workspaces, Terramate, Terragrunt, Make, Just, or Task; migrate tool versions from mise or Aqua CLI; migrate AWS/GCP/Azure CLI configs, Leapp…
cloudposse/atmos
Start an hourly background loop that keeps the current branch's PR rebased, its addressed CodeRabbit threads resolved, its CI checks passing, its lint clean, its tests passing with adequate patch…
cloudposse/atmos
Maintain and update the Atmos roadmap page (website/src/data/roadmap.js): milestone/initiative/quarter schema, progress-percentage math, the curated featured[] cap (max 6, never auto-modified), and…
Categories
Blog post authoring for Atmos: MDX template, frontmatter, website/blog/tags.yml and authors.yml rules, problem-first framing, backtick-opening ban, optional cast embeds, and no-Go-internals leakage. Changelog is an agent skill from cloudposse/atmos.yml rules, problem-first framing, backtick-opening ban, optional cast embeds, and no-Go-internals leakage.
Changelog fits situations like: tasks that involve Changelog and release notes; tasks that involve Markdown; tasks that involve Blog and article writing.
Run `npx skills add cloudposse/atmos --skill changelog -a claude-code`. Or copy the skill folder (.claude/skills/changelog in cloudposse/atmos) into .claude/skills/changelog in your project. Claude Code loads it when a task matches its description.
Run `npx skills add cloudposse/atmos --skill changelog -a codex`. Or copy the skill folder (.claude/skills/changelog in cloudposse/atmos) into .agents/skills/changelog in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add cloudposse/atmos --skill changelog -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/changelog, .gemini/skills/changelog, .github/skills/changelog and .opencode/skills/changelog in your project.
Going by SKILL.md and its folder, Changelog needs the command-line tools its instructions call (npm).
SKILL.md contains no URLs. Its commands use npm, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Changelog is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.7k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Changelog: Docs Writer (strands-agents/harness-sdk, 8.7k stars), Noodle Release (wilfredinni/noodle, 363 stars), Opik Docs Writer (comet-ml/opik, 22k stars) and Release Announcement (paperclipai/paperclip, 99k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
cloudposse (a GitHub organization) maintains it in cloudposse/atmos, which has 1,396 GitHub stars. The repository holds 70 skills in this directory. The repository was last updated on October 8, 2026.
Source: cloudposse/atmos on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.