AGENTS.md · git:20261028.1d1a9ef · 2026-10-28 · sha256 90b321422d8a8088
AGENTS.md git:20261028.1d1a9efA
Immutable. This exact content never changes and is served at /api/v1/blob/90b321422d8a8088.
# AI Agent Integration Guide ## Current product contract [PB-2026-09-09](docs/product-boundaries.md) keeps EraseMe an independent specialized product. Browse and Operate become optional Brain modules; the credential service remains independently usable. None becomes a mandatory Brain gateway/context dependency for EraseMe. Existing command/API, privacy, evidence and approval contracts remain unchanged until explicit tested migrations. Do not couple privacy workflows to the presence of Brain's GUI. **Symaira EraseMe** supports all major AI coding agents through standardized skill formats and adapter files. The current source uses the Rust CLI and a native SwiftUI macOS app, without a bundled Go backend or backend selector. Rust 1.98.0 is required for development. Go sources and module files have been removed from the current source tree. Normal builds and tests require no Go installation; frozen Go observations and their immutable producer history remain as conformance evidence. See [CONTRIBUTING.md](CONTRIBUTING.md) for explicit history preparation before the first test run. The maintainer waived the seven-day stable observation period and authorized retirement on 2026-10-12; all technical acceptance gates remain. Source removal does not by itself complete CUT-005 acceptance. Historical `v0.13.0` assets stay immutable; Rust-only candidates require fresh native and release evidence. ## Ecosystem Guidance - Before changing cross-tool integrations, shared conventions, or product boundaries, read [PB-2026-09-09](docs/product-boundaries.md); it is available in standalone checkouts. - Keep the standalone-first contract: this repo must install, test, and run without any other Symaira tool installed. ## Quick Reference | Agent | Format | Auto-Discovery | Setup Complexity | |-------|--------|----------------|------------------| | [Claude Code](#claude-code) | `SKILL.md` | ✅ `.claude/skills/` | Easy | | [OpenClaw](#openclaw) | YAML | Manual load | Medium | | [Hermes](#hermes) | `SKILL.md` | `~/.hermes/skills/` | Easy | | [GitHub Copilot CLI](#github-copilot-cli) | `SKILL.md` | `.agents/skills/` | Easy | | [Codex CLI](#codex-cli) | `SKILL.md` | `.agents/skills/` | Easy | | [Cursor](#cursor) | `SKILL.md` + `.mdc` | `.cursor/skills/` | Easy | | [Windsurf](#windsurf) | `SKILL.md` + `.md` | `.windsurf/skills/` | Easy | | [Continue](#continue) | `.md` rules | `.continue/rules/` | Medium | | [Cline](#cline) | `.md` rules | `.clinerules/` | Medium | | [Aider](#aider) | `CONVENTIONS.md` | Manual `--read` | Medium | ## Cross-Agent Compatibility Five agents support the **SKILL.md** standard natively: - Hermes, GitHub Copilot CLI, Codex CLI, Cursor, Windsurf These agents auto-discover from `.agents/skills/`. The symlink is not tracked: run `./scripts/setup-agents.sh --agent all` to create it. ## Skill Bundle Contents The skill bundle (`skills/SKILL.md` + sub-skills) includes: - **SKILL.md** — Main skill definition with CLI command reference - **workflow-removal-cycle.md** — Complete removal lifecycle orchestration guide - **setup-identity.md** — Identity vault setup - **plan-removal-campaign.md** — Campaign planning - **send-removal-batch.md** — Sending removal requests - **triage-broker-replies.md** — Daily inbox triage workflow - **handle-action-required.md** — Handling verifications and rejections - **daily-tick.md** — Running the tick engine - **re-scan-quarterly.md** — Quarterly re-scan workflow The **workflow-removal-cycle.md** template ties all sub-skills together into a repeatable cycle: plan → execute → wait → poll → classify → respond → tick → re-scan. It includes a decision matrix for when to use each command and error handling guidance. ## Agent-Specific Setup ### Claude Code **Format**: `SKILL.md` **Path**: `.claude/skills/symaira-eraseme/` **Status**: Run the setup script to create the untracked symlink ```bash cd /path/to/symaira-eraseme ./scripts/setup-agents.sh --agent claude ls -la .claude/skills/ # symaira-eraseme -> ../../skills ``` See [examples/claude-code/](examples/claude-code/) for details. ### OpenClaw **Format**: YAML **Path**: `~/.config/openclaw/skills/symeraseme.yaml` **Status**: Manual install required ```bash # Copy YAML skill definition cp examples/openclaw/symeraseme.yaml ~/.config/openclaw/skills/ openclaw skill load symeraseme ``` See [examples/openclaw/](examples/openclaw/) for details. ### Hermes **Format**: `SKILL.md` **Path**: `~/.hermes/skills/privacy-tools/symaira-eraseme/` **Status**: Manual install required ```bash hermes skills install https://raw.githubusercontent.com/danieljustus/Symaira-EraseMe/main/skills/SKILL.md ``` Or manually: ```bash mkdir -p ~/.hermes/skills/privacy-tools/symaira-eraseme cp skills/SKILL.md ~/.hermes/skills/privacy-tools/symaira-eraseme/ ``` See [examples/hermes/](examples/hermes/) for details. ### GitHub Copilot CLI **Format**: `SKILL.md` **Path**: `.agents/skills/` or `~/.copilot/skills/` **Status**: Auto-discovered after creating the untracked `.agents/skills/` symlink ```bash ./scripts/setup-agents.sh --agent codex ls -la .agents/skills/ # symaira-eraseme -> ../../skills ``` Verify: ```bash copilot /skills reload copilot /skills info symaira-eraseme ``` ### Codex CLI **Format**: `SKILL.md` **Path**: `.agents/skills/` or `~/.codex/skills/` **Status**: Auto-discovered after creating the untracked `.agents/skills/` symlink ```bash ./scripts/setup-agents.sh --agent codex codex /skills reload codex /skills info symaira-eraseme ``` See [examples/codex/](examples/codex/) for optional metadata file. ### Cursor **Format**: `SKILL.md` (skills) + `.mdc` (rules) **Path**: `.cursor/skills/` or `.agents/skills/` **Status**: Auto-discovered after running the setup script Create the skills symlink: ```bash ./scripts/setup-agents.sh --agent cursor ``` This checkout does not include an optional `.mdc` rules template. See [examples/cursor/](examples/cursor/) for details. ### Windsurf **Format**: `SKILL.md` (skills) + `.md` (rules) **Path**: `.windsurf/skills/` or `.agents/skills/` **Status**: Auto-discovered after running the setup script Create the skills symlink: ```bash ./scripts/setup-agents.sh --agent windsurf ``` This checkout does not include optional Windsurf rules/workflow templates. See [examples/windsurf/](examples/windsurf/) for details. ### Continue **Format**: `.md` rules **Path**: `.continue/rules/` **Status**: Manual setup required ```bash mkdir -p .continue/rules cp examples/continue/.continue/rules/symaira-eraseme.md .continue/rules/ ``` Optional: Create `.continuerc.json` for project config. See [examples/continue/](examples/continue/) for details. ### Cline **Format**: `.md` rules **Path**: `.clinerules/` **Status**: Manual setup required ```bash mkdir -p .clinerules cp examples/cline/.clinerules/00-symaira-eraseme.md .clinerules/ ``` Cline also auto-detects `AGENTS.md`, `.cursorrules`, and `.windsurfrules`. See [examples/cline/](examples/cline/) for details. ### Aider **Format**: `CONVENTIONS.md` **Path**: Project root or `~/.config/aider/` **Status**: Manual setup required ```bash cp examples/aider/CONVENTIONS.md ./CONVENTIONS.md ``` Add to `.aider.conf.yml`: ```yaml read: - CONVENTIONS.md ``` See [examples/aider/](examples/aider/) for details. ## Universal Setup Script For convenience, a setup script is provided: ```bash # Setup all supported agents ./scripts/setup-agents.sh --agent all # Setup specific agent ./scripts/setup-agents.sh --agent cursor ./scripts/setup-agents.sh --agent cline ``` ## Environment Variables Credentials are feature- and provider-specific, not global agent prerequisites. Configure the selected LLM provider only for LLM-backed features. Anthropic is the Rust provider's default; OpenAI, Ollama, openai-compatible and the local `agent` provider have their own configuration requirements. ```bash # Only for LLM calls using the Anthropic provider export ANTHROPIC_API_KEY="<your-anthropic-key>" # Optional: Data directory export SYMERASEME_DATA_DIR="$HOME/.symeraseme" ``` The current CLI/MCP path has no browser executor or CAPTCHA solver; web forms use durable manual tasks. A CAPTCHA API key does not enable browser execution. ## Testing Integration Verify your agent can access the skill: 1. **SKILL.md agents** (Hermes, Copilot, Codex, Cursor, Windsurf): ```bash # Ask your agent: "What skills are available?" "Help me remove my data from data brokers" ``` 2. **Rule-based agents** (Continue, Cline, Aider): ```bash # The agent should reference Symaira EraseMe when relevant "I want to exercise my GDPR rights" "Help me opt out of data brokers" ``` ## Troubleshooting ### SKILL.md not discovered - Ensure the skill directory name matches the `name:` in frontmatter - Check that the file is named exactly `SKILL.md` - Reload skills: `/skills reload` (Copilot/Codex) or restart the agent ### Commands not found - Install Symaira EraseMe: `brew install danieljustus/tap/symeraseme` - Or download the matching static archive from GitHub Releases - Verify: `symeraseme version` ### API key errors - Check the selected LLM provider and its feature-specific configuration. - Set `ANTHROPIC_API_KEY` only for Anthropic; the `agent` provider uses a local backend. - Ensure any required provider environment variables reach the agent process. ## Contributing To add support for a new agent: 1. Research the agent's skill/tool format 2. Create an example in `examples/<agent-name>/` 3. Update this `AGENTS.md` 4. Update `skills/SKILL.md` agent list 5. Submit a PR ## References - [agentskills.io](https://agentskills.io) — Open skill standard - [Claude Code Docs](https://docs.anthropic.com/en/docs/claude-code) - [Hermes Docs](https://hermes-agent.nousresearch.com/docs/) - [Codex Docs](https://developers.openai.com/codex/) - [Cursor Docs](https://cursor.com/docs) - [Windsurf Docs](https://docs.windsurf.com/) - [Continue Docs](https://docs.continue.dev/) - [Cline Docs](https://docs.cline.bot/) - [Aider Docs](https://aider.chat/docs/) ## macOS App (`app/SymairaEraseMe/`) - SwiftUI SPM executable (`SymairaEraseMe`). Build: `cd app/SymairaEraseMe && swift build` (local builds need `DEVELOPER_DIR` pointing at a full Xcode installation). - Depends on the shared **symaira-appkit** package, pinned exact in `Package.swift`: SymairaTheme and SymairaToolKit. - GUI work follows the Symaira Interface Guidelines shipped with `symaira-appkit`: read its `GUIDELINES.md`, then `DESIGN.md` and `docs/workspace-foundation.md` (sibling checkout, or `.build/checkouts/symaira-appkit` at a pin that ships them). Review a UI change with `python3 <symaira-appkit>/scripts/gui-review.py app/SymairaEraseMe/Sources/SymairaEraseMe` plus the manual checklist in GUIDELINES.md section 13. `Page`, `PageState`, `PageEmpty` and `SheetScaffold` in `Theme/Glassmorphism.swift` are the reference page and sheet scaffolds that GUIDELINES.md section 15 lists as a pending shared component; extend them here until AppKit ships them. - `ServerManager` launches the bundled or development `symeraseme mcp` Rust binary over HTTP; Homebrew/configured Binary Path is the fallback. - Migration context: see `docs/go-test-port-classification.md` and `TROUBLESHOOTING.md`.