Plan, apply, inspect, or uninstall the Backstage Expert repository workspace kit for adopter or core profiles. Use when publishing bundled instructions, VS Code prompts, and the optional Backstage safety hook into a target repository.
Scanned 9/4/2026
Install to Claude Code
npx -y skills add paulasilvatech/awesome-harness-primitives --skill backstage-workspace-kit --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Backstage Workspace Kit?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/paulasilvatech-backstage-workspace-kit-awesome-harness-primitives)More formats (shields.io, HTML) on the badges page.
---
name: backstage-workspace-kit
description: >-
Plan, apply, inspect, or uninstall the Backstage Expert repository workspace kit for adopter or
core profiles. Use when publishing bundled instructions, VS Code prompts, and the optional
Backstage safety hook into a target repository.
user-invocable: true
---
<!-- Generated from harness/github-copilot/plugins/backstage-expert/skills/backstage-workspace-kit/SKILL.md by harness/claude-code/scripts/convert_from_copilot.py. Edit the source, not this file. -->
# Backstage Expert workspace kit
Publish repository-scoped assets that Agent Plugins 1.0 does not activate automatically. The
bundled script is dry-run-first, records managed-file hashes, and removes only unchanged files it
previously installed.
## When to invoke
- "Install Backstage Expert instructions in this repository."
- "Preview the Backstage VS Code prompts."
- "Apply the Backstage core contributor workspace profile."
- "Uninstall the Backstage workspace kit."
## Profiles
| Profile | Published assets |
| --- | --- |
| `adopter` | App, catalog, software-template, plugin, and TechDocs instructions plus both prompts. |
| `core` | Plugin and TechDocs instructions plus both prompts, tuned for core contribution workflows. |
The repository hook is optional for both profiles. The plugin-installed hook remains available
without publishing a repository hook.
## Procedure
1. Resolve the installed skill directory and target repository.
2. Preview:
```bash
python3 scripts/install_workspace_kit.py \
--target <repository> \
--profile adopter
```
3. Add `--include-hook` only when the repository should carry its own hook configuration.
4. Review every create, unchanged, conflict, and managed-file result.
5. Apply only after approval:
```bash
python3 scripts/install_workspace_kit.py \
--target <repository> \
--profile adopter \
--apply
```
6. Re-run the dry-run to verify idempotence.
7. Uninstall only after previewing the removal plan:
```bash
python3 scripts/install_workspace_kit.py \
--target <repository> \
--profile adopter \
--uninstall
```
Add `--apply` to perform the approved uninstall.
## Safety
- The default is a plan; no writes or removals occur without `--apply`.
- The script never overwrites `AGENTS.md` or `.github/copilot-instructions.md`.
- Existing differing files are conflicts and are not overwritten.
- Destinations and state paths must remain beneath the target and cannot traverse symlinks.
- State is stored in `.github/.backstage-expert-workspace-kit.json`.
- Uninstall removes only managed files whose current hash still matches the installed hash.
## Output template
```markdown
## Backstage workspace kit
**Mode:** plan | applied | uninstall-plan | uninstalled | blocked
**Profile:** adopter | core
**Target:** <path>
| Status | Destination |
| --- | --- |
### Validation
- Idempotence:
- Conflicts:
- State file:
```
## Quality gate
- [ ] Target, profile, and hook choice are explicit.
- [ ] A dry-run was reviewed before apply or uninstall.
- [ ] No conflict or modified managed file was overwritten or removed.
- [ ] Managed-file state was written atomically.
- [ ] Apply is idempotent.
- [ ] VS Code prompts are reported as VS Code-only assets.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!