fix(linkedin-studio): S2 harden post — Step-5 buzzword gate + scorecard hook-band consistency
P4 close-out (4 edits / 2 files · lint 81/0 · counts 29/19/26/6): - post.md Step 5: add no-buzzword checklist line (was missing; banned list = content rule #4) - quality-scorecard.md l.32/114: one-sided "140" hook bound -> "110-140" (matches l.128, resolves self-contradiction) - quality-scorecard.md: add no-buzzword line to Pre-Publish Basic Checklist Shared scorecard fix benefits 8 consumers; only post hardened this session (react/batch/video/pipeline get own EVALUATE in S3/S5/S6/S8). Local-only per push policy.
This commit is contained in:
parent
68f7701d74
commit
69840e7a94
3 changed files with 71 additions and 2 deletions
|
|
@ -29,7 +29,7 @@ Rate each criterion 0-3:
|
|||
|
||||
| Criterion | Score | Notes |
|
||||
|-----------|-------|-------|
|
||||
| Works in 140 characters | /3 | Mobile threshold |
|
||||
| Works in 110-140 characters | /3 | Mobile band (floor + ceiling) |
|
||||
| Creates curiosity gap | /3 | Click-through driver |
|
||||
| Promises clear value | /3 | Worth reading? |
|
||||
| **Subtotal** | /9 x 2 = **/18** | |
|
||||
|
|
@ -111,7 +111,7 @@ Before posting, verify your profile supports the post's topic (topic/interest re
|
|||
For quick posts, use this simplified check:
|
||||
|
||||
1. On-topic for my expertise? (Y/N)
|
||||
2. Hook works in 140 chars? (Y/N)
|
||||
2. Hook works in 110-140 chars? (Y/N)
|
||||
3. Clear value delivered? (Y/N)
|
||||
4. Ends with engagement prompt? (Y/N)
|
||||
5. No external links in body? (Y/N)
|
||||
|
|
@ -129,6 +129,7 @@ Before finalizing any post, verify:
|
|||
- [ ] Character count within optimal range
|
||||
- [ ] Short paragraphs with white space
|
||||
- [ ] Tone is authentic, not corporate
|
||||
- [ ] No corporate buzzwords (leverage, synergy, paradigm shift, thought leader, disruptive, value proposition, ecosystem, holistic approach)
|
||||
- [ ] Provides genuine value to readers
|
||||
- [ ] CTA is specific and natural
|
||||
- [ ] Passes the "mobile test" (readable on phone)
|
||||
|
|
|
|||
|
|
@ -131,6 +131,7 @@ Before presenting, verify against `assets/checklists/quality-scorecard.md`:
|
|||
- [ ] Provides genuine value to readers
|
||||
- [ ] CTA is specific and natural
|
||||
- [ ] No external links in post body
|
||||
- [ ] No corporate buzzwords (leverage, synergy, paradigm shift, thought leader, disruptive, value proposition, ecosystem, holistic approach)
|
||||
- [ ] Topic aligns with user's 5 core expertise areas
|
||||
- [ ] Passes thought leadership test (helps someone decide or think differently)
|
||||
|
||||
|
|
|
|||
|
|
@ -245,3 +245,70 @@ plan, "command file modified" is not a coverage predicate — the `log.md` entry
|
|||
Disposition: **PASS, no edit** · 0 deferrals.
|
||||
|
||||
---
|
||||
|
||||
## Session 2 — Create I (`post`)
|
||||
|
||||
> S2 status: the v1 autonomous attempt fabricated and was reverted (→ v2 method; see `plan.md`
|
||||
> header). This is the v2 re-run: parked at step 5 across a `/clear`, re-grounded from STATE.md's
|
||||
> two P4 findings against the actual file lines before talking (jerndisiplin: assert-after-read).
|
||||
> Field-notes inbox **absent** at S2 → graceful no-op (SC-I).
|
||||
|
||||
### /linkedin:post — interactive full-workflow post (angle→write→quality→refine→publish), 1200–1800 chars
|
||||
|
||||
**INTENT.** `post` is the Create journey's full path: from raw material (data / article / experience /
|
||||
observation / opinion / question) to a publishable 1,200–1,800-char thought-leadership post via an
|
||||
8-step workflow — angle → format → structure+write → quality check → present → refine → pre-publish
|
||||
→ deterministic state update. Post-emitting, so it must honor the content bar mechanically (hook
|
||||
**110–140**, length **1,200–1,800**, no body links, no banned buzzword, topic→5 pillars) and the
|
||||
algorithm bar (hook decisive before the mobile fold, links→first comment, native, comment-inviting
|
||||
CTA without bait, de-AI substance signals).
|
||||
|
||||
**SIMULATE.**
|
||||
- **Persona (ICP):** the author — 1048 followers, "Validation", 5 pillars; direct/technical NO/EN voice.
|
||||
- **Invocation:** `/linkedin:post about AI-kodeassistenter i offentlig sektor`.
|
||||
- **Walk:** Step 0 load state/SKILL → Step 1 type=Opinion → Step 2 angle (contrarian) → Step 3 medium
|
||||
text → Step 4 structure (hook 110–140 ✓ internally) → **Step 5 quality check (the gap)** → Step 6
|
||||
present+clipboard → Step 7 refine → Step 8 pre-publish + state.
|
||||
- **CONCRETE friction (spec-level, the live proof — anchored, not a generated post):** at **Step 5**
|
||||
the quality checklist (`post.md:127–135`, 9 items) had **no buzzword line**, so a draft opening
|
||||
*"How to leverage AI to drive synergy in the public sector…"* would pass Step 5 unflagged — the
|
||||
banned-list (content rule #4, `CLAUDE.md:124`) was never enforced at the gate. Step 5 also routes to
|
||||
`quality-scorecard.md` (`post.md:125`), which **self-contradicted on the hook bound**: l.32 "Works in
|
||||
**140** characters" + l.114 "Hook works in **140** chars?" (upper-only) vs l.128 "**110-140**" — the
|
||||
same one-sided bound S1 fixed in the command files, surviving in the shared asset.
|
||||
- **Friction log:** `post.md` itself is internally consistent on the hook (110–140 at l.100/113/127);
|
||||
the only command-side gap is the missing Step-5 buzzword line. The shared scorecard carried both
|
||||
gaps (buzzword absent + two one-sided hook bounds). Scorecard is shared by 8 surfaces
|
||||
(`pipeline · video · post · react · batch` + 3 skills) — fixing it is high-leverage, operator-approved.
|
||||
|
||||
**EVALUATE (4 axes).**
|
||||
- **(a) intention fidelity — PASS.** Full 8-step workflow delivers the description's promise.
|
||||
- **(b) algorithm bar — PASS.** No body link (`post.md:133/176`); comment-inviting CTA; de-AI gate
|
||||
cites the confirmed reach-suppression (`post.md:137–141`). Consistent with `algorithm-signals-reference.md`.
|
||||
- **(c) MECHANICAL predicate (post-emitting) — GAP → fixed.** hook band ✓ · length band ✓ · no-body-link
|
||||
✓ · topic→pillars ✓ · subagent resolves ✓ · **buzzword ✗** (Step-5 checklist had no line; grep NONE).
|
||||
Shared scorecard added two sub-gaps: hook one-sided at l.32 + l.114.
|
||||
- **(d) agent-wiring + graceful degradation — PASS.** `differentiation-checker` (`post.md:141`,
|
||||
conditional) + `content-optimizer` (`post.md:166`, conditional) both resolve, both correctly
|
||||
`subagent_type: linkedin-studio:`-namespaced. Voice→defaults; fresh-adopter path graceful.
|
||||
|
||||
**HARDEN (surgical — 4 edits across 2 files, all grep-confirmed landed).**
|
||||
- `commands/post.md:134` — **added** Step-5 checklist line: `- [ ] No corporate buzzwords (leverage,
|
||||
synergy, paradigm shift, thought leader, disruptive, value proposition, ecosystem, holistic approach)`.
|
||||
- `assets/checklists/quality-scorecard.md:32` — `Works in 140 characters` → `Works in 110-140
|
||||
characters` (Notes `Mobile threshold` → `Mobile band (floor + ceiling)`).
|
||||
- `assets/checklists/quality-scorecard.md:114` — `Hook works in 140 chars?` → `Hook works in 110-140 chars?`.
|
||||
- `assets/checklists/quality-scorecard.md:132` — **added** Pre-Publish Basic Checklist line:
|
||||
`- [ ] No corporate buzzwords (…)` (same banned list).
|
||||
- **Deferrals:** none. **Scope note:** the 3 scorecard edits improve all 8 consumers; only `post` is
|
||||
hardened this session — `react/batch/video/pipeline` get their own EVALUATE in S3/S5/S6/S8.
|
||||
|
||||
**VERIFY.**
|
||||
- `bash scripts/test-runner.sh` → `Passed: 81 · Failed: 0 · Warnings: 0`; counts **29/19/26/6** unchanged.
|
||||
- Anti-check grep: no one-sided bare `140 char` hook bound remains in the scorecard (`110-140` at
|
||||
l.32/114/128). Buzzword line present in both files (`post.md:134`, `quality-scorecard.md:132`).
|
||||
- Before/after delta: axis (c) buzzword sub-check now enforced at the load-bearing Step-5 gate; the
|
||||
scorecard hook self-contradiction is resolved (all three mentions banded). The 4 edits are the cause.
|
||||
- Disposition: **HARDENED** (4 edits, axis-c + shared-asset consistency) · 0 deferrals · axes a/b/d PASS.
|
||||
|
||||
---
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue