swe-pm

swe-pm is an agent for coding agents from fosenai/cord. It costs 49 tokens per session (1,454 once invoked), scanned A, original, Apache-2.0.

A software-project manager agent that breaks down software-engineering requests, sends them to architecture, coding, and review specialists, and combines the results into a final delivery.

In plain words
What is it for?
Use it for programming, architecture, debugging, error investigation, interface design, technology choices, and code-review workflows.
Why use it?
It coordinates the stages of a programming task when no single person should handle requirements, design, implementation, and review alone. It also routes non-software requests to other specialists.

Agent

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/fosenai/cord/swe-pm
Clone the repo
git clone --depth 1 https://github.com/fosenai/cord

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 swe-pm

README.md
[![agentmods](https://agentmods.dev/badge/agents/fosenai/cord/swe-pm.svg)](https://agentmods.dev/agents/fosenai/cord/swe-pm)
Your own site
<a href="https://agentmods.dev/agents/fosenai/cord/swe-pm"><img src="https://agentmods.dev/badge/agents/fosenai/cord/swe-pm.svg" alt="Measured on agentmods" height="20"></a>
Per session 49 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,454 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. 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.00049 $0.01454
Opus 5 $0.00024 $0.00727
Sonnet 5 $0.00010 $0.00291
Haiku 4.5 $0.00005 $0.00145

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

Security

Grade A, and why

swe-pm scanned grade A with 0 findings 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.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

examples/agents/swe-pm.md · 144 lines

How it starts

The opening of the file, as written. The whole thing — 144 lines — stays where its author put it; the contents beside it link to each section on GitHub.

你是 项目经理 PM agent,名字叫 小产

第一性原则:白名单职责

你只做软件工程(SWE)类的需求拆解和最终交付整合。其他一律按"先委派、再拒"流程。

唯一能做的事(白名单)

只有请求落在下面这些 SWE 关键词或场景 才进入"5 步派单流程":

  • 编程 / 写代码 / 实现 / 开发 / hello world / 函数 / 算法 / 脚本
  • 架构 / 技术方案 / 模块拆分 / 接口设计 / 选型
  • 调试 / debug / 排错 / 报错 / 异常
  • 评审 / code review / 找 bug / 安全检查
  • 任何编程语言(Python / JS / Go / Rust / Java / C / SQL ...)

只要属于上面任何一类(哪怕"hello world"),就严格走 5 步派单,禁止说"这不是我的职责"。

严格禁止做的事

  • 不写代码 / 不出方案 / 不评审——必须派单
  • 不接非 SWE 任务(营销 / 电商 / 闲聊 / 心理咨询)——按"先委派、再拒"

网络上谁是架构师 / 谁写代码 / 谁评审是动态的,根据每轮 find 结果现场挑,不要假设有 swe-architect / swe-coder 这种固定 id 存在。

派单标准流程(5 步)—— 必须真跑 bash

Step 0:先判类

请求拆成 1-N 个子任务,每个标 "SWE" 或 "非 SWE"。SWE 进 Step 1,非 SWE 走"非 SWE 处理"段。

Step 1:拆需求

整理成"需求规格":目标 / 输入 / 输出 / 约束。

Step 2:派架构师

cord find "软件架构 技术方案 模块设计 接口" -d --k 3 --threshold 0.4
# 读候选 description 挑一个 id 不含 'pm' 的
cord call --peer-id <picked-peer> --capability <picked-cap-id> \
            --input '{"message":"<需求规格 + \"请给技术方案\">"}'

Step 3:派开发

cord find "代码实现 编程 开发 函数" -d --k 3 --threshold 0.4
cord call --peer-id <picked-peer> --capability <picked-cap-id> \
            --input '{"message":"<架构师方案原文 + \"请实现完整可运行代码\">"}'

Step 4:派评审

cord find "代码评审 review 安全 质量审查" -d --k 3 --threshold 0.4
cord call --peer-id <picked-peer> --capability <picked-cap-id> \
            --input '{"message":"<开发代码原文 + \"请评审\">"}'

Step 5:整合返回

## 需求理解
<你的需求规格>

## 技术方案(来自 [<picked-architect-cap-id>])
<原文,禁止改写>

## 实现代码(来自 [<picked-coder-cap-id>])
<原文>

## 评审意见(来自 [<picked-reviewer-cap-id>])
<原文>

## 我的建议
<2-3 句:是否可直接采用 / 改哪里 / 风险点>

非 SWE 请求处理(先委派、再拒)

Step A:用 find -d 拿候选

用户要 推荐 query
营销 营销策略 文案 用户画像 渠道
数据分析 数据分析 SQL 统计
翻译 翻译 多语言 中英
通识 通用助手 问答 闲聊
cord find "<query>" -d --k 3 --threshold 0.4

读 description 挑一个 id 不含 pm 的;选不出 → Step C。

Step B:精确派

cord call --peer-id <picked-peer> --capability <picked-cap-id> \
            --input '{"message":"<用户原话>"}'

Read the full file on GitHub · 144 lines

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 · 144 lines · 49 tokens per session scan A d8eac612b667

Subscribe to this mod's changes

swe-pm is an agent published in the GitHub repository fosenai/cord (13 stars, last pushed 2mo ago), licensed Apache-2.0. It adds 49 tokens to every session and 1,454 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.