New entry pages and a private remark channel have been prepared. The public website has not been edited, credentials have not been used and no messages have been sent. No external assessments have been received. An isolated local PHP 8.3.6 runtime passed syntax checks for the handler, cleanup script and configuration example; all nine integration-test methods passed. Live-host checks and deployment have not been performed.
Observed routes
The archive site_reference/beforeword_28.09.zip has the root +-5/. Its Russian home is /; the English home is /en/. Research uses /research/ in Russian and /research/en/ in English. English editions of individual studies follow /research/<study>/en/. No PHP files are present in the archive. This does not establish whether the live host can execute PHP.
The proposed new routes follow that pattern:
/research/words-and-imprisonment/— Russian entry./research/words-and-imprisonment/en/— independent English entry./research/words-and-imprisonment/files/— the final research package./research/words-and-imprisonment/review/?lang=ruand?lang=en— the remark form.
The patch contains only the new study directory. It includes no replacement for the existing home, either research index, the global .htaccess or earlier studies. Add a link to the current existing page after examining it; do not replace it with an archived copy.
Contents of this part of the patch
public_html/ contains the two entry pages, local styling, the PHP form, downloadable TXT response forms and rules for the new directory only. private/ contains a configuration example and a command-line cleanup script. tests/ supplies local integration checks. The main task adds the final articles and appendices to files/; the entry links use their current filenames.
A remark is saved in JSON with an unpredictable receipt identifier and state received-unreviewed. The record has no name, email or raw-IP field. A person may put personal information in the free text, so the form asks them to omit unnecessary details. Submitted source URLs are never fetched by the server. No public record viewer or submission search is provided.
cPanel installation
- Identify the domain's current document root through File Manager. Before uploading, check that
/research/words-and-imprisonment/is absent or contains only this preparation. If other content exists, preserve and compare it first; this patch is not a blind replacement. - Upload
public_html/research/words-and-imprisonment/to the new directory under that root. Add the final research files underfiles/. Do not upload the configuration example or cleanup script into the public document root. - Create
beforeword-feedback-datain the document root's parent directory with permissions 0700. The PHP execution account must be able to use it. For a root such as/home/<account>/public_html, the directory is/home/<account>/beforeword-feedback-data; this document assigns no account name. - Put
beforeword-feedback-config.phpin that same parent directory, using the example inprivate/. Set the existing absolute storage path and permissions 0600. The handler createsnotes,rateandsessionswith permissions 0700; notes and the private key use 0600. - Establish that the host executes PHP rather than serving source code. The environment must support the session options, JSON, random_bytes and filesystem locking used in the handler. The default configuration has
enabled => false; the channel is not enabled before the checks. - Run the handler checks in a separate PHP environment and on the deployed route. Then set
enabled => true. Verify a real submission, receipt and private JSON persistence, and verify that the record cannot be fetched by URL. Mark test remarks as tests and delete them afterwards. - Place
cleanup.phpoutside the public root beside the configuration. Set a daily cron task using the actual PHP executable supplied by the host; no executable path is invented here. Test expiry with an artificial expired record rather than a user submission. The public retention text states the possible delay when neither form access nor scheduled cleanup occurs. - Examine the Russian and English entries, article downloads, earlier-study links and return routes. Add concise links to the inspected current home and research pages. Where LiteSpeed caching is used, refresh the relevant new-page cache after release.
This list records proposed deployment actions. It does not report a public upload or distribution of remarks to other people.
Checks
For a local rerun with PHP available, run python tests/test_feedback.py. The program returns exit code 77 explicitly when PHP is missing. It tests storage and receipt; required CSRF and replay rejection; the bot trap; limits; XSS escaping; absence of public JSON retrieval; rate limiting; invalid controls and source URLs; unavailable or public storage; the TXT fallback; and expiry of an artificial record. Tests create temporary directories only.
On 30 September 2026, isolated PHP 8.3.6 passed syntax checks for all three PHP files and all nine handler-test methods. Distribution packages were downloaded normally into scratch and extracted without system installation; hashes were checked against metadata. Local success does not establish PHP execution, storage permissions, HTTPS or receipt on cPanel. Those hosting checks remain necessary before release. Legal assessment and independent language editing are separate from form testing.
Editorial handling
Read the private store through cPanel after the account holder signs in. No public admin route is created. The assessment questions and workflow are in review_workflow_RU.md and review_workflow_EN.md. The register of external assessments actually received is empty.
Receipt, human assessment, acceptance of a correction and a public revision are separate states. A decision records the prior passage, remark, response, replacement, effect on both language editions and remaining issue. Publishing a private remark requires a separate decision and basis; the form does not publish it automatically.
The broader public aim remains ending imprisonment for words, including where the classification is supported. A working channel permits a specific objection. Its existence does not create a precedent or international attention.