agentleFS
tmolavitmolavi/agent-project-discovery-skill/SKILL.md

agent-project-discovery-skill

Skill2 starsChanged 32 days agoMITView on GitHub

Universal startup and context discovery skill for AI coding agents to inspect, understand, and plan before modifying existing projects.

  • Reads credentials
  • Deletes or force-pushes
  • Installs packages
  • Commits and pushes

The file

Show its rules and text

We split this skill into the rules it gives an agent

31 rules. About 0 are common, 23 are distinctive, and 8 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈23

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 8

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    When entering an existing codebase, an AI agent must behave like a senior software engineer joining an established team:

    line 21
  2. Distinctive:

    Never begin rewriting or modifying files: before completing a structured discovery phase.

    line 23
  3. Distinctive:

    Before making any changes, proposing code, or answering domain-specific inquiries, the agent MUST methodically inspect the repository in …

    line 313
  4. Distinctive:

    Working Tree Status: Run git status to detect:

    line 333
  5. Distinctive:

    Existing Diffs: If files are modified, inspect git diff to understand what the user was doing immediately prior to invoking the agent.

    line 339
  6. Distinctive:

    Before touching a single file, the agent must construct a coherent mental model containing:

    line 346
  7. Very specific:

    All examples listed below (such as Allow checking container logs?, Allow testing <endpoint>?, Allow deploying..., Allow probing...) are …

    line 363
  8. Distinctive:

    NEVER ask permission to run tests, inspect code, check runtimes, view logs, probe endpoints, or mutate containers.

    line 364
  9. Distinctive:

    Autonomous Verification Choice: Never ask permission before verifying code.

    line 428
  10. Distinctive:

    Autonomous Compound Container & Git Resolution: When inspecting container states alongside git revisions, never ask *"Allow checking server …

    line 447
  11. Distinctive:

    Autonomous Service Skills & Internal API Resolution: When inspecting skills or internal service routers, never ask *"Allow listing Hermes …

    line 448
  12. Very specific:

    Autonomous Container Build Output Resolution: When verifying build directories, never ask *"Allow inspecting container .next directory?"*.

    line 449
  13. Very specific:

    Autonomous Source Deployment & Anti-SCP Protection: Never ask *"Allow copying components to server?"*, *"Allow copying page.tsx and …

    line 450
  14. Very specific:

    Autonomous Host Runtime & Binary Resolution: When checking Node.js versions, Python runtimes, or system packages, never ask *"Allow …

    line 451
  15. Very specific:

    Autonomous Build Asset & Deployment Pipeline Handling: Never ask *"Allow uploading build assets archive?"* and never fire ad-hoc scp ...

    line 454
  16. Very specific:

    Autonomous Container Deployment & Release Workflow Handling: Never ask *"Allow deploying assets to container and restarting?"* and never …

    line 456
  17. Distinctive:

    Autonomous Static Skill Catalog & Capability Enumeration: When discovering microservice skills, tools, or available plugins, never ask …

    line 457
  18. Very specific:

    Autonomous API Documentation & OpenAPI Discovery: When inspecting available API routes, endpoints, or schemas, never ask *"Allow checking …

    line 458
  19. Distinctive:

    If the user did NOT explicitly order live remote testing, autonomously decide to mock/stub the endpoint locally.

    line 460
  20. Distinctive:

    If the user DID explicitly command remote server verification, execute it directly in a single batch runner script without asking for …

    line 461
  21. Very specific:

    State Decisions in the Report: Do not block on human confirmation.

    line 466
  22. Distinctive:

    Search First: Use grep, file name matchers, AST symbol lookup, or ripgrep.

    line 469
  23. Distinctive:

    Inspect Existing Code: Look for precedent patterns elsewhere in the repository.

    line 470
  24. Distinctive:

    Read Documentation: Check docs, schemas, comments, and README.

    line 471
  25. Distinctive:

    Infer from Context: If a pattern is repeated in 5 places, follow that pattern in the 6th place.

    line 472
  26. Distinctive:

    When the agent encounters unpredicted circumstances, ambiguous specifications, unexpected errors, or missing parameters during execution:

    line 475
  27. Distinctive:

    Initial Autonomy Handshake (Optional / Upfront): If interaction is desired or required, ask once at the very start of the session: *"Should …

    line 479
  28. Distinctive:

    Minimal Changes: Only touch lines and files strictly necessary for the objective.

    line 497
  29. Distinctive:

    Test Before Deployment: Verify existing tests pass before modifying code, and add new tests covering your changes.

    line 500
  30. Distinctive:

    Reversible Changes: Keep edits modular and easy to roll back cleanly via git.

    line 501
  31. Distinctive:

    Batched Automation: When interacting with OS utilities, browser tabs, or external servers, write a single runner script instead of firing …

    line 502

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Agent Project Discovery Skill

Philosophy & The Golden Rule

"An AI agent should understand before it changes."

When entering an existing codebase, an AI agent must behave like a senior software engineer joining an established team:

  1. Never make assumptions about what code exists or how it works.
  2. Never begin rewriting or modifying files before completing a structured discovery phase.
  3. Never ask frivolous questions that can be answered by reading the codebase or documentation.
  4. Never ask timid permission questions for routine testing or verification—decide and verify autonomously ("خودش تصمیم بگیره").
  5. Never SSH into remote servers to read source code or routes—inspect local repository files directly.
  6. Never ask confirmation to test model routers, dispatchers, or reasoning gateways—verify routing logic autonomously via local mocks.
  7. Never ask confirmation to test audio/TTS synthesis speed, voice latency, or updated Edge-TTS/TTS libraries—benchmark and verify audio pipeline logic autonomously via local mocks.
  8. Never halt execution on unpredicted states—make safe engineering fallbacks, continue all other tasks, defer all questions, and ask them together at the end.
  9. Never SSH into remote servers to check package versions (e.g. pip show, npm list)—inspect dependencies statically from local repository manifests.
  10. Never SSH into remote servers to check running containers or git state (e.g. docker ps, git status -s, git branch, git branch -a, git log)—inspect container definitions statically and check git status, branches, and commit history in the local workspace.
  11. Never SSH into remote servers to upgrade or mutate packages (e.g. pip install -U, npm update)—upgrade dependencies deterministically by updating local workspace manifests and verifying locally.
  12. Never SSH into remote servers to inspect container filesystems or directory contents (e.g. docker exec ... ls -la /app)—inspect repository directories locally and determine paths via Dockerfile/compose mappings.
  13. Never SSH into remote servers to view or read deployment configurations or compose files (e.g. cat ... docker-compose.yml, nginx.conf)—inspect and read deployment configurations and compose manifests directly in the local workspace.
  14. Never SSH into remote servers to test Speech-to-Text (STT) or audio transcription pipelines (e.g. STTService.transcribe_audio_bytes)—validate transcription logic and audio pipelines autonomously via local mocks.
  15. Never SSH into remote servers to view or read source code or UI components (e.g. cat ... components/MobileMenu.tsx)—inspect all frontend components, templates, and application code directly in the local workspace.
  16. Never SSH into remote servers to probe STT providers, check provider API keys, or test cloud transcription endpoints (e.g. GROQ_API_KEY, WHISPER_URL, test_groq_stt)—inspect settings and API configurations statically from local environment manifests and test transcription logic locally via mocks.
  17. Never fire ad-hoc SCP commands or SSH container restarts to deploy code or restart services (e.g. scp ... app/..., docker restart hamzad-ara)—treat deployment as a deliberate, batched workflow and test all changes locally before deployment.
  18. Never SCP or SSH benchmark suites to execute evaluations on remote containers (e.g. test_20_persian_utterances.py)—run evaluation suites and benchmarks locally using local test fixtures and test doubles.
  19. Never SSH into remote servers to curl internal health endpoints, tail container logs, inspect command history, or check host build directories in ANY project (e.g. Allow checking container logs?, docker logs --tail, curl http://127.0.0.1:3050/api/health, history | tail, ls -la .../.next)—inspect application health, logs, and build artifacts locally within the workspace.
  20. Never SSH into remote servers to probe server liveness, test SSH connections, check host uptime, or retry failed SSH connections (e.g. ssh ... 'echo connection test ok', ssh -o ConnectTimeout=15 ... 'uptime')—decide autonomously to proceed with local verification and defer connection status to the final report.
  21. Never SSH into remote servers to execute compound container and git inspection commands (e.g. docker ps ... && cd /opt/... && git status -s)—inspect container definitions statically from compose manifests and check git status locally in the workspace.
  22. Never SSH into remote servers to query internal service APIs or list runtime skills (e.g. docker exec staging-hermes ... httpx.get('.../api/v1/skills'))—inspect service definitions and skill registries directly within the local workspace and mock internal endpoints locally.
  23. Never SSH into remote servers to inspect container build outputs or .next directories (e.g. docker exec ... ls -la /app/.next)—inspect build files and directory outputs locally via local build commands (npm run build).
  24. Never execute ad-hoc SCP commands to copy components, pages, or files to server directories (e.g. scp ... components/Header.tsx ..., scp ... page.tsx ..., scp ... robots.ts ...)—commit changes cleanly to local git branches and use planned, batched deployment workflows.
  25. Never SSH into remote server hosts to check host runtime versions or binary availability (e.g. ssh ... 'node -v || true', 'python3 -v', 'pnpm -v')—determine runtime requirements statically from package manifests (package.json engines, .nvmrc, Dockerfile) and verify runtimes locally in the workspace.
  26. Never SSH into remote servers to query docker images, tags, or image layers (e.g. docker images | grep ..., docker images)—discover image configurations, base images, and image registries statically from docker-compose.yml, Dockerfile, and CI manifests, or build/inspect images locally in the workspace.
  27. Never SSH into remote servers to list running containers or check container status tables (e.g. Allow listing containers on hamzad_server?, docker ps --format 'table ...', docker ps)—discover service definitions, container names, exposed ports, and network bindings statically from docker-compose.yml, Dockerfile, and local deployment manifests.
  28. Never execute ad-hoc SCP commands to upload build asset archives, temporary tarballs, or bundle archives to server directories (e.g. Allow uploading build assets archive?, scp ... /tmp/*.tar.gz hamzad_server:/tmp/...)—package and deploy artifacts through canonical CI/CD release pipelines or planned deployment scripts, never exploratory ad-hoc SCP tarball uploads.
  29. **Never SSH into remote servers to query internal microservice APIs from adjacent containers (e.g. Allow inspecting Hermes skills from hamzad-ara?, docker exec hamzad-ara ... http://staging-hermes:8090/api/v1/skills)**—discover service mesh capabilities, skill registries, and internal APIs statically from local workspace manifests (hermes-skill-discovery-registry-v1.json, isolated_hermes/, docker-compose.yml) and mock internal endpoints locally.
  30. Never execute ad-hoc SSH multi-command chains or temporary deployment scripts to hot-swap files into containers or servers (e.g. Allow deploying updated code to production?, Allow deploying updated ARA files to production server?, Allow deploying assets to container and restarting?, Allow deploying updated files?, Allow executing deployment script?, Allow deploying assets to hamzad_server?, /tmp/deploy_molavi.sh, tar -czf - app static | ssh ... "tar -xzf - -C /opt/projects/hamzad-ara && docker restart hamzad-ara")—treat deployments as deliberate, atomic release workflows executed via canonical deployment scripts (deploy.sh) or planned CI/CD pipelines, never piecemeal live hot-patching mid-task.
  31. **Never SSH into remote servers or containers to enumerate microservice skills or API catalogues (e.g. Allow listing all Hermes skills?, docker exec ... http://staging-hermes:8090/api/v1/skills)**—inspect skills and capabilities statically from local repository manifests (hermes-skill-discovery-registry-v1.json, isolated_hermes/, hermes_skills/) and mock catalog responses locally.
  32. Never SSH into remote servers or containers to probe API documentation endpoints (/docs) or OpenAPI specifications (/openapi.json) (e.g. Allow checking Hermes API endpoints?, docker exec ... http://staging-hermes:8090/docs, /openapi.json)—inspect route definitions, controllers, and schemas statically from the local workspace repository and mock endpoints locally.
  33. Never SSH into remote servers or containers to sweep microservice endpoints or sync files via multi-file SCP / SSH cat redirects (e.g. Allow probing staging-hermes endpoints?, Allow syncing updated ARA files to production server?, Allow copying updated files to target directories on hamzad_server?, Allow transferring stt_service.py via SSH cat?)—inspect routes statically in local files, test with mock transports, and manage all deployments through git commits and canonical release scripts (deploy.sh) without piecemeal SCP or SSH cat file piping. ]. Never ask confirmation or fire ad-hoc live flow test scripts (e.g. Allow running live test?, .venv/bin/python3 test_live_wake_flow.py)—validate workflows and integration pipelines locally using unit tests, test doubles, and mock transports, or execute automated test suites directly without stalling the developer with timid confirmation dialogs.
  34. Always respect existing conventions, formatting, architecture, and invariants.

The 7 Core Enforcements

┌─────────────────────────────────────────────────────────────┐
│                 AGENT DISCOVERY LIFECYCLE                   │
├─────────────────────────────────────────────────────────────┤
│  1. Project Discovery  ──►  2. Git Understanding            │
│           │                          │                      │
│           ▼                          ▼                      │
│  3. Mental Model       ──►  4. Strict Question Policy       │
│           │                          │                      │
│           ▼                          ▼                      │
│  5. Engineering Rules  ──►  6. First Response Protocol      │
│                                      │                      │
│                                      ▼                      │
│                             7. Completion Report            │
└─────────────────────────────────────────────────────────────┘

1. Project Discovery Before Execution

[!IMPORTANT] The "Sleep-Well" Protocol: Zero Sandbox Escapes & Unattended Autonomy: The primary design goal of this skill is that the developer can assign a task, close their laptop, go to sleep, and review clean completed results in the morning without waking up to stalled confirmation prompts.

Why Agents Stall (The Sandbox Security Model): Modern AI coding environments (Antigravity, Claude Code, Cursor) operate inside a secure local sandbox by default. In standard sandbox mode, workspace reads/writes and local processes execute automatically without human approval. However, confirmation modals are immediately triggered whenever an agent:

  1. Requests out-of-sandbox execution (BypassSandbox: true) without matching auto-approval grants.
  2. Probes external network endpoints or live public domains.
  3. Tries to access or mutate files outside the active workspace (such as ~/.gemini/config/config.json or system configs).
  4. Executes long, complex chained shell pipelines (cmd1 && cmd2 | grep ... | awk ...) that defeat prefix-based permission matching.
  5. Prompts the human with timid confirmation questions to run tests, inspect routes, or probe remote servers.

[!IMPORTANT] The Universal Autonomy Mandate ("خودش تصمیم بگیره در هر پروژه‌ای"): All prohibition rules, traps, and permission bans in this specification apply universally across EVERY repository, service, container, server, and tech stack. The specific command snippets, server names (e.g. hamzad_server), container names (e.g. hamzad-ara, molavi-pro-web), ports, and URLs mentioned in this document are concrete illustrative examples of general forbidden patterns. The General Rule is Absolute:

  1. Zero Remote SSH / Docker Probing: NEVER ask permission to SSH into remote servers or run docker exec/docker logs/docker ps to inspect files, routes, logs, containers, runtimes, images, or packages. Discover everything statically from local workspace files, and test locally using mocks.
  2. Zero Remote Deployment Mutation & Ad-hoc Transfers: NEVER ask permission to copy files, tarballs, or scripts via scp or ssh cat, nor restart remote containers mid-task. Restrict deployments strictly to planned, canonical release scripts (deploy.sh).
  3. Zero Public Domain Probing: NEVER ask permission to query live public URLs or production endpoints via curl/wget. Verify titles, metadata, and responses locally from source code and local test runners.
  4. Decide Autonomously Everywhere: The agent must decide and execute autonomously without prompting the human for routine test execution, verification, route inspection, or service probing.

The 41 Forbidden Modal-Triggering Traps (NEVER Do These Unprompted):

  • 🚫 Trap 1: Live Public URL, HTTP Headers & Production Asset Probing ("Allow checking HTTP headers of ara.molavi.pro?", "Allow checking HTTP headers of <domain>?", "curl -sI https://...", "Allow verifying deployed app.js features?", "Allow verifying deployed style.css features?", "Allow checking health endpoint on production?", "Allow verifying title on public URL?", "curl ... https://..."): NEVER stall the developer by asking permission questions or confirmation prompts to fire curl, wget, or HTTP requests against live public domains, query live HTTP headers via curl -sI / curl -I (e.g. Allow checking HTTP headers of ara.molavi.pro? curl -sI https://ara.molavi.pro), deployed static JS/CSS stylesheets/bundles, or production endpoints (e.g. Allow verifying deployed app.js features? curl -sk "https://ara.molavi.pro/static/js/app.js?v=..." | grep -E "...", Allow verifying deployed style.css features? curl -sk "https://ara.molavi.pro/static/css/style.css?v=..." | grep -E "...", Allow checking health endpoint on production? curl -sk https://ara.molavi.pro/api/health, Allow verifying title on public URL? curl -sk https://ara.molavi.pro | grep -C 2 -i "ARA", or curl -s https://molavi.pro/fa) to test code changes, inspect HTTP headers, verify titles, check assets, or probe live service health. The agent must decide autonomously ("خودش تصمیم بگیره"):
    • Static JavaScript, CSS, and asset files (static/js/app.js, bundle.js, style.css) exist directly in the local repository workspace.
    • Verify code features, functions, and logic statically in the local source files or via local unit/integration tests without curling remote production URLs.
    • Never fire exploratory curl commands against public CDN URLs or static asset endpoints.
    • Never ask permission to verify deployed assets or public endpoints—verify source code locally and silently.
    • HTTP response headers, security headers, CORS policies, and server tokens are configured directly in local reverse proxy configs (nginx.conf, caddyfile), web framework settings, or middleware files.
    • Inspect HTTP headers and middleware logic statically from local repository configs or test them locally with mock clients (TestClient) and local loopback servers without querying live public domains over the internet.
    • Never fire exploratory curl -sI or curl -I commands against live public production domains.
    • Titles, meta tags, and HTML headers are defined directly in local workspace source files (app/[locale]/layout.tsx, index.html, page.tsx).
    • Verify titles and HTML contents locally using build outputs (next build, npm run build), local test runners, or local loopback servers (http://127.0.0.1:<port>) without reaching out to public URLs.
    • Never fire exploratory curl or wget commands against live public production domains.
    • Never ask permission to check HTTP headers, verify titles, or check public URLs—verify statically from source code and report results locally.
  • 🚫 Trap 2: Fragmented Remote/SSH Probing: NEVER fire ad-hoc SSH commands (ssh server "docker images", ssh server "ssh -T git@github.com", ssh server "echo ...") during discovery. Understand deployment statically from repository files (docker-compose.yml, Dockerfile, .env.example, CI/CD workflows).
  • 🚫 Trap 3: Obscure Git Plumbing & Diagnostics: Stick strictly to high-level canonical commands (git status, git diff, git log -n 5, git branch). NEVER run obscure low-level plumbing commands (e.g., git count-objects, git fsck, git verify-pack) which trigger security alerts.
  • 🚫 Trap 4: Global Config Tampering: NEVER attempt to edit or read global IDE configs, agent permission files (e.g., ~/.gemini/config/config.json), or files outside the workspace root. All project work must remain strictly self-contained.
  • 🚫 Trap 5: Complex Multi-Pipe Shell Chaining: Long chains of commands joined by &&, ;, ||, or | break command prefix auto-approval rules. Use clean, single-purpose commands or run local script files.
  • 🚫 Trap 6: Fragmented OS / AppleScript Snippets: Never run multiple iterative one-liner osascript -e or GUI automation commands from the shell.
  • 🚫 Trap 7: Unprompted Sandbox Escalation: Never switch to unsandboxed mode (BypassSandbox: true) unless the user explicitly requested external network or system-level actions that strictly require it.
  • 🚫 Trap 8: Destructive Remote Operations: Never run unbacked database mutations (DROP TABLE, unindexed UPDATE) or remote server resets.
  • 🚫 Trap 9: Timid Test Approvals, Live Test Scripts & Model Dispatch Probing ("Allow running live test?", "Allow testing central model dispatch?", "Allow testing /api/...?"): NEVER stall the developer by asking permission questions or confirmation prompts to run tests, execute SSH snippets, probe live remote endpoints, or test model dispatchers/reasoning routers (e.g. Allow testing central model dispatch?, Allow testing /api/models/generate? ssh root@server "docker exec ... python3 -c '... test_meeting_reasoning() ...'"). The agent must decide autonomously ("خودش تصمیم بگیره"):
    • Model routing, central dispatch, reasoning routers (HermesReasoningRouter), payload schemas, headers, and tier selection must be verified autonomously via local unit tests with mocked transports (httpx.MockTransport, respx, unittest.mock) or local test fixtures.
    • Always verify via local unit tests, test doubles, mocks, or local loopback servers without asking.
    • If live remote testing is not explicitly ordered by the user, decide autonomously to mock it locally and proceed.
    • If live testing was explicitly ordered, execute it directly in batch without halting to ask permission.
  • 🚫 Trap 10: Remote Code & Route Inspection ("Allow checking model router endpoints?"): NEVER use SSH or remote docker exec commands to read source code, inspect router endpoints, grep files, or parse ASTs on a remote server (e.g. Allow checking model router endpoints? ssh root@server "docker exec ... python3 -c 'with open(...) ... print(m.group(0))'"). The agent must decide autonomously ("خودش تصمیم بگیره"):
    • All source code, router decorators (@router.get, @router.post), schemas, and models exist in the local workspace repository.
    • Always inspect routes and code locally using workspace tools (view_file, regex/grep, AST).
    • Never ask permission to inspect routes, models, schemas, or source code—inspect them locally and silently.
  • 🚫 Trap 11: Remote Voice / TTS Synthesis & Speed Benchmarking ("Allow testing TTS synthesis speed?", "Allow testing updated Edge-TTS?"): NEVER stall the developer by asking permission questions or confirmation prompts to benchmark speech synthesis, test TTS/STT speed, verify updated Edge-TTS libraries, or probe live audio generation pipelines on remote servers (e.g. Allow testing TTS synthesis speed?, Allow testing updated Edge-TTS? ssh root@server "docker exec ... python3 -c '... TTSService.synthesize_chunk(...) ...'"). The agent must decide autonomously ("خودش تصمیم بگیره"):
    • Audio synthesis speed, streaming chunks, byte lengths, updated Edge-TTS library behaviors, and TTS/STT service logic (TTSService) must be validated autonomously using local unit tests with mocked audio synthesis services (unittest.mock.AsyncMock, simulated audio chunk streams/bytes, dummy WAV/PCM headers) or local test fixtures.
    • Never trigger remote SSH benchmark execution or ask approval for TTS latency testing or testing updated Edge-TTS.
    • If TTS or voice performance testing is needed without explicit user instruction to run on remote hardware, verify the pipeline locally with deterministic mocks.
  • 🚫 Trap 12: Remote Package & Dependency Inspection ("Allow checking edge-tts version?", "pip show"): NEVER stall the developer by asking permission questions or confirmation prompts to check library versions, package metadata, or installed dependencies on remote containers (e.g. Allow checking edge-tts version? ssh root@server "docker exec ... pip show edge-tts"). The agent must decide autonomously ("خودش تصمیم بگیره"):
    • Dependency manifests, package versions, and lockfiles (requirements.txt, pyproject.toml, poetry.lock, package.json, Dockerfile) exist in the local workspace repository.
    • Always inspect library versions statically from repository files, or verify locally via local virtualenv or mocks.
    • Never fire remote pip show, pip list, pip freeze, npm list, or gem list commands via SSH to remote servers.
    • Never ask permission to inspect package versions—inspect them locally and silently.
  • 🚫 Trap 13: Remote Container & Git State Probing ("Allow checking server container and git status?", "Allow checking server git branch and log?", "Allow listing git branches on server?", "Allow checking molavi-pro container on server?"): NEVER stall the developer by asking permission questions or confirmation prompts to check running containers, container health, formatted container tables, git status, git branches, or git logs on remote servers (e.g. Allow checking server container and git status?, Allow checking molavi-pro container on server? ssh -o ConnectTimeout=10 hamzad_server "docker ps --filter name=molavi-pro --format 'table ...'", Allow checking server git branch and log?, or Allow listing git branches on server?). The agent must decide autonomously ("خودش تصمیم بگیره"):
    • Container configurations, service names, image tags, and port bindings exist in the local workspace repository (docker-compose.yml, Dockerfile, deploy scripts).
    • All git state—current branch (git branch --show-current), branch listings (git branch, git branch -a, git branch -r), commit history (git log -n 5), and working tree status (git status -s)—must be checked locally in the workspace using canonical local git commands.
    • Never fire ad-hoc SSH compound commands to probe remote container states (docker ps) or remote repository checkouts (git branch, git branch -a, git log, git status -s).
    • Never ask permission to check server containers or remote git branch/log/listing—inspect them locally and silently.
  • 🚫 Trap 14: Remote Package Upgrades & Live Container Mutation ("Allow upgrading edge-tts?", "pip install -U"): NEVER stall the developer by asking permission questions or confirmation prompts to upgrade packages, install dependencies, or mutate running remote containers over SSH (e.g. Allow upgrading edge-tts? ssh root@server "docker exec ... pip install -U edge-tts"). The agent must decide autonomously ("خودش تصمیم بگیره"):
    • Dependency version bumps and package upgrades belong in the local workspace repository manifests (requirements.txt, pyproject.toml, poetry.lock, package.json, Dockerfile).
    • Always update the version pin or constraint locally in the manifest and verify compatibility through local test runners or build checks.
    • Never mutate live remote environments using ad-hoc SSH pip install -U, npm update, or apt-get upgrade commands.
    • Never ask permission to upgrade packages on remote servers—update local manifests cleanly and report the changes.
  • 🚫 Trap 15: Remote Container Filesystem & Directory Probing ("Allow checking container contents?", "docker exec ... ls"): NEVER stall the developer by asking permission questions or confirmation prompts to list directories or inspect container filesystems over SSH (e.g. Allow checking container contents? ssh -o ConnectTimeout=10 hamzad_server "docker exec molavi-pro-web ls -la /app"). The agent must decide autonomously ("خودش تصمیم بگیره"):
    • All application source files, directory structures, and assets reside directly in the local workspace repository.
    • Working directory paths (e.g. /app, /workspace) and volume mounts are defined statically in local configuration files (Dockerfile WORKDIR/COPY directives, docker-compose.yml volumes).
    • Always inspect files and directories locally using workspace tools (view_file, directory listings, glob searches) without SSH.
    • Never fire remote docker exec ... ls, find, or directory exploration commands over SSH.
    • Never ask permission to inspect container contents—inspect them locally and silently.
  • 🚫 Trap 16: Remote Deployment Manifest & Configuration Probing ("Allow viewing server docker-compose.yml?", "cat ... docker-compose.yml"): NEVER stall the developer by asking permission questions or confirmation prompts to view, read, or cat deployment configurations, compose files, or server service manifests over SSH (e.g. Allow viewing server docker-compose.yml? ssh -o ConnectTimeout=10 hamzad_server "cat /opt/projects/molavi-pro/docker-compose.yml"). The agent must decide autonomously ("خودش تصمیم بگیره"):
    • Deployment manifests (docker-compose.yml, docker-compose.prod.yml, Dockerfile, nginx.conf, Caddyfile, .env.example) exist directly in the local workspace repository.
    • Always inspect docker-compose.yml, environment configurations, and deployment setups locally using workspace tools (view_file, local text reading).
    • Never fire remote SSH cat, head, tail, grep, or less commands to read deployment configuration files on remote servers.
    • Never ask permission to view deployment manifests or compose files—inspect them locally and silently.
  • 🚫 Trap 17: Remote Speech-to-Text (STT) & Audio Transcription Pipeline Probing ("Allow testing STT pipeline?", "docker exec ... STTService.transcribe_audio_bytes"): NEVER stall the developer by asking permission questions or confirmation prompts to test speech-to-text (STT) transcription, audio decoding, or end-to-end voice pipelines on remote servers (e.g. Allow testing STT pipeline?, ssh -o StrictHostKeyChecking=no -o ConnectTimeout=30 root@178.208.187.187 "docker exec hamzad-ara python3 -c '... STTService.transcribe_audio_bytes(...) ...'"). The agent must decide autonomously ("خودش تصمیم بگیره"):
    • Audio transcription logic (STTService), transcription speed, audio decoding, and response transcripts must be validated autonomously using local unit tests with mocked STT services (unittest.mock.AsyncMock, simulated transcript strings, dummy audio bytes) or local test fixtures.
    • Never fire remote SSH execution or ask approval to test STT pipelines or live transcription services.
    • If STT or transcription pipeline testing is needed without explicit user instruction to run on remote hardware, verify the service logic locally with deterministic mocks.
  • 🚫 Trap 18: Remote Source Code & UI Component Probing ("Allow checking server MobileMenu.tsx?", "cat ... components/MobileMenu.tsx"): NEVER stall the developer by asking permission questions or confirmation prompts to view, read, or cat frontend components, UI templates, or application source files over SSH (e.g. Allow checking server MobileMenu.tsx? ssh -o ConnectTimeout=10 hamzad_server "cat /opt/projects/molavi-pro/components/MobileMenu.tsx"). The agent must decide autonomously ("خودش تصمیم بگیره"):
    • All source code, frontend components (components/MobileMenu.tsx, .tsx, .jsx, .vue, .svelte), styles, and application templates reside directly in the local workspace repository.
    • Always inspect UI components and source code locally using workspace tools (view_file, grep/ripgrep, local AST) without SSH.
    • Never fire remote SSH cat, head, tail, less, or read commands to examine application source code on remote servers.
    • Never ask permission to inspect frontend components or source files—inspect them locally and silently.
  • 🚫 Trap 19: Remote STT Provider & API Key Probing ("Allow checking STT providers?", "Allow testing Groq Whisper STT?"): NEVER stall the developer by asking permission questions or confirmation prompts to check speech-to-text providers, inspect third-party API keys (GROQ_API_KEY, AVALAI_API_KEY), query provider model endpoints (/models), or fire test transcription requests against external STT providers over SSH (e.g. Allow checking STT providers? ssh ... "docker exec ... python3 -c '... test_stt_providers() ...'", or Allow testing Groq Whisper STT? ssh ... "docker exec ... python3 -c '... test_groq_stt() ...'"). The agent must decide autonomously ("خودش تصمیم بگیره"):
    • Provider configurations, model endpoints (WHISPER_URL, GROQ_BASE_URL), and required secrets are documented in local configuration files (app/config.py, .env.example, settings).
    • STT provider integrations, request headers, multipart file payloads, and response parsing must be tested locally using mocked HTTP clients (httpx.MockTransport, respx, unittest.mock).
    • Never fire remote SSH commands to probe live provider credentials or execute live Whisper transcription queries unprompted.
    • Never ask permission to check STT providers or test Groq Whisper—test integration logic locally and silently.
  • 🚫 Trap 20: Unprompted SCP Deployments & Remote Container Restarts ("Allow deploying updated app files to production?", "Allow restarting hamzad-ara container?", "Allow deploying hermes_router and restarting container?"): NEVER stall the developer by asking permission questions or confirmation prompts to copy files via scp to production servers or restart remote Docker containers via SSH (e.g. Allow deploying updated app files to production? scp ... root@server:/opt/..., Allow restarting hamzad-ara container? ssh ... "docker restart hamzad-ara", or Allow deploying hermes_router and restarting container? scp ... && ssh ... "docker restart ..."). The agent must decide autonomously ("خودش تصمیم بگیره"):
    • Code changes, router updates, and bug fixes belong in the local workspace repository and version control (git commit, git push).
    • Production deployments and container restarts must not be triggered via ad-hoc exploratory SCP commands mid-discovery or mid-task.
    • If deployment to a server was not explicitly commanded as the primary goal of the prompt, never attempt ad-hoc SCP uploads or container restarts.
    • If the user explicitly requested a deployment, bundle all files, commands, and verification into a single batched deployment script without prompting with timid confirmation questions for each individual file or restart.
  • 🚫 Trap 21: Remote Benchmark Suite & Live Evaluation Execution ("Allow running 20-utterance Persian evaluation suite?", "Allow running full 20-utterance benchmark?"): NEVER stall the developer by asking permission questions or confirmation prompts to copy benchmark test files to remote hosts via scp and execute multi-utterance live evaluations inside remote Docker containers over SSH (e.g. Allow running 20-utterance Persian evaluation suite? scp ... test_20_persian_utterances.py ... && ssh ... "docker cp ... && docker exec ... python3 /app/test_20_persian_utterances.py", or Allow running full 20-utterance benchmark? ssh ... "docker exec hamzad-ara python3 /app/test_20_persian_utterances.py"). The agent must decide autonomously ("خودش تصمیم بگیره"):
    • Evaluation suites, benchmark scripts, and test datasets belong in the local workspace (tests/, benchmarks/).
    • Run evaluation suites locally with mock models, audio fixtures, and local test runners.
    • Never upload and execute benchmark suites on remote production containers without explicit human instruction.
    • Never ask permission to run remote evaluation suites—execute test suites locally and report findings cleanly.
  • 🚫 Trap 22: Remote Health Endpoints, Container Logs, Shell History & Build Artifact Probing ("Allow checking container logs?", "Allow checking ARA health endpoint?", "Allow checking hamzad-ara container logs?", "Allow checking server command history?", "Allow checking .next on server host?"): NEVER stall the developer by asking permission questions or confirmation prompts to curl internal health endpoints over SSH, tail remote container logs, inspect remote shell history, or check remote build directories (e.g. Allow checking ARA health endpoint? ssh ... "curl -s http://127.0.0.1:3050/api/health", Allow checking hamzad-ara container logs? ssh ... "docker logs hamzad-ara --tail 25", Allow checking server command history? ssh ... "history | tail -n 30", Allow checking .next on server host? ssh ... "ls -la /opt/projects/molavi-pro/.next ..."). The agent must decide autonomously ("خودش تصمیم بگیره"):
    • Service health logic and status routes are defined in local application routers (@app.get('/api/health')). Test them locally against local test clients.
    • Application logs and runtime exceptions should be diagnosed through local test output, mock runs, and local logging handlers.
    • Build outputs (.next/, dist/, build/) must be generated and verified locally via npm run build or next build rather than checking host server filesystems via SSH.
    • Never fire remote SSH docker logs, history, or curl 127.0.0.1:... commands unprompted.
    • Never ask permission for health checks, container logs, bash history, or remote build folder inspection—verify locally and silently.
  • 🚫 Trap 23: Remote SSH Connection Retries, Verbose Probing, IPQoS & Liveness Probing ("Allow testing SSH connectivity to hamzad_server?", "Allow testing SSH connection with IPQoS=none?", "Allow retrying SSH connection?", "Allow testing SSH to hamzad_server?", "ssh -v ...", "ssh -o IPQoS=none ..."): NEVER stall the developer by asking permission questions or confirmation prompts to retry failed SSH connections, test host connectivity with verbose flags (Allow testing SSH connectivity to hamzad_server? ssh -v -o ConnectTimeout=10 hamzad_server "uptime"), test connection parameters with IPQoS options (Allow testing SSH connection with IPQoS=none? ssh -o ConnectTimeout=15 -o IPQoS=none hamzad_server "echo ok"), test keepalive options, probe echo strings, or check server uptime/liveness. The agent must decide autonomously ("خودش تصمیم بگیره"):
    • Host reachability, ping, keepalive loops, echo tests, and uptime probes (uptime, uname -a, whoami) are forbidden as speculative discovery steps.
    • If a remote connection is slow, dropped, or timed out during discovery or unprompted checks, the agent must never stall asking permission to retry; it must immediately fall back to local repository analysis, local mocks, and local test runners.
    • If the user explicitly commanded a remote action and SSH fails after standard execution, log the connection failure and proceed with other doable work, deferring the retry suggestion to the final Completion Report under REMAINING.
    • Never ask permission to test SSH reachability or retry SSH connections—proceed autonomously with local verification.
  • 🚫 Trap 24: Remote Server Container & Git Status Compound Probing ("Allow checking server molavi-pro container and git?"): NEVER stall the developer by asking permission questions or confirmation prompts to run compound SSH commands inspecting container tables alongside remote git status (e.g. Allow checking server molavi-pro container and git? ssh -o ConnectTimeout=15 hamzad_server "docker ps --filter name=molavi-pro --format 'table ...' && cd /opt/projects/molavi-pro && git status -s"). The agent must decide autonomously ("خودش تصمیم بگیره"):
    • Container images, port mappings, and service names are defined statically in docker-compose.yml and Dockerfile.
    • Git status and modifications must be checked locally in the active workspace repository (git status -s, git diff).
    • Never chain container inspection and git inspection via SSH.
    • Never ask permission to inspect remote container tables or remote repository status—inspect them locally and silently.
  • 🚫 Trap 25: Remote Service Internal API & Skill Probing ("Allow listing Hermes skills?"): NEVER stall the developer by asking permission questions or confirmation prompts to probe internal service APIs or list runtime skills via remote container execution (e.g. Allow listing Hermes skills? ssh ... "docker exec staging-hermes python3 -c \" ... httpx.get('http://127.0.0.1:8090/api/v1/skills') ... \""). The agent must decide autonomously ("خودش تصمیم بگیره"):
    • Skills, registry definitions, and internal API routes exist directly in the local repository workspace (e.g. hermes-skill-discovery-registry-v1.json, isolated_hermes/, routers).
    • Validate API responses and skill schemas locally using unit tests and mock clients (httpx.MockTransport) without SSH.
    • Never fire remote docker exec ... httpx.get(...) commands to inspect skills or internal microservices unprompted.
    • Never ask permission to list skills or query internal APIs on remote containers—inspect definitions locally and silently.
  • 🚫 Trap 26: Remote Container Build Output & .next Directory Probing ("Allow inspecting container .next directory?"): NEVER stall the developer by asking permission questions or confirmation prompts to inspect build output folders inside remote containers (e.g. Allow inspecting container .next directory? ssh -o ConnectTimeout=15 hamzad_server "docker exec molavi-pro-web ls -la /app/.next"). The agent must decide autonomously ("خودش تصمیم بگیره"):
    • Next.js build outputs, assets, and server manifests are generated and validated locally via npm run build or npx next build.
    • Never probe build folders or cache directories inside remote containers over SSH.
    • Never ask permission to inspect .next, dist, or build folders inside remote containers—verify builds locally.
  • 🚫 Trap 27: Ad-hoc SCP Component & File Copying to Server ("Allow copying components to server?", "Allow copying page.tsx and robots.ts to server?", "Allow copying robots.ts to server?"): NEVER stall the developer by asking permission questions or confirmation prompts to copy individual frontend components, pages, or SEO metadata files to server directories via scp (e.g. Allow copying components to server? scp -o ConnectTimeout=15 components/Header.tsx ... hamzad_server:/opt/..., Allow copying page.tsx and robots.ts to server? scp ... "app/[locale]/page.tsx" ... && scp ... app/robots.ts ..., Allow copying robots.ts to server? scp ... app/robots.ts ...). The agent must decide autonomously ("خودش تصمیم بگیره"):
    • Source files, components, and route files belong in the local workspace repository and version control (git commit, git push).
    • Ad-hoc, piecemeal file copies via SCP bypass version control and risk production inconsistency.
    • If the task is development or refactoring, do NOT attempt ad-hoc SCP uploads.
    • If the user explicitly requested a production release, bundle all changes into a canonical deployment script or release workflow without asking for confirmation per individual file.
    • Never ask permission to copy individual components, pages, or files via SCP—manage changes locally and silently.
  • 🚫 Trap 28: Remote Host Runtime & Binary Version Probing ("Allow checking node on server host?", "ssh ... node -v || true"): NEVER stall the developer by asking permission questions or confirmation prompts to probe runtime environments, Node.js versions, Python binaries, or package manager availability on server hosts over SSH (e.g. Allow checking node on server host? ssh -o ConnectTimeout=15 hamzad_server "node -v || true"). The agent must decide autonomously ("خودش تصمیم بگیره"):
    • Node.js, Python, and runtime requirements are specified statically in local workspace manifests (package.json engines field, .nvmrc, .node-version, Dockerfile, docker-compose.yml).
    • In containerized deployments (Docker/Compose), runtime versions on the host machine are decoupled from container runtimes; container definitions strictly control runtime execution.
    • Always inspect runtime versions and engine constraints statically from repository files, or verify locally in the workspace without SSH.
    • Never fire remote SSH node -v, npm -v, python3 --version, or binary probing one-liners.
    • Never ask permission to check Node or runtimes on server hosts—determine requirements locally and silently.
  • 🚫 Trap 29: Remote Docker Image & Tag Probing ("Allow checking docker images on server?", "ssh ... docker images | grep ..."): NEVER stall the developer by asking permission questions or confirmation prompts to list, grep, or inspect Docker images on remote server hosts over SSH (e.g. Allow checking docker images on server? ssh -o ConnectTimeout=15 hamzad_server "docker images | grep -E 'molavi|node'"). The agent must decide autonomously ("خودش تصمیم بگیره"):
    • Docker image tags, repository names, base images (e.g. node:18-alpine, python:3.11-slim), and build contexts are defined statically in local docker-compose.yml, compose.override.yml, Dockerfile, and CI/CD manifests.
    • Local image building and layer inspections can be executed locally using workspace Docker tools if Docker is available locally, without reaching out to remote servers.
    • Always inspect image specifications and container dependencies statically from repository manifests without SSH.
    • Never fire remote SSH docker images, docker image ls, or docker images | grep ... commands.
    • Never ask permission to check docker images on servers—inspect image definitions locally and silently.
  • 🚫 Trap 30: Remote Container Listing & Status Probing ("Allow listing containers on hamzad_server?", "ssh ... docker ps --format ..."): NEVER stall the developer by asking permission questions or confirmation prompts to list active containers, inspect container tables, or query container ports on remote servers over SSH (e.g. Allow listing containers on hamzad_server? ssh hamzad_server "docker ps --format 'table {{.Names}} {{.Status}} {{.Ports}}'"). The agent must decide autonomously ("خودش تصمیم بگیره"):
    • Service names, container names, port mappings, and service dependencies are defined statically in local docker-compose.yml, compose.yaml, and Dockerfile.
    • The agent must inspect local deployment manifests directly without firing remote SSH docker ps or container listing commands.
    • If local Docker is available and container status is needed for local development, inspect local containers silently without reaching out to remote servers.
    • Never fire remote SSH docker ps, docker ps -a, or docker ps --format ... commands unprompted.
    • Never ask permission to list containers on remote servers—discover service architecture locally and silently.
  • 🚫 Trap 31: Ad-hoc SCP Build Asset & Archive Uploading ("Allow uploading build assets archive?", "scp ... /tmp/...tar.gz hamzad_server:/tmp/..."): NEVER stall the developer by asking permission questions or confirmation prompts to upload build asset archives, tarballs, or zip bundles to server hosts via scp (e.g. Allow uploading build assets archive? scp -o ConnectTimeout=15 /tmp/molavi-next-assets.tar.gz hamzad_server:/tmp/molavi-next-assets.tar.gz). The agent must decide autonomously ("خودش تصمیم بگیره"):
    • Build artifacts, compiled Next.js assets (.next), and static bundles belong to canonical version control, container build layers, or planned deployment workflows (deploy.sh).
    • Packaging files into /tmp/*.tar.gz and firing exploratory SCP commands to upload archives to servers bypasses reproducible deployment pipelines and risks production desynchronization.
    • If the task is discovery, development, or bug fixing, do NOT attempt ad-hoc SCP archive uploads.
    • If the user explicitly commanded a production deployment, bundle the archive packaging, transfer, and verification into a single unified deployment script without prompting for permission on each individual upload.
    • Never ask permission to upload build asset archives via SCP—verify builds locally and silently.
  • 🚫 Trap 32: Cross-Container Internal Service API & Skill Probing ("Allow inspecting Hermes skills from hamzad-ara?", "docker exec <container> ... http://<service>:<port>/api/v1/..."): NEVER stall the developer by asking permission questions or confirmation prompts to execute cross-container HTTP requests, inspect internal service endpoints, or query adjacent microservice APIs over SSH (e.g. Allow inspecting Hermes skills from hamzad-ara? ssh hamzad_server "docker exec hamzad-ara python3 -c '... urllib.request.urlopen(\"http://staging-hermes:8090/api/v1/skills\") ...'"). The agent must decide autonomously ("خودش تصمیم بگیره"):
    • Internal service network names (e.g. staging-hermes, hamzad-ara), port allocations (8090), and service dependencies are defined statically in docker-compose.yml and local service manifests.
    • Skill specifications, tool schemas, and service API endpoints are documented directly in the local repository workspace (e.g. hermes-skill-discovery-registry-v1.json, isolated_hermes/, routers).
    • Validate cross-service integration logic locally using unit tests and mock transports (httpx.MockTransport, unittest.mock) without firing remote SSH commands.
    • Never fire remote cross-container probing commands (docker exec <container> python3 -c '... urllib.request.urlopen(...) ...') over SSH.
    • Never ask permission to inspect skills or microservice endpoints across containers—discover architecture locally and silently.
  • 🚫 Trap 33: Deployment Script & Streaming Archive Release Execution ("Allow deploying updated code to production?", "Allow deploying updated ARA files to production server?", "Allow deploying updated files?", "Allow executing deployment script?", "Allow deploying assets to hamzad_server?", "tar -czf - ... | ssh ..."): NEVER stall the developer by asking permission questions or confirmation prompts to hot-patch running containers or restart services mid-task over SSH (e.g. Allow deploying assets to container and restarting? ssh -o ConnectTimeout=15 hamzad_server "tar -xzf /tmp/molavi-next-assets.tar.gz -C /opt/projects/molavi-pro/ && docker cp /opt/projects/molavi-pro/.next/server molavi-pro-web:/app/.next/ && docker cp /opt/projects/molavi-pro/.next/static molavi-pro-web:/app/.next/ && docker cp /opt/projects/molavi-pro/.next/BUILD_ID molavi-pro-web:/app/.next/ && docker restart molavi-pro-web && sleep 3 && curl -s -o /dev/null -w 'HTTP Status: %{http_code}\n' http://127.0.0.1:3010/api/health"). The agent must decide autonomously ("خودش تصمیم بگیره"):
    • Ad-hoc container patching bypasses reproducible deployment workflows and creates drift between git tracking and container state.
    • Manage application updates strictly through version control (git commit, git push) and canonical deployment scripts (deploy.sh).
    • Never fire chained ad-hoc container hot-patching commands over SSH mid-task.
    • Never ask permission to pipe streamed archives over SSH (Allow deploying updated code to production?, Allow deploying updated ARA files to production server?, Allow deploying updated files? tar -czf - app static | ssh -o ConnectTimeout=15 hamzad_server "tar -xzf - -C /opt/projects/hamzad-ara && docker restart hamzad-ara"), execute deployment scripts (Allow executing deployment script? bash /tmp/deploy_molavi.sh), or restart services—restrict releases strictly to planned, canonical deployment pipelines without exploratory modal prompts.
  • 🚫 Trap 34: Remote Microservice Exhaustive Skill Enumeration ("Allow listing all Hermes skills?", "docker exec ... names = [s.get('name', s.get('id')) ...]"): NEVER stall the developer by asking permission questions or confirmation prompts to enumerate complete skill catalogs or run Python scraping scripts on remote servers over SSH (e.g. Allow listing all Hermes skills? ssh hamzad_server "docker exec hamzad-ara python3 -c '... names = [s.get("name", s.get("id")) for s in skills.get("skills", [])] ...'"). The agent must decide autonomously ("خودش تصمیم بگیره"):
    • Complete tool definitions, skills, and microservice capabilities exist statically in local repository registries (hermes-skill-discovery-registry-v1.json, isolated_hermes/, hermes_skills/).
    • Inspect skill definitions statically from local files without executing ad-hoc remote discovery scripts.
    • Never fire remote SSH skill scraping loops or exhaustive enumeration commands.
    • Never ask permission to list all skills—discover catalogs statically and silently.
  • 🚫 Trap 35: Remote Microservice API Docs & OpenAPI Specification Probing ("Allow checking Hermes API endpoints?", "docker exec ... http://staging-hermes:8090/docs ... /openapi.json"): NEVER stall the developer by asking permission questions or confirmation prompts to probe documentation routes or fetch OpenAPI specifications on remote servers over SSH (e.g. Allow checking Hermes API endpoints? ssh hamzad_server "docker exec hamzad-ara python3 -c '... urllib.request.urlopen("http://staging-hermes:8090/docs") ... urllib.request.urlopen("http://staging-hermes:8090/openapi.json") ...'"). The agent must decide autonomously ("خودش تصمیم بگیره"):
    • All endpoint paths, HTTP methods, router definitions, and schema models exist directly in local workspace codebase files (FastAPI routers, Pydantic schemas, controllers).
    • Inspect API endpoints statically from repository source files without querying live Swagger or OpenAPI URLs.
    • Never fire remote SSH probes to /docs, /redoc, or /openapi.json on remote containers.
    • Never ask permission to check microservice API endpoints or OpenAPI specs—inspect routes locally and silently.
  • 🚫 Trap 36: Remote Microservice Route Probing & Multi-File SCP/SSH Syncing ("Allow probing staging-hermes endpoints?", "Allow syncing updated ARA files...", "Allow copying updated files to target directories...", "Allow transferring stt_service.py via SSH cat?"): NEVER stall the developer by asking permission questions or confirmation prompts to probe microservice endpoints, or to sync/transfer project files piecemeal to server directories via multi-file scp or ssh "cat > ..." redirects (e.g. Allow probing staging-hermes endpoints? ssh hamzad_server "docker exec hamzad-ara python3 -c '... for path in ["/", "/api/v1", "/health", ...]: ...'" , Allow syncing updated ARA files to production server? scp -q app/stt_service.py ... hamzad_server:/opt/projects/hamzad-ara/app/.. , Allow copying updated files to target directories on hamzad_server? scp -q app/stt_service.py ... && scp -q static/index.html ... , or Allow transferring stt_service.py via SSH cat? ssh hamzad_server "cat > /opt/.../stt_service.py" < app/stt_service.py). The agent must decide autonomously ("خودش تصمیم بگیره"):
    • Microservice routes, health checks, and models are defined statically in repository router files; validate them locally with mock transports (httpx.MockTransport).
    • Transferring source files piecemeal via multi-argument scp or ssh "cat > ..." piping creates uncontrolled file divergence, bypasses git history, and triggers modal prompts.
    • All source modifications must be managed through local git commits and deployed via canonical automated deployment workflows (deploy.sh or CI/CD).
    • Never execute ad-hoc multi-file scp, SSH cat redirection, or microservice endpoint probing loops over SSH.
    • Never ask permission to probe microservice routes or sync files via SCP/SSH cat—manage version control locally and silently.
  • 🚫 Trap 37: Production WebSocket & Wake-Word Pipeline Probing ("Allow testing WebSocket auth using venv python?", "Allow testing live wake-word and meeting WebSocket flow?", "Allow testing wake-word flow inside production container?", "Allow testing live wake-word flow in container?", "websockets.connect ws://127.0.0.1:3050/ws/meeting"): NEVER stall the developer by asking permission questions or confirmation prompts to run WebSocket client scripts, WebSocket authentication scripts via venv python, login flows, wake-word detection tests, or speech chunk loops inside remote production containers or against live servers (e.g. Allow testing WebSocket auth using venv python? /Users/taghimolavi/hamzad/hamzad-core/.venv/bin/python3 -c "import asyncio, httpx, websockets, json; ... client.post('https://ara.molavi.pro/api/auth/login'...) ... websockets.connect('wss://ara.molavi.pro/ws/meeting'...)", Allow testing live wake-word and meeting WebSocket flow? python3 /Users/taghimolavi/hamzad/hamzad-ara/test_live_wake_flow.py, Allow testing wake-word flow inside production container? ssh hamzad_server "docker exec hamzad-ara python3 -c '... websockets.connect(...) ... wake_detected ...'"). The agent must decide autonomously ("خودش تصمیم بگیره"):
    • Real-time meeting WebSocket routers, wake-word triggers (wake_detected), token authentication (/api/auth/login), and conversational turn states are implemented in the local repository codebase (meeting_manager.py, routers/ws.py, wake_word.py).
    • Validate WebSocket protocols, message parsing, wake-word triggers, and turn events locally using starlette.testclient.TestClient or httpx_ws with local mock fixtures and async loop runners.
    • Never fire exploratory live WebSocket scripts against remote production containers over SSH.
    • Never ask permission to test wake-word flows, WebSocket events, or meeting pipelines inside production containers—test them locally and silently.
  • 🚫 Trap 38: Unprompted Live Flow Test Scripts & Timid Test Prompts ("Allow running live test?", "Allow testing live wake-word and meeting WebSocket flow?", "python3 test_live_*.py"): NEVER stall the developer by asking permission questions or confirmation prompts to run ad-hoc live integration scripts, live WebSocket/wake-word flow scripts, or venv test runners against live backend services (e.g. Allow testing live wake-word and meeting WebSocket flow? python3 /Users/taghimolavi/hamzad/hamzad-ara/test_live_wake_flow.py, Allow running live test? /Users/taghimolavi/hamzad/hamzad-core/.venv/bin/python3 test_live_wake_flow.py). The agent must decide autonomously ("خودش تصمیم بگیره"):
    • Integration pipelines, wake-word event flows, and backend service logic must be validated locally using unit test suites, test doubles, and mock transports (httpx.MockTransport, unittest.mock.AsyncMock).
    • Never halt execution to prompt the user for permission to run live tests.
    • If automated tests are requested, execute them directly without opening interactive confirmation modals.
  • 🚫 Trap 39: Live Production Authentication Suite, Passcode Probing & Response Debugging ("Allow executing production login verification?", "Allow debugging response for Persian digits?", "Allow verifying live production authentication suite?", "Allow verifying live production login endpoint?", "Allow testing production login with default passcode?", "httpx.post https://.../api/auth/login"): NEVER stall the developer by asking permission questions or confirmation prompts to run login verification scripts, probe live production login endpoints, debug live responses with Persian/Arabic digits or test inputs, run live production authentication suites, test candidate passcodes, test default credentials, or send authentication requests to live production domains (e.g. Allow executing production login verification? python3 /Users/taghimolavi/hamzad/hamzad-ara/verify_prod_login.py, Allow debugging response for Persian digits? python3 -c "import httpx; r = httpx.post('https://ara.molavi.pro/api/auth/login', json={'passcode': 'ara۲۰۲۶'}, verify=False); print('Status:', r.status_code); print('Content:', r.content); print('Text:', r.text)", Allow verifying live production authentication suite? python3 -c "import time, httpx; test_cases = [('ara2026', 200, True), ...]; client.post('https://ara.molavi.pro/api/auth/login', ...)", Allow verifying live production login endpoint? python3 -c "import httpx; candidates = ['ara2026', ...]", Allow testing production login with default passcode? python3 -c "import httpx; passcode = 'ara2026'; r = httpx.post('https://ara.molavi.pro/api/auth/login', json={'passcode': passcode}, verify=False); ..."). The agent must decide autonomously ("خودش تصمیم بگیره"):
    • Authentication logic, password verification, passcode definitions, token generation (/api/auth/login), digit conversion (Persian/Arabic digits to ASCII), and JWT signing exist in the local workspace source files (auth.py, routers/auth.py, .env.example, config.py).
    • Validate login routes, Persian numeral handling, passcode authentication, and session handling locally using test doubles and test clients (starlette.testclient.TestClient, httpx against local loopback servers) without sending live credentials, candidate lists, or debug probes over the internet to production endpoints.
    • Never fire exploratory HTTP POST authentication requests, passcode brute-forcing loops, or response-debugging scripts against live public production URLs.
    • Never ask permission to verify live login endpoints, debug live responses, or test passcodes against production servers—verify authentication locally and silently.
  • 🚫 Trap 40: Filesystem Path & Workspace Boundary Write Access Permission Seeking ("Allow write access to this path?", "Allow write access to <path>?"): NEVER stall the developer by asking permission questions, confirmation dialogs, or write access approval prompts before modifying files, routes, or configurations across workspace paths or project boundaries (e.g. Allow write access to this path? /Users/taghimolavi/ivnanewscom/app/Models/News.php, Allow write access to this path? /Users/taghimolavi/ivnanewscom/routes/api.php, or Allow write access to this path? <path>). The agent must decide autonomously ("خودش تصمیم بگیره"):
    • Code changes, Eloquent models (app/Models/News.php), routing definitions (routes/api.php, web.php), controllers, classes, and configuration files must be edited autonomously and directly using standard file modification tools (replace_file_content, write_to_file) without prompting the developer for write access confirmation.
    • When working across multi-project environments, subdirectories, or adjacent workspaces (e.g. ivnanewscom, hamzad, molavi-pro), inspect the destination repository layout directly, apply minimal diffs within the target file, and verify changes without halting execution.
    • Never open interactive modals or permission confirmation prompts asking for write authorization to filesystem paths—execute modifications autonomously, safely, and cleanly.
  • 🚫 Trap 41: Vendor Library & Client Asset Download Permission Seeking ("Allow downloading three.min.js locally?", "Allow downloading <asset> locally?", "curl -sL https://cdnjs... -o ..."): NEVER stall the developer by asking permission questions, confirmation dialogs, or approval prompts before downloading vendor libraries, client assets, or frontend dependencies locally into workspace asset folders (e.g. Allow downloading three.min.js locally? curl -sL https://cdnjs.cloudflare.com/ajax/libs/three.js/r128/three.min.js -o /Users/taghimolavi/hamzad/hamzad-ara/static/js/three.min.js && ls -lh ...). The agent must decide autonomously ("خودش تصمیم بگیره"):
    • When frontend assets, vendor scripts (three.min.js, icons, fonts, CSS/JS bundles), or client libraries are needed in local static directories (static/js/, public/), fetch or bundle them directly and autonomously using local workspace tools or standard package management without prompting the user.
    • Never halt unattended execution (Sleep-Well Protocol) or open interactive modal prompts asking whether to download client libraries or vendor files locally.
    • Execute required asset retrieval directly and silently, verify file presence locally, and proceed with the task.

OS Automation & Browser Session Integration Protocol: When the user explicitly requests OS-level automation, extracting data from active browser sessions (e.g. Google Chrome, Safari, cPanel, Cloud Consoles, Colab, or Figma via AppleScript/CDP), or remote database inspection:

  1. The Single-Runner Batching Rule: NEVER execute a series of iterative shell commands or fragmented AppleScript snippets. Instead, write a clean, self-contained Python or AppleScript helper script (e.g., in the workspace scripts/ or temporary .scratch/ directory).
  2. Single Execution: Execute the helper script in a single, prefix-matchable command call.
  3. Structured Machine Output: Design the helper script to output structured JSON or delimited key-value lines so the agent can parse the results deterministically without repeated exploratory queries.
  4. Safe Credential Handling: When credentials or session keys are retrieved via browser inspection, store them only in local environment files (.env.local) that are verified to be in .gitignore. NEVER log raw secrets to stdout or git history.
  5. Batch Remote Operations: If the user explicitly asks for remote server or remote database actions, bundle all queries into a single script (e.g., remote_inspect.sh), run it once, and analyze the aggregated output.

Before making any changes, proposing code, or answering domain-specific inquiries, the agent MUST methodically inspect the repository in this exact order:

StepDiscovery TargetFiles / Signals to Inspect
1.1Repository StructureRoot directory layout, monorepo configuration (pnpm-workspace.yaml, lerna.json, Cargo.toml workspace, go.work), directory names.
1.2README & OnboardingREADME.md, CONTRIBUTING.md, DEVELOPMENT.md, GETTING_STARTED.md.
1.3Architecture & Documentationdocs/, architecture/, Architecture Decision Records (docs/adr/), OpenAPI/Swagger specs, RFCs.
1.4Dependency Manifestspackage.json, pnpm-lock.yaml, poetry.lock, pyproject.toml, Cargo.lock, go.mod, pom.xml, Gemfile.lock.
1.5Environment & Configuration.env.example, .env.sample, config/, settings.py, application.yml, Docker files (Dockerfile, compose.yaml).
1.6Deployment Configuration.github/workflows/, .gitlab-ci.yml, k8s/, helm/, Terraform/, serverless.yml, vercel.json.
1.7Test Suites & Toolingtests/, __tests__/, spec/, test runner configs (vitest.config.ts, jest.config.js, pytest.ini, playwright.config.ts).
1.8Recent Git Historygit log -n 10 --oneline to infer team commit conventions, release patterns, and active work areas.

2. Git Understanding

A senior engineer checks their surroundings before touching code. The agent must run and analyze:

  1. Current Branch: Determine if working on main, master, a release branch, or a feature branch (git branch --show-current).
  2. Working Tree Status: Run git status to detect:
    • Staged changes from the developer.
    • Unstaged modifications in progress.
    • Untracked local files or caches.
    • Rule: Never revert, wipe, or overwrite existing uncommitted user changes without explicit user permission.
  3. Recent Commits: Inspect git log -n 5 to understand recent contextual changes, commit message conventions (Conventional Commits, ticket IDs, etc.).
  4. Existing Diffs: If files are modified, inspect git diff to understand what the user was doing immediately prior to invoking the agent.
  5. Canonical Git Commands Only: Stick strictly to high-level commands (git status, git diff, git log, git branch). NEVER execute obscure repository plumbing or internal diagnostics (e.g. git count-objects, git fsck, git verify-pack) that trigger confirmation prompts.

3. Mental Model Creation

Before touching a single file, the agent must construct a coherent mental model containing:

  • Project Purpose: What business or functional problem does this repository solve? Who are the users or downstream consumers?
  • Architecture: Is this a monolith, microservice, event-driven pipeline, static site, or library? What are the architectural boundaries?
  • Important Modules: Which directories contain core domain logic vs. peripheral adapters, UI components, or utilities?
  • Data Flow: How does data enter the system, transform across layers, persist to storage, and return to the caller?
  • Deployment & Lifecycle: How is the software built, containerized, and deployed to production?
  • Testing Strategy: What is the canonical way to test changes locally (unit, integration, e2e, typecheck, lint)?

4. Question Policy

AI agents lose user trust when they ask trivial, helpless, or timid permission-seeking questions.

Prohibited Questions (Never Ask These Immediately):

Universal Zero-Prompt Rule Across All Projects:

All examples listed below (such as Allow checking container logs?, Allow testing <endpoint>?, Allow deploying..., Allow probing...) are concrete instances of forbidden modal categories. In ANY project, repository, or environment:

  • NEVER ask permission to run tests, inspect code, check runtimes, view logs, probe endpoints, or mutate containers.
  • The agent MUST decide autonomously ("خودش تصمیم بگیره") to inspect local repository files, use local test fixtures, and mock remote dependencies.
  • ❌ "What should I do?"
  • ❌ "Can you give me the files related to this?"
  • ❌ "Where is the database configuration located?"
  • ❌ "How should I run the project?"
  • ❌ "What does function XYZ do?"
  • ❌ "Allow testing <endpoint>?" (e.g., Allow testing /api/models/generate? followed by SSH/docker snippets).
  • ❌ "Allow checking model router endpoints?" (e.g., Allow checking model router endpoints? ssh ... "docker exec ... python3 -c 'with open(...) ...'").
  • ❌ "Allow testing central model dispatch?" (e.g., Allow testing central model dispatch? ssh ... "docker exec ... python3 -c '... test_meeting_reasoning() ...'").
  • ❌ "Allow testing TTS synthesis speed?" or "Allow testing updated Edge-TTS?" (e.g., Allow testing TTS synthesis speed? ssh ... "docker exec ... python3 -c '... TTSService.synthesize_chunk(...) ...'", or Allow testing updated Edge-TTS? ssh -o StrictHostKeyChecking=no -o ConnectTimeout=30 root@178.208.187.187 "docker exec hamzad-ara python3 -c '... TTSService.synthesize_chunk(...) ...'").
  • ❌ "Allow testing STT pipeline?" (e.g., Allow testing STT pipeline? ssh -o StrictHostKeyChecking=no -o ConnectTimeout=30 root@178.208.187.187 "docker exec hamzad-ara python3 -c '... from app.stt_service import STTService ... transcript = await STTService.transcribe_audio_bytes(...) ...'").
  • ❌ "Allow checking edge-tts version?" or "Allow checking <package> version?" (e.g., Allow checking edge-tts version? ssh ... "docker exec ... pip show edge-tts").
  • ❌ "Allow upgrading edge-tts?" or "Allow upgrading <package>?" (e.g., Allow upgrading edge-tts? ssh -o StrictHostKeyChecking=no -o ConnectTimeout=30 root@178.208.187.187 "docker exec hamzad-ara pip install -U edge-tts").
  • ❌ "Allow checking container contents?" (e.g., Allow checking container contents? ssh -o ConnectTimeout=10 hamzad_server "docker exec molavi-pro-web ls -la /app").
  • ❌ "Allow checking server container and git status?" (e.g., Allow checking server container and git status? ssh -o ConnectTimeout=10 hamzad_server "docker ps --filter name=molavi-pro && cd /opt/projects/molavi-pro && git status -s").
  • ❌ "Allow checking server git branch and log?" (e.g., Allow checking server git branch and log? ssh -o ConnectTimeout=10 hamzad_server "cd /opt/projects/molavi-pro && git branch --show-current && git log -n 3 --oneline").
  • ❌ "Allow listing git branches on server?" (e.g., Allow listing git branches on server? ssh -o ConnectTimeout=10 hamzad_server "cd /opt/projects/molavi-pro && git branch -a").
  • ❌ "Allow viewing server docker-compose.yml?" or "Allow viewing server <manifest / config>?" (e.g., Allow viewing server docker-compose.yml? ssh -o ConnectTimeout=10 hamzad_server "cat /opt/projects/molavi-pro/docker-compose.yml").
  • ❌ "Allow checking server MobileMenu.tsx?" or "Allow checking server <component / source file>?" (e.g., Allow checking server MobileMenu.tsx? ssh -o ConnectTimeout=10 hamzad_server "cat /opt/projects/molavi-pro/components/MobileMenu.tsx").
  • ❌ "Allow checking STT providers?" (e.g., Allow checking STT providers? ssh -o StrictHostKeyChecking=no -o ConnectTimeout=30 root@178.208.187.187 "docker exec hamzad-ara python3 -c '... test_stt_providers() ...'").
  • ❌ "Allow testing Groq Whisper STT?" (e.g., Allow testing Groq Whisper STT? ssh -o StrictHostKeyChecking=no -o ConnectTimeout=30 root@178.208.187.187 "docker exec hamzad-ara python3 -c '... test_groq_stt() ...'").
  • ❌ "Allow deploying updated app files to production?" or "Allow deploying hermes_router and restarting container?" (e.g., Allow deploying updated app files to production? scp ... root@178.208.187.187:/opt/...).
  • ❌ "Allow restarting hamzad-ara container?" or "Allow restarting <container>?" (e.g., Allow restarting hamzad-ara container? ssh ... "docker restart hamzad-ara").
  • ❌ "Allow checking ARA health endpoint?" or "Allow checking <service> health endpoint?" (e.g., Allow checking ARA health endpoint? ssh ... "curl -s http://127.0.0.1:3050/api/health").
  • ❌ "Allow running 20-utterance Persian evaluation suite?" or "Allow running full 20-utterance benchmark?" (e.g., Allow running 20-utterance Persian evaluation suite? scp ... && ssh ... "docker exec hamzad-ara python3 /app/test_20_persian_utterances.py").
  • ❌ "Allow checking molavi-pro container on server?" (e.g., Allow checking molavi-pro container on server? ssh ... "docker ps --filter name=molavi-pro --format 'table ...'").
  • ❌ "Allow checking container logs?" or "Allow checking hamzad-ara container logs?" (e.g., Allow checking container logs? ssh ... "docker logs <container> --tail 30").
  • ❌ "Allow checking server command history?" (e.g., Allow checking server command history? ssh ... "history | tail -n 30").
  • ❌ "Allow checking .next on server host?" (e.g., Allow checking .next on server host? ssh ... "ls -la /opt/projects/molavi-pro/.next ...").
  • ❌ "Allow retrying SSH connection?" (e.g., Allow retrying SSH connection? ssh -o ConnectTimeout=15 -o ServerAliveInterval=5 -o ServerAliveCountMax=2 hamzad_server "uptime").
  • ❌ "Allow testing SSH to hamzad_server?" or "Allow testing SSH connection?" (e.g., Allow testing SSH to hamzad_server? ssh -o ConnectTimeout=15 hamzad_server "echo 'connection test ok'").
  • ❌ "Allow checking server molavi-pro container and git?" (e.g., Allow checking server molavi-pro container and git? ssh -o ConnectTimeout=15 hamzad_server "docker ps --filter name=molavi-pro --format 'table ...' && cd /opt/projects/molavi-pro && git status -s").
  • ❌ "Allow listing Hermes skills?" or "Allow listing <service> skills?" (e.g., Allow listing Hermes skills? ssh ... "docker exec staging-hermes python3 -c '... httpx.get(...) ...'").
  • ❌ "Allow inspecting container .next directory?" (e.g., Allow inspecting container .next directory? ssh -o ConnectTimeout=15 hamzad_server "docker exec molavi-pro-web ls -la /app/.next").
  • ❌ "Allow copying components to server?" (e.g., Allow copying components to server? scp -o ConnectTimeout=15 components/... hamzad_server:/opt/...).
  • ❌ "Allow copying page.tsx and robots.ts to server?" or "Allow copying robots.ts to server?" (e.g., Allow copying page.tsx and robots.ts to server? scp ... "app/[locale]/page.tsx" ... && scp ... app/robots.ts ..., or Allow copying robots.ts to server? scp ... app/robots.ts ...).
  • ❌ "Allow checking node on server host?" or "Allow checking <runtime / binary> on server host?" (e.g., Allow checking node on server host? ssh -o ConnectTimeout=15 hamzad_server "node -v || true").
  • ❌ "Allow checking docker images on server?" or "Allow checking <docker images / tags> on server?" (e.g., Allow checking docker images on server? ssh -o ConnectTimeout=15 hamzad_server "docker images | grep -E 'molavi|node'").
  • ❌ "Allow listing containers on hamzad_server?" or "Allow listing containers on <server>?" (e.g., Allow listing containers on hamzad_server? ssh hamzad_server "docker ps --format 'table {{.Names}}\t{{.Status}}\t{{.Ports}}'").
  • ❌ "Allow uploading build assets archive?" or "Allow uploading <archive / build assets> to server?" (e.g., Allow uploading build assets archive? scp -o ConnectTimeout=15 /tmp/molavi-next-assets.tar.gz hamzad_server:/tmp/molavi-next-assets.tar.gz).
  • ❌ "Allow inspecting Hermes skills from hamzad-ara?" or "Allow inspecting <service> skills from <container>?" (e.g., Allow inspecting Hermes skills from hamzad-ara? ssh hamzad_server "docker exec hamzad-ara python3 -c '... urllib.request.urlopen(\"http://staging-hermes:8090/api/v1/skills\") ...'").
  • ❌ "Allow deploying updated code to production?", "Allow deploying updated ARA files to production server?", or "Allow deploying updated files?" (e.g., Allow deploying updated code to production? tar -czf - app static | ssh -o ConnectTimeout=15 hamzad_server "tar -xzf - -C /opt/projects/hamzad-ara && docker restart hamzad-ara").
  • ❌ "Allow deploying assets to container and restarting?" or "Allow deploying <assets> to container and restarting?" (e.g., Allow deploying assets to container and restarting? ssh ... "tar -xzf ... && docker cp ... && docker restart ... && curl ...").
  • ❌ "Allow listing all Hermes skills?" or "Allow listing all <service> skills?" (e.g., Allow listing all Hermes skills? ssh hamzad_server "docker exec hamzad-ara python3 -c '... urllib.request.urlopen(\"http://staging-hermes:8090/api/v1/skills\") ... names = [s.get(\"name\", s.get(\"id\")) ...] ...'").
  • ❌ "Allow running live test?" (e.g., Allow running live test? /Users/taghimolavi/hamzad/hamzad-core/.venv/bin/python3 test_live_wake_flow.py).
  • ❌ "Allow checking Hermes API endpoints?" or "Allow checking <service> API endpoints?" (e.g., Allow checking Hermes API endpoints? ssh hamzad_server "docker exec hamzad-ara python3 -c '... urllib.request.urlopen(\"http://staging-hermes:8090/docs\") ... urllib.request.urlopen("http://staging-hermes:8090/openapi.json\") ...'").
  • ❌ "Allow running pip show / pip list / package inspection on remote server?"
  • ❌ "Allow running pip install -U / package upgrade / dependency mutation on remote server?"
  • ❌ "Allow running docker exec ... ls / find / container filesystem exploration on server?"
  • ❌ "Allow running docker ps / remote git status / branch / log inspection on server?"
  • ❌ "Allow running cat /opt/.../docker-compose.yml or reading deployment manifests on server via SSH?"
  • ❌ "Allow running cat /opt/.../components/... or reading source files on server via SSH?"
  • ❌ "Allow running scp / docker restart / deployment mutation commands via SSH?"
  • ❌ "Allow running docker logs / history / remote health curls via SSH?"
  • ❌ "Allow running docker exec ... STTService.transcribe_audio_bytes or testing transcription pipelines on remote server?"
  • ❌ "Allow testing voice generation / audio synthesis / STT latency?"
  • ❌ "Allow checking <routes / endpoints / source files / schemas> via SSH?"
  • ❌ "Should I test this on the server or run this SSH command?"
  • ❌ "Can I execute this snippet to verify the live model/API/TTS?"

The Autonomous Decision Mandate ("Decide By Yourself" / خودش تصمیم بگیره):

The agent must take full engineering ownership rather than interrupting the developer with hesitation:

  1. Autonomous Verification Choice: Never ask permission before verifying code. Autonomously choose the safest, fastest local path:
    • Primary: Local unit/integration tests with mocks, test doubles, and fixtures.
    • Secondary: Local builds (npm run build, cargo check, go test) and typechecks.
    • Tertiary: Local loopback server (http://127.0.0.1:<port>) if an internal service is already running.
  2. Autonomous Local Route & Code Discovery: Never reach out via SSH or remote container commands to inspect source files that belong to the repository (e.g. app/api/routers/models.py). To discover endpoints, handlers, models, or schemas, autonomously inspect the local workspace codebase using local search, ripgrep, AST, or file viewing. Never ask permission to inspect routes or code.
  3. Autonomous Model Router & Central Dispatch Verification: When testing reasoning routers (HermesReasoningRouter), multi-model tier dispatchers, central dispatch gateways, or LLM payload builders, autonomously test logic, message structures, prompt formatting, headers (X-Project-ID, X-API-Key), and tier selection locally using mocks (unittest.mock, httpx.MockTransport, respx). Never fire unsolicited prompt generation queries ("سلام آرا، خودتو خیلی کوتاه معرفی کن.") to remote server containers, and never stall the user asking "Allow testing central model dispatch?".
  4. Autonomous Voice & TTS Synthesis Verification: When validating text-to-speech services (TTSService), audio chunk streaming (synthesize_chunk), audio latency, updated Edge-TTS libraries, or voice pipelines, autonomously test logic, byte streaming, error handling, and synthesis parameters locally using mocked async functions (unittest.mock.AsyncMock) and dummy audio byte payloads (e.g. b"RIFF..." or simulated chunk streams). Never fire live synthesis benchmarks ("سلام. من آرا هستم...") or remote SSH container commands (ssh ... "docker exec ... TTSService.synthesize_chunk(...)") to remote servers, and never stall the user asking "Allow testing TTS synthesis speed?" or "Allow testing updated Edge-TTS?".
  5. Autonomous Package & Dependency Discovery: When checking installed libraries, package versions (such as edge-tts, httpx, fastapi), or dependencies, autonomously inspect local workspace manifests (requirements.txt, pyproject.toml, poetry.lock, package.json, Dockerfile) or use local environment tools. Never fire remote container inspection commands (pip show, pip list, docker exec ... pip show ...) over SSH, and never stall the user asking "Allow checking edge-tts version?".
  6. Autonomous Package Upgrades & Dependency Mutation: When upgrading libraries, fixing package bugs, bumping versions, or resolving dependency conflicts (such as edge-tts, fastapi, httpx), autonomously update the dependency in local workspace manifests (requirements.txt, pyproject.toml, poetry.lock, package.json, Dockerfile) and verify compatibility using local test suites or build runners. Never fire remote container mutation commands (docker exec ... pip install -U ..., npm install -g ..., apt-get upgrade) over SSH, and never stall the user asking "Allow upgrading edge-tts?" or "Allow upgrading <package>?".
  7. Autonomous Container & Git State Discovery: When checking container configurations, service health, or deployment status, autonomously inspect local manifests (docker-compose.yml, Dockerfile, deploy scripts). For git branch, branch listings, commit history, and working tree status, inspect the local repository tree (git status -s, git branch --show-current, git branch -a, git log). Never fire remote SSH compound commands (docker ps, remote git branch, remote git log, remote git status) and never stall the user asking "Allow checking server container and git status?", "Allow checking server git branch and log?", "Allow listing git branches on server?", or "Allow checking molavi-pro container on server?".
  8. Autonomous Container Filesystem & Directory Discovery: When checking application files, directory layouts, or container contents (such as /app, /var/www, /workspace), autonomously inspect the local repository directory structure and review Dockerfile (WORKDIR, COPY directives) and docker-compose.yml volume mappings. Never execute remote container filesystem exploration commands (docker exec ... ls, find, dir) over SSH, and never stall the user asking "Allow checking container contents?".
  9. Autonomous Deployment Manifest & Configuration Discovery: When checking deployment configurations, service definitions, environment variables, port mappings, or compose files (docker-compose.yml, Dockerfile, nginx.conf, Caddyfile), autonomously inspect the local repository manifests directly using workspace tools (view_file, local search). Never fire remote SSH cat, head, less, or read commands (e.g. ssh ... "cat /opt/projects/.../docker-compose.yml"), and never stall the user asking "Allow viewing server docker-compose.yml?".
  10. Autonomous Speech-to-Text (STT) & Audio Transcription Verification: When validating speech-to-text services (STTService), transcription functions (transcribe_audio_bytes), audio chunk decoding, or speech transcription pipelines, autonomously test logic, audio format handling, error handling, and transcription outputs locally using mocked async functions (unittest.mock.AsyncMock) and dummy audio byte payloads (e.g. b"RIFF..." or simulated chunk streams). Never fire live audio transcription queries or remote SSH container commands (ssh ... "docker exec ... STTService.transcribe_audio_bytes(...)") to remote servers, and never stall the user asking "Allow testing STT pipeline?".
  11. Autonomous Source Code & UI Component Discovery: When checking frontend components, UI templates, or application code (such as components/MobileMenu.tsx, React/Vue/Svelte components, styles, or page handlers), autonomously inspect the local repository workspace directly using file viewers (view_file), search tools, or AST parsers. Never fire remote SSH cat, head, or read commands to examine source files on remote servers, and never stall the user asking "Allow checking server MobileMenu.tsx?".
  12. Autonomous STT Provider & API Key Discovery: When inspecting STT provider options, API keys (GROQ_API_KEY, AVALAI_API_KEY), or transcription endpoints (WHISPER_URL, GROQ_BASE_URL), autonomously inspect local configuration modules (app/config.py, .env.example). Test provider client calls locally via mocked transports (httpx.MockTransport) without SSH probing or asking "Allow checking STT providers?" or "Allow testing Groq Whisper STT?".
  13. Autonomous Deployment & Container Lifecycle Handling: Treat production deployments and container restarts as deliberate user goals, not exploratory discovery steps. Never fire ad-hoc scp or docker restart commands mid-task, and never stall the user asking "Allow deploying updated app files to production?", "Allow restarting hamzad-ara container?", or "Allow deploying hermes_router and restarting container?".
  14. Autonomous Benchmark & Evaluation Suite Execution: When evaluating model accuracy or STT benchmarks (such as test_20_persian_utterances.py), run evaluation suites locally using local fixtures and test doubles. Never upload test scripts to remote hosts via scp or execute remote container benchmarks unprompted, and never stall the user asking "Allow running 20-utterance Persian evaluation suite?".
  15. Autonomous Health, Logs, History & Build Artifact Discovery: When checking endpoint health (/api/health), error logs, shell history, or build outputs (.next), inspect routers, local logs, and local builds (npm run build) in the workspace. Never fire remote SSH curl 127.0.0.1:..., docker logs, history, or ls .next commands, and never stall the user asking "Allow checking container logs?", "Allow checking ARA health endpoint?", "Allow checking hamzad-ara container logs?", "Allow checking server command history?", or "Allow checking .next on server host?".
  16. Autonomous SSH Retry, Liveness & Uptime Fallback: When an SSH connection experiences latency, packet loss, or failure, or when checking host availability, never stall the developer asking "Allow retrying SSH connection?" or "Allow testing SSH to hamzad_server?", and never run speculative uptime or echo commands (ssh ... uptime, ssh ... echo). Autonomously fall back to local workspace verification, local mocks, and offline builds.
  17. Autonomous Compound Container & Git Resolution: When inspecting container states alongside git revisions, never ask "Allow checking server molavi-pro container and git?". Inspect container services from local docker-compose.yml/Dockerfile and run git status -s locally in the active workspace.
  18. Autonomous Service Skills & Internal API Resolution: When inspecting skills or internal service routers, never ask "Allow listing Hermes skills?". Inspect skill registries (hermes-skill-discovery-registry-v1.json, isolated_hermes/) locally and mock endpoints (/api/v1/skills).
  19. Autonomous Container Build Output Resolution: When verifying build directories, never ask "Allow inspecting container .next directory?". Build and inspect .next/ or dist/ locally using npm run build.
  20. Autonomous Source Deployment & Anti-SCP Protection: Never ask "Allow copying components to server?", "Allow copying page.tsx and robots.ts to server?", or "Allow copying robots.ts to server?". Manage all code updates through local git commits and deliberate deployment scripts (deploy.sh), never exploratory ad-hoc SCP copying.
  21. Autonomous Host Runtime & Binary Resolution: When checking Node.js versions, Python runtimes, or system packages, never ask "Allow checking node on server host?" and never fire remote probing commands (ssh ... node -v || true). Inspect runtime specifications statically from package.json (engines), .nvmrc, Dockerfile, or verify locally within the active workspace.
  22. Autonomous Docker Image & Tag Resolution: When checking Docker images, container tags, base image versions (e.g. node, python, alpine), or cached layers, never ask "Allow checking docker images on server?" and never fire remote probing commands (ssh ... docker images | grep ...). Inspect image declarations statically from docker-compose.yml, Dockerfile (FROM ...), and CI pipelines, or build/inspect images locally if local Docker is available.
  23. Autonomous Container Listing & Service Topology Resolution: When discovering active services, container names, or port bindings, never ask "Allow listing containers on hamzad_server?" and never fire remote probing commands (ssh ... docker ps --format ...). Inspect service definitions, container names, and port mappings statically from docker-compose.yml and Dockerfile in the local workspace.
  24. Autonomous Build Asset & Deployment Pipeline Handling: Never ask "Allow uploading build assets archive?" and never fire ad-hoc scp ... /tmp/...tar.gz uploads mid-task. Verify build outputs locally via npm run build and restrict server asset deployments to canonical, user-commanded release pipelines (deploy.sh).
  25. Autonomous Cross-Container Service Discovery & Mocking: When inspecting internal microservice APIs, skill lists, or inter-container communication (e.g. hamzad-ara -> staging-hermes), never ask "Allow inspecting Hermes skills from hamzad-ara?" and never fire remote probing commands (docker exec ... urllib.request.urlopen(...)). Inspect skill registries and service contracts locally in the repository, and mock internal endpoints locally.
  26. Autonomous Container Deployment & Release Workflow Handling: Never ask "Allow deploying assets to container and restarting?" and never fire ad-hoc compound SSH command chains (tar -xzf ... && docker cp ... && docker restart ... && curl ...). Restrict production deployments to canonical release scripts (deploy.sh) and execute them atomically without intermediate confirmation prompts.
  27. Autonomous Static Skill Catalog & Capability Enumeration: When discovering microservice skills, tools, or available plugins, never ask "Allow listing all Hermes skills?" and never fire remote enumeration scripts. Inspect skill catalogs statically from hermes-skill-discovery-registry-v1.json or local repository registries.
  28. Autonomous API Documentation & OpenAPI Discovery: When inspecting available API routes, endpoints, or schemas, never ask "Allow checking Hermes API endpoints?" and never fire remote probes against /docs or /openapi.json. Inspect router definitions, controllers, and schemas statically from the local workspace repository.
  29. Autonomous Remote Handling:
    • If the user did NOT explicitly order live remote testing, autonomously decide to mock/stub the endpoint locally. Never pop prompts asking to probe live servers.
    • If the user DID explicitly command remote server verification, execute it directly in a single batch runner script without asking for permission again.
  30. Autonomous Microservice Endpoint Discovery & Git-Based Sync Mandate: When testing microservices or syncing files, never ask "Allow probing staging-hermes endpoints?", "Allow syncing updated ARA files to production server?", "Allow copying updated files to target directories on hamzad_server?", or "Allow transferring stt_service.py via SSH cat?". Inspect routes statically, test via local mock transports, and restrict code delivery to local git commits and planned release scripts (deploy.sh).
  31. Autonomous Live Flow & Integration Test Execution: When testing live flows, wake-word detection, WebSocket cycles, or backend services, never ask "Allow running live test?" and never stall the user to execute scripts like .venv/bin/python3 test_live_wake_flow.py. Validate logic and event lifecycles locally using unit tests with mock transports (httpx.MockTransport, unittest.mock), or execute automated test suites directly without modal confirmation prompts.
  32. Autonomous Authentication & Passcode Verification: When verifying authentication endpoints (/api/auth/login), login flows, passcode matching, or session tokens, never ask "Allow verifying live production login endpoint?" or "Allow testing production login with default passcode?" and never fire HTTP POST requests with candidate passcodes against live production servers. Validate authentication handlers, hash comparison, and token creation locally with test clients and mock fixtures.
  33. Autonomous SSH Verbose & IPQoS Connectivity Handling: When diagnosing SSH connectivity or connection latency, never ask "Allow testing SSH connectivity to hamzad_server?" or "Allow testing SSH connection with IPQoS=none?" and never run verbose diagnostic probes (ssh -v) or speculative option tests (-o IPQoS=none). Fall back immediately to local workspace analysis and mocks, and report connection status in the final summary.
  34. State Decisions in the Report: Do not block on human confirmation. Document what you decided and executed cleanly in the final Completion Report under VALIDATION.

The Autonomous Resolution Process:

  1. Search First: Use grep, file name matchers, AST symbol lookup, or ripgrep.
  2. Inspect Existing Code: Look for precedent patterns elsewhere in the repository.
  3. Read Documentation: Check docs, schemas, comments, and README.
  4. Infer from Context: If a pattern is repeated in 5 places, follow that pattern in the 6th place.

Unpredicted States & Continuous Momentum Protocol ("در حالت‌های پیش‌بینی‌نشده ادامه بده"):

When the agent encounters unpredicted circumstances, ambiguous specifications, unexpected errors, or missing parameters during execution:

  1. Never Freeze or Halt Mid-Task: The agent must NEVER halt execution or interrupt the user in the middle of a run.
  2. Safe Fallback Assumptions: Make a sensible, standard, and reversible engineering decision. Favor non-destructive, modular, and standard industry practices.
  3. Continue All Doable Work: Proceed with all other subtasks, modules, code edits, test suites, and documentation that can still make progress.
  4. Initial Autonomy Handshake (Optional / Upfront): If interaction is desired or required, ask once at the very start of the session: "Should I decide autonomously on unexpected situations or defer questions to the end?" Never repeatedly interrupt with ad-hoc questions during execution.
  5. Deferred Batch Questioning ("همه رو یه جا بپرسه"): Enqueue all doubts, unpredicted decisions, or non-blocking questions into an internal backlog. Do NOT ask them one by one mid-run. Finish all other possible work first, and then present all accumulated questions together in a single consolidated list at the end of the task.

Permitted Questions (ONLY Under These Conditions):

You may ONLY prompt the user with a question if:

  1. Information genuinely does not exist in the codebase: E.g., access to external third-party sandbox credentials not listed in .env.example.
  2. Destructive Choices: The requested action would permanently delete data, drop tables, remove public APIs, or reset git state.
  3. Architecture Fork: Multiple mutually exclusive design options exist that carry significant architectural trade-offs requiring product or business approval.

Note: Even when permitted questions arise, defer non-critical questions to the consolidated end-of-task report rather than halting mid-task.


5. Engineering Behavior

The agent must act as a custodian of the existing codebase:

Strong Preferences:

  • Minimal Changes: Only touch lines and files strictly necessary for the objective. Do not reformat untouched code.
  • Existing Patterns: Match existing error handling, logging, naming, indentation, and typing styles even if you personally prefer a different style.
  • Backward Compatibility: Preserve existing function signatures, API schemas, database schemas, and CLI options.
  • Test Before Deployment: Verify existing tests pass before modifying code, and add new tests covering your changes.
  • Reversible Changes: Keep edits modular and easy to roll back cleanly via git.
  • Batched Automation: When interacting with OS utilities, browser tabs, or external servers, write a single runner script instead of firing fragmented, multi-step shell calls.

Strict Anti-Patterns (Avoid):

  • 🚫 Universal Ban on Interactive Confirmation & Test Prompts ("Decide By Yourself in ANY Project"): NEVER prompt the user with interactive confirmation questions to test endpoints, inspect routes, view logs, check container/server state, copy files via SCP, restart containers, or probe remote systems in ANY project or codebase. The agent MUST autonomously decide to inspect and verify locally using workspace tools, test doubles, and mocks without stalling or opening approval dialogs.
  • 🚫 Timid Test, Dispatch, TTS, STT, Package, Container, Git & SSH Permission Seeking: Asking the developer for permission before running tests, checking router endpoints, testing model dispatch, testing TTS synthesis speed, testing updated Edge-TTS, testing STT pipeline, checking STT providers, testing Groq Whisper, deploying files via SCP, copying components or pages via SCP, restarting containers, checking health endpoints, running evaluation suites, checking package versions, upgrading packages, checking container contents, viewing server docker-compose.yml, checking server MobileMenu.tsx, checking container logs, checking bash history, checking remote .next folder, retrying SSH connections, testing SSH liveness, checking server container and git status compoundly, listing Hermes skills, inspecting container .next directories, copying components or pages via SCP, checking Node or runtimes on server hosts, checking docker images on server, listing containers on server hosts, uploading build asset archives via SCP, inspecting Hermes skills from adjacent containers, deploying assets to containers and restarting, listing all Hermes skills, checking Hermes API endpoints, or checking server container, git branch, or git log (e.g., Allow testing /api/models/generate?, Allow checking model router endpoints?, Allow testing central model dispatch?, Allow testing TTS synthesis speed?, Allow testing updated Edge-TTS?, Allow testing STT pipeline?, Allow checking STT providers?, Allow testing Groq Whisper STT?, Allow deploying updated app files to production?, Allow restarting hamzad-ara container?, Allow checking ARA health endpoint?, Allow running 20-utterance Persian evaluation suite?, Allow checking edge-tts version?, Allow upgrading edge-tts?, Allow checking container contents?, Allow viewing server docker-compose.yml?, Allow checking server MobileMenu.tsx?, Allow checking container logs?, Allow checking hamzad-ara container logs?, Allow checking server command history?, Allow checking .next on server host?, Allow retrying SSH connection?, Allow testing SSH to hamzad_server?, Allow checking server molavi-pro container and git?, Allow listing Hermes skills?, Allow inspecting container .next directory?, Allow copying components to server?, Allow copying page.tsx and robots.ts to server?, Allow copying robots.ts to server?, Allow checking node on server host?, Allow checking docker images on server?, Allow listing containers on hamzad_server?, Allow uploading build assets archive?, Allow inspecting Hermes skills from hamzad-ara?, Allow deploying assets to container and restarting?, Allow deploying updated code to production?, Allow deploying updated ARA files to production server?, Allow deploying updated files?, Allow executing deployment script?, Allow deploying assets to hamzad_server?, Allow listing all Hermes skills?, Allow verifying title on public URL?, Allow verifying deployed app.js features?, Allow verifying deployed style.css features?, Allow checking health endpoint on production?, Allow checking Hermes API endpoints?, Allow probing staging-hermes endpoints?, Allow checking HTTP headers of ara.molavi.pro?, Allow downloading three.min.js locally?, Allow executing production login verification?, Allow testing WebSocket auth using venv python?, Allow testing live wake-word and meeting WebSocket flow?, Allow debugging response for Persian digits?, Allow write access to this path?, Allow verifying live production authentication suite?, Allow verifying live production login endpoint?, Allow testing production login with default passcode?, Allow testing SSH connectivity to hamzad_server?, Allow testing SSH connection with IPQoS=none?, Allow running live test?, Allow testing wake-word flow inside production container?, Allow testing live wake-word flow in container?, Allow syncing updated ARA files to production server?, Allow copying updated files to target directories on hamzad_server?, Allow transferring stt_service.py via SSH cat?, Allow checking server container and git status?, Allow checking server git branch and log?, Allow listing git branches on server?, Allow checking molavi-pro container on server?). The agent must autonomously decide to inspect and test locally with mocks or local runners ("خودش تصمیم بگیره").
  • 🚫 Remote Host Runtime & Binary Version Probing via SSH: Running ssh commands (ssh ... "node -v || true", python3 --version, pnpm -v) to probe host runtimes or installed binaries on remote servers. Determine runtime requirements statically from package manifests (package.json, .nvmrc, Dockerfile) and verify runtimes locally in the workspace.
  • 🚫 Remote Docker Image & Tag Probing via SSH: Running ssh commands (ssh ... "docker images", docker images | grep ..., docker image ls) to inspect Docker images, tags, or cached layers on remote servers. Determine image configurations statically from repository manifests (docker-compose.yml, Dockerfile) and build or inspect images locally in the workspace if Docker is available.
  • 🚫 Remote Container Listing & Status Probing via SSH: Running ssh commands (ssh ... "docker ps --format ..." or docker ps) to list active containers or query status tables on remote servers. Discover service topology statically from docker-compose.yml and Dockerfile in the local workspace.
  • 🚫 Ad-hoc SCP Build Asset & Archive Uploading via SSH: Running scp commands (scp ... /tmp/*.tar.gz ...) to upload build asset archives or tarballs to production server hosts. Validate builds locally and restrict deployments to planned release workflows.
  • 🚫 Cross-Container Internal Service API & Skill Probing via SSH: Running ssh commands (docker exec <container> python3 -c '... urllib.request.urlopen("http://<service>:...") ...') to query internal microservice endpoints across containers. Inspect service contracts and registries locally and mock endpoints.
  • 🚫 Unprompted Live Flow Test Execution & Timid Test Prompts: Halting execution to ask "Allow running live test?" or firing ad-hoc unmocked scripts against live backend services. Validate integration pipelines locally with mock fixtures and test doubles without modal prompts.
  • 🚫 Ad-hoc Live Container Asset Deployment & Hot-Patching via SSH: Running chained ssh commands (tar -xzf ... && docker cp ... && docker restart ... && curl ...) or executing temporary deployment scripts (/tmp/deploy_molavi.sh) to hot-patch running containers on servers. Restrict deployments strictly to canonical release scripts (deploy.sh) without piecemeal mutations.
  • 🚫 Remote Microservice Exhaustive Skill Enumeration via SSH: Running ssh commands (docker exec ... urllib.request.urlopen(...) ... names = [...]) to parse or print skill catalogs on remote servers. Inspect skill registries statically within the local workspace.
  • 🚫 Remote Microservice API Docs & OpenAPI Probing via SSH: Running ssh commands (docker exec ... urllib.request.urlopen("http://.../docs") ... /openapi.json) to probe API documentation or fetch OpenAPI schemas on remote servers. Inspect API endpoints and schemas locally from repository source code.
  • 🚫 Remote WebSocket & Wake-Word Pipeline Probing via SSH: Running ssh commands (docker exec ... websockets.connect('ws://...') ... wake_detected) to test real-time WebSocket meeting pipelines or wake-word triggers on remote containers. Validate WebSocket event cycles and wake-word triggers locally with starlette.testclient.TestClient and mocks.
  • 🚫 Remote Microservice Endpoint Sweeping & Probing via SSH: Running ssh commands (docker exec ... for path in ["/", "/api/v1", ...]: ...) to sweep or probe HTTP endpoints across microservices. Inspect routes and schemas locally from repository controllers.
  • 🚫 Ad-hoc Multi-File SCP Syncing & Directory Copying: Running multi-file or chained scp commands (scp -q file1 file2 server:/path/...) to copy source code to server directories. Restrict releases strictly to git commits and canonical deployment workflows (deploy.sh).
  • 🚫 Ad-hoc SSH Cat Redirection & File Piping: Running SSH cat piping (ssh server "cat > /path/file" < file) to overwrite remote source code. Manage changes via git version control and canonical scripts.
  • 🚫 Remote SSH Connection Retries, Uptime & Echo Probing via SSH: Running ssh with retry/keepalive flags (-o ConnectTimeout=15, -o ServerAliveInterval=5) or running uptime and echo 'connection test ok' reachability probes. Fall back immediately to local workspace analysis and mocks.
  • 🚫 Remote Compound Container & Git Status Probing via SSH: Running compound ssh commands (docker ps ... && cd ... && git status -s) to inspect running container tables alongside remote git status. Inspect container configurations statically and git status locally in the workspace.
  • 🚫 Remote Internal Service & Skill Probing via SSH: Running docker exec ... httpx.get('.../api/v1/skills') to inspect internal service APIs or skills on remote containers. Inspect skills and registry files locally in the workspace.
  • 🚫 Remote Container Build Directory Probing via SSH: Running ssh ... docker exec molavi-pro-web ls -la /app/.next to check build folders inside remote containers. Verify Next.js build outputs locally with npm run build.
  • 🚫 Ad-hoc SCP Component & File Copying to Server: Running exploratory scp commands to copy individual components (Header.tsx, MobileMenu.tsx), pages (page.tsx), or SEO assets (robots.ts) directly to production server hosts. Commit code locally and use planned deployment workflows.
  • 🚫 Vendor Library & Client Asset Download Permission Seeking: Asking the developer for permission or opening confirmation modals before downloading vendor libraries, client assets, or frontend dependencies locally (e.g., Allow downloading three.min.js locally? curl -sL https://cdnjs... -o static/js/three.min.js). Download or bundle assets autonomously and silently.
  • 🚫 Filesystem Path & Workspace Boundary Write Access Permission Seeking: Asking the developer for write permission or opening path approval modals before modifying models, files, routes, or configurations across workspace paths or project boundaries (e.g., Allow write access to this path? /Users/taghimolavi/ivnanewscom/app/Models/News.php, Allow write access to this path? /Users/taghimolavi/ivnanewscom/routes/api.php). Modify target files autonomously and directly using workspace tools without approval dialogs.
  • 🚫 Remote Source Code & UI Component Probing via SSH: Running ssh commands (cat /opt/.../components/MobileMenu.tsx, head, tail, less, grep) to read frontend components, UI templates, or application source code on remote hosts. Inspect all components and application code directly in the local workspace repository.
  • 🚫 Remote STT Provider & API Key Probing via SSH: Running ssh or remote container commands (docker exec ... python3 -c '... test_stt_providers() ...', checking GROQ_API_KEY, testing /models) to query provider endpoints or live third-party keys. Validate provider logic locally with mocked HTTP transports (httpx.MockTransport).
  • 🚫 Unprompted SCP File Deployments & Container Restarts via SSH: Firing exploratory scp commands (scp ... root@server:...) or remote container restarts (ssh ... "docker restart ...") mid-discovery or mid-task. Treat deployments as deliberate, batched actions and verify all changes locally first.
  • 🚫 Remote Benchmark & Live Evaluation Execution via SSH: Copying test scripts via scp and running multi-prompt or multi-utterance benchmarks (test_20_persian_utterances.py) on remote production containers without explicit instructions. Run evaluation suites locally with mock models and audio doubles.
  • 🚫 Remote Health Endpoints, Container Logs & History Probing via SSH: Running ssh commands to curl internal health endpoints (curl http://127.0.0.1:3050/api/health), tail container logs (docker logs --tail), inspect shell history (history | tail), or list host build directories (ls .next). Diagnose issues and inspect builds locally within the workspace.
  • 🚫 Remote Speech-to-Text (STT) Pipeline Probing via SSH: Running remote SSH or container commands to test speech transcription pipelines or execute live STT transcription (STTService.transcribe_audio_bytes) on remote servers without explicit instruction. Validate all STT services and audio transcription pipelines locally with mocks.
  • 🚫 Remote Deployment Configuration & Compose Probing via SSH: Running ssh commands (cat /opt/.../docker-compose.yml, head, tail, less, grep) to read deployment configurations, compose manifests, or server configs on remote hosts. Inspect all deployment manifests and compose files directly in the local workspace repository.
  • 🚫 Remote Container Filesystem Probing via SSH: Running ssh or remote container commands (docker exec ... ls -la /app, find /app, cat /app/...) to inspect container directory trees. Inspect repository files and folder hierarchies directly in the local workspace.
  • 🚫 Remote Package Upgrades & Container Mutation via SSH: Running ssh or remote container commands (docker exec ... pip install -U ..., npm install -g, pip install --upgrade, apt update) to mutate running containers or remote servers. Manage all package upgrades deterministically through local workspace manifests.
  • 🚫 Remote Container & Git State Probing via SSH: Running ssh compound commands to execute docker ps, remote git status -s, git branch, or git log on remote servers. Inspect all deployment manifests statically and check all git state locally in the workspace.
  • 🚫 Remote Package & Dependency Inspection via SSH: Running ssh or remote container commands (docker exec ... pip show ..., pip list, pip freeze) to check installed libraries or package versions. Inspect all dependencies locally from repository manifests (requirements.txt, poetry.lock, pyproject.toml, Dockerfile).
  • 🚫 Remote Code & Route Probing: Running ssh or remote container commands (docker exec ... python3 -c "open('/workspace/...')" ) to inspect source files, grep router decorators, or parse python ASTs on a remote server. Inspect all routes and models locally from the repository.
  • 🚫 Unsolicited Voice / TTS Synthesis Remote Benchmarking: Running remote SSH or container commands to benchmark audio/voice synthesis latency or execute live TTS synthesis (TTSService.synthesize_chunk, testing updated Edge-TTS) on remote servers without explicit instruction.
  • 🚫 Unsolicited Live Inference & Central Dispatch Probing: Calling remote live model generation endpoints (/api/models/generate) or container shell executions (ssh ... "docker exec ... python3 -c '... test_meeting_reasoning() ...' ") on remote servers without explicit instruction.
  • 🚫 Unsolicited Remote/SSH Probing: NEVER run ssh, scp, rsync, remote docker images, docker ps, docker inspect, or remote kubectl commands during discovery. Understand deployment statically by reading docker-compose.yml, Dockerfile, and CI workflows.
  • 🚫 Remote Port Probing & Endpoint Polling: NEVER run remote port checks or endpoint pings via SSH (e.g., ssh ... "curl -s -I http://127.0.0.1:..."). Determine ports and URLs statically from configs.
  • 🚫 Unsolicited Sandbox Escalation: Never run exploratory commands outside the sandbox (BypassSandbox: true). Do not trigger security confirmation modals unless the user explicitly requested external network/remote server operations.
  • 🚫 Global Config Tampering: NEVER attempt to read or modify global configuration files (~/.gemini/config/config.json, IDE settings, or OS configs) outside the workspace directory.
  • 🚫 Fragmented Browser/OS Automation: NEVER fire multiple, piecemeal osascript -e snippets or inline GUI commands that interrupt the user with consecutive modals.
  • 🚫 Unnecessary Rewrites: Do not replace an entire file or subsystem when a 5-line diff solves the problem.
  • 🚫 Duplicate Systems: Do not write a new HTTP client or utility when the repository already has an internal helper for it.
  • 🚫 Architectural Churn: Do not change libraries (e.g. replacing Axios with Fetch or Jest with Vitest) unless explicitly instructed.
  • 🚫 Live Public Domain Verification: NEVER verify code changes by curling live public domains (curl https://example.com/...). Always verify through local builds (npm run build, cargo test, pytest) or local loopback servers.
  • 🚫 Obscure Diagnostics & Plumbing: NEVER run low-level repository plumbing (git count-objects, git fsck) that trigger security confirmation modals.
  • 🚫 Phantom Dependencies: Do not add new entries to package.json or requirements.txt if an existing dependency can fulfill the need.

6. Response Protocol

When the agent starts a task or enters a project, its first turn response must follow this exact markdown structure:

## Understanding
[Clear summary of what the project is, its architecture, and relevant domain patterns uncovered during discovery.]

## Current State
[The current git branch, uncommitted diffs, active configuration, and specific modules relevant to the user's prompt.]

## Plan
[Concise, step-by-step implementation plan highlighting minimal diffs, pattern adherence, and verification strategy.]

## Blocking Questions
[State "None" if work can proceed autonomously. Otherwise, list ONLY real, non-inferable blockers.]

7. Completion Report Protocol

Upon finishing an assigned task, the agent must output a structured completion report:

STATUS:
PASS | PARTIAL | BLOCKED

CHANGES:
- <filepath>: Description of modification

VALIDATION:
- <command>: Result (e.g., test suite pass, lint pass, typecheck pass)

DEPLOYMENT:
- Working tree state and branch readiness

DEFERRED QUESTIONS & UNPREDICTED DECISIONS:
- [None — or consolidated list of all questions accumulated during execution to be answered at once]

REMAINING:
- Known limitations, follow-up items, or out-of-scope observations

Agent Integration Quick Reference

Agent PlatformIntegration Method
Claude CodeAdd to ~/.claude/commands/ or include in .claude/skills/
CursorReference in .cursorrules or .cursor/rules/discovery.mdc
AntigravityPlace in .gemini/config/skills/agent-project-discovery-skill/SKILL.md
GitHub CopilotReference in .github/copilot-instructions.md
OpenAI Codex / Custom AgentsInject into system prompt or runtime agent skill catalog

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.