* W-21672186: Migrate mobile rental app to data providers and design tokens
* Update rental app home screen to use CamaDataService
Replace PortalService with CamaDataService and remove cama_dev namespace for all data providers in the home screen.
---------
Co-authored-by: gbockus-sf <76090802+gbockus-sf@users.noreply.github.com>
* 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
* Rename -webapp- skill directories and references to -webapplication-
Rename all 7 webapp skill directories to use the full "webapplication"
entity name. Update frontmatter name fields, cross-skill references,
and descriptive prose. Package names and CLI commands are preserved
as-is since those are actual identifiers.
* Removed prompts folder; no longer needed
* Removed various folders in rules (except experts global rule); no longer needed
* Updated README file, removed lots of extraneous text
* Add instructions to create commerce b2b store from vibes
* update rule and sf commands
* Refactor Commerce B2B skill: rename and flatten directory structure
- Rename skill from create-b2b-commerce-storefront to creating-b2b-commerce-store to better reflect what users actually create (the Store, not the Storefront)
- Flatten directory from skills/commerce/create-b2b-commerce-storefront/ to skills/creating-b2b-commerce-store/ to match repository pattern
- Remove old prompts and rules consolidated into skill
- Remove Commerce prompt and rule entries from manifest.json (consolidated into skill)
fix: use glob pattern in .gitignore to track sample lib/ folders
The lib/ negation rules had incorrect webapp folder names
(appreactsampleb2e/appreactsampleb2x instead of
propertymanagementapp/propertyrentalapp), causing the sample lib/
directories to remain git-ignored. Replaced with a simpler
!samples/**/lib/ glob that is resilient to future name changes.
Made-with: Cursor
W-21745944 make deployment command use --dry-run, add strict guardrails to prevent agent from further editing page
Co-authored-by: Hemant Singh Bisht <hsinghbisht@salesforce.com>
* @W-21707233 make template instructions more explicit
* convert escaped quotes to single quotes in frontmatter
---------
Co-authored-by: Hemant Singh Bisht <hsinghbisht@salesforce.com>
* feat: layout docs integration
* fix: preview a site not just after deployment
* @w-21612472 Test Skills for branding sets
* Remove mandatory tip
* feat: update wording for loading ref docs
* feat: add brief description on what object pages are
* feat: add instrux to ensure steps are followed correctly
* feat: use stricter wording for initial instruction
* fix: rm useless instruction
* fix: theme layout fixes
* feat: more explicit wording
* feat: add instrux to better handle global skills
* fix: bring back steps wording just in case
* fix: rm old refs
---------
Co-authored-by: KarthikSalesforce <131800461+KarthikSalesforce@users.noreply.github.com>
Co-authored-by: Hemant Singh Bisht <hsinghbisht@salesforce.com>
* @W-21672186@ Update rentalApp metadata to latest version
Replace rentalApp digital experience folder with latest version:
- Rename app from Homestead to RentalApp
- Update login URL to use HTTPS
- Replace home screen with new homeScreen
- Add experience container definition
- Reformat language settings
* @W-21672186@ Fix radiusBorderCircle type from string to number
* @W-21672186@ Sync rentalApp screens with source of truth
- Rename calendar screen to calendarScreen
- Update homeScreen target and id to match source
* feat(validate-skills): require js-yaml-parsable SKILL frontmatter
Validate the raw YAML between --- delimiters with js-yaml so frontmatter
matches strict parsers (e.g. descriptions with unquoted colon+space).
- Add js-yaml devDependency
- Extract parseFrontmatterBlock for shared delimiter parsing
- On YAMLException, report reason, line/column, character index, and snippet
Made-with: Cursor
* refactor(validate-skills): address PR review (YAMLException, JSON_SCHEMA, context)
- Catch only YAMLException; re-throw unexpected errors
- Parse frontmatter with yaml.JSON_SCHEMA
- Add rawFrontmatter to SkillContext; single parseFrontmatterBlock per file
- Type-guard mark fields and reason in formatYamlFrontmatterParseError
- Rename delimiterLen to fullMatchLen
- Collapse error message into one template literal
Made-with: Cursor
fix: resolve release workflow branch protection failure
Push release commit to a temp branch first so the SHA is visible to
the GitHub API, then report the required validate-skills status check
before pushing to main.
Co-authored-by: Hemant Singh Bisht <hsinghbisht@salesforce.com>
* add switch-org skill
Adds a new skill for switching the active Salesforce org via `sf config set target-org`, defaulting to local project scope with optional `--global` support.
* address PR review feedback on switch-org skill
- rename skill and directory to switching-org (gerund convention)
- rewrite description to follow "Use this skill when..." pattern
- add compatibility and metadata frontmatter fields
- rename ## Usage to ## When to Use This Skill
- consolidate Behavior, Steps, and Canonical Examples into single ## Steps section
- remove Purpose section (duplicated description)
- remove .sf/config.json implementation detail
- fix escaped \# in documentation URL
- rephrase --local/--scope note for clarity
* fix: skill best practice improvements for switching-org
- Fix description to use third-person ("This skill should be used when...")
- Remove redundant "When to Use This Skill" body section (duplicated description)
* fix: improve switching-org skill description, steps, and scope guidance
* remove author
* fix: clarify verification step and confirmation format in switching-org skill
* address second round of PR review feedback
- remove redundant h1 and repeated description sentence
- clarify sf config get --json does not return scope info
- move docs link into Notes section
- add SF_TARGET_ORG env var override note
chore: rename screen to screenAPIName in sample app metadata
Align sample app metadata with cama-app-metadata schema change (PR #14).
The screen key in tabs is now screenAPIName, reflecting that screen
metadata is delivered by the Delivery API using unique identifiers.