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-23description: 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# Modernization workspace kit78Publish repository-scoped assets that plugin installation does not activate automatically, with preview as the default and managed ownership for every written destination.910## When to invoke1112- "Preview the workspace customizations for this modernization track."13- "Install the stage agents and prompts in this repository."14- "Add the traceability automation."15- "Uninstall only files managed by the workspace kit."1617## Inputs1819Use `$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`.2021## Policy and mechanism2223This skill is the mechanism. The asset policy lives in `workspace-kit.json` at the root of the plugin that24carries this generated copy, so each modernization track publishes its own assets through the same tested25publisher.2627| Manifest key | Meaning |28| --- | --- |29| `kitName` | Label used in reports and transaction temp directories. |30| `stateFile` | Target-relative managed-state path; the backup path derives from it. |31| `globalInstructions` | Package-relative source for the repository-wide instructions file. |32| `agents`, `prompts` | File names published from the package `agents/` and `prompts/` directories. |33| `skills` | Skill directory names published as trees. |34| `coreInstructions`, `workshopInstructions` | Instruction file names per profile. |35| `automation` | `source` and `destination` pairs for workflows and scripts. |3637A missing or malformed manifest is a hard error; the publisher never falls back to defaults.3839## Profiles4041| Profile | Published assets |42| --- | --- |43| `core` | Global instructions, stage agents, project skills, and core instructions. |44| `workshop` | `core` plus workshop instructions and stage prompts. |45| `automation` | The manifest's automation entries only. |46| `full` | Union of `workshop` and `automation`. |4748## Procedure49501. Preview the selected profile:5152 ```bash53 python3 scripts/install_workspace_kit.py --target <repository> --profile workshop54 ```55562. Review every create, update, unchanged, unmanaged-identical, retired, preserved, and conflict result.573. Apply only after approval by repeating the command with `--apply`.584. Preview the same profile again and require every managed destination to be unchanged.595. Preview uninstall with `--uninstall`; add `--apply` only after reviewing archive and preserve actions.6061## Safety6263- Preview mode writes no files.64- Any unmanaged or modified managed destination blocks the complete install or update transaction.65- New content and managed state are staged before commit; a commit failure restores prior files and state.66- Existing identical unmanaged files are not silently adopted.67- Paths that escape the target or traverse symlinks are rejected.68- Managed state is written atomically to the manifest's `stateFile`.69- Uninstall archives unchanged managed files and preserves modified files.70- The publisher does not install dependencies, access networks, stage Git changes, commit, push, deploy,71 change repository settings, or mutate infrastructure.72- Switch profiles only after previewing and uninstalling the profile recorded in managed state.7374## Progressive disclosure and bundled resources7576- `scripts/install_workspace_kit.py`: transactional preview, apply, update, and uninstall publisher.77- `scripts/test_install_workspace_kit.py`: profile, conflict, idempotence, rollback, archive, manifest, and path-safety tests.7879## Limits8081- This skill does not install or update the plugin itself.82- Project copies are publication artifacts, not a second canonical source.83- VS Code prompts remain VS Code-only after publication.84- Automation entries are published as declared; the publisher does not validate what they do.8586## Output template8788```markdown89## Workspace kit result9091**Mode:** install-plan | install-applied | uninstall-plan | uninstall-applied | blocked92**Kit:** <kitName>93**Profile:** core | workshop | automation | full94**Target:** <repository>9596### Summary97| Status | Count |98| --- | ---: |99100### Changed or blocked destinations101- <status>: <target-relative path>102103### Validation104- Idempotence: <pass, fail, or not run>105- Target checks: <command/result or not run>106```107108## Quality gate109110- [ ] Target and profile are explicit and preview was reviewed before apply or uninstall.111- [ ] The plugin's `workspace-kit.json` was read and no default was assumed.112- [ ] No conflict or modified managed file was overwritten or archived.113- [ ] Transaction failure coverage restores files and managed state.114- [ ] Retired and uninstalled destinations are archived or explicitly preserved when modified.115- [ ] State stays inside the target and is written atomically.116- [ ] Repeated apply is unchanged for every managed destination.117- [ ] VS Code-only prompts and runtime limitations are reported accurately.