rtl-readiness
Skill2 starsChanged 25 days agoApache-2.0View on GitHub
Use when an RTL language such as Arabic, Hebrew, Persian, or Urdu is served or planned, and layout and behavior must mirror correctly: dir attribute, logical CSS properties, mirrored navigation, bidi text, icons, and forms. It checks rendered pages in RTL and fixes layout logic. Do not use it to mirror non-directional icons, to flip images with text, or on sites with no RTL locale.
We split this skill into the rules it gives an agent
2 rules. About 0 are common, 2 are distinctive, and 0 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈2
Distinctive · estimate
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 19
Not for LTR-only sites.
- Distinctive: line 65
No RTL locale is served or planned.
≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
rtl-readiness
RTL is not "flip the page". Direction, layout, and reading order change; icons, numbers, and mixed-language text have their own rules. A half-mirrored site tells RTL readers it was not built for them.
Activate when
- An RTL locale is offered or planned; content includes RTL text; users report backwards layouts.
- Not for LTR-only sites.
Working alone
This skill is self-contained. Its companions (declared in its metadata) are skills whose method it may need to do its own promised work. Use of a companion can be conditional: declaring one does not mean running it. When a companion's lane applies, use the skill if it is installed; if not, follow its short entry in references/companion-methods.md and say in your report which lanes ran inline at reduced depth. Never skip an applicable lane silently. Skills mentioned here only for escalation, referral, documentation, or optional deeper follow-up are not dependencies: report the hand-off and finish honestly.
Companions: design-system-reconnaissance.
Inspect
- Direction:
<html dir="rtl" lang="ar">(ordir="auto"for user content); set on the document, not by ad-hoc per-element hacks; switching locale switchesdir. - CSS logic: physical properties (
margin-left,padding-right,left: 0,text-align: left,float,border-left) that should be logical (margin-inline-start,padding-inline-end,inset-inline-start,text-align: start,border-inline-start); Tailwindms-*/me-*/ps-*/pe-*andrtl:variants vsml-*/mr-*; flexbox/grid order relying on physical direction; transforms/animations translating on X axis; scrollbars and carousels. - Rendered pass at desktop and 375px with the RTL locale (
observe-runtime --viewport 375x812 --steps steps.jsonwith agototo the RTL path;--screenshotsto look at it; paths relative to this skill's folder): navigation order and alignment, header/logo/menu placement, breadcrumbs, forms (labels, inputs, validation icons on the correct side), tables (column order), dialogs and close buttons, toasts, pagination arrows, progress bars. - Icons and media: directional icons (arrows, chevrons, back/forward, send, breadcrumbs) mirror; non-directional icons (logos, play, clock, checkmarks, brand marks, media controls) do not; images with baked-in text or diagrams with left-to-right flow are handled deliberately.
- Bidi text: mixed RTL/LTR strings (brand names, numbers, URLs, emails, phone numbers, code) render in the correct order; punctuation at the wrong end;
<bdi>/dir="auto"for user-generated strings; numerals (Western vs Arabic-Indic) chosen deliberately and consistently; input fields for emails/URLs are LTR. - Typography: font supports the script well (weight, diacritics); line-height and size adequate (Arabic/Persian often need more); no letter-spacing on connected scripts (it breaks joining); no forced uppercase.
- Locale formatting: dates, numbers, currency via
Intlfor the locale; calendar expectations (a product decision: owner). - Metadata and legal: the RTL-language pages have translated trust/legal pages (
multilingual-readiness),lang/hreflang, and correct social text.
Evidence that counts
Label each claim OBSERVED, SOURCE-INDICATED, DECLARED, INFERRED, UNKNOWN, or REVIEW REQUIRED. UNKNOWN is never a pass and never a failure.
- Rendered RTL layout at the tested sizes: OBSERVED. CSS using logical properties: SOURCE-INDICATED.
- Language and translation quality need a native reader: UNKNOWN unless one reviewed it.
May change
Design first. Before creating or changing anything visible, inspect the project's existing design system (design-system-reconnaissance) and build from its tokens and components, by the component ladder: reuse, compose, extend, and only then create a matching component. Never impose a ReadyVibe look on the user's site.
Set dir/lang; convert physical CSS to logical properties or add rtl: variants; mirror directional icons; fix flex/grid ordering; wrap mixed-direction strings; adjust typography for the script; fix RTL-specific overflow. Preserve the design system; do not rewrite styles wholesale. Do not mirror logos or media controls, and do not machine-translate copy.
Must not claim
"RTL-ready" or "fully localized". State the pages, sizes, and locales viewed and that a native-speaker review is pending.
Verify
Re-screenshot the same pages in RTL and LTR: LTR unchanged; RTL mirrored where it should be; no overflow at 375px; forms and dialogs operate correctly; keyboard order follows visual order.
Escalate
Content or UX decisions that depend on cultural/locale knowledge; legal translations; complex editors, charts, and maps in RTL.
No change is valid when
No RTL locale is served or planned; or RTL pages already render and behave correctly.
In this repository54 other files it gives its agents.
- wcag-readinessSkill
- admin-audit-logSkill
- admin-authorizationSkill
- admin-dashboardSkill
- payments-readinessSkill
- subscription-readinessSkill
- ai-features-readinessSkill
- analytics-privacySkill
- consent-managementSkill
- consumer-protection-readinessSkill
- cookie-and-storage-auditSkill
- data-flow-mappingSkill
- data-rightsSkill
- email-complianceSkill
- jurisdiction-applicabilitySkill
- legal-identity-noticesSkill
- minors-readinessSkill
- policy-consistencySkill
- privacy-policySkill
- privacy-readinessSkill
- regulated-domain-triggersSkill
- terms-of-serviceSkill
- third-party-privacySkill
- user-content-safetySkill
- compliance-allSkill
- compliance-diffSkill
- design-system-reconnaissanceSkill
- discoverability-allSkill
- launch-allSkill
- launch-verificationSkill
- production-allSkill
- quality-allSkill
- site-reconnaissanceSkill
- trust-allSkill
- search-console-readinessSkill
- seo-readinessSkill
- social-sharingSkill
- structured-dataSkill
- multilingual-readinessSkill
- content-trustSkill
- error-pagesSkill
- failure-resilienceSkill
- faq-readinessSkill
- forms-readinessSkill
- launch-identitySkill
- legal-navigationSkill
- link-integritySkill
- mobile-readinessSkill
- performance-readinessSkill
- public-supportSkill
- dependency-securitySkill
- deployment-cleanupSkill
- security-headersSkill
- web-securitySkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

