Split RepoPrompt into thin executable and app target#437
Conversation
baron
left a comment
There was a problem hiding this comment.
Approved from my review.
I checked the target split from RepoPrompt into a thin executable target plus the internal RepoPromptApp implementation target, including the related Package.swift changes, app entry-point seam, Xcode workspace generator updates, source-layout guardrails, style/lint coverage, docs, and the broad test import retargeting.
This looks mechanically complete and well-guarded:
- the
RepoPromptproduct/binary identity remains intact; - the implementation target keeps the existing app dependencies/settings/bridging-header ownership;
- tests now target
RepoPromptAppinstead of the executable wrapper; - generator and layout guardrails were updated to prevent regression.
I also updated the branch against latest main and fixed the release tooling assertions that still referenced the old Package.swift variable names. A second-opinion review with Claude Fable 5 High found no blocking issues.
Validation now looks good on the updated head: local commit/push preflights passed, make xcode-generator-test passed, make release-selftest passed after the test fix, and hosted CI/Xcode workspace validation are green for the current head.
No blocking findings from me.
Summary
RepoPromptproduct, executable target, emitted binary, bundle, packaging paths, and native product scheme identities unchangedSources/RepoPromptExecutablea one-file@mainshell that delegates to a new internalRepoPromptApplibrary target owning the existing app implementationRepoPromptAppwhile leaving the separateRepoPromptMCPexecutable dependency intactRepoPromptAppremains an internal SwiftPM target; it is not exposed as a new library product or convenience scheme.Validation
Passing validation completed for this implementation:
make dev-lintmake guardrailsmake dev-swift-build PRODUCT=RepoPromptmake dev-swift-build PRODUCT=repoprompt-mcpmake xcode-generator-testmake xcode-validateThe required post-commit
pr-readyinvocation passed its safety phase and coordinated Swift lint. Its full-root lane completed with the order-sensitive failures described below, so the script stopped before repeating the already-passing product-build and generated-Xcode lanes.Full-root test disclosure
Two earlier full-root runs completed but hit unrelated order-sensitive failures in untouched suites. Prompt failures reproduced on clean
main; Agent, Codemap, and DurableArtifact failures passed repeated focused reruns in the implementation checkout.The post-commit
pr-readyrun added a third full-root attempt and likewise completed with Prompt preassembly timeouts plus a Codemap/MCP code-structure assertion. This target split changes test imports/module ownership but does not modify those behaviors.