Skip to content

Add Make/Just/Task migration guides; fix two Atmos config bugs - #2896

Open
Erik Osterman (Cloud Posse) (osterman) wants to merge 19 commits into
mainfrom
osterman/make-migration-skill
Open

Add Make/Just/Task migration guides; fix two Atmos config bugs#2896
Erik Osterman (Cloud Posse) (osterman) wants to merge 19 commits into
mainfrom
osterman/make-migration-skill

Conversation

@osterman

@osterman Erik Osterman (Cloud Posse) (osterman) commented Aug 6, 2026

Copy link
Copy Markdown
Member

what

  • Extend the atmos-migration agent skill and website docs with new migration references and tutorials for Makefiles, Justfiles, and Taskfile.yml (go-task), alongside the existing native-Terraform/Terraform-Workspaces/remote-state-bridge coverage.
  • Fix pkg/config: a directory's own inline commands: entry no longer silently inherits an unrelated project's same-named .atmos.d command's subcommand tree (or fields like default:) purely because a git-root .atmos.d happens to define a command with the same name.
  • Fix internal/exec: atmos validate stacks no longer requires stacks.name_template/stacks.name_pattern to be set — it now resolves stack names the same way terraform plan, list stacks, and describe component already do (manifest name: > name_template > name_pattern > filename).
  • Correct several gaps found while field-testing the new migration guides against real fixtures and the real atmos binary: a from-native-terraform.md recipe that referenced a component name that never resolved, a missing workflows.base_path callout, Justfile/Taskfile edge cases (orphaned [private] recipes, command-echo differences, includes: guidance), and a sidebar ordering mismatch.

why

  • Users migrating a Makefile/Justfile/Taskfile-driven repo to Atmos previously had no guidance; this closes that gap.
  • Field-testing the new guides against the real binary (not just reading the docs) surfaced two genuine CLI bugs. Both are fixed at the source with regression tests, rather than documented around as known limitations.
  • examples/native-terraform — the skill's own canonical reference example — failed atmos validate stacks out of the box despite being fully valid config; the requirement was a stale code path that predated zero-config filename-based stack naming (feat: stack name identity with zero-config filename fallback #1934) and was never updated when that landed elsewhere in the CLI.

references

  • Findings and fixes came from field-testing the migration skill: three isolated fresh-agent dry runs against Makefile/Justfile/Taskfile fixtures, validated end-to-end against the real atmos binary.

Summary by CodeRabbit

  • New Features

    • Added --help=hidden to display hidden commands, including experimental built-ins.
    • Hidden commands remain directly executable and support command-specific help.
    • Added .env file support for command environment configuration.
  • Documentation

    • Added migration guides for Make, Just, and Task, with expanded Terraform guidance.
    • Documented hidden commands and AI-assisted migration workflows.
  • Bug Fixes

    • Improved stack-name resolution when naming patterns are not configured.
    • Fixed command overrides retaining unrelated subcommands.
    • Improved reliability when writing output after partial or interrupted writes.

Extend the atmos-migration skill and docs to cover moving task-runner
orchestration (Make, Just, Task) to Atmos custom commands and workflows,
alongside the existing native-Terraform/Terraform-Workspaces coverage.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…on-skill

# Conflicts:
#	agent-skills/skills/atmos-migration/SKILL.md
…os.d subcommands

