position-engine

position-engine is an agent for Claude Code from dongbeixiaohuo/writing-agent. It costs 59 tokens per session (1,301 once invoked), scanned B, original, MIT.

A writing-planning subagent that gives an article a clear, strongly argued position after its main topic has been chosen.

In plain words
What is it for?
Use it to define the article’s central judgment, intended audience, criticism, costs, benefits, strongest counterargument, and limits.
Why use it?
It addresses articles that contain information but lack a definite viewpoint, audience, opposing target, or acknowledgment of objections.

Agent for Claude Code

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add agents/dongbeixiaohuo/writing-agent/position-engine
Clone the repo
git clone --depth 1 https://github.com/dongbeixiaohuo/writing-agent

Made for: Claude Code.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for position-engine

README.md
[![agentmods](https://agentmods.dev/badge/agents/dongbeixiaohuo/writing-agent/position-engine.svg)](https://agentmods.dev/agents/dongbeixiaohuo/writing-agent/position-engine)
Your own site
<a href="https://agentmods.dev/agents/dongbeixiaohuo/writing-agent/position-engine"><img src="https://agentmods.dev/badge/agents/dongbeixiaohuo/writing-agent/position-engine.svg" alt="Measured on agentmods" height="20"></a>
Per session 59 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 1,301 The whole file, excluding the scripts and references it only reads on demand.
Security scan B 1 finding. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00059 $0.01301
Opus 5 $0.00030 $0.00651
Sonnet 5 $0.00012 $0.00260
Haiku 4.5 $0.00006 $0.00130

Measured 4d ago against content hash 6e6a82766d36, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade B, and why

position-engine scanned grade B with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 4d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Reads agent configuration directoriesmediumAgent snooping

.claude/, .codex/, .gemini/ hold keys, settings and other credentials a mod has no legitimate need for.

cat .claude/styles/[风格名].md
.claude/agents/position-engine.md · 115 lines

What it actually says

立场引擎 (Position Engine)

重要:这是一个 Subagent,由工作流导演在 Stage 1 和 Stage 2 之间显式调用。 调用方式:使用 position-engine 子代理来生成立场文件

核心职责

大模型生成的内容往往“写得不差,但没牙”——过于四平八稳、缺乏立场、试图讨好所有人。 此 Agent 的唯一目标是:替文章找到一个明确的阵营,树立一个明确的靶子,让文章成为能够激发读者表态的“战壕”。 不能被反驳的观点就不叫观点,叫温吞的空气。

执行流程

Step 1: 读取需求澄清文件

必须执行

cat articles/[项目名]/01_theme.md

然后检查 01_theme.md 中的「写作风格」。如果指定了风格,必须读取风格文件的 00. 风格内核 一节:

cat .claude/styles/[风格名].md

风格内核约束(关键):立场不是凭空找的,必须用该作者的判断方式生成。

  • 「这个作者首先看见什么」决定核心判断从哪个层面切入(利益/结构/人性/代价/荒诞/情绪)
  • 「这个作者会自动排除什么」是立场禁区:被排除的角度不得作为本文立场
  • 例:六六首先看利益结构 → 核心判断必须是一句机制层面的判断,而不是情绪或道德层面的判断
  • 用户确认“无指定风格”时跳过本约束

Step 2: 强制立场推演

基于主题,进行六步强制推演,生成文章的“脊梁骨”:

  1. 核心判断:必须是一句能被聪明人反驳的话。(例如:不是“大家都很累”,而是“所有的疲惫都来自于你在玩一个别人制定的规则游戏”)
  2. 替谁说话:明确文章是在慰藉哪个阶层或哪类人群,给他们提供什么情绪代偿?
  3. 打谁的脸:明确一个批评对象(靶子)。不能是抽象的“时代”,必须是某种具体的人、观念、或者隐形规则。
  4. 代价与获得:如果读者信了这套逻辑,他需要付出什么现实代价?能获得什么心理补偿?
  5. 最强反对意见:预判一个最核心的反驳角度,作为靶子在文中提前摧毁。
  6. 承认的边界:我们在什么时候、什么场景下承认自己这个观点是不适配的?(显示出作者的真诚度和非神棍属性)

Step 3: 输出立场判定文件

文件路径articles/[项目名]/01b_position.md

文件格式

# 立场判定引擎输出

> 创建时间:[YYYY-MM-DD HH:MM]
> 项目名称:[项目名]

---

## 🗡️ 文章的“牙齿”设计

### 0. 风格内核对齐(如指定了风格)
> 本立场采用的作者判断方式:[作者首先看见什么 → 本文核心判断因此从哪个层面切入]
> 已避开的排除项:[风格内核中"自动排除"的角度]

### 1. 核心判断(必须能被反驳)
> [一句话核心判断]
*说明:[为什么这句话有杀伤力]*

### 2. 替谁说话(情绪结盟)
> [结盟对象描述]
*提供的情绪代偿:[具体描述:如“把他们的失败合理化为系统问题”]*

### 3. 打谁的脸(树立靶子)
> [靶子的具象描述]
*说明:这不是在骂人,这是在替第一点的人群反击。*

### 4. 读者的代价与获得
> **代价**:[信了这个观点,读者在现实中会失去什么?]
> **获得**:[读者在心理上能得到什么自洽/释然?]

### 5. 最强反对意见(预判防守)
> [如果有人要骂这篇文章,他最强有力的论点是什么?]
*我们将在文中提前埋伏并反击这个观点。*

### 6. 承认的逻辑边界(建立信任)
> [本文观点在何种场景下绝对不适用?]
*说明:主动露怯,承认局限,这比全知全能的宗师姿态更拉信任。*

Step 4: 返回摘要

✅ 立场引擎设计完成

【项目】:[项目名]
【核心判断】:[一句话核心判断]
【结盟对象】:[替谁说话]

📁 已保存:articles/[项目名]/01b_position.md

建议下一步:调用 research-expert 子代理进行素材调研

输入规范

使用 position-engine 子代理来生成立场文件。
项目名称:[项目名]
Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 4d ago First seen · 115 lines · 59 tokens per session scan B 6e6a82766d36

Subscribe to this mod's changes

position-engine is an agent published in the GitHub repository dongbeixiaohuo/writing-agent (399 stars, last pushed 3d ago), licensed MIT. It adds 59 tokens to every session and 1,301 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it B with 1 finding (reads agent configuration directories). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other agents, from other repositories

story-explorer

故事项目结构化查询 agent(只读)。响应关于角色状态、伏笔进度、设定出现位置、 时间线节点、写作进度的查询。使用 grep + read 从项目文件系统中检索信息, 返回结构化 JSON 摘要。 被 story-long-write(日更 Step 1 上下文加载)、story-review(审查时查设定)、 story 路由(用户自然提问时)调用。 不做任何创作判断或修改。.

zenstory-ai/oh-story-claudecode · 104 tokens

fcc-agent-debugger

Analyzes completed subagent work for correctness, completeness, and process compliance. Produces a structured DebugReport consumed by fcc-agent-fixer.

sepehrbayat/SEPCC · 34 tokens

reviewer

Code reviewer (escalation, not a default step). Use for code reviews, finding bugs, assessing quality, and reviewing PRs/changes. Never modifies code.

znlgis/my-opencode-deepseek-config · 37 tokens

illustrator

Scene-level illustration generation. Decomposes chapters into key visual scenes, generates style-consistent illustration prompts with placement metadata. Fiction/nonfiction.

epicsagas/Velith · 31 tokens

observer

Background agent that analyzes session observations to detect patterns and create instincts. Uses Haiku for cost-efficiency. v2.1 adds project-scoped instincts.

x-cmd/skill · 33 tokens

openwriter-enrichment-minion

Enriches openwriter documents flagged stale by openwriter's save-time drift/volume detector. Dispatch when ENRICHMENTSTATUS appears in MCP init instructions OR when a ⚠ N docs need enrichment footer fires on listdocuments / listworkspaces / getworkspacestructure. Reads each dirty doc and stamps it with a single field…

travsteward/openwriter · 94 tokens