$ the-wire · showcase
App Doctor reuses Shopify CLI app identity, engine internals go behind operations
By RepoJournal · Filed · About Shopify · Composed from the cited sources · methodology
Shopify CLI is consolidating App Doctor onto the same app-config schemas and identity rules the CLI itself uses, so diagnostics stop drifting from how the CLI resolves and parses an app.
App Doctor previously walked up the tree looking for `shopify.app*.toml` and parsed access, auth, and webhook subscriptions with its own schemas and fallbacks, which could disagree with the CLI as those rules change [1]. It now shares CLI app-config identity, `isValidFormatAppConfigurationFileName` and `APP_CONFIG_FILE_GLOB`, across Project discovery, config-file prompts, and App Doctor, and parses those sections with the CLI schemas [1].
The same effort shrinks the CLI's surface into the engine. App Doctor CLI services used to import scanners, check registries, merge helpers, trace validators, and redaction functions directly, so engine changes rippled into command-layer files [2]. The CLI now consumes only the operations it needs: locate an app, scan, parse and compile findings, parse a stored trace, build a submission, and load agent instructions, with compile, merge, and findings-parse moved into the engine [2]. The follow-on cleanup removes unused exports knip flagged: `sortIssues` moved into CLI output, `FindingsDocument` is no longer re-exported from the CLI adapter, and the unused Trace v1 type is gone with the public API shrink [3].
On the tooling side, the repo gains a scheduled maintenance workflow. A Claude workflow creates draft PRs for refactors and tests daily at 00:00 UTC, plus performance and security work on Mondays, and shares them in `#devtools-gardener-backlog`; all four tasks can also run manually [4]. It replaces the current Jules approach [4], and the workflow PR has already merged [5].
No breaking CLI surface change is described here; the effects land on App Doctor's parsing behavior and on the module boundaries internal to the CLI [1] [2] [3].
Action items
- → Check any App Doctor or config-prompt behavior that relied on a diverging TOML parse before shipping dependent changes Shopify/cli [plan]
- → Update CLI imports that pulled scanners, check registries, merge helpers, trace validators, or redaction functions from the App Doctor engine Shopify/cli [plan]
- → Expect daily refactor and test draft PRs at 00:00 UTC, with performance and security drafts on Mondays Shopify/cli [monitor]
References
- [1] Reuse Shopify CLI app identity and config schemas in App Doctor ↗ Shopify/cli
- [2] Keep App Doctor engine internals behind scan, compile, and submit operations ↗ Shopify/cli
- [3] Remove unused App Doctor exports that knip flags. ↗ Shopify/cli
- [4] Add scheduled maintenance PR workflow ↗ Shopify/cli
- [5] Merge pull request #8509 from Shopify/add-maintenance-prs-workflow ↗ Shopify/cli