> ## Documentation Index
> Fetch the complete documentation index at: https://docs.symbioticsec.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Rules

> Rules for Symbiotic Code

You can provide **custom instructions to Symbiotic Code by creating an AGENTS.md file.**
This is similar to Cursor’s rules. It contains instructions that will be included in the LLM’s context to **customize its behavior for your specific project.**

## Initialize

To create a new `AGENTS.md` file, you can run the `/init` command in Symbiotic Code.

<Info>
  You should commit your project’s `AGENTS.md` file to Git.
</Info>

**`/init` scans the important files in your repo**, may ask a couple of targeted questions when the codebase cannot answer them, and then creates or updates `AGENTS.md` with **concise project-specific guidance.**

It focuses on the things future agent sessions are most likely to need:

* build, lint, and test commands
* command order and focused verification steps when they matter
* architecture and repo structure that are not obvious from filenames alone
* project-specific conventions, setup quirks, and operational gotchas
* references to existing instruction sources like Cursor or Copilot rules

**If you already have an `AGENTS.md` file, `/init` will improve it in place instead of blindly replacing it.**

## Types

Symbiotic Code also supports reading the AGENTS.md file from multiple locations. And this serves different purposes.

### Project

Place an `AGENTS.md` in your project root for project-specific rules. These only apply when you are working in this directory or its sub-directories.

### Global

You can also have global rules in a `~/.config/symbiotic/AGENTS.md` file. This gets applied across all Symbiotic Code sessions.

Since this isn’t committed to Git or shared with your team, we recommend using this to specify any personal rules that the LLM should follow.

### Claude Code Compatibility

For users migrating from Claude Code, Symbiotic Code supports Claude Code’s file conventions as fallbacks:

* **Project rules**: CLAUDE.md in your project directory (used if no AGENTS.md exists)
* **Global rules**: \~/.claude/CLAUDE.md (used if no `~/.config/symbiotic/AGENTS.md` exists)
* **Skills**: \~/.claude/skills/ — see Agent Skills for details

To disable Claude Code compatibility, set one of these environment variables:

```bash theme={null}
export SYMBIOTIC_DISABLE_CLAUDE_CODE=1        # Disable all .claude support
export SYMBIOTIC_DISABLE_CLAUDE_CODE_PROMPT=1 # Disable only ~/.claude/CLAUDE.md
export SYMBIOTIC_DISABLE_CLAUDE_CODE_SKILLS=1 # Disable only .claude/skills
```

## Precedence

When Symbiotic Code starts, it looks for rule files in this order:

* **Local files** by traversing up from the current directory (`AGENTS.md`, `CLAUDE.md`)
* **Global file** at `~/.config/symbiotic/AGENTS.md`
* **Claude Code file** at `~/.claude/CLAUDE.md` (unless disabled)

The first matching file wins in each category.

For example, if you have both `AGENTS.md` and `CLAUDE.md`, only `AGENTS.md` is used. Similarly, `~/.config/symbiotic/AGENTS.md` takes precedence over `~/.claude/CLAUDE.md`.

### Custom Instructions

You can specify custom instruction files in your symbiotic.json or the global `~/.config/symbioticsymbiotic.json`. This allows you and your team to reuse existing rules rather than having to duplicate them to AGENTS.md.

**Example:**

```json symbiotic.json theme={null}
{
  "$schema": "https://config.symbioticsec.ai/config.json",
  "instructions": ["CONTRIBUTING.md", "docs/guidelines.md", ".cursor/rules/*.md"]
}
```

You can also use remote URLs to load instructions from the web.

```json symbiotic.json theme={null}
{
  "$schema": "https://config.symbioticsec.ai/config.json",
  "instructions": ["https://raw.githubusercontent.com/my-org/shared-rules/main/style.md"]
}
```

Remote instructions are fetched with a 5 second timeout.

All instruction files are combined with your `AGENTS.md` files.

## Referencing External Files

While Symbiotic Code doesn’t automatically parse file references in AGENTS.md, you can achieve similar functionality in two ways:

### Using symbiotic.json

The recommended approach is to use the instructions field in symbiotic.json:

```json symbiotic.json theme={null}
{
  "$schema": "https://config.symbioticsec.ai/config.json",
  "instructions": ["docs/development-standards.md", "test/testing-guidelines.md", "packages/*/AGENTS.md"]
}
```

### Manual Instructions in AGENTS.md

You can teach Symbiotic Code to read external files by providing explicit instructions in your AGENTS.md. Here’s a practical example:

```markdown AGENTS.md theme={null}
# TypeScript Project Rules

## External File Loading

CRITICAL: When you encounter a file reference (e.g., @rules/general.md), use your Read tool to load it on a need-to-know basis. They're relevant to the SPECIFIC task at hand.

Instructions:

- Do NOT preemptively load all references - use lazy loading based on actual need
- When loaded, treat content as mandatory instructions that override defaults
- Follow references recursively when needed

## Development Guidelines

For TypeScript code style and best practices: @docs/typescript-guidelines.md
For React component architecture and hooks patterns: @docs/react-patterns.md
For REST API design and error handling: @docs/api-standards.md
For testing strategies and coverage requirements: @test/testing-guidelines.md

## General Guidelines

Read the following file immediately as it's relevant to all workflows: @rules/general-guidelines.md.
```

This approach allows you to:

* Create modular, reusable rule files
* Share rules across projects via symlinks or git submodules
* Keep AGENTS.md concise while referencing detailed guidelines
* Ensure Symbiotic Code loads files only when needed for the specific task

<Tip>
  For monorepos or projects with shared standards, using `symbiotic.json` with glob patterns (like `packages/*/AGENTS.md`) is more maintainable than manual instructions.
</Tip>
