> For the complete documentation index, see [llms.txt](https://evo-5.gitbook.io/evo/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://evo-5.gitbook.io/evo/development/project-rules.md).

# Project Rules

evo is a personal open-source project with specific rules to maintain its independence and safety.

## The Iron Rule

**No company information or sensitive data** may appear anywhere in the repository:

* Company names, brands, domains, or email addresses
* Employee names or aliases
* Internal system codenames
* Intranet addresses
* Machine absolute paths (use relative paths or `~/`)

Team attribution is **"Paper team"** only — no company identity.

## Enforcement

The rule is enforced by `scripts/iron-rule.mjs`:

| Check        | When                | What                         |
| ------------ | ------------------- | ---------------------------- |
| `pnpm test`  | Source tree         | Tests include iron-rule scan |
| `pnpm check` | Full tree + `dist/` | Post-build verification      |

Violations fail the build. The scan checks for:

* Known company name patterns
* User home directory absolute paths
* Private IP addresses (10.x, 172.16-31.x, 192.168.x)

## Adding New Patterns

If you discover a pattern that should be blocked, add it to `FORBIDDEN_PATTERNS` in `scripts/iron-rule.mjs`:

```js
export const FORBIDDEN_PATTERNS = [
  { name: 'example:pattern', note: 'Description', regex: /pattern/i },
  // ... existing patterns
]
```

## Why This Rule?

This project is open source and must remain independent of any corporate identity. The rule ensures:

* No accidental leakage of internal information
* Clear separation between personal and corporate work
* Safe for anyone to fork and use

## Skipped Locations

The scan skips:

* `.git/` — version control internals
* `node_modules/` — third-party code
* `.vitest/`, `coverage/` — test artifacts
* `.paper/` — runtime data directory
* Binary files — only text files are scanned
* `scripts/iron-rule.mjs` itself — contains the patterns

## Practical Guidelines

### Paths

```js
// Bad: hardcoded absolute path
const config = '/absolute/path/to/config.json'

// Good: use homedir() or relative paths
const config = path.join(homedir(), '.evo', 'config.json')
// or
const config = './config.json'
```

### Attribution

```markdown
<!-- Bad -->
Developed by Example Corp Engineering Team

<!-- Good -->
Developed by the Paper team.
```

### Examples

When writing examples or documentation, use generic paths:

```bash
# Good: generic paths or ~/
export EVO_DATA_DIR=/srv/agent-memory
cd ~/projects/myapp

# Bad: absolute paths with usernames
cd /absolute/username/work/project
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://evo-5.gitbook.io/evo/development/project-rules.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
