Multi-Platform Deployment Upgrade Guide¶
This guide covers upgrading to profile-aware deployments while keeping existing Claude-only workflows unchanged.
What Changed¶
SkillMeat now supports per-project deployment profiles for multiple platforms:
claude_code(.claude)codex(.codex)gemini(.gemini)cursor(.cursor)
Deployments can now carry profile metadata:
deployment_profile_idplatformprofile_root_dir
What Stays the Same¶
If you keep using default commands (no --profile flag):
- Claude-only projects continue to work
- Existing deployment files are still read
- Legacy deployment records remain valid
Run Migration¶
Use the migration script to add profile metadata and create default profiles for legacy projects:
Preview without writing changes:
Use a custom cache DB path:
Verify Upgrade¶
- Run regression tests for Claude-only compatibility:
- Run migration tests:
- Run fresh-project profile verification tests:
Opt In to Multi-Platform Workflows¶
Initialize project profiles:
Deploy to a specific profile:
Deploy to all configured profiles:
Check status for one profile:
Deploy context entities to a selected profile:
Known Limitations¶
- Symlink-heavy profile roots can produce confusing file paths if external tools rewrite links during deployment.
- Legacy records without profile fields are inferred from profile root context (defaults to
.claudeif ambiguous). - If cache DB project rows are missing, the migration script creates minimal project records for profile ownership.
Troubleshooting¶
Migration reports zero projects¶
Cause: no .skillmeat-deployed.toml files were discovered in default search locations.
Fix:
Deployment records not updated¶
Cause: records already had profile metadata, or deployment files are malformed.
Fix:
- Re-run with
--verboseand inspect per-project output. - Validate each deployment file is valid TOML and contains a
[[deployed]]array.
Unexpected profile/platform mapping¶
Cause: custom profile roots that are not one of .claude/.codex/.gemini/.cursor map to platform=other.
Fix:
- Keep custom profile IDs for
deployment_profile_id. - Update profile metadata in cache if you want a specific platform label.
Rollback¶
The migration only writes profile metadata and default profile rows. It does not delete artifacts.
If needed, restore deployment tracker files from git/history backups and remove created profile rows from the cache DB.