More screenshots

    Works with the AI tools you already use

    Claude CodeClaude CodeCursorCursorCodex CLICodex CLIMuseMuseOpenClawOpenClaw+21 more

    Localization Contract Repair

    1

    Localization Contract Repair is a bounded ToolForge Labs workflow.

    $8.99

    Secure checkout via Stripe

    30-day refund guarantee

    Converts to your local currency at checkout

    Security scanned
    Localization Contract Repair

    Localization Contract Repair

    Example session with this skill installed

    I have a Next.js/TypeScript SaaS using next-intl with English, German, French, and Polish catalogs. The English source has 1,284 keys, German is missing 47, and French contains 63 keys no longer referenced. Some components use billing.invoice_count with {count}, while one locale expects {total}. Polish plural messages use only one/other, server rendering falls back to English while the client falls back to German, and a lazy-loaded settings namespace sometimes renders raw keys after navigation. Date and currency helpers also use different locale tags than routing. Files include message catalogs, route middleware, locale config, format helpers, loaders, extraction scripts, tests, fixtures, docs, and runbooks. Repair locally. Do not translate copy, choose product language policy, contact translation services, access production data, run migrations, or deploy.

    • Read your context and instructions
    • Compiled the localization contract repair
    • Generated the document

    1. Repair decision

    Decision: CROSS-LAYER LOCALIZATION CONTRACT DRIFT FOUND — SAFE LOCAL PATCH AVAILABLE; translation quality and deployed locale behavior remain unverified.

    2. Scope and boundary

    Reviewed: next-intl config, English/German/French/Polish catalogs, route middleware, format helpers, namespace loaders, extraction scripts, tests, fixtures, docs, and runbook.

    Not accessed: production users, translation vendors, live localization platforms, deployed catalog state, analytics, or deployment systems.

    3. Localization contract source register

    SourceCurrent behaviorStatus
    English catalog1,284 keysCandidate source population
    German catalog47 keys missingCoverage drift
    French catalog63 unreferenced keysStale candidates
    invoice message{count} vs {total}Placeholder drift
    Polish pluralsaffected messages use one/otherBranch gap
    SSR fallbackEnglishFallback drift
    client fallbackGermanFallback drift
    settings namespaceraw keys after navigationLoad-order gap
    route/format tagsdisagreeLocale identity drift

    4. Canonical repository contract

    Fallback precedence, source-locale authority, stale-key deletion, and supported aliases are

    OWNER DECISION REQUIRED.

    Safe structure

    • one locale registry defines canonical tags and accepted aliases;
    • one message-schema extractor records key, namespace, placeholders, ICU argument types, plural/select branches, and rich-text slots;
    • catalogs are validated against that schema without judging translation quality;
    • SSR and client use one fallback resolver;
    • namespace loading is explicit for first render and navigation;
    • formatting helpers consume canonical locale identity;
    • stale-key detection reports candidates rather than deleting them automatically.

    5. Drift findings

    F1 — Catalog population drift

    German is missing 47 keys and French contains 63 keys outside the current reference population.

    Repair: add parity checks that report missing and extra keys by namespace. Do not auto-fill German text or delete French entries.

    F2 — Placeholder mismatch

    billing.invoice_count uses {count} in code while one locale expects {total}.

    Repair: compare placeholder signatures across locales and fail validation on mismatches. Do not rewrite translated prose.

    F3 — Polish plural coverage

    Affected Polish messages expose only one/other.

    Repair: parse ICU plural branches and validate structural coverage against the runtime’s locale categories. Do not generate translations for missing branches.

    F4 — Fallback divergence

    SSR falls back to English while the browser falls back to German.

    Repair: centralize fallback resolution in a shared module. Keep the actual fallback order as owner-approved configuration.

    F5 — Lazy namespace race

    settings can render before its namespace loads.

    Repair: make namespace dependencies explicit at route boundaries and require readiness before localized rendering. Add cold- and warm-navigation tests.

    F6 — Locale identity drift

    Routing and formatting helpers use different locale tags.

    Repair: normalize aliases once, then pass the canonical tag to routing, Intl formatting, SSR, and tests. Preserve the originally requested tag separately if needed.

    6. Safe patch plan

    AreaChange
    Locale registrycanonical tags + aliases
    Catalog schemakey/placeholder/ICU signatures
    Validationmissing/extra/placeholder checks
    Fallbackshared server/client resolver
    Namespacesexplicit route loading
    PluralsICU branch validation
    Formattingcanonical locale in helpers
    Tests/docsparity, navigation, hydration coverage

    No translation generation, live catalog mutation, migration, or deployment.

    7. Deterministic test matrix

    1. Required namespaces report missing keys by locale.
    2. Extra keys are reported separately.
    3. {count} versus {total} fails signature validation.
    4. Matching placeholders pass regardless of translated word order.
    5. Polish plural fixtures cover runtime-required categories represented by the selected ICU library.
    6. Server and client resolve the same fallback chain.
    7. Cold navigation to settings waits for its namespace.
    8. Warm navigation does not render raw keys.
    9. Locale aliases normalize consistently.
    10. Date, number, and currency helpers use the canonical locale.
    11. SSR and hydration use the same namespace set.
    12. Tests call no live translation services.

    8. Verification steps

    Run

    • npm test -- localization-contract
    • npm test -- locale-routing
    • npm test -- namespace-loading
    • npm run typecheck
    • npm run lint
    • npm run build

    Run the local catalog validator and inspect missing keys, extras, placeholder signatures, plural/select branches, unresolved aliases, and SSR/client namespace differences.

    9. Production boundary

    Unknown: deployed catalog versions, translation-management state, CDN caching, legacy locale URLs, old browser bundles, and whether missing German or stale French keys are intentional.

    Production work needs separate translation review, compatibility review, rollout, monitoring, and rollback.

    10. Human approval request

    Safe now: locale registry structure, schema extraction, parity checks, placeholder validation, shared fallback plumbing, namespace readiness, formatting alignment, tests, and docs.

    Decisions required: source locale, fallback order, supported aliases, stale-key deletion, intentionally untranslated content, Polish message updates, legacy compatibility, and rollout.

    Status: PATCH READY FOR LOCAL REVIEW — TRANSLATION CONTENT, PRODUCT LANGUAGE POLICY, LIVE CATALOGS, AND DEPLOYED LOCALE BEHAVIOR NOT VERIFIED

    11. Suggested commit message

    fix(i18n): align catalog schema and locale resolution

    localization-contract-repair.pdf

    PDF · document

    Generated

    Example file from a real run - the skill writes it into your workspace.

    Connects securely to your tools. The creator never sees your data.

    What you get

    Detect missing or stale keys across multiple language catalogs.Validate ICU placeholder and plural signatures to prevent runtime UI bugs.Synchronize SSR and hydration fallback chains to stop raw key flickering.Audit API error-key coverage across all supported regional namespaces.

    About this skill

    Localization Contract Repair is a bounded ToolForge Labs workflow. Repair localization drift in a repository using Cursor. Compare keys, namespaces, locale tags, ICU placeholders, plurals, selects, interpolation, fallbacks, lazy loading, server/client rendering, formatting, tests, and docs. Detect missing keys, placeholder mismatch, plural bugs, fallback leaks, stale catalogs, hydration drift, broken locale routes, and false coverage; prepare bounded patches and tests without translating copy, choosing language policy, live services, migrations, or deployment. The skill works from supplied repository files or partial evidence, separates verified facts from assumptions, avoids invented execution claims, and provides concrete next steps plus deterministic validation where possible.

    How to install

    Works the same in every agent - Claude, Cursor, Codex, Copilot and 20+ more.

    ~30 seconds
    1. 1

      Download the ZIP

      Free skills download straight away. Paid skills unlock right after purchase.

    2. 2

      Unzip into your skills folder

      Every agent reads skills from one folder on your machine. Drop the unzipped folder in there.

    3. 3

      Ask your agent to use it

      Restart the agent if it was already running. It picks the skill up automatically - no config needed.

    Skills folder by agent

    Click the path to copy it. Create the folder if it does not exist yet.

    Reviews

    No reviews yet

    Be one of the first to try it. Every listed skill passes our trust checks below.

    Security scanned

    Passed our 8-point scan before listing

    Fresh listing

    Recently published to Agensi

    30-day refund

    Not a fit? Get your money back

    Trust & safety

    Security scanned

    Verified clean 20 days ago

    • Passed all security checks, Safe to install

    Listed20 days ago

    What's inside

    Frequently Asked Questions