Skip to content

Mp 44662 react skill - #55

Merged
shivakumar-ashwin merged 8 commits into
mainfrom
MP-44662-react-skill
Jul 29, 2026
Merged

Mp 44662 react skill#55
shivakumar-ashwin merged 8 commits into
mainfrom
MP-44662-react-skill

Conversation

@aswin-shakthic

@aswin-shakthic aswin-shakthic commented Jul 27, 2026

Copy link
Copy Markdown
Collaborator

Summary

Adds React Meta (DEW) as the default UI stack for fw-app-dev, with vanilla JS + Crayons remaining opt-in when explicitly requested.

MP-44662

What changed

  • New slash commands: /fdk-react-create and /fdk-react-migrate — scaffold new Meta apps or migrate existing Platform 3.0 vanilla JS apps to React Meta
  • New rule: react-meta-patterns.mdcmetaConfig.framework: "react", DEW components/styles, React Router, forbidden Crayons in Meta workflow, optional Tailwind/Vite
  • New reference docs: references/react-meta/ (DEW, Vite merge, styling, migration checklist, custom HTML, superstack patterns)
  • New skeleton templates: react-meta-frontend-skeleton, react-meta-hybrid-skeleton, react-meta-oauth-skeleton
  • Updated orchestration: SKILL.md, app-templates.mdc, app-building-blocking-gates.mdc, freshworks-platform3.mdc, validation-workflow.mdc — React Meta default routing; vanilla skeletons preserved as opt-in
  • Toolchain notes: Meta apps require FDK 10.1.0+; optional vite.config.js requires FDK 10.1.5+ (docs/engine-matrix.md)
  • Shipped routing spec: installer/src/specs/fw-dev-tools-spec.md — React Meta default called out in non-negotiables
  • Plugin manifest: registers new commands; updates descriptions
  • Static tests: coverage for react-meta templates, commands, plugin registration, and reference docs

Test plan (local run — 2026-07-28)

  • cd tests && npm install && npm test390 pass, 0 fail, 3 skipped
  • cd installer && npm install && npm test130 pass, 0 fail (voluntary; no installer/ changes in this PR)
  • npm audit --audit-level=high in tests/ and installer/0 vulnerabilities each
  • Regex eval layer — included in npm test; all regex suites pass
  • Inline skill content check — 79/79 scenarios pass (tests/eval-results.json)
  • Full Cursor CLI LLM eval (npm run eval) — not completed in agent session (EPIPE from cursor agent subprocess); regex + inline checks cover this PR
  • Dedicated React Meta behavioral eval scenarios — not added; static tests cover react-meta artifacts

