Modernization workspace kit
Publish repository-scoped assets that plugin installation does not activate automatically, with preview as the default and managed ownership for every written destination.
When to invoke
- "Preview the workspace customizations for this modernization track."
- "Install the stage agents and prompts in this repository."
- "Add the traceability automation."
- "Uninstall only files managed by the workspace kit."
Inputs
Use $ARGUMENTS as script options. Require an explicit target and profile. --apply authorizes the planned transaction; --uninstall selects an archive-based uninstall plan. Do not infer --apply.
Policy and mechanism
This skill is the mechanism. The asset policy lives in workspace-kit.json at the root of the plugin that
carries this generated copy, so each modernization track publishes its own assets through the same tested
publisher.
| Manifest key |
Meaning |
kitName |
Label used in reports and transaction temp directories. |
stateFile |
Target-relative managed-state path; the backup path derives from it. |
globalInstructions |
Package-relative source for the repository-wide instructions file. |
agents, prompts |
File names published from the package agents/ and prompts/ directories. |
skills |
Skill directory names published as trees. |
coreInstructions, workshopInstructions |
Instruction file names per profile. |
automation |
source and destination pairs for workflows and scripts. |
A missing or malformed manifest is a hard error; the publisher never falls back to defaults.
Profiles
| Profile |
Published assets |
core |
Global instructions, stage agents, project skills, and core instructions. |
workshop |
core plus workshop instructions and stage prompts. |
automation |
The manifest's automation entries only. |
full |
Union of workshop and automation. |
Procedure
Preview the selected profile:
python3 scripts/install_workspace_kit.py --target <repository> --profile workshop
Review every create, update, unchanged, unmanaged-identical, retired, preserved, and conflict result.
Apply only after approval by repeating the command with --apply.
Preview the same profile again and require every managed destination to be unchanged.
Preview uninstall with --uninstall; add --apply only after reviewing archive and preserve actions.
Safety
- Preview mode writes no files.
- Any unmanaged or modified managed destination blocks the complete install or update transaction.
- New content and managed state are staged before commit; a commit failure restores prior files and state.
- Existing identical unmanaged files are not silently adopted.
- Paths that escape the target or traverse symlinks are rejected.
- Managed state is written atomically to the manifest's
stateFile.
- Uninstall archives unchanged managed files and preserves modified files.
- The publisher does not install dependencies, access networks, stage Git changes, commit, push, deploy,
change repository settings, or mutate infrastructure.
- Switch profiles only after previewing and uninstalling the profile recorded in managed state.
Progressive disclosure and bundled resources
scripts/install_workspace_kit.py: transactional preview, apply, update, and uninstall publisher.
scripts/test_install_workspace_kit.py: profile, conflict, idempotence, rollback, archive, manifest, and path-safety tests.
Limits
- This skill does not install or update the plugin itself.
- Project copies are publication artifacts, not a second canonical source.
- VS Code prompts remain VS Code-only after publication.
- Automation entries are published as declared; the publisher does not validate what they do.
Output template
## Workspace kit result
**Mode:** install-plan | install-applied | uninstall-plan | uninstall-applied | blocked
**Kit:** <kitName>
**Profile:** core | workshop | 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/result or not run>
Quality gate
1---2name: modernization-workspace-kit-43description: Preview, publish, update, inspect, or uninstall managed modernization repository customizations with conflict detection, ownership hashes, transactional rollback, and safe archives. Use when installing a mainframe modernization track's context, stage agents, prompts, instructions, or automation into a target repository.4---56<!-- Generated from harness/github-copilot/plugins/mainframe-natural-adabas/skills/modernization-workspace-kit/SKILL.md by harness/claude-code/scripts/convert_from_copilot.py. Edit the source, not this file. -->78# Modernization workspace kit910Publish repository-scoped assets that plugin installation does not activate automatically, with preview as the default and managed ownership for every written destination.1112## When to invoke1314- "Preview the workspace customizations for this modernization track."15- "Install the stage agents and prompts in this repository."16- "Add the traceability automation."17- "Uninstall only files managed by the workspace kit."1819## Inputs2021Use `$ARGUMENTS` as script options. Require an explicit target and profile. `--apply` authorizes the planned transaction; `--uninstall` selects an archive-based uninstall plan. Do not infer `--apply`.2223## Policy and mechanism2425This skill is the mechanism. The asset policy lives in `workspace-kit.json` at the root of the plugin that26carries this generated copy, so each modernization track publishes its own assets through the same tested27publisher.2829| Manifest key | Meaning |30| --- | --- |31| `kitName` | Label used in reports and transaction temp directories. |32| `stateFile` | Target-relative managed-state path; the backup path derives from it. |33| `globalInstructions` | Package-relative source for the repository-wide instructions file. |34| `agents`, `prompts` | File names published from the package `agents/` and `prompts/` directories. |35| `skills` | Skill directory names published as trees. |36| `coreInstructions`, `workshopInstructions` | Instruction file names per profile. |37| `automation` | `source` and `destination` pairs for workflows and scripts. |3839A missing or malformed manifest is a hard error; the publisher never falls back to defaults.4041## Profiles4243| Profile | Published assets |44| --- | --- |45| `core` | Global instructions, stage agents, project skills, and core instructions. |46| `workshop` | `core` plus workshop instructions and stage prompts. |47| `automation` | The manifest's automation entries only. |48| `full` | Union of `workshop` and `automation`. |4950## Procedure51521. Preview the selected profile:5354 ```bash55 python3 scripts/install_workspace_kit.py --target <repository> --profile workshop56 ```57582. Review every create, update, unchanged, unmanaged-identical, retired, preserved, and conflict result.593. Apply only after approval by repeating the command with `--apply`.604. Preview the same profile again and require every managed destination to be unchanged.615. Preview uninstall with `--uninstall`; add `--apply` only after reviewing archive and preserve actions.6263## Safety6465- Preview mode writes no files.66- Any unmanaged or modified managed destination blocks the complete install or update transaction.67- New content and managed state are staged before commit; a commit failure restores prior files and state.68- Existing identical unmanaged files are not silently adopted.69- Paths that escape the target or traverse symlinks are rejected.70- Managed state is written atomically to the manifest's `stateFile`.71- Uninstall archives unchanged managed files and preserves modified files.72- The publisher does not install dependencies, access networks, stage Git changes, commit, push, deploy,73 change repository settings, or mutate infrastructure.74- Switch profiles only after previewing and uninstalling the profile recorded in managed state.7576## Progressive disclosure and bundled resources7778- `scripts/install_workspace_kit.py`: transactional preview, apply, update, and uninstall publisher.79- `scripts/test_install_workspace_kit.py`: profile, conflict, idempotence, rollback, archive, manifest, and path-safety tests.8081## Limits8283- This skill does not install or update the plugin itself.84- Project copies are publication artifacts, not a second canonical source.85- VS Code prompts remain VS Code-only after publication.86- Automation entries are published as declared; the publisher does not validate what they do.8788## Output template8990```markdown91## Workspace kit result9293**Mode:** install-plan | install-applied | uninstall-plan | uninstall-applied | blocked94**Kit:** <kitName>95**Profile:** core | workshop | automation | full96**Target:** <repository>9798### Summary99| Status | Count |100| --- | ---: |101102### Changed or blocked destinations103- <status>: <target-relative path>104105### Validation106- Idempotence: <pass, fail, or not run>107- Target checks: <command/result or not run>108```109110## Quality gate111112- [ ] Target and profile are explicit and preview was reviewed before apply or uninstall.113- [ ] The plugin's `workspace-kit.json` was read and no default was assumed.114- [ ] No conflict or modified managed file was overwritten or archived.115- [ ] Transaction failure coverage restores files and managed state.116- [ ] Retired and uninstalled destinations are archived or explicitly preserved when modified.117- [ ] State stays inside the target and is written atomically.118- [ ] Repeated apply is unchanged for every managed destination.119- [ ] VS Code-only prompts and runtime limitations are reported accurately.