frappe-plan-doctype

frappe-plan-doctype is a command for Claude Code from Venkateshvenki404224/frappe-apps-manager. It costs 17 tokens per session (1,062 once invoked), scanned A, original, MIT.

A guided planning command for designing Frappe DocTypes, the data models used to represent records in a Frappe application. It interviews you about a feature, then maps entities, links, names, and how they connect.

In plain words
What is it for?
Use it to plan the DocType architecture for a Frappe feature, such as an evaluation system that issues certificates.
Why use it?
It helps turn an unfinished feature idea into a structured data design before implementation. It also checks existing DocTypes so you can reuse or extend them where appropriate.

Command for Claude Code

Written for Claude Code: argument-hint in frontmatter.

Part of the frappe-apps-manager plugin — 16 skills, 16 commands, 3 hooks shipped together

Good fit Use it to plan the DocType architecture for a Frappe feature, such as an evaluation system that issues certificates.

Compare 6 commands from other repositories ↓
Install with agentmods
npx agentmods add commands/venkateshvenki404224/frappe-apps-manager/frappe-plan-doctype
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.

Clone the repo
git clone --depth 1 https://github.com/Venkateshvenki404224/frappe-apps-manager

Made for: Claude Code.

Or install frappe-apps-manager, the plugin that ships this one along with the rest of its 16 skills, 16 commands, 3 hooks.

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 frappe-plan-doctype

README.md
[![agentmods](https://agentmods.dev/badge/commands/venkateshvenki404224/frappe-apps-manager/frappe-plan-doctype/github.svg)](https://agentmods.dev/commands/venkateshvenki404224/frappe-apps-manager/frappe-plan-doctype)
Your own site
<a href="https://agentmods.dev/commands/venkateshvenki404224/frappe-apps-manager/frappe-plan-doctype"><img src="https://agentmods.dev/badge/commands/venkateshvenki404224/frappe-apps-manager/frappe-plan-doctype/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for frappe-plan-doctype

Your own site · 80×15
<a href="https://agentmods.dev/commands/venkateshvenki404224/frappe-apps-manager/frappe-plan-doctype"><img src="https://agentmods.dev/badge/commands/venkateshvenki404224/frappe-apps-manager/frappe-plan-doctype.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 17 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,062 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
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.1 $0.00017 $0.01062
Opus 5 $0.00009 $0.00531
Sonnet 5 $0.00003 $0.00212
Haiku 4.5 $0.00002 $0.00106

Measured 12d ago against content hash b08f4b059201, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-12, from the pricing page.

Security

Grade A, and why

frappe-plan-doctype 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 12d 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.

frappe-apps-manager/commands/frappe-plan-doctype.md · 35 lines

How it starts

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

Frappe Plan DocType Command

Plan the DocType architecture for a feature exactly like a seasoned Frappe lead developer — interview the user, map the entities, propose DocType names and links, and lay out a flowchart of how everything connects. This command is a thin wrapper that defers to the frappe-doctype-architect skill.

The feature to design is provided in $ARGUMENTS.

Steps:

  1. Get the feature. If $ARGUMENTS is non-empty, treat it as the feature description (e.g., "an evaluation system for issuing certificates"). If it is empty, ask the user one question: "What feature do you want to design the DocType architecture for?" and wait for the answer.

  2. ALWAYS open with the interview — never the deliverable. No matter how detailed $ARGUMENTS is, your first response is Stage-1 questions with proposed defaults, not the diagram or spec tables. A rich prompt is a starting point to interrogate, not a finished spec. Then run the frappe-doctype-architect staged Interview Engine end to end:

    • Reconnaissance (read-only, before drawing anything): scan the target app (and installed apps) for existing doctypes and decide reuse > extend > create for each entity — reuse User/Contact/Print Format rather than re-modeling; extend an existing doctype via own-app fields or Custom Field fixtures (other-app) before creating a new one. Locate doctypes at apps/<app>/**/doctype/*/*.json; check hooks.py fixtures for existing custom fields. Surface the verdict as deliverable item (b).
    • Stage 1 — Domain & actors (roles, the core "thing", the driving lifecycle).
    • Stage 2 — Entities & cardinality (nouns → master vs transaction; 1:N vs M:N; persist vs compute).
    • Stage 3 — Lifecycle & status (docstatus vs status field vs Workflow; states + legal transitions + triggers; audit trail).
    • Stage 4 — Relationships (Link vs Dynamic Link; child table vs separate doctype; M:N → join doctype; trees; single-hop fetch_from).
    • Stage 5 — Fields & data (required/computed, fetch_from, naming strategy, uniqueness, conditional fields).
    • Stage 6 — Permissions & visibility (roles, owner-based, User Permissions, sharing).
    • Stage 7 — Integrations & automation (Log doctypes, notifications, scheduled jobs, Single settings).
    • Obey the operating rules: a stage is NOT one turn — pick only the 2–4 highest-leverage questions per turn, propose a sensible production-grade default with each (cite the real app it comes from), push back on weak/non-scaling answers, restate the FULL running model after every turn, and fill obvious gaps yourself. Do not emit the deliverable until the user has answered questions covering Stages 1–4 across at least 2–3 turns and has explicitly confirmed the running model at least once ("decidable" = user-confirmed, not self-assessed).
  3. Produce output items (a)–(f) from the skill's Output Format, in that exact order: (a) restated understanding, (b) the reuse & extension plan (per entity: reuse X / extend X (add …) / create new, with the reason, and the mechanism for each extend — own-app field vs Custom Field/Property Setter fixture), (c) a Mermaid erDiagram flowchart of every doctype and its links (mark reused vs new nodes; every edge backed by a real field; Link targets must match the spec rows; a master-driven status is a Link, a hardcoded set is a Select), (d) a per-DocType spec table framed as input to the builder (kind, naming strategy, key fields with fieldname | fieldtype | options/target | reqd | why; plus one table per extended doctype listing only the added fields + mechanism), (e) the relationship map in prose, (f) open questions / assumptions made.

  4. Then deliver item (g), the handoff offer — and do NOT write any files. Ask whether to:

    • generate the actual DocType JSON via the frappe-doctype-builder skill (doctype by doctype, masters → child tables → transactions);
    • generate status-transition controller code via the frappe-state-machine-helper skill (validate_state_transition / on_submit; on_cancel only if the design is made submittable);
    • escalate system-wide architecture to the frappe-architect agent.

Read the full file on GitHub · 35 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. 12d ago First seen · 35 lines · 17 tokens per session scan A b08f4b059201

Subscribe to this mod's changes

frappe-plan-doctype is a command published in the GitHub repository Venkateshvenki404224/frappe-apps-manager (27 stars, last pushed 3mo ago), licensed MIT. It adds 17 tokens to every session and 1,062 once invoked, about $0.0001 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.