GTPlanner: turning a natural language brief into an agent PRD
GTPlanner: AI-Powered PRD Generation Tool
At a glance
- What is it?
- GTPlanner is a Python tool that generates structured PRD documents for coding agents, shipped as a CLI, a FastAPI service, a Claude Code skill and an MCP server. Its value depends on whether you accept its three-document model of design.md, prefab.md and starter-kit.
- Who is it for?
- GTPlanner fits teams that already run Claude Code, Cursor or another coding agent and want a repeatable document step before implementation, and who can supply an OpenAI-compatible LLM endpoint. It does not fit anyone who wants the tool to write or run the application itself, since the README describes document generation only.
- Can I use it commercially?
- Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 1 day ago.
- What is it written in?
- Mainly Python, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.
DEEP OPEN-SOURCE ANALYSIS
The problem GTPlanner targets: briefs that coding agents cannot act on
A coding agent receives a paragraph and has to infer scope, stack and success criteria. GTPlanner's README frames that gap as a context engineering problem and proposes that the missing artifact is a written SOP. The project's stated output is an Agent PRD, split into three named documents: design.md for what the work is, prefab.md for the tools available and how to call them, and starter-kit for the development framework and environment. The README notes that the starter-kit part is mostly consistent across projects, which implies the first two carry the project-specific information. The intended audience is developers who already use Code Agents such as Claude Code, Cursor, Augment or Devin, and who want the planning stage to produce files rather than conversation. The README's own framing of the goal is direct: work that can be SOPed can be automated by AI. That is an assumption, not a proof, and it is the assumption the whole tool rests on.
The four tools and the order they run in
The Claude Code skill section lists four tools with one-line descriptions: short_planning for requirement analysis and scope definition, tool_recommend for technology stack recommendations, research for deep technical research, and design for generating design documents in quick or deep mode. The documented workflow is short_planning (initial), then tool_recommend, then short_planning again (technical), then design. The repeated call to short_planning is the interesting part of the design. It means the first pass establishes what the user wants, the recommendation step proposes a stack, and the second pass re-runs requirement analysis with that stack in hand. The research tool is the only one with an extra dependency, JINA_API_KEY, so it is optional in practice. The quick and deep modes on design are not explained in the README beyond the mode names, so the cost and quality difference between them is something you would have to determine from the output itself. The pipeline is linear and single-pass per tool; nothing in the material describes a loop that sends generated documents back through short_planning.
Getting it running: uv, .env and three entry points
The prerequisites are Python 3.10 or newer, with 3.11 or later recommended, and uv as the package manager. Installation is a clone followed by uv sync. Configuration is a copy of .env.example to .env, and the README marks three variables as required: LLM_API_KEY, LLM_BASE_URL and LLM_MODEL, with an example pointing LLM_BASE_URL at https://api.openai.com/v1 and LLM_MODEL at gpt-5. Because the base URL is configurable, an Azure OpenAI or self-hosted OpenAI-compatible endpoint is a supported path according to the README. There are three ways in. The CLI runs interactively with python gtplanner.py, or takes a single quoted brief as an argument. The HTTP service starts with uv run fastapi_main.py and listens on 0.0.0.0:11211 by default, with interactive docs at /docs. The MCP server lives in the mcp directory and starts with uv sync followed by uv run python mcp_service.py. For the Claude Code skill, the repository is cloned into ~/.claude/plugins and initialized with the /gtplanner-init command. Note that the skill path and the MCP path each have their own dependency install, so a full local setup means running uv sync more than once.
The Prefab concept is the part that needs scrutiny
GTPlanner's composability claim rests on Prefabs, which the README defines as available tools and how to use them, written into prefab.md. The README also names a Prefab Ecosystem as a top-level section of the project. What the supplied material does not contain is a Prefab specification, a registry, or a list of existing Prefabs. That matters because tool_recommend is described as producing technology stack recommendations, and it is not clear from the README whether those recommendations are drawn from a curated set of Prefabs or generated fresh by the LLM on each run. If it is the latter, the composability benefit depends on the model producing consistent names and interfaces across separate sessions, which is exactly the determinism the README lists as the first design principle. The README's determinism claim is about the generated SOP constraining execution, not about the generator itself being deterministic. Those are different guarantees, and only the first is stated.
What GTPlanner does not do, and where it is the wrong tool
Nothing in the README describes GTPlanner executing the workflows it plans. There is no runtime, no scheduler, no execution engine in the documented surface. The four tools produce analysis, recommendations, research and documents. If your problem is that an agent already runs reliably but you need orchestration, retries or observability at execution time, GTPlanner addresses a different stage of the work. The second limitation is the LLM dependency. Every tool in the pipeline calls the configured endpoint, so output quality, latency and cost track the model behind LLM_BASE_URL. The README lists a single model variable, LLM_MODEL, with no documented per-tool override, so you cannot route the cheap short_planning calls to a small model and design to a larger one without changing the configuration between runs. Third, the research tool needs a separate JINA_API_KEY, so a deployment that skips that key loses one of the four advertised capabilities. Finally, the README recommends the Web UI for the best experience and points to a hosted demo, which means the local path is the less-travelled one and its rough edges are less likely to be documented.
How this differs from n8n and from writing the PRD by hand
The README is explicit about one comparison: GTPlanner does not lock you into an execution platform like n8n, and instead uses minimal AI frameworks and native Python code. The difference in approach is where the artifact lives. In n8n, the workflow graph is the artifact and it is executed by n8n's runtime. In GTPlanner, the artifact is a set of markdown documents, and execution is left to whatever coding agent reads them. That is a real trade-off rather than a strict improvement. You gain portability, because design.md and prefab.md are plain text that any agent can consume. You lose the guarantees a runtime provides, such as retry semantics, credential handling and a visual diff of what changed between versions. The other alternative is writing the PRD yourself, which costs an afternoon and produces something you fully understand. GTPlanner's pitch is that the four-tool pipeline surfaces stack options and research you might not have considered. Whether that beats your own drafting depends on how much of the output you end up rewriting, which is the thing to measure on your first real brief.
Licence, maintenance and what upgrading costs you
GTPlanner is MIT licensed, which permits commercial use, modification and redistribution provided the copyright notice and permission notice are retained. That is a permissive arrangement, and it means the code can be vendored into a private repository. It also means there is no warranty, so the generated documents are your responsibility once they reach a coding agent. On maintenance, the release history in the supplied material shows v0.2.0 in July 2025, v0.3.0 in September 2025 and v0.3.4 in September 2025, with the default branch last pushed in August 2026. Two releases landed about two weeks apart in September 2025, which suggests active iteration in that window; the material does not show what changed between them, so the upgrade cost cannot be estimated from release notes alone. The practical cost of upgrading is re-running uv sync and re-checking your .env against .env.example, since the required variables are declared there. If you have written custom Prefabs, the absence of a documented Prefab specification in the README means you should read the diff before pulling, because there is no stated compatibility contract for that format.
A concrete way to evaluate it in one sitting
Pick a brief you have already implemented, so you know what a correct plan looks like. Run it through the CLI with python gtplanner.py and the brief as a quoted argument, then read the four tool outputs in the documented order and check two things. First, does tool_recommend name a stack you would actually accept, or does it hedge. Second, does design produce a design.md specific enough that a coding agent could start from it without asking follow-up questions. If both hold, the Claude Code skill path is worth setting up, because the trigger words PRD, 项目规划, 架构设计, 技术方案 and 设计文档 let you invoke it without leaving the editor. If the design output reads as generic prose, the problem is upstream of GTPlanner and no amount of pipeline reordering will fix it. The repository is not archived, so issues and pull requests have a live target.
Editorial conclusion
GTPlanner fits teams that already run Claude Code, Cursor or another coding agent and want a repeatable document step before implementation, and who can supply an OpenAI-compatible LLM endpoint. It does not fit anyone who wants the tool to write or run the application itself, since the README describes document generation only. Before adopting it, run uv sync, copy .env.example to .env, and confirm that short_planning and design produce output you would actually hand to an agent, because the quality of every downstream document is bounded by the LLM behind LLM_BASE_URL.
Community notes