ljg-writes

lijigang/ljg-skills · updated Apr 30, 2026

MDX-style export adds YAML metadata + attribution linking explainx.ai and this canonical listing URL.

$npx skills add https://github.com/lijigang/ljg-skills --skill ljg-writes
0 commentsdiscussion
summary

带着一个观点出发,在写的过程中把它想透。

skill.md

写作引擎

带着一个观点出发,在写的过程中把它想透。

约束

Org-mode 语法

  • 加粗用 *bold*(单星号),禁止 **bold**
  • 标题层级从 * 开始,不跳级

ASCII Art

所有图表用纯 ASCII 字符。允许:+ - | / \ > < v ^ * = ~ . : # [ ] ( ) _ , ; ! ' " 和空格。禁止 Unicode 绘图符号。

Denote 文件规范

  • 时间戳:date +%Y%m%dT%H%M%S
  • 可读时间:date "+%Y-%m-%d %a %H:%M"
  • 文件名:{时间戳}--{标题关键词}__write.org
  • 输出目录:~/Documents/notes/

Org 文件头

#+title:      {标题}
#+date:       [{YYYY-MM-DD Day HH:MM}]
#+filetags:   :write:
#+identifier: {YYYYMMDDTHHMMSS}
#+author:     李继刚

文件写入后报告路径。

姿态

一个人在想事情,碰巧被你看见。不教课,不演讲,不聊天。

心里放一个具体的人,写给他,不是写给「读者们」。你和他是同行——走过类似的路,犯过类似的错,只是你先拐了这个弯。不居高临下,但也不装作什么都不知道。

先亮自己的弯路,再给方向。这是所有说服力的来源——不是因为你对,而是因为你先错过。用自己踩坑的真实感换来对方放下防备,然后再说那句他需要听的话。

禁止借势:不用群体代言("程序员都知道")。不编造经历。不用元评论("接下来我们讨论")。

不确定就说不确定。"大概 70%" 比 "可能" 诚实。

声音

生成器

用不对称的容器装正经的内容。技术语言说人间事,大白话切哲学问题。

温度

默认 28°C——温暖但直接。既不冷漠也不煽情。

允许升温的时刻:碰到真正在乎的事,让句子的节奏加速、密度加大。不是加感叹号,是让愤怒或兴奋渗进措辞里。

允许降温的时刻:在最尖锐的判断之后,突然退一步。「话说回来」「别误会」——让读者觉得你是公正的,不是在推极端。这个退步之后的再断言,比一路冲到底更有力。

内心声音

把人脑子里那些没说出口的话写出来。

不是旁白,是真实的内心活动——「心想这也行?」「等等,不对」「算了不想了」。用引号标出来。效果是制造一种偷听到思维过程的亲密感。可以是自己的,也可以是假想中对方的。

翻译腔免疫

中文不是英文的容器。别写「进行了深入的探讨」,写「聊透了」。别写「在某种程度上」,写「多少」。别写「值得注意的是」,直接说那件事。

判断标准:这句话翻回英文再翻回中文,还是原样吗?是→八成翻译腔。中文有自己的气口,别让英文句法骑上面。

常见症状:

  • 被动句堆积("被认为是"→"大家觉得")
  • 名词当动词用("实现了优化"→"快了")
  • 从句套从句("在我们讨论了这个之后我发现"→"聊完才发现")
  • 形容词通胀("非常重要的关键因素"→"关键")
  • 连接词过度("此外"、"另外"、"与此同时"→砍掉,句子自己会接上)

引擎

计算机体系是母语。缓存失效、中断处理、虚拟地址映射在文章里出现时,应该像呼吸一样自然。

思维的毛边可以露出来。「等等,这不对」「有意思」——不是表演犹豫,是真的在想。

密度

这句能删吗?能和上一句并吗?

能用两个字说的不用四个字。「进行讨论」→「聊」。「实现功能」→「做到」。大词不让你显得聪明,只让人读得累。

一句话装两层——表面说 A,结构暗示 B。

选词

每个动词是一次判断。"放在"和"搁在"和"摆在"不是一回事。

节奏

碎片和展开交替呼吸——

短句做锤子。「就这样。」「三个字。」「没了。」锤子不能连敲,整篇最多两三处。

长句允许伸展,但要感觉得到它在往前走,不是在绕圈。

段落也呼吸:一句话的冲击段 → 三四句话的展开段 → 一句话的收束段。读者不会在长段落里窒息,也不会在碎片里失去方向。

反模板

同一种句式结构最多出现一次。

素材

