Open Horizons workspace kit
Publish repository-scoped assets that plugin installation does not activate automatically, or create
explicit project copies for teams that require checked-in primitives. Planning is the default and
uninstall archives unchanged managed files while preserving files changed after installation.
When to invoke
- "Install the Open Horizons AEG feature in this repository."
- "Preview the Open Horizons instructions and VS Code prompts."
- "Publish the Open Horizons workflow and issue-template automation."
- "Uninstall only files managed by the Open Horizons workspace kit."
Profiles
| Profile |
Published assets |
aeg |
Four AEG agents, the AEG feature skill, one instruction, five VS Code prompts, and the safety hook. |
core |
AGENTS.md, repository instructions, all agents, skills, instructions, prompts, safety hook, and workspace MCP configuration. |
automation |
Self-contained GitHub Actions workflows and issue templates. |
full |
The union of core and automation. |
The AEG profile does not fabricate an AEG endpoint. Its agents return blocked until an authenticated
open-horizons-aeg MCP server exposes the contract documented by the AEG feature skill.
The target-specific agent validation workflow is not published because it requires an
application-owned routing contract and service source tree that are not bundled here.
Procedure
Resolve this installed skill directory and select an existing target repository.
Preview one explicit profile:
python3 scripts/install_workspace_kit.py \
--target <repository> \
--profile aeg
Review every create, update, unchanged, unmanaged-identical, and conflict result.
Apply only after approval:
python3 scripts/install_workspace_kit.py \
--target <repository> \
--profile aeg \
--apply
Repeat the dry run and require every managed destination to be unchanged.
Preview uninstall with the same profile, then add --apply only after review:
python3 scripts/install_workspace_kit.py \
--target <repository> \
--profile aeg \
--uninstall
Safety
- No file changes occur without
--apply.
- Any conflict blocks the complete apply before the first write.
- Source content and state are staged before commit; a commit failure restores prior files and state.
- Existing identical files are not silently adopted as managed files.
- Upgrades archive unchanged retired destinations and preserve modified retired destinations as managed.
- Paths that escape the target or traverse symlinks are rejected.
- State is written atomically to
.github/.open-horizons-workspace-kit.json.
- Uninstall archives only managed files whose hash still matches the installed hash.
- The installer does not install dependencies, call networks, stage, commit, push, deploy, or prune
unrelated files.
Progressive disclosure and bundled resources
scripts/install_workspace_kit.py: repeatable plan, apply, and archive implementation.
scripts/test_install_workspace_kit.py: focused transaction and safety tests.
templates/mcp.json: workspace MCP syntax corresponding to the plugin's portable MCP manifest.
Limits
- Do not use this skill to install or update the plugin itself.
- Do not switch profiles over managed state; preview and uninstall the current profile first.
- Do not claim VS Code prompts run in GitHub Copilot CLI or Agent Host.
- Do not treat project copies as a second canonical source; update the plugin package and republish.
Output template
## Open Horizons workspace kit
**Mode:** install-plan | installed | uninstall-plan | uninstalled | blocked
**Profile:** aeg | core | automation | full
**Target:** <repository>
### Summary
| Status | Count |
| --- | ---: |
### Changed or blocked destinations
- <status>: <target-relative path>
### Validation
- Idempotence: <pass, fail, or not run>
- Target checks: <command and result, or not run>
Quality gate
References
1---2name: open-horizons-workspace-kit-23description: Plans, applies, inspects, or uninstalls Open Horizons repository customizations with conflict detection and managed-file state. Use when publishing the AEG feature, the full toolkit, instructions, VS Code prompts, safety hooks, MCP configuration, workflows, or issue templates to a target repository.4---56# Open Horizons workspace kit78Publish repository-scoped assets that plugin installation does not activate automatically, or create9explicit project copies for teams that require checked-in primitives. Planning is the default and10uninstall archives unchanged managed files while preserving files changed after installation.1112## When to invoke1314- "Install the Open Horizons AEG feature in this repository."15- "Preview the Open Horizons instructions and VS Code prompts."16- "Publish the Open Horizons workflow and issue-template automation."17- "Uninstall only files managed by the Open Horizons workspace kit."1819## Profiles2021| Profile | Published assets |22| --- | --- |23| `aeg` | Four AEG agents, the AEG feature skill, one instruction, five VS Code prompts, and the safety hook. |24| `core` | `AGENTS.md`, repository instructions, all agents, skills, instructions, prompts, safety hook, and workspace MCP configuration. |25| `automation` | Self-contained GitHub Actions workflows and issue templates. |26| `full` | The union of `core` and `automation`. |2728The AEG profile does not fabricate an AEG endpoint. Its agents return `blocked` until an authenticated29`open-horizons-aeg` MCP server exposes the contract documented by the AEG feature skill.30The target-specific agent validation workflow is not published because it requires an31application-owned routing contract and service source tree that are not bundled here.3233## Procedure34351. Resolve this installed skill directory and select an existing target repository.362. Preview one explicit profile:3738 ```bash39 python3 scripts/install_workspace_kit.py \40 --target <repository> \41 --profile aeg42 ```43443. Review every create, update, unchanged, unmanaged-identical, and conflict result.454. Apply only after approval:4647 ```bash48 python3 scripts/install_workspace_kit.py \49 --target <repository> \50 --profile aeg \51 --apply52 ```53545. Repeat the dry run and require every managed destination to be `unchanged`.556. Preview uninstall with the same profile, then add `--apply` only after review:5657 ```bash58 python3 scripts/install_workspace_kit.py \59 --target <repository> \60 --profile aeg \61 --uninstall62 ```6364## Safety6566- No file changes occur without `--apply`.67- Any conflict blocks the complete apply before the first write.68- Source content and state are staged before commit; a commit failure restores prior files and state.69- Existing identical files are not silently adopted as managed files.70- Upgrades archive unchanged retired destinations and preserve modified retired destinations as managed.71- Paths that escape the target or traverse symlinks are rejected.72- State is written atomically to `.github/.open-horizons-workspace-kit.json`.73- Uninstall archives only managed files whose hash still matches the installed hash.74- The installer does not install dependencies, call networks, stage, commit, push, deploy, or prune75 unrelated files.7677## Progressive disclosure and bundled resources7879- `scripts/install_workspace_kit.py`: repeatable plan, apply, and archive implementation.80- `scripts/test_install_workspace_kit.py`: focused transaction and safety tests.81- `templates/mcp.json`: workspace MCP syntax corresponding to the plugin's portable MCP manifest.8283## Limits8485- Do not use this skill to install or update the plugin itself.86- Do not switch profiles over managed state; preview and uninstall the current profile first.87- Do not claim VS Code prompts run in GitHub Copilot CLI or Agent Host.88- Do not treat project copies as a second canonical source; update the plugin package and republish.8990## Output template9192```markdown93## Open Horizons workspace kit9495**Mode:** install-plan | installed | uninstall-plan | uninstalled | blocked96**Profile:** aeg | core | automation | full97**Target:** <repository>9899### Summary100| Status | Count |101| --- | ---: |102103### Changed or blocked destinations104- <status>: <target-relative path>105106### Validation107- Idempotence: <pass, fail, or not run>108- Target checks: <command and result, or not run>109```110111## Quality gate112113- [ ] Target and profile are explicit.114- [ ] A dry run was reviewed before apply or uninstall.115- [ ] No conflict or modified managed file was overwritten or archived.116- [ ] Fault-injection coverage proves failed commits restore files and managed state.117- [ ] Retired managed destinations are archived or explicitly preserved when modified.118- [ ] Managed state was written atomically and remains inside the target.119- [ ] Apply is idempotent for every managed destination.120- [ ] AEG runtime availability is reported separately from static publication.121- [ ] VS Code-only prompts are identified as such.122- [ ] Target validation and Git status are reported without invented results.123124## References125126- [GitHub Copilot custom instructions](https://docs.github.com/en/copilot/how-tos/copilot-on-github/customize-copilot/add-repository-instructions/add-repository-instructions)127- [VS Code prompt files](https://code.visualstudio.com/docs/copilot/customization/prompt-files)