Skip to content

chore(#5864)!: remove migrate-customizations command - #5866

Merged
ggallen merged 1 commit into
mainfrom
agent/5864-remove-migrate-customizations
Aug 5, 2026
Merged

chore(#5864)!: remove migrate-customizations command#5866
ggallen merged 1 commit into
mainfrom
agent/5864-remove-migrate-customizations

Conversation

@fullsend-ai-coder

@fullsend-ai-coder fullsend-ai-coder Bot commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

Summary

Remove the fullsend agent migrate-customizations command, which became dead code after the customized/ directory overlay mechanism was fully removed (PRs #5697 and #5836). With no overlay to migrate from, the command has nothing meaningful to do.

Changes

  • Delete internal/cli/migrate.go (~504 lines) and internal/cli/migrate_test.go (~759 lines)
  • Remove subcommand registration from internal/cli/agent.go and update assertion in agent_test.go
  • Remove CLI reference documentation (docs/cli/agent.md migrate-customizations section, docs/cli/README.md index entry)
  • Remove migration guidance from user-facing docs (bring-your-own-agent, building-custom-agents, customizing-agents)
  • Remove deprecation callouts referencing the command (review.md, triage.md)
  • Remove references from architecture.md, runtimes.md, doc-site.md, cli-internals.md, operations.md
  • Annotate (not rewrite) cross-references in ADRs 0045, 0058, 0064 and implementation plans to note the command's removal

Testing

  • go build ./... passes
  • go vet ./internal/cli/... passes
  • Agent-related tests pass (TestNewAgentCmd_HasSubcommands updated from 5 to 4 subcommands)
  • No remaining references to the command outside of annotated historical docs

Closes #5864

BREAKING CHANGE: The fullsend agent migrate-customizations CLI command has been removed. Users who relied on this command should use config-driven agent registration instead.

Post-script verification

  • Branch is not main/master (agent/5864-remove-migrate-customizations)
  • Secret scan passed (gitleaks — d41ac6c2266bcf4bb71c816cdd14440dca19e2b6..HEAD)
  • PR body secret scan passed (gitleaks — no-git)

@fullsend-ai-coder
fullsend-ai-coder Bot requested a review from a team as a code owner August 3, 2026 17:05
@fullsend-ai-coder fullsend-ai-coder Bot added the ready-for-review Triggers review agent dispatch label Aug 3, 2026
@fullsend-ai-review

fullsend-ai-review Bot commented Aug 3, 2026

Copy link
Copy Markdown

🤖 Finished Review · ✅ Success · Started 5:07 PM UTC · Completed 5:26 PM UTC
Commit: 65e6b58 · View workflow run →

@github-actions

github-actions Bot commented Aug 3, 2026

Copy link
Copy Markdown

Site preview

Preview: https://0eec55eb-site.fullsend-ai.workers.dev

Commit: 1f6890d451ee017edd30339c1d8b036662ed566e

@codecov

codecov Bot commented Aug 3, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@fullsend-ai-review

fullsend-ai-review Bot commented Aug 3, 2026

Copy link
Copy Markdown

Review

Findings

Medium

  • [protected-path] AGENTS.md — This PR modifies AGENTS.md, which is a protected governance file requiring human approval. The change updates the Harness Composition table entry to remove the reference to the deleted internal/cli/migrate.go. The linked issue (Remove fullsend agent migrate-customizations command (ADR-0064 cleanup) #5864) authorizes this change as part of the migrate-customizations command removal, and the rationale is clear. Human approval is still required for protected-path changes.
Previous run

Review

Findings

High

  • [stale-reference] docs/contributing/harness-composition.md:12 — Document extensively references the deleted migrate-customizations CLI command and functions from internal/cli/migrate.go (deleted by this PR). The "Path-rewriting side (migration)" table (lines 50–56) lists rewriteCustomizedPaths, rewriteEnvMap, rewriteHarnessContent from the deleted file. Explanatory text (lines 12–17, 78–79), reviewer checklist items (lines 96–101, 108–109), and Related section (line 119) all reference code that no longer exists. The document's core invariant ("merge functions must be mirrored in path-rewriting functions") is no longer valid because the path-rewriting side has been deleted.
    Remediation: Update docs/contributing/harness-composition.md to remove or annotate the "Path-rewriting side" section and all references to deleted code. The bidirectional invariant is now unidirectional (merge functions only).

Medium

  • [stale-reference] AGENTS.md:32 — Contributing guide table references internal/cli/migrate.go in the description for Harness Composition: "Changing merge or path-rewriting functions in internal/harness/ or internal/cli/migrate.go". The file is deleted by this PR.
    Remediation: Update the description to remove the internal/cli/migrate.go reference.

Low


Next steps:

  • /fs-fix — agent addresses review findings automatically
  • /fs-fix <your instruction> — agent fixes with your specific guidance
  • Push commits directly — review re-runs automatically on push
  • /fs-fix-stop — disable automatic fix runs for this PR
Previous run (2)

Review

Findings

Low

  • [version-bump-policy] — The removal of the migrate-customizations CLI command is a breaking change in the CLI surface. The PR correctly marks this with ! in the commit message title and includes a BREAKING CHANGE: footer. The command was a migration tool for a mechanism that no longer exists — it would be a no-op even if retained.
Previous run (3)

Looks good to me

Previous run (4)

Review

Findings

Medium

  • [stale-reference] docs/glossary.md:57 — The glossary entry for "Customized Directory" still states "fullsend agent migrate-customizations automates conversion," referencing a command deleted in this PR. This file is not in the PR's changed file list, so users reading the glossary will be directed to a non-existent command.
    Remediation: Update the glossary entry to remove the reference to migrate-customizations and instead point to config-driven agent registration.

Low

  • [breaking-change-trailer] — COMMITS.md requires both the ! suffix (now present in the PR title) and a BREAKING CHANGE: trailer in the commit body explaining what breaks and how to migrate. The PR body does not currently contain this trailer.
    Remediation: Add a BREAKING CHANGE: trailer to the PR body, e.g.: BREAKING CHANGE: The fullsend agent migrate-customizations command has been removed. Users who relied on this command should use config-driven agent registration instead.
Previous run (5)

Review

Findings

Critical

Medium

  • [stale-reference] docs/guides/dev/cli-internals.md:642 — The source file table still lists internal/cli/migrate.go | ~520 | Migrate customized/ overrides to config-driven agents. This file is deleted in this PR but the table entry was not removed (the diff only touches lines ~76–82, ~119–124, and ~223–230 in the PR head).
    Remediation: Delete the internal/cli/migrate.go row from the source file table.

  • [stale-reference] docs/plans/agent-extraction-to-agents-repo.md:679 — Says *(still used by migrate.go)* but migrate.go is deleted in this PR. This file is not in the PR's changed file list.
    Remediation: Update to *(migrate.go removed — #5864)*.

  • [breaking-change-unmarked] — Removing a CLI command is a breaking change per COMMITS.md ("a field, flag, command, or API endpoint is removed or renamed"). The PR title uses the chore prefix without the ! suffix required by AGENTS.md for breaking changes.
    Remediation: Update the PR title to chore(#5864)!: remove migrate-customizations command and add a BREAKING CHANGE: trailer.

Low

  • [plan-deviation] — ADR-0064's implementation plan defines "PR 5: Final cleanup and grep sweep" as depending on all prior PRs. This PR proceeds before PRs 2 and 3 (chore(#5824): remove CUSTOM_BASE overlay loop from reusable workflows #5836, chore(#5694): remove deprecated customized/ scaffold #5697) have merged.

  • [test-consistency] internal/cli/agent_test.go:1212 — The removed migrate-customizations subcommand lacks a negative assertion documenting its removal. The established pattern in TestAdminCommand_HasSubcommands adds negative assertions for removed commands to prevent accidental re-addition.
    Remediation: Add assert.NotContains(t, names, "migrate-customizations", "should not exist — removed per ADR-0064").


Labels: PR removes CLI code and updates extensive documentation across docs/


Next steps:

  • /fs-fix — agent addresses review findings automatically
  • /fs-fix <your instruction> — agent fixes with your specific guidance
  • Push commits directly — review re-runs automatically on push
  • /fs-fix-stop — disable automatic fix runs for this PR

fullsend-ai-review[bot]

This comment was marked as outdated.

@fullsend-ai-review fullsend-ai-review Bot added component/docs User-facing documentation tech-debt labels Aug 3, 2026
@ggallen ggallen changed the title chore(#5864): remove migrate-customizations command chore(#5864)!: remove migrate-customizations command Aug 4, 2026
@ggallen
ggallen force-pushed the agent/5864-remove-migrate-customizations branch from 65e6b58 to 8073218 Compare August 4, 2026 19:54
@fullsend-ai-review

fullsend-ai-review Bot commented Aug 4, 2026

Copy link
Copy Markdown

🤖 Finished Review · ✅ Success · Started 7:55 PM UTC · Completed 8:07 PM UTC
Commit: 8073218 · View workflow run →

@fullsend-ai-review
fullsend-ai-review Bot dismissed their stale review August 4, 2026 20:07

Superseded by updated review

@fullsend-ai-review fullsend-ai-review Bot added the requires-manual-review Review requires human judgment label Aug 4, 2026
@ggallen
ggallen force-pushed the agent/5864-remove-migrate-customizations branch from 8073218 to bcd0e94 Compare August 4, 2026 20:10
@fullsend-ai-review

fullsend-ai-review Bot commented Aug 4, 2026

Copy link
Copy Markdown

🤖 Finished Review · ✅ Success · Started 8:11 PM UTC · Completed 8:24 PM UTC
Commit: bcd0e94 · View workflow run →

fullsend-ai-review[bot]

This comment was marked as outdated.

@fullsend-ai-review fullsend-ai-review Bot added ready-for-merge All reviewers approved — ready to merge and removed requires-manual-review Review requires human judgment labels Aug 4, 2026
@ggallen
ggallen force-pushed the agent/5864-remove-migrate-customizations branch from bcd0e94 to 86b7324 Compare August 4, 2026 20:55
@fullsend-ai-review

fullsend-ai-review Bot commented Aug 4, 2026

Copy link
Copy Markdown

🤖 Finished Review · ✅ Success · Started 8:56 PM UTC · Completed 9:13 PM UTC
Commit: 86b7324 · View workflow run →

fullsend-ai-review[bot]

This comment was marked as outdated.

@ggallen
ggallen force-pushed the agent/5864-remove-migrate-customizations branch from 86b7324 to 1ed9257 Compare August 5, 2026 13:02
@fullsend-ai-review

fullsend-ai-review Bot commented Aug 5, 2026

Copy link
Copy Markdown

🤖 Finished Review · ✅ Success · Started 1:03 PM UTC · Completed 1:24 PM UTC
Commit: 1ed9257 · View workflow run →

fullsend-ai-review[bot]

This comment was marked as outdated.

@fullsend-ai-review fullsend-ai-review Bot removed the ready-for-merge All reviewers approved — ready to merge label Aug 5, 2026
Remove the fullsend agent migrate-customizations command, which became
dead code after the customized/ directory overlay mechanism was fully
removed (PRs #5697 and #5836). With no overlay to migrate from, the
command has nothing meaningful to do.

- Delete internal/cli/migrate.go and internal/cli/migrate_test.go
- Remove subcommand registration from internal/cli/agent.go
- Update agent_test.go assertion and add negative assertion
- Remove CLI reference documentation and migration guidance
- Remove stale migrate.go references from docs
- Annotate cross-references in ADRs to note the command's removal

BREAKING CHANGE: The `fullsend agent migrate-customizations` CLI command
has been removed. Users who have already migrated to config-driven agents
are unaffected.

Closes #5864

Signed-off-by: Claude <noreply@anthropic.com>
Signed-off-by: Greg Allen <gallen@redhat.com>
@ggallen
ggallen force-pushed the agent/5864-remove-migrate-customizations branch from 1ed9257 to 1f6890d Compare August 5, 2026 13:28
@fullsend-ai-review

fullsend-ai-review Bot commented Aug 5, 2026

Copy link
Copy Markdown

🤖 Finished Review · ✅ Success · Started 1:29 PM UTC · Completed 1:43 PM UTC
Commit: 1f6890d · View workflow run →

@fullsend-ai-review
fullsend-ai-review Bot dismissed their stale review August 5, 2026 13:43

Superseded by updated review

@fullsend-ai-review fullsend-ai-review Bot added the requires-manual-review Review requires human judgment label Aug 5, 2026
@ggallen
ggallen added this pull request to the merge queue Aug 5, 2026
Merged via the queue into main with commit ad9b3ce Aug 5, 2026
18 checks passed
@ggallen
ggallen deleted the agent/5864-remove-migrate-customizations branch August 5, 2026 19:30
@fullsend-ai-retro

fullsend-ai-retro Bot commented Aug 5, 2026

Copy link
Copy Markdown

🤖 Finished Retro · ✅ Success · Started 7:32 PM UTC · Completed 7:51 PM UTC
Commit: 1f6890d · View workflow run →

@fullsend-ai-retro

Copy link
Copy Markdown

Retro: PR #5866 — Remove migrate-customizations command

Timeline

  1. Issue Remove fullsend agent migrate-customizations command (ADR-0064 cleanup) #5864 opened (Aug 3, 15:28) — requested removal of the dead fullsend agent migrate-customizations CLI command after PRs chore(#5694): remove deprecated customized/ scaffold #5697 and chore(#5824): remove CUSTOM_BASE overlay loop from reusable workflows #5836 removed its underlying mechanism.
  2. Triage agent (15:28–15:31) — correctly identified the issue as blocked on prerequisite PRs.
  3. Human /fs-code (16:50) — ggallen triggered the code agent despite the blocked label, a deliberate override knowing prerequisites were close to merging.
  4. Code agent (16:50–17:06, ~16 min) — produced a 21-file commit deleting migrate.go, migrate_test.go, updating the subcommand registration, and cleaning references across CLI docs, user guides, architecture docs, ADRs, and plans.
  5. Review run 1 (17:06–17:26) — found Critical (prerequisites still open), Medium (stale refs in cli-internals.md, agent-extraction-to-agents-repo.md), and Low (breaking change unmarked, plan deviation, missing negative test assertion). Submitted CHANGES_REQUESTED.
  6. Fix agent run 1 (17:26–17:27) — failed immediately due to #5536: the [bot]$ regex doesn't match app/fullsend-ai-coder, so the workflow treated the bot-authored PR as human-authored and skipped without the fullsend-fix label.
  7. Human iteration (Aug 3–5) — ggallen manually fixed all review findings across 5+ force-pushes over 2 days, adding 5 files the code agent missed (AGENTS.md, harness-composition.md, glossary.md, agent-extraction-to-agents-repo.md, deprecate-per-org-install.md).
  8. Review runs 2–6 — progressively found and resolved remaining issues. Run 3 was LGTM, run 4 was informational-only. Run 5 found HIGH stale refs in harness-composition.md (added by human but incompletely cleaned). Run 6 flagged protected-path governance on AGENTS.md.
  9. Fix agent run 2 (Aug 5, 13:25) — failed again with the same Fix agent eligibility check misidentifies bot-authored PRs as human-authored #5536 bug.
  10. Human approvals — ggallen (Aug 4, 22:00) and rh-hemartin (Aug 5, 07:14) approved.
  11. Merged via merge queue (Aug 5, 19:30).

What went well

  • Review agent quality was strong. It caught real issues across 6 iterations: missing prerequisites, stale references the code agent missed, unmarked breaking changes, and protected-path governance. Findings converged properly — later runs found progressively fewer/smaller issues.
  • Code agent produced a competent initial output. 21 files changed in ~16 minutes, correctly deleting the Go source, tests, CLI docs, and most cross-references. The commit message, PR structure, and issue linkage were all correct.
  • Triage agent correctly identified the blocked status. The review agent also independently flagged the prerequisite concern on run 1.

What could go better

  • Fix agent failed twice, forcing 2 days of manual iteration. Both failures traced to #5536 (bot-author misidentification). With no PR comment explaining the failure (#5863), the human had no signal that the fix agent wasn't running. If the fix agent had worked, the stale-reference findings from review runs 1–2 could have been auto-fixed, potentially reducing 6 review iterations to 2–3.
  • Code agent missed 5 of 26 files that needed updating. Despite issue Remove fullsend agent migrate-customizations command (ADR-0064 cleanup) #5864 providing an exhaustive inventory, the agent didn't touch AGENTS.md, harness-composition.md, glossary.md, agent-extraction-to-agents-repo.md, or deprecate-per-org-install.md. All contained stale references to the removed command. A post-change grep sweep for variants like migrate-customizations, migrate.go, path-rewriting, and related function names would have caught these. This is evidence for #1794, which proposes grep-verify completeness for rename tasks — the same principle applies to deletion/removal tasks.

Existing issues supported by this evidence

No new proposals

All identified improvement opportunities are already tracked by open issues. The most impactful fix would be #5536, which is marked priority/high and ready-to-code — resolving it would have prevented the 2-day manual iteration cycle on this PR.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

component/docs User-facing documentation ready-for-review Triggers review agent dispatch requires-manual-review Review requires human judgment tech-debt

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Remove fullsend agent migrate-customizations command (ADR-0064 cleanup)

2 participants