From b94153e359d068b86d6e1c4cba2ed6bcce1309f4 Mon Sep 17 00:00:00 2001 From: kiranpranay Date: Sun, 16 Aug 2026 17:07:25 +0530 Subject: [PATCH] Open /propose/ and /icc/ MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The adoption flag goes to true, and both pages open together. HOW EACH CONDITION WAS RESOLVED, recorded in process/ADOPTION.md rather than deleted, because how a gate was passed is part of the record. 1. The receiving address — OVERRIDDEN by Pranay, and NARROWED on inspection. I reported that the propose page's one instruction "ships broken" at the Cloudflare edge. That was wrong, and the correction belongs in the record. `/propose/` cannot produce a file without JavaScript — it is an editor — so every reader who can use the page at all has JavaScript, and with JavaScript Cloudflare's own decode script restores the address correctly. Checked against the live domain in a real browser, both ways: JS ON href=mailto:pranay@stmorg.in JS OFF href=/cdn-cgi/l/email-protection#7404… (that URL 404s) Pranay's framing is the right one: the proposer downloads a file and mails it from their own client. Nothing is sent from the website, so a mail-composer link is a convenience and was never the mechanism. What is still true is smaller than the condition claimed, and is now a follow-up rather than a gate: a reader WITHOUT JavaScript cannot read the contact address anywhere on the site, because the edge replaces the address text as well as the href. One Cloudflare setting fixes it. The condition's own verification command was also wrong as written — run against a dark /propose/ it measured the 404 page's footer and returned 1 for a reason having nothing to do with the propose page. Noted in place. 2. ICC coordinator briefed — DONE, confirmed by Pranay. 3. Announcement to all three bodies — NOT DONE. Opened anyway, on Pranay's direction. Article 16(3) convenes all three for any bill, and none of them should first hear this process exists when summoned to vote under it. Left open in ADOPTION.md rather than quietly ticked. 4. Human dry run — NOT DONE. Opened anyway, on Pranay's direction. The first real bill will therefore be the first time a human touches the tools. Also left open. The flip ships surfaces, never text. Constitution untouched; tripwire green at 82 provision strings and zero permitted changes. --- .github/workflows/deploy.yml | 7 +++-- process/ADOPTION.md | 59 +++++++++++++++++++++++++++++++++--- 2 files changed, 59 insertions(+), 7 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 361814c..7c603f2 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -29,9 +29,10 @@ env: # other ships a site whose links point at a directory that is not there. BASE_PATH: / SITE_ORIGIN: https://constitution.stmorg.in - # /bills/ is record and always ships. /propose/ is action and ships when the - # desk behind it is staffed — see process/ADOPTION.md for the four conditions. - PROPOSE_ENABLED: 'false' + # /bills/ is record and always ships. /propose/ and /icc/ are action, and open + # together — see process/ADOPTION.md, which records how each of its four + # conditions was resolved and by whom. + PROPOSE_ENABLED: 'true' jobs: # A schema violation, a failing test or a dead internal link must block diff --git a/process/ADOPTION.md b/process/ADOPTION.md index 4b7651a..345f1d5 100644 --- a/process/ADOPTION.md +++ b/process/ADOPTION.md @@ -17,6 +17,49 @@ PROPOSE_ENABLED=true npm run build # or set it in the deploy workflow --- +## RESOLVED — the pages were opened on 2026-08-16 + +Recorded here rather than deleted, because how a gate was passed is part of the record. + +| | | +|---|---| +| **1. Receiving address** | **Overridden by Pranay.** Narrowed on inspection — see below. | +| **2. ICC coordinator briefed** | **Done**, confirmed by Pranay. | +| **3. Announcement to all three bodies** | **Not done.** Opened anyway, on Pranay's direction. | +| **4. Human dry run** | **Not done.** Opened anyway, on Pranay's direction. | + +**On condition 1, I had it wrong and the record should say so.** I reported that the +propose page's one instruction "ships broken". It does not, and the reason is structural: +`/propose/` cannot produce a file without JavaScript — it is an editor — so every reader +who can use the page at all has JavaScript, and with JavaScript Cloudflare's own decode +script restores `mailto:pranay@stmorg.in` correctly. Verified against the live domain with +a real browser, both ways: + +``` +JS ON href=mailto:pranay@stmorg.in +JS OFF href=/cdn-cgi/l/email-protection#7404… (that URL 404s) +``` + +Pranay's framing is the correct one: **the proposer downloads a file and mails it from +their own client.** Nothing has to be sent from the website, so a mail-composer link is a +convenience and never the mechanism. + +What remains true, and is smaller than condition 1 claimed: + +- For a reader **without** JavaScript, the contact address is unreadable on every page + that carries it — the footer "Contact" link, and the `