Conversation
There was a problem hiding this comment.
Pull request overview
This PR syncs organizational standard files from the OrrisTech/.github repository to this repository (clawra). The sync adds organizational conventions for development workflows, code quality checks, and Claude Code AI assistant configuration. However, the synced files are primarily designed for React/Next.js web applications, while this repository is a Node.js CLI tool for OpenClaw agent integration.
Changes:
- Added organizational rules for Claude Code AI assistant (.claude/org-rules.md)
- Added standardized PR template with code quality, testing, and documentation checklists
- Added CI workflow calling reusable workflows from the org repository
- Added Lefthook pre-commit hooks for linting, type checking, and testing
- Added VS Code workspace settings for TypeScript, ESLint, Prettier, and Tailwind CSS
Reviewed changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated 12 comments.
Show a summary per file
| File | Description |
|---|---|
| .claude/org-rules.md | Organizational development rules and best practices, including extensive React/Next.js, UI/Design, SEO, and blog content standards |
| .github/pull_request_template.md | Standardized PR checklist template with sections for code quality, testing, security, documentation, UI/design, SEO, and blog content |
| .github/workflows/ci.yml | CI pipeline configuration calling reusable org workflows for lint, test, build, security audit, and React Doctor |
| lefthook.yml | Pre-commit hooks for ESLint/Biome linting, TypeScript type checking, and Vitest test execution |
| .vscode/settings.json | VS Code workspace settings for TypeScript, ESLint, Prettier, and Tailwind CSS development |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| ## React Best Practices | ||
|
|
||
| ### Server Components (RSC) -- Next.js App Router | ||
| - Default to Server Components. Only add `"use client"` when the component genuinely | ||
| needs interactivity, React hooks, or browser-only APIs. | ||
| - Data fetching belongs in Server Components or Server Actions -- not in client-side | ||
| `useEffect`. | ||
|
|
||
| ### React 19 Patterns | ||
| - Use `useActionState` for form state management (replaces `useFormState`). | ||
| - Use `useOptimistic` for optimistic UI updates. | ||
| - Use Server Actions for mutations (`"use server"` functions). | ||
| - Use the `use()` hook for reading promises and context in render. | ||
|
|
||
| ### Performance | ||
| - No premature optimization. Profile first with React DevTools or Lighthouse, then | ||
| optimize the identified bottleneck. | ||
| - Use `React.memo`, `useMemo`, and `useCallback` only when profiling shows a real | ||
| performance problem -- not preemptively. | ||
| - Use `<Suspense>` boundaries around async data to show meaningful loading states. | ||
| - Prefer streaming and partial rendering over blocking the entire page. | ||
|
|
There was a problem hiding this comment.
These React-specific best practices (Server Components, React 19 patterns, Next.js App Router) are not applicable to this repository. This is a Node.js CLI tool (clawra) that doesn't use React or Next.js. The synced organizational rules appear to be designed for frontend web applications, but this repository is a backend CLI utility for OpenClaw integration. Consider creating separate organizational rule templates for different project types (CLI tools vs web applications), or make these sections conditional based on the project type.
| ## UI / Design Standards | ||
|
|
||
| ### Component Library & Styling | ||
| - Use **shadcn/ui** components as the base component library. | ||
| - Use **Tailwind CSS v4** for all styling. No inline styles, no CSS modules, no | ||
| styled-components unless the repo already uses them. | ||
| - SVG icons only. No icon fonts (Font Awesome, Material Icons CDN), no PNG/JPG icons. | ||
|
|
||
| ### Design Principles | ||
| - Clarity over cleverness. Every UI element should have an obvious purpose. | ||
| - Consistent spacing using Tailwind's spacing scale. | ||
| - Strong visual hierarchy: size, weight, and color should guide the user's eye. | ||
|
|
||
| ### Animations | ||
| Follow Emil Kowalski's animation principles: | ||
| - Every animation must have a **purpose** (feedback, orientation, delight). | ||
| - Duration: **< 300ms** for UI transitions. Longer only for page-level choreography. | ||
| - Easing: **ease-out** for elements entering, **ease-in** for elements exiting. | ||
| - Prefer CSS transitions over JS animation libraries when possible. | ||
| - No animation is better than bad animation. | ||
|
|
||
| ### Responsive & Accessibility | ||
| - Mobile-first responsive design. Start with the smallest breakpoint and scale up. | ||
| - Dark mode support where applicable (use Tailwind's `dark:` variant). | ||
| - Keyboard navigable: all interactive elements must be reachable via Tab. | ||
| - Screen reader friendly: use semantic HTML, ARIA labels where needed, alt text on | ||
| images. | ||
|
|
There was a problem hiding this comment.
These UI/Design standards reference technologies not used in this repository (shadcn/ui, Tailwind CSS v4, responsive design, animations). This is a Node.js CLI tool that has no UI components or web interface. The organizational rules should either be tailored per repository type or include conditional sections that only apply to web/UI projects.
|
|
||
| ### Blog Content (if applicable) | ||
| - [ ] 1000+ words for substantive posts | ||
| - [ ] Categories, tags, and author set | ||
| - [ ] Table of contents included | ||
| - [ ] No banned AI writing patterns | ||
| - [ ] Clear takeaway / CTA for the reader |
There was a problem hiding this comment.
This Blog Content section is not applicable to this CLI tool repository, which doesn't contain any blog functionality. Consider removing this section from the template for non-blog repositories.
| ### Blog Content (if applicable) | |
| - [ ] 1000+ words for substantive posts | |
| - [ ] Categories, tags, and author set | |
| - [ ] Table of contents included | |
| - [ ] No banned AI writing patterns | |
| - [ ] Clear takeaway / CTA for the reader |
|
|
||
| react-doctor: | ||
| name: React Doctor | ||
| if: github.event_name == 'pull_request' | ||
| uses: OrrisTech/.github/.github/workflows/ci-react-doctor.yml@main | ||
| secrets: inherit |
There was a problem hiding this comment.
The react-doctor job is not applicable to this repository. This is a Node.js CLI tool that doesn't use React. Including this job in the CI workflow will either fail or waste CI minutes. Consider making this job conditional based on repository characteristics (e.g., presence of React dependencies in package.json), or creating separate CI workflow templates for different project types.
| react-doctor: | |
| name: React Doctor | |
| if: github.event_name == 'pull_request' | |
| uses: OrrisTech/.github/.github/workflows/ci-react-doctor.yml@main | |
| secrets: inherit |
| "files.exclude": { | ||
| "**/.next": true, | ||
| "**/node_modules": true, | ||
| "**/dist": true, | ||
| "**/.turbo": true | ||
| }, |
There was a problem hiding this comment.
These file exclusions include Next.js-specific directories (.next, .turbo) that don't exist in this CLI tool repository. While excluding non-existent directories is harmless, it adds unnecessary configuration. Consider creating repository-specific VS Code settings or making these exclusions conditional based on project type.
| "search.exclude": { | ||
| "**/node_modules": true, | ||
| "**/.next": true, | ||
| "**/dist": true, | ||
| "**/coverage": true, | ||
| "**/.turbo": true, |
There was a problem hiding this comment.
Search exclusions include Next.js-specific directories (.next, .turbo) that don't exist in this CLI tool repository. While these exclusions are harmless, they indicate the settings file is designed for a different project type.
| ## SEO Requirements | ||
|
|
||
| - Every page MUST have unique metadata: `title`, `description`, and `og:image`. | ||
| - Use structured data (JSON-LD) where applicable (articles, products, FAQ, breadcrumbs). | ||
| - Proper heading hierarchy: one `<h1>` per page, logical `<h2>` through `<h6>` nesting. | ||
| - Internal linking: related pages should link to each other. | ||
| - Alt text on ALL images. Decorative images use `alt=""`. | ||
| - No orphan pages -- every page must be reachable from at least one other page. | ||
| - Use `<link rel="canonical">` to prevent duplicate content issues. | ||
|
|
There was a problem hiding this comment.
These SEO requirements (metadata, structured data, heading hierarchy, internal linking) are not relevant to a CLI tool repository. This repository contains a command-line utility with no web pages to optimize for search engines. Consider making SEO sections conditional for web application repositories only.
| ## Blog Content Standards | ||
|
|
||
| Follow Google's helpful content guidelines: | ||
|
|
||
| - **Length**: 1000-2500+ words for substantive posts. Short posts are acceptable for | ||
| changelogs or announcements. | ||
| - **Structure**: Include categories, tags, author, publication date, and a table of | ||
| contents for posts over 1500 words. | ||
| - **CTA**: Every post needs a clear call-to-action or takeaway for the reader. | ||
| - **Quality**: Write for humans first. Provide unique insight, real examples, or | ||
| original research. | ||
|
|
||
| ### Banned AI Writing Patterns | ||
| Never use these words/phrases that signal low-quality AI-generated content: | ||
| - "delve", "landscape", "tapestry", "in conclusion", "it's worth noting" | ||
| - "navigate the complexities", "in today's fast-paced", "game-changer" | ||
| - "dive deep", "unlock the power", "revolutionary" | ||
| - Excessive hedging ("it's important to note that...") | ||
| - Lists of generic advice with no specific examples | ||
|
|
There was a problem hiding this comment.
These blog content standards are not applicable to this CLI tool repository. The repository doesn't contain blog functionality or content. These rules should only be included in repositories that actually have blog features.
|
|
||
| ### UI / Design (if applicable) | ||
| - [ ] Follows design system (shadcn/ui + Tailwind CSS v4) | ||
| - [ ] SVG icons only (no icon fonts, no PNGs) | ||
| - [ ] Animations < 300ms, purposeful | ||
| - [ ] Mobile responsive | ||
| - [ ] Accessible (keyboard nav, screen reader, alt text) | ||
|
|
||
| ### SEO (if applicable) | ||
| - [ ] Metadata set (title, description, og:image) | ||
| - [ ] Structured data (JSON-LD) where applicable | ||
| - [ ] Heading hierarchy correct (single h1) | ||
| - [ ] Alt text on all images | ||
| - [ ] No broken internal links | ||
|
|
||
| ### Blog Content (if applicable) | ||
| - [ ] 1000+ words for substantive posts | ||
| - [ ] Categories, tags, and author set | ||
| - [ ] Table of contents included | ||
| - [ ] No banned AI writing patterns | ||
| - [ ] Clear takeaway / CTA for the reader |
There was a problem hiding this comment.
These checklist sections (UI/Design and SEO) are not relevant to this repository. This is a Node.js CLI tool with no user interface or web pages. The PR template should be customized per repository type, or these sections should be marked as optional/conditional for repositories that don't have UI or SEO concerns.
| ### UI / Design (if applicable) | |
| - [ ] Follows design system (shadcn/ui + Tailwind CSS v4) | |
| - [ ] SVG icons only (no icon fonts, no PNGs) | |
| - [ ] Animations < 300ms, purposeful | |
| - [ ] Mobile responsive | |
| - [ ] Accessible (keyboard nav, screen reader, alt text) | |
| ### SEO (if applicable) | |
| - [ ] Metadata set (title, description, og:image) | |
| - [ ] Structured data (JSON-LD) where applicable | |
| - [ ] Heading hierarchy correct (single h1) | |
| - [ ] Alt text on all images | |
| - [ ] No broken internal links | |
| ### Blog Content (if applicable) | |
| - [ ] 1000+ words for substantive posts | |
| - [ ] Categories, tags, and author set | |
| - [ ] Table of contents included | |
| - [ ] No banned AI writing patterns | |
| - [ ] Clear takeaway / CTA for the reader |
| "files.associations": { | ||
| "*.css": "tailwindcss", | ||
| "*.mdx": "mdx" | ||
| }, |
There was a problem hiding this comment.
These file associations reference Tailwind CSS and MDX, which are not used in this repository. This is a Node.js CLI tool without any CSS or MDX files. While these settings won't cause errors, they add unnecessary configuration clutter.
4dff707 to
9566e49
Compare
….github/pull_request_template.md'
…workflows/ci.yml'
9566e49 to
0c43fe4
Compare
React Doctor ReportClick to expand results
|
synced local file(s) with OrrisTech/.github.
This PR was automatically created by the org file sync workflow. It syncs the latest org standard files from the .github repo. Review the changes and merge when ready.
Changed files
.claude/org-rules.mdfrom remotesync/.claude/org-rules.md.github/pull_request_template.mdfrom remotesync/.github/pull_request_template.md.github/workflows/ci.ymlfrom remotesync/.github/workflows/ci.ymllefthook.ymlfrom remotesync/lefthook.yml.vscode/settings.jsonfrom remotesync/.vscode/settings.jsonThis PR was created automatically by the repo-file-sync-action workflow run #22209578770