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/takt365/takt.wpf/dependency-injectiongit clone --depth 1 https://github.com/Takt365/Takt.WpfWrote 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/takt365/takt.wpf/dependency-injection)<a href="https://agentmods.dev/rules/takt365/takt.wpf/dependency-injection"><img src="https://agentmods.dev/badge/rules/takt365/takt.wpf/dependency-injection.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.00391 | $0.00391 |
| Opus 5 | $0.00196 | $0.00196 |
| Sonnet 5 | $0.00078 | $0.00078 |
| Haiku 4.5 | $0.00039 | $0.00039 |
Grade A, and why
dependency-injection 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.
What it actually says
依赖注入规范
服务注册
文件位置:@src/Takt.Fluent/App.xaml.cs
示例:
// @src/Takt.Fluent/App.xaml.cs
public partial class App : Application
{
public static IServiceProvider? Services { get; private set; }
protected override void OnStartup(StartupEventArgs e)
{
var services = new ServiceCollection();
// 注册服务
services.AddScoped<ITaktUserService, TaktUserService>();
services.AddTransient<UserViewModel>();
services.AddTransient<UserView>();
Services = services.BuildServiceProvider();
}
}
构造函数注入
规范:必须通过构造函数注入,禁止使用 ServiceLocator
// ✅ 正确:通过构造函数注入
// @src/Takt.Fluent/ViewModels/Identity/UserViewModel.cs
public class UserViewModel : ViewModelBase
{
private readonly ITaktUserService _userService;
public UserViewModel(ITaktUserService userService)
{
_userService = userService ?? throw new ArgumentNullException(nameof(userService));
}
}
// ❌ 错误:使用 ServiceLocator 反模式
public class UserViewModel : ViewModelBase
{
private readonly ITaktUserService _userService;
public UserViewModel()
{
_userService = App.Services.GetService<ITaktUserService>(); // ❌ 反模式
}
}
服务生命周期
Singleton:整个应用生命周期单例(如配置服务)Scoped:每个请求/窗口一个实例(如业务服务)Transient:每次获取都创建新实例(如 ViewModel、View)
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 · 66 lines · 391 tokens per session scan A 42836165afa5
dependency-injection is a cursor rule published in the GitHub repository Takt365/Takt.Wpf (17 stars, last pushed 8mo ago), licensed MIT. It adds 391 tokens to every session, about $0.0020 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-30.
Other cursor rules, from other repositories
project-status
PriceGrab shipped state and product backlog (read first).
schemas
Sanity schema conventions and typegen workflow.
web
Next.js web app conventions — routing, i18n, components.
i1n
This project uses i1n for managing translations.
cursorrules
Cursor rule "cursorrules" from KyaniteLabs/DialectOS, covering kyanitelabs — ai agent instructions, organization, code quality, security and testing.
specify-rules
For additional context about the active feature, technologies, project structure, shell commands, and other important information.