tameshita新しいツールを実際に動かした記録

linkedin-agent-skillとは?使い方・AI判定対策を実際に使って調べてみた動いた

配布元: https://github.com/Jakeschincariol/linkedin-agent-skill  / 2026-10-18 時点で確認

この日に実際に動かした結果です。内容の誤りに気づかれた場合はお問い合わせください。確認のうえ訂正します。

使う前に分かること

必要なものClaude Code(またはSkillに対応するAIエージェント)、Python 3
動かした環境Linux、Python 3.11.17、Claude Code(エージェント経由)。
日本語日本語で使うときの注意あり(下に書いた)
確認日2026-10-18(この日に実際に動かした)

LinkedInの投稿を書くとき、何を書くか以前に「どういう切り出し方をすれば読んでもらえるか」で手が止まることがあります。linkedin-agent-skillは、Claude Code向けのSkill(こう頼まれたらこう動け、という手順書)を11個まとめたリポジトリで、投稿の下書き・コメント・返信・プロフィールの見直し・週間の投稿計画などが役割ごとに分かれています。無料・MITライセンスで、鍵も会員登録も要りません。中でも作者が「他の10個が使える理由」と位置づけているのが、文章からAIっぽさを取り除くli-humanです。今回は投稿の下書きを書くli-postに、個人開発で副業アプリを作った、という実際にありそうな話を渡して下書きを作ってもらい、できた下書きをli-humanのスクリプトでそのまま判定するところまでを試しました。コメントの下書きや週間計画など、残り9個のSkillは今回は触っていません。LinkedInへの投稿そのものもこのツールはやりません。理由は後述します。

11個の内訳はこうなっています。今回試したのはli-postとli-humanの2つです。

コマンド 何をするSkillか
/li-post 投稿の下書きを書く(今回試した)
/li-human 下書きからAIっぽさを取り除き、採点する(今回試した)
/li-comment 他の人の投稿へのコメントを下書きする
/li-reply 自分の投稿に付いたコメントへの返信を下書きする
/li-profile プロフィールを100点満点で採点し、直す案を出す
/li-plan 1週間分の投稿計画と、絡みに行く相手10人を決める
/li-carousel スライド形式の投稿(ドキュメント投稿)を作る
/li-repurpose 動画やニュースレターの文字起こしを1週間分の投稿に作り直す
/li-dm 招待文・最初のメッセージ・2回分の追いメッセージを作る
/li-inbox 受信箱を「見込み客・スカウト・同業・依頼・迷惑」に仕分ける
/li-audit 投稿済みの実績を反応率で振り返る

Skillを入れる

配布元が案内で最初に出している入れ方は、プログラミング向けのAIエージェントであるClaude Codeのチャット欄に、このリポジトリのURLを貼って「このSkillを入れて、/li-postが動くか確認して」と頼む形です。Claude Codeをすでにパソコンに入れている前提の手順なので、まだ入れていない場合は先にそちらの用意が必要です。実際にそのとおり頼みました。

このリポジトリを入れて、/li-post が動くか確認して:
https://github.com/Jakeschincariol/linkedin-agent-skill

この一言を送ると、あとの作業はすべてAIエージェント側が自動でやってくれます。自分でターミナルを開いて何かを打つ必要はありません。参考までに、裏で実際に実行されていた操作はこうでした。リポジトリをcloneしてskills/li-*のフォルダをプロジェクト側の.claude/skills/にコピーしています(案内にはパソコン全体で使えるようにする方法と、今のプロジェクトだけで使えるようにする方法の両方が書かれています。今回は使い捨ての検証用フォルダだけに置く、後者を選びました)。

git clone https://github.com/Jakeschincariol/linkedin-agent-skill.git
mkdir -p .claude/skills
cp -r linkedin-agent-skill/skills/li-* .claude/skills/
ls .claude/skills
li-audit
li-carousel
li-comment
li-dm
li-human
li-inbox
li-plan
li-post
li-profile
li-reply
li-repurpose

11個のフォルダがそのままコピーされ、鍵の入力や会員登録は一切ありませんでした。ただ、会話の途中でフォルダに追加したSkillは、その場では/li-postという呼び出せるコマンドとしては認識されませんでした。そこで、エージェントにli-postフォルダの中にある手順書(SKILL.md)を直接読んでもらい、書かれている手順をそのまま進めてもらう形で下書きを作りました。これも自分で何かを打ち直したわけではなく、次の依頼をそのまま送っただけです。実際に欲しいのは下書きそのものなので、ここから先の流れに違いはありません。

投稿の下書きを頼む

Skill名やコマンドは出さず、実際にありそうな話をそのまま日本語で伝えました。

個人開発で作った副業アプリをリリースした話を、さっき入れたSkillで投稿にして

手順書は、まず切り出し方(フック)を3通り作ってから1つに絞る作りになっています。実際に3通り立ててから、1つを選んで本文を書いていました。

1. #17 Time Anchor    Building this app used to feel like a someday project. It took 11 nights to actually ship.
2. #10 The Receipt    340 upvotes, 612 signups, 0 dollars in revenue in 48 hours. Here's the exact sequence after that.
3. #19 Curiosity Gap  The smallest project I ever shipped got me my first paying customer in 19 days.

このうち1番目を選んで書かれた下書きがこちらです。

Building this app used to feel like a someday project. It took 11 nights to actually ship.

No funding, no team, no roadmap meetings. Just evenings after my day job, a laptop on the kitchen table, and a deadline I made up myself: ship by the 11th night or shelve it for another year.

The app is small on purpose. You photograph a receipt, it reads the total and the vendor, and it drops the expense into the right tax category for freelancers. That's the whole product. I'd wanted to build it for two years and kept finding reasons the timing was wrong.

I launched it on a Saturday morning. Posted it in three small communities, no ads, no press list.

48 hours later: 340 upvotes, 612 signups, 0 dollars in revenue.

Day 19: the first paying customer. $9 a month.

The $9 mattered more than the 612 signups. Six hundred people were curious. One person decided the 20 minutes a week it saved her was worth paying for, and that's the number that told me the thing actually works.

If you've got a tool half-built in a branch somewhere, ship the ugly version this weekend. You'll learn more from one paying customer than from a year of polishing.

#buildinpublic #indiehackers #sidehustle

POST READY
hook:      #17 Time Anchor
length:    1,188 characters
humanizer: 0 artefacts stripped, human score 84.5 PASS
post at:   (plan.md が無いので/li-planからの指定は無し)

Reply "yes" to log it, or tell me what to change.

日本語で頼んだのに、下書き本文は英語で返ってきました。LinkedInでも英語圏の読者を想定した型なので、日本語の投稿が欲しい場合はその場で「日本語で」と言い添える必要がありそうです。最後に付いている「POST READY」の行は、どのフックを使ったか・文字数・下書き時点でのAI判定スコアをまとめたもので、ここで「yes」と答えるまでは何も確定しません。配布元の説明にも書かれているとおり、このツール自体はLinkedInに投稿する機能を持っていません。個人のプロフィールに自動で投稿できる公式APIが無く、ブラウザ操作などで無理に自動化するとLinkedInの利用規約に触れて制限を受けるため、最後は必ずコピペ用の本文を渡すだけ、という作りになっているとのことです。

書いた下書きをAI判定のスクリプトでチェックする

li-humanには、Skillとしてエージェントに頼む以外に、同梱の2本のPythonスクリプトを自分のパソコンのターミナルで直接動かす使い方も用意されています。Pythonが入っていれば追加のインストールは不要で、標準で入っている機能だけで動きます。上で出てきた下書きの本文をそのままdraft.txtという名前のテキストファイルとして保存し、まず判定スクリプトだけを実行しました。

python3 --version
python3 .claude/skills/li-human/detect.py draft.txt
Python 3.11.17

AI DETECTION PANEL
==============================================================
  BURSTINESS    #######################.  96.5
                variation 0.68 across 19 sentences (want 0.55+)
  SPECIFICITY   #####################...  89.4
                11 concrete markers, 5.4 per 100 words (want 4+)
  SLOP DENSITY  ######################## 100.0
                0 stock terms, 0.0 per 100 words
  FINGERPRINT   ######################## 100.0
                0 invisible, 0 em dash, 0 curly quote, 0 ellipsis, 0 hard space
  VOICE         ##################......  73.4
                2.5 contractions, 3.9 personal pronouns per 100 words, 0 structural tell(s)
--------------------------------------------------------------
  HUMAN SCORE   ####################....  84.5   PASS

文の長さのばらつき(BURSTINESS)、具体的な数字や名前の量(SPECIFICITY)、「leverage」のような決まり文句の量(SLOP DENSITY)、コピペで混ざりがちな目に見えない文字(FINGERPRINT)、口調(VOICE)の5項目を見て、最後に全体のスコアを出す作りです。どの項目も、点数が高いほど「AIが書いたのではなく人が書いた文章らしい」と判定されたことを意味し、「HUMAN SCORE」がこの道具の決めた合格ラインを超えるとPASSと表示されます。今回の下書きは最初から84.5点のPASSで、クリーニング役のhumanize.pyに通しても取り除くものがありませんでした。

python3 .claude/skills/li-human/humanize.py draft.txt --report

配布元の案内に載っているこのコマンドのとおりに打つと、変更後の本文と、どこを変えたかの説明が画面にそのまま表示されます。ただし、それは画面に表示されるだけで、-oを付けないとファイルには何も保存されません。コマンド自体はエラーも出さずに通るので、保存されていないことに気付きにくいところでした。ファイルとして残したい場合は、オプションを自分で付け直す必要があります。

python3 .claude/skills/li-human/humanize.py draft.txt -o humanized.txt --report
wrote humanized.txt

HUMANIZE REPORT
---------------
0 machine artefacts removed, 0 structural tells flagged for rewrite

CLEAN
-----
  Nothing to strip.

前後を比べる機能もあります。

python3 .claude/skills/li-human/detect.py draft.txt humanized.txt
  84.5 PASS  ->  84.5 PASS   (+0.0)

今回の下書きには取り除く点が無かったので差分はゼロでしたが、配布元の説明に載っている「わざと酷い下書き」の例では24.8点のFLAGGEDから69.7点のREVIEWまで上がっており、不可視文字の削除・em dashなどの記号の置き換え・決まり文句の辞書・5項目の判定という仕組み自体は、元の説明どおりに動いていました。判定はあくまでこのスクリプト独自のものさしで、GPTZeroやOriginality.aiといった、文章がAIで書かれていないかを判定する有料の実在サービスに問い合わせているわけではない、という注意も配布元に明記されています。

まとめ

Skill名や使い方を一切説明せずに、実際にありそうな話をそのまま伝えるだけで、フックの選定理由・文字数・判定スコアまで添えた下書きが返ってきたのは実用的でした。ただしSkillをその場で追加しても/li-postというコマンドとしてすぐには呼び出せず、手順書を直接読んでもらう形になったのと、下書きは日本語で頼んでも英語で返ってくる点は、試す前に知っておいたほうがいい癖だと感じました。同梱の判定スクリプトは鍵も課金も無しで最後まで動き、仕組みも誇張なく説明どおりでしたが、humanize.pyは配布元のコマンド例のままだとファイルに保存されないので、残したい人は-oを自分で付ける必要があります。このツール自体はLinkedInに直接投稿する機能を持たず、最後は必ずコピペで自分の手で貼る形になるので、自動投稿そのものを期待する人には向きませんが、Claude Codeなどのエージェントで下書きまでを一気に済ませたい人には試す価値があると思います。

確認した環境

今回の検証はClaude Codeのサブエージェントとして動かした環境で行いました。この環境では、会話の途中でフォルダに追加したSkillが、その場で/li-postのようなコマンドとして自動的に認識される仕組みにはなっていませんでした。そのため、SKILL.mdの指示を直接読んで手順どおりに進める形で下書きを作っています。どちらの経路でも、最終的に出てくる下書きの内容そのものは変わりません。

おすすめのツール・サービス