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 skills/agenticpawan/fullstack-pilot/angular-i18nnpx skills add AgenticPawan/FullStack-Pilot --skill angular-i18ngit clone --depth 1 https://github.com/AgenticPawan/FullStack-PilotWhat 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.00096 | $0.01299 |
| Opus 5 | $0.00048 | $0.00649 |
| Sonnet 5 | $0.00019 | $0.00260 |
| Haiku 4.5 | $0.00010 | $0.00130 |
Grade A, and why
angular-i18n 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 2d 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 — 151 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Standard IDs
| ID | Severity | What it checks |
|---|---|---|
| I18N-001 | P1 | Hardcoded UI strings with no i18n library wired |
| I18N-002 | P1 | Translation keys don't share a key space with the .NET DB-override table |
| I18N-003 | P2 | Dates/numbers/currency formatted with hardcoded locale instead of locale-aware |
| I18N-004 | P2 | No RTL layout support despite supporting a locale that requires it |
| I18N-005 | P3 | Locale switch requires a full page reload (advisory) |
Check A — Hardcoded strings, no i18n library wired (I18N-001)
Detection
Grep templates for literal English text in labels/buttons/messages with no
| translate pipe / i18n attribute / equivalent, and confirm a translation library
(@angular/localize or a runtime library such as Transloco) is actually installed and
configured. This is the same gap angular-dynamic-forms ADF-005 calls out for
descriptor-driven forms — it applies to every other template too, not just dynamic forms.
BAD — hardcoded strings everywhere
<button>Approve</button>
<p>Your order has been confirmed.</p>
GOOD — every user-facing string resolved through the i18n pipe
<button>{{ 'orders.approve' | translate }}</button>
<p>{{ 'orders.confirmed' | translate }}</p>
Check B — Translation keys don't share a key space with the .NET DB-override table (I18N-002)
Detection
Compare the Angular translation key namespace against the .NET dotnet-localization
DB-override table's Key column. If there's no documented shared convention (e.g., both
sides use feature.subfeature.label dot-notation and the same key literally appears in
both the Angular translation file and the DB override row for a shared string), an admin
correcting a translation in the DB-backed override tool has no way to know whether it
affects any given Angular string.
BAD — Angular and .NET translation keys evolved independently, no shared convention
// Angular: "customer_first_name"
-- .NET LocalizationOverrides table: Key = 'Customer.FirstNameLabel'
-- Same concept, no relationship between the two key strings.
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.
- 2d ago First seen · 151 lines · 96 tokens per session scan A 4002d6ec7070
angular-i18n is a skill published in the GitHub repository AgenticPawan/FullStack-Pilot (2 stars, last pushed 1mo ago), licensed MIT. It adds 96 tokens to every session and 1,299 once invoked, about $0.0005 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 skills, from other repositories
translate-a-sample
Translate the Azure SDK sample from python to C# and generate markdownn file for the sample. Parameters: C# SDK repository root; python SDK repository root; Package name: one of Azure.AI.Projects, Azure.AI.Projects.Agents or Azure.AI.Extensions.OpenAI; The name of sample file in Python SDK repository.
date-formatter
Converts dates between formats and handles timezone differences.
i18n-manage
Add, rename, or remove i18n translation keys in fundamental-ngx (updates FdLanguage interface, .properties files, and generated types).
lingui-best-practices
Implement internationalization with Lingui in React and JavaScript applications. Use when adding i18n, translating UI, working with Trans/useLingui/Plural, extracting messages, compiling catalogs, or when the user mentions Lingui, internationalization, i18n, translations, locales, message extraction, ICU…
enhanced-message-context
Provide additional context for messages based on the codebase and the context of the message to improve the quality of the translations.
contentful-cms
Creates Contentful content types, queries entries via GraphQL/REST, runs CLI migrations, and manages assets and locales. Use when building or modifying Contentful content models, writing queries, or migrating content.