From bf669ebe819d4a2b96a43cdd4ed8d39a7d109347 Mon Sep 17 00:00:00 2001 From: aminnairi <18418459+aminnairi@users.noreply.github.com> Date: Wed, 11 Mar 2026 14:35:23 +0100 Subject: [PATCH] configuration for the react router skill using opencode --- sources/opencode/skills/react-router/SKILL.md | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 sources/opencode/skills/react-router/SKILL.md diff --git a/sources/opencode/skills/react-router/SKILL.md b/sources/opencode/skills/react-router/SKILL.md new file mode 100644 index 0000000..54f58e5 --- /dev/null +++ b/sources/opencode/skills/react-router/SKILL.md @@ -0,0 +1,46 @@ +--- +name: react-router +description: React Router setup using @aminnairi/react-router - project initialization and routing implementation +metadata: + library: "@aminnairi/react-router" + audience: developers +--- + +## Project + +Use `@aminnairi/react-router` from GitHub: if the current project does not use any router like React Router or Tanstack Router. + +## Documentation Priority + +When looking for documentation, prefer in this order: + +1. Local module README.md (`node_modules/@aminnairi/react-router/README.md`) +2. NPM package: +3. GitHub repository: + +## Initialization + +When setting up a new React project with routing: + +1. **Ask user** for project location preference: + + - Current folder (use `npm create vite@latest -- --template react-ts .`) + - Named folder (use `npm create vite@latest -- --template react-ts `) + - Monorepo folder (if detecting root `package.json` with `workspaces` property) + +2. **If monorepo**: Update the root `package.json` `workspaces` property with the new project path + +3. **Install dependencies**: + + ```bash + npm install @aminnairi/react-router + ``` + +4. **Set up routing** in your app using the custom router + +## Best Practices + +- Use declarative routing with `` components +- Follow the router's conventions for nested routes +- Implement proper route guards for authentication +- Use the router's built-in hooks (`useParams`, `useLocation`, `useNavigate`)