diff --git a/skills/generating-experience-lwr-site/SKILL.md b/skills/generating-experience-lwr-site/SKILL.md index adbaff3..5fe3349 100644 --- a/skills/generating-experience-lwr-site/SKILL.md +++ b/skills/generating-experience-lwr-site/SKILL.md @@ -212,10 +212,16 @@ Use `sf` CLI to validate and deploy. Access help docs by attaching `--help`, e.g - `sf project deploy --help` - `sf project deploy validate --help` -Note that metadata types are space-delimited. +Note that metadata types are space-delimited. **Never** wrap them in quotes or use commas. For example, `--metadata "DigitalExperienceBundle DigitalExperience"` is **incorrect** — always use `--metadata DigitalExperienceBundle DigitalExperience`. **Validate**: -`sf project deploy validate --metadata DigitalExperienceBundle DigitalExperience DigitalExperienceConfig Network CustomSite --target-org ${usernameOrAlias}` + +```bash +sf project deploy validate --metadata DigitalExperienceBundle DigitalExperience DigitalExperienceConfig Network CustomSite --target-org ${usernameOrAlias} +``` **Deploy**: -`sf project deploy start --metadata DigitalExperienceBundle DigitalExperience DigitalExperienceConfig Network CustomSite --target-org ${usernameOrAlias}` + +```bash +sf project deploy start --metadata DigitalExperienceBundle DigitalExperience DigitalExperienceConfig Network CustomSite --target-org ${usernameOrAlias} +``` diff --git a/skills/generating-experience-lwr-site/docs/bootstrap-template-byo-lwr.md b/skills/generating-experience-lwr-site/docs/bootstrap-template-byo-lwr.md index 285955f..8bf6ee7 100644 --- a/skills/generating-experience-lwr-site/docs/bootstrap-template-byo-lwr.md +++ b/skills/generating-experience-lwr-site/docs/bootstrap-template-byo-lwr.md @@ -18,11 +18,66 @@ Ask user to choose: ### Option 1: Create in Org +**Step 1:** Run the create command: + ```bash -sf community create --name "{siteName}" --template-name 'Build Your Own (LWR)' --url-path-prefix "{prefix}" +sf community create --name "{siteName}" --template-name 'Build Your Own (LWR)' --url-path-prefix "{prefix}" --target-org {usernameOrAlias} --json ``` -After creation, retrieve metadata using sf CLI. +Site creation is an async job. As soon as the terminal returns output, capture the `jobId` and move on — do not wait for the shell command to fully exit. + +**Step 2:** Ask the user: *"Would you like me to wait for the site creation to complete and then retrieve the metadata for you, or would you prefer to retrieve it yourself once it's ready?"* + +**Stop here and wait for the user's response before proceeding.** + +--- + +**If the user wants to wait and retrieve:** + +Poll the `BackgroundOperation` object using the following command, replacing `{jobId}` with the ID returned from the create command: + +```soql +SELECT Status FROM BackgroundOperation WHERE Id = '{jobId}' +``` + +Use the MCP tool `run_soql_query` to run this query on the given target org. If the MCP tool is not available, run the following command instead, replacing `{jobId}` and `{usernameOrAlias}` with the appropriate values: + +```bash +sf data query --query "SELECT Status FROM BackgroundOperation WHERE Id = '{jobId}'" --target-org {usernameOrAlias} --json +``` + +Repeat until `Status` is `Complete`. If the query does not return `Complete` after several attempts, ask the user to manually check their target org to confirm whether site creation has completed. **Stop here and do not proceed until the user confirms the site is ready.** + +Once complete, run each of the following retrieval commands **one at a time**. Do not chain them together (e.g. do not use `&&`). Wait for each command to return output before running the next. Metadata types are space-delimited — **never** wrap them in quotes or use commas: + +```bash +sf project retrieve start --metadata DigitalExperienceBundle --target-org {usernameOrAlias} --json +``` + +```bash +sf project retrieve start --metadata DigitalExperienceConfig --target-org {usernameOrAlias} --json +``` + +```bash +sf project retrieve start --metadata Network --target-org {usernameOrAlias} --json +``` + +```bash +sf project retrieve start --metadata CustomSite --target-org {usernameOrAlias} --json +``` + +--- + +**If the user wants to retrieve themselves:** + +Provide them with the retrieval command to run once the site is ready. Metadata types are space-delimited — **never** wrap them in quotes or use commas: + +```bash +sf project retrieve start --metadata DigitalExperienceBundle DigitalExperienceConfig Network CustomSite --target-org {usernameOrAlias} --json +``` + +--- + ### Option 2: Scaffold Locally