PageSourceSearch

https://foreloop.com/docs/getting-work-done

html foreloop.com collected 2026-10-05 06:31:42 UTC 32,784 bytes, 28 lines download raw bytes

1<!DOCTYPE html><html lang="en" data-theme="dark"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/chunks/21r3trn7v2x7e.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/chunks/0ttu9yok53huf.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/chunks/3pm0sn5vly2rp.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/chunks/1ya8t5ae1p-kl.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/chunks/06pfknolc7-42.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/chunks/3w_oc5_m3-fhh.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/chunks/2t3hy3sx2tosf.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/chunks/1m97f8tay_9xf.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/chunks/2bjtoxig_uc_n.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/24j_b2t7va1gh.js"/>
1<script src="/_next/static/chunks/0vh7k11yv_ng9.js" async=""></script>
1<script src="/_next/static/chunks/2nr29le9_k1ty.js" async=""></script>
1<script src="/_next/static/chunks/11rme8yb9h1vf.js" async=""></script>
1<script src="/_next/static/chunks/turbopack-2ri9wm7ybzds6.js" async=""></script>
1<script src="/_next/static/chunks/32bv152isbzb4.js" async=""></script>
1<script src="/_next/static/chunks/0d58bdqv03pk7.js" async=""></script>
1<script src="/_next/static/chunks/39e1bns_ha1u5.js" async=""></script>
1<script src="/_next/static/chunks/0j-4_jrdmm3ax.js" async=""></script>
1<script src="/_next/static/chunks/3ggzz9a_uirbu.js" async=""></script>
1<title>Getting work done · Foreloop Documentation</title><meta name="description" content="From something you want to a pull request you can merge."/><link rel="shortcut icon" href="/favicon.ico"/><link rel="icon" href="/icon.svg"/>
1<script>(function(){try{var k="app.theme",l="storyloop.theme";var t=window.localStorage.getItem(k);if(t===null){t=window.localStorage.getItem(l);if(t!==null){try{window.localStorage.setItem(k,t);window.localStorage.removeItem(l);}catch(_e){}}}if(["light","dark","midnight"].indexOf(t)<0)t="dark";var e=document.documentElement;e.dataset.theme=t;e.style.colorScheme=t==='light'?'light':'dark';}catch(_){}})();</script>
1<script src="/_next/static/chunks/0cz1d0mv5g_q7.js" noModule=""></script>
1</head><body><div hidden=""><!--$--><!--/$--></div><div class="um-appshell dc-appshell" data-theme="dark"><div class="um-appshell__backdrop" aria-hidden="true"><canvas class="cg-canvas um-appshell__field" aria-hidden="true" data-ready="false"></canvas></div><aside class="um-appshell__rail" aria-label="Documentation navigation" data-theme="dark"><div class="um-sidenav dc-rail"><div class="um-sidenav__brand dc-rail-brand"><a class="dc-rail-mark" href="/"><svg width="22" height="22" fill="currentColor" stroke="none" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 751 664"><path d="M180 204.194H296.57V219.624C296.57 230.804 299.483 241.047 305.31 250.354C310.763 259.074 318.07 265.881 327.23 270.774C336.39 275.674 346.11 277.967 356.39 277.654C367.37 277.327 377.507 274.057 386.8 267.844L442.13 230.844C443.503 238.711 446.353 246.101 450.68 253.014C456.607 262.481 464.543 269.871 474.49 275.184C484.443 280.504 495.003 282.997 506.17 282.664C518.09 282.304 529.1 278.747 539.2 271.994L611.87 223.414C619.957 233.001 624 244.261 624 257.194V403.194C624 417.827 618.827 430.32 608.48 440.674C598.127 451.02 585.633 456.194 571 456.194H180C165.367 456.194 152.873 451.02 142.52 440.674C132.173 430.32 127 417.827 127 403.194V257.194C127 242.561 132.173 230.067 142.52 219.714C152.873 209.367 165.367 204.194 180 204.194Z" fill="var(--neutral-400)" opacity="0.5"></path><path d="M722.101 182.965C727.303 179.487 734.398 181.352 736.84 187.114C746.28 209.434 751 232.794 751 257.194V403.194C751 427.594 746.28 450.954 736.84 473.274C727.727 494.814 714.873 513.88 698.28 530.474C681.687 547.067 662.62 559.92 641.08 569.034C618.76 578.474 595.4 583.194 571 583.194H224C216.82 583.194 211 589.014 211 596.194V650.044C211 661.444 197.37 667.324 189.08 659.494L55.78 533.644C55.26 533.154 54.79 532.644 54.38 532.114C53.8267 531.567 53.2733 531.02 52.72 530.474C51.1102 528.864 49.5358 527.231 47.9967 525.575C40.8404 517.875 46.7595 506.194 57.2716 506.194H571C572.24 506.194 573.477 506.174 574.71 506.134C587.35 505.694 599.473 503.02 611.08 498.114C622.053 493.474 631.917 487.124 640.67 479.064C641.737 478.077 642.79 477.064 643.83 476.024C644.87 474.984 645.883 473.93 646.87 472.864C654.93 464.11 661.28 454.247 665.92 443.274C670.973 431.334 673.657 418.844 673.97 405.804C673.99 404.937 674 404.067 674 403.194V257.194C674 255.954 673.98 254.717 673.94 253.484C673.656 245.34 672.446 237.413 670.31 229.701C668.681 223.821 670.623 217.379 675.695 213.987L722.101 182.965ZM180 77.1936H328.57C335.75 77.1936 341.57 71.3733 341.57 64.1936V13.1436C341.57 7.9503 343.86 4.13028 348.44 1.68361C353.02 -0.763056 357.47 -0.543052 361.79 2.34361L516.22 105.574C520.067 108.147 521.99 111.75 521.99 116.384C521.99 121.017 520.067 124.62 516.22 127.194L361.79 230.434C357.47 233.32 353.02 233.537 348.44 231.084C343.86 228.637 341.57 224.817 341.57 219.624V167.194C341.57 160.014 335.75 154.194 328.57 154.194H180C179.127 154.194 178.253 154.204 177.38 154.224C164.347 154.537 151.86 157.22 139.92 162.274C128.58 167.067 118.427 173.69 109.46 182.144C108.687 182.87 107.923 183.61 107.17 184.364C106.423 185.104 105.693 185.854 104.98 186.614C96.5133 195.594 89.88 205.76 85.08 217.114C80.1667 228.72 77.4933 240.85 77.06 253.504C77.02 254.73 77 255.96 77 257.194V403.194C77 404.307 77.0167 405.417 77.05 406.524C77.1135 408.574 77.2357 410.611 77.4167 412.634C78.1752 421.112 71.9759 429.194 63.4636 429.194H13.1049C6.63975 429.194 1.10589 424.445 0.588845 418C0.196281 413.107 0 408.172 0 403.194V257.194C0 232.794 4.72 209.434 14.16 187.114C23.2733 165.574 36.1267 146.507 52.72 129.914C69.3133 113.32 88.38 100.467 109.92 91.3536C132.24 81.9136 155.6 77.1936 180 77.1936ZM665.83 105.574C669.683 108.154 671.61 111.757 671.61 116.384C671.61 121.017 669.683 124.62 665.83 127.194L511.41 230.434C507.09 233.32 502.64 233.537 498.06 231.084C493.473 228.637 491.18 224.817 491.18 219.624V178.541C491.18 174.2 493.347 170.145 496.956 167.733L529 146.314C534.18 142.854 538.177 138.394 540.99 132.934C543.657 127.76 544.99 122.244 544.99 116.384C544.99 110.524 543.657 105.007 540.99 99.8336C538.177 94.3803 534.18 89.9203 529 86.4536L496.956 65.0343C493.347 62.622 491.18 58.5674 491.18 54.2264V13.1436C491.18 7.9503 493.473 4.13028 498.06 1.68361C502.64 -0.763056 507.09 -0.543052 511.41 2.34361L665.83 105.574Z"></path></svg><span>Foreloop</span></a><a class="um-btn um-btn--secondary um-btn--sm dc-rail-signin" href="/home">Sign in</a></div><div class="um-sidenav__scroll"><a class="dc-rail-title" href="/docs">Documentation</a><div><a class="um-navlink" href="/docs/quick-start"><span class="um-navlink__label">Quick start</span></a><a class="um-navlink" aria-current="page" href="/docs/getting-work-done"><span class="um-navlink__label">Getting work done</span></a><a class="um-navlink" href="/docs/collecting-user-feedback"><span class="um-navlink__label">Collecting user feedback</span></a><a class="um-navlink" href="/docs/working-with-agents"><span class="um-navlink__label">Working with agents</span></a></div></div></div></aside><div class="um-appshell__work"><div class="um-appshell__stage"><div class="um-appshell__canvas dc-canvas" data-theme="dark"><div class="um-workarea"><section class="main dc-main"><header class="dc-header"><div class="dc-header-copy"><p class="dc-kicker">Foreloop</p><h1 class="um-pagetitle__title dc-title" id="dc-page-title">Getting work done</h1><p>From something you want to a pull request you can merge.</p></div></header><div class="scroller dc-body"><div class="dc-shell"><main class="dc-content dc-article" aria-labelledby="dc-page-title"><article><section class="dc-doc-section"><div class="dc-doc-section-head"><h3>Intentions and deliverables</h3></div><p>An intention records why a change matters and the full list of deliverables needed to call it done. Deliverables are editable markdown descriptions of expected behavior. They can stay concise while the team learns what it is building.</p><p>The branch groups a selected set of deliverables. It becomes a pull request when one is opened. The group is a handoff and review boundary; it does not own a second set of requirements.</p></section><section class="dc-doc-section"><div class="dc-doc-section-head"><h3>The brief</h3></div><p>Copy the agreed intention and selected deliverables into your coding agent or normal development process. A brief supplies purpose and scope without requiring a separate implementation planning pass.</p></section><section class="dc-doc-section"><div class="dc-doc-section-head"><h3>Review and delivery</h3></div><p>The PR review compares the selected promises with code at the reviewed head and base. The app and GitHub use the same stored assessment, findings and score. A changed head or accepted promise makes old evidence stale.</p><p>Intention status combines its deliverables across PRs. A merged PR with missing behavior remains unfinished. A source-reviewed deliverable in a merged PR is delivered in code; runtime verification and live deployment are separate facts.</p><p>Stories remain the accepted product promises. Review observations can reveal regressions or incomplete coverage, but do not silently rewrite those promises to match the implementation.</p></section></article><details class="dc-markdown-source"><summary>Markdown source <svg width="13" height="13" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 16 16"><path d="M4 6l4 4 4-4"></path></svg></summary><pre># Getting work done
2
3From something you want to a pull request you can merge.
4
5MCP use: Use this page when someone wants to know how work flows through Foreloop, from a request to a merged change.
6
7Related routes:
8- `/intentions`
9- `/tasks`
10
11## Intentions and deliverables
12
13An intention records why a change matters and the full list of deliverables needed to call it done. Deliverables are editable markdown descriptions of expected behavior. They can stay concise while the team learns what it is building.
14
15The branch groups a selected set of deliverables. It becomes a pull request when one is opened. The group is a handoff and review boundary; it does not own a second set of requirements.
16
17## The brief
18
19Copy the agreed intention and selected deliverables into your coding agent or normal development process. A brief supplies purpose and scope without requiring a separate implementation planning pass.
20
21## Review and delivery
22
23The PR review compares the selected promises with code at the reviewed head and base. The app and GitHub use the same stored assessment, findings and score. A changed head or accepted promise makes old evidence stale.
24
25Intention status combines its deliverables across PRs. A merged PR with missing behavior remains unfinished. A source-reviewed deliverable in a merged PR is delivered in code; runtime verification and live deployment are separate facts.
26
27Stories remain the accepted product promises. Review observations can reveal regressions or incomplete coverage, but do not silently rewrite those promises to match the implementation.
28</pre></details></main></div></div></section><!--$--><!--/$--></div></div></div></div></div>
28<script src="/_next/static/chunks/24j_b2t7va1gh.js" id="_R_" async=""></script>
28<script>(self.__next_f=self.__next_f||[]).push([0])</script>
28<script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[5625,[\"/_next/static/chunks/32bv152isbzb4.js\"],\"ThemeProvider\"]\n3:I[39756,[\"/_next/static/chunks/32bv152isbzb4.js\"],\"default\"]\n4:I[37457,[\"/_next/static/chunks/32bv152isbzb4.js\"],\"default\"]\n5:I[27810,[\"/_next/static/chunks/32bv152isbzb4.js\"],\"DevFeedback\"]\n8:I[97367,[\"/_next/static/chunks/32bv152isbzb4.js\"],\"OutletBoundary\"]\nc:I[46900,[\"/_next/static/chunks/32bv152isbzb4.js\"],\"default\",1]\n:HL[\"/_next/static/chunks/21r3trn7v2x7e.css\",\"style\"]\n:HL[\"/_next/static/chunks/0ttu9yok53huf.css\",\"style\"]\n:HL[\"/_next/static/chunks/3pm0sn5vly2rp.css\",\"style\"]\n:HL[\"/_next/static/chunks/1ya8t5ae1p-kl.css\",\"style\"]\n:HL[\"/_next/static/chunks/06pfknolc7-42.css\",\"style\"]\n:HL[\"/_next/static/chunks/3w_oc5_m3-fhh.css\",\"style\"]\n:HL[\"/_next/static/chunks/2t3hy3sx2tosf.css\",\"style\"]\n:HL[\"/_next/static/chunks/1m97f8tay_9xf.css\",\"style\"]\n:HL[\"/_next/static/chunks/2bjtoxig_uc_n.css\",\"style\"]\na:X\n0:{\"P\":null,\"c\":[\"\",\"docs\",\"getting-work-done\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"(docs)\",{\"children\":[\"docs\",{\"children\":[[\"slug\",\"getting-work-done\",\"d\",[]],{\"children\":[\"__PAGE__\",{},\"$undefined\",\"$undefined\",4096]},\"$undefined\",\"$undefined\",4096]},\"$undefined\",\"$undefined\",4096]},\"$undefined\",\"$undefined\",4096]},\"$undefined\",\"$undefined\",4112],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/21r3trn7v2x7e.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0ttu9yok53huf.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/32bv152isbzb4.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"data-theme\":\"dark\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"(function(){try{var k=\\\"a
28pp.theme\\\",l=\\\"storyloop.theme\\\";var t=window.localStorage.getItem(k);if(t===null){t=window.localStorage.getItem(l);if(t!==null){try{window.localStorage.setItem(k,t);window.localStorage.removeItem(l);}catch(_e){}}}if([\\\"light\\\",\\\"dark\\\",\\\"midnight\\\"].indexOf(t)\u003c0)t=\\\"dark\\\";var e=document.documentElement;e.dataset.theme=t;e.style.colorScheme=t==='light'?'light':'dark';}catch(_){}})();\"}}]}],[\"$\",\"body\",null,{\"children\":[[\"$\",\"$L2\",null,{\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}],[\"$\",\"$L5\",null,{}]]}]]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/3pm0sn5vly2rp.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/1ya8t5ae1p-kl.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/0d58bdqv03pk7.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/39e1bns_ha1u5.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-2\",{\"src\":\"/_next/static/chunks/0j-4_jrdmm3ax.js\",\"async\":true,\"nonce\":\"$undefined\"}]],\"$L6\"]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[\"$L7\",[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/06pfknolc7-42.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/3w_oc5_m3-fhh.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"2\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/2t3hy3sx2tosf.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"3\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/1m97f8tay_9xf.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"4\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/2bjtoxig_uc_n.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/3ggzz9a_uirbu.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"$L8\",null,{\"children\":\"$L9\"}]]}],{}
28,null,false,null]},null,false,\"$a\"]},null,false,\"$a\"]},null,false,null]},null,false,null],\"$Lb\",false]],\"m\":\"$undefined\",\"G\":[\"$c\",[\"$Ld\",\"$Le\"]],\"S\":false,\"h\":null,\"r\":\"$undefined\",\"s\":\"$undefined\",\"a\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"uNuMhle1_D3eJejidY20r\"}\nf:\"$Sreact.suspense\"\n11:I[97367,[\"/_next/static/chunks/32bv152isbzb4.js\"],\"ViewportBoundary\"]\n13:I[97367,[\"/_next/static/chunks/32bv152isbzb4.js\"],\"MetadataBoundary\"]\n9:[\"$\",\"$f\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@10\"}]\nb:[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L11\",null,{\"children\":\"$L12\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L13\",null,{\"children\":[\"$\",\"$f\",null,{\"name\":\"Next.Metadata\",\"children\":\"$L14\"}]}]}],null]}]\nd:[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/21r3trn7v2x7e.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]\ne:[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0ttu9yok53huf.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]\n15:I[44863,[\"/_next/static/chunks/32bv152isbzb4.js\",\"/_next/static/chunks/0d58bdqv03pk7.js\",\"/_next/static/chunks/39e1bns_ha1u5.js\",\"/_next/static/chunks/0j-4_jrdmm3ax.js\"],\"DocsSession\"]\n16:I[19414,[\"/_next/static/chunks/32bv152isbzb4.js\",\"/_next/static/chunks/0d58bdqv03pk7.js\",\"/_next/static/chunks/39e1bns_ha1u5.js\",\"/_next/static/chunks/0j-4_jrdmm3ax.js\"],\"ComplexGradient\"]\n18:I[48536,[\"/_next/static/chunks/32bv152isbzb4.js\",\"/_next/static/chunks/0d58bdqv03pk7.js\",\"/_next/static/chunks/39e1bns_ha1u5.js\",\"/_next/static/chunks/0j-4_jrdmm3ax.js\"],\"DocsRail\"]\na:C\n17:T8aa,/**\n * Complex Gradient Fragment Shader\n * Generated by Complex Studio\n *\n * Mode: meromorphic\n * Date: 2026-07-31T23:33:57.912Z\n *\n * This shader is compatible with Shadertoy (with minor modifications)\n * and can be adapted for use in WebGL applications.\n */\n\n#version 300 es\nprecision highp float;\n\nuniform vec2 iResolution;\nuniform float iTime;\n\nout vec4 fragColor;\n\n#define PI 3.141592653589793\n\n// Complex Gradient - Meromorphic Mode\n// Formula: Im(log(Σ(a_k * z^k) / Σ(b_k * z^k)))\n\n// Quilez cosine palette\n// color = a + b * cos(2π * (c * t + d))\nvec3 palette_a = vec3(0.250, 0.000, 0.500);\nvec3 palette_b = vec3(0.444, 0.400, 0.400);\nvec3 palette_c = vec3(0.850, 0.950, 0.800);\nvec3 palette_d = vec3(1.300, 0.350, 0.350);\n\n// Polynomial coefficients (complex numbers)\n// Numerator: a[0] + a[1]*z + a[2]*z² + ...\nvec2 a[4] = vec2[4](\n  vec2(1.210, -0.916),\n  vec2(-0.501, 0.466),\n  vec2(-0.941, 0.303),\n  vec2(3.651, 0.269)\n);\n\n// Denominator: b[0] + b[1]*z + b[2]*z² + ...\nvec2 b[2] = vec2[2](\n  vec2(0.738, -0.936),\n  vec2(-0.541, -0.876)\n);\n\n// Display settings\nfloat opacity = 1.00;\nfloat zoom = 2.00;\n\n// Animation\nbool animate = false;\nfloat speed = 0.50;\nint pattern = 1; // rotate\n\n// === Core Functions ===\n\nvec2 cx_mul(vec2 a, vec2 b) {\n  return vec2(a.x*b.x - a.y*b.y, a.x*b.y + a.y*b.x);\n}\n\nvec2 cx_div(vec2 a, vec2 b) {\n  float denom = dot(b, b);\n  return vec2(dot(a, b), a.y*b.x - a.x*b.y) / denom;\n}\n\nvec2 cx_pow(vec2 z, int n) {\n  vec2 result = vec2(1.0, 0.0);\n  for (int i = 0; i \u003c n; i++) result = cx_mul(result, z);\n  return result;\n}\n\nvec2 cx_log(vec2 z) {\n  return vec2(log(length(z)), atan(z.y, z.x));\n}\n\nvec3 palette(float t) {\n  return palette_a + palette_b * cos(6.283185 * (palette_c * t + palette_d));\n}\n\nvoid mainImage(out vec4 fragColor, in vec2 fragCoord) {\n  vec2 uv = (fragCoord - 0.5 * iResolution.xy) / iResolution.y;\n  vec2 z = uv * zoom;\n\n  // Evaluate polynomials\n  vec2 polyA = vec2(0.0), polyB = vec2(0.0);\n  for (int k = 0; k \u003c 4; k++) polyA += cx_mul(a[k], cx_pow(z, k));\n  for (int k = 0; k \u003c 2; k++) polyB += cx_mul(b[k], cx_pow(z, k));\n\n  float theta = cx_log(cx_div(polyA, polyB)).y / 3.141592;\n\n  vec3 col = palette(theta);\n  fragColor = vec4(col, opacity);\n}6:[\"$\",\"$L15\",null,{\"signedIn\":false,\"authEnabled\":true,\"children\":[\"$\",\"div\",null,{\"className\":\"um-appshell dc-appshell\",\"data-theme\":\"dark\",\"children\":[[\"$\",\"div\",null,{\"className\":\"um-appshell__backdrop\",\"aria-hidden\":\"true\",\"children\":[\"$\",\"$L16\",null,{\"field\":\"$17\",\"className\":\"um-appshell__field\"}]}],[\"$\",\"aside\",null,{\"className\":\"um-appshell__rail\",\"aria-label\":\"Documentation navigation\",\"data-theme\":\"dark\",\"children\":[\"$\",\"$L18\",null,{\"groups\":[{\"category\":\"Foreloop\",\"pages\":[{\"slug\":\"quick-start\",\"title\":\"Quick start\"},{\"slug\":\"getting-work-done\",\"title\":\"Getting work done\"},{\"slug\":\"collecting-user-feedback\",\"title\":\"Collecting user feedback\"},{\"slug\":\"working-with-agents\",\"title\":\"Working with agents\"}]}],\"signedIn\":false}]}],[\"$\",\"div\",null,{\"className\":\"um-appshell__work\",\"children\":[\"$\",\"div\",null,{\"className\":\"um-appshell__stage\",\"children\":[\"$\",\"div\",null,{\"className\":\"um-appshell__canvas dc-canvas\",\"data-theme\":\"dark\",\"children\":[\"$\",\"div\",null,{\"className\":\"um-workarea\",\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:0:props:children:props:notFound:0:1:props:style\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],\"$L19\",\"$L1a\"]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]}]}]]}]}]\n19:[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:0:props:children:props:notFound:0:1:props:children:props:children:1:props:style\",\"children\":404}]\n1a:[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:0:props:children:props:notFound:0:1:props:children:props:children:2:props:style\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:0:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style\",\"children\":\"This page could not be found.\"}]}]\n7:[\"$\",\"section\",null,{\"className\":\"main dc-main\",\"children\":[[\"$\",\"header\",null,{\"className\":\"dc-header\",\"children\":[\"$\",\"div\",null,{\"className\":\"dc-header-copy\",\"children\":[[\"$\",\"p\",null,{\"className\":\"dc-kicker\",\"children\":\"Foreloop\"}],[\"$\",\"h1\",null,{\"className\":\"um-pagetitle__title dc-title\",\"id\":\"dc-page-title\",\"children\":\"Getting work done\"}],[\"$\",\"p\",null,{\"children\":\"From something you want to a pull request you can merge.\"}]]}]}],[\"$\",\"div\",null,{\"className\":\"scroller dc-body\",\"children\":[\"$\",\"div\",null,{\"className\":\"dc-shell\",\"children\":[\"$\",\"main\",null,{\"className\":\"dc-content dc-article\",\"aria-labelledby\":\"dc-page-title\",\"children\":[[\"$\",\"article\",null,{\"children\":[[\"$\",\"section\",\"Intentions and deliverables\",{\"className\":\"dc-doc-section\",\"id\":\"$undefined\",\"children\":[[\"$\",\"div\",null,{\"className\":\"dc-doc-section-head\",\"children\":[[\"$\",\"h3\",null,{\"children\":\"Intentions and deliverables\"}],null]}],[[\"$\",\"p\",\"An intention records why a change matters and the full list of deliverables needed to call it done. Deliverables are editable markdown descriptions of expected behavior. They can stay concise while the team learns what it is building.\",{\"children\":\"An intention records why a change matters and the full list of deliverables needed to call it done. Deliverables are editable markdown descriptions of expected behavior. They can stay concise while the team learns what it is building.\"}],[\"$\",\"p\",\"The branch groups a selected set of deliverables. It becomes a pull request when one is opened. The group is a handoff and review boundary; it does not own a second set of requirements.\",{\"children\":\"The branch groups a selected set of deliverables. It becomes a pull request when one is opened. The group is a handoff and review boundary; it does not own a second set of requirements.\"}]],null,null]}],[\"$\",\"section\",\"The brief\",{\"className\":\"dc-doc-section\",\"id\":\"$undefined\",\"children\":[[\"$\",\"div\",null,{\"className\":\"dc-doc-section-head\",\"children\":[[\"$\",\"h3\",null,{\"children\":\"The brief\"}],null]}],[[\"$\",\"p\",\"Copy the agreed intention and selected deliverables into your coding agent or normal development process. A brief supplies purpose and scope without requiring a separate implementation planning pass.\",{\"children\":\"Copy the agreed intention and selected deliverables into your coding agent or normal development process. A brief supplies purpose and scope without requiring a separate implementation planning pass.\"}]],null,null]}],[\"$\",\"section\",\"Review and delivery\",{\"className\":\"dc-doc-section\",\"id\":\"$undefined\",\"children\":[[\"$\",\"div\",null,{\"className\":\"dc-doc-section-head\",\"children\":[[\"$\",\"h3\",null,{\"children\":\"Review and delivery\"}],null]}],[[\"$\",\"p\",\"The PR review compares the selected promises with code at the reviewed head and base. The app and GitHub use the same stored assessment, findings and score. A changed head or accepted promise makes old evidence stale.\",{\"children\":\"The PR review compares the selected promises with code at the reviewed head and base. The app and GitHub use the same stored assessment, findings and score. A changed head or accepted promise makes old evidence stale.\"}],[\"$\",\"p\",\"Intention status combines its deliverables across PRs. A merged PR with missing behavior remains unfinished. A source-reviewed deliverable in a merged PR is delivered in code; runtime verification and live deployment are separate facts.\",{\"children\":\"Intention status combines its deliverables across PRs. A merged PR with missing behavior remains unfinished. A source-reviewed deliverable in a merged PR is delivered in code; runtime verification and live deployment are separate facts.\"}],[\"$\",\"p\",\"Stories remain the accepted product promises. Review observations can reveal regressions or incomplete coverage, but do not silently rewrite those promises to match the implementation.\",{\"children\":\"Stories remain the accepted product promises. Review observations can reveal regressions or incomplete coverage, but do not silently rewrite those promises to match the implementation.\"}]],null,null]}]]}],\"$L1b\"]}]}]}]]}]\n1c:T62a,# Getting work done\n\nFrom something you want to a pull request you can merge.\n\nMCP use: Use this page when someone wants to know how 
28work flows through Foreloop, from a request to a merged change.\n\nRelated routes:\n- `/intentions`\n- `/tasks`\n\n## Intentions and deliverables\n\nAn intention records why a change matters and the full list of deliverables needed to call it done. Deliverables are editable markdown descriptions of expected behavior. They can stay concise while the team learns what it is building.\n\nThe branch groups a selected set of deliverables. It becomes a pull request when one is opened. The group is a handoff and review boundary; it does not own a second set of requirements.\n\n## The brief\n\nCopy the agreed intention and selected deliverables into your coding agent or normal development process. A brief supplies purpose and scope without requiring a separate implementation planning pass.\n\n## Review and delivery\n\nThe PR review compares the selected promises with code at the reviewed head and base. The app and GitHub use the same stored assessment, findings and score. A changed head or accepted promise makes old evidence stale.\n\nIntention status combines its deliverables across PRs. A merged PR with missing behavior remains unfinished. A source-reviewed deliverable in a merged PR is delivered in code; runtime verification and live deployment are separate facts.\n\nStories remain the accepted product promises. Review observations can reveal regressions or incomplete coverage, but do not silently rewrite those promises to match the implementation.\n1b:[\"$\",\"details\",null,{\"className\":\"dc-markdown-source\",\"children\":[[\"$\",\"summary\",null,{\"children\":[\"Markdown source \",[\"$\",\"svg\",null,{\"width\":13,\"height\":13,\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":1.5,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"viewBox\":\"0 0 16 16\",\"style\":\"$undefined\",\"children\":[\"$\",\"path\",null,{\"d\":\"M4 6l4 4 4-4\"}]}]]}],[\"$\",\"pre\",null,{\"children\":\"$1c\"}]]}]\n12:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n1d:I[27201,[\"/_next/static/chunks/32bv152isbzb4.js\"],\"IconMark\"]\n10:null\n14:[[\"$\",\"title\",\"0\",{\"children\":\"Getting work done · Foreloop Documentation\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"From something you want to a pull request you can merge.\"}],[\"$\",\"link\",\"2\",{\"rel\":\"shortcut icon\",\"href\":\"/favicon.ico\"}],[\"$\",\"link\",\"3\",{\"rel\":\"icon\",\"href\":\"/icon.svg\"}],[\"$\",\"$L1d\",\"4\",{}]]\n"])</script>
28</body></html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.