linkedin-studio/docs/m0/log.md

3.2 KiB
Raw Blame History

M0 — Implementation Log

Running record of decisions, deviations, and out-of-scope follow-ups discovered during M0 execution. Plan: docs/m0/plan.md (18 steps). History → git; this file captures only what the commit messages cannot.

Session 3 — Steps 1113 (2026-06-18)

Environment reality vs. plan assumptions

The plan was authored assuming the operator's real .local.md runtime data sat in the plugin tree (227-line voice profile, analytics exports, draft queue). On this machine that data is absent — it is a clean clone:

  • assets/voice-samples/: only the PII-free placeholder authentic-voice-samples.md (+ .template.md). No .local.md source.
  • assets/drafts/: only .gitkeep. assets/analytics/: only README.md + empty ab-tests/.
  • The 4 tracked D2 scaffold instances DO exist (high-engagement-posts.md, demographics.md, engagement-patterns.md, my-post-templates.md).

Consequence for Step 12 (live migration): every MOVE_FILES / MOVE_DIRS entry resolved to an absent source → clean no-op. Only the 4 COPY_FILES scaffolds were relocated. Result: migrated — moved 0, copied 4, skipped 0; .migrated marker written; idempotent re-run confirmed already-migrated.

Step 12 verify adapted: the plan's literal check (test -f .../voice-samples/authentic-voice-samples.md) cannot pass without a .local.md source to move, so it was replaced with the achievable post-condition: .migrated marker present + 4 scaffolds external + migrateData wired into session-start.mjs + idempotency. The voice MOVE correctly no-op'd. (Operator pre-approved this adaptation before the run.)

OUT OF M0 SCOPE — git-history scrub of the leaked post (FOLLOW-UP)

assets/examples/high-engagement-posts.md held the operator's real LinkedIn post at HEAD (the "Ralph Wiggum / vibe-coding" post — real names, real engagement metrics, real personal narrative). Step 13 scrubbed the working-tree content to a generic placeholder (0 ## Post N sections → personalization score 0, no PII). This does not remove the post from git history. A history rewrite (git filter-repo / BFG) on assets/examples/high-engagement-posts.md is a separate, explicit operation — deferred, not done here (brief §13: out of M0 scope). Track until the repo is published.

Note — external instance retains pre-scrub content (by design)

The Step-12 migration copied high-engagement-posts.md to ~/.claude/linkedin-studio/examples/high-engagement-posts.md before Step 13 scrubbed the in-plugin file (B3 ordering). The external copy therefore still holds the migrated content. That is the operator's private data dir (outside any repo) — the operator may curate it; not an M0 concern.

D2 scaffolds completed

All 6 scaffolds now have a read-only *-template.* seed: case-study-template.md and framework-template.md already shipped; Step 13 added the 4 missing ones (high-engagement-posts-template.md, demographics-template.md, engagement-patterns-template.md, my-post-templates-template.md). The 3 already-generic instances seeded their templates verbatim; the high-engagement template is a freshly-authored generic seed (the old instance was the leak).