Commit graph

6 commits

Author SHA1 Message Date
35ed480e5a refactor(linkedin-studio): S31a multiplier-scrub (reference-docs) — unsourced "Nx" reach/format multipliers -> SSOT
Hardening, multiplier class (S31, batch a). Surgical SSOT-reconciliation of
unsourced "Nx" reach/format/growth multipliers asserted as fact in 7 reference
docs. Same discipline as S27/S28/S30: read-and-show -> grep-confirm -> re-grep
final; 8-step interactive gate; operator-approved catalog before edit.

26 edits / 7 files (+32/-32):
- collaborations-guide (10): 10x reach (:3,:476), 2-3x normal (:32), and the six
  per-format "Reach multiplier: Nx" fields (:165/:187/:210/:235/:252/:277) +
  the label-only :292 (no number) folded in for consistency -> "Reach:" with
  directional, no-reliable-multiplier wording.
- linkedin-growth-playbook (10): 3x faster growth (:57/:132), 1.6x reach (:175),
  1.4x engagement (:205), 1.64x poll (:234), the format-multiplier list
  (:246-251 -> SSOT format ranking, numbers dropped), 3.6x respond (:386),
  3x engagements (:422), 5.6x follower growth (:493), 40x search (:636).
- poll-strategy-guide:7 (1.64x), articles-strategy-guide:28-29 (2-3x/10x),
  video-strategy-guide:308 (2-3x distribution), ab-testing-framework:49
  (1.17x-1.6x format multipliers), trajectory:40 (2-3x saves) + :85 (3x).

Vocabulary 1:1 with S30: "tend to / more reach (multiplier unverified)",
"no reliable multiplier", format ranking kept + number dropped -> cite SSOT.

KEPT INTACT: SSOT-backed engagement-order multipliers (save ~= 5x a like,
quality comment ~= 2x a like, ~= 1x baseline). OUT of scope (untouched):
frequency counts (5x5x5, Nx/week), pixel dims, pricing/size-ratio multipliers.

SURFACED -> S31c (descriptive-% subpass, not edited here): growth:58 (130%
follow), growth:177/178 (Buffer 178%/247%), trajectory:39 (30-40%). Flagged
as absolute-figure class outside S31: growth:421/423. Sourcing overclaim to
revisit: growth:492 "Official LinkedIn data".

VERIFY: re-grep residual targets in 7 files -> 0; routed siblings + KEEP intact;
gate scripts/test-runner.sh = 81/0/0 exit 0, counts 29/19/26 + v0.5.0 unchanged.

Push held: origin = open/ (public namespace), STATE.md must not go there;
parked arrow is all-or-nothing pending STATE-placement fix.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016qgzo6rxthw7KuxHjn5vyE
2026-06-20 09:29:25 +02:00
1bab1d6df1 refactor(linkedin-studio): S30 magnitude-scrub (discrete-% class) — unsourced reach/engagement penalties -> SSOT
Hardening-class, NOT re-hardening: surgical SSOT-reconciliation of discrete percentage
penalties/declines stated as fact with no primary source in the SSOT
(references/algorithm-signals-reference.md). Same tool-grounded discipline as S27/S28
(read-and-show -> grep-confirm -> re-grep final). Re-grep surfaced drift + same-class siblings
beyond the plan's stored list; all surfaced and operator-approved before edit.

Scope: the discrete-% reach/engagement-penalty class only. The unsourced "Nx" reach/format
MULTIPLIER class (~50 instances across ~15 files) is a separate, larger pass -> deferred to S31
(operator: run everything, across multiple sessions).

HARDEN (20 edits, 7 files):
- linkedin-formats.md (5): :6 47-50% decline + :7 15%->31% feed-share -> directional; :176
  AI-comment 30%/55% -> ~45% less engagement (correlational, medium); :231/:279 hashtags -68%
  -> diminishing returns, no discrete figure.
- linkedin-growth-playbook (6): :158 47-50% decline (twin of formats:6) + :166 hashtags -68%
  + :224/:225 post-length 25%/32% + :435/:828 posting-frequency 25% -> directional, no
  discrete figure. (:221 1.17x multiplier folded in per operator approval; the rest of the
  multiplier class -> S31.)
- glossary.md (2): :91 engagement-bait -30-50% + :235 topic-gap -15-25% -> "correlate with
  lower reach, no discrete figure".
- engagement-coach.md (2): :195 55% + :455 -30%/-55% AI-comment -> ~45% less engagement
  (correlational), actively suppressed.
- post-feedback-monitor.md (1): :330 -25%/post -> "tends to split your own audience".
- ab-testing-framework.md (1): :66 hashtags -68% -> no discrete figure.
- poll-strategy-guide.md (2): :20 / :205 poll-overuse penalty -> declining effectiveness
  (directional).

KEPT INTACT (operator-locked / different class): engagement-pod + AI-slop suppression framing
(SSOT high-confidence); firsthour:112 (no number); poll:206 / poll:3 (qualitative); growth:567
conversion-rate; formats:268 list item.

VERIFY: discrete-% penalty/decline class re-grep across the 7 files -> NONE; leave-items intact;
bash scripts/test-runner.sh -> Passed 81 / Failed 0 / Warnings 0, exit 0; counts 29/19/26/6 +
v0.5.0 unchanged (.md prose only). Disposition: FIXED (20 edits, 7 files), one atomic commit,
local (push held).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016qgzo6rxthw7KuxHjn5vyE
2026-06-20 09:08:59 +02:00
25b356fc5c fix(linkedin-studio): S29c terminology-scrub — "thought leadership" → neutral (references/)
Third sub-pass of the S29 plugin-wide terminology scrub: the banned brand phrase
"thought leadership" (FORM A) removed from the reference-doc surface — the largest pass
(2x S29a/S29b). 34 edits across 15 reference files. Vocabulary consistent with S29a/S29b:
"thought leadership angle(s)" -> "content angle(s)"; "thought leadership" (positioning/practice)
-> "authority ..."; content-type labels -> "authority content / authority posts"; the whole
"Value Test" family -> "Authority Value Test".

Established cross-pass equivalents closed: glossary:229 "Thought Leadership Value Test" ->
"Authority Value Test" (closes the S29b cross-directory naming gap); glossary:29 "8 universal
thought leadership angles" -> "content angles"; engagement-frameworks:137 "Standard Thought
Leadership Structure" -> "Standard Post Structure" (matches S29a post:98).

S29e filename locked this session: thought-leadership-angles.md -> content-angles.md (operator-
chosen). The canonical file's in-file title/headers scrubbed now for consistency (H1 ->
"# Content Angles"; "## The Authority Value Test"; "### Step 3: Test For Authority Value");
the file rename + all 20 pointers remain S29e (atomic).

Judgment-calls (operator-approved): thought-leadership-angles:212 "disguised as thought
leadership" -> "expertise" (S29b vocab); linkedin-formats:295 -> "Text-based content" (avoids
authority...authority echo); linkedin-visual-style:3 -> "For building authority,"; ai-content-
framework:380 "main LinkedIn thought leadership skill" -> "content skill" (avoids awkward
"authority skill"). Kept by design: video-strategy-guide:429 ironic quote; video-strategy-
guide:532 "TL;DW" false positive (too long, didn't watch).

Scope (operator-locked, inherits S29a/S29b): FORM A only. FORM B ("thought leader(s)" as role,
references = 4) untouched. The 3 thought-leadership-angles.md filename pointers in references/
deferred to S29e.

Verify: FORM A in references/ = only the kept ironic quote (video:429); canonical file in-file
FORM A = NONE; FORM B unchanged (4); filename pointers unchanged (3); no anchor links to changed
headers; gate 81/0/0; counts 29/19/26/6 + v0.5.0 unchanged.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016qgzo6rxthw7KuxHjn5vyE
2026-06-20 05:44:05 +02:00
90cf98d287 fix(linkedin-studio): S12 — close S11 re-review + render-chain-propagation lint guard
Closes the 2 grep-verified findings from the S11 cold full-brief re-review
(docs/remediation/review.md, BLOCK 1/0/1/0, 0 dropped). Both were the NEXT
RING of the meta-class S10/S11 converged: a propagation miss — the fix had
landed where the SC named the file, not in the render-source it depends on.

BLOCKER (command->reference propagation): references/ab-testing-framework.md:166
still shipped the banned A/B "Significant? (>20%)" Yes/No verdict column while
commands/ab-test.md (which RENDERS from it, inlined at :30, presented at :69)
had been cleaned to the honest "Directional?" framing. Re-framed the reference
result template to match the command verbatim (header + the directional note)
and retuned :38 "20% significance threshold" -> "minimum-meaningful-difference
threshold". The whole render chain is now significance-verdict-free.

MINOR ($-replacement, class-closed not line-patched): the newest-first section
appends/rewrites in hooks/scripts/state-updater.mjs passed a replacement STRING
embedding untrusted user content to String.replace, so dollar-sequences
($1 / $& / dollar-backtick / dollar-apostrophe / $$) in a topic/hook/partner
(e.g. "$100 budget cut") re-injected the captured heading and dropped
characters, silently corrupting state. Converted all 5 content-bearing sites
(Recent Posts, prune, Milestone Log, First-Hour, Outreach) to replacement
FUNCTIONS; the 3 remaining $1 sites only interpolate date scalars. +4
$-bearing regression tests — incl. the prune fixture, which itself had to
switch to a function (the bug bit the fixture as it was being written).

META (generalize the lint to the propagation-miss class): new test-runner.sh
Section 11 — render-chain propagation guard. Forbids the significance-verdict
column (Significant? adjacent to "(" or a table pipe) across the WHOLE render
chain (commands + every inlined reference + adjacent surfaces), with a
permanent non-vacuity self-test (3 verdict forms caught, 6 legitimate
Significant/significance/Directional? forms ignored) and an e2e mutation-proof.
Generalizes S10/S11's "fix the class, not the line" to command->reference.

Pre-patch render-chain sweep confirmed ab-testing-framework.md was the SOLE
propagation survivor (so a 6th review finds no 3rd). test-runner.sh 70/0/0;
node --test 98/98. CLAUDE.md lint enumeration synced.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-30 15:42:25 +02:00
3dd8f40c31 fix(linkedin-studio): propagate reconciled algorithm numbers, cite-not-restate
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-29 20:32:17 +02:00
Kjell Tore Guttormsen
40986575b6 feat(ultraplan-local): v1.6.0 — /ultraresearch-local deep research command
Add /ultraresearch-local for structured research combining local codebase
analysis with external knowledge via parallel agent swarms. Produces research
briefs with triangulation, confidence ratings, and source quality assessment.

New command: /ultraresearch-local with modes --quick, --local, --external, --fg.
New agents: research-orchestrator (opus), docs-researcher, community-researcher,
security-researcher, contrarian-researcher, gemini-bridge (all sonnet).
New template: research-brief-template.md.

Integration: --research flag in /ultraplan-local accepts pre-built research
briefs (up to 3), enriches the interview and exploration phases. Planning
orchestrator cross-references brief findings during synthesis.

Design principle: Context Engineering — right information to right agent at
right time. Research briefs are structured artifacts in the pipeline:
ultraresearch → brief → ultraplan --research → plan → ultraexecute.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-08 08:58:35 +02:00