Skill Tracer
Skills › Compound Engineering › ce-dogfood › dogfood-report-template.md

dogfood-report-template.md

97 lines · skills/ce-dogfood/references/dogfood-report-template.md at 3449230

Open on GitHub

Most marks come from matching words in the file, so treat them as pointers.

1# Dogfood Report — <branch>
2
3> Diff-scoped browser QA of `<branch>` vs the trunk. Generated by `ce-dogfood` on <YYYY-MM-DD>.
4
5<!-- Use repo-relative paths throughout this doc, never absolute paths, so it stays portable. -->
6<!-- This template is the source of truth for the report's sections; build the report to this shape rather than from memory. -->
7

Dogfood Report — <branch>

Diff-scoped browser QA of <branch> vs the trunk. Generated by ce-dogfood on <YYYY-MM-DD>.

<!-- Use repo-relative paths throughout this doc, never absolute paths, so it stays portable. --> <!-- This template is the source of truth for the report's sections; build the report to this shape rather than from memory. -->

Raw lines 1 to 7
8## Diff Summary
9
10<What changed between the branch and main: new features, modified behavior, new/changed routes, views, components, data flows. 2-6 bullets.>

Diff Summary

<What changed between the branch and main: new features, modified behavior, new/changed routes, views, components, data flows. 2-6 bullets.>

Raw lines 8 to 11
12## Personas
14<The primary personas the flows were judged against, and what each cares about. Note the source: a Compound Pack rule cited as `(pack: <id>, <path within the pack>)`, STRATEGY.md or PRODUCT.md "Users" ("Who it's for" in older strategy files), VISION.md, a persona doc, or "inferred" if none existed. Resolver warnings or errors from pack discovery, and "packs unresolved" when the resolver could not run, are noted here once.>
16- **<Persona name>** — <job-to-be-done / what they care about> — <source>

Personas

<The primary personas the flows were judged against, and what each cares about. Note the source: a Compound Pack rule cited as (pack: <id>, <path within the pack>), STRATEGY.md or PRODUCT.md "Users" ("Who it's for" in older strategy files), VISION.md, a persona doc, or "inferred" if none existed. Resolver warnings or errors from pack discovery, and "packs unresolved" when the resolver could not run, are noted here once.>

  • <Persona name> — <job-to-be-done / what they care about> — <source>
Raw lines 12 to 17
18## Flows Tested
20<One Mermaid flowchart per distinct user journey the diff touches. Include happy path and branch points (validation error, empty, permission-denied), side effects (emails, jobs, notifications), and the true end state — including click-through destinations.>
22```mermaid
23flowchart TD
24 A[Entry point] --> B[User action]
25 B --> C{Branch point?}
26 C -->|No| D[Error / empty / denied state]
27 C -->|Yes| E[Result + side effects]
28 E --> F[True end state]
29```

Flows Tested

<One Mermaid flowchart per distinct user journey the diff touches. Include happy path and branch points (validation error, empty, permission-denied), side effects (emails, jobs, notifications), and the true end state — including click-through destinations.>

flowchart TD
    A[Entry point] --> B[User action]
    B --> C{Branch point?}
    C -->|No| D[Error / empty / denied state]
    C -->|Yes| E[Result + side effects]
    E --> F[True end state]
Raw lines 18 to 30
31## Test Matrix & Results
33| # | Flow | Journey / Scenario | Status | Issue | Fix | Commit |
34|---|------|--------------------|--------|-------|-----|--------|
35| 1 | | | Pass | - | - | - |
36| 2 | | | Fixed | | | abc123 |
37| 3 | | | Blocked (needs human verify) | | | - |
39Status values: `Pending`, `Pass`, `Fixed`, `Skipped`, `Blocked (needs human verify)`, `Blocked (human decision)`. Start every scenario at `Pending` so this table doubles as the resume checkpoint. `Commit` is the fix commit on a `Fixed` row and `-` otherwise.

Test Matrix & Results

#FlowJourney / ScenarioStatusIssueFixCommit
1Pass---
2Fixedabc123
3Blocked (needs human verify)-

Status values: Pending, Pass, Fixed, Skipped, Blocked (needs human verify), Blocked (human decision). Start every scenario at Pending so this table doubles as the resume checkpoint. Commit is the fix commit on a Fixed row and - otherwise.

Raw lines 31 to 40
41## Pack Compliance
43<One line per pack criterion that matched a flow in Phase 1, with its verdict: `honored`, `contradicted` (fixed `<commit>`, or escalated as a stale-rule decision below), or `not exercised` (no scenario reached it). "None" when the repo declares no packs or none matched.>
45- `(pack: <id>, <path within the pack>)` — <rule title> — <honored / contradicted (fixed `<commit>` or escalated) / not exercised> — <scenario #s>

Pack Compliance

<One line per pack criterion that matched a flow in Phase 1, with its verdict: honored, contradicted (fixed <commit>, or escalated as a stale-rule decision below), or not exercised (no scenario reached it). "None" when the repo declares no packs or none matched.>

  • (pack: <id>, <path within the pack>) — <rule title> — <honored / contradicted (fixed <commit> or escalated) / not exercised> — <scenario #s>
Raw lines 41 to 46
47## What Was Fixed
49For each issue found and fixed:

What Was Fixed

For each issue found and fixed:

Raw lines 47 to 50
51### <Short issue title> — `<commit>`
52- **Symptom:** <what the user saw / what failed in the browser>
53- **Root cause:** <why it happened>
54- **Fix:** <what changed, repo-relative file paths>
55- **Regression test:** <test added that fails before / passes after — or, for a pure copy/visual fix, the browser-replay/screenshot check used and why no automated test was meaningful>

<Short issue title> — <commit>

  • Symptom: <what the user saw / what failed in the browser>
  • Root cause: <why it happened>
  • Fix: <what changed, repo-relative file paths>
  • Regression test: <test added that fails before / passes after — or, for a pure copy/visual fix, the browser-replay/screenshot check used and why no automated test was meaningful>
Raw lines 51 to 56
57## Paper Cuts (by persona)
59<Experiential friction found while walking each flow as each persona. A scenario can `Pass` functionally and still carry paper cuts. Note the persona, severity, and whether it was fixed (sharp ones, via the Phase 5 loop) or deferred. "None" if clean.>
61- **<Persona>** — <paper cut> — <severity> — <fixed `<commit>` / deferred>

Paper Cuts (by persona)

<Experiential friction found while walking each flow as each persona. A scenario can Pass functionally and still carry paper cuts. Note the persona, severity, and whether it was fixed (sharp ones, via the Phase 5 loop) or deferred. "None" if clean.>

  • <Persona> — <paper cut> — <severity> — <fixed <commit> / deferred>
Raw lines 57 to 62
63## Console Errors
65<Any console or network errors observed, and whether they were resolved. "None" if clean.>

Console Errors

<Any console or network errors observed, and whether they were resolved. "None" if clean.>

Raw lines 63 to 66
67## Human Verifications
69<Outside-service legs (OAuth, email delivery, payments, SMS, third-party APIs) the branch changed: covered by a local stand-in, pending a person's check (say what to check), or not applicable because the branch did not touch them.>

Human Verifications

<Outside-service legs (OAuth, email delivery, payments, SMS, third-party APIs) the branch changed: covered by a local stand-in, pending a person's check (say what to check), or not applicable because the branch did not touch them.>

Raw lines 67 to 70
71## Decisions for a Human
73<Issues too big or ambiguous to fix autonomously — architectural/schema changes, product/UX trade-offs, competing solutions. One block each. The matrix marks these `Blocked (human decision)`. "None" if every issue was safely auto-fixed.>

Decisions for a Human

<Issues too big or ambiguous to fix autonomously — architectural/schema changes, product/UX trade-offs, competing solutions. One block each. The matrix marks these Blocked (human decision). "None" if every issue was safely auto-fixed.>

Raw lines 71 to 74
75### <Short title>
76- **What's broken:** <symptom / failing scenario>
77- **Why escalated:** <why it's not a safe autonomous fix — scope, risk, ambiguity, product trade-off>
78- **Options:** <option A (trade-offs) / option B (trade-offs)>
79- **Recommendation:** <the agent's suggested direction, for the human to confirm>

<Short title>

  • What's broken: <symptom / failing scenario>
  • Why escalated: <why it's not a safe autonomous fix — scope, risk, ambiguity, product trade-off>
  • Options: <option A (trade-offs) / option B (trade-offs)>
  • Recommendation: <the agent's suggested direction, for the human to confirm>
Raw lines 75 to 80
81### Stale rule: <rule title> `(pack: <id>, <path within the pack>)`
82- **What the rule says:** <quoted rule text>
83- **What the branch does instead, and why:** <the intended behavior and the evidence it is intentional — plan, PR description, commit history>
84- **Options:** refine the rule (writable pack: through `ce-compound`; git-sourced pack: upstream change and a `ref` bump) / retire it
85- **Recommendation:** <refine or retire, and the wording if refine>

Stale rule: <rule title> (pack: <id>, <path within the pack>)

  • What the rule says: <quoted rule text>
  • What the branch does instead, and why: <the intended behavior and the evidence it is intentional — plan, PR description, commit history>
  • Options: refine the rule (writable pack: through ce-compound; git-sourced pack: upstream change and a ref bump) / retire it
  • Recommendation: <refine or retire, and the wording if refine>
Raw lines 81 to 86
Names a skill ce-compound :84
87## Learnings
89<Reusable lessons worth carrying forward — patterns, gotchas, product/UX insights. Feed substantial ones to `ce-compound`.>

Learnings

<Reusable lessons worth carrying forward — patterns, gotchas, product/UX insights. Feed substantial ones to ce-compound.>

Raw lines 87 to 90
Names a skill ce-compound :89
91### Pack candidates
93<Judgments from this run that generalize beyond the branch and are prescriptive-shaped — a paper cut any screen would give a persona, a check every scenario of this kind should pass — that were not yet routed through `ce-compound` (non-interactive run, or the author deferred). One line each, with the pack it would refine when there is one. "None" when every candidate was routed or none arose.>

Pack candidates

<Judgments from this run that generalize beyond the branch and are prescriptive-shaped — a paper cut any screen would give a persona, a check every scenario of this kind should pass — that were not yet routed through ce-compound (non-interactive run, or the author deferred). One line each, with the pack it would refine when there is one. "None" when every candidate was routed or none arose.>

Raw lines 91 to 94
Names a skill ce-compound :93
95## Final Status
97<Overall readiness verdict for the branch. Ready to ship? Caveats? Outstanding blocked items? Record the result of the Phase 5 automated test suite run — a green matrix with a red suite is not "ready." Name the browsers the environment offered, the one the run used, and why. State once what the local environment replaced (seeded auth, fixture providers, simulated payments) and which claims that leaves unproven.>

Final Status

<Overall readiness verdict for the branch. Ready to ship? Caveats? Outstanding blocked items? Record the result of the Phase 5 automated test suite run — a green matrix with a red suite is not "ready." Name the browsers the environment offered, the one the run used, and why. State once what the local environment replaced (seeded auth, fixture providers, simulated payments) and which claims that leaves unproven.>

Raw lines 95 to 97