Agent skill

Editions

by cloudposse in 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…

Apache-2.0Auto-check passedProduct & Project Management

Install Editions

skills CLI
$ npx skills add cloudposse/atmos --skill editions -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install cloudposse/atmos editions --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/cloudposse/atmos.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/editions .claude/skills/editions && rm -rf skills-src

Use ~/.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/

Facts

Skill name
editions
GitHub stars
1.4k
Token cost
~2.1k tokens
SKILL.md length
1,008 words
Files
1
Skills in repo
70
Repo updated
First seen
Licence
Apache-2.0

At a glance

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…

  • Works in 3 steps: Change the literal in… → Append a dated Entry{Date, Key, Kind:… → Regenerate the snapshot:…
  • Tasks that involve PRD writing
  • SKILL.md covers The decision tree, What NOT to do, Verifying before you commit and Related
  • Calls go

What it does

Editions is an agent skill from 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, snapshot/invariant regeneration, and the post-editions KindBehavior candidate note for behavior changes the journal can't gate yet. Invoke whenever a PR changes what a config key defaults to, or changes what an existing stored value effectively means.

Its SKILL.md is about 2.1k 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 Product & Project Management, covering PRD writing and Accounting and bookkeeping. 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.

When your agent uses it

  • Tasks that involve PRD writing
  • Tasks that involve Accounting and bookkeeping

Example prompts

  • “/editions”

Workflow steps

3 steps, taken from the first numbered list in SKILL.md.

  1. Change the literal in setDefaultConfiguration (pkg/config/load.go), and in
  2. Append a dated Entry{Date, Key, Kind: KindValue, Old, New, Description, Ref} to
  3. Regenerate the snapshot: ATMOS_REGENERATE_DEFAULTS_SNAPSHOT=true go test ./pkg/config -run TestDefaultConfigurationSnapshot.

What it can do on your machine

Read from SKILL.md and the folder at commit bbe58a6. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    Shell commands in SKILL.md call:

    • go

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Editions loads about 2.1k tokens when it runs. Until then it costs about 114 tokens; SKILL.md has 1,008 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~114
When it runs · the whole SKILL.md, loaded when a task matches
~2.1k

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.

Safety

Auto-check passed

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.

SKILL.md

The full file from cloudposse/atmos at commit bbe58a6, republished under its Apache-2.0 licence (© cloudposse). 1,008 words, ~2,066 tokens.

Download SKILL.mdSave it as .claude/skills/editions/SKILL.md (or your agent's skills folder).
name
editions
description
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, snapshot/invariant regeneration, and the post-editions KindBehavior candidate note for behavior changes the journal can't gate yet. Invoke whenever a PR changes what a config key defaults to, or changes what an existing stored value effectively means.
metadata.copyright
Copyright Cloud Posse, LLC 2026
metadata.version
1.0.0

Editions (Date-Anchored Defaults)

Source of truth: docs/prd/editions.md. This skill is the contributor-facing decision tree for "does my change need edition handling", not a restatement of the architecture — read docs/prd/editions.md for the four-layer model, pkg/edition/journal.go's Entry schema, and the guardrail tests before touching anything. This skill exists because the deciding question ("does this default change supersede prior behavior?") is easy to answer wrong by only checking the literal rule ("new keys are never journal-gated") without checking what the rule is for.

The decision tree

Ask these in order. Stop at the first "yes."

1. Does this change a previously-shipped key's literal default value? (e.g. flipping settings.terminal.pager's struct default from "true" to "false".)

→ Yes: KindValue journal entry required. Follow docs/prd/editions.md's "Contributor workflow" exactly:

  1. Change the literal in setDefaultConfiguration (pkg/config/load.go), and in defaultCliConfig (pkg/config/default.go) if that struct also carries the field. Confirm the key isn't set in the embedded atmos.yaml (layer (b) must stay journaled-key-free).
  2. Append a dated Entry{Date, Key, Kind: KindValue, Old, New, Description, Ref} to pkg/edition/journal.go — Ref is the PR URL, Old/New typed as the field is typed today.
  3. Regenerate the snapshot: ATMOS_REGENERATE_DEFAULTS_SNAPSHOT=true go test ./pkg/config -run TestDefaultConfigurationSnapshot.

Skipping this is not optional — pkg/config/default_snapshot_test.go fails the build on an unjournaled value change.

2. Is this a brand-new key whose default doesn't change what Atmos already, unconditionally did? (e.g. a new opt-in flag for genuinely new functionality with no prior equivalent — nothing before this key ever did what it controls, not even as hardcoded behavior.)

→ No action needed. docs/prd/editions.md: "new defaults are never journal-gated." Only edit the layer that introduces the key and regenerate the snapshot (new-key diffs there don't require a journal entry, just committing the updated golden file).

3. Is this a brand-new key whose default does change what Atmos already, unconditionally did — just via a key that didn't exist before?

This is the case rule 2's literal wording ("new key, so exempt") lets through even though the effect on an upgrading user is identical to a changed default: before the key existed, behavior was fixed; after it ships, the key's default silently changes that fixed behavior for every existing project with zero action from them. Two sub-questions decide the safe default:

  • Is the new automatic behavior something Atmos flat-out never did before (a new class of automatic side effect, e.g. mutating a lock file, deleting something, calling out to a new service)? → Default to the value that preserves the old, fixed behavior, even though that costs you the "just works" framing in the announcement. Ship the new capability as opt-in. Precedent: components.terraform.init.upgrade defaults to never (Atmos never passed -upgrade automatically before this setting existed), not auto, even though auto was the natural symmetric choice next to init.mode/init.reconfigure.
  • Is the new key only making an already-unconditional action conditional/smarter (same work, done less redundantly — no new class of side effect)? → Defaulting to the smarter behavior is more defensible, but you're still choosing to ship a real behavior change. Call it out explicitly and prominently in the PRD's Goals/Migration section and the blog post — don't let a reader assume "new key = no impact." Precedent: components.terraform.init.mode/ init.reconfigure default to auto (init already ran unconditionally every time; auto only skips/conditions it), with the PRD's Goals section stating outright which legacy-default combination is not behavior-preserving.

Either way: proceed to step 4.

4. Does this PR reinterpret what an existing, already-shipped config value effectively means, without changing the stored value itself? (e.g. init_run_reconfigure: true keeps meaning "true" in the YAML, but what true causes changed from "always add -reconfigure" to "add it only when the backend changed.")

→ This is KindBehavior, not KindValue — and KindBehavior resolution isn't implemented yet (pkg/edition/journal.go's Kind field has the enum value reserved, zero entries use it; see docs/prd/editions.md's Roadmap). You cannot mechanically gate this today. What you can and must do:

Show full SKILL.md (376 more words)Show less
  1. State the reinterpretation explicitly in the PR's PRD (Goals or a dedicated Migration section) — don't let it hide inside a generic "behavior change" bullet. Say precisely what the old value used to cause and what it causes now.
  2. Add a bullet to docs/prd/editions.md's Roadmap → "Behavior gating" seed-entry list, dated to this PR's merge date, with a PR link and one sentence describing the reinterpretation — same format as the existing 9 seed entries. If this is the first such entry to ship after editions itself existed (check the entry dates against docs/prd/editions.md's own PRD changelog date), say so explicitly, the way the "First post-editions candidate" paragraph does — it's a different situation from the pre-editions historical sweep and worth flagging as such.
  3. Bump docs/prd/editions.md's own Changelog table with a new dated row noting the addition (no version-number bump needed for a docs-only Roadmap addition; use the next minor, e.g. 1.0 → 1.1).

What NOT to do

  • Don't invent a KindBehavior journal entry with a fake or partial BehaviorChanged predicate to "make it gated" — the resolution engine doesn't call it, so it would silently do nothing while looking like real protection. Wait for the actual v2 implementation.
  • Don't skip the Roadmap note because "it's just a doc change" — the whole point of the seed-entry list is to make ungated behavior changes discoverable later, not to pretend editions covers something it doesn't.
  • Don't default a new automatic-side-effect key to the "smart" value just because the sibling keys in the same feature default that way — check step 3's two sub-questions per key, not per feature. A single PR can legitimately ship one key defaulting to auto and another to never.

Verifying before you commit

bash
go build ./...
go test ./pkg/edition/... ./pkg/config/...          # anchor/resolve/journal + load_edition_test.go + invariants
ATMOS_REGENERATE_DEFAULTS_SNAPSHOT=true go test ./pkg/config -run TestDefaultConfigurationSnapshot  # only if a default changed

pkg/config/edition_invariants_test.go and pkg/edition/journal_invariants_test.go fail the build on: non-chronological or malformed journal dates, a chain where entry[n+1].Old != entry[n].New, a journaled key present in the embedded atmos.yaml, or defaultCliConfig disagreeing with the journal's current value. Don't hand-edit pkg/config/testdata/default-config-snapshot.yaml — always regenerate it.

  • docs/prd/editions.md — architecture, semantics, full journal contents, testing, roadmap.
  • docs/prd/terraform-auto-init.md — worked example of both a KindBehavior candidate (init_run_reconfigure's reinterpretation) and a step-3 new-automatic-behavior default choice (init.upgrade: never) in the same PRD.
  • pull-request skill — the broader PR-readiness checklist this feeds into; run this skill's decision tree before that one's pre-push checklist when a PR touches any default.

© 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

Files

Just SKILL.md in .claude/skills/editions of cloudposse/atmos.

Open the folder on GitHubat commit bbe58a6

Compare with similar skills

Editions 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.

Editions compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Editions this skillcloudposse/atmos1.4k—~2.1kAutomated safety check: PassApache-2.0
CCPM Project Managementautomazeio/ccpm8.4k—~1.1kAutomated safety check: PassMIT
Ralph Tui Create Beadssubsy/ralph-tui2.5k1 repos~2.6kAutomated safety check: PassMIT
Trellis Brainstormanjiemo/SunnyBeach1787 repos~4kAutomated safety check: PassApache-2.0
Adversarial Speczscole/adversarial-spec5561 repos~8.3kAutomated safety check: NotesMIT
Ralph Tui Create Beads Rustsubsy/ralph-tui2.5k1 repos~2.8kAutomated safety check: PassMIT

Similar skills

  • Runs a spec-driven workflow from PRD to epic to GitHub issues to parallel agents, with status, standup and blocked-work reports from bundled scripts.

    8.4k GitHub stars~1.1k tokensUpdated 6 mo ago
    Product & Project ManagementAuto-check passed
  • Ralph Tui Create Beads

    subsy/ralph-tui

    Convert PRDs to beads for ralph-tui execution. An agent skill from subsy/ralph-tui.

    2.5k GitHub starsUsed in 1 repo~2.6k tokens
    Product & Project ManagementAuto-check passed
  • Trellis Brainstorm

    anjiemo/SunnyBeach

    Guides collaborative requirements discovery before implementation.

    178 GitHub starsUsed in 7 repos~4k tokens
    Product & Project ManagementAuto-check passed
  • Adversarial Spec

    zscole/adversarial-spec

    Iteratively refine a product spec by debating with multiple LLMs (GPT, Gemini, Grok, etc.) until all models agree.

    556 GitHub starsUsed in 1 repo~8.3k tokens
    Product & Project ManagementAuto-check: notes
  • Convert PRDs to beads for ralph-tui execution using beads-rust (br CLI).

    2.5k GitHub starsUsed in 1 repo~2.8k tokens
    Product & Project ManagementAuto-check passed
  • To Issues

    ywwynm/EverythingDone

    Break a plan, spec, or PRD into independently-grabbable issues on the project issue tracker using tracer-bullet vertical slices.

    144 GitHub starsUsed in 12 repos~893 tokens
    Product & Project ManagementAuto-check passed

More from cloudposse/atmos

All 70 skills in this repo
  • Fix Log

    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…

    1.4k GitHub stars~685 tokensUpdated today
    Auto-check passed
  • Atmos Lint

    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.

    1.4k GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • Changelog

    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.

    1.4k GitHub stars~2.7k tokensUpdated today
    Auto-check passed
  • Atmos Migration

    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…

    1.4k GitHub stars~5.1k tokensUpdated today
    Auto-check: warnings
  • PR Maintenance Loop

    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…

    1.4k GitHub stars~1.4k tokensUpdated today
    Auto-check passed
  • Roadmap

    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…

    1.4k GitHub stars~2.5k tokensUpdated today
    Auto-check passed

Questions about Editions

What does Editions do?

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…. Editions is an agent skill from cloudposse/atmos.md), and do the mechanical work if so: journal entries, the four-layer default check, snapshot/invariant regeneration, and the post-editions KindBehavior candidate note for behavior changes the journal can't gate yet.

When should I use Editions?

Editions fits situations like: tasks that involve PRD writing; tasks that involve Accounting and bookkeeping.

How do I install Editions in Claude Code?

Run `npx skills add cloudposse/atmos --skill editions -a claude-code`. Or copy the skill folder (.claude/skills/editions in cloudposse/atmos) into .claude/skills/editions in your project. Claude Code loads it when a task matches its description.

How do I install Editions in Codex?

Run `npx skills add cloudposse/atmos --skill editions -a codex`. Or copy the skill folder (.claude/skills/editions in cloudposse/atmos) into .agents/skills/editions in your project. Codex loads it when a task matches its description.

Can I use Editions in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add cloudposse/atmos --skill editions -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/editions, .gemini/skills/editions, .github/skills/editions and .opencode/skills/editions in your project.

What does Editions need to run?

Going by SKILL.md and its folder, Editions needs the command-line tools its instructions call (go).

Does Editions access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Editions safe to install?

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.

What licence does Editions use?

Editions 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.

How many tokens does Editions use?

About 2.1k tokens (SKILL.md is roughly 8.3k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Editions?

Skills that share tags, products or a category with Editions: CCPM Project Management (automazeio/ccpm, 8.4k stars), Ralph Tui Create Beads (subsy/ralph-tui, 2.5k stars), Trellis Brainstorm (anjiemo/SunnyBeach, 178 stars) and Adversarial Spec (zscole/adversarial-spec, 556 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Editions?

cloudposse (a GitHub organization) maintains it in cloudposse/atmos, which has 1,395 GitHub stars. The repository holds 70 skills in this directory. The repository was last updated on October 7, 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.