Type of change

  • Skill content (SKILL.md, command file, rule file)
  • Reference / template file
  • Plugin manifest (.claude-plugin, .cursor-plugin, .codex-plugin, skills/*/.cursor-plugin)
  • Installer (installer/)
  • Test suite (tests/, installer/tests/)
  • CI / docs / infra only

Test checklist

Installer tests (required when installer/ changed)

cd installer && npm install && npm test    # installer lifecycle tests
  • Installer tests pass locally — 130/130 pass (2026-07-28; run voluntarily — installer/ unchanged)

Static + regex evals (required for all PRs)

cd tests && npm install && npm test        # static + parser + regex evals — runs in CI
  • All tests pass locally — 390/390 pass, 3 skipped (2026-07-28)

LLM evals (required when SKILL.md, a command file, or .meta.template.json is modified)

Behavioral scenarios in tests/eval/scenarios/*.js (with matching regex checks in tests/eval/regex/). Run via:

cd tests && npm run eval                   # static + regex + LLM evals + HTML report
# or
bash tests/run-all-tests.sh --llm-eval

Requires claude or cursor on PATH. In an agent session (recommended, no API key): "Run the skill evals".

  • Reviewed / updated scenarios in tests/eval/scenarios/ (and matching tests/eval/regex/fw-*.regex.test.mjs for doc-regression checks) — existing scenarios; no react-specific additions
  • Added new scenario(s) for any new behavioral rule or gate — deferred; static tests cover react-meta artifacts
  • LLM eval scenarios pass (or explained in summary why a failure is acceptable) — 79/79 pass via inline content check (tests/eval-results.json); full Cursor CLI eval blocked by EPIPE in agent session
  • Attached tests/eval-results.json (inline-skill-content-check; all-tests-report.html not generated)

Repo hygiene (when applicable)

  • AGENTS.md rules/commands inventory updated (if skills/*/rules/ or skills/*/commands/ changed)
  • tests/TESTING.md updated (if eval scenarios added/renamed or layer layout changed) — N/A (no new eval scenarios)
  • docs/engine-matrix.md updated (if fw-setup toolchain pins changed) — Meta FDK/vite notes only
  • node scripts/bump-version.mjs run after root package.json version bump (syncs plugin manifests + SKILL.md) — N/A (no root version bump)

Security

  • No secrets, tokens, or real credentials in the diff (use placeholders in docs)
  • If dependencies changed: npm audit --audit-level=high passes in installer/ and tests/

Not applicable

  • This PR does not modify skills, commands, or templates — LLM eval checklist skipped
  • This PR does not change installer/installer test checklist skipped (tests run voluntarily; all pass)
  • This PR does not add or change dependencies — audit checklist skipped (voluntary audit: 0 vulnerabilities in tests/ and installer/)

CI (runs on PR automatically)

Check What Local / CI status
Static + regex eval tests tests/npm test ✅ 390 pass locally
Installer tests installer/npm test (Node 24) ✅ 130 pass locally
Dependency review New deps — high/critical CVEs blocked ✅ CI pass
npm audit installer/ + tests/ lockfiles ✅ 0 vulns locally
Secret scan gitleaks (full git history) ✅ CI pass
CodeQL Org-level (if enabled) ✅ CI pass

LLM evals and tests/e2e/e2e.sh are local / agent session only — not in CI.


Eval report

Layer Result Notes
Static + regex (npm test) 390 pass, 0 fail 2026-07-28
Inline content check 79/79 pass tests/eval-results.json
Cursor CLI LLM eval Not completed EPIPE from cursor agent subprocess in agent session
Installer tests 130 pass, 0 fail Voluntary run; installer/ unchanged
npm audit 0 vulnerabilities tests/ + installer/

Dependency review note: skeleton package.json files reference @freshworks/dew-components, @freshworks/dew-styles, react, react-dom, and react-router-dom with unknown SPDX licenses — expected for template stubs; no high/critical CVEs reported.

@github-actions

Copy link
Copy Markdown

Dependency Review

The following issues were found:
  • ✅ 0 vulnerable package(s)
  • ✅ 0 package(s) with incompatible licenses
  • ✅ 0 package(s) with invalid SPDX license definitions
  • ⚠️ 5 package(s) with unknown licenses.
See the Details below.

License Issues

skills/fw-app-dev/assets/templates/react-meta-oauth-skeleton/package.json

PackageVersionLicenseIssue Type
@freshworks/dew-components^1.0.1NullUnknown License
@freshworks/dew-styles^1.0.0NullUnknown License
react^19.0.0NullUnknown License
react-dom^19.0.0NullUnknown License
react-router-dom^7.18.1NullUnknown License

OpenSSF Scorecard

PackageVersionScoreDetails
npm/@freshworks/dew-components ^1.0.1 UnknownUnknown
npm/@freshworks/dew-styles ^1.0.0 UnknownUnknown
npm/react ^19.0.0 UnknownUnknown
npm/react-dom ^19.0.0 UnknownUnknown
npm/react-router-dom ^7.18.1 UnknownUnknown

Scanned Files

  • skills/fw-app-dev/assets/templates/react-meta-oauth-skeleton/package.json

Comment thread tests/static/skill-static.test.js Fixed
Comment thread skills/fw-app-dev/SKILL.md
Comment thread skills/fw-app-dev/commands/fdk-react-create.md Outdated
Comment thread skills/fw-app-dev/commands/fdk-react-migrate.md Outdated
Comment thread tests/eval/regex/fw-app-dev.regex.test.mjs
aswin-shakthic and others added 2 commits July 29, 2026 20:15
…ario.

- Split Meta (FDK 10.1.0) vs vanilla/serverless (10.0.1) engine guidance in SKILL.md
- Add {{{appclient}}} to react-meta-frontend-skeleton index.html
- Reorder React Router catch-all after /app/demo in all Meta skeletons
- Use meta-init.sh auto-detect (no ide-client arg) in react create/migrate commands
- Add fw-app-dev-49 eval scenario and regex tests for Meta-default routing

Co-authored-by: Cursor <cursoragent@cursor.com>
@shivakumar-ashwin
shivakumar-ashwin merged commit 0823925 into main Jul 29, 2026
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants