paqad-ai
Version:
Spec-driven development framework — AI agents that think before they type
130 lines (129 loc) • 3.66 kB
YAML
name: react
display_name: React
ecosystem: node
version: 1.0.0
description: Built-in React coding stack pack
maintainer: paqad-ai
detection:
priority: 50
manifests:
- file: package.json
packages:
- react
- react-dom
traits:
- name: next
display_name: Next.js
detect_package: next
description: React application uses Next.js
- name: remix
display_name: Remix
detect_package: '@remix-run/react'
description: React application uses Remix
- name: vite-spa
display_name: Vite SPA
detect_package: '@vitejs/plugin-react'
description: React application uses Vite SPA tooling
- name: gatsby
display_name: Gatsby
detect_package: gatsby
description: React application uses Gatsby
- name: tailwind
display_name: Tailwind
detect_package: tailwindcss
description: React application uses Tailwind CSS
toolchains:
- ecosystem: node
package_managers:
- pnpm
- npm
lockfiles:
- pnpm-lock.yaml
- package-lock.json
mcp_defaults:
- name: vite-inspector
when: always
- name: react-router-mcp
when: always
- name: tailwind-mcp
when: when_trait
trait: tailwind
pentest:
file_check_map:
- glob: src/pages/**
checks: [permission-boundary-review, business-logic-abuse-review]
- glob: src/api/**
checks: [permission-boundary-review, runtime-surface-probing, input-validation-review]
- glob: src/middleware/**
checks: [permission-boundary-review, runtime-surface-probing]
- glob: package-lock.json
checks: [dependency-advisory-triage]
- glob: pnpm-lock.yaml
checks: [dependency-advisory-triage]
- glob: yarn.lock
checks: [dependency-advisory-triage]
- glob: .env*
checks: [runtime-surface-probing, cryptographic-review]
- glob: src/auth/**
checks: [auth-mechanism-review]
- glob: src/graphql/**
checks: [input-validation-review, permission-boundary-review]
audit_commands:
- command: pnpm audit --json
parser: node
ast:
language: typescript
tree_sitter_grammar: tree-sitter-typescript
file_extensions: ['.ts', '.tsx', '.js', '.jsx']
testing:
frameworks:
- name: vitest
detect_package: vitest
run_command: pnpm test
- name: playwright
detect_package: '@playwright/test'
run_command: pnpm playwright test
test_runners:
- runner_id: vitest
structured_format: tap
structured_flags: --reporter=tap
default_command: pnpm test
single_test_selector: file
parallel:
mode: native
- runner_id: playwright
structured_format: junit-xml
structured_flags: --reporter=junit --outputFile=.paqad/test-results/playwright.xml
default_command: pnpm playwright test
output_source: file
output_path_pattern: .paqad/test-results/playwright.xml
single_test_selector: file
parallel:
mode: native
build_outputs:
- dist
format_changed:
- default_command: pnpm format
script: prettier --write .
command: pnpm exec prettier --write --ignore-unknown {files}
- default_command: npm run format
script: prettier --write .
command: npx --no-install prettier --write --ignore-unknown {files}
docs:
overview_template: rules/foundation/guide.md
conventions_template: rules/conventions/guide.md
module_health:
source_roots:
- src
source_globs: []
public_api_extractor: null
test_command: pnpm test
coverage_format: lcov
coverage_path: coverage/lcov.info
test_report_format: junit-xml
test_report_path: coverage/junit.xml
git_window_days: 14
visual_evidence:
frontend_globs:
- src/**/*.{jsx,tsx}
- src/**/*.css