A directory's own inline atmos.yaml commands: entry named the same as a
command discovered from git-root .atmos.d (e.g. an unrelated outer
project's dev tooling) silently inherited that command's subcommand tree
and other subcommand-referencing fields such as default:. Treat a leaf
command with no commands: key as fully authoritative instead of merging it
field-by-field against the discovered default.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…e_pattern

createComponentStackMap derived a component's logical stack name via a
stricter, older code path that predated zero-config filename-based stack
naming (#1934), so atmos validate stacks hard-failed on any repo that
terraform plan, list stacks, and describe component already resolved
stacks for fine, including this repo's own examples/native-terraform.
Reuse resolveStackName's precedence (manifest name > name_template >
name_pattern > filename) instead.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…ides

Field-testing the new Makefile/Justfile/Taskfile migration references
against real fixtures and the real atmos binary surfaced several gaps:
from-native-terraform.md's Shape B recipe used a component name that
never resolved (component names must match the physical directory);
workflows.base_path has no default and needs to be called out; an
orphaned [private] Justfile recipe and Just's command-echo behavior
weren't addressed; from-taskfile.md overstated the need for `import:`
when atmos.d/.atmos.d is auto-discovered; and the migration docs sidebar
order contradicted the pages' own sidebar_position values.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@atmos-pro

atmos-pro Bot commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

Tip

Atmos Pro  

No affected stacks workflow was detected for this pull request.
If this is expected, no action is needed.
Learn More. Ask AI.

@osterman Erik Osterman (Cloud Posse) (osterman) added the patch A minor, backward compatible change label Aug 6, 2026
@coderabbitai

coderabbitai Bot commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

The change expands task-runner migration guidance, adds hidden-command help, tightens command merging, updates stack-name resolution, improves short-write recovery, and adds related documentation and tests.

Changes

Migration guidance

Layer / File(s) Summary
Migration skill and references
agent-skills/AGENTS.md, agent-skills/skills/atmos-migration/*
The migration skill now covers Makefiles, Justfiles, Taskfiles, Terraform layouts, command mappings, and behavioral differences.
Website migration guides
website/docs/migration/{makefile,justfile,taskfile}.mdx, website/sidebars.js
New guides provide examples, migration steps, limitations, checklists, and FAQs.
Documentation support
website/docs/cli/configuration/commands/command/commands.mdx, website/docs/migration/{native-terraform,terraform-workspaces}.mdx, lychee.toml
Command dotenv loading and migration skill references are documented. Link checking adds one scoped exclusion.

Hidden command help

Layer / File(s) Summary
Hidden command behavior
cmd/cmd_utils_test.go, pkg/schema/command.go, pkg/datafetcher/schema/atmos/config/1.0.json, website/docs/cli/configuration/commands/command/index.mdx, agent-skills/skills/atmos-introspection/SKILL.md
Internal commands remain directly executable while staying out of standard help, completion, and AI command listings.
Hidden help topic
cmd/help_template.go, cmd/help_topics.go, cmd/help_topics_render.go, cmd/help_topics_test.go, docs/prd/topic-specific-cli-help.md
--help=hidden lists direct hidden subcommands and reports when none exist. Default help mentions the topic when applicable.

Runtime validation

Layer / File(s) Summary
Command merge override semantics
pkg/config/load.go, pkg/config/command_merge_core_test.go
Strict local leaf overrides replace inherited subcommands, while explicit nested command definitions and imported merges remain compositional.
Stack-name resolution fallback
internal/exec/validate_stacks.go, internal/exec/validate_stacks_test.go
Stack validation uses shared name resolution and tests filename or manifest-name fallback for native Terraform.

Buffered output

Layer / File(s) Summary
Flush batching and retry behavior
pkg/io/line_prefix_writer.go, pkg/io/line_prefix_writer_test.go
Partial writes retain only unwritten bytes, return short-write errors when required, and complete correctly on retry without duplication.

Estimated code review effort: 4 (Complex) | ~60 minutes

Sequence Diagram(s)

sequenceDiagram
  participant User
  participant HelpTopics
  participant HelpRenderer
  User->>HelpTopics: request --help=hidden
  HelpTopics->>HelpRenderer: render hidden topic
  HelpRenderer->>User: display direct hidden subcommands or empty-state message
Loading

Possibly related PRs

Suggested reviewers: aknysh

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 43.59% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the main changes: new Make, Just, and Task migration guides plus two Atmos configuration fixes.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch osterman/make-migration-skill

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 5

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@agent-skills/skills/atmos-migration/references/from-justfile.md`:
- Around line 42-45: Update the Common Problems link in the migration
instructions to use the fragment
`#interpolation-looks-like-atmos-templates-but-is-not`, matching the heading at
line 139; do not change the surrounding parameter-conversion guidance.

In `@agent-skills/skills/atmos-migration/references/from-makefile.md`:
- Around line 134-135: In every listed single-directory Terraform example,
update the atmos command’s component argument from infra to terraform, matching
the physical terraform/ directory:
agent-skills/skills/atmos-migration/references/from-makefile.md:134-135;
agent-skills/skills/atmos-migration/references/from-justfile.md:101-102;
agent-skills/skills/atmos-migration/references/from-taskfile.md:101-102;
website/docs/migration/makefile.mdx:102-103;
website/docs/migration/justfile.mdx:98-99;
website/docs/migration/taskfile.mdx:71-72.
- Around line 192-195: Update
agent-skills/skills/atmos-migration/references/from-makefile.md lines 192-195 to
remove the required import step for atmos.d/commands.yaml. In
website/docs/migration/taskfile.mdx line 33, remove “+ root import:” from the
mapping table; at lines 176-178, state that files in the listed discovery
directories require no import; and at line 206, revise the checklist to
distinguish auto-discovered files from manually imported files.

In `@agent-skills/skills/atmos-migration/references/from-taskfile.md`:
- Around line 42-44: Update the migration guidance for converting cmds entries
so custom Atmos commands such as atmos build remain type: shell. Reserve type:
atmos only for native Atmos verbs, such as terraform plan, and revise the
condition in the surrounding conversion instructions accordingly.

In `@website/docs/migration/taskfile.mdx`:
- Around line 179-181: Update the migration documentation to state that users
must explicitly configure workflows.base_path, using "stacks/workflows" as the
example value, and remove the claim that this path has a default or requires no
additional setup.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 96604a31-b260-4ab9-be43-e17fbcd65c03

📥 Commits

Reviewing files that changed from the base of the PR and between 3ce4349 and fd4f988.

📒 Files selected for processing (14)
  • agent-skills/AGENTS.md
  • agent-skills/skills/atmos-migration/SKILL.md
  • agent-skills/skills/atmos-migration/references/from-justfile.md
  • agent-skills/skills/atmos-migration/references/from-makefile.md
  • agent-skills/skills/atmos-migration/references/from-native-terraform.md
  • agent-skills/skills/atmos-migration/references/from-taskfile.md
  • internal/exec/validate_stacks.go
  • internal/exec/validate_stacks_test.go
  • pkg/config/command_merge_core_test.go
  • pkg/config/load.go
  • website/docs/migration/justfile.mdx
  • website/docs/migration/makefile.mdx
  • website/docs/migration/taskfile.mdx
  • website/sidebars.js

Comment thread agent-skills/skills/atmos-migration/references/from-justfile.md Outdated
Comment thread agent-skills/skills/atmos-migration/references/from-makefile.md
Comment thread agent-skills/skills/atmos-migration/references/from-makefile.md Outdated
Comment thread agent-skills/skills/atmos-migration/references/from-taskfile.md Outdated
Comment thread website/docs/migration/taskfile.mdx Outdated
- Use the terraform component name (matching the physical terraform/
  directory) instead of the never-resolving infra in every single-directory
  Makefile/Justfile/Taskfile example, consistent with the from-native-terraform.md
  Shape B fix.
- Reserve type: atmos for native Atmos verbs only in from-taskfile.md's Shape A
  guidance; calling another custom command still needs type: shell.
- Fix from-justfile.md's Common Problems link fragment (verified against the
  actual github-slugger algorithm).
- Stop telling readers import: is required for auto-discovered atmos.d/.atmos.d
  files in from-makefile.md and website/docs/migration/taskfile.mdx.
- Document that workflows.base_path has no default in
  website/docs/migration/taskfile.mdx, matching the equivalent fix already
  applied to the agent-skill references.
- Normalize from-native-terraform.md's odd-space (3/5/7) list-continuation and
  nested-YAML indentation to even, matching the EditorConfig multiple-of-2 rule
  applied to the other reference files earlier in this branch.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
coderabbitai[bot]
coderabbitai Bot previously approved these changes Aug 6, 2026
@github-actions

github-actions Bot commented Aug 6, 2026

Copy link
Copy Markdown

Dependency Review

✅ No vulnerabilities or license issues found.

Scanned Files

None

@codecov

codecov Bot commented Aug 7, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 94.44444% with 4 lines in your changes missing coverage. Please review.
✅ Project coverage is 82.98%. Comparing base (6fbcc38) to head (34a145c).
⚠️ Report is 1 commits behind head on main.

Files with missing lines Patch % Lines
internal/exec/validate_stacks.go 71.42% 1 Missing and 1 partial ⚠️
pkg/io/line_prefix_writer.go 91.30% 1 Missing and 1 partial ⚠️
Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##             main    #2896      +/-   ##
==========================================
+ Coverage   82.93%   82.98%   +0.04%     
==========================================
  Files        1879     1879              
  Lines      182633   182790     +157     
==========================================
+ Hits       151474   151680     +206     
+ Misses      23343    23294      -49     
  Partials     7816     7816              
Flag Coverage Δ
unittests 82.98% <94.44%> (+0.04%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
cmd/help_template.go 91.81% <100.00%> (+0.67%) ⬆️
cmd/help_topics.go 100.00% <ø> (ø)
cmd/help_topics_render.go 97.40% <100.00%> (+0.18%) ⬆️
pkg/config/load.go 87.81% <100.00%> (+0.03%) ⬆️
pkg/schema/command.go 93.44% <ø> (ø)
internal/exec/validate_stacks.go 82.43% <71.42%> (+0.41%) ⬆️
pkg/io/line_prefix_writer.go 94.80% <91.30%> (-2.21%) ⬇️

... and 39 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Custom commands can now set `hidden: true` to stay runnable (directly,
as a `default:` target, or from another command's steps) while dropping
out of `--help` listings, completions, and the AI `atmos_list_commands`
tool. This closes the gap the Just/Task/Make migration guides used to
call "no match", where a `[private]`/`internal: true` recipe or task
needed to be reusable across callers or invoked directly for debugging
rather than folded into a single caller's step.

Add a matching `--help=hidden` topic to reveal a command's hidden
subcommands on demand; the default-help hint only mentions it when a
command actually has one, to avoid cluttering the common case.

Refresh the affected migration guides (website + agent-skills mirrors)
to point at `hidden: true` instead of the old "no match" guidance, and
add previously-missing coverage for Task's `internal: true` flag.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
The Check Markdown Links workflow failed on the SOURCE_DATE_EPOCH
citation in docs/prd/archive-step.md with "Connection refused". The
domain refuses connections from every network tested (CI, curl, and
WebFetch), not just this path or CI specifically — an upstream outage,
not a broken/moved link — so exclude it the same way other known-flaky
external docs are already handled in this file.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@cmd/cmd_utils_test.go`:
- Around line 2428-2462: Replace the POSIX printf and shell-redirection sentinel
in TestHiddenCommandStillExecutesDirectly with an existing platform-independent
execution seam or Go-native helper process, while preserving verification that
the hidden command runs its steps; apply the same replacement to
cmd/cmd_utils_test.go lines 2503-2540 for the hidden default-child test.

In `@lychee.toml`:
- Around line 192-197: Replace the broad reproducible-builds.org exclusion in
the Lychee configuration with an exact URL or narrowly scoped path pattern
matching only the affected link referenced by docs/prd/archive-step.md. Keep
unrelated links on the domain subject to link checking.

In `@website/docs/migration/justfile.mdx`:
- Line 110: Align the Terraform component argument with the legacy layout shown
in each example: update website/docs/migration/justfile.mdx lines 110-110 and
133-133, website/docs/migration/makefile.mdx lines 114-114, and
website/docs/migration/taskfile.mdx lines 84-84. Either parameterize the
component variable or use a matching example component such as vpc/database, and
include the corresponding components.terraform.base_path or Atmos layout so the
command targets the documented directory.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 6641f49d-b824-4201-bbe5-3734481c46d0

📥 Commits

Reviewing files that changed from the base of the PR and between fd4f988 and 9cdf342.

📒 Files selected for processing (22)
  • agent-skills/skills/atmos-introspection/SKILL.md
  • agent-skills/skills/atmos-migration/references/from-justfile.md
  • agent-skills/skills/atmos-migration/references/from-makefile.md
  • agent-skills/skills/atmos-migration/references/from-native-terraform.md
  • agent-skills/skills/atmos-migration/references/from-taskfile.md
  • cmd/cmd_utils.go
  • cmd/cmd_utils_test.go
  • cmd/help_template.go
  • cmd/help_topics.go
  • cmd/help_topics_render.go
  • cmd/help_topics_test.go
  • docs/prd/topic-specific-cli-help.md
  • lychee.toml
  • pkg/datafetcher/schema/atmos/config/1.0.json
  • pkg/schema/command.go
  • website/docs/cli/configuration/commands/command/commands.mdx
  • website/docs/cli/configuration/commands/command/index.mdx
  • website/docs/migration/justfile.mdx
  • website/docs/migration/makefile.mdx
  • website/docs/migration/native-terraform.mdx
  • website/docs/migration/taskfile.mdx
  • website/docs/migration/terraform-workspaces.mdx
🚧 Files skipped from review as they are similar to previous changes (1)
  • agent-skills/skills/atmos-migration/references/from-makefile.md

Comment thread cmd/cmd_utils_test.go
Comment thread lychee.toml Outdated
Comment thread website/docs/migration/justfile.mdx Outdated
- lychee.toml: narrow the reproducible-builds.org exclude to the exact
  SOURCE_DATE_EPOCH path instead of the whole domain, so other links on
  that domain stay covered by the link check.
- justfile.mdx/makefile.mdx/taskfile.mdx (+ agent-skills mirrors): the
  "after" Terraform-apply examples ran `terraform apply terraform`,
  confusing the atmos verb with a component literally named "terraform"
  that didn't match the shown legacy `terraform/` directory layout.
  Rename the placeholder component to `infra` and add a one-line note
  on where it maps to under `components.terraform.base_path`.
- cmd_utils_test.go: document why the hidden-command tests' printf/
  redirection is cross-platform (Atmos's TaskTypeShell runs through the
  in-process mvdan/sh interpreter, not the host shell) rather than
  replacing it — flagged as a platform-specific-binary risk, but it
  isn't one.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
coderabbitai[bot]
coderabbitai Bot previously approved these changes Aug 7, 2026
TestExecuteTerraformConcurrentHooksUseNodeWriters was failing in CI
(reproduced locally under `go test -race -count=200`, ~30% failure
rate): concurrent nodes' hook output was interleaving mid-record
instead of staying grouped per node.

writeLine() acquired the shared writeMu once per line, but a single
Write() call can flush multiple buffered lines at once (e.g. a
\r-terminated segment held back by a prior Write, completed by the
next). Between the two per-line lock acquisitions for one node's
burst, another node's own burst could interleave into the shared
writer. Fixed by collecting a burst's complete lines up front and
writing them under one writeMu acquisition (writeLinesLocked), so a
whole burst lands as one contiguous block. Preserves the existing
partial-write-error retry behavior: a failed line and everything after
it, plus any trailing partial content, are restored to the buffer
for the next Write/Flush to retry.

Verified with `go test ./pkg/scheduler/adapters/... -race -count=500`
(0 failures, was reproducibly failing before) and the full pkg/io
suite, race detector, 5x.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
coderabbitai[bot]
coderabbitai Bot previously approved these changes Aug 7, 2026
coderabbitai[bot]
coderabbitai Bot previously approved these changes Aug 10, 2026
website-deploy-preview failed on pnpm install --frozen-lockfile because a
duplicate nanoid@^3.3.16 override (added independently by two commits and
merged from main) produced a duplicate YAML key in pnpm-lock.yaml. Also fix
5 new migration docs linking to the nonexistent /ai/agent-skills route
instead of /ai/skills, which broke the docusaurus build once the lockfile
issue was resolved.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
coderabbitai[bot]
coderabbitai Bot previously approved these changes Aug 11, 2026
…on-skill

Resolves 4 real conflicts from main's task-runner-dependencies PR (#2882),
which independently shipped the same "hide from help but stay runnable"
custom-command feature this branch built (#), under a different name:

- pkg/schema/command.go / cmd/cmd_utils.go: this branch's `Hidden bool`
  field is dropped in favor of main's already-shipped `Internal bool` +
  `Aliases []string` fields; all call sites, tests, JSON schema (via
  `go generate ./pkg/config/schema`), and docs (website + agent-skills
  migration guides, atmos-introspection SKILL.md, topic-specific-cli-help
  PRD) are updated from `hidden: true` to `internal: true`. The
  `--help=hidden` CLI topic name is unchanged since it labels Cobra's own
  Hidden flag, not this config field.
- pkg/io/line_prefix_writer.go: kept this branch's version, a strict
  superset of main's atomicity fix that additionally makes short/failed
  writes retry-safe via a `pending` buffer.
- website/docs/cli/configuration/commands/command/index.mdx: merged both
  branches' `<dt>` entries under the `internal` naming.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 1

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (2)
agent-skills/skills/atmos-migration/references/from-justfile.md (1)

79-82: 🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win

Align the custom-command type: atmos documentation with its actual contract.

type: atmos supports custom commands, so the native-only restriction in from-justfile.md is incorrect. However, the custom-command execution path does not append step.Stack as -s <stack>. Update both documents to reflect these behaviors.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@agent-skills/skills/atmos-migration/references/from-justfile.md` around lines
79 - 82, Update the `from-justfile.md` section at lines 79-82 and the
corresponding `website/docs/migration/taskfile.mdx` section at lines 253-256 to
state that `type: atmos` supports custom commands as well as native verbs.
Document that custom-command execution does not append `step.Stack` as `-s
<stack>`, and remove the incorrect native-only restriction while preserving the
dependency-chain guidance.
website/docs/cli/configuration/commands/command/index.mdx (1)

89-90: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Use the canonical top-level alias key.

The schema identifies the separate redirect map as command_aliases:. This page calls it the top-level aliases configuration. Use command_aliases: in the field description to prevent confusion with commands[].aliases.

The schema comment in pkg/schema/command.go uses the literal key command_aliases:.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@website/docs/cli/configuration/commands/command/index.mdx` around lines 89 -
90, Update the `aliases` field description in the command configuration
documentation to refer to the top-level `command_aliases` configuration key,
matching the canonical schema terminology and distinguishing it from
`commands[].aliases`.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@website/docs/cli/configuration/commands/command/index.mdx`:
- Around line 92-93: Update the `name` field description in the command
configuration documentation to clarify that only visible commands appear in help
listings, or explicitly note that commands with `internal: true` are excluded
from default help. Keep the existing `internal` behavior and description
unchanged.

---

Outside diff comments:
In `@agent-skills/skills/atmos-migration/references/from-justfile.md`:
- Around line 79-82: Update the `from-justfile.md` section at lines 79-82 and
the corresponding `website/docs/migration/taskfile.mdx` section at lines 253-256
to state that `type: atmos` supports custom commands as well as native verbs.
Document that custom-command execution does not append `step.Stack` as `-s
<stack>`, and remove the incorrect native-only restriction while preserving the
dependency-chain guidance.

In `@website/docs/cli/configuration/commands/command/index.mdx`:
- Around line 89-90: Update the `aliases` field description in the command
configuration documentation to refer to the top-level `command_aliases`
configuration key, matching the canonical schema terminology and distinguishing
it from `commands[].aliases`.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: c4fa57bb-e75a-4d14-bf6e-e28bbf696591

📥 Commits

Reviewing files that changed from the base of the PR and between 47a247f and 751e1ae.

📒 Files selected for processing (12)
  • agent-skills/skills/atmos-introspection/SKILL.md
  • agent-skills/skills/atmos-migration/references/from-justfile.md
  • agent-skills/skills/atmos-migration/references/from-makefile.md
  • agent-skills/skills/atmos-migration/references/from-taskfile.md
  • cmd/cmd_utils_test.go
  • docs/prd/topic-specific-cli-help.md
  • pkg/config/load.go
  • pkg/datafetcher/schema/atmos/config/1.0.json
  • pkg/schema/command.go
  • website/docs/cli/configuration/commands/command/index.mdx
  • website/docs/migration/justfile.mdx
  • website/docs/migration/taskfile.mdx
🚧 Files skipped from review as they are similar to previous changes (5)
  • pkg/datafetcher/schema/atmos/config/1.0.json
  • cmd/cmd_utils_test.go
  • agent-skills/skills/atmos-migration/references/from-taskfile.md
  • pkg/config/load.go
  • agent-skills/skills/atmos-migration/references/from-makefile.md

Comment thread website/docs/cli/configuration/commands/command/index.mdx
Addresses CodeRabbit review comment: the `name` field description said
names unconditionally appear in `atmos help`, contradicting the `internal`
field's documented exclusion.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
coderabbitai[bot]
coderabbitai Bot previously approved these changes Aug 11, 2026
…ipped

#2882 (already merged into this branch) added dependencies.commands/
dependencies.workflows and step-level inputs/artifacts, giving Atmos direct
parity with Task's deps:/sources:/generates: and Make's dependency ordering
and file-timestamp caching. This branch's own migration guides -- the
subject of this PR -- still declared those exact features unsupported
gaps, written before #2882 landed.

- taskfile.mdx / from-taskfile.md: rewrite "parallel-by-default" and
  "sources/generates gap" sections to document dependencies.commands and
  inputs/artifacts as the direct matches, including the automatic dedup
  behavior a hand-built parallel step doesn't provide.
- makefile.mdx / from-makefile.md: document dependencies.commands for
  target chains with a shared prerequisite, and inputs/artifacts (with
  timestamp.changed for make's exact mtime semantics) for file-timestamp
  targets.
- SKILL.md: fix the same false claims in the top-level "Common Problems"
  summary agents read before the per-tool reference files.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 4

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
website/docs/migration/makefile.mdx (1)

149-153: 🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

Reserve type: atmos for native Atmos verbs.

type: atmos does not support invoking a custom command such as build. Use type: shell with command: atmos build for that case. The current guidance can generate invalid command definitions.

  • website/docs/migration/makefile.mdx#L149-L153: remove the claim that type: atmos can invoke custom commands.
  • website/docs/migration/makefile.mdx#L299-L303: replace the custom-command type: atmos example with a shell invocation.

This repeats the constraint resolved in the prior review of agent-skills/skills/atmos-migration/references/from-taskfile.md.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@website/docs/migration/makefile.mdx` around lines 149 - 153, Update
website/docs/migration/makefile.mdx lines 149-153 to state that type: atmos is
reserved for native Atmos verbs and remove the claim that it supports custom
commands; update lines 299-303 to replace the custom-command type: atmos example
with type: shell invoking atmos build.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@agent-skills/skills/atmos-migration/references/from-makefile.md`:
- Around line 228-230: Update the migration guidance around target chains to
distinguish reusable targets with arguments or flags from fixed orchestration.
Convert reusable, parameterized operations into custom commands, and reserve
workflows for fixed multi-step operations spanning multiple components; do not
prescribe workflows for every target chain.
- Around line 105-112: Correct the guidance around target-list conversion in the
migration reference: do not claim Make provides concurrent prerequisite
execution by default, and explain that dependencies.commands runs concurrently
unless ordering is explicitly required. Update the repeated claim near the later
referenced section consistently, and instruct users to preserve serial behavior
with ordered steps or by declaring the later command’s dependency on the earlier
one.

In `@agent-skills/skills/atmos-migration/SKILL.md`:
- Around line 102-109: Preserve Make’s default serial prerequisite order in the
migration guidance. In agent-skills/skills/atmos-migration/SKILL.md lines
102-109, distinguish Task deps from ordinary Make prerequisites and do not
present concurrent dependencies.commands as their direct mapping; in
website/docs/migration/makefile.mdx lines 41, 155-163, 276, and 299-303,
document ordered execution for normal Make chains, remove claims that concurrent
dependencies preserve Make behavior, update the checklist, and reserve
concurrent dependencies for explicitly parallel source behavior.

In `@website/docs/migration/taskfile.mdx`:
- Around line 101-128: Update the freshness-check guidance at
website/docs/migration/taskfile.mdx lines 101-128, 253-256, and 262-267, and
agent-skills/skills/atmos-migration/references/from-makefile.md lines 184-192
and 217-219, to state that Atmos evaluates inputs.sources and artifacts.paths
per step, so skipping one step does not prevent later steps from running.
Document that a single shell or script step is required when one freshness
decision must gate all actions.

---

Outside diff comments:
In `@website/docs/migration/makefile.mdx`:
- Around line 149-153: Update website/docs/migration/makefile.mdx lines 149-153
to state that type: atmos is reserved for native Atmos verbs and remove the
claim that it supports custom commands; update lines 299-303 to replace the
custom-command type: atmos example with type: shell invoking atmos build.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 4269868c-0b8d-4e7b-aa8c-bfac6f94e113

📥 Commits

Reviewing files that changed from the base of the PR and between 9f8cb2b and 70732ad.

📒 Files selected for processing (5)
  • agent-skills/skills/atmos-migration/SKILL.md
  • agent-skills/skills/atmos-migration/references/from-makefile.md
  • agent-skills/skills/atmos-migration/references/from-taskfile.md
  • website/docs/migration/makefile.mdx
  • website/docs/migration/taskfile.mdx

Comment thread agent-skills/skills/atmos-migration/references/from-makefile.md Outdated
Comment thread agent-skills/skills/atmos-migration/references/from-makefile.md Outdated
Comment thread agent-skills/skills/atmos-migration/SKILL.md Outdated
Comment thread website/docs/migration/taskfile.mdx
…ance

Local review comments:
- Recommend `atmos --help` (scriptable, direct) over the interactive
  `atmos help` (pages the same listing) for command discovery, across all
  three migration guides and their skill mirrors.
- Reframe makefile.mdx around "Atmos is the front door either way": a
  custom command can call `make <target>` as its one step, permanently if
  desired, rather than treating full migration into native `steps:` as the
  only end state.

CodeRabbit findings, verified against actual behavior before fixing:
- GNU Make's default is to build a target's prerequisites one at a time,
  in listed order -- `-j` is required for concurrency. `dependencies.commands`
  runs concurrently by default, so presenting it as Make's/Just's "direct
  match" changes behavior and can race prerequisites that were only ever
  sequential by accident. Ordered steps are now the default-preserving
  match; `dependencies.commands` is reserved for a shared prerequisite
  (dedup, independent of concurrency), genuine independence, or an
  explicit `-j` source. Fixed in SKILL.md, makefile.mdx, and
  from-makefile.md, including a corrected Shape B example showing how to
  keep `build` ordered ahead of `test` even under the concurrent
  scheduler.
- Confirmed in cmd/cmd_utils.go/internal/exec/workflow_utils.go that a
  skipped step just `continue`s the loop: inputs/artifacts freshness is
  evaluated and recorded per step, unlike Task's/Make's whole-recipe/task
  scope. Documented this across taskfile.mdx, from-makefile.md, and
  SKILL.md, with guidance to combine multiple commands into one step when
  a single freshness decision must gate all of them.
- Removed the stale "target chains become workflows" claim, which
  contradicted the dependencies.commands guidance it now sits next to;
  workflows are reserved for fixed, multi-step orchestration across more
  than one component.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

patch A minor, backward compatible change size/l Large size PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant