Enforce hexagonal architecture in the Rust backend. Use before modifying crates or Rust services, especially inbound axum/tool/listener adapters, domain services/ports, outbound adapters, authorization, permissions, database access, or external clients.
Debug local Rust services in this repository by starting the crate's binary with debug logging, tailing service logs, and using those logs to answer runtime questions. Use when Codex needs to investigate service startup, runtime behavior, errors, or logs for a Rust binary in a crate.
Wrap a new backend endpoint in the TypeScript SDK (packages/sdk), or record it as skipped. Use when just coverage fails, or after adding an endpoint to a Rust service.
Run the Macro app on Cursor Cloud and pick up edits. Use when asked to run the app, open it in the browser, test a frontend or backend change, hot reload, or before touching stack.sh, rebuild.sh, frontend.sh, or just stack.
Validate Rust work after substantial Rust code changes by running just check, just clippy, then just format. Use before the final response after a significant Rust implementation or cleanup task; batch edits first instead of running after every small change.
Inspect Rust changes for SQLx queries. Use after modifying Rust code that adds or changes SQLx queries to ensure compile-time SQLx macros are used, run just preparedb for offline query cache, and review queries for performance and security issues.
Build and maintain documentation sites with Mintlify. Use when creating docs pages, configuring navigation, adding components, or setting up API references.
You are adding an inbound/attachment module to a domain crate. This module implements the attachment::AttachmentService trait so the crate can resolve its entity IDs into AI-consumable attachment content.