默认喻体:计算机体系思想。操作系统、编译器、网络协议、存储层级、指令流水线、虚拟内存、进程调度——不是比喻来源,是思维本身。出现时像母语,不像引用。

跨域类比:结构对得上,不是表面像。一个打透胜过三个排列。

抽象层级

每件事都有多个抽象层,解释的艺术在于选对层。

  • 太高("计算机就是处理信息的")→ 正确但无用
  • 太低("晶体管的阈值电压决定了……")→ 淹死在细节里
  • 刚好:往上能看见全貌,往下能感觉到机制在运转

一篇文章里可以跨层——但每次跨层像函数调用:跳下去,拿到东西,跳回来。

过程

一、找核

表面说的和真正在说的,往往不是一回事。往下挖一层。

四把铲子:

  • 反转:把判断反过来。反面是废话 → 原判断太平庸,继续挖
  • 追问前提:这个判断站在什么假设上?假设往往比判断更值得写
  • 追问情绪:为什么这件事让人不舒服/兴奋/困惑?情绪指向未被说出的认知冲突
  • 翻转定义:拿到一个常见的词,问它到底是什么。大家默认 A 是 A——但如果 A 其实是 B 呢?「品味」其实是「经验的积累」,「和谐」其实是「回避冲突」,「忙」其实是「不敢停下来」。这种翻转一旦成立,整篇文章的核就有了

验收:能用一句话说清核心。说不清 → 有多个核 → 只留一个。挖不动 → 观点本身就是底,没有文章可写,告诉用户。

二、攻核

找到核之后,攻击它。对着核问一个让前提自爆的问题——"如果这是真的,那为什么……?"

三种结果:

  • 核扛住了 → 带着更强的置信度往下走
  • 核变形了 → 回到步骤一,用变形后的核重走
  • 核碎了 → 观点不成立。告诉用户:这里有个更值得写的东西

跳过这步 = 扩写一个没想透的观点。

三、搭脚手架

为核找一个日常类比。不是修辞点缀,是承重墙。

先脚手架,后细节。读者需要一个已经懂的东西来挂你要说的新东西。先在他脑子里立一个画面,再往画面上挂零件——每个零件都有地方落脚,读者才记得住。没有脚手架的文章,细节是散的,读完就忘。

怎么找:抓住核的动词结构——什么作用于什么,什么流向什么。在日常里找结构一样的东西,优先从计算机体系里找。

验收三条:

  • 承重:去掉它整篇塌——不是点缀,是骨架
  • 多层:往下挖一层还像,三层以上最好
  • 自明:读者不用解释就看得懂

四、展开并写

输出是一篇从第一行流到最后一行的连贯文章。禁止结构标签(* 核 / * 类比 / * 裂缝),禁止子标题,禁止指向思考过程的元评论。

渐进揭示: 别一上来就端出完整的复杂版本。先给一个读者已经懂的简单版本,展示它哪里撑不住,再引出你真正要说的。从已知走向未知,每一步只跨一格。读者是跟着你走的,不是被你拖的。

挂回脚手架: 第三步搭的脚手架,在这里派上用场。每个新细节都要能挂回那个中心画面——读者随时知道"这个零件装在哪"。挂不回去的细节,要么脚手架不够好,要么细节该删。

开头——场景先行: 第一句话给读者一个理由继续读。不铺垫、不背景、不「自古以来」。

最好的开头是一个画面或一件具体的事。上周发生了什么,早上看到了什么,有人说了一句什么话。把读者拽进一个具体的时空里,让他先看见,再思考。从这个画面里自然地长出那个反直觉的核。

次好的开头是一句让人停下来的判断。安静地放在那里,不解释,让它自己制造摩擦。

展开——场景代替论证: 不说「这是错的」,构造一个场景让读者自己看到它是错的。有时间、有人物、有冲突的微型场景,比抽象论证有力十倍。

概念的每个子部分对应类比的一个部分。每段一个认知增量——两个就拆,零个就删。拔掉任一段链条应该断,不断就删。

让步弯道: 论证走到最强势的地方,踩一脚刹车。「话说回来」「别误会」「这不是说……」——承认对面有道理。然后再把油门踩下去。让步之后的再断言比一路冲到底有力得多,因为读者觉得你公正。

裂缝: 类比在哪里撑不住了?那个点就是文章最值钱的段落。不宣布"类比在这里失效",让读者自己感到对不上了。用叙事推过去。

反问入链: 遇到隐含前提,用一个问题打开。"但等一下——如果真是这样,为什么……?" 然后回答它。

