Writing Plans logo

Writing Plans

Community
ProgrammerAnthony
writing-plans

Use when 已有经批准的设计/规格说明、多步骤实施任务,在动代码之前需要可执行任务清单时。触发场景:写实施计划、拆解开发任务、implementation plan、执行计划文档、任务拆分、按 TDD 步骤写计划。

Overview

PublisherProgrammerAnthony
RepositoryExpert-Coding-Harness
Skill namewriting-plans
Stars
236
Forks
77
Bundled files
2
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 2 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by ProgrammerAnthony on GitHub. Read the source before you install it.

Installation

Install the Writing Plans AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/ProgrammerAnthony/Expert-Coding-Harness.git /tmp/Expert-Coding-Harness
mkdir -p .claude/skills
cp -r /tmp/Expert-Coding-Harness/skills/writing-plans .claude/skills/writing-plans
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Writing Plans in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Writing Plans on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Writing Plans is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

实施计划编写

已获用户批准的设计文档(例如方案设计师产出的 docs/specs/…-设计.md)基础上,编写可交给代理或工程师逐步执行的实施计划。假设执行者对代码库与领域几乎零上下文、测试习惯一般:计划中必须写明路径、命令、完整代码块与预期输出。遵循 DRY、YAGNI、TDD、小步提交。

开场声明:「我正在使用实施计划编写技能生成实施计划。」

保存路径(默认): docs/specs/plans/YYYY-MM-DD-<功能简述>.md
(若用户或项目已有约定路径,以约定为准。)

可选上下文: 大功能建议在独立分支或 git worktree 上实施;若用户未准备,在计划头注明即可,不阻塞写计划。


Inputs / Outputs / Gates / Handoffs(统一契约)

  • Inputs(最小输入):已获批准的设计/规格说明(路径 + 核心需求 + 约束);目标仓库与测试/运行命令(如 pytest/npm test/go test 等)。
  • Outputs(产物形态):一份可勾选、可交接执行的实施计划(结构参考 references/plan-template.md)。
  • Gates(继续前必须满足)
    • 禁止占位词(TODO/TBD/适当/稍后补充),每步必须可执行(路径/命令/预期输出齐全)。
    • 需要用户确认的决策点必须显式列出并暂停等待。
    • 通用门控清单可复制使用:../code-review-expert/references/quality-gates-checklist.md
  • Handoffs(推荐下游)
    • subagent-driven-development(子代理驱动开发):按计划逐任务执行
    • code-review-expert(代码审查专家):最终质量门禁/收尾审查
    • tdd-master(TDD 开发大师):执行阶段遵循 RED-GREEN-REFACTOR 节奏

范围检查

若规格仍包含多个可独立交付的子系统,应退回方案阶段拆成多份子规格;若未拆,则建议多份实施计划(一子系统一份),每份计划都能单独产出可运行、可测试的软件。


文件结构先行

在写任务前,先列出将创建/修改的文件及职责,作为分解依据:

  • 边界清晰、接口明确;单文件单职责;相关变更放在相近位置(按职责而非按技术层硬拆)。
  • 在存量代码库中遵循既有模式;若当前修改的文件已臃肿,可在计划中包含合理拆分步骤。

任务粒度

每一步对应一个可完成动作(约 2–5 分钟):

  • 「编写失败测试」一步
  • 「运行并确认失败」一步
  • 「写最小实现使测试通过」一步
  • 「运行并确认通过」一步
  • 「提交」一步

计划文档头部(必填)

每一份计划必须以如下头部开头:

markdown
# [功能名] 实施计划

> **给代理执行者:** 推荐配合 `subagent-driven-development(子代理驱动开发)`(每任务独立子代理 + 两阶段审查)或在本会话内按勾选逐步执行并在批次节点与用户确认。任务使用 `- [ ]` 勾选跟踪。

**目标:** [一句话说明交付什么]

**架构要点:** [2–3 句]

**技术栈:** [主要语言/框架/测试命令]

**关联设计文档:** `docs/specs/…-设计.md`(路径按实际填写)

---

任务块模板

markdown
### 任务 N:[组件或主题名]

**涉及文件:**
- 新建:`exact/path/to/file.py`
- 修改:`exact/path/to/existing.py`(可注行号范围)
- 测试:`tests/exact/path/to/test_xxx.py`

- [ ] **步骤 1:编写失败测试**

```python
def test_具体行为():
    result = function(输入)
    assert result == 期望
```

- [ ] **步骤 2:运行测试确认失败**

运行:`pytest tests/path/test.py::test_具体行为 -v`  
预期:失败(例如 NameError / 断言失败,写明预期信息)

- [ ] **步骤 3:最小实现**

```python
def function(输入):
    return 期望
```

- [ ] **步骤 4:运行测试确认通过**

运行:`pytest tests/path/test.py::test_具体行为 -v`  
预期:通过

- [ ] **步骤 5:提交**

```bash
git addgit commit -m "feat: …"
```

(语言与测试命令按项目替换:如 npm testgo testcargo test 等。)


禁止占位(计划不合格)

以下情况禁止出现在最终计划中:

  • TBDTODO稍后补充实现时再想
  • 「适当错误处理」「补充校验」「覆盖边界」等无具体代码/断言的描述
  • 「为上述编写测试」但无测试代码
  • 「同任务 M」(执行者可能乱序阅读——重复粘贴必要内容)
  • 只描述动作不给代码块(凡涉及改代码的步骤必须有代码或 diff 级说明)
  • 引用未在前文任务中定义的类型/函数/模块

自检(主代理自行完成,不必派子代理)

写完计划后快速过一遍:

  1. 规格覆盖: 设计文档中的每条需求能否对应到某一任务?漏项则补任务。
  2. 占位扫描: 对照上一节,搜 TODO适当类似 等红线词并修正。
  3. 命名一致: 后文出现的函数名/类型名是否与前面任务一致。

计划审查子代理(可选)

若计划规模大或风险高,可在保存前派发审查子代理,模板见 references/plan-document-reviewer-prompt.md


交付与执行交接

保存计划后,向用户说明执行方式并二选一(或用户指定):

  1. 子代理驱动(推荐): 每任务新子代理,任务间做规格符合性审查 → 代码质量审查。调用 subagent-driven-development(子代理驱动开发)
  2. 同会话逐步执行: 由当前对话按勾选执行,每完成若干任务或与用户约定节点做一次同步;实施时遵循 tdd-master(TDD 开发大师) 的红绿重构;关键节点用 code-review-expert(代码审查专家) 做质量门禁。

禁止在未获用户同意时在 main/master 上直接开始实施(若计划针对默认分支,须在计划中或交接时明确分支策略)。


衔接关系

技能关系
brainstorming(方案设计师)本技能的上游:输入为已批准的设计文档
subagent-driven-development(子代理驱动开发)本技能的推荐执行方式
tdd-master(TDD 开发大师)子代理或本会话实施时的测试节奏依据
code-review-expert(代码审查专家)全量收尾或子代理流程中的质量审查依据
prd-engineer(需求工程师)偏 PRD/问题域;本技能偏工程切片与文件级步骤,二者可衔接但职责不同

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Writing Plans AI skill do?

Use when 已有经批准的设计/规格说明、多步骤实施任务,在动代码之前需要可执行任务清单时。触发场景:写实施计划、拆解开发任务、implementation plan、执行计划文档、任务拆分、按 TDD 步骤写计划。

Why use Writing Plans on TypingMind?

Because you install it once and use it with any model. Writing Plans is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Writing Plans in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/ProgrammerAnthony/Expert-Coding-Harness/tree/master/skills/writing-plans. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Writing Plans?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Writing Plans?

As many as you like. As long as a model supports skills, you can use Writing Plans with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Writing Plans AI skill free?

Yes. It is published on GitHub by ProgrammerAnthony under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