beps/0013-backstage-ai/README.md
This BEP proposes that curated Backstage AI skills are authored in the main Backstage
repository and published separately to a well-known endpoint on backstage.io. Instead
of creating a new Backstage-owned repository and custom discovery protocol, Backstage
will publish skills using the well-known layout already supported by skills.sh.
The published output can be released on its own publishing cadence even though the source content lives in the main monorepo.
The primary consumer workflow becomes:
npx skills add https://backstage.io to discover and install all published Backstage skills.npx skills add https://backstage.io/.well-known/skills/<skill-name> to install a specific skill.This keeps Backstage aligned with an existing ecosystem convention, reduces maintenance surface area, and still gives adopters a clear, official source for reusable AI guidance. Prompt templates, instructions, and supporting files can still be shipped, but they are packaged within skill directories instead of through a separate Backstage-specific asset system.
Backstage adopters are increasingly using AI-assisted workflows for plugin development, migration, maintenance, and documentation. Today, prompt and skill quality varies significantly across adopters, and there is no common, well-known channel for sharing proven guidance. A lot of adopters already have assets that help AI-assisted development and could be shared with the community.
As a result:
Backstage should solve this in the simplest interoperable way. Creating a dedicated asset
repository, a Backstage-specific discovery index, and custom install/update tooling would
increase maintenance cost while duplicating functionality that skills.sh already provides.
By publishing official Backstage skills through a well-known endpoint on backstage.io,
Backstage can provide a reliable baseline for AI-enabled development while preserving local
extension and customization and staying aligned with an existing ecosystem workflow.
backstage.io.skills.sh discovery and installation behavior instead of inventing a Backstage-specific protocol.Introduce three deliverables:
https://backstage.io/.well-known/skills/.skills.shThe Backstage source content will contain:
The primary consumer workflow will use skills.sh directly:
npx skills add https://backstage.ionpx skills add https://backstage.io/.well-known/skills/<skill-name>If Backstage later adds CLI support, it should remain intentionally thin:
skills.sh semantics rather than defining its own registry or manifest.This approach keeps discovery and installation interoperable with the broader ecosystem, while still letting Backstage publish curated guidance from an official source.
The source of truth for Backstage skills will live in the Backstage monorepo. The exact directory can be finalized during implementation, but it should provide a predictable layout for authoring, review, and publication.
Each skill directory should be self-contained and may include:
SKILL.md as the primary skill entry point.Published output on backstage.io will follow the skills.sh well-known layout:
https://backstage.io/.well-known/skills/index.jsonhttps://backstage.io/.well-known/skills/<skill-name>/SKILL.mdhttps://backstage.io/.well-known/skills/<skill-name>/...The published index should contain entries with the current skills.sh well-known shape:
name: skill identifier, matching the published directory name.description: short description of the skill.files: all published files in the skill directory.Example published layout:
.well-known/skills/index.json
.well-known/skills/plugin-authoring/SKILL.md
.well-known/skills/plugin-authoring/prompts/review.md
Example index structure:
{
"skills": [
{
"name": "plugin-authoring",
"description": "Guidance for creating and reviewing Backstage plugins.",
"files": ["SKILL.md", "prompts/review.md"]
}
]
}
Backstage CI should validate the source skill layout, ensure published file references are correct, and generate the well-known endpoint contents as part of the publishing workflow.
The main adoption path is documentation, not new tooling:
npx skills add https://backstage.io.skills.sh.Adopters can:
Backstage should not block these local workflows by requiring a proprietary asset format.
Phase 1: Repository bootstrap
Phase 2: Publishing rollout
/.well-known/skills/ content for backstage.io.index.json and the initial skill directories.skills.sh consumption behavior.Phase 3: General availability
npx skills add https://backstage.io.backstage-cli wrapper adds enough value to justify maintenance.skills.sh continuing to support the current well-known endpoint format.backstage.io/.well-known/skills/.This preserves autonomy but does not solve discovery, reuse, or consistency. It also increases duplicated maintenance effort across adopters.
This was the original direction, but it adds repository sprawl and still requires a distribution mechanism. Keeping the source in the main monorepo simplifies governance and keeps the content closer to the Backstage code and docs it describes.
This would duplicate functionality already available through skills.sh and create a long-term maintenance burden for
limited short-term benefit.
This improves discoverability, but without the well-known skills.sh layout it does not provide a direct installation
path for users.