Contributing to Understand Anything banner
Lum1104 Lum1104

Contributing to Understand Anything

Development community intermediate

Description

Thank you for your interest in contributing to Understand Anything! This document provides guidelines and instructions for contributing to the project.

Installation

This entry records only its repository, not the path inside it, so there is no exact command to give. Open the source below and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

Repository README

This is the README for Lum1104/Understand-Anything, shared by 4 entries in this directory. It describes the repository, not this entry specifically.

Contributing to Understand Anything

Thank you for your interest in contributing to Understand Anything! This document provides guidelines and instructions for contributing to the project.

๐ŸŒŸ Ways to Contribute

  • Bug Reports: Found a bug? Open an issue with detailed reproduction steps
  • Feature Requests: Have an idea? Share it in the issues section
  • Documentation: Improve or translate documentation
  • Code: Fix bugs, add features, or improve performance
  • Testing: Write tests to improve code coverage

๐Ÿš€ Getting Started

Prerequisites

  • Node.js >= 22 (developed on v24)
  • pnpm >= 10 (pinned via packageManager field in root package.json)
  • Git for version control

Setup

  1. **Fork and Clone**

    git clone https://github.com/YOUR_USERNAME/Understand-Anything.git
    cd Understand-Anything
  2. **Install Dependencies**

    pnpm install
  3. **Build Core Package**

    pnpm --filter @understand-anything/core build
  4. **Run Tests**

    pnpm --filter @understand-anything/core test
    pnpm --filter @understand-anything/skill test
  5. **Start Dashboard (Optional)**

    pnpm dev:dashboard

๐Ÿ“ Development Workflow

1. Create a Branch

Create a descriptive branch name:

git checkout -b feat/my-feature        # For new features
git checkout -b fix/bug-description    # For bug fixes
git checkout -b docs/update-readme     # For documentation

2. Make Changes

  • Write clean, readable code
  • Follow existing code style and conventions
  • Add tests for new functionality
  • Update documentation as needed

3. Test Your Changes

# Run all tests
pnpm --filter @understand-anything/core test
pnpm --filter @understand-anything/skill test

# Run linter
pnpm lint

# Build packages
pnpm build

4. Commit Your Changes

Write clear, descriptive commit messages:

git add .
git commit -m "feat: add keyboard shortcuts to dashboard"

**Commit Message Convention:**

  • feat: - New feature
  • fix: - Bug fix
  • docs: - Documentation changes
  • style: - Code style changes (formatting, etc.)
  • refactor: - Code refactoring
  • test: - Adding or updating tests
  • chore: - Maintenance tasks

5. Push and Create Pull Request

git push origin your-branch-name

Then open a Pull Request on GitHub with:

  • Clear title describing the change
  • Detailed description of what changed and why
  • Link to related issues (if any)
  • Screenshots (for UI changes)

๐Ÿงช Testing Guidelines

Writing Tests

  • Use Vitest for testing
  • Place tests in __tests__ directories or *.test.ts files
  • Aim for high test coverage for new features
  • Test edge cases and error conditions

Example test structure:

import { describe, it, expect } from 'vitest';

describe('MyFeature', () => {
  it('should do something', () => {
    // Arrange
    const input = 'test';

    // Act
    const result = myFunction(input)