18 if (capabilities.has('blog')) result.push({ id: 'wix-blog', order: 40, severity: 'blocker', automation: 'automatable', expected: 'Wix Blog is installed', verification: 'app installation state is enabled' });
19 if (hasPosts) result.push({ id: 'blog-fallback-author', order: 50, severity: 'blocker', automation: 'automatable', expected: 'dedicated fallback Blog member exists and WIX_BLOG_FALLBACK_MEMBER_ID is persisted', verification: 'member lookup and config key status' });
24 if (!projectDir) throw new Error('Usage: quick-setup-plan.js <projectDir>');
25 const plan = await readJson(path.join(projectDir, 'quick-mode', 'plan.json'));
26 if (plan.managementImportMode !== 'quick' || !plan.adapter || !Array.isArray(plan.entities)) throw new Error('quick-mode/plan.json is not a valid quick plan');
31 if (mute.errors.length) throw new Error(`notification mute config is invalid: ${mute.errors.map((error) => error.code).join(', ')}`);
32 if (mute.needsAnswer) throw new Error('the operator has not answered whether to mute this existing site\'s notifications (decision notificationMute); ask at intake before setup discovery');
47 const index = requirements.findIndex((item) => item.id === 'mute-site-notifications');
48 requirements.splice(index < 0 ? 0 : index + 1, 0, { id: 'import-site-locale', expected: 'the site locale is verified, applied, or explicitly kept by the owner' });