agentleFS
K-9NineK-9Nine/skipthespec/dogfood-loop/SKILL.md

dogfood-loop

Skill0 starsChanged 5 months agoMITView on GitHub

Ship a prototype immediately to internal staff and beta customers behind a feature flag, instrument minimal usage signals, and turn real usage data + feedback into the de-facto spec. Use when the user says 'ship it internally', 'dogfood this', 'let users try it', 'roll it out behind a flag', or asks how to decide whether a feature graduates. Owns the staged rollout ladder and the promote/iterate/kill decision — with the final verdict reserved for the human (constitution §3). Pairs with prototype-first (what to ship) and eval-loops (quality gate). Load autonomous-dev first.

The file

We split this skill into the rules it gives an agent

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

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈2

    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:

    After prototype-first produces a shippable slice, or any time you need to get a flagged build in front of real users and convert their …

    line 16
  2. Distinctive:

    Use the staged ladder. Each rung has an explicit gate that must pass before the next.

    line 41
  3. Distinctive:

    Promoting on opinion: If you can't point to the adoption/helpfulness numbers, you're guessing.

    line 87

≈ “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

Dogfood Loop

Model: Anthropic's Internal launch → watch & listen → data-driven prioritization. Ship the prototype to everyone internally with no polish required, track usage religiously, and let real behavior — not opinion — guide the roadmap. "Dogfooding their own tool to build their own tool."

When to Use This Skill

After prototype-first produces a shippable slice, or any time you need to get a flagged build in front of real users and convert their behavior into the spec.

Prerequisite: autonomous-dev loaded, constitution read. The rollout ladder is also your corrigibility mechanism — every stage must be instantly killable.

The Loop

flagged prototype ──► roll out one rung ──► watch usage + feedback ──► decision
                          ▲                                              │
                          │                              promote (next rung) / iterate / kill
                          └──────────── iterate: back to prototype-first ◄┘

Step 1 — Confirm it's shippable, not polished

The bar is functionality, not polish (that's prototype-first Step 3). Confirm:

  • Core journey works on representative data.
  • It's behind a flag with a working kill switch.
  • It emits the two signals from references/ of prototype-first (adoption + helpfulness).
  • It cannot corrupt production data or cross a Hard Constraint if it breaks.

Brand it internally as a research preview so users calibrate expectations.

Step 2 — Roll out one rung at a time

Use the staged ladder. Each rung has an explicit gate that must pass before the next. Never jump straight to "default on."

StageAudienceGate to advance
0Local / dev onlyWorks on representative data?
1Internal staff (your whole team)Is the new workflow clearer/faster than the old one?
2One friendly beta customerAre the errors and confusion acceptable?
3Small controlled customer cohortAre success metrics better than baseline?
4Default onKeep kill switch briefly, then remove the flag.

Stage 1 (all internal staff) is the heart of dogfooding — your team uses it in real work and generates honest signal fast.

Step 3 — Watch & listen (usage is the spec)

Collect both streams. Detail and templates: references/feedback-synthesis.md and templates/rollout-log.md.

  • Quantitative: adoption (invoked / eligible) and helpfulness (success / invoked) from the two prototype signals. Track against the success metric and the rollback metric.
  • Qualitative: the friction channel (Slack thread, thumbs, inline report). Capture verbatim friction, not summarized sentiment.

Record everything in a rollout log so the decision is evidence-based, not vibe-based.

Step 4 — Make the data-driven decision

This is the core of the method. Apply the rule, then route:

Signal patternDecision
High usage and positive helpfulness / feedbackPromote — advance one rung (human approves the final default-on).
Low engagement or recurring friction/complaintsIterate — back to prototype-first Step 2; revise the assumptions the data invalidated.
Crosses the rollback metric, or breaks badlyKill — flip the kill switch immediately, then diagnose.

Guardrails:

  • Data over enthusiasm. A loud advocate is not adoption. Promote on the metric, not on opinion.
  • The human owns the final verdict on ultimate success and on default-on (constitution §3). You supply the evidence and a recommendation; you do not unilaterally make a feature the new default.
  • Every reported failure becomes an eval task. Hand recurring failures to eval-loops so they can't regress.

Step 5 — Close the loop

  • Promote → re-run Step 2 at the next rung; tighten evals via eval-loops before widening blast radius.
  • Iterate → prototype-first with updated assumptions.
  • Kill → write a short post-mortem of what the data showed; feed lessons back to the project boundaries.

Anti-Patterns

  • Skipping rungs. Going from internal to default-on without a customer cohort hides failure until it's expensive.
  • Polishing before shipping. Polish a feature that earned promotion, not a prototype seeking signal.
  • Promoting on opinion. If you can't point to the adoption/helpfulness numbers, you're guessing.
  • No kill switch. A rollout you can't instantly revert violates corrigibility.
  • Losing failures. Friction that isn't logged and converted to an eval task will recur.

Hand-off

End by stating: current rung, the adoption + helpfulness numbers, the decision (promote/iterate/kill), and the next skill (prototype-first to iterate, eval-loops to harden, or back to autonomous-dev).

References & Templates

  • references/feedback-synthesis.md — turning raw usage + feedback into a defensible decision and into eval tasks.
  • templates/rollout-log.md — the per-rung evidence log.

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.