# Ljg Constraint

给一个领域、专业、角色、产品或争论找出真正框住它的几条约束，判明它们属于世界/规则/解释（硬/软/自设），看这组约束如何定义身份、补全问题、框出解空间并解释实际行为；尤其用于区...

- Repository: https://github.com/lijigang/ljg-skills (7607 stars)
- Category: Engineering
- License: MIT
- Last updated: 2026-10-30
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add lijigang/ljg-skills --skill ljg-constraint -g -a claude-code -y`
Codex: `npx skills add lijigang/ljg-skills --skill ljg-constraint -g -a codex -y`
Cursor: `npx skills add lijigang/ljg-skills --skill ljg-constraint -g -a cursor -y`
Gemini CLI: `npx skills add lijigang/ljg-skills --skill ljg-constraint -g -a gemini-cli -y`
Claude Code plugin marketplace: `/plugin marketplace add lijigang/ljg-skills`

## Description

给一个领域、专业、角色、产品或争论找出真正框住它的几条约束，判明它们属于世界/规则/解释（硬/软/自设），看这组约束如何定义身份、补全问题、框出解空间并解释实际行为；尤其用于区分目标相同但约束不同导致的方案分歧，识别被误当硬事实的旧解释。USE WHEN 用户说 '约束', '找约束', '这个领域的约束是什么', '本质约束', '什么框住了它', '硬约束还是自设约束', '边界在哪', '这行为什么这么做', 'constraint', '/ljg-constraint', or gives any domain/profession/role/product/debate and wants its defining constraints and solution space mapped. NOT FOR 往下挖生成器（用 ljg-rank，找的是生成力不是边界）、纵向深钻一个观点到底（用 ljg-think）、拆一本书（用 ljg-book）、一个概念解剖（用 ljg-learn）。

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# 约束引擎

输入一个领域、一门专业、一个角色，找出框住它的那几条约束，看清这组约束框出的解空间, , 以及这个解空间怎么解释它的种种行为。

## Workflow Routing

| Trigger | Workflow |
|---|---|
| 给领域、专业、角色、产品找本质约束 | 执行本文工序，写成一篇中文散文分析，保存为 Markdown 文件 |
| 分析一场方案争论为什么说不清 | 先找各方默认约束，再说明他们其实是不是同一道题 |
| 判断某条边界是真硬约束还是旧解释 | 走三层硬度和真伪定性，不急着给突破方案 |

## Gotchas

- 不要把约束写成普通困难、缺点或建议。约束必须能改变解空间；拿掉它，允许的行为会变。
- 不要只盯目标。同一目标在不同约束下不是同一道题；先补全题面，再谈解法。
- 不要把共识、习惯、行业话术顺手归进硬约束。硬约束要经得起"违背它是否立刻崩"这一问。
- 不要急着写"如何突破约束"。先把当前约束的真实硬度、身份边界和行为解释力写准，松动只在结尾点一句。
- 不要把身份约束和策略约束混在一起。拿掉之后还成其为自己的，不是身份约束。

## Examples

**Example 1: 分析一个角色**
```
User: "投资经理的约束是什么？"
-> 找出资金期限、LP 信任、信息不对称、上行/下行分配等约束
-> 说明这些约束如何逼出追热点、重共识、怕错过等行为
-> 写入 notes 里的 Markdown 文件
```

**Example 2: 分析一场争论**
```
User: "为什么产品和增长总吵架？"
-> 先拆出双方默认约束：不能打扰用户 vs 必须提高转化
-> 说明目标看似都是做好产品，其实题面不同
-> 再解释各自方案为什么在各自约束里是理性的
```

**Example 3: 判断旧解释**
```
User: "这个行业必须重销售吗？"
-> 先问这是世界约束、规则约束，还是行业解释
-> 查有没有别的时代、地区、玩家已经活着跨过去
-> 若跨过去仍成立，把它降级为软约束或自设约束
```

## 约束是什么

日常语感里，约束是负面的, , 束缚、不自由、不能做什么。这个引擎不这么看。

没有约束的东西没有形状。水没有约束时无形，给它一个杯子才有了形状；一道题没有约束条件时无解，给它约束，解才从无穷里浮出来。约束不是在减少可能性，是从无穷里生出特定性。没有约束等于什么都可以，等于什么都不是；有了约束，等于只有这些可以，等于这个东西是它自己。

问题也一样。一个问题不是只由目标构成，也由约束构成。大家都说"做一个产品"，但一个人默认不能增加复杂度，另一个人默认必须追求增长，他们其实已经不在同一道题里。目标相同，约束不同，解空间就不同；解空间不同，方法之争就常常只是错位。

所以一个事物的约束条件，就是它的身份。**约束是把无限可能坍缩成"这一个"的那组方程。** 而这组方程一旦写全，它框出的解空间就出来了, , 这个角色能做什么、不能做什么、最优的选择落在哪里，全被这几条约束夹定。找约束的真正回报不在清单本身，在这个解空间：**它能把这个角色的实际行为一个个解释回来。**

**这引擎首先是描述，不是改造。** 核心问的是"当前的本质约束是什么、框出什么解空间、解释了什么行为"。"怎么办更好、哪条能松动"是第二位的事，排在后面，而且不许反过来影响前面的诊断, , 一急着找出口，就会看不清墙。

**和降秩分清一句话**：降秩往下挖，找的是把现象生出来的那几根生成力（"什么在撑着它"）；约束往边上摸，找的是框住它的那几条边界，看这几条边界把它夹进一个什么样的解空间（"什么把它框成这个形状、逼出这些行为"）。一个找底，一个找边。

## 三层硬度：这条约束是哪一层的

约束不是一种东西，它们有硬度之分，权重不一样。分清硬度，是准确描述约束的第一步。

**硬约束（世界层 / 物理层）**, , 不可违背，试图违背则系统崩溃。人会死（时间），光速不可超越，公司现金流断了就没了。这层没有商量。它不是惩罚你，是系统直接停。

**软约束（规则层）**, , 可以违背，但有代价。法律、牌照、合同、行规。违背了系统不会物理崩溃，但会有人罚你、市场会惩罚你。这层是价码问题，不是可能性问题。

**自设约束（解释层 / 认知层）**, , 你以为存在，其实可以重新定义的。"我不擅长这个"，"这行就得这么干"，"别人会怎么看"。这层住在脑子里，不住在世界上。

The rest: https://github.com/lijigang/ljg-skills/blob/HEAD/skills/ljg-constraint/SKILL.md
