Skip to content

feat(ai): browsable, searchable Agent Skills Directory - #2881

Open
Erik Osterman (Cloud Posse) (osterman) wants to merge 27 commits into
mainfrom
osterman/skills-directory-browser
Open

feat(ai): browsable, searchable Agent Skills Directory#2881
Erik Osterman (Cloud Posse) (osterman) wants to merge 27 commits into
mainfrom
osterman/skills-directory-browser

Conversation

@osterman

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

Copy link
Copy Markdown
Member

what

  • Adds a generated, browsable, searchable Agent Skills Directory at /ai/skills, replacing the hand-maintained (and drifted) skill table on the Agent Skills doc page.
  • Extends the file-browser Docusaurus plugin with category grouping, a search box, configurable card icon/CTA label, and a "Copy as Markdown" button, reused for the new skills instance.
  • The "Copy as Markdown" button (skills only) concatenates a skill's SKILL.md and every nested reference file into one clipboard-ready document, so its full context can be grabbed without installing it.
  • atmos ai skill list gains a --format flag (table/json/yaml/csv/tsv) and a Category column.
  • Adds a SkillCount component that renders the live, build-time skill count inline in prose (homepage AISection, docs), so counts can't drift out of date again.
  • Restructures the sidebar nav (Atmos AISkills category with Agent Skills, Skill Marketplace, and a link to the new directory) and cleans up a duplicate "Native CI" sidebar/doc link.
  • Adds the changelog post and roadmap entry for this feature, and fixes pre-existing EditorConfig indentation violations in several SKILL.md files surfaced by the affected-file validator.

why

  • The old skill list page was hand-maintained and had drifted to roughly half the real skill count, with stale entries pointing at skills that no longer exist. There was also no way to search, filter, or grab a skill's content without installing it.
  • Generating the directory from the skills themselves, and computing counts at build time, makes it structurally impossible for the docs to fall out of sync again.

references

  • Blog post: /blog/agent-skills-directory
  • Docs: /ai/skills, /ai/agent-skills

Summary by CodeRabbit

  • New Features

    • Added a browsable, searchable Agent Skills Directory with categorized skill pages.
    • Added Markdown copying and one-click installation command guidance for skills.
    • Added table, JSON, YAML, CSV, and TSV output formats to skill listings.
    • Added skill categories and dynamic skill counts.
    • Added reusable command displays with clipboard copying.
  • Bug Fixes

    • Empty JSON skill listings now return [] instead of null.
  • Documentation

    • Updated AI, native CI, scaffold, and navigation documentation.
    • Added an Agent Skills Directory announcement.
  • Style

    • Improved directory search, cards, layout, sidebar behavior, and dark-theme presentation.

Adds a searchable, category-grouped /ai/skills page (reusing the existing
file-browser plugin behind /examples and /gists) with a per-skill detail
page for each SKILL.md, replacing the hand-maintained "Available Skills"
list in the docs that had drifted to half the real count (25 vs 52).

Adds `metadata.category` to every bundled SKILL.md, threads it through
`pkg/ai/skills/marketplace`, and exposes it via a new `--format` flag
(table/json/yaml/csv/tsv) on `atmos ai skill list`.

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

Adds the changelog post and roadmap entry for the browsable Agent
Skills Directory shipped in the prior commit, plus follow-up polish:
a SkillCount component that renders the live skill count at build
time (used on the homepage AI section instead of a hardcoded number),
file-browser plugin card icon/CTA options, sidebar nav restructuring
under Atmos AI, and doc updates for the new `--format` flag.

Also fixes pre-existing EditorConfig indentation violations (3-space
markdown list continuations) in several SKILL.md files, surfaced by
the affected-file validator once those files were touched by this
branch's earlier commit.
@atmos-pro

atmos-pro Bot commented Aug 5, 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 minor New features that do not break anything label Aug 5, 2026
@coderabbitai

coderabbitai Bot commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 2e3f4d8a-ffbf-4cb3-a004-7cd6bead010d

📥 Commits

Reviewing files that changed from the base of the PR and between e2f9bb4 and c7f7e1a.

⛔ Files ignored due to path filters (1)
  • website/pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (4)
  • website/package.json
  • website/src/components/CommandBox/copy.mjs
  • website/src/components/CommandBox/copy.test.mjs
  • website/src/components/CommandBox/index.tsx
🚧 Files skipped from review as they are similar to previous changes (1)
  • website/src/components/CommandBox/index.tsx

📝 Walkthrough

Walkthrough

The change adds categories to bundled skills, adds category-aware CLI output formats, and introduces a searchable generated Agent Skills Directory with configurable cards and Markdown copying. Documentation and navigation now reference the directory and dynamic skill counts.

Changes

Agent Skills Directory

Layer / File(s) Summary
Skill metadata categories
agent-skills/skills/*/SKILL.md
Bundled skills now declare categories. Several wrapped documentation lines were reformatted without semantic changes.
CLI formats and catalog categories
pkg/ai/skills/marketplace/catalog.go, cmd/ai/skill/*, pkg/list/renderer/renderer.go
Skill catalog entries and list rows now include categories. The list command supports table, JSON, YAML, CSV, and TSV output. Empty JSON results serialize as [].
Directory generation and browsing
website/docusaurus.config.js, website/plugins/file-browser/*, website/src/components/FileBrowser/*, website/src/components/CommandBox/*, website/src/components/SkillCount/*, website/src/components/AISection/*
The website generates a categorized skills directory with search, configurable cards, install commands, dynamic counts, and Markdown copying.
Documentation and navigation updates
website/docs/*, website/sidebars.js, website/blog/*, website/src/data/roadmap.js
Documentation, redirects, navigation, blog content, and roadmap data reference the directory and current skill documentation.
CI and presentation support
.github/workflows/test.yml, website/docs/cli/commands/scaffold/*, website/src/components/landing/Extensibility/*
The acceptance-test timeout increased. Scaffold navigation and several documentation links were updated or reformatted.

Estimated code review effort: 3 (Moderate) | ~30 minutes

Possibly related PRs

  • cloudposse/atmos#2871: Both PRs modify the atmos-migration skill. This change adds category metadata, while the related PR adds migration content and references.

Suggested reviewers: aknysh

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 64.29% 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 and concisely describes the main change: a browsable and searchable Agent Skills Directory.
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 💡 1
📝 Generate docstrings 💡
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch osterman/skills-directory-browser

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.

@github-actions github-actions Bot added the size/m Medium size PR label Aug 5, 2026
@github-actions

github-actions Bot commented Aug 5, 2026

Copy link
Copy Markdown

Dependency Review

✅ No vulnerabilities or license issues found.

Scanned Files

  • website/pnpm-lock.yaml

@mergify

mergify Bot commented Aug 5, 2026

Copy link
Copy Markdown

Important

Cloud Posse Engineering Team Review Required

This pull request modifies files that require Cloud Posse's review. Please be patient, and a core maintainer will review your changes.

To expedite this process, reach out to us on Slack in the #pr-reviews channel.

Adds a "Copy as Markdown" button to a skill's root page that
concatenates its SKILL.md and every nested reference file into one
clipboard-ready Markdown document, so the full context can be grabbed
without installing the skill. Ships as an opt-in `enableCopyMarkdown`
file-browser plugin option (enabled for the /ai/skills instance only;
/examples and /gists render unchanged).

@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: 6

🧹 Nitpick comments (1)
cmd/ai/skill/list_test.go (1)

451-493: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Add table-driven coverage for all advertised formats.

The implementation advertises table, JSON, YAML, CSV, and TSV output. This test covers only JSON and one non-empty case. Add table-driven cases for each structured format and assert exact keys or headers, including Category.

As per coding guidelines, new Go features require comprehensive behavior-focused table-driven tests with at least 85% coverage.

🤖 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 `@cmd/ai/skill/list_test.go` around lines 451 - 493, Expand
TestListCmd_FormatJSON into table-driven coverage for table, JSON, YAML, CSV,
and TSV formats, exercising both the populated skill case and the empty-list
case. For each format, assert the exact expected keys or headers, including
Category, and verify structured output parses correctly without human-only text;
reuse the existing catalog, registry setup, and format flag reset helpers.

Source: Coding guidelines

🤖 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-templates/SKILL.md`:
- Line 231: Update the final performance item in the template-functions list to
end with a period after “calls,” preserving the existing wording and list
punctuation.

In `@cmd/ai/skill/list.go`:
- Around line 203-206: Update the skill-list rendering flow around
renderSkillListStructured so any non-table output format is dispatched before
the empty-list human-readable message. Ensure --format=json, yaml, csv, and tsv
render their format-specific empty result when --installed finds no entries,
while preserving the existing table output behavior.
- Line 80: Validate the Viper-resolved format value before casting it in the
RunE flow around listformat.Format and renderSkillList. Reuse the existing
format validation mechanism for values supplied through config or
ATMOS_AI_SKILL_FORMAT, return a command error for invalid values, and add a
negative test covering ATMOS_AI_SKILL_FORMAT=invalid.

In `@cmd/ai/skill/markdown/atmos_ai_skill_list_usage.md`:
- Around line 21-23: Update the new usage code block in the skill list
documentation to use the shell language identifier and remove the `$` prompt,
keeping the command itself unchanged so it satisfies Markdown lint rules MD040
and MD014.

In `@pkg/ai/skills/marketplace/catalog.go`:
- Line 32: Update the AvailableSkill keyed literal in catalog_test.go to include
the exported Category field with an empty value, keeping the existing expected
fields unchanged so the comparison remains a compile-time check.

In `@website/src/components/FileBrowser/styles.module.css`:
- Around line 356-358: Update the .sidebar/.sidebarInner layout so the inner
file tree has a definite desktop height for scrolling: either assign a fixed or
viewport-based height to .sidebar or move the existing viewport maximum height
to .sidebarInner. Preserve overflow-y: auto on .sidebarInner and ensure long
file trees scroll within the sidebar.

---

Nitpick comments:
In `@cmd/ai/skill/list_test.go`:
- Around line 451-493: Expand TestListCmd_FormatJSON into table-driven coverage
for table, JSON, YAML, CSV, and TSV formats, exercising both the populated skill
case and the empty-list case. For each format, assert the exact expected keys or
headers, including Category, and verify structured output parses correctly
without human-only text; reuse the existing catalog, registry setup, and format
flag reset helpers.
🪄 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: 7faafa3d-e4da-46dc-a52d-9c2ccafb8e29

📥 Commits

Reviewing files that changed from the base of the PR and between d2b8e81 and 042c587.

📒 Files selected for processing (80)
  • agent-skills/skills/atmos-ai/SKILL.md
  • agent-skills/skills/atmos-ansible/SKILL.md
  • agent-skills/skills/atmos-asciicast/SKILL.md
  • agent-skills/skills/atmos-auth/SKILL.md
  • agent-skills/skills/atmos-aws-compliance/SKILL.md
  • agent-skills/skills/atmos-aws-ecr/SKILL.md
  • agent-skills/skills/atmos-aws-eks/SKILL.md
  • agent-skills/skills/atmos-aws-security/SKILL.md
  • agent-skills/skills/atmos-cache/SKILL.md
  • agent-skills/skills/atmos-cast/SKILL.md
  • agent-skills/skills/atmos-ci/SKILL.md
  • agent-skills/skills/atmos-components/SKILL.md
  • agent-skills/skills/atmos-compositions/SKILL.md
  • agent-skills/skills/atmos-config/SKILL.md
  • agent-skills/skills/atmos-container/SKILL.md
  • agent-skills/skills/atmos-custom-commands/SKILL.md
  • agent-skills/skills/atmos-design-patterns/SKILL.md
  • agent-skills/skills/atmos-devcontainer/SKILL.md
  • agent-skills/skills/atmos-diagnostics/SKILL.md
  • agent-skills/skills/atmos-emulator/SKILL.md
  • agent-skills/skills/atmos-git/SKILL.md
  • agent-skills/skills/atmos-helm/SKILL.md
  • agent-skills/skills/atmos-helmfile/SKILL.md
  • agent-skills/skills/atmos-hooks/SKILL.md
  • agent-skills/skills/atmos-imports/SKILL.md
  • agent-skills/skills/atmos-init/SKILL.md
  • agent-skills/skills/atmos-introspection/SKILL.md
  • agent-skills/skills/atmos-kubernetes/SKILL.md
  • agent-skills/skills/atmos-lint/SKILL.md
  • agent-skills/skills/atmos-migration/SKILL.md
  • agent-skills/skills/atmos-modernization/SKILL.md
  • agent-skills/skills/atmos-packer/SKILL.md
  • agent-skills/skills/atmos-pro/SKILL.md
  • agent-skills/skills/atmos-profiles/SKILL.md
  • agent-skills/skills/atmos-project-layout/SKILL.md
  • agent-skills/skills/atmos-sbom/SKILL.md
  • agent-skills/skills/atmos-scaffold/SKILL.md
  • agent-skills/skills/atmos-schemas/SKILL.md
  • agent-skills/skills/atmos-secrets/SKILL.md
  • agent-skills/skills/atmos-settings/SKILL.md
  • agent-skills/skills/atmos-stacks/SKILL.md
  • agent-skills/skills/atmos-steps/SKILL.md
  • agent-skills/skills/atmos-stores/SKILL.md
  • agent-skills/skills/atmos-templates/SKILL.md
  • agent-skills/skills/atmos-terraform-state-migrations/SKILL.md
  • agent-skills/skills/atmos-terraform/SKILL.md
  • agent-skills/skills/atmos-toolchain/SKILL.md
  • agent-skills/skills/atmos-validation/SKILL.md
  • agent-skills/skills/atmos-vendoring/SKILL.md
  • agent-skills/skills/atmos-version/SKILL.md
  • agent-skills/skills/atmos-workflows/SKILL.md
  • agent-skills/skills/atmos-yaml-functions/SKILL.md
  • cmd/ai/skill/list.go
  • cmd/ai/skill/list_test.go
  • cmd/ai/skill/markdown/atmos_ai_skill_list_usage.md
  • pkg/ai/skills/marketplace/catalog.go
  • website/blog/2026-07-04-native-container-image-ci-summaries.mdx
  • website/blog/2026-08-05-agent-skills-directory.mdx
  • website/docs/ai/agent-skills.mdx
  • website/docs/ai/ai.mdx
  • website/docs/ai/skill-marketplace.mdx
  • website/docs/cli/commands/ai/skill.mdx
  • website/docs/cli/commands/ci/ci.mdx
  • website/docs/cli/configuration/ai/skills.mdx
  • website/docs/cli/configuration/ci/index.mdx
  • website/docs/projects/setup-editor/ai-assistants.mdx
  • website/docs/projects/setup-editor/index.mdx
  • website/docusaurus.config.js
  • website/plugins/file-browser/index.js
  • website/sidebars.js
  • website/src/components/AISection/index.js
  • website/src/components/FileBrowser/CopyMarkdownButton.tsx
  • website/src/components/FileBrowser/DirectoryPage.tsx
  • website/src/components/FileBrowser/FileTree.tsx
  • website/src/components/FileBrowser/IndexPage.tsx
  • website/src/components/FileBrowser/styles.module.css
  • website/src/components/FileBrowser/types.ts
  • website/src/components/FileBrowser/utils.ts
  • website/src/components/SkillCount/index.tsx
  • website/src/data/roadmap.js

Comment thread agent-skills/skills/atmos-templates/SKILL.md Outdated
Comment thread cmd/ai/skill/list.go Outdated
Comment thread cmd/ai/skill/list.go Outdated
Comment thread cmd/ai/skill/markdown/atmos_ai_skill_list_usage.md Outdated
Comment thread pkg/ai/skills/marketplace/catalog.go
Comment thread website/src/components/FileBrowser/styles.module.css
@codecov

codecov Bot commented Aug 5, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 90.90909% with 2 lines in your changes missing coverage. Please review.
✅ Project coverage is 82.76%. Comparing base (3ce4349) to head (10c842b).
⚠️ Report is 1 commits behind head on main.

Files with missing lines Patch % Lines
cmd/ai/skill/list.go 90.00% 1 Missing and 1 partial ⚠️
Additional details and impacted files

Impacted file tree graph

@@           Coverage Diff           @@
##             main    #2881   +/-   ##
=======================================
  Coverage   82.76%   82.76%           
=======================================
  Files        1861     1861           
  Lines      180478   180497   +19     
=======================================
+ Hits       149380   149396   +16     
- Misses      23311    23313    +2     
- Partials     7787     7788    +1     
Flag Coverage Δ
unittests 82.76% <90.90%> (+<0.01%) ⬆️

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

Files with missing lines Coverage Δ
pkg/ai/skills/marketplace/catalog.go 76.59% <100.00%> (+0.50%) ⬆️
pkg/list/renderer/renderer.go 89.77% <100.00%> (ø)
cmd/ai/skill/list.go 93.99% <90.00%> (-0.43%) ⬇️

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

Fixes six issues flagged on PR #2881:
- cmd/ai/skill/list.go: dispatch structured --format output (json/yaml/csv/tsv)
  before the "No skills installed" empty-message check, so --installed with
  zero results stays machine-readable instead of returning prose.
- cmd/ai/skill/list.go: validate the Viper-resolved --format value (covers
  ATMOS_AI_SKILL_FORMAT env/config, not just the CLI flag) before it reaches
  the renderer.
- pkg/ai/skills/marketplace/catalog_test.go: add the missing Category field to
  the AvailableSkill compile-time sentinel so a future field rename or drop is
  caught at compile time.
- cmd/ai/skill/markdown/atmos_ai_skill_list_usage.md: fix MD040/MD014 lint on
  the new --format=json example (shell fence, no unshown $ prompt).
- agent-skills/skills/atmos-templates/SKILL.md: add missing trailing period.
- website/src/components/FileBrowser/styles.module.css: move the viewport
  max-height constraint from .sidebar onto .sidebarInner so a long file tree
  scrolls inside the sidebar instead of growing it (shared by /examples,
  /gists, and /ai/skills).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Two spots linked to /ai/skills using the raw path as the visible link
text ("browsable at /ai/skills") instead of natural language, which
read poorly next to the "Agent Skills Directory" phrasing used
everywhere else this page is linked. Match the established convention.

@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

🤖 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/ai/skill/list_test.go`:
- Around line 555-571: Strengthen the empty JSON assertion in the “with nothing
installed and format=json returns an empty array, not prose” test by requiring
the unmarshaled rows slice to be non-nil before asserting it is empty. This must
distinguish a JSON [] response from null while preserving the existing validity
and empty-content checks.
🪄 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: fafbd64d-9e6e-477a-b1ee-8fdbe5b120a3

📥 Commits

Reviewing files that changed from the base of the PR and between 042c587 and 3472c07.

📒 Files selected for processing (6)
  • agent-skills/skills/atmos-templates/SKILL.md
  • cmd/ai/skill/list.go
  • cmd/ai/skill/list_test.go
  • cmd/ai/skill/markdown/atmos_ai_skill_list_usage.md
  • pkg/ai/skills/marketplace/catalog_test.go
  • website/src/components/FileBrowser/styles.module.css
🚧 Files skipped from review as they are similar to previous changes (4)
  • cmd/ai/skill/markdown/atmos_ai_skill_list_usage.md
  • agent-skills/skills/atmos-templates/SKILL.md
  • website/src/components/FileBrowser/styles.module.css
  • cmd/ai/skill/list.go

Comment thread cmd/ai/skill/list_test.go
…ance category

- file-browser plugin: new enablePerPageMarkdown option writes a raw
  <name>.md per item at build time (SKILL.md + nested reference files
  concatenated), extending the sitewide "append .md for raw Markdown"
  convention to skill pages, which docusaurus-plugin-llms-txt can't
  see since they're custom routes, not docs/blog content.
- new titleAsCode option renders each item's title as a code-formatted
  `/name` on the index cards and sidebar header, signaling how a skill
  is invoked. Enabled for the skills instance only.
- atmos-aws-compliance: recategorize from "security" to "aws" so it
  groups with the other AWS integrations instead of Auth/Secrets.
@github-actions github-actions Bot added size/l Large size PR and removed size/m Medium size PR labels Aug 6, 2026

@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

🤖 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/plugins/file-browser/index.js`:
- Around line 730-736: Update addFile to generate a code fence longer than any
consecutive backtick run in node.content, while preserving the existing
Markdown/MDX handling and language annotation. Apply the identical
fence-selection logic in the corresponding utility implementation so copied and
generated Markdown remain equivalent.
🪄 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: 6fd452e0-1fcd-458e-a3c4-ae0bc8bc36b6

📥 Commits

Reviewing files that changed from the base of the PR and between d120a86 and ff04889.

📒 Files selected for processing (8)
  • agent-skills/skills/atmos-aws-compliance/SKILL.md
  • website/docusaurus.config.js
  • website/plugins/file-browser/index.js
  • website/src/components/FileBrowser/DirectoryPage.tsx
  • website/src/components/FileBrowser/FilePage.tsx
  • website/src/components/FileBrowser/FileTree.tsx
  • website/src/components/FileBrowser/IndexPage.tsx
  • website/src/components/FileBrowser/types.ts
🚧 Files skipped from review as they are similar to previous changes (4)
  • website/src/components/FileBrowser/IndexPage.tsx
  • website/src/components/FileBrowser/DirectoryPage.tsx
  • website/docusaurus.config.js
  • website/src/components/FileBrowser/types.ts

Comment thread website/plugins/file-browser/index.js
- IndexPage cards get a "Copy as Markdown" icon button in the corner,
  revealed on hover/focus, so a skill's full context (including
  nested reference files) can be copied straight from the grid
  without opening it. Gated by enableCopyMarkdown, so /examples and
  /gists are unaffected. CopyMarkdownButton gained an iconOnly mode.
- Code-formatted titles (titleAsCode) now drop Infima's default
  inline-code background chip/border, keeping just the monospace font.
The icon-only copy button used a solid circular background with a
border and drop shadow, inconsistent with the translucent rounded-
rect pill language used everywhere else (.copyMarkdownButton,
.githubButton, .filterButton). Same rgba background/hover, 6px
radius, no shadow.
…ls docs

Nest MCP under the Atmos AI category alongside a flat "Agent Skills" link
(previously a top-level sibling behind a nested "Skills" category), and
consolidate the redundant agent-skills.mdx and skill-marketplace.mdx pages
into the atmos ai skill CLI command reference, updating all cross-references
and adding redirects for the removed URLs.

Also fixes a duplicate "scaffold" sidebar entry: scaffold.mdx now lives
inside the scaffold/ folder as usage.mdx with a _category_.json, matching
every other multi-subcommand command (auth, pro, validate, ai, toolchain).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
CI's EditorConfig validation requires left-padding in multiples of 2;
these list items under a numbered entry used 3 spaces.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
MDX wraps a JSX component's text in a <p> when it sits on its own line
inside a block-level context, which overrides the button's centered
white/bold styling with muted paragraph styling. Single-line usage (the
pattern already used on working pages like auth/usage.mdx) keeps the
label as plain inline text.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
The intro note and workflow overview implied actions/checkout plus an
atmos command was universally sufficient. Status checks, check runs,
PR comments, OIDC, SBOM uploads, and github/artifacts planfile storage
need additional permissions or the github-runtime action, already
documented in the Permissions section below - cross-reference it
instead of overclaiming.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Repeated clicks scheduled overlapping setTimeout calls to reset the
"Copied!" state; an earlier click's timeout could fire and hide the
confirmation before the latest click's 2s window elapsed. Track the
timeout in a ref, clear it before scheduling a new one, and clean it
up on unmount.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
The post claimed atmos ai skill list was a hand-maintained doc that
drifted out of sync with the real catalog. It never was -- the
listing is generated at runtime from the embedded skill catalog. The
actual gap was the missing full-content browse/search/copy/fetch
experience, which is what the post now leads with. Also rewritten in
short, active, single-idea sentences (ASD-STE100 style).

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

🤖 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 @.github/workflows/test.yml:
- Around line 183-190: Increase the matrix job’s timeout-minutes above the
combined Linux step budgets plus setup overhead, or configure target-specific
job timeouts so no matrix target is capped at its exact step-budget total.
Update the adjacent timeout comment to accurately describe the affected Linux,
Windows, and macOS targets and the added headroom.

In `@website/blog/2026-08-05-agent-skills-directory.mdx`:
- Around line 45-47: Update the curl example in the skill-fetching documentation
to use a shell-safe URL, replacing the unquoted <skill-name> placeholder with
either a concrete skill slug or a quoted/interpolated shell variable while
preserving the fetchable .md endpoint.

In `@website/src/components/CommandBox/index.css`:
- Line 53: Update the font-family declaration in the CommandBox stylesheet to
remove quotes from the Monaco and Menlo font names, while preserving Courier New
and the monospace fallback.

In `@website/src/components/CommandBox/index.tsx`:
- Around line 12-16: Update handleCopy to catch rejected
navigator.clipboard.writeText calls and set an appropriate failure state so
users are informed when copying does not complete; keep the existing success
state and reset behavior unchanged.
🪄 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: 3b932e1a-3446-4103-bc34-7a3054440a12

📥 Commits

Reviewing files that changed from the base of the PR and between ff04889 and 18824b9.

📒 Files selected for processing (44)
  • .github/workflows/test.yml
  • cmd/ai/skill/list_test.go
  • pkg/list/renderer/renderer.go
  • website/blog/2025-10-20-introducing-atmos-init-and-scaffold.md
  • website/blog/2026-03-03-ai-agent-skills.mdx
  • website/blog/2026-05-19-mcp-for-ai-coding-assistants.mdx
  • website/blog/2026-06-30-offline-ai-skill-catalog.mdx
  • website/blog/2026-08-05-agent-skills-directory.mdx
  • website/docs/ai/agent-skills.mdx
  • website/docs/ai/ai.mdx
  • website/docs/ai/skill-marketplace.mdx
  • website/docs/ci/ci.mdx
  • website/docs/cli/commands/ai/skill.mdx
  • website/docs/cli/commands/helm/usage.mdx
  • website/docs/cli/commands/init.mdx
  • website/docs/cli/commands/kubernetes/kubernetes-apply.mdx
  • website/docs/cli/commands/kubernetes/kubernetes-delete.mdx
  • website/docs/cli/commands/kubernetes/kubernetes-deploy.mdx
  • website/docs/cli/commands/kubernetes/kubernetes-diff.mdx
  • website/docs/cli/commands/kubernetes/kubernetes-plan.mdx
  • website/docs/cli/commands/kubernetes/kubernetes-render.mdx
  • website/docs/cli/commands/kubernetes/kubernetes-validate.mdx
  • website/docs/cli/commands/kubernetes/usage.mdx
  • website/docs/cli/commands/scaffold/_category_.json
  • website/docs/cli/commands/scaffold/list.mdx
  • website/docs/cli/commands/scaffold/usage.mdx
  • website/docs/cli/commands/scaffold/validate.mdx
  • website/docs/cli/configuration/ai/skills.mdx
  • website/docs/learn/why-atmos.mdx
  • website/docs/projects/setup-editor/ai-assistants.mdx
  • website/docs/quick-start/introduction.mdx
  • website/docusaurus.config.js
  • website/plugins/file-browser/index.js
  • website/sidebars.js
  • website/src/components/CommandBox/index.css
  • website/src/components/CommandBox/index.tsx
  • website/src/components/FileBrowser/CopyMarkdownButton.tsx
  • website/src/components/FileBrowser/DirectoryPage.tsx
  • website/src/components/FileBrowser/IndexPage.tsx
  • website/src/components/FileBrowser/styles.module.css
  • website/src/components/FileBrowser/types.ts
  • website/src/components/FileBrowser/utils.ts
  • website/src/components/landing/Extensibility/index.js
  • website/src/data/roadmap.js
💤 Files with no reviewable changes (4)
  • website/docs/ai/skill-marketplace.mdx
  • website/docs/ai/agent-skills.mdx
  • website/docs/cli/commands/scaffold/usage.mdx
  • website/docs/ai/ai.mdx
🚧 Files skipped from review as they are similar to previous changes (9)
  • website/src/data/roadmap.js
  • website/docs/projects/setup-editor/ai-assistants.mdx
  • website/src/components/FileBrowser/utils.ts
  • website/sidebars.js
  • website/src/components/FileBrowser/IndexPage.tsx
  • website/src/components/FileBrowser/CopyMarkdownButton.tsx
  • cmd/ai/skill/list_test.go
  • website/plugins/file-browser/index.js
  • website/src/components/FileBrowser/types.ts

Comment thread .github/workflows/test.yml Outdated
Comment thread website/blog/2026-08-05-agent-skills-directory.mdx Outdated
Comment thread website/src/components/CommandBox/index.css Outdated
Comment thread website/src/components/CommandBox/index.tsx
timeout-minutes: 90 matched Linux's timed-step sum exactly (25m
registry cache + 60m coverage tests + 5m coverage upload), leaving
zero slack for checkout, Go/Atmos setup, and toolchain installs before
the job gets force-cancelled.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
The unquoted <skill-name> placeholder is parsed as shell redirection
syntax, so a reader who copies the command as written fails before
curl runs.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Stylelint's font-family-name-quotes rule rejects quotes on single-
word font names like Monaco and Menlo; Courier New keeps its quotes
since it contains a space.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
navigator.clipboard.writeText can reject when the browser denies
clipboard access, and the rejection was left unhandled. Catch it and
surface a "Copy failed" state instead of letting the click silently
do nothing.

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

🤖 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/src/components/CommandBox/index.tsx`:
- Around line 11-21: Update handleCopy so a successful copy clears failed before
setting copied, and a failed copy clears copied before setting failed, keeping
result states mutually exclusive. Preserve both 2-second reset timers and add or
verify regression coverage for rejection, failure-state reset, and existing
success behavior.
🪄 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: 9198c245-ad2b-407d-8386-0042989906c9

📥 Commits

Reviewing files that changed from the base of the PR and between 18824b9 and e2f9bb4.

📒 Files selected for processing (7)
  • .github/workflows/test.yml
  • website/blog/2026-08-05-agent-skills-directory.mdx
  • website/docs/cli/commands/kubernetes/kubernetes-deploy.mdx
  • website/docs/cli/commands/kubernetes/kubernetes-validate.mdx
  • website/src/components/CommandBox/index.css
  • website/src/components/CommandBox/index.tsx
  • website/src/data/roadmap.js
🚧 Files skipped from review as they are similar to previous changes (5)
  • website/docs/cli/commands/kubernetes/kubernetes-deploy.mdx
  • website/docs/cli/commands/kubernetes/kubernetes-validate.mdx
  • website/blog/2026-08-05-agent-skills-directory.mdx
  • website/src/data/roadmap.js
  • website/src/components/CommandBox/index.css

Comment thread website/src/components/CommandBox/index.tsx Outdated
Independent copied/failed booleans let a fast retry leave the button
showing a checkmark with a "Copy failed" tooltip (or vice versa) until
the stale timeout caught up. Replace them with a single CopyStatus
value so the two states can't coexist, and extract the clipboard-write
outcome into a pure performCopy() function (following the CastPlayer
convention: sibling .mjs logic module + node:test .test.mjs) so the
success/failure/reset behavior has regression coverage.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
coderabbitai[bot]
coderabbitai Bot previously approved these changes Aug 7, 2026
Bump pnpm overrides to patched versions, all within the major-version
ignore policy in .github/dependabot.yml:

- js-yaml 3.15.0 -> 3.15.1, 4.3.0 -> 4.3.1: quadratic CPU consumption
  in !!omap resolution (GHSA-5p4m-2wfm-xmqj / GHSA advisories, alerts
  #269, #268, high severity)
- mermaid 11.16.0 -> 11.16.1: radar-diagram DoS, prototype pollution
  (config APIs and Architecture diagrams), CSS injection, XY-chart
  infinite-loop DoS (alerts #267, #266, #265, #264, #263, medium/low)

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

minor New features that do not break anything needs-cloudposse Needs Cloud Posse assistance size/l Large size PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants