agentleFS
JakeschincariolJakeschincariol/whale-skill/requirements/SKILL.md

requirements

Skill15 starsChanged 6 days agoMITView on GitHub

Requirements. Turns what paying customers asked for into the build list. Captures each ask in their own words with the feature it becomes, merges the same feature across customers, and ranks the list by how much paid money is behind each line, so you build exactly what was paid for and nothing else. Asks from people who haven't paid wait on a separate list. Logs each customer confirming the list, and marks features done. Use when the user says "what should I build", "requirements", "build list", "they asked for", "what did they want", "scope", "spec", "feature requests", or right after a customer pays.

16 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use architecture and agent-browser.

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.
  • AnthropicSkill

    architecture

    Create or evaluate an architecture decision record (ADR). Use when choosing between technologies (e.g., Kafka vs SQS), documenting a design decision with trade-offs and consequences, reviewing a system design proposal, or designing a new component from requirements and constraints.

    Also in 8 projects that use this

  • VercelSkill

    agent-browser

    Automates browser interactions for web testing, form filling, screenshots, and data extraction. Use when the user needs to navigate websites, interact with web pages, fill forms, take screenshots, test web applications, or extract information from web pages.

    Also in 3 projects that use this

The file

We split this skill into the rules it gives an agent

6 rules. 0 are common, 5 are distinctive, and 1 is very specific to this project.

  • 0

    Common

    Most of the 12 edited versions we read keep these.

  • 5

    Distinctive

    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:

    Say no when it's a no: If an ask can't be built by the promised date, tell the customer now and agree what happens.

    line 40
  2. Distinctive:

    One customer, small money, big job: ask if it's a must-have before the ship date, or can come after.

    line 47
  3. Distinctive:

    Never adds a feature nobody asked for, and never puts words in a customer's mouth.

    line 60
  4. Distinctive:

    Never logs a confirmation they didn't give.

    line 61
  5. Distinctive:

    Never drops a paid-for feature without telling the customer.

    line 62
  6. Distinctive:

    Never invent a number, a result, a client or a deadline.

    line 69

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

requirements

Most products fail because the founder guessed. Here nobody guesses: every line traces back to a company that paid and said what they need. That list is the product.

${CLAUDE_SKILL_DIR} below is this skill's folder (where this SKILL.md lives).

python3 "${CLAUDE_SKILL_DIR}/reqs.py" add --deal north-pier --ask "Sync with QuickBooks" --feature "QuickBooks sync"
python3 "${CLAUDE_SKILL_DIR}/reqs.py" list --deal north-pier
python3 "${CLAUDE_SKILL_DIR}/reqs.py" build
python3 "${CLAUDE_SKILL_DIR}/reqs.py" confirm --deal north-pier --said "Yes, that's what we need." --at 2026-11-04
python3 "${CLAUDE_SKILL_DIR}/reqs.py" done --feature "QuickBooks sync" --at 2026-11-20

Steps

  1. Ask right after they pay. While it's fresh, on a call or by email. Three questions do most of it:
    • "Walk me through what happens today, from the invoice going late to the money coming in."
    • "What would have to be true for you to cancel what you pay for now?"
    • "What else has to work with this?"
  2. Write down their words. reqs.py add --ask is what they said, close to word for word. --feature is what it becomes. Same feature, same name: that's how asks merge across customers.
  3. Build the list. reqs.py build writes whale/requirements.md: features by the paid money behind them, each with who asked and how they said it. What someone who hasn't paid asked for goes under Later.
  4. Send it back to them. Show the user the customer's own list, then "Send this to Renee to confirm? Reply yes or no." Their reply goes in with reqs.py confirm --said "<their words>". This is your scope in writing, and it protects you both.
  5. Say no when it's a no. If an ask can't be built by the promised date, tell the customer now and agree what happens. Move the date only with their yes (/pre-sale new-date), or refund them. Never quietly drop it.
  6. Build. Claude can start on the list. reqs.py done marks each feature, for everyone who asked. /launch-planner tracks the dates.

Reading the list

  • Top of the list: several customers asked, or one big one did. Build it first.
  • One customer, small money, big job: ask if it's a must-have before the ship date, or can come after.
  • Under Later: a real signal, not a commitment. Ask if they would pay for it.
  • Nobody asked: it isn't on the list, however good the idea is. Build that after they have what they paid for.

Example from the reel

North Pier's requirements, ask to feature: "Text the customer first, then email" to Text + email sequence. "Sync with QuickBooks" to QuickBooks sync. "Escalate after 30 days" to Auto-escalation at 30 days. "Weekly report to the CFO" to Monday CFO report. On the example board, Saltmarsh and Copperline ask for some of the same, so QuickBooks sync has $42,000 behind it and goes first. (Illustrative: every company and ask is fictional. QuickBooks is a real product, and using its name here implies no connection to it.)

What it never does

  • Never adds a feature nobody asked for, and never puts words in a customer's mouth.
  • Never logs a confirmation they didn't give.
  • Never drops a paid-for feature without telling the customer.

Consent and truth

  • Nothing is sent, built or promised without the user's explicit yes for that exact message. Claude drafts, the user says "yes", then it goes out from the user's own accounts. One yes per message. Never "yes to all".
  • A customer's requirements are private to that customer. Never show one customer's list or name to another without their okay.
  • Never invent a number, a result, a client or a deadline.

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.