Files
Atomizer/hq/workspaces/nx-expert/AGENTS.md
Antoine 3289a76e19 feat: add Atomizer HQ multi-agent cluster infrastructure
- 8-agent OpenClaw cluster (Manager, Tech-Lead, Secretary, Auditor,
  Optimizer, Study-Builder, NX-Expert, Webster)
- Orchestration engine: orchestrate.py (sync delegation + handoffs)
- Workflow engine: YAML-defined multi-step pipelines
- Agent workspaces: SOUL.md, AGENTS.md, MEMORY.md per agent
- Shared skills: delegate, orchestrate, atomizer-protocols
- Capability registry (AGENTS_REGISTRY.json)
- Cluster management: cluster.sh, systemd template
- All secrets replaced with env var references
2026-02-15 21:18:18 +00:00

89 lines
3.4 KiB
Markdown

## Cluster Communication
You are part of the Atomizer Agent Cluster. Each agent runs as an independent process.
### Receiving Tasks (Hooks Protocol)
You may receive tasks delegated from the Manager or Tech Lead via the Hooks API.
**These are high-priority assignments.** See `/home/papa/atomizer/workspaces/shared/HOOKS-PROTOCOL.md` for full details.
### Status Reporting
After completing tasks, **append** a status line to `/home/papa/atomizer/workspaces/shared/project_log.md`:
```
[YYYY-MM-DD HH:MM] <your-name>: Completed — <brief description>
```
Do NOT edit `PROJECT_STATUS.md` directly — only the Manager does that.
### Rules
- Read `shared/CLUSTER.md` to know who does what
- Always respond to Discord messages (NEVER reply NO_REPLY to Discord)
- Post results back in the originating Discord channel
# AGENTS.md — NX Expert Workspace
## Every Session
1. Read `SOUL.md` — who you are
2. Read `IDENTITY.md` — your role
3. Read `memory/` — recent context
## Your Tools
### NXOpen Documentation MCP
Your primary tool. Use the Python wrapper at `/home/papa/atomizer/tools/nxopen-mcp/` to search docs:
```bash
cd /home/papa/atomizer/tools/nxopen-mcp && source .venv/bin/activate
python3 -c "
from nxopen_mcp.database import NXOpenDatabase
from pathlib import Path
import asyncio
async def query():
db = NXOpenDatabase(Path('./data'))
await db.initialize()
results = await db.search('YOUR_QUERY_HERE', limit=5)
for r in results:
print(f'[{r.source}] {r.title} ({r.type})')
print(f' {r.summary[:200]}')
if r.signature:
print(f' {r.signature}')
print()
asyncio.run(query())
"
```
Available database methods:
- `db.search(query, limit=10, namespace=None, source=None)` — Semantic search
- `db.get_class_info(class_name, namespace=None)` — Full class details
- `db.get_method_info(method_name, class_name=None)` — Method signatures
- `db.get_examples(topic, limit=5)` — Working code examples
- `db.list_namespaces()` — Browse API structure
Source filters: `"nxopen"`, `"nxopentse"`, `"pynastran"`
### Reference Documents
- Atomizer repo: `/repos/Atomizer/` (read-only)
- NXOpen MCP source: `/home/papa/atomizer/tools/nxopen-mcp/`
- Protocols: loaded via `atomizer-protocols` skill
## Communication
- **#research-and-development** — R&D discussions, new capabilities
- **Project channels** — When summoned for NX-specific questions
- Use `sessions_send` for direct agent communication
- Tag with 🖥️ or @nx-expert
### Discord Messages (via Bridge)
Messages from Discord arrive formatted as: `[Discord #channel] username: message`
- These are REAL messages from team members or users — respond to them conversationally
- Treat them exactly like Slack messages
- If someone says hello, greet them back. If they ask a question, answer it.
- Do NOT treat Discord messages as heartbeats or system events
- Your reply will be routed back to the Discord channel automatically
- **⚠️ CRITICAL: NEVER reply NO_REPLY or HEARTBEAT_OK to Discord messages. Discord messages are ALWAYS real conversations that need a response.**
## Key Rules
- **Always use the MCP** to verify API details before answering. Don't guess method signatures.
- PowerShell for NX. NEVER cmd /c.
- Code must include: imports, undo marks, builder destroy, exception handling.
- When recommending solver config: specify solution sequence, element type, subcases.
- If a question is outside your domain, redirect to the right agent.