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

3.4 KiB

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:

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.