mirror of
https://github.com/forcedotcom/afv-library.git
synced 2026-07-30 11:43:26 +08:00
Split generating-webapp-metadata into single-purpose skills
Extract the deployment sequence into a new deploying-webapp skill so each webapp skill describes exactly one actionable goal. This improves agent skill selection accuracy by eliminating multi-concern descriptions. - generating-webapp-metadata: now focused on scaffolding, bundle config, CSP - deploying-webapp: new skill for the 7-step deployment sequence
This commit is contained in:
parent
5a52a8a6ec
commit
0f2cd610e5
77
skills/deploying-webapp/SKILL.md
Normal file
77
skills/deploying-webapp/SKILL.md
Normal file
@ -0,0 +1,77 @@
|
||||
---
|
||||
name: deploying-webapp
|
||||
description: "Deploy a Salesforce web application to an org — the full deployment sequence including org authentication, pre-deploy build, metadata deployment, permission set assignment, data import, GraphQL schema fetch, and codegen. Use whenever the user wants to deploy, push to org, assign permission sets, import data, fetch GraphQL schema, run codegen, or set up an org after development. Triggers on: deploy, push to org, deploy metadata, assign permission set, import data, schema fetch, codegen, org auth, authenticate org, build and deploy, post-deploy, org setup."
|
||||
---
|
||||
|
||||
# Deploying a Web Application
|
||||
|
||||
The order of operations is critical when deploying to a Salesforce org. This sequence reflects the canonical flow.
|
||||
|
||||
## Step 1: Org Authentication
|
||||
|
||||
Check if the org is connected. If not, authenticate. All subsequent steps require an authenticated org.
|
||||
|
||||
## Step 2: Pre-deploy Webapp Build
|
||||
|
||||
Install dependencies and build the webapp to produce `dist/`. Required before deploying web application entities.
|
||||
|
||||
Run when: deploying web apps and `dist/` is missing or source has changed.
|
||||
|
||||
## Step 3: Deploy Metadata
|
||||
|
||||
Check for a manifest (`manifest/package.xml` or `package.xml`) first. If present, deploy using the manifest. If not, deploy all metadata from the project.
|
||||
|
||||
Deploys objects, layouts, permission sets, Apex classes, web applications, and all other metadata. Must complete before schema fetch — the schema reflects org state.
|
||||
|
||||
## Step 4: Post-deploy Configuration
|
||||
|
||||
Deploying does not mean assigning. After deployment:
|
||||
|
||||
- **Permission sets / groups** — assign to users so they have access to custom objects and fields. Required for GraphQL introspection to return the correct schema.
|
||||
- **Profiles** — ensure users have the correct profile.
|
||||
- **Other config** — named credentials, connected apps, custom settings, flow activation.
|
||||
|
||||
Proactive behavior: after a successful deploy, discover permission sets in `force-app/main/default/permissionsets/` and assign each one (or ask the user).
|
||||
|
||||
## Step 5: Data Import (optional)
|
||||
|
||||
Only if `data/data-plan.json` exists. Delete runs in reverse plan order (children before parents). Import uses Anonymous Apex with duplicate rule save enabled.
|
||||
|
||||
Always ask the user before importing or cleaning data.
|
||||
|
||||
## Step 6: GraphQL Schema and Codegen
|
||||
|
||||
1. Set default org
|
||||
2. Fetch schema (GraphQL introspection) — writes `schema.graphql` at project root
|
||||
3. Generate types (codegen reads schema locally)
|
||||
|
||||
Run when: schema missing, or metadata/permissions changed since last fetch.
|
||||
|
||||
## Step 7: Final Webapp Build
|
||||
|
||||
Build the webapp if not already done in Step 2.
|
||||
|
||||
## Summary: Interaction Order
|
||||
|
||||
1. Check/authenticate org
|
||||
2. Build webapp (if deploying web apps)
|
||||
3. Deploy metadata
|
||||
4. Assign permissions and configure
|
||||
5. Import data (if data plan exists, with user confirmation)
|
||||
6. Fetch GraphQL schema and run codegen
|
||||
7. Build webapp (if needed)
|
||||
|
||||
## Critical Rules
|
||||
|
||||
- Deploy metadata **before** fetching schema — custom objects/fields appear only after deployment
|
||||
- Assign permissions **before** schema fetch — the user may lack FLS for custom fields
|
||||
- Re-run schema fetch and codegen **after every metadata deployment** that changes objects, fields, or permissions
|
||||
- Never skip permission set assignment or data import silently — either run them or ask the user
|
||||
|
||||
## Post-deploy Checklist
|
||||
|
||||
After every successful metadata deploy:
|
||||
|
||||
1. Discover and assign permission sets (or ask the user)
|
||||
2. If `data/data-plan.json` exists, ask the user about data import
|
||||
3. Re-run schema fetch and codegen from the webapp directory
|
||||
@ -1,6 +1,6 @@
|
||||
---
|
||||
name: generating-webapp-metadata
|
||||
description: "Scaffold new Salesforce web applications and configure/deploy their metadata — sf webapp generate, WebApplication bundles (meta XML, webapplication.json with routing/headers/outputDir), CSP Trusted Sites for external domains, and the full deployment sequence (org auth, build, deploy, permset assign, data import, GraphQL schema fetch, codegen). Use whenever creating a new webapp, setting up webapp metadata structure, adding external domains that need CSP registration, deploying to a Salesforce org, assigning permission sets, fetching GraphQL schema, or running codegen. Triggers on: create webapp, new app, sf webapp generate, deploy, metadata, webapplication.json, CSP, trusted site, permission set, schema fetch, codegen, org setup, bundle configuration, meta XML, routing config, external domain."
|
||||
description: "Scaffold new Salesforce web applications and configure their metadata — sf webapp generate, WebApplication bundles (meta XML, webapplication.json with routing/headers/outputDir), and CSP Trusted Sites for external domains. Use whenever creating a new webapp, setting up webapp metadata structure, configuring routing or headers, setting outputDir, adding external domains that need CSP registration, or editing bundle configuration. Triggers on: create webapp, new app, sf webapp generate, metadata, webapplication.json, CSP, trusted site, bundle configuration, meta XML, routing config, external domain, headers config, outputDir."
|
||||
---
|
||||
|
||||
# Web Application Metadata
|
||||
@ -104,77 +104,3 @@ Always also set `isApplicableToConnectSrc` to `true` for preflight/redirect hand
|
||||
|
||||
4. **Create the metadata file** — follow `implementation/csp-metadata-format.md` for the `.cspTrustedSite-meta.xml` format. Place in `force-app/main/default/cspTrustedSites/`.
|
||||
|
||||
---
|
||||
|
||||
## Deployment Sequence
|
||||
|
||||
The order of operations is critical when deploying to a Salesforce org. This sequence reflects the canonical flow.
|
||||
|
||||
### Step 1: Org Authentication
|
||||
|
||||
Check if the org is connected. If not, authenticate. All subsequent steps require an authenticated org.
|
||||
|
||||
### Step 2: Pre-deploy Webapp Build
|
||||
|
||||
Install dependencies and build the webapp to produce `dist/`. Required before deploying web application entities.
|
||||
|
||||
Run when: deploying web apps and `dist/` is missing or source has changed.
|
||||
|
||||
### Step 3: Deploy Metadata
|
||||
|
||||
Check for a manifest (`manifest/package.xml` or `package.xml`) first. If present, deploy using the manifest. If not, deploy all metadata from the project.
|
||||
|
||||
Deploys objects, layouts, permission sets, Apex classes, web applications, and all other metadata. Must complete before schema fetch — the schema reflects org state.
|
||||
|
||||
### Step 4: Post-deploy Configuration
|
||||
|
||||
Deploying does not mean assigning. After deployment:
|
||||
|
||||
- **Permission sets / groups** — assign to users so they have access to custom objects and fields. Required for GraphQL introspection to return the correct schema.
|
||||
- **Profiles** — ensure users have the correct profile.
|
||||
- **Other config** — named credentials, connected apps, custom settings, flow activation.
|
||||
|
||||
Proactive behavior: after a successful deploy, discover permission sets in `force-app/main/default/permissionsets/` and assign each one (or ask the user).
|
||||
|
||||
### Step 5: Data Import (optional)
|
||||
|
||||
Only if `data/data-plan.json` exists. Delete runs in reverse plan order (children before parents). Import uses Anonymous Apex with duplicate rule save enabled.
|
||||
|
||||
Always ask the user before importing or cleaning data.
|
||||
|
||||
### Step 6: GraphQL Schema and Codegen
|
||||
|
||||
1. Set default org
|
||||
2. Fetch schema (GraphQL introspection) — writes `schema.graphql` at project root
|
||||
3. Generate types (codegen reads schema locally)
|
||||
|
||||
Run when: schema missing, or metadata/permissions changed since last fetch.
|
||||
|
||||
### Step 7: Final Webapp Build
|
||||
|
||||
Build the webapp if not already done in Step 2.
|
||||
|
||||
### Summary: Interaction Order
|
||||
|
||||
1. Check/authenticate org
|
||||
2. Build webapp (if deploying web apps)
|
||||
3. Deploy metadata
|
||||
4. Assign permissions and configure
|
||||
5. Import data (if data plan exists, with user confirmation)
|
||||
6. Fetch GraphQL schema and run codegen
|
||||
7. Build webapp (if needed)
|
||||
|
||||
### Critical Rules
|
||||
|
||||
- Deploy metadata **before** fetching schema — custom objects/fields appear only after deployment
|
||||
- Assign permissions **before** schema fetch — the user may lack FLS for custom fields
|
||||
- Re-run schema fetch and codegen **after every metadata deployment** that changes objects, fields, or permissions
|
||||
- Never skip permission set assignment or data import silently — either run them or ask the user
|
||||
|
||||
### Post-deploy Checklist
|
||||
|
||||
After every successful metadata deploy:
|
||||
|
||||
1. Discover and assign permission sets (or ask the user)
|
||||
2. If `data/data-plan.json` exists, ask the user about data import
|
||||
3. Re-run schema fetch and codegen from the webapp directory
|
||||
|
||||
Loading…
Reference in New Issue
Block a user