-
-
Notifications
You must be signed in to change notification settings - Fork 406
Propose adopting Agent Skills #1165
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
NullVoxPopuli
wants to merge
9
commits into
main
Choose a base branch
from
nvp/agent-skills
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
+184
−0
Open
Changes from all commits
Commits
Show all changes
9 commits
Select commit
Hold shift + click to select a range
9cfe58c
Propose Agent Skills
NullVoxPopuli de9d34a
Update meta
NullVoxPopuli 1bbff1c
Add a little disclaimer
NullVoxPopuli 90d7c1e
Add a little disclaimer
NullVoxPopuli f513ed8
Updates based on review and discussion
NullVoxPopuli 8a80a6d
Apply suggestion from @NullVoxPopuli
NullVoxPopuli ea4d962
Apply suggestion from @NullVoxPopuli
NullVoxPopuli cd32888
Update team list to include 'cli' instead of 'tooling' (for historica…
NullVoxPopuli 9b607a2
Merge branch 'main' into nvp/agent-skills
NullVoxPopuli File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,184 @@ | ||
| --- | ||
| stage: accepted | ||
| start-date: 2026-01-26T00:00:00.000Z | ||
| release-date: # In format YYYY-MM-DDT00:00:00.000Z | ||
| release-versions: | ||
| teams: | ||
| - learning | ||
| - cli | ||
| prs: | ||
| accepted: https://github.com/emberjs/rfcs/pull/1165 | ||
| project-link: | ||
| suite: | ||
| --- | ||
|
|
||
| <!--- | ||
| Directions for above: | ||
|
|
||
| stage: Leave as is | ||
| start-date: Fill in with today's date, 2032-12-01T00:00:00.000Z | ||
| release-date: Leave as is | ||
| release-versions: Leave as is | ||
| teams: Include only the [team(s)](README.md#relevant-teams) for which this RFC applies | ||
| prs: | ||
| accepted: Fill this in with the URL for the Proposal RFC PR | ||
| project-link: Leave as is | ||
| suite: Leave as is | ||
| --> | ||
|
|
||
| # Adopt Agent Skills for Ember Tooling | ||
|
|
||
| ## Summary | ||
|
|
||
| Adopt the Agent Skills repository (https://github.com/NullVoxPopuli/agent-skills) under the `ember-tooling` GitHub organization and treat it as the canonical home for Ember-focused “skills” for AI coding agents. | ||
|
|
||
| In practice, this gives the community a stable, reviewable way to package Ember best practices and lightweight automation for agents, similar in spirit to how we treat lint rules and guides as shared infrastructure. | ||
|
|
||
| Agent skills are supplemental to the official Guides. They should never be treated as a replacement for canonical documentation, and they are maintained for the current Ember version only (not as a historical, multi-version compatibility reference). | ||
|
|
||
| Also Agent skills can cover more topics than the official guides, have more opinions, etc. | ||
|
|
||
| ## Motivation | ||
|
|
||
| AI assistants are already part of day-to-day development. The ecosystem needs a way to: | ||
|
|
||
| - Share Ember-specific guidance in a format agents can reliably consume | ||
| - Keep that guidance updated through normal OSS workflows (PR review, changelog, release cadence) | ||
| - Make it easy for teams to standardize how agents review Ember code (performance, accessibility, conventions) | ||
|
|
||
| The `agent-skills` project provides an existing, interoperable format (agentskills.io) for packaging agent instructions and helper scripts. | ||
|
|
||
| The fork at https://github.com/NullVoxPopuli/agent-skills already includes Ember-focused content (notably an “ember-best-practices” skill) and supporting build/validation tooling. | ||
| ### Skills benefit humans too | ||
|
|
||
| While the packaging format is designed for agent consumption, the actual content—best practices, patterns, architectural guidance—is equally valuable to human developers. Skills partially supersede the [Cookbook RFC](https://github.com/emberjs/rfcs/issues/786) and could eventually be rendered on a site like [cookbook.emberjs.com](https://cookbook.emberjs.com/) so the same knowledge base serves both audiences. | ||
|
|
||
| One might ask: why not just write documentation for humans and let LLMs discover it? Skills complement official documentation rather than replace it. The official Guides and API docs remain canonical. Skills add value by: | ||
|
|
||
| - Providing opinionated, action-oriented instructions tuned to agent workflows (e.g. "review this component for accessibility regressions") | ||
| - Bundling implicit knowledge that experienced Ember developers carry but that isn't always captured in reference docs | ||
| - Pointing agents to the right canonical docs at the right time, rather than leaving them to search the entire surface area | ||
|
|
||
| Where gaps exist in official documentation, skills can serve as a forcing function to identify and fix them upstream. | ||
|
|
||
| If one day agent-skills are no longer needed by agents, these docs are still useful for humans, training, reference, ideas, etc. | ||
|
|
||
| ### Why adopt now? | ||
|
|
||
| Skills may not be the dominant AI integration pattern forever. However, there is demonstrated value today: community testing has shown that injecting Ember skills into a local model (e.g. qwen3-coder-next) improved output from roughly 70% correct (and confusing to newcomers) to nearly fault-free. Moving quickly lets the Ember ecosystem benefit now while the format is actively evolving (which [it is](https://agentskills.io/home), and the format generated into a project changes over time to use better techniques for ai token efficiency). | ||
NullVoxPopuli marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
|
||
| We are prioritizing moving quickly and will not be guaranteeing any format stability within the agent-skills repo, but will put forth a best-effort for compatibility with the skill-generating/consuming tools available. | ||
|
|
||
| This is not promising the same stability that ember promises. | ||
|
|
||
| ## Detailed design | ||
|
|
||
| ### What is an “Agent Skill”? | ||
|
|
||
| An Agent Skill is a small, versioned bundle of: | ||
|
|
||
| - Agent-facing instructions (for example, how to review code or how to run a task) | ||
| - Optional helper scripts for automation | ||
| - Optional references | ||
|
|
||
| The intention is that an agent can automatically apply a skill when it detects the task is relevant (e.g. “Review this Ember component for performance issues”). | ||
|
|
||
| ### Proposal | ||
|
|
||
| 1. Transfer or mirror the repository to `ember-tooling/agent-skills`. | ||
| 2. Treat Ember-related skills in that repo as recommended defaults for Ember workflows. | ||
| 3. Establish a lightweight review and release process so changes to skills are: | ||
| - auditable (PR review) | ||
| - testable (CI/validation) | ||
| - versioned (tags/releases) | ||
|
|
||
| This RFC does not require any one editor or AI provider. The point is to maintain shared content in a vendor-neutral format. | ||
|
|
||
| **Scope clarification:** This RFC is about adopting the skills repo as shared infrastructure. The actual skill contents are a living set of micro-documents and are intentionally out of scope—they will evolve through normal PR workflows without requiring further RFCs. The contribution bar should be low: since AI output quality is inherently fuzzy, any potential improvement is worth trying, and we should not gate contributions on heavy process. | ||
|
|
||
| ### Scope (initial) | ||
|
|
||
| Start with the Ember-focused skill(s) already present in the fork, especially “ember-best-practices” (performance + accessibility oriented), and iterate from there. | ||
|
|
||
| Non-Ember skills that happen to live in the repo today can remain if they are useful for web development in general, but the adoption goal is to ensure Ember-centric guidance is first-class. | ||
|
|
||
| ### Versioning strategy | ||
|
|
||
| Ember-focused skills target the **current Ember release** by default. The repo will use LTS-based folders so users can select the skill set appropriate for their project: | ||
|
|
||
| ``` | ||
| ❯ pnpm dlx skills add ember-tooling/agent-skills | ||
|
|
||
| ┌ skills | ||
| │ | ||
| ◇ Found 2 skills | ||
| │ | ||
| ◆ Select skills to install (space to toggle) | ||
| │ ◻ ember-release | ||
| │ ◻ ember-lts-6.12 | ||
| └ | ||
| ``` | ||
|
|
||
| When a new LTS is declared, the current `ember-release` files are copied into a new LTS folder (e.g. `ember-lts-6.12`). This gives LTS users a stable snapshot while `ember-release` continues to evolve. | ||
|
|
||
| Backporting skills to much older versions (e.g. Ember 4) is possible if there is community desire, but it would require reorganizing skills by feature (e.g. template-tag, classic HBS) rather than by version, so that feature-specific guidance isn't incorrectly recommended to users whose projects don't use that feature. | ||
|
|
||
| ### External content policy | ||
|
|
||
| Skills should avoid fetching content from external URLs at runtime. If a skill references third-party guidance (for example, Vercel's Web Interface Guidelines), that content should be **vendored** into the repo so that: | ||
|
|
||
| - Skills work offline and in air-gapped environments | ||
| - There is no risk of upstream content changing unexpectedly | ||
| - All content is auditable through the normal PR review process | ||
|
|
||
| Vendored content can be periodically updated via automated PRs that diff upstream changes. | ||
|
|
||
| ### Token efficiency | ||
|
|
||
| Skill authors should follow emerging [agentskills best practices](https://github.com/mgechev/skills-best-practices) (and on [agentskills.io](https://agentskills.io/home)) for token efficiency. Since skills are injected into agent context windows, every token matters. Guidance should be concise, structured, and free of boilerplate. | ||
|
|
||
| ### Installation / usage | ||
|
|
||
| Agent Skills are installed from a repository reference. The recommended command once the repo is adopted: | ||
|
|
||
| ```sh | ||
| pnpm dlx skills add ember-tooling/agent-skills | ||
| ``` | ||
|
|
||
| (This uses the [skills CLI](https://github.com/vercel-labs/skills?tab=readme-ov-file#skills).) Once installed, compatible agents can auto-apply skills when prompted. | ||
|
|
||
| We should document the “happy path” using the `ember-tooling` repo location once adopted. | ||
|
|
||
| ## How we teach this | ||
|
|
||
| - Add a short Guides section: “AI-assisted development: Skills” explaining what skills are, when to use them, and how to install them. | ||
| - Provide 2–3 concrete examples: | ||
| - “Review this Ember route for data fetching issues” | ||
| - “Audit this template for accessibility regressions” | ||
| - “Suggest improvements for bundle size / build output” | ||
| - Cross-link from the `ember-mcp` recommendation: MCP provides data/tools; skills provide opinionated workflows. | ||
| - Emphasize that skills are supplemental to the official Guides and API docs—not a replacement. Where skill content reveals gaps in canonical docs, those gaps should be fixed upstream. | ||
| - Consider rendering skill content on [cookbook.emberjs.com](https://cookbook.emberjs.com/) so the same knowledge base is browsable by humans in a web-friendly format. | ||
|
|
||
| ## Drawbacks | ||
|
|
||
| - Maintenance burden: best practices evolve, and a “recommended” skill set must keep pace. | ||
| - Risk of over-prescription: skills can encode opinions; we’ll need clear language about what’s “recommended” vs “optional.” | ||
| - Safety: skills may include scripts; maintainers should be conservative about automation and emphasize review of actions. | ||
| - Longevity: the "skills" format may be superseded as AI tooling matures. However, the underlying knowledge is valuable regardless of packaging, and the low-overhead nature of skills means the investment is proportionate to the risk. | ||
| - Overlap with existing docs: skill content may duplicate guidance already in the Guides or API docs. This is acceptable as long as skills point back to canonical sources and doc gaps discovered through skill authoring are fed back upstream. | ||
|
|
||
| ## Alternatives | ||
|
|
||
| - Keep everything ad-hoc in blog posts / gists (hard to discover, not versioned, not enforceable). | ||
| - Rely solely on generic AI models plus docs (agents still miss context, and there’s no shared review surface). | ||
| - Build Ember-specific integrations per editor/provider (more work, less portable). | ||
|
|
||
| ## Unresolved questions | ||
|
|
||
| - Governance: which group owns reviews and releases (Tooling team, Learning team, or shared working group)? | ||
| - Release model: tags only, GitHub releases, or also published packages? (LTS-based folder snapshots are planned, but the exact release mechanics need definition.) | ||
| - Policy: what skills qualify as "recommended" (and how do we deprecate or supersede skills)? | ||
| - Security posture: what constraints do we place on including scripts (network access, destructive commands, sandboxing guidance)? All external content should be vendored rather than fetched at runtime. | ||
| - Backporting: how far back do we support? The default is current-release-only, but community demand for older LTS or Ember 4 support would require feature-based skill organization. | ||
| - Cookbook RFC integration: should skill content also be rendered on [cookbook.emberjs.com](https://cookbook.emberjs.com/), and if so, what is the build/publishing pipeline? | ||
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.