Skip to content

tapps_upgrade overwrites project-specific customizations without merge strategy #86

Description

@wtthornton

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:

  1. Marker-based sections — allow <!-- tapps-custom-start --> / <!-- tapps-custom-end --> blocks that survive regeneration
  2. Override files — support .tapps-mcp-overrides/ directory with patches applied after template generation
  3. Diff-and-prompt — detect custom changes vs template, show diff, ask before overwriting
  4. Section-level controltapps_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

  1. Run tapps_init in a project
  2. Customize CLAUDE.md (e.g., extract TAPPS pipeline to a scoped rules file)
  3. Run tapps_upgrade
  4. Observe: all customizations are overwritten

Metadata

Metadata

Assignees

No one assigned

    Labels

    P1High priorityenhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions