Skip to content

Commit c79e8a4

Browse files
committed
fix(j-linkedin-post): resolve review findings on merged rules; route blog to j-blog
1 parent ba7881c commit c79e8a4

3 files changed

Lines changed: 20 additions & 19 deletions

File tree

‎plugins/j-business/.claude-plugin/plugin.json‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "j-business",
33
"description": "Three cluster entry points for the commercial side of JetThoughts: know the market, shape the offer, say it in public. Each composes the installed capability instead of restating it.",
4-
"version": "0.1.1",
4+
"version": "0.1.2",
55
"author": {
66
"name": "JetThoughts",
77
"url": "https://github.com/jetthoughts"

‎plugins/j-business/skills/j-publish/SKILL.md‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ The entry point for *anything a stranger will read*. It exists because published
2222
| Writing a full piece end to end | `content-production` — brief, draft, SEO, readability, internal links · `blog-post` for structure · `blog-writing-guide` |
2323
| Marketing copy that has to convert | `copywriting-core` · `marketing-skills:copywriting` · `positioning` when the claim itself is unsettled |
2424
| A LinkedIn post in Paul's voice | `j-linkedin-post` — the house voice rules; do not hand-roll this |
25+
| A jetthoughts.com blog post (pick, write, upgrade, repair) | `j-blog:j-blog` — run from the jetthoughts.github.io checkout |
2526
| Engaging before contacting anyone | `j-linkedin-engage` — **not installed on this machine**, so do this by hand; never DM a target first |
2627
| Social beyond LinkedIn, or what is trending | `social-content` · `marketing-skills:social-media-manager` · `content-trend-researcher` · `social-media-trends-research` |
2728
| Being found — search and AI answers | `seo-audit` · `ai-seo` · `marketing-skills:schema-markup` · `geo-content-publisher` |

‎plugins/j-linkedin-post/skills/j-linkedin-post/SKILL.md‎

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -65,9 +65,9 @@ rubric-beige neutrality. Deliver the point, not the setup. State convictions fla
6565
- **One concrete failure mechanism in plain words** - the sentence a reader can quote
6666
and argue with ("the AI doesn't edit your code, it writes new code, so the bug comes
6767
back from the copies").
68-
- **~130 words, text only - no designed exhibit** (every imaged post stayed under 350
69-
impressions, both text-only posts cleared 9,000), no hashtags, one real peer question
70-
to close.
68+
- **~130 words (short applied-AI insights: 100-150), text only - no designed exhibit**
69+
(every imaged post stayed under 350 impressions, both text-only posts cleared 9,000),
70+
no hashtags, one real peer question to close.
7171
- LinkedIn's job is referrals and credibility with CTOs, heads of engineering and
7272
agencies who see broken founder apps. Founder discovery happens in comments on
7373
founders' posts, in calls and in DMs, not in Paul's broadcast.
@@ -78,18 +78,16 @@ Skeleton (reference writers: John Cutler, Luca Rossi):
7878
Beat 1 (1 line): The conviction, flat - no staged encounter, no credential
7979
Beat 2 (1-2 lines): Restate plainly, or show why the opposite looks reasonable
8080
Beat 3 (1-2 lines): The failure mechanism, in plain words
81-
Beat 4 (2-4 lines): The tactic, delivered in full - the actual move the reader can make
81+
Beat 4 (3-5 lines): The tactic, delivered in full - the actual move the reader can make
8282
Beat 5 (1 line): Why it matters
8383
Close (1 line): Real peer question tied to the topic
8484
```
8585

86-
Plain short sentences, one idea per paragraph. Connectors ("so", "and", "honestly") at
87-
seams keep it sounding spoken, but never as beat-marking.
86+
Plain short sentences, one idea per paragraph; paragraph breaks are fine. Connectors
87+
("so", "and", "honestly") at seams keep it sounding spoken, but never as beat-marking.
8888

89-
## Hook rotation
90-
91-
Never open with the same archetype twice in a row. Check the last 2-3 drafts first.
92-
Archetypes: dialogue-led, question-led, observation-led, stat-led, conflict-led, history-led.
89+
Line 1 is always the flat conviction - no dialogue-, question- or stat-led openers.
90+
Variety comes from the topic and the mechanism, not the opener archetype.
9391

9492
## Sentence-level tests (every line)
9593

@@ -98,6 +96,8 @@ Archetypes: dialogue-led, question-led, observation-led, stat-led, conflict-led,
9896
3. Practitioner: specific recent incident instead of "founders often...".
9997
4. Conviction: sounds like a flat, long-held belief, not a hedged marketing draft.
10098
5. No-pitch: the close must not read as the start of a sales conversation.
99+
6. Pattern: name the pattern via observation ("this shows up in almost every team I
100+
look at"), not via slogan.
101101

102102
## Save location (three lanes)
103103

@@ -115,7 +115,7 @@ required fields: `status` (draft/scheduled/posted - the board's source of truth)
115115
`first_comment` (staged verbatim; verify it actually ships - one sat unposted for 17
116116
days), `utm_campaign`/`utm_content`.
117117

118-
## Self-check before handback (BLOCKING)
118+
## Self-check before saving (BLOCKING)
119119

120120
1. Score the draft against the pipeline's AI rubric: +2 for each "high" pattern
121121
(parallelism, credential stamp, slogany flip, marketing CTA, em dash,
@@ -127,10 +127,6 @@ days), `utm_campaign`/`utm_content`.
127127
3. Check every Learned rule below.
128128
4. `reflexion-reflect` BEFORE first handback; `reflexion-critique` after any pushback
129129
on the same draft.
130-
5. Handback ends with the board preview link, served from the linkedin-posts repo
131-
(`cd /Users/pftg/dev/linkedin-posts && PORT=$((20000 + RANDOM % 20000)) bin/dev`, never 1313):
132-
`http://localhost:<session port>/linkedin/<lane>/<slug>/` - always the link, never
133-
the post body pasted instead.
134130

135131
## Workflow
136132

@@ -139,14 +135,18 @@ days), `utm_campaign`/`utm_content`.
139135
2. Draft against the shape, using only real specifics from the memo or the vault.
140136
3. Self-check (above). Fix violations first.
141137
4. Save to the right lane in the linkedin-posts repo via a branch + PR.
142-
5. Editorial loop, on every correction from Paul:
138+
5. Handback = the board preview link, never the post body pasted instead. Board runs
139+
from the linkedin-posts repo (`cd /Users/pftg/dev/linkedin-posts &&
140+
PORT=$((20000 + RANDOM % 20000)) bin/dev`, never 1313):
141+
`http://localhost:<session port>/linkedin/<lane>/<slug>/`.
142+
6. Editorial loop, on every correction from Paul:
143143
a. Apply it to the draft with a new commit.
144144
b. Generalize it into a dated rule under "Learned rules" with the trigger example.
145145
The principle, not the instance: "never open with a rhetorical question", not
146146
"remove this question". A contradicting new rule marks the older learned rule
147147
superseded; never silently delete.
148-
6. On "final": reply with paste-ready text.
149-
7. Append to the log below: date, slug, correction rounds.
148+
7. On "final": the board link plus paste-ready text.
149+
8. Append to the log below: date, slug, correction rounds.
150150

151151
## Posting mechanics
152152

0 commit comments

Comments
 (0)