agentleFS
richkuorichkuo/rk-skills/skills/app-prd/SKILL.md

app-prd

Skill50 starsChanged 5 days agoMITView on GitHub

Use when the user wants an app idea turned into a Product Requirements Document (PRD) committed to a repo — "create a PRD", "/app-prd", "turn this idea into a PRD", or a raw idea dump ending with "save it to this repo". Produces a complete, section-numbered PRD.md landed via worktree + PR, bootstrapping an empty repo if needed. Stage 1 of the new-app-pipeline.

The file

We split this skill into the rules it gives an agent

4 rules. About 0 are common, 3 are distinctive, and 1 is very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈3

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 1

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    If no repo exists yet and the user named one, offer gh repo create <name> --private before proceeding.

    line 13
  2. Distinctive:

    Every normative line must survive a literal reading.

    line 50
  3. Distinctive:

    Terminology edits sweep every dependent: After the spec renames or forbids a mechanism, search the spec and all open issues for each …

    line 53
  4. Distinctive:

    Realtime-path lines name the mechanism per component: When components differ in units, coordinate spaces, or timelines, give each its own …

    line 54

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

app-prd

Turn a raw idea dump into a complete, implementable PRD committed to the target repo. Write it so a cold agent could implement from it plus nothing else.

Input

  • An idea dump: features, pricing, constraints, platform choices — usually messy prose. Optionally a target repo (defaults to the current checkout).
  • If no repo exists yet and the user named one, offer gh repo create <name> --private before proceeding.

Steps

1. Check repo state

git status, git log --oneline -3, git remote -v, git ls-remote origin. Three cases:

  • Normal repo: proceed with the standard worktree + PR flow.
  • Empty repo with remote (no commits anywhere): bootstrap first. Create main, one empty initial commit (git commit --allow-empty -m "Initial commit" + attribution footer), push. Never put the PRD itself in the bootstrap commit.
  • No repo/remote: confirm repo creation with the user.

2. Draft PRD.md

Structure (adapt section names to the product, keep the skeleton):

  1. Header table — product name, repo, platforms, status (mark the MVP scope explicitly, e.g. "Draft v0.1 — MVP scope"), last-updated date.
  2. Product Overview — what it does, for whom, the emotional/business core in plain language.
  3. Goals — 3-5 bullets.
  4. Platforms & Technology — a table: each app surface, domains, payments, database, storage, email, auth. Record deferred infrastructure explicitly ("to be provisioned later; design compatible from day one").
  5. Feature sections — accounts, core domain objects, creation flows, privacy rules. Number every section (§4.2 style).
  6. Pricing — exact rates in tables, worked examples labeled illustrative, discount rules with the user's own example numbers preserved.
  7. Lifecycle/operations sections — storage tiers, scheduling windows with computed buffers (show the arithmetic: base time + buffer = trigger point).
  8. Notifications — every trigger, plus the implied supporting set (invites, receipts, warnings) marked as implied.
  9. Per-platform parity section when there are multiple surfaces.
  10. Open Questions — numbered; see rule below.
  11. Out of Scope (MVP).
  12. Post-MVP Roadmap — everything the user flagged as later.

3. Faithfulness rules (integrity-critical)

  • Transcribe every stated number, rate, duration, and rule exactly. Never paraphrase pricing tables or lifecycle windows.
  • Garbled or ambiguous input: make the best-effort interpretation in place and file the ambiguity in Open Questions. Never silently guess; never ask about things a sensible default covers.
  • Anything you inferred rather than were told (e.g. an implied App Store policy, an implied email type) — say so inline.

3b. Executable-spec rules (apply to every PRD edit)

  • Every normative line must survive a literal reading. Ask whether an agent can follow the line exactly as written and still produce the wrong thing.
  • Verify API claims against the installed SDK or type definitions. Before the spec names a property, type, or signature, read the declaration at the deployment target (*.swiftinterface under xcrun --sdk iphoneos --show-sdk-path, or the package's own .d.ts). Web documentation alone is insufficient evidence. A sample written against a legacy API (for example the VN* Vision types) proves nothing about its modern replacement.
  • In-repo evidence outranks external documentation. A code comment that records a compile failure is ground truth. Contradict it only by reproducing the compile.
  • Terminology edits sweep every dependent. After the spec renames or forbids a mechanism, search the spec and all open issues for each remaining mention: implementation orders, tables, checklists, acceptance criteria.
  • Realtime-path lines name the mechanism per component. When components differ in units, coordinate spaces, or timelines, give each its own explicit statement.
  • Spec pull requests get the same review gate as code pull requests.

4. Land it

Worktree off latest origin/main, branch cc/prd, commit PRD.md, push, open a PR. Attribution footer on the PRD file itself, the commit, and the PR body (Created).

5. Iterate on the same PR

For each user revision:

  • Edit, commit, push to the same branch — one PR accumulates the whole draft history.
  • Rename sweeps: grep -c first, replace all occurrences and casing variants, fix grammar fallout (a/an).
  • Flip the PRD file's footer verb to Updated on first revision; commits use Updated thereafter.
  • Reply with what changed in one or two sentences. Do not recap the document.

Output

PR URL plus a one-line summary of coverage and where the open questions are listed. The PR merges when the user says so, after the review gate above (a fix-pr-review-loop run to LGTM on the PRD PR) — typically once the prd-questions stage empties the Open Questions section.

Failure modes

SituationDo this
Empty repo, no base branchBootstrap main with an empty commit first — never commit the PRD directly to main
User's numbers seem inconsistent (e.g. discount examples)Record them verbatim, add an Open Question showing the inferred rule
User states requirements mid-iteration contradicting earlier onesLatest wins; update every section it touches, not just the nearest one
Tempted to fill a spec gap with a plausible inventionOpen Question instead

Download now (ZIP)

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.