afv-library/package.json
k-j-kim 37ab25279e
feat(validate-skills): require js-yaml-parsable SKILL frontmatter @W-21338965@ (#91)
* 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
2026-03-23 17:34:29 -07:00

26 lines
760 B
JSON

{
"name": "@salesforce/afv-skills",
"version": "1.4.0",
"description": "Salesforce skills for Agentforce Vibes",
"license": "CC-BY-NC-4.0",
"files": [
"skills/"
],
"publishConfig": {
"access": "public",
"registry": "https://registry.npmjs.org"
},
"devDependencies": {
"@salesforce/webapp-template-app-react-sample-b2e-experimental": "^1.112.6",
"@salesforce/webapp-template-app-react-sample-b2x-experimental": "^1.112.6",
"@types/js-yaml": "^4.0.9",
"js-yaml": "^4.1.1",
"tsx": "^4.21.0"
},
"scripts": {
"validate:skills": "tsx scripts/validate-skills.ts",
"sync-react-b2e-sample": "node scripts/sync-react-b2e-sample.js",
"sync-react-b2x-sample": "node scripts/sync-react-b2x-sample.js"
}
}