Repository: withastro/astro
File: packages/astro/src/cli/add/index.ts (TypeScript)

Code before:
		// Pipe this to the same handling as `UpdateResult.updated` for now.
		case UpdateResult.failure:
		case UpdateResult.updated:
		case undefined: {
			const list = integrations
				.map((integration) => `  - ${integration.integrationName}`)
				.join('\n');
			logger.info(
				'SKIP_FORMAT',
				msg.success(
					`Added the following integration${
						integrations.length === 1 ? '' : 's'
					} to your project:\n${list}`,
				),
			);
			if (integrations.find((integration) => integration.integrationName === 'tailwind')) {
				const code = boxen(
					getDiffContent('---\n---', "---\nimport './src/styles/global.css'\n---")!,
					{
						margin: 0.5,
						padding: 0.5,
						borderStyle: 'round',
						title: 'src/layouts/Layout.astro',
					},
				);
				logger.warn('SKIP_FORMAT', msg.actionRequired('You must add the following in a layout:\n'));
				logger.info('SKIP_FORMAT', code + '\n');
			}
		}
	}

	const updateTSConfigResult = await updateTSConfig(cwd, logger, integrations, flags);

	switch (updateTSConfigResult) {
		case UpdateResult.none: {
			break;
		}
		case UpdateResult.cancelled: {
			logger.info(
				'SKIP_FORMAT',
				msg.cancelled(`Your TypeScript configuration has ${bold('NOT')} been updated.`),
			);
			break;
		}
		case UpdateResult.failure: {
			throw new Error(
				`Unknown error parsing tsconfig.json or jsconfig.json. Could not update TypeScript settings.`,
			);
		}
		case UpdateResult.updated:
			logger.info('SKIP_FORMAT', msg.success(`Successfully updated TypeScript settings`));

Review comment (suggestion):
```suggestion
				logger.warn('SKIP_FORMAT', msg.actionRequired('You must import your Tailwind stylesheet, e.g.:\n'));
```
I like how short yours is, but is it *always*, *literally*, *exactly* accurate?  Is it always "copy this exact code in this exact spot?"

Non-blocking, but just a note that you ARE going to get people typing exactly, literally that if you phrase it that way. So be sure that's what you want!

Code after:
		// Pipe this to the same handling as `UpdateResult.updated` for now.
		case UpdateResult.failure:
		case UpdateResult.updated:
		case undefined: {
			const list = integrations
				.map((integration) => `  - ${integration.integrationName}`)
				.join('\n');
			logger.info(
				'SKIP_FORMAT',
				msg.success(
					`Added the following integration${
						integrations.length === 1 ? '' : 's'
					} to your project:\n${list}`,
				),
			);
			if (integrations.find((integration) => integration.integrationName === 'tailwind')) {
				const code = boxen(
					getDiffContent('---\n---', "---\nimport './src/styles/global.css'\n---")!,
					{
						margin: 0.5,
						padding: 0.5,
						borderStyle: 'round',
						title: 'src/layouts/Layout.astro',
					},
				);
				logger.warn('SKIP_FORMAT', msg.actionRequired('You must import your Tailwind stylesheet, e.g. in a shared layout:\n'));
				logger.info('SKIP_FORMAT', code + '\n');
			}
		}
	}

	const updateTSConfigResult = await updateTSConfig(cwd, logger, integrations, flags);

	switch (updateTSConfigResult) {
		case UpdateResult.none: {
			break;
		}
		case UpdateResult.cancelled: {
			logger.info(
				'SKIP_FORMAT',
				msg.cancelled(`Your TypeScript configuration has ${bold('NOT')} been updated.`),
			);
			break;
		}
		case UpdateResult.failure: {
			throw new Error(
				`Unknown error parsing tsconfig.json or jsconfig.json. Could not update TypeScript settings.`,
			);
		}
		case UpdateResult.updated:
			logger.info('SKIP_FORMAT', msg.success(`Successfully updated TypeScript settings`));