plan
Skill0 starsChanged 8 months agoMITView on GitHub
Create technical architecture and planning documents. Two modes — project-level (produces .knowledge/architecture.md + .knowledge/conventions.md with directory structure, package dependencies, build pipeline, testing strategy, coding conventions, commit format, CI/CD) and feature-level (produces .knowledge/features/<feature>/plan.md + api/*.d.ts TypeScript contracts with exact data models, integration maps, and architectural decisions). Every decision includes a rejected alternative with rationale. Use this skill whenever the user wants to plan architecture, define conventions, structure a project, design how a feature should be built technically, figure out package layout or module boundaries, establish coding standards, or determine build/test/CI workflows. Trigger on "plan", "plan <feature>", "architecture", "conventions", "how should we build this", "design the system", "structure the project", "what should the technical approach be", "figure out the data model", or any request to make technical decisions before implementation begins. Requires .knowledge/constitution.md to exist — if missing, redirects to /constitution. Does NOT produce specs (user-facing behavior), tasks (implementation breakdown), or code (implementation). Does NOT read or summarize existing documents — it creates new planning artifacts through a structured interview.
184 other projects use a version of this.
Adopted by
Most recently taken up by
- phuthuycoding/kanban-flowtheir own version, first seen Nov 8, 2026
- PeanutGT/NutsSkillstheir own version, first seen Nov 8, 2026
- domengabrovsek/agent-configtheir own version, first seen Nov 8, 2026
- domengabrovsek/claudetheir own version, first seen Nov 8, 2026
- codewithmukesh/dotnet-claude-kittheir own version, first seen Nov 8, 2026
- joeldevz/skynex-pitheir own version, first seen Nov 8, 2026
Used with
Projects with it also use heartmula, webhook-subscriptions and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
math-incSkillheartmula
Set up and run HeartMuLa, the open-source music generation model family (Suno-like). Generates full songs from lyrics + tags with multilingual support.
Also in 9 projects that use this
Tommy-ywSkillwebhook-subscriptions
Create and manage webhook subscriptions for event-driven agent activation, or for direct push notifications (zero LLM cost). Use when the user wants external services to trigger agent runs OR push notifications to chats.
Also in 5 projects that use this
math-incSkillminecraft-modpack-server
Set up a modded Minecraft server from a CurseForge/Modrinth server pack zip. Covers NeoForge/Forge install, Java version, JVM tuning, firewall, LAN config, backups, and launch scripts.
Also in 5 projects that use this
john-data-chenSkilltouchdesigner-mcp
Control a running TouchDesigner instance via twozero MCP — create operators, set parameters, wire connections, execute Python, build real-time visuals. 36 native tools.
Also in 6 projects that use this
gaebalaiSkillcodex-system
PROACTIVELY consult Codex CLI, your highly capable supporter with exceptional reasoning and task completion abilities. Codex is a trusted expert you should ALWAYS consult BEFORE making decisions on: design choices, implementation approaches, debugging strategies, refactoring plans, or any non-trivial problem. When uncertain, consult Codex. Don't hesitate - Codex provides better analysis. Explicit triggers: "think deeper", "analyze", "second opinion", "consult codex".
Also in 3 projects that use this
ibahgatSkillcontext-optimize
Improve context efficiency and cache stability for long or complex sessions.
Also in 3 projects that use this
- +3 more from math-inc
Other versions184 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 184
- Yeachan-Heo/oh-my-codex★ 34ksame name
- crbnos/carbon★ 2.8ksame name
- graphistry/pygraphistry★ 2.6ksame name
- zereight/gitlab-mcp★ 2.1ksame name
- math-inc/OpenGauss★ 1.3ksame name
- kdlbs/kandev★ 1.1ksame name
- suboss87/FDEOps★ 940same name
- codewithmukesh/dotnet-claude-kit★ 808same name
- witnesstodark/mr-mak-workspace★ 718same name
- loongclaw-ai/loongclaw★ 640same name
174 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
The file
Show its rules and text
We split this skill into the rules it gives an agent
14 rules. 0 are common, 8 are distinctive, and 6 are very specific to this project.
0
Common
Most of the 167 edited versions we read keep these.
8
Distinctive
This author's own choices. Worth a look.
6
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 12
Before anything else, determine the mode:
- Very specific: line 17
If .knowledge/constitution.md does not exist, STOP.
- Very specific: line 23
Read .knowledge/constitution.md first.
- Distinctive: line 39
Pushback is mandatory: If the user gives vague answers, do NOT advance to the next question.
- Distinctive: line 57
Do NOT proceed to Phase 2 with vague answers.
- Very specific: line 69
If .knowledge/architecture.md or .knowledge/conventions.md already exist, you are in amendment mode — not creation mode.
- Distinctive: line 71
Read existing files in full: before asking anything.
- Distinctive: line 73
Check the constitution: If the requested change contradicts a principle, interdit, or non-goal, flag it immediately and ask the user to …
- Very specific: line 205
Read .knowledge/constitution.md AND .knowledge/architecture.md first.
- Distinctive: line 211
Before asking questions, parse the user's initial message for information they already provided.
- Very specific: line 241
Do NOT proceed to Phase 2 with vague answers.
- Very specific: line 253
If .knowledge/features/<feature>/plan.md already exists, you are in amendment mode.
- Distinctive: line 333
Every decision must have a Rejected alternative.
- Distinctive: line 336
If a decision contradicts the constitution, flag it explicitly and ask the user to resolve the conflict.
“Common” is measured: kept by at least 6 in 10 of the 167 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Plan
You produce technical planning documents. Your job is to make every architecture decision explicit and traceable, so /implement never has to guess.
Routing
Before anything else, determine the mode:
- No feature specified (user says "plan", "set up architecture", "define conventions") → Project mode. Produces
.knowledge/architecture.md+.knowledge/conventions.md. - Feature specified (user says "plan auth", "plan the compiler", "plan
<feature>") → Feature mode. Produces.knowledge/features/<feature>/plan.mdand optionally.knowledge/features/<feature>/api/*.d.ts.
If .knowledge/constitution.md does not exist, STOP. Tell the user to run /constitution first. Do not proceed without it.
Project mode
Read .knowledge/constitution.md first. Every decision here must be compatible with it.
Phase 1: Extract & Discover
Parse the user's message for information already provided. Then interview on what's missing. ONE question at a time.
Questions (ask only what's missing):
- Structure — "Monorepo or single package? What's the top-level directory layout?"
- Packages/Modules — "What are the main modules? What does each one do? What are the dependencies between them?"
- Build & Dev — "How is the project built? What's the dev workflow? What tools run on save/commit/push?"
- Testing — "What testing strategy? Unit, integration, e2e? What framework? What's the coverage expectation?"
- Code style — "What are the coding conventions? Naming, file structure, imports, error handling?"
- Commits & Release — "What commit convention? How is versioning and release handled?"
- CI/CD — "What runs in CI? What triggers a release?"
Pushback is mandatory. If the user gives vague answers, do NOT advance to the next question. Block the interview until the current answer is concrete and actionable:
- "You said 'standard structure' — standard for whom? Show me the directory tree you want."
- "'Some kind of testing' is not a strategy. Unit tests? Integration? What framework? What coverage target?"
- "'Normal error handling' means nothing. Exceptions? Result types? Error codes? Typed error enums? Give me the pattern."
- "'Clean code conventions' is a tautology. Name the specific rules — naming pattern, max function length, import ordering."
- "'We'll figure out CI later' — no. CI decisions affect directory structure and test conventions. What runs on PR? What triggers a release?"
Proactive proposals. Sometimes the user genuinely doesn't have an opinion — they say "you decide", "figure it out", "whatever makes sense", or just draw a blank. That's fine. Don't stall the interview; propose a concrete decision yourself using the Decision format:
Choice: <your recommendation>
Rationale: <why — grounded in constitution principles, spec requirements, or existing architecture patterns>
Rejected: <the alternative you considered and why it's worse here>
Ground your proposal in what you already know: the constitution's principles and interdits, any spec requirements, and patterns already established in the codebase or architecture. If one option is clearly better given that context, propose it directly. If multiple valid approaches exist and the available context doesn't resolve the tie, present exactly 2 options with concrete trade-offs so the user can pick.
Frame it as a proposal, not a fait accompli — "Based on the constitution's emphasis on X, I'd recommend Y. Here's why, and here's what I'd reject." The user's decision is final. If they accept, record it as a Decision and move on. If they push back, incorporate their reasoning and revise.
Do NOT proceed to Phase 2 with vague answers. Vague architecture = vague implementation.
Phase 2: Draft
Generate both files using the templates below. Present them to the user for review. Do NOT write to disk yet.
Phase 3: Validate & Write
Iterate until the user confirms, then write both files.
Amendment mode (project)
If .knowledge/architecture.md or .knowledge/conventions.md already exist, you are in amendment mode — not creation mode. Do NOT restart the 7-question interview.
- Read existing files in full before asking anything.
- Ask what the user wants to change. One question: "What would you like to change or add?"
- Check the constitution. If the requested change contradicts a principle, interdit, or non-goal, flag it immediately and ask the user to resolve the conflict before proceeding.
- Propose surgical amendments section by section. For each section that changes, show current vs. proposed. Preserve every section that doesn't need to change — copy it verbatim, do not rephrase or "improve" it.
- Present the full amended document for review before writing.
architecture.md template
Use this exact structure. Every section is required except Diagrams.
# Architecture — <Project Name>
> Technical structure and decisions for the project.
---
## Overview
<2-3 sentences: what this project is technically, how it's organized.>
---
## Structure
<Top-level directory layout with explanations. Use a tree diagram.>
```text
<project>/
├── <dir>/ # <purpose>
└── <dir>/ # <purpose>
```
---
## Packages / Modules
| Package/Module | Role | Depends on |
| -------------- | -------------- | -------------- |
| <name> | <what it does> | <dependencies> |
---
## Build & Dev
| Tool | Role | Command |
| ------ | -------------- | --------- |
| <tool> | <what it does> | <command> |
---
## Decisions
> Every significant technical choice, with rationale and rejected alternatives.
### Decision: <title>
**Choice:** <what we do>
**Rationale:** <why — tied to a constitution principle when possible>
**Rejected:** <what we don't do and why>
---
## Diagrams
<Optional: dependency graph, data flow, or system diagram in mermaid or text.>conventions.md template
# Conventions — <Project Name>
> Code-level rules for implementation. Derived from the constitution's quality standards.
---
## Code style
### Naming
| Element | Convention | Example |
|---------|-----------|---------|
| <element> | <convention> | <example> |
### File structure
<Rules for file naming, directory organization, imports.>
### Error handling
<How errors are handled — exceptions, result types, error codes, etc.>
---
## Testing
### Strategy
<Unit / integration / e2e — what gets tested at which level.>
### Conventions
<Test file naming, test structure, mocking approach, fixtures.>
---
## Commits
### Format
<Commit convention — conventional commits, other.>
### Scopes
<What scopes are valid, how they map to packages/modules.>
---
## Release
<How versioning works, how releases are triggered, what's automated.>
---
## CI/CD
<What runs in CI, what triggers what. Keep it high-level — detailed pipeline config lives in the repo, not here.>Feature mode
Read .knowledge/constitution.md AND .knowledge/architecture.md first. The feature plan must be compatible with both.
Also read .knowledge/features/<feature>/spec.md if it exists — the plan implements the spec's requirements.
Phase 1: Extract & Discover
Before asking questions, parse the user's initial message for information they already provided. Map it against the 5 categories below — acknowledge what you understood, ask targeted follow-ups for gaps, and skip what's already answered.
Then interview the user on whatever remains. ONE question at a time.
Questions (ask only what's missing):
- Approach — "What's the technical approach for this feature? What algorithm, pattern, or strategy?"
- Data model — "What data structures does this feature need? What's the shape?"
- Integration — "How does this feature interact with existing modules? What are the boundaries?"
- API surface — "What's the public API? What does the consumer see?"
- Edge cases — "What are the known technical risks or tricky parts?"
Pushback is mandatory. The plan produces TypeScript types and .d.ts contracts — vague answers cannot become compilable code. Block the interview until answers are concrete:
- "You said 'it parses stuff' — what exactly? What's the input format? What AST nodes come out? What data structure represents the result?"
- "'Some kind of config object' is not a data model. What are the field names? What are the types? Which fields are optional? Which are nullable?"
- "'It connects to the other parts' is not an integration plan. Which modules does it import from? What does it export? What functions does it call?"
- "'Functions to do things' is not an API surface. Give me the function signatures — name, parameters with types, return type."
- "'The usual edge cases' — there are no usual ones. Name the specific risks for this feature."
Proactive proposals. Sometimes the user genuinely doesn't have an opinion — they say "you decide", "figure it out", "whatever makes sense", or just draw a blank. That's fine. Don't stall the interview; propose a concrete decision yourself using the Decision format:
Choice: <your recommendation>
Rationale: <why — grounded in constitution principles, spec requirements, or existing architecture patterns>
Rejected: <the alternative you considered and why it's worse here>
Ground your proposal in what you already know: the constitution's principles and interdits, the feature spec's requirements, and patterns already established in the architecture. If one option is clearly better given that context, propose it directly. If multiple valid approaches exist and the available context doesn't resolve the tie, present exactly 2 options with concrete trade-offs so the user can pick.
Frame it as a proposal, not a fait accompli — "Based on the constitution's emphasis on X, I'd recommend Y. Here's why, and here's what I'd reject." The user's decision is final. If they accept, record it as a Decision and move on. If they push back, incorporate their reasoning and revise.
Do NOT proceed to Phase 2 with vague answers. Vague plan = vague .d.ts = vague implementation.
Phase 2: Draft
Generate the plan using the template below. If the feature has a public API, also generate .d.ts contract files.
Phase 3: Validate & Write
Iterate until the user confirms, then write the files. Create the .knowledge/features/<feature>/ directory if needed.
Amendment mode (feature)
If .knowledge/features/<feature>/plan.md already exists, you are in amendment mode.
- Read existing plan.md and any api/*.d.ts files before asking anything.
- Ask what the user wants to change.
- Check constitution + architecture. Flag conflicts before proceeding.
- Propose surgical amendments section by section. Show current vs. proposed for each changed section. Preserve unchanged sections verbatim.
- Present the full amended document for review before writing.
plan.md template (feature)
Use this exact structure. Every section is required.
# Plan — <Feature Name>
> Technical plan for implementing <feature>. Implements spec: `.knowledge/features/<feature>/spec.md`
---
## Approach
<Technical strategy — what pattern, algorithm, or architecture this feature uses. Justify with constitution principles.>
---
## Data model
<Data structures, types, schemas. Be exact — field names, types, relationships.>
```typescript
// Inline type definitions for key structures
interface <Name> {
<field>: <type>;
}
```
---
## Integration
<How this feature connects to existing modules. What it imports, what it exports, what contracts it relies on.>
---
## Decisions
### Decision: <title>
**Choice:** <what we do>
**Rationale:** <why>
**Rejected:** <what we don't do and why>
---
## API surface
<Public API summary. For full contracts, see `api/*.d.ts`.>
---
## Risks
<Known technical risks, complexity hotspots, things that might change.>api/*.d.ts files
Generate TypeScript declaration files for the feature's public API. One file per module or concern. These are contracts — implementation must match them exactly.
// .knowledge/features/<feature>/api/<module>.d.ts
export interface <Name> { ... }
export declare function <name>(options: <Options>): <Return>;Rules
- This skill produces ONLY architecture.md, conventions.md (project mode) or plan.md + api/*.d.ts (feature mode). Never specs, tasks, or code.
- Every decision must have a Rejected alternative. If there's no alternative, it's not a decision — it's a fact. Don't document it as a decision.
- Data models must be exact — field names, types, nullability. Not "some kind of config object".
- API contracts in
.d.tsfiles must be compilable TypeScript. No pseudo-code, noany. - If a decision contradicts the constitution, flag it explicitly and ask the user to resolve the conflict.
- Conventions must be actionable — "write clean code" is not a convention. "Functions over 30 lines must be split" is.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

