Skip to main content

Contributing

Contributions should preserve Anyy's product identity: a resident, local-first, multi-surface personal assistant.

Do not narrow the product into a router manager, Linux operations agent, package manager add-on, or single-surface CLI assistant.

Development Environment

Use the repository root for Go commands. The docs site lives under docs-site and uses Docusaurus.

For code changes, start with focused package tests. For docs changes, run npm run build from docs-site.

Code Style

Prefer existing package patterns and narrow edits. Keep non-generated, non-test Go files at or below 500 physical lines.

Do not move runtime concerns into internal/agent. Use interfaces and runtime injection instead.

Tests

Common checks are:

go test ./...
go vet ./...
make check-lines
make smoke-local

For docs-only changes, git diff --check and npm run build are usually the right baseline.

Documentation Changes

Update docs when public commands, config fields, RPC methods, tool schemas, event payloads, channel behavior, or setup flows change.

English and zh-CN pages should stay aligned. Do not document features as complete unless code and tests support them.

Review Checklist

Before handoff, check architecture boundaries, redaction, tests, config docs, and user-facing wording.

If behavior, public APIs, event payloads, or tool semantics changed, update the relevant spec or contract in docs/superpowers/specs/.