Problem
tapps_upgrade uses a full-overwrite strategy for all generated files (CLAUDE.md, AGENTS.md, skills, agents, copilot-instructions, rules). Projects that customize these files to reflect their own architecture (e.g., replacing deprecated tool references with native agent catalog routing) lose those changes on every upgrade.
Current Behavior
Running tapps_upgrade after upgrading to v2.3.0:
- Overwrote a trimmed 70-line CLAUDE.md back to the 168-line template
- Reverted deprecation framing in 10 files (skills, agents, copilot-instructions, rules)
- Required manual re-application of all project-specific edits
Expected Behavior
tapps_upgrade should support a merge strategy that preserves project-specific customizations. Options:
- Marker-based sections — allow
<!-- tapps-custom-start --> / <!-- tapps-custom-end --> blocks that survive regeneration
- Override files — support
.tapps-mcp-overrides/ directory with patches applied after template generation
- Diff-and-prompt — detect custom changes vs template, show diff, ask before overwriting
- Section-level control —
tapps_upgrade config in .tapps-mcp.yaml to skip specific files or sections
Impact
Every project that customizes generated files must re-apply edits after every upgrade. This is the #1 friction point in the upgrade workflow.
Reproduction
- Run
tapps_init in a project
- Customize CLAUDE.md (e.g., extract TAPPS pipeline to a scoped rules file)
- Run
tapps_upgrade
- Observe: all customizations are overwritten
Problem
tapps_upgradeuses a full-overwrite strategy for all generated files (CLAUDE.md, AGENTS.md, skills, agents, copilot-instructions, rules). Projects that customize these files to reflect their own architecture (e.g., replacing deprecated tool references with native agent catalog routing) lose those changes on every upgrade.Current Behavior
Running
tapps_upgradeafter upgrading to v2.3.0:Expected Behavior
tapps_upgradeshould support a merge strategy that preserves project-specific customizations. Options:<!-- tapps-custom-start -->/<!-- tapps-custom-end -->blocks that survive regeneration.tapps-mcp-overrides/directory with patches applied after template generationtapps_upgradeconfig in.tapps-mcp.yamlto skip specific files or sectionsImpact
Every project that customizes generated files must re-apply edits after every upgrade. This is the #1 friction point in the upgrade workflow.
Reproduction
tapps_initin a projecttapps_upgrade