Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add rules/cafreeman/foundry-mcp/foundry-user-preferencesgit clone --depth 1 https://github.com/cafreeman/foundry-mcpWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/rules/cafreeman/foundry-mcp/foundry-user-preferences)<a href="https://agentmods.dev/rules/cafreeman/foundry-mcp/foundry-user-preferences"><img src="https://agentmods.dev/badge/rules/cafreeman/foundry-mcp/foundry-user-preferences.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.01066 | $0.01066 |
| Opus 5 | $0.00533 | $0.00533 |
| Sonnet 5 | $0.00213 | $0.00213 |
| Haiku 4.5 | $0.00107 | $0.00107 |
Grade A, and why
foundry-user-preferences scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 4d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 163 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Foundry User Preferences & Memory Guidelines
User-Specific Development Preferences
Based on established user memories and preferences, these guidelines ensure consistent alignment with user expectations and workflow patterns.
Function Return Philosophy
User Memory #7066344: Functions should only return what is needed, avoiding unused return values.
Implementation Guidelines
- Design response structs with only essential fields
- Use
#[serde(skip_serializing_if = "Option::is_none")]for optional fields - Avoid "kitchen sink" response objects that include unused data
- Focus responses on immediate workflow needs
Response Design Pattern
#[derive(Serialize, Debug)]
pub struct ProjectResponse {
// Essential data
pub project: ProjectData,
pub validation_status: String,
pub next_steps: Vec<String>,
// Optional fields only when needed
#[serde(skip_serializing_if = "Option::is_none")]
pub workflow_hints: Option<Vec<String>>,
// Avoid: unused metadata, verbose debugging info, redundant data
}
Examples of Preferred Returns
// ✅ Good: Returns only what's needed
pub fn load_project_summary(name: &str) -> Result<String> {
// Returns just the summary content
}
// ❌ Avoid: Returns unnecessary data
pub fn load_project_summary(name: &str) -> Result<(String, PathBuf, Metadata, Vec<String>)> {
// Summary, path, metadata, and file list - too much!
}
Content Creation Philosophy
User Memory #7065075: For the Foundry CLI project, the summary must be provided as an argument by the LLM when initiating a project; the CLI should not perform any summarization itself.
Implementation Requirements
- Never implement automatic content generation or summarization
- Always require LLMs to provide complete content as arguments
- Never derive content from other content (e.g., auto-generate summary from vision)
- Always validate content format and length, but not content quality
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 4d ago First seen · 163 lines · 1,066 tokens per session scan A 1fe07a380d98
foundry-user-preferences is a cursor rule published in the GitHub repository cafreeman/foundry-mcp (4 stars, last pushed 5mo ago), licensed MIT. It adds 1,066 tokens to every session, about $0.0053 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other cursor rules, from other repositories
mempalace-recall-always
Always-on MemPalace recall — search the palace before answering about past work, people, projects, or prior decisions.
dreamd-recall
Recall lessons, decisions, and prior context from the .agent/ memory daemon. Use when starting work in a project that has a .agent/ folder, when the user references a past decision, or when you are about to make a choice that has a documented prior.
session-memory
Use at conversation wrap-up or when the user explicitly indicates end-of-session — capture residual lessons not captured in-flight.
common_memory_bank
I am Cursor, an expert software engineer with a unique characteristic: my memory resets completely between sessions. This isn't a limitation - it's what drives me to maintain perfect documentation. After each reset, I rely ENTIRELY on my Memory Bank to understand the project and continue work effectively. I MUST read…
context-recorder-system
Context Recorder System (记录员系统) - 模块化索引文件.
memsprout
Cursor rule "memsprout" from memsprout/agents, covering using memsprout, search first, capturing, spaces and topics and files.