# Independent learner review: appmint-social-media-automation

- Frozen manuscript: `assets/appmint-social-media-automation/manuscript-frozen.md`
- SHA-256: `c67d42d61601b8cf4df16e0aa39a67d5ae5d1cdbe8767f21eb9b254d23a361b0`
- Review type: **document-only**, 18 September 2026. All 22 embedded images inspected, including the supplied practice PNG. All image and document/asset links resolve. Inventory and six contact sheets: `assets/appmint-social-media-automation/`.
- Inputs restricted to manuscript, embedded visuals and explicitly linked welcome prerequisite. No app source, capture ledger, author account, hidden application state or API accessed. The supplied artwork is clearly labelled fictional and is a usable learner fixture.

## Outcome and limit

The self-contained draft/artwork/listening exercise is substantially clearer than an automation promise: it separates files from attachments, drafts from external publication, and sample matches from actual mentions. Independent protected execution remains **blocked by absence of a controlled owner account**. Signup is awaiting a controlled inbox and was not repeated. None of the application steps, upload, pattern tester or scheduled actions are credited as passes. There is no independent public product check that substitutes for these protected steps.

## Findings

1. **High — the schedule inspection needs an explicit no-create stop before an action-bearing editor.** Part 4.1 tells the learner to open Add schedule; Part 4.2 describes pressing Create schedule with Action Send/Status stop, then explains that stop is not reliably enforced. The course permits the learner's own company, possibly with connected accounts, while the author's failed creation happened in an unconnected training environment. A reader can reasonably imitate the described click expecting the same failure on a different build. Move the warning before the form, state “inspect only, Cancel; do not press Create schedule for this draft exercise,” and require a separately controlled scheduling rehearsal with documented cancellation before any creation. This is an instructional sequencing risk inferred from the manuscript's own limits; no scheduler behavior was independently tested.
2. **Medium — public upload instructions describe opposite checkbox states as selected.** Part 3.3 says an **unchecked** checkbox displays Public, then “leave Public selected.” The screenshot visibly shows an empty checkbox beside Public; the later uploaded card does have a Public badge. A novice cannot tell whether to check the control or preserve its current state. Give the exact observed action and verify the resulting file's visibility badge after upload; if intended publication requires anonymous retrieval, include that separate read-only check in the later publishing branch. No private customer file should be used to diagnose this.
3. **Medium — final listening scope is not fully verified by the taught readback.** Part 5.4 sets Facebook/Instagram and Comment/Message, but Part 5.5 only checks phrases and “2 platforms.” `24-listening-topic-saved.png` shows that summary and zero mentions, not the specific platform or activity selections. The only editor screenshots are unscoped text tests. Add reopen → Edit verification of the two named platforms, two named activity types and Enabled after reload. The documented text tester cannot establish that the scoped rule matches a real incoming comment, so keep that live acceptance check explicitly pending.
4. **Low — the last “Try it” can save accidentally broadened scope.** Part 5.5 asks for a new include phrase, positive/exclusion tests and Save, after explaining the tester requires clearing scope. Repeat the restore-Facebook/Instagram-and-Comment/Message checkpoint immediately before the exercise's final save. Otherwise the remembered test workaround can become the persisted rule.
5. **Low — screenshot ordering/caption for schedule failure is misleading.** `15-schedule-save-result.png`, captioned “Actual schedule-creation error,” shows the editor without the visible error. The following `16-scheduled-list.png` does show the red error toast and empty scheduled list, so the error is supported in the manuscript images. Put the error caption on that frame or capture it in the editor. Do not describe the first still alone as proof of failure.

## Lesson execution matrix

| Section | Independent execution status | Documentary evidence and remaining dependency |
| --- | --- | --- |
| Prerequisite/setup and practice artwork | Document read/asset inspected only | Welcome link exists; PNG/SVG supplied; owner login and upload permission unavailable |
| Part 1: Dashboard, Accounts, Integrations | Not executed | Empty connected-account states and setup screen visible |
| Part 2: explicit Facebook selection, save/reopen | Not executed | Classified Facebook draft and reopened caption shown; missing-channel recovery is written but no corresponding Comm Center still |
| Part 3: Instagram caption/upload/select/reopen | Not executed | File Manager, public badge and persisted thumbnail visible; upload toggle wording ambiguous |
| Part 4: schedule editor/failure/recovery | Not executed; no schedule created | Editor and subsequent error/empty view shown; no safe-stop or cancellation verified |
| Part 4: recurrence/timezone | Read only | No recurrence run or provider post captured; correctly disclosed |
| Part 5: include/exclude dry-run tests | Not executed | Positive and excluded text results visible, scope cleared |
| Part 5: restore scope/save/reload | Not executed | Two-platform summary exists; named activity readback and scoped positive activity test absent |
| Part 6: provider connection/publication | Not executed; separate prerequisites | OAuth and actual provider identity/publication unverified, as disclosed |
| Part 6: conversation/activity/engagement/CRM handoff | Not executed | Empty views and pending enrichment visible; no real enquiry or reservation claimed |

## Live-review acceptance still required

Using an independent controlled owner, save/reopen both distinct drafts, upload/select/reopen the supplied asset, run both sample tests and reopen the topic editor to verify restored scope. Keep scheduling inspection non-creating. Connection, controlled publication, synced activity and CRM conversion need their own authorized fixtures and actual result evidence; none can be inferred from the supplied screenshots or source explanations.

## Fresh local browser execution — 19 September 2026

The document-only review above is historical. This run used the newly created learner's own organisation `ck-local-mu83iwh3`, an isolated browser context, actual Studio3100 and AppEngine3300.

Evidence directory: [social-local-20260919](assets/social-local-20260919/), with matching PNG/text captures. No fabricated browser data or API fixture replaced application actions.

| Lesson step | Actual result |
| --- | --- |
| Prerequisite / Part 1 | Own learner authenticated; Social dashboard, Linked Accounts and Integrations inspected. No provider accounts connected. Captures 01–03. |
| Part 2 | Explicitly selected Facebook, entered supplied caption, saved as Draft, closed/refreshed/reopened. Try it sentence added and read back, then removed and original saved/read back again. Captures 04–09. |
| Part 3 | Created a separate Instagram message with supplied caption. Uploaded the supplied PNG through File Manager with its initial unchecked/Public setting; actual saved card displayed Public. Selected that card's checkmark, saved, fully reloaded and reopened. Instagram retained caption/channel and selected image; loaded image natural width 1080. Captures 10–14. |
| Part 4 | Opened Schedule → Add schedule, inspected fields and chose Cancel. No timing record created; Scheduled showed No scheduled posts yet. Captures 15–16. Creation/suspension source repairs have separate local regressions; this course does not activate a job. |
| Part 5 original samples | Positive text matched `design consultation`; text containing `job application` returned No match. Captures 17–18. |
| Part 5 saved scope | Created topic with Facebook/Instagram, Comment/Message and Enabled. Full reload → Edit visibly retained those four selections, with all others unselected. Captures 19–21. Scoped content-only sample returned No match as documented, capture 22. |

The public fictional tutorial PNG was stored through the local backend's configured development object storage under the learner organisation prefix. No social-provider login, external publication or reply occurred.

A shared Studio HMR/process stall interrupted the unsaved final extra-phrase exercise. The two messages and original topic had already been saved and independently reopened; no saved record was lost. Local server recovery was coordinated with the other browser reviewer before continuing.

### Final exercise and closure

**Complete for the course's local draft/listening scope.** The extra `room refresh` positive sample matched and the `job application` sample was excluded (23–24). The first attempted update exposed a real application error: `PUT /social/topics//<id>` returned 404 (25). This was not credited as saved. The [request-path repair](../application-fixes/social-topic-paths.md) corrected the component arguments and related per-topic route; 12 local contract checks passed.

After the repair, Save changes succeeded and closed the editor. A full reload → Listening → Edit showed both include phrases, the exclusion, only Facebook/Instagram and Comment/Message, and Enabled checked. Capture [26](assets/social-local-20260919/26-final-topic-editor-after-reload.png) and [scope-readback.json](assets/social-local-20260919/scope-readback.json) preserve that result. The browser explicitly asserted the extra phrase remained present.

Conversations showed no social threads (27); Activity showed no matching activity (28); Engagement showed zero inbound interactions and its pending sentiment-enrichment explanation (29). Feed displayed provider-account prompts and built-in example Twitter cards (30), treated as samples. No Sync or provider connection was invoked. Instagram was reopened again and scrolled to its actual loaded image for [31](assets/social-local-20260919/31-instagram-image-visible-after-reload.png).

The course now uses fresh captures, verifies exact final scope and describes the schedule-source repair as a separately tested local change. The course's future connection/publication/CRM handoff is not an executable provider setup or live-delivery claim; those external actions were outside this authorized local walkthrough. No pending required local exercise remains.