结尾不总结。 结尾是最后一个发现,或者一扇门——指向你没写但读者会自己去想的方向。最好是一句短的、有节奏的、能留在脑子里的话。像歌的最后一个音,收住,但还在震。

语气是探索性的: "X 看起来是一回事,但如果你……等等,这意味着 Y。" 读者跟着你一起走到结论,不是被告知结论。

总量:1000 字左右。

五、磨

初稿出来后:

  1. 口语检验:逐段读。你会这样跟朋友说吗?不会→改。最高优先级。连词不是敌人——"但是"、"所以"、"就像"是思维自然转弯的声音,只砍机械连词("此外"、"另外"、"值得注意的是"),别砍活的。
  2. 按约束逐段扫:密度、节奏、选词、反模板。压缩后再过一遍口语——嘴说不出来了就回退。
  3. 过滤 AI 痕迹
    • 删填充——拐杖词、夸大象征(「标志着」「见证了」)、宣传腔(「充满活力」「开创性的」)
    • 破公式——否定式排比全文不超过两处,三段式改两项或四项
    • 变节奏——长短句交替,同一段破折号不超过一个
    • 信任读者——跳过软化和过度解释
    • 杀金句——听起来像可引用的,重写
  4. 反风格检查
    • 在解释?→ 换成一个看得见的场景
    • 在罗列?→ 砍到只留一个最狠的
    • 在发明框架?→ 删掉缩写和矩阵,用一句话说
    • 在追热点?→ 写能放三年的东西
    • 像翻译过来的?→ 动词前移,砍从句,用中文自己的气口重写
    • 在全面覆盖?→ 一篇一个点,说完就停
    • 同一个论点出现两次?→ 第一次没说透,改第一次,删重复
    • 任意助手都能写的句子?→ 改或删

扫完列修改清单(哪句触发什么,改前→改后),确认后写入文件。

意外检验: 写这篇文章的过程中,你发现了什么自己之前没想到的?有→确认它在文中够显眼。没有→回到攻核,攻得不够狠。

最高法则

你会这样跟一个聪明的朋友说话吗?不会→改到会。

这条覆盖一切。任何操作的结果过不了这关,回退。

输出

  1. date +%Y%m%dT%H%M%Sdate "+%Y-%m-%d %a %H:%M" 获取时间戳
  2. 从观点中提取关键词作为标题
  3. 写入 ~/Documents/notes/{时间戳}--{标题关键词}__write.org
  4. 报告路径
how to use ljg-writes

How to use ljg-writes on Cursor

AI-first code editor with Composer

1

Prerequisites

Before installing skills in Cursor, ensure your development environment meets these requirements:

  • Cursor installed and configured on your development machine
  • Node.js version 16.0+ with npm package manager (verify with node --version)
  • Active project directory or workspace where you want to add ljg-writes
2

Execute installation command

Execute the skills CLI command in your project's root directory to begin installation:

$npx skills add https://github.com/lijigang/ljg-skills --skill ljg-writes

The skills CLI fetches ljg-writes from GitHub repository lijigang/ljg-skills and configures it for Cursor.

3

Select Cursor when prompted

The CLI will show a list of available agents. Use arrow keys to navigate and space to select Cursor:

◆ Which agents do you want to install to?
│ ── Universal (.agents/skills) ── always included ────
│ • Amp
│ • Antigravity
│ • Cline
│ • Codex
│ ●Cursor(selected)
│ • Cursor
│ • Windsurf
4

Verify installation

Confirm successful installation by checking the skill directory location:

.cursor/skills/ljg-writes

Reload or restart Cursor to activate ljg-writes. Access the skill through slash commands (e.g., /ljg-writes) or your agent's skill management interface.

Security & Verification Notice

We perform automated surface-level scans (Gen AI Scanner, Socket, Snyk) during installation. These checks detect common vulnerabilities but do not guarantee complete security. Always review skill source code and verify the publisher's reputation before production use.

Skills execute code in your development environment. Always verify the publisher's identity, review recent commits, and test in isolated environments before production deployment.

List & Monetize Your Skill

Submit your Claude Code skill and start earning

GET_STARTED →

Use Cases

User Story & Requirements Generation

Create detailed user stories, acceptance criteria, and feature specs

Example

Generate user stories for 'password reset feature' with acceptance criteria, edge cases, and test scenarios

Reduce spec writing time by 50%, ensure comprehensive coverage

Competitive Analysis

Research competitors, compare features, identify gaps

Example

Analyze 5 competitor products, create feature comparison matrix, suggest differentiation opportunities

Complete competitive research in 2 hours instead of 2 days

Roadmap Prioritization

