agentleFS
pedroromerolunapedroromeroluna/ai-first-product-skills/skills/prd/SKILL.md

prd

Skill5 starsChanged 26 days agoMITView on GitHub

Interview the operator and write the strategic layer of a product —vision, problem, users, scope, competitors, opportunities, open questions, glossary— into the `context/` of its node in the brain, never into the body repo. Manually triggered, last link of the discovery pipeline and the gate before specs.

125 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use context-optimize, usecase 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.
  • ibahgatSkill

    context-optimize

    Improve context efficiency and cache stability for long or complex sessions.

    Also in 3 projects that use this

  • gabriellstSkill

    usecase

    Create an application use case. Use when implementing business operations like CreateOrder, ProcessPayment, CancelBooking. Use this skill for any command/mutation that orchestrates domain logic, whether simple CRUD or complex multi-step transactions with sagas. Dispatch hub — routes to typescript/go variants by file extension.

    Also in 3 projects that use this

  • jidechaoSkill

    modern-go

    Modernize Go code by applying version-appropriate idioms and APIs (gofix-style transformations). Scans go.mod for the Go version, then transforms Go source files to use modern patterns—from Go 1.0 through 1.26+. Use when the user says "现代化","现代Go语言", "地道的", "idiomatic", "modernize", "modern-go", "update Go code", "gofix", or wants to upgrade Go idioms.

    Also in 3 projects that use this

  • ulises-jeremiasSkill

    trd

    WHAT — Draft and review a Technical Requirements Document (TRD) using the template, typically

    Also in 3 projects that use this

  • jidechaoSkill

    loop-it

    Automated issue loop with checkpoint/resume: fetch open GitHub issues → dependency-aware topological sort → implement each issue end-to-end → review with /review-it → document with /note-it → ship with /ship-it → repeat. Persists state to .loop-state.json for crash recovery. Triggers on: loop-it, loop issues, auto implement, 批量实现, 循环实现, 实现所有issue, 恢复循环, resume loop.

    Also in 3 projects that use this

  • snarktankSkill

    ralph

    Convert PRDs to prd.json format for the Ralph autonomous agent system. Use when you have an existing PRD and need to convert it to Ralph's JSON format. Triggers on: convert this prd, turn this into ralph format, create prd.json from this, ralph json.

    Also in 16 projects that use this

  • +2 more from jidechao

The file

We split this skill into the rules it gives an agent

8 rules. 0 are common, 5 are distinctive, and 3 are very specific to this project.

  • 0

    Common

    Most of the 102 edited versions we read keep these.

  • 5

    Distinctive

    This author's own choices. Worth a look.

  • 3

    Very specific

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

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    No file in this list is written into the body repo.

    line 36
  2. Distinctive:

    Before the first question:

    line 53
  3. Very specific:

    Read in full the files that context/ already has.

    line 57
  4. Very specific:

    Read the context of the owning organization and, if it exists, the dated research that applies — it lives in the research/ of the node, …

    line 59
  5. Distinctive:

    Before talking about what to build, the premise is challenged: is this the right problem?

    line 90
  6. Distinctive:

    Before fixing the solution, 2 or 3 paths are presented, each with its effort, risk and what it reuses of what already exists:

    line 102
  7. Distinctive:

    Before touching any file, the operator is shown exactly what is going to be written —the content, not a summary— and their go-ahead is …

    line 120
  8. Very specific:

    The minimums gate: if glossary.md, scope.md or the architecture of the body are left empty, no specs come out of there yet.

    line 135

“Common” is measured: kept by at least 6 in 10 of the 102 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.

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

prd — the strategic layer of a product

It interviews the operator and produces the strategic definition of a product: vision, problem, users, scope, competitors, opportunities, open questions and glossary. It is the entry door to the method — out of this layer come the specs.

It always writes into the context/ of the loaded product node of the brain, never into the body repo. The repo declared in repo: of the node's head is the body: specs, technical decisions, as-built. The strategic layer lives in the head, not in the body.

The interview applies pressure with the method of .agents/skills/grill/SKILL.md#method: it is cited by that heading, never copied. Any change to the method happens there, once.

The files it produces

They go into context/ of the loaded product node. If the node has no context/ yet, it is born with README.md first and the rest as the interview gets completed.

FileWhat it answers
README.mdIndex: what the product is, in what order each file was filled, its state
vision.mdThe finished system, where it gets to
problem.mdWhat problem it solves, for whom, why now, how you know whether it worked
users.mdWho it sells to, what they use instead today
scope.mdWhat it does NOT do, who it does NOT sell to, hard constraints, what goes into the first version
competitors.mdWhat it competes against and how it differs
opportunities.mdWhat might be worth it and has not been decided
open-questions.mdWhat is left to decide — live, it empties out as things close; the questions sit inside its [!QUESTION] callout
glossary.mdThe terms of the domain

