Writing Plans logo

Writing Plans

CommunityPopular
GanyuanRan
writing-plans

Use when you have an approved spec or written requirements for a multi-step task that needs a durable plan document before touching code. Small, single-owner, or fast-path tasks do not need this skill.

Overview

PublisherGanyuanRan
RepositoryAegis
Skill namewriting-plans
Stars
1.2K
Forks
52
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 GanyuanRan 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/GanyuanRan/Aegis.git /tmp/Aegis
mkdir -p .claude/skills
cp -r /tmp/Aegis/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.

Execute

→ Existing parent plan/spec and a tiny execution slice? → Use Planless Slice Lane. → Mechanical or bounded change with no durable boundary (no new owner, contract, schema, public API, migration, or compat surface)? → Use Planless Slice Lane without a parent document. → Approved spec/requirements for a new workstream or an escalation trigger? → Write an implementation plan for an engineer with no prior task context.

For a durable plan: confirm scope and acceptance, map current owners/files, record the TDD route, decompose into executable tasks, define verification and retirement, self-review, save, then select the execution route. Proceed unless a real authorization or safety boundary requires the user.

Escalate from Planless Slice Lane when the work adds a new owner, contract, schema, public API, architecture boundary, migration, persistence, security/permission, distribution/release surface, or an unclear verification boundary.

Writing Plans

This skill turns approved requirements into a bounded, executable plan. The plan must answer: what changes, why code is necessary, which existing owner and files change, what stays compatible, what verifies the result, what risk remains, and what old path is retired or deliberately retained. A plan is method-pack guidance; it cannot grant authoritative completion.

TDD Route Guard

Before task decomposition, record TDD Route with mode (off | auto), decision (strict | light | skipped), authority, test posture, reason, and verification.

Strict RED / GREEN steps belong only to an explicit user/project TDD request or TDD Route: strict. In off, use skipped unless explicit strict authority overrides it. An approved plan or a risk label alone is not strict authority.

In auto, select strict for behavior, bugfix, shared/core, contract, persistence, permission, migration, producer/consumer, or meaningful regression signals. Select light only when the work is tiny, low-risk, single-owner, has no behavior change or strict signal, and has an obvious focused check. Absence of an explicit user TDD request is never evidence for light; the auto decision itself must be recorded.

If risk remains unknown, return to requirements, debugging, or plan review before task decomposition; do not infer a TDD route from uncertainty.

Only a strict decision with stated authority may prescribe failing-test, RED, GREEN, and REFACTOR steps. Otherwise plan the minimum change plus diagnostic reproduction or post-change regression. A missing auto decision returns to route selection before implementation tasks.

Entry And Artifact Choice

Announce at start: on the plan-writing route, say that this skill is creating the implementation plan. On Planless Slice Lane, announce the lane instead and do not claim a plan is being created.

Execution context: Reuse the current branch/workspace by default. A branch needs independent history; a worktree needs concurrent checkout, blocking unrelated dirty state, or explicit user/repository authority.

Input: approved requirements, a Spec Brief, or a Design Spec.

Default plan path: docs/aegis/plans/YYYY-MM-DD-<feature-name>.md. Plans do not go in work/; user and repository authority override the default.

Exception: use Planless Slice Lane when an existing parent plan/spec already owns the current tiny execution slice, or when the change is mechanical or bounded and needs no parent document. Do not save a new plan. Emit a compact Slice Card:

text
Slice Card:
- Goal:
- Parent plan/spec:
- Files:
- Boundary:
- Verification:
- Stop:

On the no-parent branch, Parent plan/spec: is none — direct bounded request.

Aegis Project Workspace

Workspace creation is lazy and follows project authority. The Aegis Method Pack repository must not create or ship a live docs/aegis/ workspace. When a durable plan must initialize or update another project's workspace, read the workspace section of expanded-planning-guidance.md. It owns the <aegis-workspace-helper> and INDEX.md command detail, not the decision to create a plan.

Default Plan Surface

Compact output contract: express these as natural plan content, not a stack of cards: Aegis Visibility, approved scope and plan basis, required baseline refs, files/owners, compatibility boundary, Change Necessity, TDD route, tasks, verification, risks, and retirement. Keep conditional structures silent unless their trigger below fires.

Aegis Visibility is normally one sentence explaining which owner, contract, retirement, compatibility, or verification pressure makes a durable plan useful. Structured trace belongs only to audit, debug, release, long-task review, or explicit request.

Before tasks, perform a Requirement Ready Check: identify the approved source, scope, scenarios, and acceptance evidence. If any decision-changing item is missing, do not create implementation tasks; return the smallest gap to the requirement/spec owner.

Perform Change Necessity before any non-trivial source edit or any new source-code path. This is behavior-triggered, not prompt-triggered. State naturally why no-change/docs/config is insufficient and name the minimum code boundary. A tiny helper, guard, branch, fallback, adapter, or owner is not exempt. A no-change, docs/config-only, or needs-clarification result narrows or stops the code plan.

Run Ripple Signal Triage before tasks when the change touches shared/core or cross-module behavior; a public API, schema, contract, compatibility, persistence, cache, export/readback, fallback, adapter, duplicate/legacy owner, retirement path, or both producer and consumer. If no signal fires, add no output. If one fires, identify the canonical owner and affected downstream consumers, state source-of-truth/contract/fallback/retirement risk, and carry expanded verification into the relevant task. A required owner/public-contract/source-of-truth change, retaining two owners, or adding a fallback, adapter, or compatibility branch returns to design or requires explicit prior alignment before implementation.

