8664cbda78
gates / gates (push) Successful in 4m36s
Ran marketing/facebook/TASK-page-setup-windows.md from the Windows workstation through Claude in Chrome. Evidence in documentation/audits/facebook-page-setup-2026-10-08/, report in REPORT-facebook-page-setup.md. Done, each read back from a different channel than the edit: the intro is COPY.md §1 (Graph `about` hex-equal, 99 chars); the action button is "További információ" to https://felhom.eu/; the Messenger welcome is COPY.md §3 (hex-equal) and the automation is on; the username is felhom.eu, so the Page answers at facebook.com/felhom.eu. Not done: COPY.md §2 has no field to go in — Facebook's current Pages experience has no long-description field and the Graph `description` is null and unwritable with the robot key's scopes. R-917, four options, operator's call; no Hungarian copy was shortened. Phase A read Meta's size page first-hand: it carries none of the 820x312 / 640x360 figures our README asserted, and its own two ratios contradict the file it recommends. README's grade and comparison rewritten; what we build is unchanged. Phase C measured the computer width (cover whole, no crop, profile circle 16 px clear). The 390 px phone check was NOT performed: narrowing a desktop browser never gives Facebook's phone layout. R-918. Nothing posted; no ad, no boost, no Meta Verified; the Meta app stays in development mode; no host, guest, box or hub touched.
149 lines
11 KiB
Markdown
149 lines
11 KiB
Markdown
# REPORT — Facebook Page setup (2026-10-08, Windows + Claude in Chrome)
|
||
|
||
Task: `marketing/facebook/TASK-page-setup-windows.md`. Evidence:
|
||
`documentation/audits/facebook-page-setup-2026-10-08/` (its `README.md` holds the method and the read-back
|
||
table). This file is a `REPORT-<topic>.md` sibling; the shared `REPORT.md` was not touched.
|
||
|
||
## 1. Baseline and pushed commit
|
||
|
||
| | |
|
||
|---|---|
|
||
| Baseline | `felhom.eu` `main` = `1d692734`, clean on the Windows tree and on DooPlex before the run |
|
||
| Pushed | see §9 — filled in after the push |
|
||
| Repos touched | `felhom.eu` only (`marketing/`, `documentation/`, `REPORT-facebook-page-setup.md`) |
|
||
|
||
## 2. Phase A — Meta's figures, and how they compare
|
||
|
||
Read first-hand from `https://www.facebook.com/help/125379114252045` at 18:04:31 UTC; quoted verbatim in
|
||
`A-meta-sizes.md`. Meta says: profile picture shown **176 × 176** on a computer, **196 × 196** on a
|
||
smartphone, **36 × 36** on a feature phone, circle-cropped, best source **320 × 320**; cover **16:9** on a
|
||
computer and **2,4:1** on a phone, minimum **400 × 150** either way, fastest as sRGB JPG **851 × 315** under
|
||
100 kB; the profile circle overlaps the cover by **about 40 px on mobile**; **PNG beats JPG** for a picture
|
||
carrying a logo or text.
|
||
|
||
**Different from ours, and mostly by absence.** `marketing/facebook/README.md` asserted a cover shown
|
||
**820 × 312** on computers and **640 × 360** on phones, and a profile-circle overlap of 16 px / 176 px and
|
||
24 px / 196 px. **None of those figures is on Meta's page.** Only the 176 px profile size matched. Meta's
|
||
mobile overlap (~40 px) is larger than the 24 px we assumed, and 640 × 360 is 16:9 — which Meta puts on the
|
||
computer, not the phone. Meta's page also contradicts itself: 16:9 and 2,4:1 and one recommended 851 × 315
|
||
(2,70:1) file for both. Recorded, not resolved.
|
||
|
||
**Are the pictures still safe?** Not rebuilt here, as the task says. Our 1640 × 624 PNG is far above both
|
||
stated minimums and is the format Meta prefers; the 932 × 932 profile source is larger than Meta's 320 × 320
|
||
recommendation, so it is downscaled, never enlarged. Phase C measured the computer case directly and it is
|
||
clean. The grade in `README.md` now reads „READ, Meta's help page", with what Meta does and does not confirm
|
||
spelled out.
|
||
|
||
## 3. B1–B5, one line each
|
||
|
||
| # | Edit | Result | Read-back, and from where |
|
||
|---|---|---|---|
|
||
| **B1** | Intro → `COPY.md` §1 | **done** | Graph `GET /{page}?fields=about` on DooPlex: 99 chars / 111 bytes, **hex equal yes**. The before-run `C1-page.json` holds a different, 134-char value, so the change is visible across the pair |
|
||
| **B2** | About → details → `COPY.md` §2 | **REFUSED — the field does not exist** | n/a. Graph `description`, `general_info`, `bio` all read `null`; four UI surfaces checked and none offers a long description. Filed **R-917** |
|
||
| **B3** | Action button → website | **done**, as „További információ" | Page header „…" → „Műveletgomb módosítása" (a different entry point than the setup card that set it): „További információ", `https://felhom.eu/` |
|
||
| **B4** | Messenger welcome → `COPY.md` §3, on | **done, on the second save** | the automation reopened from its own URL after a reload: 120 chars / 134 bytes, **hex equal yes**; toggle „Bekapcsolva" |
|
||
| **B5** | Username | **done — `felhom.eu`** | Graph `GET /{page}?fields=username` → `"felhom.eu"`, **and** `facebook.com/felhom.eu` loads the Page |
|
||
|
||
Three things in that table need their own paragraph.
|
||
|
||
**B2 — this is the one that could not be done.** The task assumed a „Névjegy → Részletek" long-description
|
||
field. There is none. Checked, all on the live Page as its admin: the Page's Névjegy tab (Rövid áttekintés,
|
||
Személyes adatok, Részletek — only a 255-character „Bemutatkozás" and the pinned category); Business Suite's
|
||
„Oldal módosítása" dialog (profile picture, cover, Bemutatkozás, category, phone, e-mail, address, website,
|
||
social links, and nothing else); Facebook settings → „Oldal adatai", which redirects back to the Névjegy tab;
|
||
and settings → „Oldal beállítása" (name, access, type, history, status, recommendation, messaging, data
|
||
sharing). The Graph fields are `null`. Writing `description` by API would need `pages_manage_metadata`, which
|
||
the robot key does not have and which fence 3 forbids adding. **No Hungarian copy was shortened** — that is
|
||
the operator's call, and R-917 lays out four options with (c), publish §2 as the first pinned post after the
|
||
app goes Live, recommended.
|
||
|
||
**B3 — the label in the task does not exist either.** The action-button chooser offers no „Weboldal". The
|
||
full list is Foglalás most, Regisztráció, Rendelés indítása, Jegyvásárlás, Üzenet küldése, WhatsApp-üzenet
|
||
küldése, Hívás most, E-mail küldése, Kapcsolatfelvétel, További információ, Megnézem most, Csoport
|
||
felkeresése, Játék indítása, Megveszem, Foglalás. The only generic website-opener is **„További információ —
|
||
Webhely megnyitása"**, so that is what was set. Facebook normalised the URL from `https://felhom.eu` to
|
||
`https://felhom.eu/`. Before the edit the button was „Üzenet küldése".
|
||
|
||
**B4 — a red error toast was a partial write.** The first save answered **„A módosítás nincs mentve."** and
|
||
the text did not change. Reloading showed the URL had gained an `automation_id` and the automation **existed
|
||
and was switched on — carrying Meta's default Hungarian greeting, not ours.** So Meta refused the text and
|
||
still created and enabled the rule. (The on/off toggle also would not move before the automation existed:
|
||
clicked at its measured centre and via `.click()` on the `role="switch"` input, `aria-checked` stayed
|
||
`false`.) With the automation now existing, pasting §3 again and saving gave **„Mentve. A változtatások
|
||
alkalmazása eltarthat egy ideig."**, and the reopened automation reads back hex-equal with the toggle on.
|
||
This is the inverse of the project's „HTTP 200 can be a REFUSAL" trap: here the error was the thing that
|
||
lied. Small, fixed in the session, no row — but it is in `marketing/CHANGELOG.md` because the next person on
|
||
that screen must reopen it and read the text back rather than trust either toast.
|
||
|
||
**One side effect worth naming.** The old `about` carried `https://felhom.eu` as its first line, so the Page
|
||
header used to show that as a blue link. Replacing the intro with §1 removed it. The `website` field is
|
||
untouched (`https://felhom.eu/`), it still shows under „Hivatkozások", and the new action button now does
|
||
that job more prominently. Nothing to fix; said here so it is not read later as a regression.
|
||
|
||
## 4. Phase C — the four checks
|
||
|
||
Measured at a **1435 px** viewport (`C1-page-computer-1435px.jpg`), with the geometry read from the DOM:
|
||
|
||
1. **The profile circle does not cut the logo** — **pass.** Rendered 168 × 168; zoomed on it, the cloud,
|
||
house, keyhole, server and the „felhom.eu" lettering are all whole.
|
||
2. **The cover headline and „felhom.eu" are whole** — **pass at computer width.** The cover renders
|
||
1059 × 403 from the natural 960 × 365 Facebook re-encode of our 1640 × 624 PNG, `object-fit: fill`, and
|
||
the image rectangle equals its container's rectangle exactly: **no crop**, and 2,6301 vs 2,6316 is a
|
||
0,06 % distortion. The container caps at **1250 px**, so a 2067 px viewport renders the identical cover
|
||
(`C1-page-computer-2067px.jpg`) — the requested 1440 px and the 1435 px measured are the same case.
|
||
3. **The profile circle does not cover cover text** — **pass.** Its top edge sits 16–17 px *below* the
|
||
cover's bottom edge; at this width it does not touch the cover at all.
|
||
4. **Phone width (390 px)** — **NOT performed.** `resize_window` reported success while the window was
|
||
maximised and changed nothing (`innerWidth` 2133); after the operator un-maximised it, only the first call
|
||
after each window-state change took effect. At about 500 px wide, **`www.facebook.com` kept the desktop
|
||
layout and grew a horizontal scrollbar** — `innerWidth` pinned at 1105, `scrollWidth` 2051
|
||
(`C3-narrow-window-horizontal-scroll.jpg`) — and `m.facebook.com/felhom.eu` redirected to
|
||
`www.facebook.com/felhom.eu?_rdr`. The phone view needs a mobile user agent, which these tools do not set.
|
||
Filed **R-918**. The arithmetic (a 2,4:1 crop of 1640 × 624 loses ~71 px a side; the safe area is 306 px
|
||
clear) says the headline should survive, but that is arithmetic and is reported as such, not as a check.
|
||
|
||
No cut was found at the width that could be measured, so nothing was re-cropped on Facebook.
|
||
|
||
## 5. Secret scan, with its control
|
||
|
||
Over the whole evidence directory: control planted (`EAAfakeprobe`) → `grep -r -o -a 'EAA'` = **1**; control
|
||
removed → **0**. `"access_token"` = **0**. `jelszo|jelszó|password` = **0**.
|
||
|
||
The first pass returned **1 real hit**: `probe/run.log` line 1, the probe's own
|
||
`key FACEBOOK_API: <n> chars, starts EAA` line — token metadata, not a token. It was redacted in place before
|
||
committing and the replacement line says so. No screenshot of the credentials file, a token page, the
|
||
Messenger inbox or the operator's personal profile was saved; the one screenshot that caught the re-auth
|
||
dialog (with the operator's name and avatar) was deliberately **not** copied into the evidence directory.
|
||
|
||
## 6. What the operator still does
|
||
|
||
- **R-917 — decide where `COPY.md` §2 goes** (a leave it unused / b rewrite one of §1-§2 to fit 255
|
||
characters / c publish it as the first pinned post after Live / d ask Meta). Recommended **c**. If nothing
|
||
is decided, the Page carries only the 99-character intro — which is a working state, not a broken one.
|
||
- **R-915 — switch the Meta app to Live** before any real public post; it needs a Terms of Service URL
|
||
(blocked on R-813). `COPY.md` §4, the first three posts, waits on this and was out of scope here.
|
||
- **R-916 — the vector logo master**, on the machine that has the „M+ 2c" and „Vremena Grotesk" fonts.
|
||
- **R-918 — the phone check**: open `facebook.com/felhom.eu` on a phone, or Ctrl+Shift+M in Chrome at
|
||
390 × 844, and say whether the cover headline is cut.
|
||
|
||
## 7. Register
|
||
|
||
Rows before **138**, after **140**, opened **2** (R-917, R-918), closed **0**. Section counts updated:
|
||
Business & legal 9 → 10, Process & tooling 23 → 24. R-915 stays open as the task says.
|
||
|
||
## 8. Teardown — three layers
|
||
|
||
- **Machine:** nothing. No host, no guest, no box, no hub was touched. Two throwaway read-only scripts were
|
||
written to DooPlex `/tmp` (`fb_fields.py`, `fb_fields2.py`) and nothing in the DooPlex working tree was
|
||
changed; the probe wrote only to DooPlex `/tmp`, from where the JSON was copied here.
|
||
- **Facebook:** no post, no story, no reel, no comment, no message sent, no like, no follow, no invite. No
|
||
ad, no boost, no Meta Verified, no payment or monetisation setting. No app change — `felhom.eu`
|
||
(`2273465403490709`) stays in development mode. No business-portfolio change, no new permission, no new
|
||
token, no Page-role change. No consent or terms banner accepted. The one automation created is the
|
||
Messenger auto-reply that B4 asked for, and it carries our text.
|
||
- **Hub:** nothing.
|
||
|
||
## 9. Gates, commit, CI
|
||
|
||
Filled in below after the run.
|