---
title: "Contributing"
description: "How to contribute to @farming-labs/docs"
canonical_url: "https://docs.farming-labs.dev/docs/contributing"
markdown_url: "https://docs.farming-labs.dev/docs/contributing.md"
last_updated: "2018-10-20"
agent:
  tokenBudget: 750
  task: "Prepare a focused, tested contribution to the Farming Labs docs monorepo."
  outcome: "The change follows repository conventions, includes proportional tests or docs, and is ready for pull-request review."
  appliesTo:
    framework:
      - "nextjs"
      - "tanstackstart"
      - "sveltekit"
      - "astro"
      - "nuxt"
    version:
      - ">=0.2.60"
    package:
      - "@farming-labs/docs"
      - "@farming-labs/next"
      - "@farming-labs/tanstack-start"
      - "@farming-labs/svelte"
      - "@farming-labs/astro"
      - "@farming-labs/nuxt"
  prerequisites:
    - "Read the repository AGENTS.md and the skill that matches the affected subsystem."
    - "Install the pinned pnpm workspace dependencies and identify the smallest affected package set."
  files:
    - "AGENTS.md"
    - "package.json"
    - "pnpm-workspace.yaml"
  sideEffects:
    - "A contribution can change generated templates, public adapter behavior, documentation, and lockfile state."
  verification:
    - description: "Run formatting, lint, type checking, and the smallest relevant test suite required by the changed packages."
      expect: "Every required check exits successfully and the worktree contains only intentional changes."
  rollback:
    - "Revert only the contribution's files and restore generated artifacts from their source templates."
  failureModes:
    - symptom: "A package-specific test passes but another adapter regresses."
      resolution: "Run the shared conformance tests and the affected adapter type checks before requesting review."
    - symptom: "Formatting introduces unrelated repository-wide changes."
      resolution: "Format only the files in scope and remove unrelated mechanical changes from the patch."
---

<!-- farming-labs:agent-contract:start -->
## Agent Contract

Task: Prepare a focused, tested contribution to the Farming Labs docs monorepo.
Outcome: The change follows repository conventions, includes proportional tests or docs, and is ready for pull-request review.

### Applies To

- Framework: `nextjs`, `tanstackstart`, `sveltekit`, `astro`, `nuxt`
- Version: `>=0.2.60`
- Package: `@farming-labs/docs`, `@farming-labs/next`, `@farming-labs/tanstack-start`, `@farming-labs/svelte`, `@farming-labs/astro`, `@farming-labs/nuxt`

### Prerequisites

- Read the repository AGENTS.md and the skill that matches the affected subsystem.
- Install the pinned pnpm workspace dependencies and identify the smallest affected package set.

### Files

- `AGENTS.md`
- `package.json`
- `pnpm-workspace.yaml`

### Side Effects

- A contribution can change generated templates, public adapter behavior, documentation, and lockfile state.

### Verification

- Run formatting, lint, type checking, and the smallest relevant test suite required by the changed packages.
  - Expected: Every required check exits successfully and the worktree contains only intentional changes.

### Rollback

- Revert only the contribution's files and restore generated artifacts from their source templates.

### Failure Modes

- A package-specific test passes but another adapter regresses. — Recovery: Run the shared conformance tests and the affected adapter type checks before requesting review.
- Formatting introduces unrelated repository-wide changes. — Recovery: Format only the files in scope and remove unrelated mechanical changes from the patch.
<!-- farming-labs:agent-contract:end -->

# Contributing

## Contributing task

Task: Prepare a focused, tested contribution to the Farming Labs docs monorepo.

Expected result: The change follows repository conventions, includes proportional tests or docs, and is ready for pull-request review.

Exact implementation:

```bash title="terminal"
   pnpm --dir website dev
   ```
## Contributing prerequisites

- Read the repository AGENTS.md and the skill that matches the affected subsystem.
- Install the pinned pnpm workspace dependencies and identify the smallest affected package set.
- Applies to framework nextjs, tanstackstart, sveltekit, astro, nuxt; version >=0.2.60; package @farming-labs/docs, @farming-labs/next, @farming-labs/tanstack-start, @farming-labs/svelte, @farming-labs/astro, @farming-labs/nuxt.

## Contributing verification

- Run formatting, lint, type checking, and the smallest relevant test suite required by the changed packages. Expected: Every required check exits successfully and the worktree contains only intentional changes.
- Failure: A package-specific test passes but another adapter regresses.
- Recovery: Run the shared conformance tests and the affected adapter type checks before requesting review.
- Rollback: Revert only the contribution's files and restore generated artifacts from their source templates.

## Contributing agent guidance

Start by reading the repository `AGENTS.md` and the matching file under
`skills/farming-labs/*/SKILL.md`, then branch from `main` with a focused `fix/`, `feat/`, or `chore/`
name. Install the pinned workspace dependencies from the repository root and keep edits inside the
smallest affected package, example, or `website/app/docs/` page set.

For a documentation preview, run `pnpm --dir website dev` and open the changed route. Core or
theme work may also require `pnpm build`; adapter agent-surface changes must run the shared
conformance test described at `/docs/guides/adapter-agent-conformance`. The expected handoff is a
clean, intentional diff with formatting, type checks, and the smallest relevant tests passing.

If a package test passes but another adapter regresses, run the shared conformance tests and the
affected adapter type check before review. If formatting touches unrelated files, remove those
mechanical changes instead of including them in the pull request.

## Sitemap

See the full [sitemap](/sitemap.md) for all pages.
Docs-scoped sitemap: [/docs/sitemap.md](/docs/sitemap.md).
Well-known sitemap: [/.well-known/sitemap.md](/.well-known/sitemap.md).
