{
 "id": "12.6",
 "title": "Feedback loop",
 "department": "Customer success and support",
 "department_slug": "customer-success-and-support",
 "direction": null,
 "branded": false,
 "status": "draft",
 "owner": "Param",
 "last_verified": "2026-10-26",
 "holds": "How feedback becomes a fix, and closes back",
 "urls": {
  "html": "https://handbook.joinsquareup.com/customer-success-and-support/feedback-loop",
  "markdown": "https://handbook.joinsquareup.com/customer-success-and-support/feedback-loop.md",
  "json": "https://handbook.joinsquareup.com/customer-success-and-support/feedback-loop.json"
 },
 "other_directions": [],
 "tldr": {
  "headline": "Every report becomes a fix for every brand, then a note back",
  "points": [
   {
    "icon": "chat",
    "text": "Feedback arrives from QA sheets, audits, Param's screenshots and partner emails."
   },
   {
    "icon": "gear",
    "text": "Each fix works for every brand, gets a test, and heals saved data."
   },
   {
    "icon": "warn",
    "text": "Nobody tells the partner when their fix is live, and email feedback has no tracker."
   },
   {
    "icon": "check",
    "text": "Proposed: everything lands in Next, and the owner closes back in the same thread."
   },
   {
    "icon": "heart",
    "text": "A weekly founder note could name what changed because of partners."
   }
  ],
  "stat": {
   "value": "86",
   "label": "audit findings on 20 Oct"
  },
  "decide": "Send a weekly founder note to partners during the design partnership?",
  "mood": "building"
 },
 "sources": [
  "memory fix-as-product, feed-for-all-brands, brew-qv-process, always-deploy-to-test",
  "memory brew-qa-sweep-2026-10-19, brew-qa-audit-2026-10-20, brew-qa-round2-2026-10-24, brew-jam-rca-2026-10-26",
  "memory brew-drop-learnings",
  "brew/public/app.js:1930-1931, 2538, 5693",
  "brew/public/live.js:339",
  "brew/legal-pages.js:40"
 ],
 "open_questions": [
  "Where does all feedback live? Proposal: Next, with one row per report, linked from the QA sheet and reports.",
  "Who closes back to partners? Proposal: the partner's owner from partner onboarding.",
  "Do we send a weekly founder note? Proposal: yes during the design partnership, signed by Param, naming one thing that changed because of a partner."
 ],
 "parts": {
  "Answer": "How a partner's feedback, a QA finding or Param's own test becomes a fix for every brand, and how the person who raised it hears that it is live.",
  "Today": "### Where feedback comes from\n\n| Source | How it arrives | Source |\n|---|---|---|\n| Sai's QA sheet | The Feed QA Master, Bug Tracker tab. 49 bugs fixed on 19 Oct and checked again on 20 Oct. | [src: memory brew-qa-sweep-2026-10-19] |\n| Audits by Claude sessions | Read only auditors across brands. About 86 findings on 20 Oct. | [src: memory brew-qa-audit-2026-10-20] |\n| QA reports Param approves | Round 2 report of 23 Oct, approved by section, fixed 24 Oct, re-checked on production 25 Oct night. | [src: memory brew-qa-round2-2026-10-24] |\n| Param's screenshots | Arata jam screenshots on 26 Oct led to five root causes fixed the same night. | [src: memory brew-jam-rca-2026-10-26] |\n| Partners in the product | Hiding a card or saying fewer from an agent teaches the feed. | [src: brew/public/app.js:1930-1931, 2538] |\n| Partners dropping files | Drop anything goes through learnings and can rewrite the Plays it touches. | [src: brew/public/app.js:5693; memory brew-drop-learnings] |\n| Partners by email | The Help row opens an email to hello@joinsquareup.com. Terms ask them to tell us when things break. | [src: brew/public/live.js:339; brew/legal-pages.js:40] |\n\n### The rules a fix follows\n\n- Every fix works for every brand, every card, every widget and every view, and saved data heals. [src: memory feed-for-all-brands]\n- Every bug is fixed in code, with a test or audit that would have caught it. A hand patch to one brand is only a stopgap and is said so. [src: memory fix-as-product]\n- Phased work gets an exhaustive quality and verification round after each phase, and three more before closing. [src: memory brew-qv-process]\n- After a change, deploy so Param can test on the live address. [src: memory always-deploy-to-test]\n\n### What is missing\n\n- No step tells the partner who raised it that the fix is live. Nothing in the sources records closing back.\n- Feedback by email has no tracker. QA sheets and reports live in Drive and artifacts.",
  "Tomorrow": "| Version | Tag | Item |\n|---|---|---|\n| v1 | New | One path for all feedback: it lands in Next with its source, the brand and a screenshot. |\n| v1 | New | Close back: when a partner's issue is live, the person who raised it gets a short reply from a named person. |\n| v1 | Stays | Fix as product, for every brand, with a test and a heal. |\n| v1 | New | A weekly founder note to partners that names what changed because of them, without numbers that go stale. |\n| v2 | New | A Report a problem row in the account menu that sends the screen, the brand and the card with the message. |",
  "How we do it": "1. Write the feedback into Next: who raised it, the brand, the screen, a screenshot, the date.\n2. Find the shared cause. Ask where else it happens: other brands, card kinds, widgets, views, saved data.\n3. Fix it in brew code, add a test in `test/` or an audit in `tools/`, and heal saved reads and workspaces on load.\n4. Deploy to staging, check on several brands, then promote to production with `tools/promote.sh`.\n\n   ```bash\n   cd /Users/param/Documents/ChatGPT/brew && tools/promote.sh\n   ```\n\n5. Mark it done in Next and remove it from known issues.\n6. Tell the person who raised it, in the same thread they used, that it is live.",
  "Numbers": "| Metric | Definition | Where measured | State |\n|---|---|---|---|\n| Time to fix | Days from the report to the fix live on production | Next, against git log | Proposed |\n| Closed back share | Share of partner reports where the partner was told it is live | Next | Proposed |\n| Repeat bugs | Bugs that came back on another brand after a fix | Next, tagged repeat | Proposed |\n| Feed teaching | Hides and fewer from taps per partner per week | feed state per workspace | Proposed |",
  "Open": "1. Where does all feedback live? Proposal: Next, with one row per report, linked from the QA sheet and reports.\n2. Who closes back to partners? Proposal: the partner's owner from partner onboarding.\n3. Do we send a weekly founder note? Proposal: yes during the design partnership, signed by Param, naming one thing that changed because of a partner."
 }
}