content: add 4 South Africa canons, fix the FICA proof-of-address claim - #165
Merged
Merged
Conversation
…nons New South Africa (za) canons fill genuine gaps - za previously had only 4 of 12 country-scoped domains covered (emergency, safety, visa): - banking/proof-of-address-barrier/za - proof of residential address has not been a legal FICA requirement since the 2 Oct 2017 repeal (GN R1062, GG 41154); banks that still insist on it are applying internal policy, not law, and a SAPS affidavit route exists as an alternative - mental-health/crisis-line-not-emergency-dispatch/za - SADAG's 24/7 Suicide Crisis Helpline (0800 567 567) is counselling/referral, not dispatch; real emergencies need 10111/10177/112 - medical/uninsured-emergency-cost/za - Constitution s27(3) bars refusing emergency treatment, but foreign nationals are billed as non-subsidised, full-paying patients under the provincial Uniform Patient Fee Schedule regardless of income - legal/tax-residency-not-simple-day-count/za - SARS's primary test is the fact-specific "ordinarily resident" test, not a flat day count; the fallback physical presence test needs >91 days this year, >91 days in each of the prior 5 years, and >915 days total across those 5 years Also re-verifies the next 3 oldest-dated canons (last_confirmed 2026-02-01, the earliest bulk-generation cohort) as part of the ongoing rolling re-verification to avoid a staleness wall as the Feb 2026 batch crosses 365 days: - docker/compose-depends-on-unhealthy/docker27-linux - all sources still valid, no changes - rust/e0521-borrowed-data-escapes/rust1-linux - all sources still valid, no changes - nextjs/async-params-nextjs15/next15-linux - content unchanged but two Next.js doc URLs moved to new canonical paths (upgrading/version-15 and upgrading/codemods both moved under /guides/; rendering/server-components moved to /getting-started/server-and-client-components), updated Claude-Session: https://claude.ai/code/session_01Fj9oPLXsxJLwLggQ4xLBG6 Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
main (#170) landed South Africa coverage and re-verified the same three code canons this branch had refreshed. - Took main's version of docker/compose-depends-on-unhealthy, nextjs/async-params-nextjs15, and rust/e0521-borrowed-data-escapes. main re-verified all three on 2026-08-16, including the moved Next.js doc URLs this branch had also caught. - main's banking/foreigner-account-opening-fica/za stated that FICA requires accountable institutions to verify residential address. That stopped being true on 2 October 2017, when Government Notice R1062 (Government Gazette 41154) repealed the regulations mandating it; FIC Guidance Note 7A now treats address as an optional supplementary attribute an institution's own Risk Management and Compliance Programme may request. Reworded that canon so the legal claim is correct while its practical advice - branches do still ask, and a landlord/employer letter or apostilled foreign proof satisfies them - stands unchanged. - Cross-linked the two banking canons in both directions so the practical path and the legal position read as complements rather than a contradiction. New canons: the proof-of-address repeal and the SAPS affidavit route, the ordinarily-resident tax residency test (not a flat 183-day count), non-subsidised UPFS billing for uninsured visitors at public hospitals, and SADAG's helpline not being a dispatch service. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Ksw62KukVY7Ft7e8zZGhrp
This was referenced Aug 18, 2026
dbwls99706
added a commit
that referenced
this pull request
Aug 18, 2026
Four PRs (#165, #166, #168, #172) sat unmergeable at once with green CI, blocked by the content workflow itself in three ways. 1. Every cycle re-verified "the canons with the oldest last_confirmed", a deterministic rule, so parallel cycles picked the same files and all but the first to merge conflicted on the date fields they came to refresh. generator.reverify now assigns each cycle a bucket fixed by hashing the canon ID - not by position in the aging list, which would shift its boundaries whenever a merge aged canons in or refreshed them and let two cycles land on overlapping-but-unequal slices. Two seeds now own the same bucket or share nothing; a partial overlap cannot occur. It also excludes canons other pushed branches touch, and reports when that scan could not read every branch rather than passing an unchecked scan off as clean. 2. Nothing said to check open PRs before picking a target, so three sessions each chose New Zealand off the same view of main. Step 2 now claims a target against the open PR list first. 3. The duplicate check grepped for an identical slug, while every duplicate that shipped used a different slug for the same dead end. The check is now by topic, and partial overlap gets narrowed and cross-linked or folded into the existing canon. Also documents the re-verification contract: re-read every source before bumping any date.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this adds
Four South Africa country canons:
banking/proof-of-address-barrier/za— proof of residential address has not been a legal FICA requirement since 2 October 2017, when Government Notice R1062 (Government Gazette 41154) repealed the regulations mandating it. FIC Guidance Note 7A now lists it as one optional supplementary attribute an institution's own Risk Management and Compliance Programme may request. A branch insisting on a utility bill is applying policy, not law — and the SAPS Commissioner-of-Oaths affidavit route exists for people without one.legal/tax-residency-not-simple-day-count/za— SARS's primary test is the fact-specific "ordinarily resident" test, not a day count at all. Only if that does not apply does the physical presence test kick in: >91 days this year, >91 days in each of the preceding 5 years, and >915 days total across those 5 — considerably stricter than the "183 days" figure people import from other tax systems.medical/uninsured-emergency-cost/za— Constitution s27(3) bars refusing emergency treatment, but that is not the same as free: foreign nationals are billed as non-subsidised, full-paying patients under the provincial Uniform Patient Fee Schedule regardless of income, unlike citizens and residents who may qualify for subsidised H1/H2 bands.mental-health/crisis-line-not-emergency-dispatch/za— SADAG's Suicide Crisis Helpline (0800 567 567, also SMS 31393) is telephonic counselling and referral, not dispatch. Dispatch is 10111 (police), 10177 (ambulance), 112 (mobile).Correction to an existing canon
banking/foreigner-account-opening-fica/za(landed by #170) stated that "FICA requires accountable institutions to verify both identity and residential address." That has been wrong since the 2017 repeal above, and it directly contradicts the new canon in this PR.Reworded so the legal claim is correct while the practical advice stands unchanged — branches do still ask for address proof, and a landlord/employer/councillor letter or apostilled foreign proof satisfies them. The two canons are now cross-linked in both directions: one is the path through the branch, the other is the legal position to cite when a branch defends the demand as a FICA obligation.
Sources:
fic.gov.za(Guidance Note 7A),mjkinc.co.za(analysis of GN R1062 / GG 41154),idchecker.co.za(SAPS affidavit process),sars.gov.za(foreign employment income exemption page, Interpretation Note 4 PDF),sahrc.org.za,gov.za(Gauteng Health UPFS statement, SADAG contact sheet),saps.gov.za.Rebased onto main — what changed since the original version
This branch was opened before #170 merged and was six commits behind. The three re-verified code canons (
docker/compose-depends-on-unhealthy,nextjs/async-params-nextjs15,rust/e0521-borrowed-data-escapes) now take main's version: #170 re-verified all three on 2026-08-16 and already carries the moved Next.js doc URLs this branch had also caught. Every content PR selects "the 3 oldestlast_confirmedcanons" by the same deterministic rule, so parallel branches land on exactly the same files and collide on the date fields; dropping the re-verification here removes the conflict without losing anything.Checks
ruff check generator/ tests/— cleanpython -m pytest tests/ -q— 337 passedpython -m generator.validate --data-only— PASSED (2484 canons, 0 stale)python -m generator.build_site+--site-only— PASSEDVerified this branch merges cleanly alongside #166, #168, and #172 in any order.