No file in this list is written into the body repo. If completing a section forced touching the body repo or a resolver, the tool does not do it: it says so and stops — that is a stopping condition of the spec that brought it, not a decision of this session.

Without a product node, these eight generic filenames do not land loose in whatever folder the session started in, where they could overwrite files the user already had: they go into a product-context/ folder of the current folder instead — product-context/vision.md, product-context/problem.md, product-context/users.md, product-context/scope.md, product-context/competitors.md, product-context/opportunities.md, product-context/open-questions.md, product-context/glossary.md. With a product node loaded, the destination stays context/ exactly as above, unchanged.

The KPI tree does not go here: it belongs to another tool's metric brief; this skill references it if it already exists, it does not produce it.

Phase 1 — Read what the brain already knows before asking

Before the first question:

  1. Identify the loaded product node and its context/ — if it does not exist, it is created with this interview.
  2. Read in full the files that context/ already has. This is incremental: it is completed in stages and a filled section is never overwritten without saying so first.
  3. Read the context of the owning organization and, if it exists, the dated research that applies — it lives in the research/ of the node, next to context/.
  4. Tell the operator what you read and which sections you can already fill on your own with that. Only then does the interview start, and only over what is missing — you do not ask them what the system already has written.

Phase 2 — The interview

The questions come in rounds, as .agents/skills/grill/SKILL.md#method defines them, each with a line about why that section changes a decision. Without that line the question sounds like bureaucracy.

The six questions that force the truth

Opportunity and business stage, before touching the solution:

  1. What is the strongest evidence that someone wants this? Not interest: behavior.
  2. What do they solve it with today? If the answer is "with nothing", why do they live fine without this?
  3. Name me a concrete person. Their job title, and what happens to them if they do not solve it.
  4. What is the smallest version someone would pay for this week?
  5. What surprised you watching someone use it or try to solve it?
  6. In three years, does this become more necessary or less?

Research stage

Conclusions are not invented: if no research has been done, that is said and the matching discovery tool is offered. Questions cover the segment, the explicit non-target, and the alternatives the operator already uses today.

Solution stage

Before talking about what to build, the premise is challenged: is this the right problem? what happens if nothing is done? is there something already built that would do? Only then: vision, slicing, what it does NOT do with its reactivation condition, hard constraints, assumptions with their invalidation condition.

How to apply pressure

The method of .agents/skills/grill/SKILL.md#method decides when to counter-question, how many rounds, and what to do with the second resistance. It is not repeated here: it is applied.

Alternatives phase, mandatory

Before fixing the solution, 2 or 3 paths are presented, each with its effort, risk and what it reuses of what already exists:

  • the smallest shippable one — the smallest version that can be launched this week,
  • the one that ages best — the one that demands the least rework if the product grows,
  • a lateral one that reframes the problem — a way out that is not "more of the same, smaller".

The operator picks one. Without this phase the document records the first idea, not the best one.

The explicit-gap rule

A gap is written only when the operator explicitly decides not to answer, and always with who closes it. A file full of gaps is not a deliverable: it is a failure dressed up as completeness. If a gap appears because the section was never asked about, it is not a gap: it is work not done, and the interview resumes.

Show before writing

Before touching any file, the operator is shown exactly what is going to be written —the content, not a summary— and their go-ahead is awaited. Only the files the interview touched get written; the ones that were already complete are not overwritten. A glossary term the operator accepted with "yes" in a round was already shown with its exact text: it is written then, as the method says, and is not shown again.

The closing verdict

At the end, one of three, always explicit:

  • Complete — enough to write specs.
  • Complete with reservations — it is possible to move forward, and these are the open questions that remain.
  • Missing context — which file was left unclosed and what it takes to close it.

The minimums gate: if glossary.md, scope.md or the architecture of the body are left empty, no specs come out of there yet. It is said explicitly, never left to be discovered later.

Destination

The skill resolves the destination before producing the deliverable, never after. Three cases, two destinations:

  • A product node is loaded: the deliverable goes to research/<YYYY-MM-DD>-<name>.md of that node.
  • There is a brain, but no product node — no workspace yet, or a workspace without one: the deliverable is written to a file in the current folder.
  • There is no brain at all: the deliverable is written to a file in the current folder.

With no product node, the file is written to the current folder anyway. The closing message names only the path it just wrote and stops there — that is the normal way this skill ends, not an anomaly to qualify.

This skill never asks which destination to use, and it never invents a third one.

The rest of the pack installs one skill at a time. Look at .agents/skills/ first and then .claude/skills/ (a skill present in both counts once) and offer only the ones that are not there — once per session: the first time this skill closes in the session, never again on a later close of the same or another deliverable:

  • grill — npx skills add pedroromeroluna/ai-first-product-skills --skill grill

The whole pack at once: npx skills add pedroromeroluna/ai-first-product-skills. That command installs what the pack offers; anything listed above it is installed by naming it.

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.