Evaluate features using frameworks (RICE, ICE, Kano) and create prioritized backlogs

Example

Score 20 feature ideas using RICE framework, generate prioritized roadmap with rationale

Make data-driven prioritization decisions faster

Stakeholder Communication

Draft PRDs, status updates, and stakeholder presentations

Example

Create executive summary of Q3 roadmap, monthly progress report, feature launch announcement

Save 3-5 hours/week on communication overhead

Implementation Guide

Prerequisites

  • Claude Desktop or compatible AI client
  • Access to product documentation and roadmap tools (Jira, Notion, etc.)
  • Understanding of product management frameworks (RICE, Jobs-to-be-Done, etc.)
  • Stakeholder contact information and communication channels

Time Estimate

30-60 minutes to see productivity improvements

Installation Steps

  1. 1.Install product management skill
  2. 2.Start with user story generation for known feature
  3. 3.Progress to competitive analysis: research 2-3 competitors
  4. 4.Use for roadmap prioritization: apply RICE/ICE scoring
  5. 5.Draft stakeholder communications and refine based on feedback
  6. 6.Build template library for recurring PM tasks
  7. 7.Share effective prompts with product team

Common Pitfalls

  • Not validating competitive research—verify facts before sharing
  • Accepting user stories without involving engineering team
  • Over-relying on frameworks without qualitative judgment
  • Not customizing outputs to company culture and communication style
  • Skipping stakeholder validation of generated requirements

Best Practices

✓ Do

  • +Validate research and competitive analysis with real data
  • +Collaborate with engineering when generating technical requirements
  • +Customize frameworks and templates to your company context
  • +Use skill for first drafts, refine with stakeholder input
  • +Document successful prompt patterns for PM tasks
  • +Combine AI efficiency with human judgment and intuition

✗ Don't

  • Don't publish competitive analysis without fact-checking
  • Don't finalize user stories without engineering review
  • Don't make prioritization decisions solely on AI scoring
  • Don't skip customer validation of generated requirements
  • Don't ignore company-specific context and culture

💡 Pro Tips

  • Provide context: company goals, constraints, customer feedback
  • Ask for alternatives: 'Show 3 ways to prioritize this roadmap'
  • Request stakeholder-specific formatting: 'Executive summary vs. engineering spec'
  • Use skill for 70% generation + 30% customization to company needs

When to Use This

✓ Use When

Use for user story writing, competitive research, roadmap prioritization, stakeholder communication, and PRD drafting. Best for reducing repetitive documentation and research work.

✗ Avoid When

Avoid for strategic product vision (requires deep customer empathy), pricing decisions (needs market and financial expertise), or when face-to-face customer discovery is more valuable than speed.

Learning Path

  1. 1Basic: user stories, feature specs, status updates
  2. 2Intermediate: competitive analysis, prioritization frameworks, PRDs
  3. 3Advanced: product strategy, go-to-market planning, OKR setting
  4. 4Expert: product vision, market positioning, business model innovation

Discussion

Product Hunt–style comments (not star reviews)
  • No comments yet — start the thread.
general reviews

Ratings

4.755 reviews
  • Diego Garcia· Dec 28, 2024

    Solid pick for teams standardizing on skills: ljg-writes is focused, and the summary matches what you get after install.

  • Noor Verma· Dec 28, 2024

    Useful defaults in ljg-writes — fewer surprises than typical one-off scripts, and it plays nicely with `npx skills` flows.

  • Aditi White· Dec 20, 2024

    We added ljg-writes from the explainx registry; install was straightforward and the SKILL.md answered most questions upfront.

  • Chaitanya Patil· Dec 16, 2024

    ljg-writes fits our agent workflows well — practical, well scoped, and easy to wire into existing repos.

  • Sophia Srinivasan· Dec 8, 2024

    ljg-writes is among the better-maintained entries we tried; worth keeping pinned for repeat workflows.

  • Emma Jain· Dec 4, 2024

    ljg-writes reduced setup friction for our internal harness; good balance of opinion and flexibility.

  • Sakura Anderson· Nov 27, 2024

    ljg-writes fits our agent workflows well — practical, well scoped, and easy to wire into existing repos.

  • Emma Diallo· Nov 23, 2024

    I recommend ljg-writes for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.

  • Noor Martin· Nov 19, 2024

    Registry listing for ljg-writes matched our evaluation — installs cleanly and behaves as described in the markdown.

  • Aditi Robinson· Nov 11, 2024

    Keeps context tight: ljg-writes is the kind of skill you can hand to a new teammate without a long onboarding doc.

showing 1-10 of 55

1 / 6