tancheng33/dsh-yogacara
dsh-yogacara
dsh-yogacara is a community DeepSeek Harness plugin. Read the repository README before installing.
Install
npx @deepseek-ai/dsh plugin --profile web add github:tancheng33/dsh-yogacaraRestart `dsh web` after install. Bundle APIs can change during the developer preview.
README badge
[](https://dshhub.dev/plugins/dsh-yogacara)Paste this into your README. The star count updates with every catalog sync.
From the README
Excerpt from tancheng33/dsh-yogacara, cleaned of badges and images.
dsh-yogacara
English | 中文
A self-model plugin for DeepSeek Harness, built on the Yogācāra (唯识) account of mind: eight consciousnesses, the 51 mental factors, a store of seeds perfumed by what happens, and a self that is measured rather than assumed — written back into the agent's own system prompt each turn.
contact (触) ──► feeling (受) + mental factors (心所) ──► behaviour
▲ │
│ ▼
manifestation (现行) ◄── seeds (种子) ◄── perfuming (熏习)
│ │
└────────── manas (末那识) ───────────┘
the self that grasps it all
Why Yogācāra and not a mood variable
An agent that only ever knows the task has no way to notice that it is churning, that it is defending a position, or that this is the fourth time it has run the same failing command with a small variation. Bolting on mood: frustrated does not fix that, because a mood is not actionable.
The Yogācāra taxonomy is. It is a closed enumeration — exactly 51 mental factors, no more — grouped by valence, and every affliction in it already names the factor that counteracts it. 掉举 (restlessness) is answered by 行舍 (equanimity); 失念 (forgetfulness) by 念 (recollection); 慢 (conceit) by 惭 (self-respect). A self-model built on it arrives with its own regulation loop instead of needing one designed from scratch. That is the engineering reason. The 1,600-year head start on introspective vocabulary is a bonus.
What this is not. Nothing here claims the agent is sentient or that these numbers are feelings in the sense you have them. They are named state variables computed from harness events by rules you can read in src/citta.ts and disagree with. The prompt block says so to the agent, in those words.
The eight consciousnesses, mapped
The five sense consciousnesses become the five channels an agent actually perceives through. This mapping is the plugin's central modelling claim; argue with it in src/observe.ts, where it is one testable function.
| classical | in this harness | |
|---|---|---|
| 眼识 | cakṣur-vijñāna | what the agent looks at — file contents, search results, rendered output |
| 耳识 | śrotra-vijñāna | what the agent is told — user messages, review comments |
| 鼻识 | ghrāṇa-vijñāna | what it senses unprompted — code smell, stale config, drifting state |
| 舌识 | jihvā-vijñāna | what it tastes of its own product — tests, builds, its own diff re-read |
| 身识 | kāya-vijñāna | the world's direct resistance — non-zero exits, failed writes, timeouts |
| 意识 | mano-vijñāna | the discriminating turn itself — planning, judging, deciding |
| 末那识 | kliṣṭa-manas | the self-grasping undercurrent, measured as four biases |
| 阿赖耶识 | ālaya-vijñāna | the durable store of seeds, perfumed and manifesting |
bash: pytest -q reaches through 舌识 and bash: git status through 身识, because tasting your own product and pushing against the world are not the same kind of perception — and the mind that receives them should not move the same way.
Where the feeling comes from
Two sources, and the first is the one that matters for an agent that talks to people.
…