Run a compact Plan Pressure Test before task decomposition: test owner / contract / retirement fit, higher-level architecture path, verification scope, and task executability. It may proceed, revise the plan, or return to design; it is not an approval authority.

Conditional Detailed Guidance

Read only the trigger-matched section of expanded-planning-guidance.md:

  • ## Baseline And Requirement Detail when specific baseline acknowledgement needs structure or requirement readiness is incomplete/disputed;
  • ## New-Surface And Architecture Detail when a new surface or new owner needs Existence Check, AEGIS_MINIMALITY_REFERENCE, Architecture Integrity Lens, or first-principles-review detail before task decomposition;
  • ## Complexity Detail when material file-size, mixed-owner, add-in-place, adapter, fallback, or shared-core pressure appears;
  • ## Execution Readiness Detail for a long-running, handoff-prone, subagent-driven, high-risk architecture/contract/compatibility/retirement handoff;
  • ## Workspace Save Detail only when saving requires workspace initialization or INDEX.md updates;
  • ## Execution Route Detail only when route evidence needs a structured handoff; and
  • ## Expanded Plan Review only for an independent high-risk or handoff-heavy review.

The direct triggers cover baseline readiness, new surface or new owner, complexity pressure, workspace persistence, and execution handoff. The reference supplies detail only. This main file owns routing, plan versus Planless selection, task blocking, and execution handoff.

For a new surface, use Existence Check and docs/current/AEGIS_MINIMALITY_REFERENCE.md before tasks. Reuse an existing owner when it is sufficient. If owner, contract, responsibility overlap, higher-level simplification, fallback, or retirement remains risky, use the Architecture Integrity Lens and first-principles-review before task decomposition.

For maintained source, screen file shape, owner fit, add-in-place risk, and a better boundary. With no pressure signal, a compact edit-in-place decision is enough. When pressure exists, load the expanded Plan-Time Complexity Check and Complexity Budget. An over-budget result must change the task boundary, add governance work, or stop for follow-up.

For an ordinary medium/high handoff, state Intent Lock, Scope Fence, Baseline Lock, tests, and drift stop naturally. Load the expanded Execution Readiness View only for the auditable handoff triggers above. Neither form is a GateDecision, PolicySnapshot, approval gate, or completion authority.

If the plan must choose among deleting an old internal path, retaining a proven external compatibility boundary, or stopping for persistent-state confirmation, compose anti-entropy-governance. It does not authorize destructive execution.

Preserve approved ADR signal preservation, source refs, alternatives, compatibility, and baseline-sync questions for completion; do not create accepted architecture memory from an unexecuted plan.

Planless Slice Lane

Use Planless Slice Lane before writing or saving a plan when one of these entry conditions holds:

  • a parent spec or parent plan already defines the workstream, and the current request is executing or refining one bounded task from that parent
  • the change is mechanical or bounded and needs no parent document (the no-parent branch under # Execute)

and both of these are true:

  • no new owner, contract, schema, public API, architecture boundary, migration, persistence, security/permission, distribution/release surface, or unclear verification boundary appears
  • the slice can be described by a Slice Card

The lane preserves long-task continuity without turning execution bookkeeping into durable planning artifacts. A parent scope or acceptance mismatch returns to the parent plan/spec instead of spawning a micro-plan.

Plan And Task Quality

Map files before tasks. Follow existing ownership and naming. For non-trivial plans, passively use relevant current terms from CONTEXT-MAP.md or CONTEXT.md; route a real semantic conflict to establishing-project-context.

Every durable plan starts with Goal, Architecture, Tech Stack, Baseline/Authority Refs, Compatibility Boundary, TDD Route, and Verification. Then define small, ordered tasks with exact files, purpose, minimum necessary change, compatibility impact, and commands/outcomes that prove the task. Include code excerpts only when a signature, contract, or transformation would otherwise remain ambiguous; do not duplicate the implementation inside the plan.

For bug fixes, refactors, contract changes, or governance cleanup, keep Repair Track and Retirement Track explicit in the affected task. A retained old owner or fallback needs a reason and retirement trigger.

Self-review once for approved-scope coverage, placeholders, owner/type consistency, minimum change boundary, compatibility, exact verification, conditional trigger handling, and retirement. Fix defects inline. Tasks are execution units, not Git history units: the coordinator captures TaskStartSnapshot and creates one scoped commit only after the whole Task is reviewed and freshly verified.

Execution Handoff

The agent owns the execution-route decision. Select subagent-driven only for genuinely independent tasks with bounded ownership when coordination pays for it; otherwise select inline. Unavailable subagents falls back to inline execution. A dirty workspace alone does not select either route.

Ask the user only for unresolved authorization, privacy, paid-resource, external-action, irreversible-action, scope, acceptance, or workspace-ownership boundaries. Otherwise proceed immediately. State the decision, evidence, fallback, and User confirmation required: no | yes — <boundary> compactly; load the reference only when the full Execution Route schema is useful.

For subagent-driven, use aegis:subagent-driven-development. For inline, use aegis:executing-plans.

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 you have an approved spec or written requirements for a multi-step task that needs a durable plan document before touching code. Small, single-owner, or fast-path tasks do not need this skill.

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/GanyuanRan/Aegis/tree/main/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 GanyuanRan 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 👇