@navels/neal 0.3.1 → 0.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -9,7 +9,11 @@ stable result.
9
9
 
10
10
  > **A plan-driven, multi-agent coding loop.** Separate **planner**, **coder**, and **reviewer** roles, each on the provider and model you choose, work together to implement your plan.
11
11
 
12
- ![neal execution flow](docs/assets/neal-execution-flow.png)
12
+ <picture>
13
+ <source media="(prefers-color-scheme: dark)" srcset="docs/assets/neal-core-flow-dark.svg">
14
+ <source media="(prefers-color-scheme: light)" srcset="docs/assets/neal-core-flow-light.svg">
15
+ <img alt="neal execution flow" src="docs/assets/neal-core-flow-light.svg">
16
+ </picture>
13
17
 
14
18
  neal is a local planner/coder/reviewer loop for your repo. You write a plan, and neal's planner/reviewer loop turns it into a human-reviewable execution plan with an execution shape, manageable scopes, and high-level implementation detail grounded in the current repository. neal then runs each scope with your configured coder and reviewer roles. After every scope is accepted, a final review pass checks the total set of changes against the entire plan. Run artifacts are recorded under `.neal/` so interrupted work can resume.
15
19
 
@@ -18,7 +22,15 @@ Two choices explain the design:
18
22
  - **The coder and reviewer run on different vendors.** The review is genuinely adversarial: a second model with its own blind spots checks the first, instead of one model grading its own work.
19
23
  - **Each scope starts the coder from a fresh context.** A long plan doesn't drift the way a single agent does as its context fills up.
20
24
 
21
- ### What makes it interesting
25
+ ### Support MusiCares
26
+
27
+ If neal has been useful to you, please consider donating to MusiCares. It's a
28
+ non-profit giving musicians a place to turn to in times of financial, personal,
29
+ or medical crisis.
30
+
31
+ [![Donate to MusiCares](https://img.shields.io/badge/Donate_to-MusiCares-b51f2e.svg)](https://www.musicares.org/about/?form=FUNKYMLRVWU&fundraiser=NTYJWDJE&member=SHEDDUJS)
32
+
33
+ ### What makes neal interesting
22
34
 
23
35
  - **Roles, not one monolithic agent.** Planner, coder, and reviewer are independent, separately configurable roles. Mix vendors and models per role (e.g. Codex codes, Claude reviews).
24
36
  - **The reviewer is read-only.** Declared at provider registration and enforced mechanically in each adapter (OS sandbox for Codex, SDK tool allowlist for Claude, a neal-owned jailed toolset for OpenRouter models). See [SECURITY.md](SECURITY.md) and [docs/providers.md](docs/providers.md).
@@ -274,7 +286,7 @@ neal status --json --all
274
286
 
275
287
  ## Automation contract
276
288
 
277
- neal keeps a stable machine-facing contract for driving it from scripts, CI, and benchmark harnesses: writer exit codes, the `neal status --json` classification schema, patch-submission eligibility, and harness timeout and trace-publishing guidance. See [docs/automation.md](docs/automation.md).
289
+ neal keeps a stable machine-facing contract for driving it from scripts, CI, and benchmark harnesses: writer exit codes, the `neal status --json` classification schema, patch-submission eligibility, and harness timeout and trace-publishing guidance. See [docs/automation.md](docs/automation.md). [neal-swebench](https://github.com/navels/neal-swebench) drives neal through this contract to benchmark role pairings on SWE-bench Pro.
278
290
 
279
291
  ## Commands
280
292
 
@@ -299,9 +299,12 @@ export async function runExecuteReviewerAdjudication(args) {
299
299
  : null;
300
300
  const reviewerResult = await (args.runReviewerRound ?? runReviewerRound)({
301
301
  reviewer: args.state.agentConfig.reviewer,
302
- // Resume the reviewer's own session from the previous round of this
303
- // scope's review engagement (null on round 1: scope-boundary resets clear
304
- // it). Sessionless providers are filtered at the round layer.
302
+ // Resume the reviewer's own session. The handle persists across review
303
+ // rounds AND across ordinary top-level scope advances (the next-scope
304
+ // resets in transitions.ts clear coderSessionHandle but deliberately not
305
+ // this); it is null only at run start, on split-plan entry, on
306
+ // derived-plan parent advance, and after reviewer errors. Sessionless
307
+ // providers are filtered at the round layer.
305
308
  resumeHandle: args.state.reviewerSessionHandle,
306
309
  cwd: args.state.cwd,
307
310
  planDoc: context.planDoc,
@@ -0,0 +1,2 @@
1
+ <svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1742.6871929611189 581.5018875438792" width="1742.6871929611189" height="581.5018875438792"><!-- svg-source:excalidraw --><metadata/><defs><style class="style-fonts">
2
+ @font-face { font-family: Nunito; src: url(data:font/woff2;base64,d09GMgABAAAAAAxkAA8AAAAAGXQAAAwKAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGkIbiCocgRoGYD9TVEFURABsEQgKnTSXJgtMAAE2AiQDgRQEIAWEJAcgGxUVM6PCxgGAUD8zsv8ygRvD5H1AfgBD3DqcntcEYaZ3U4SP30zWsdiZDh8DA+4iuJJRS5AgQYKE6/uf6hGSzMLTN/f4d2Y3eUBcAAJbY9CiLsse3yoA+ujC8/9/r+17XiIQkIAFLMtLpY75nIAHpAzgKAyNYMrwuK0fdz0MYLCHTZ0HFlKlG0ZueEikEYXcL7lMI686jR/dg+cGeG5wLG0qvp726Op/AECBKNMZ2GukJg+AwzXU5p7aITkGoQD93JT6z9/2yV9T4AyxjOkY5To3SZ6APQk7oWZEhXGTUx2O3hyz+8KiTosQZFdzFJahcG387bMgoBcIAz+VFydUXYOwpMb7/asoE7I2JNUIm5T7TYN6GMaMp8xaRPrkP7CLdFd6aA9pFvByqXPefGAPfqT6sfQvX9sNgjS/WJiNCZMTZ8zes8rwDte7D9VbcAY/4b0X8Hab022dtwSjc+78yNectRN3fyJD5rFgK+LaPjP2CN7/v0Z4p/Rvs7UQjS/KxZ6Rt4XXjMbveDn62QCbi7DV0V5kUBWqSu6SCAeX/HPyge1eCpfBOs8Nr9r2VZrTdFL0OiP6QbysRN2mkbksoP3CXddIYBo/OXMSUocII2CkEwJlltCKofK7Uha3qmdLzPfbWFW5kJvWgkcRoWtFDyHF205y4tRQ7p6FLvP9lYH4zWWDm0grFij7GNl0i2voqhbvViPDWgwd1S8kTAZECEu40oGSbfGAIJcP3WIiiyCKQ1H4x09KCfKLccUZjjRwGWCEuFxKZYQFRDAfkAUhSOCjrB0jeLdumrzNxwuJS6qoEiUhVgzjKh2QAhLiS6LXGMvsbm632nmyWDCzTlC3QbeVF8fdtdu+dT3prnnjLqJANO1iqg+X5Sc2Ff0RVZirUTmlTsWJU0AWuDT/KHE2Q+RXDvSmDmDm8lRkS7l4GLMK/h+0PwsPqTvW/vpcxI4koQ7kDiD/MUCdIb1ZAGmXtWtdt247JMBf87JEaOWgJVqNNkBWIn3RI1Ay/BxCgDcsA0lJPpyqG2GKeRZZb7tj3x+Qh4mwoNtGu86t389UIgGD5nNOwCQgUWxhd55uBugF+wfnBYogD0QKlfpbSQ7t7K9X0pztSPARs3g+DUV0aiMCmduZOwyoRDEhvUQJIe2QcEi4RsAIqfHqFVmiICxemBTUDF+6anJSAlP3FFo9oekbGty3C70wCa8aH+cTE9e1U7qB3bvr8zEvjVNXHaA4gYNUSir0N/04aGv8o0ACkzB86hpZvb/VfXAYCnZqceWx03qsmGkwPAl3xIWh3G8F2IZ/nGjtG9wHtxJuO/IAyIdRu0f/8MjBvazzEwVHvbDZRgYGdxe7tvK51Toxinh9CxJWQZ0U61NqcEZFVlLEyyaNCpHhUjXq6qc3hRK4kdZQ9+4ZHh4BF2vNnWBEzntSoY5eG59M1pt44E7avUttgMS78dCn9t0UrtZyYRM4aBfth2wteWHbxm2rJxbF0PTGjOdPSMulBAs+6Mk6rNWdSj83TpgyY0kLCQtS7fPv/aZ+L1Nw6xmhoeHlTuspbQq0/cMjI1TlUajbxuFG6GWXOjIpx2vPuKsrKBQs3xc+OQHaBF78YBBf2YYXQxEm/KZZKU9NMln8OnX1ABjo+3G0oHcXJIPwFrbPbci+YUo1e9POoF1rJiPUgZ1aMrwlhF8F+Di1SR6Vnn120WxzgLhwZbFRni2guobB1ewD+8OG9gkEz5wWlIczUPEpJXBBabuDp0S6xB7kPYJ+WaG94SgU5aBCLSYj4hiis/1eat9BZu+prSenmp6LfF4K1S4+djcsC3cNjzwU3x3mhN0je9/KDDEdg/usV28vHDRcLTiJelvecIQdstUxiGWF7QML2RbK3Zu3B7VRLfI1Kaq114FZJJKagN229RokrkT7YvtDLnYVDm89k/19V83Z3mcv2NFcmLjEWvSqxKRv4r7+90gN59jfcWa2mKjDlAudDuWrdRghtoRp/94eXeN/a1ELD1rOHmJ75dtdP3zh1EGreLHbsSTJ3udPyQ3p5VxjGrcqY+Wy5cs2nM/ZghgZSBqS/ZUMkTkhVam/Zl8ksiyFlgbeZMV712qmtL+Mqf9WKOjVPSFChhRaFNoNasFy9Pu2hc2VVe012q59B2rQ6lMkmZmeTnbbnlo+X10ZpnLVivPGUOHeeve+9VFShNnSU3/buVDc/V/Jf2/H8QKTEcdNeMFxSEdsDyGiPru3P5vS/tb7FREGhzlVHn8sM7iW5UU8bkI8Lz9DVRSlTWngHjvXnRUa+OqVQrZUlhuzIjapHQ+uYZYzS2w5SYKcNHlpJCQOdIOcdxALghQiCDMNQdKZ7+SAGugT0oL5CWlxSu8b4Q1ibSLhCJbGzC9Nju2NFrXrftVwM+jmzy03Zu0eP21jxOKFQpHFOAfYWcxqkDW34zQWCUXIrU/RtJFajtuAObhqPsGas9eS8X3p3VYTe97yBgSLt5pKctgpgbvm7+WVe/7IY0HTYCV6RRtByltK9DjuxX6jckEVinaBNuBDWT7g3v5FER6flYCJeCadg3Ab4zEh3/9bSQ8kYmrRG1qIfH1rXWqGhOS8FulQ0zgMmzY1WB6dvTshOS2BX6CY5bK6F3CMoZ9+2fO/fODNWS42tCnUB/x6hpRGlzCsy+eVFlW4Z3/0UWRh+gfbCk559MIn7YiETpMiVX4xxP/KCrDi7pKMD9P3nDPRBVmZ2ZkNc6dKcMxYqlc0ZKuiHetMPClejE8ddoAulNUFhlvbWn20REzIy5ebCFcaOzc/T0GSbqgzlg+0ERJZaBsaFZxdpDHo8uLmWfFZoBpFfYCCR6iwfDLtWzHUOSw/WM/uZqHd7PWgFvVEfMsO/zoi6kE4+1FFHegjeYTD8jvmjX+Q7xDOfVaybYyFzOD10CBfezD4yVhVwLo91qLTpeRpH4agntQUVWYc32KcBXws1AemYRflGiOZ8XU/omSAptyZ5iM9ZqKpGG8IZNcaNK2EluMx4DaeMgUtlnfHChGW6DyWDyW6ffMq4N7+uxc34sV6RQtJyNvUgeFF/kV9e/6KL3P4LAF4jDjHy0Or0X+pv3nxo0iJXt5GkJtvy2J4Ef75djcRgig74PO/2lziCwzoxyfgf+wG4/Qfk6dPU+I0fFZmVurXoBr6UaKL6d+zRPCB8UxlNl2g8nEjyWoP470UTJaYbLTzNQkk+vuZivT3zHduXotW1vLCKSoPAwvG9fL0OhJi0JGiWJP2d0zNLoE1gi4UrQKNftW6D//3qikF0g/3PEZClt082QX9/juOVwXU/7qzUsKV+lyT8bvkOx0UJ6DVwH5N49BDlJCTfftXl+hKmfTUxaOLIrctajchdK7ujQNrlt6E1rfxTnT2rilzFzOuVbH8DfbqQGkJndGCrwwAUbS8iMagJxTPVStuIsjNjnXLk3DPHSch84YuCL52aDJx+91nUTiNXj+68giHrR2tp9Hwp4m23RYefPlBlPHUey/EbLow0nAXXbPEU+6ec52iL8/4gHp8sUHLHpqO1rBXASdA/aBz0i9OxBYVn+XDYTFShYseasUEilKZ6PXasNQdHm8FkrDg9QJWDO7kC0qhyBQKHO6QBHC1L5AdvgPrlirLz0fdOMCE7921XGO+/+2MPiLA/FT0o99na2Oj/mHMJ8DT3O4nAC8G7B7sPaMmwdIAlwIQvF+Rkw/mM78LuF6nfjUgOxmZbyzODAld4TRcvv4O+qXYe5dhUD3XK3mMocXKgsmcWFzPdN8ZBe53nVC9l7fVzCzLSD9ot+mZKRrRhtVbvavKezaYqXHJt3xaYdA7WkzOY8oBPjMcnpmAjlUcO9j+Yvp2IRcY0gsAV/wfDxH9PBqiom4PMSY5srVlD3EUrRrs6qNPOYGw5hzEzYLjBmWj+11gprm5sbSJqKyo7WzM6ShtqC23V9ZW13SQnU21Hc0Z3R1tpfmsbRMRtK0Ssh1/2tzEkSUpk6Xh+DrSRGZsTmQwy2rIhu9t2/h2zNlOzpFpFN3ir5uwzidNlsg5lgtUGhB1QZuVdY9UDtV4JxbUNI9wAUeIoTtaMq0Vc6rmkzWUDWVJ5TTzEtnMS1c3VFbRIjvIR4ubWkoRfT50oluRBg==); }</style></defs><rect x="0" y="0" width="1742.6871929611189" height="581.5018875438792" fill="#161b22" rx="12" ry="12"/><g stroke-linecap="round" transform="translate(262.94598202361897 301.8905594188792) rotate(0 85 40)"><path d="M0 0 L170 0 L170 80 L0 80" stroke="none" stroke-width="0" fill="#1a4d2e"/><path d="M0 0 C43.09 0, 86.19 0, 170 0 M0 0 C34.13 0, 68.26 0, 170 0 M170 0 C170 25.31, 170 50.63, 170 80 M170 0 C170 20.8, 170 41.61, 170 80 M170 80 C125.5 80, 81.01 80, 0 80 M170 80 C115.24 80, 60.48 80, 0 80 M0 80 C0 58.78, 0 37.55, 0 0 M0 80 C0 53.09, 0 26.18, 0 0" stroke="#2f9e44" stroke-width="2" fill="none"/></g><g transform="translate(296.70603756561115 328.3905594188792) rotate(0 51.23994445800781 13.5)"><text x="51.23994445800781" y="20.08" font-family="Nunito, Segoe UI Emoji" font-size="20px" fill="#e6edf3" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Refine plan</text></g><g stroke-linecap="round" transform="translate(512.945982023619 301.6639969188792) rotate(0 84.99999999999994 40)"><path d="M0 0 L170 0 L170 80 L0 80" stroke="none" stroke-width="0" fill="#15426b"/><path d="M0 0 C44.15 0, 88.31 0, 170 0 M0 0 C53.01 0, 106.02 0, 170 0 M170 0 C170 21.32, 170 42.64, 170 80 M170 0 C170 17.07, 170 34.14, 170 80 M170 80 C121.13 80, 72.26 80, 0 80 M170 80 C117.79 80, 65.57 80, 0 80 M0 80 C0 61.7, 0 43.41, 0 0 M0 80 C0 55.64, 0 31.28, 0 0" stroke="#58a6ff" stroke-width="2" fill="none"/></g><g transform="translate(544.5860424484237 314.6639969188792) rotate(0 53.359939575195256 27)"><text x="53.35993957519531" y="20.08" font-family="Nunito, Segoe UI Emoji" font-size="20px" fill="#e6edf3" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Fresh agent</text><text x="53.35993957519531" y="47.08" font-family="Nunito, Segoe UI Emoji" font-size="20px" fill="#e6edf3" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic"> context</text></g><g stroke-linecap="round" transform="translate(762.9459820236189 301.8905594188792) rotate(0 85 40)"><path d="M0 0 L170 0 L170 80 L0 80" stroke="none" stroke-width="0" fill="#15426b"/><path d="M0 0 C35.27 0, 70.54 0, 170 0 M0 0 C62.07 0, 124.14 0, 170 0 M170 0 C170 28.28, 170 56.57, 170 80 M170 0 C170 18.91, 170 37.82, 170 80 M170 80 C132.43 80, 94.86 80, 0 80 M170 80 C113.18 80, 56.36 80, 0 80 M0 80 C0 57.57, 0 35.14, 0 0 M0 80 C0 52.18, 0 24.36, 0 0" stroke="#58a6ff" stroke-width="2" fill="none"/></g><g transform="translate(783.5960522140485 328.3905594188792) rotate(0 64.34992980957031 13.5)"><text x="64.34992980957031" y="20.08" font-family="Nunito, Segoe UI Emoji" font-size="20px" fill="#e6edf3" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Execute scope</text></g><g stroke-linecap="round" transform="translate(1012.9459820236189 301.8905594188792) rotate(0 85 40)"><path d="M0 0 L170 0 L170 80 L0 80" stroke="none" stroke-width="0" fill="#15426b"/><path d="M0 0 C53.64 0, 107.27 0, 170 0 M0 0 C44.06 0, 88.12 0, 170 0 M170 0 C170 31.75, 170 63.51, 170 80 M170 0 C170 31.54, 170 63.07, 170 80 M170 80 C123.64 80, 77.28 80, 0 80 M170 80 C102.9 80, 35.81 80, 0 80 M0 80 C0 55.01, 0 30.02, 0 0 M0 80 C0 60.57, 0 41.13, 0 0" stroke="#58a6ff" stroke-width="2" fill="none"/></g><g transform="translate(1062.7760067428571 328.3905594188792) rotate(0 35.16997528076172 13.5)"><text x="35.16997528076172" y="20.08" font-family="Nunito, Segoe UI Emoji" font-size="20px" fill="#e6edf3" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Commit</text></g><g stroke-linecap="round" transform="translate(1262.687192961119 301.8905594188792) rotate(0 85 40)"><path d="M0 0 L170 0 L170 80 L0 80" stroke="none" stroke-width="0" fill="#15426b"/><path d="M0 0 C50.17 0, 100.34 0, 170 0 M0 0 C58.72 0, 117.44 0, 170 0 M170 0 C170 23.41, 170 46.83, 170 80 M170 0 C170 21.65, 170 43.3, 170 80 M170 80 C133.58 80, 97.17 80, 0 80 M170 80 C108.13 80, 46.27 80, 0 80 M0 80 C0 51, 0 22, 0 0 M0 80 C0 54.68, 0 29.37, 0 0" stroke="#58a6ff" stroke-width="2" fill="none"/></g><g transform="translate(1289.757261320494 328.3905594188792) rotate(0 57.929931640625 13.5)"><text x="57.929931640625" y="20.08" font-family="Nunito, Segoe UI Emoji" font-size="20px" fill="#e6edf3" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Final Review</text></g><g stroke-linecap="round" transform="translate(1512.687192961119 301.8905594188792) rotate(0 84.99999999999989 40)"><path d="M0 0 L170 0 L170 80 L0 80" stroke="none" stroke-width="0" fill="#63391d"/><path d="M0 0 C66.42 0, 132.83 0, 170 0 M0 0 C57.35 0, 114.7 0, 170 0 M170 0 C170 28.36, 170 56.72, 170 80 M170 0 C170 30.17, 170 60.35, 170 80 M170 80 C132.77 80, 95.54 80, 0 80 M170 80 C117.17 80, 64.33 80, 0 80 M0 80 C0 51.63, 0 23.25, 0 0 M0 80 C0 59.69, 0 39.37, 0 0" stroke="#e8590c" stroke-width="2" fill="none"/></g><g transform="translate(1564.107229277037 328.3905594188792) rotate(0 33.57996368408192 13.5)"><text x="33.57996368408203" y="20.08" font-family="Nunito, Segoe UI Emoji" font-size="20px" fill="#e6edf3" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Squash</text></g><g stroke-linecap="round"><g transform="translate(441.94598202361897 341.8905594188792) rotate(0 29.5 0)"><path d="M0 0 C18.9 0, 37.79 0, 59 0 M0 0 C18.89 0, 37.78 0, 59 0" stroke="#8b949e" stroke-width="2" fill="none"/></g><g transform="translate(441.94598202361897 341.8905594188792) rotate(0 29.5 0)"><path d="M59 0 L45.41 6.34 L45.41 -6.34 L59 0" stroke="none" stroke-width="0" fill="#8b949e" fill-rule="evenodd"/><path d="M59 0 C54.65 2.03, 50.29 4.06, 45.41 6.34 M59 0 C54.65 2.03, 50.29 4.06, 45.41 6.34 M45.41 6.34 C45.41 1.85, 45.41 -2.64, 45.41 -6.34 M45.41 6.34 C45.41 3.01, 45.41 -0.32, 45.41 -6.34 M45.41 -6.34 C48.17 -5.05, 50.92 -3.77, 59 0 M45.41 -6.34 C49.58 -4.39, 53.75 -2.45, 59 0 M59 0 C59 0, 59 0, 59 0 M59 0 C59 0, 59 0, 59 0" stroke="#8b949e" stroke-width="2" fill="none"/></g></g><mask/><g stroke-linecap="round"><g transform="translate(691.9459820236189 341.7657960210282) rotate(0 29.5 0.03502764805136849)"><path d="M0 0 C18.67 0.02, 37.34 0.04, 59 0.07 M0 0 C15.34 0.02, 30.69 0.04, 59 0.07" stroke="#8b949e" stroke-width="2" fill="none"/></g><g transform="translate(691.9459820236189 341.7657960210282) rotate(0 29.5 0.03502764805136849)"><path d="M59 0.07 L45.4 6.39 L45.41 -6.29 L59 0.07" stroke="none" stroke-width="0" fill="#8b949e" fill-rule="evenodd"/><path d="M59 0.07 C54.7 2.07, 50.39 4.07, 45.4 6.39 M59 0.07 C55.46 1.71, 51.93 3.36, 45.4 6.39 M45.4 6.39 C45.4 3.07, 45.41 -0.24, 45.41 -6.29 M45.4 6.39 C45.4 2.31, 45.41 -1.78, 45.41 -6.29 M45.41 -6.29 C49.02 -4.6, 52.62 -2.91, 59 0.07 M45.41 -6.29 C49.98 -4.15, 54.55 -2.01, 59 0.07 M59 0.07 C59 0.07, 59 0.07, 59 0.07 M59 0.07 C59 0.07, 59 0.07, 59 0.07" stroke="#8b949e" stroke-width="2" fill="none"/></g></g><mask/><g stroke-linecap="round"><g transform="translate(941.9459820236189 341.8905594188792) rotate(0 29.5 0)"><path d="M0 0 C15.72 0, 31.45 0, 59 0 M0 0 C12.59 0, 25.18 0, 59 0" stroke="#8b949e" stroke-width="2" fill="none"/></g><g transform="translate(941.9459820236189 341.8905594188792) rotate(0 29.5 0)"><path d="M59 0 L45.41 6.34 L45.41 -6.34 L59 0" stroke="none" stroke-width="0" fill="#8b949e" fill-rule="evenodd"/><path d="M59 0 C55.38 1.69, 51.75 3.38, 45.41 6.34 M59 0 C56.1 1.35, 53.2 2.71, 45.41 6.34 M45.41 6.34 C45.41 2.69, 45.41 -0.95, 45.41 -6.34 M45.41 6.34 C45.41 2.45, 45.41 -1.45, 45.41 -6.34 M45.41 -6.34 C48.51 -4.89, 51.62 -3.44, 59 0 M45.41 -6.34 C49.55 -4.41, 53.68 -2.48, 59 0 M59 0 C59 0, 59 0, 59 0 M59 0 C59 0, 59 0, 59 0" stroke="#8b949e" stroke-width="2" fill="none"/></g></g><mask/><g stroke-linecap="round"><g transform="translate(1192.1871929611189 341.8905594188792) rotate(0 29 0)"><path d="M0 0 C20.51 0, 41.01 0, 58 0 M0 0 C13.71 0, 27.42 0, 58 0" stroke="#8b949e" stroke-width="2" fill="none"/></g><g transform="translate(1192.1871929611189 341.8905594188792) rotate(0 29 0)"><path d="M58 0 L44.41 6.34 L44.41 -6.34 L58 0" stroke="none" stroke-width="0" fill="#8b949e" fill-rule="evenodd"/><path d="M58 0 C53.19 2.24, 48.39 4.48, 44.41 6.34 M58 0 C54.79 1.5, 51.57 3, 44.41 6.34 M44.41 6.34 C44.41 3.54, 44.41 0.74, 44.41 -6.34 M44.41 6.34 C44.41 2.1, 44.41 -2.14, 44.41 -6.34 M44.41 -6.34 C48.22 -4.56, 52.03 -2.78, 58 0 M44.41 -6.34 C49.13 -4.13, 53.86 -1.93, 58 0 M58 0 C58 0, 58 0, 58 0 M58 0 C58 0, 58 0, 58 0" stroke="#8b949e" stroke-width="2" fill="none"/></g></g><mask/><g stroke-linecap="round"><g transform="translate(1442.187192961119 341.8905594188792) rotate(0 29 0)"><path d="M0 0 C23.02 0, 46.04 0, 58 0 M0 0 C22.86 0, 45.73 0, 58 0" stroke="#8b949e" stroke-width="2" fill="none"/></g><g transform="translate(1442.187192961119 341.8905594188792) rotate(0 29 0)"><path d="M58 0 L44.41 6.34 L44.41 -6.34 L58 0" stroke="none" stroke-width="0" fill="#8b949e" fill-rule="evenodd"/><path d="M58 0 C52.6 2.52, 47.21 5.03, 44.41 6.34 M58 0 C52.64 2.5, 47.28 5, 44.41 6.34 M44.41 6.34 C44.41 2.88, 44.41 -0.58, 44.41 -6.34 M44.41 6.34 C44.41 1.34, 44.41 -3.67, 44.41 -6.34 M44.41 -6.34 C48.65 -4.36, 52.9 -2.38, 58 0 M44.41 -6.34 C47.71 -4.8, 51.01 -3.26, 58 0 M58 0 C58 0, 58 0, 58 0 M58 0 C58 0, 58 0, 58 0" stroke="#8b949e" stroke-width="2" fill="none"/></g></g><mask/><g stroke-linecap="round"><g transform="translate(1105.9713525935056 301.24160820093687) rotate(0 -257.13862305703515 -25.36790720352883)"><path d="M0 0 C0.16 -15.45, 0.82 -29.61, 0.46 -50.74 M0.46 -50.74 C-203.45 -49.33, -406.37 -49.36, -514.73 -50.74 M-514.73 -50.74 C-514.48 -35.22, -513.61 -21.1, -514.73 -4.58" stroke="#c9d1d9" stroke-width="2.5" fill="none" stroke-dasharray="8 10"/></g><g transform="translate(1105.9713525935056 301.24160820093687) rotate(0 -257.13862305703515 -25.36790720352883)"><path d="M-513.93 -6.29 L-519.84 -18.63 L-506.52 -18.98 L-514.46 -6.35" stroke="none" stroke-width="0" fill="#c9d1d9" fill-rule="evenodd"/><path d="M-514.73 -4.58 C-516.24 -9.61, -517.43 -13.62, -520.55 -18.4 M-520.55 -18.4 C-516.46 -18.16, -510.8 -18.02, -507.88 -17.92 M-507.88 -17.92 C-509.91 -12.89, -511.4 -8.95, -514.73 -4.58 M-514.73 -4.58 C-514.73 -4.58, -514.73 -4.58, -514.73 -4.58" stroke="#c9d1d9" stroke-width="2.5" fill="none"/></g></g><mask/><g stroke-linecap="round" transform="translate(764.0054128271904 439.53467214209365) rotate(0 85 40)"><path d="M0 0 L170 0 L170 80 L0 80" stroke="none" stroke-width="0" fill="#4a2c59"/><path d="M0 0 C36.42 0, 72.83 0, 170 0 M0 0 C61.87 0, 123.73 0, 170 0 M170 0 C170 29, 170 58, 170 80 M170 0 C170 25.32, 170 50.63, 170 80 M170 80 C112.9 80, 55.8 80, 0 80 M170 80 C132.74 80, 95.48 80, 0 80 M0 80 C0 54.98, 0 29.96, 0 0 M0 80 C0 53.73, 0 27.46, 0 0" stroke="#c297ea" stroke-width="2" fill="none"/></g><g transform="translate(814.3154409033623 466.03467214209365) rotate(0 34.689971923828125 13.5)"><text x="34.689971923828125" y="20.08" font-family="Nunito, Segoe UI Emoji" font-size="20px" fill="#e6edf3" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Consult</text></g><g stroke-linecap="round" transform="translate(1013.2731304611189 441.5018875438792) rotate(0 85 40)"><path d="M0 0 L170 0 L170 80 L0 80" stroke="none" stroke-width="0" fill="#4a2c59"/><path d="M0 0 C34.51 0, 69.02 0, 170 0 M0 0 C52.19 0, 104.37 0, 170 0 M170 0 C170 27.18, 170 54.36, 170 80 M170 0 C170 16.74, 170 33.49, 170 80 M170 80 C116.69 80, 63.38 80, 0 80 M170 80 C128.54 80, 87.08 80, 0 80 M0 80 C0 61.19, 0 42.38, 0 0 M0 80 C0 50.47, 0 20.94, 0 0" stroke="#c297ea" stroke-width="2" fill="none"/></g><g transform="translate(1065.1331615890485 468.0018875438792) rotate(0 33.13996887207031 13.5)"><text x="33.13996887207031" y="20.08" font-family="Nunito, Segoe UI Emoji" font-size="20px" fill="#e6edf3" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Review</text></g><g stroke-linecap="round" transform="translate(1263.102232023619 441.3544266063792) rotate(0 85 40)"><path d="M0 0 L170 0 L170 80 L0 80" stroke="none" stroke-width="0" fill="#4a2c59"/><path d="M0 0 C38.88 0, 77.76 0, 170 0 M0 0 C51.77 0, 103.54 0, 170 0 M170 0 C170 21.59, 170 43.18, 170 80 M170 0 C170 23.08, 170 46.17, 170 80 M170 80 C127.7 80, 85.4 80, 0 80 M170 80 C105.5 80, 41 80, 0 80 M0 80 C0 52.33, 0 24.66, 0 0 M0 80 C0 55.98, 0 31.96, 0 0" stroke="#c297ea" stroke-width="2" fill="none"/></g><g transform="translate(1314.9622631515488 467.8544266063792) rotate(0 33.13996887207031 13.5)"><text x="33.13996887207031" y="20.08" font-family="Nunito, Segoe UI Emoji" font-size="20px" fill="#e6edf3" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Review</text></g><g stroke-linecap="round"><g transform="translate(821.8011252527858 384.9074865022129) rotate(0 -10.062174479166742 24.93419828869048)"><path d="M0.34 0.02 C-2.97 4.08, -19.12 16.29, -19.82 24.55 C-20.53 32.8, -6.44 45.32, -3.88 49.55" stroke="#c9d1d9" stroke-width="2.5" fill="none" stroke-dasharray="8 10"/></g><g transform="translate(821.8011252527858 384.9074865022129) rotate(0 -10.062174479166742 24.93419828869048)"><path d="M-4.68 50.51 L-17.29 43.89 L-7.77 34.52 L-4.53 49.85" stroke="none" stroke-width="0" fill="#c9d1d9" fill-rule="evenodd"/><path d="M-3.88 49.55 C-8.09 47.99, -11.99 45.86, -17.42 43.1 M-17.42 43.1 C-15.21 40.84, -12.54 38.6, -7.64 35.03 M-7.64 35.03 C-6.51 40.48, -5.54 45.01, -3.88 49.55 M-3.88 49.55 C-3.88 49.55, -3.88 49.55, -3.88 49.55" stroke="#c9d1d9" stroke-width="2.5" fill="none"/></g></g><mask/><g stroke-linecap="round"><g transform="translate(877.3578282503618 437.32861745459365) rotate(0 10.902312563711916 -25.476190476190595)"><path d="M0.66 0.57 C4.24 -3.94, 21.69 -18.5, 22.28 -27.05 C22.87 -35.61, 7.15 -46.68, 4.2 -50.76" stroke="#c9d1d9" stroke-width="2.5" fill="none" stroke-dasharray="8 10"/></g><g transform="translate(877.3578282503618 437.32861745459365) rotate(0 10.902312563711916 -25.476190476190595)"><path d="M4.46 -49.17 L17.95 -46.71 L8.02 -36.18 L5.93 -50.19" stroke="none" stroke-width="0" fill="#c9d1d9" fill-rule="evenodd"/><path d="M4.2 -50.76 C9.99 -48.4, 13.51 -48.11, 18.21 -45.68 M18.21 -45.68 C15.58 -44.04, 13.06 -41.15, 9.32 -36.76 M9.32 -36.76 C6.83 -41.23, 4.58 -46.12, 4.2 -50.76 M4.2 -50.76 C4.2 -50.76, 4.2 -50.76, 4.2 -50.76" stroke="#c9d1d9" stroke-width="2.5" fill="none"/></g></g><mask/><g stroke-linecap="round"><g transform="translate(1071.1701842067077 386.325152451304) rotate(0 -10.062174479166629 25.09602864583337)"><path d="M0.48 -0.68 C-3.11 3.3, -20.11 16.09, -20.89 24.48 C-21.67 32.87, -7.08 45.54, -4.21 49.64" stroke="#c9d1d9" stroke-width="2.5" fill="none" stroke-dasharray="8 10"/></g><g transform="translate(1071.1701842067077 386.325152451304) rotate(0 -10.062174479166629 25.09602864583337)"><path d="M-4.47 48.61 L-19.27 44.26 L-6.76 35.83 L-3.29 50.49" stroke="none" stroke-width="0" fill="#c9d1d9" fill-rule="evenodd"/><path d="M-4.21 49.64 C-9.97 46.62, -13.75 45.01, -17.97 43.67 M-17.97 43.67 C-15.07 40.54, -12.71 39.34, -8.49 35.26 M-8.49 35.26 C-8.31 40.55, -6.63 45.08, -4.21 49.64 M-4.21 49.64 C-4.21 49.64, -4.21 49.64, -4.21 49.64" stroke="#c9d1d9" stroke-width="2.5" fill="none"/></g></g><mask/><g stroke-linecap="round"><g transform="translate(1126.6981789983745 439.0699441179705) rotate(0 10.916666666666629 -25.63802083333337)"><path d="M-0.77 0.2 C2.73 -4.23, 20.48 -18.48, 21.47 -27.25 C22.47 -36.01, 7.86 -48.19, 5.2 -52.36" stroke="#c9d1d9" stroke-width="2.5" fill="none" stroke-dasharray="8 10"/></g><g transform="translate(1126.6981789983745 439.0699441179705) rotate(0 10.916666666666629 -25.63802083333337)"><path d="M3.9 -51.78 L20.53 -45.74 L10.22 -37.19 L3.93 -50.98" stroke="none" stroke-width="0" fill="#c9d1d9" fill-rule="evenodd"/><path d="M5.2 -52.36 C10.03 -50.67, 13.72 -47.91, 18.81 -46.31 M18.81 -46.31 C17.3 -44.8, 15.72 -43.59, 9.3 -38.04 M9.3 -38.04 C6.94 -43.3, 7.32 -46.83, 5.2 -52.36 M5.2 -52.36 C5.2 -52.36, 5.2 -52.36, 5.2 -52.36" stroke="#c9d1d9" stroke-width="2.5" fill="none"/></g></g><mask/><g stroke-linecap="round"><g transform="translate(1319.601173790041 385.524371201304) rotate(0 -10.062174479166629 25.09602864583337)"><path d="M-0.36 -0.55 C-3.55 3.28, -19.43 14.91, -19.93 23.19 C-20.43 31.48, -6.12 44.69, -3.36 49.17" stroke="#c9d1d9" stroke-width="2.5" fill="none" stroke-dasharray="8 10"/></g><g transform="translate(1319.601173790041 385.524371201304) rotate(0 -10.062174479166629 25.09602864583337)"><path d="M-1.64 49.73 L-15.94 43.46 L-8.28 36 L-2.56 49.44" stroke="none" stroke-width="0" fill="#c9d1d9" fill-rule="evenodd"/><path d="M-3.36 49.17 C-7.25 47.82, -11.1 46.63, -16.85 42.61 M-16.85 42.61 C-13.91 40.23, -12.49 38.07, -7.01 34.62 M-7.01 34.62 C-5.56 39.2, -5.78 42.18, -3.36 49.17 M-3.36 49.17 C-3.36 49.17, -3.36 49.17, -3.36 49.17" stroke="#c9d1d9" stroke-width="2.5" fill="none"/></g></g><mask/><g stroke-linecap="round"><g transform="translate(1375.129168581708 438.2691628679705) rotate(0 10.916666666666629 -25.63802083333337)"><path d="M0.2 -1.09 C3.98 -5.62, 21.45 -19.33, 22.32 -27.72 C23.19 -36.11, 8.18 -47.38, 5.43 -51.41" stroke="#c9d1d9" stroke-width="2.5" fill="none" stroke-dasharray="8 10"/></g><g transform="translate(1375.129168581708 438.2691628679705) rotate(0 10.916666666666629 -25.63802083333337)"><path d="M6.35 -50.56 L18.02 -44.55 L10.94 -37.01 L4.15 -51.41" stroke="none" stroke-width="0" fill="#c9d1d9" fill-rule="evenodd"/><path d="M5.43 -51.41 C7.79 -49.36, 11.61 -47.94, 19.28 -45.93 M19.28 -45.93 C16.87 -44.6, 14.07 -42.01, 10.14 -37.28 M10.14 -37.28 C8.08 -41.98, 9.18 -44.12, 5.43 -51.41 M5.43 -51.41 C5.43 -51.41, 5.43 -51.41, 5.43 -51.41" stroke="#c9d1d9" stroke-width="2.5" fill="none"/></g></g><mask/><g stroke-linecap="round"><g transform="translate(196.5947372939562 342.6703833276098) rotate(0 29.25 0)"><path d="M0 0 C17.64 0, 35.28 0, 58.5 0 M0 0 C22.59 0, 45.19 0, 58.5 0" stroke="#8b949e" stroke-width="2" fill="none"/></g><g transform="translate(196.5947372939562 342.6703833276098) rotate(0 29.25 0)"><path d="M58.5 0 L44.91 6.34 L44.91 -6.34 L58.5 0" stroke="none" stroke-width="0" fill="#8b949e" fill-rule="evenodd"/><path d="M58.5 0 C54.4 1.91, 50.3 3.82, 44.91 6.34 M58.5 0 C53.25 2.45, 48 4.9, 44.91 6.34 M44.91 6.34 C44.91 3.68, 44.91 1.02, 44.91 -6.34 M44.91 6.34 C44.91 3.14, 44.91 -0.06, 44.91 -6.34 M44.91 -6.34 C50.13 -3.9, 55.36 -1.46, 58.5 0 M44.91 -6.34 C48.63 -4.6, 52.35 -2.87, 58.5 0 M58.5 0 C58.5 0, 58.5 0, 58.5 0 M58.5 0 C58.5 0, 58.5 0, 58.5 0" stroke="#8b949e" stroke-width="2" fill="none"/></g></g><mask/><g stroke-linecap="round" transform="translate(262.20034555288464 438.98351854308146) rotate(0 85 40)"><path d="M0 0 L170 0 L170 80 L0 80" stroke="none" stroke-width="0" fill="#4a2c59"/><path d="M0 0 C59.58 0, 119.15 0, 170 0 M0 0 C43.28 0, 86.56 0, 170 0 M170 0 C170 18.75, 170 37.49, 170 80 M170 0 C170 23.47, 170 46.94, 170 80 M170 80 C128.04 80, 86.08 80, 0 80 M170 80 C130.51 80, 91.03 80, 0 80 M0 80 C0 52.15, 0 24.3, 0 0 M0 80 C0 60.03, 0 40.05, 0 0" stroke="#c297ea" stroke-width="2" fill="none"/></g><g transform="translate(314.06037668081433 465.48351854308146) rotate(0 33.13996887207031 13.5)"><text x="33.13996887207031" y="20.08" font-family="Nunito, Segoe UI Emoji" font-size="20px" fill="#e6edf3" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Review</text></g><g stroke-linecap="round"><g transform="translate(320.49605797848005 384.8563329032007) rotate(0 -10.312174479166742 24.68419828869048)"><path d="M-0.5 -0.25 C-3.98 3.6, -20.17 15.03, -20.76 23.26 C-21.36 31.49, -6.8 44.77, -4.07 49.1" stroke="#c9d1d9" stroke-width="2.5" fill="none" stroke-dasharray="8 10"/></g><g transform="translate(320.49605797848005 384.8563329032007) rotate(0 -10.312174479166742 24.68419828869048)"><path d="M-3.48 49.66 L-18.55 42 L-7.62 34.94 L-4.87 49.56" stroke="none" stroke-width="0" fill="#c9d1d9" fill-rule="evenodd"/><path d="M-4.07 49.1 C-8.81 46.77, -13.57 45.6, -17.63 42.68 M-17.63 42.68 C-15.61 40.77, -12.14 38.35, -7.87 34.59 M-7.87 34.59 C-6.45 40.69, -5.69 45, -4.07 49.1 M-4.07 49.1 C-4.07 49.1, -4.07 49.1, -4.07 49.1" stroke="#c9d1d9" stroke-width="2.5" fill="none"/></g></g><mask/><g stroke-linecap="round"><g transform="translate(375.0527609760561 436.27746385558146) rotate(0 11.152312563711916 -25.226190476190595)"><path d="M-0.31 -1.14 C3.78 -5.46, 22.42 -18.18, 23.45 -26.45 C24.49 -34.72, 9.03 -46.8, 5.9 -50.77" stroke="#c9d1d9" stroke-width="2.5" fill="none" stroke-dasharray="8 10"/></g><g transform="translate(375.0527609760561 436.27746385558146) rotate(0 11.152312563711916 -25.226190476190595)"><path d="M4.07 -52.12 L20.37 -44.87 L9.32 -35.83 L5.08 -51.14" stroke="none" stroke-width="0" fill="#c9d1d9" fill-rule="evenodd"/><path d="M5.9 -50.77 C7.39 -48.22, 11.02 -48.02, 19.87 -45.58 M19.87 -45.58 C18.55 -43.7, 15.89 -40.14, 10.9 -36.74 M10.9 -36.74 C7.51 -43.3, 6.21 -49.02, 5.9 -50.77 M5.9 -50.77 C5.9 -50.77, 5.9 -50.77, 5.9 -50.77" stroke="#c9d1d9" stroke-width="2.5" fill="none"/></g></g><mask/><g stroke-linecap="round" transform="translate(60.0 279.7176124656595) rotate(0 57.3193359375 77.412109375)"><path d="M0 0 L114.64 0 L114.64 154.82 L0 154.82" stroke="none" stroke-width="0" fill="#161b22"/><path d="M0 0 C44.32 0, 88.63 0, 114.64 0 M0 0 C42.97 0, 85.94 0, 114.64 0 M114.64 0 C114.64 37.65, 114.64 75.3, 114.64 154.82 M114.64 0 C114.64 35.17, 114.64 70.35, 114.64 154.82 M114.64 154.82 C78.03 154.82, 41.43 154.82, 0 154.82 M114.64 154.82 C91.16 154.82, 67.68 154.82, 0 154.82 M0 154.82 C0 104.58, 0 54.34, 0 0 M0 154.82 C0 114.99, 0 75.15, 0 0" stroke="#c9d1d9" stroke-width="2" fill="none"/></g><g stroke-linecap="round" transform="translate(65.69945484203299 272.8620149381867) rotate(0 57.3193359375 77.412109375)"><path d="M0 0 L114.64 0 L114.64 154.82 L0 154.82" stroke="none" stroke-width="0" fill="#161b22"/><path d="M0 0 C42.04 0, 84.08 0, 114.64 0 M0 0 C26.56 0, 53.13 0, 114.64 0 M114.64 0 C114.64 45.34, 114.64 90.67, 114.64 154.82 M114.64 0 C114.64 61.43, 114.64 122.86, 114.64 154.82 M114.64 154.82 C76.05 154.82, 37.45 154.82, 0 154.82 M114.64 154.82 C74.88 154.82, 35.12 154.82, 0 154.82 M0 154.82 C0 102.3, 0 49.77, 0 0 M0 154.82 C0 114.72, 0 74.61, 0 0" stroke="#c9d1d9" stroke-width="2" fill="none"/></g><g stroke-linecap="round" transform="translate(72.9987980769231 266.25772664835165) rotate(0 57.3193359375 77.412109375)"><path d="M0 0 L114.64 0 L114.64 154.82 L0 154.82" stroke="none" stroke-width="0" fill="#161b22"/><path d="M0 0 C45.21 0, 90.42 0, 114.64 0 M0 0 C43.7 0, 87.4 0, 114.64 0 M114.64 0 C114.64 50.88, 114.64 101.75, 114.64 154.82 M114.64 0 C114.64 36.13, 114.64 72.26, 114.64 154.82 M114.64 154.82 C86 154.82, 57.37 154.82, 0 154.82 M114.64 154.82 C70.06 154.82, 25.47 154.82, 0 154.82 M0 154.82 C0 108.8, 0 62.78, 0 0 M0 154.82 C0 123.11, 0 91.4, 0 0" stroke="#c9d1d9" stroke-width="2" fill="none"/></g><g transform="translate(84.64819688063403 330.16983602335165) rotate(0 45.66993713378906 13.5)"><text x="45.66993713378906" y="20.08" font-family="Nunito, Segoe UI Emoji" font-size="20px" fill="#c9d1d9" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Draft plan</text></g><g stroke-linecap="round" transform="translate(865.0207224416213 60.0) rotate(0 21.26395089285711 21.26395089285711)"><path d="M10.63 0 C18.12 0.24, 25.5 -3.17, 31.9 0 C35.43 1.36, 44.97 6.75, 42.53 10.63 C44.08 15.5, 40.58 25.74, 42.53 31.9 C42.67 42.04, 38.4 44.12, 31.9 42.53 C28.32 44.33, 19.69 42.34, 10.63 42.53 C0.32 41.86, -0.24 37.54, 0 31.9 C3.09 25.1, -0.23 21.45, 0 10.63 C1.16 0.09, 5.48 -2.49, 10.63 0" stroke="none" stroke-width="0" fill="#1a4d2e"/><path d="M10.63 0 C20.62 -0.43, 26.56 1.5, 31.9 0 M10.63 0 C18.93 -0.52, 28.03 -0.51, 31.9 0 M31.9 0 C39.09 1.11, 42.62 3.37, 42.53 10.63 M31.9 0 C37.01 -0.77, 44.77 2.55, 42.53 10.63 M42.53 10.63 C42.25 18.45, 43.09 22.01, 42.53 31.9 M42.53 10.63 C42.79 16.74, 41.85 23.3, 42.53 31.9 M42.53 31.9 C42.94 37.17, 40.81 42.73, 31.9 42.53 M42.53 31.9 C44.62 39.47, 37.92 41.6, 31.9 42.53 M31.9 42.53 C23.88 40.86, 17.47 44.21, 10.63 42.53 M31.9 42.53 C24.7 41.99, 19.54 42.68, 10.63 42.53 M10.63 42.53 C4.9 42.47, 0.86 40.46, 0 31.9 M10.63 42.53 C2.64 42.72, -2.11 39.55, 0 31.9 M0 31.9 C-0.97 25.66, 0.76 18.75, 0 10.63 M0 31.9 C0.49 25.45, 0.33 17.65, 0 10.63 M0 10.63 C0.35 2.69, 1.7 1.35, 10.63 0 M0 10.63 C1.74 3.11, 4.65 -0.13, 10.63 0" stroke="#2f9e44" stroke-width="2" fill="none"/></g><g transform="translate(927.0519724416213 63.66249999999991) rotate(0 49.19597625732422 18.899999999999977)"><text x="0" y="28.112000000000002" font-family="Nunito, Segoe UI Emoji" font-size="28px" fill="#c9d1d9" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Planner</text></g><g stroke-linecap="round" transform="translate(865.4586747557255 117.35435267857133) rotate(0 21.26395089285711 21.26395089285711)"><path d="M10.63 0 C15.06 1.38, 25.47 -1.68, 31.9 0 C35.8 -1.09, 45.94 1.77, 42.53 10.63 C40.92 19.78, 39.62 26.29, 42.53 31.9 C42.97 38.85, 35.86 45.03, 31.9 42.53 C23.98 42.85, 21.98 44.26, 10.63 42.53 C1.05 41.97, -1.55 37.37, 0 31.9 C1.06 22.3, 0.33 16.22, 0 10.63 C2.04 5.91, 3.73 0.05, 10.63 0" stroke="none" stroke-width="0" fill="#15426b"/><path d="M10.63 0 C15.74 1.42, 23.95 0.46, 31.9 0 M10.63 0 C15.66 -0.4, 20.45 0.5, 31.9 0 M31.9 0 C38.15 -0.81, 43.25 3.88, 42.53 10.63 M31.9 0 C39.57 -0.57, 42.57 4.98, 42.53 10.63 M42.53 10.63 C41.79 16.74, 41.58 25.26, 42.53 31.9 M42.53 10.63 C42.55 17.6, 41.94 25, 42.53 31.9 M42.53 31.9 C40.66 39.96, 37.08 42.38, 31.9 42.53 M42.53 31.9 C43.63 41.16, 40.55 41.14, 31.9 42.53 M31.9 42.53 C21.44 42.28, 16.31 43.54, 10.63 42.53 M31.9 42.53 C27.39 42.67, 22.41 42.28, 10.63 42.53 M10.63 42.53 C5.35 41.71, -0.78 38.03, 0 31.9 M10.63 42.53 C2.61 42.91, -1.44 40.81, 0 31.9 M0 31.9 C-0.27 25.06, 0.45 15.49, 0 10.63 M0 31.9 C-0.12 25.02, -0.49 15.28, 0 10.63 M0 10.63 C-0.86 3.94, 3.36 1.79, 10.63 0 M0 10.63 C-2.23 1.91, 4.33 2.09, 10.63 0" stroke="#58a6ff" stroke-width="2" fill="none"/></g><g transform="translate(927.2018388182255 121.01685267857124) rotate(0 37.603981018066406 18.899999999999977)"><text x="0" y="28.112000000000002" font-family="Nunito, Segoe UI Emoji" font-size="28px" fill="#c9d1d9" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Coder</text></g><g stroke-linecap="round" transform="translate(865.3347908271539 175.30412946428555) rotate(0 21.26395089285711 23.900000000000034)"><path d="M10.63 0 C13.98 2.61, 22.61 -2.06, 31.9 0 C38.23 0.74, 43.59 3.62, 42.53 10.63 C45.57 14.92, 45.08 24.25, 42.53 37.17 C40.43 45.27, 42.34 47.56, 31.9 47.8 C25.29 47.75, 18.47 46.41, 10.63 47.8 C5.31 49.31, 2.31 45.9, 0 37.17 C-1.23 31.33, -1.61 25.12, 0 10.63 C1.19 3.63, 6.63 -1.01, 10.63 0" stroke="none" stroke-width="0" fill="#4a2c59"/><path d="M10.63 0 C19.85 -1.32, 28.15 1.1, 31.9 0 M10.63 0 C15.6 0.51, 21.71 0, 31.9 0 M31.9 0 C39.36 1.65, 40.78 4.59, 42.53 10.63 M31.9 0 C37.9 1.81, 44.53 2.01, 42.53 10.63 M42.53 10.63 C44.27 20.29, 43.57 28.64, 42.53 37.17 M42.53 10.63 C42.61 19.92, 43.2 29.54, 42.53 37.17 M42.53 37.17 C41.81 42.68, 37.38 47.58, 31.9 47.8 M42.53 37.17 C40.75 44.93, 40.43 48.56, 31.9 47.8 M31.9 47.8 C24.76 49.47, 14.86 47.7, 10.63 47.8 M31.9 47.8 C23.36 48.21, 15.34 47.63, 10.63 47.8 M10.63 47.8 C1.83 49.75, 0.43 45.46, 0 37.17 M10.63 47.8 C4.98 48.88, -1.1 42.72, 0 37.17 M0 37.17 C0.72 30.31, 0.04 21.04, 0 10.63 M0 37.17 C0.79 28.14, 0.23 17.65, 0 10.63 M0 10.63 C-1.09 4.68, 4.92 -1.77, 10.63 0 M0 10.63 C0.55 3.52, 2.11 1.02, 10.63 0" stroke="#c297ea" stroke-width="2" fill="none"/></g><g transform="translate(927.3660408271539 178.96662946428592) rotate(0 58.869972229003906 18.899999999999977)"><text x="0" y="28.112000000000002" font-family="Nunito, Segoe UI Emoji" font-size="28px" fill="#c9d1d9" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Reviewer</text></g><g transform="translate(610.2606563358518 115.59231627747204) rotate(0 116.1359634399414 24.30000000000001)"><text x="0" y="36.144000000000005" font-family="Nunito, Segoe UI Emoji" font-size="36px" fill="#c9d1d9" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Three models:</text></g></svg>
@@ -0,0 +1,2 @@
1
+ <svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1742.6871929611189 581.5018875438792" width="1742.6871929611189" height="581.5018875438792"><!-- svg-source:excalidraw --><metadata/><defs><style class="style-fonts">
2
+ @font-face { font-family: Nunito; src: url(data:font/woff2;base64,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); }</style></defs><rect x="0" y="0" width="1742.6871929611189" height="581.5018875438792" fill="#ffffff"/><g stroke-linecap="round" transform="translate(262.94598202361897 301.8905594188792) rotate(0 85 40)"><path d="M0 0 L170 0 L170 80 L0 80" stroke="none" stroke-width="0" fill="#ebfbee"/><path d="M0 0 C43.09 0, 86.19 0, 170 0 M0 0 C34.13 0, 68.26 0, 170 0 M170 0 C170 25.31, 170 50.63, 170 80 M170 0 C170 20.8, 170 41.61, 170 80 M170 80 C125.5 80, 81.01 80, 0 80 M170 80 C115.24 80, 60.48 80, 0 80 M0 80 C0 58.78, 0 37.55, 0 0 M0 80 C0 53.09, 0 26.18, 0 0" stroke="#2f9e44" stroke-width="2" fill="none"/></g><g transform="translate(296.70603756561115 328.3905594188792) rotate(0 51.23994445800781 13.5)"><text x="51.23994445800781" y="20.08" font-family="Nunito, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Refine plan</text></g><g stroke-linecap="round" transform="translate(512.945982023619 301.6639969188792) rotate(0 84.99999999999994 40)"><path d="M0 0 L170 0 L170 80 L0 80" stroke="none" stroke-width="0" fill="#e7f5ff"/><path d="M0 0 C44.15 0, 88.31 0, 170 0 M0 0 C53.01 0, 106.02 0, 170 0 M170 0 C170 21.32, 170 42.64, 170 80 M170 0 C170 17.07, 170 34.14, 170 80 M170 80 C121.13 80, 72.26 80, 0 80 M170 80 C117.79 80, 65.57 80, 0 80 M0 80 C0 61.7, 0 43.41, 0 0 M0 80 C0 55.64, 0 31.28, 0 0" stroke="#1971c2" stroke-width="2" fill="none"/></g><g transform="translate(544.5860424484237 314.6639969188792) rotate(0 53.359939575195256 27)"><text x="53.35993957519531" y="20.08" font-family="Nunito, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Fresh agent</text><text x="53.35993957519531" y="47.08" font-family="Nunito, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic"> context</text></g><g stroke-linecap="round" transform="translate(762.9459820236189 301.8905594188792) rotate(0 85 40)"><path d="M0 0 L170 0 L170 80 L0 80" stroke="none" stroke-width="0" fill="#e7f5ff"/><path d="M0 0 C35.27 0, 70.54 0, 170 0 M0 0 C62.07 0, 124.14 0, 170 0 M170 0 C170 28.28, 170 56.57, 170 80 M170 0 C170 18.91, 170 37.82, 170 80 M170 80 C132.43 80, 94.86 80, 0 80 M170 80 C113.18 80, 56.36 80, 0 80 M0 80 C0 57.57, 0 35.14, 0 0 M0 80 C0 52.18, 0 24.36, 0 0" stroke="#1971c2" stroke-width="2" fill="none"/></g><g transform="translate(783.5960522140485 328.3905594188792) rotate(0 64.34992980957031 13.5)"><text x="64.34992980957031" y="20.08" font-family="Nunito, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Execute scope</text></g><g stroke-linecap="round" transform="translate(1012.9459820236189 301.8905594188792) rotate(0 85 40)"><path d="M0 0 L170 0 L170 80 L0 80" stroke="none" stroke-width="0" fill="#e7f5ff"/><path d="M0 0 C53.64 0, 107.27 0, 170 0 M0 0 C44.06 0, 88.12 0, 170 0 M170 0 C170 31.75, 170 63.51, 170 80 M170 0 C170 31.54, 170 63.07, 170 80 M170 80 C123.64 80, 77.28 80, 0 80 M170 80 C102.9 80, 35.81 80, 0 80 M0 80 C0 55.01, 0 30.02, 0 0 M0 80 C0 60.57, 0 41.13, 0 0" stroke="#1971c2" stroke-width="2" fill="none"/></g><g transform="translate(1062.7760067428571 328.3905594188792) rotate(0 35.16997528076172 13.5)"><text x="35.16997528076172" y="20.08" font-family="Nunito, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Commit</text></g><g stroke-linecap="round" transform="translate(1262.687192961119 301.8905594188792) rotate(0 85 40)"><path d="M0 0 L170 0 L170 80 L0 80" stroke="none" stroke-width="0" fill="#e7f5ff"/><path d="M0 0 C50.17 0, 100.34 0, 170 0 M0 0 C58.72 0, 117.44 0, 170 0 M170 0 C170 23.41, 170 46.83, 170 80 M170 0 C170 21.65, 170 43.3, 170 80 M170 80 C133.58 80, 97.17 80, 0 80 M170 80 C108.13 80, 46.27 80, 0 80 M0 80 C0 51, 0 22, 0 0 M0 80 C0 54.68, 0 29.37, 0 0" stroke="#1971c2" stroke-width="2" fill="none"/></g><g transform="translate(1289.757261320494 328.3905594188792) rotate(0 57.929931640625 13.5)"><text x="57.929931640625" y="20.08" font-family="Nunito, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Final Review</text></g><g stroke-linecap="round" transform="translate(1512.687192961119 301.8905594188792) rotate(0 84.99999999999989 40)"><path d="M0 0 L170 0 L170 80 L0 80" stroke="none" stroke-width="0" fill="#fff4e6"/><path d="M0 0 C66.42 0, 132.83 0, 170 0 M0 0 C57.35 0, 114.7 0, 170 0 M170 0 C170 28.36, 170 56.72, 170 80 M170 0 C170 30.17, 170 60.35, 170 80 M170 80 C132.77 80, 95.54 80, 0 80 M170 80 C117.17 80, 64.33 80, 0 80 M0 80 C0 51.63, 0 23.25, 0 0 M0 80 C0 59.69, 0 39.37, 0 0" stroke="#e8590c" stroke-width="2" fill="none"/></g><g transform="translate(1564.107229277037 328.3905594188792) rotate(0 33.57996368408192 13.5)"><text x="33.57996368408203" y="20.08" font-family="Nunito, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Squash</text></g><g stroke-linecap="round"><g transform="translate(441.94598202361897 341.8905594188792) rotate(0 29.5 0)"><path d="M0 0 C18.9 0, 37.79 0, 59 0 M0 0 C18.89 0, 37.78 0, 59 0" stroke="#495057" stroke-width="2" fill="none"/></g><g transform="translate(441.94598202361897 341.8905594188792) rotate(0 29.5 0)"><path d="M59 0 L45.41 6.34 L45.41 -6.34 L59 0" stroke="none" stroke-width="0" fill="#495057" fill-rule="evenodd"/><path d="M59 0 C54.65 2.03, 50.29 4.06, 45.41 6.34 M59 0 C54.65 2.03, 50.29 4.06, 45.41 6.34 M45.41 6.34 C45.41 1.85, 45.41 -2.64, 45.41 -6.34 M45.41 6.34 C45.41 3.01, 45.41 -0.32, 45.41 -6.34 M45.41 -6.34 C48.17 -5.05, 50.92 -3.77, 59 0 M45.41 -6.34 C49.58 -4.39, 53.75 -2.45, 59 0 M59 0 C59 0, 59 0, 59 0 M59 0 C59 0, 59 0, 59 0" stroke="#495057" stroke-width="2" fill="none"/></g></g><mask/><g stroke-linecap="round"><g transform="translate(691.9459820236189 341.7657960210282) rotate(0 29.5 0.03502764805136849)"><path d="M0 0 C18.67 0.02, 37.34 0.04, 59 0.07 M0 0 C15.34 0.02, 30.69 0.04, 59 0.07" stroke="#495057" stroke-width="2" fill="none"/></g><g transform="translate(691.9459820236189 341.7657960210282) rotate(0 29.5 0.03502764805136849)"><path d="M59 0.07 L45.4 6.39 L45.41 -6.29 L59 0.07" stroke="none" stroke-width="0" fill="#495057" fill-rule="evenodd"/><path d="M59 0.07 C54.7 2.07, 50.39 4.07, 45.4 6.39 M59 0.07 C55.46 1.71, 51.93 3.36, 45.4 6.39 M45.4 6.39 C45.4 3.07, 45.41 -0.24, 45.41 -6.29 M45.4 6.39 C45.4 2.31, 45.41 -1.78, 45.41 -6.29 M45.41 -6.29 C49.02 -4.6, 52.62 -2.91, 59 0.07 M45.41 -6.29 C49.98 -4.15, 54.55 -2.01, 59 0.07 M59 0.07 C59 0.07, 59 0.07, 59 0.07 M59 0.07 C59 0.07, 59 0.07, 59 0.07" stroke="#495057" stroke-width="2" fill="none"/></g></g><mask/><g stroke-linecap="round"><g transform="translate(941.9459820236189 341.8905594188792) rotate(0 29.5 0)"><path d="M0 0 C15.72 0, 31.45 0, 59 0 M0 0 C12.59 0, 25.18 0, 59 0" stroke="#495057" stroke-width="2" fill="none"/></g><g transform="translate(941.9459820236189 341.8905594188792) rotate(0 29.5 0)"><path d="M59 0 L45.41 6.34 L45.41 -6.34 L59 0" stroke="none" stroke-width="0" fill="#495057" fill-rule="evenodd"/><path d="M59 0 C55.38 1.69, 51.75 3.38, 45.41 6.34 M59 0 C56.1 1.35, 53.2 2.71, 45.41 6.34 M45.41 6.34 C45.41 2.69, 45.41 -0.95, 45.41 -6.34 M45.41 6.34 C45.41 2.45, 45.41 -1.45, 45.41 -6.34 M45.41 -6.34 C48.51 -4.89, 51.62 -3.44, 59 0 M45.41 -6.34 C49.55 -4.41, 53.68 -2.48, 59 0 M59 0 C59 0, 59 0, 59 0 M59 0 C59 0, 59 0, 59 0" stroke="#495057" stroke-width="2" fill="none"/></g></g><mask/><g stroke-linecap="round"><g transform="translate(1192.1871929611189 341.8905594188792) rotate(0 29 0)"><path d="M0 0 C20.51 0, 41.01 0, 58 0 M0 0 C13.71 0, 27.42 0, 58 0" stroke="#495057" stroke-width="2" fill="none"/></g><g transform="translate(1192.1871929611189 341.8905594188792) rotate(0 29 0)"><path d="M58 0 L44.41 6.34 L44.41 -6.34 L58 0" stroke="none" stroke-width="0" fill="#495057" fill-rule="evenodd"/><path d="M58 0 C53.19 2.24, 48.39 4.48, 44.41 6.34 M58 0 C54.79 1.5, 51.57 3, 44.41 6.34 M44.41 6.34 C44.41 3.54, 44.41 0.74, 44.41 -6.34 M44.41 6.34 C44.41 2.1, 44.41 -2.14, 44.41 -6.34 M44.41 -6.34 C48.22 -4.56, 52.03 -2.78, 58 0 M44.41 -6.34 C49.13 -4.13, 53.86 -1.93, 58 0 M58 0 C58 0, 58 0, 58 0 M58 0 C58 0, 58 0, 58 0" stroke="#495057" stroke-width="2" fill="none"/></g></g><mask/><g stroke-linecap="round"><g transform="translate(1442.187192961119 341.8905594188792) rotate(0 29 0)"><path d="M0 0 C23.02 0, 46.04 0, 58 0 M0 0 C22.86 0, 45.73 0, 58 0" stroke="#495057" stroke-width="2" fill="none"/></g><g transform="translate(1442.187192961119 341.8905594188792) rotate(0 29 0)"><path d="M58 0 L44.41 6.34 L44.41 -6.34 L58 0" stroke="none" stroke-width="0" fill="#495057" fill-rule="evenodd"/><path d="M58 0 C52.6 2.52, 47.21 5.03, 44.41 6.34 M58 0 C52.64 2.5, 47.28 5, 44.41 6.34 M44.41 6.34 C44.41 2.88, 44.41 -0.58, 44.41 -6.34 M44.41 6.34 C44.41 1.34, 44.41 -3.67, 44.41 -6.34 M44.41 -6.34 C48.65 -4.36, 52.9 -2.38, 58 0 M44.41 -6.34 C47.71 -4.8, 51.01 -3.26, 58 0 M58 0 C58 0, 58 0, 58 0 M58 0 C58 0, 58 0, 58 0" stroke="#495057" stroke-width="2" fill="none"/></g></g><mask/><g stroke-linecap="round"><g transform="translate(1105.9713525935056 301.24160820093687) rotate(0 -257.13862305703515 -25.36790720352883)"><path d="M0 0 C0.16 -15.45, 0.82 -29.61, 0.46 -50.74 M0.46 -50.74 C-203.45 -49.33, -406.37 -49.36, -514.73 -50.74 M-514.73 -50.74 C-514.48 -35.22, -513.61 -21.1, -514.73 -4.58" stroke="#1e1e1e" stroke-width="2.5" fill="none" stroke-dasharray="8 10"/></g><g transform="translate(1105.9713525935056 301.24160820093687) rotate(0 -257.13862305703515 -25.36790720352883)"><path d="M-513.93 -6.29 L-519.84 -18.63 L-506.52 -18.98 L-514.46 -6.35" stroke="none" stroke-width="0" fill="#1e1e1e" fill-rule="evenodd"/><path d="M-514.73 -4.58 C-516.24 -9.61, -517.43 -13.62, -520.55 -18.4 M-520.55 -18.4 C-516.46 -18.16, -510.8 -18.02, -507.88 -17.92 M-507.88 -17.92 C-509.91 -12.89, -511.4 -8.95, -514.73 -4.58 M-514.73 -4.58 C-514.73 -4.58, -514.73 -4.58, -514.73 -4.58" stroke="#1e1e1e" stroke-width="2.5" fill="none"/></g></g><mask/><g stroke-linecap="round" transform="translate(764.0054128271904 439.53467214209365) rotate(0 85 40)"><path d="M0 0 L170 0 L170 80 L0 80" stroke="none" stroke-width="0" fill="#f8f0fc"/><path d="M0 0 C36.42 0, 72.83 0, 170 0 M0 0 C61.87 0, 123.73 0, 170 0 M170 0 C170 29, 170 58, 170 80 M170 0 C170 25.32, 170 50.63, 170 80 M170 80 C112.9 80, 55.8 80, 0 80 M170 80 C132.74 80, 95.48 80, 0 80 M0 80 C0 54.98, 0 29.96, 0 0 M0 80 C0 53.73, 0 27.46, 0 0" stroke="#9c36b5" stroke-width="2" fill="none"/></g><g transform="translate(814.3154409033623 466.03467214209365) rotate(0 34.689971923828125 13.5)"><text x="34.689971923828125" y="20.08" font-family="Nunito, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Consult</text></g><g stroke-linecap="round" transform="translate(1013.2731304611189 441.5018875438792) rotate(0 85 40)"><path d="M0 0 L170 0 L170 80 L0 80" stroke="none" stroke-width="0" fill="#f8f0fc"/><path d="M0 0 C34.51 0, 69.02 0, 170 0 M0 0 C52.19 0, 104.37 0, 170 0 M170 0 C170 27.18, 170 54.36, 170 80 M170 0 C170 16.74, 170 33.49, 170 80 M170 80 C116.69 80, 63.38 80, 0 80 M170 80 C128.54 80, 87.08 80, 0 80 M0 80 C0 61.19, 0 42.38, 0 0 M0 80 C0 50.47, 0 20.94, 0 0" stroke="#9c36b5" stroke-width="2" fill="none"/></g><g transform="translate(1065.1331615890485 468.0018875438792) rotate(0 33.13996887207031 13.5)"><text x="33.13996887207031" y="20.08" font-family="Nunito, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Review</text></g><g stroke-linecap="round" transform="translate(1263.102232023619 441.3544266063792) rotate(0 85 40)"><path d="M0 0 L170 0 L170 80 L0 80" stroke="none" stroke-width="0" fill="#f8f0fc"/><path d="M0 0 C38.88 0, 77.76 0, 170 0 M0 0 C51.77 0, 103.54 0, 170 0 M170 0 C170 21.59, 170 43.18, 170 80 M170 0 C170 23.08, 170 46.17, 170 80 M170 80 C127.7 80, 85.4 80, 0 80 M170 80 C105.5 80, 41 80, 0 80 M0 80 C0 52.33, 0 24.66, 0 0 M0 80 C0 55.98, 0 31.96, 0 0" stroke="#9c36b5" stroke-width="2" fill="none"/></g><g transform="translate(1314.9622631515488 467.8544266063792) rotate(0 33.13996887207031 13.5)"><text x="33.13996887207031" y="20.08" font-family="Nunito, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Review</text></g><g stroke-linecap="round"><g transform="translate(821.8011252527858 384.9074865022129) rotate(0 -10.062174479166742 24.93419828869048)"><path d="M0.34 0.02 C-2.97 4.08, -19.12 16.29, -19.82 24.55 C-20.53 32.8, -6.44 45.32, -3.88 49.55" stroke="#1e1e1e" stroke-width="2.5" fill="none" stroke-dasharray="8 10"/></g><g transform="translate(821.8011252527858 384.9074865022129) rotate(0 -10.062174479166742 24.93419828869048)"><path d="M-4.68 50.51 L-17.29 43.89 L-7.77 34.52 L-4.53 49.85" stroke="none" stroke-width="0" fill="#1e1e1e" fill-rule="evenodd"/><path d="M-3.88 49.55 C-8.09 47.99, -11.99 45.86, -17.42 43.1 M-17.42 43.1 C-15.21 40.84, -12.54 38.6, -7.64 35.03 M-7.64 35.03 C-6.51 40.48, -5.54 45.01, -3.88 49.55 M-3.88 49.55 C-3.88 49.55, -3.88 49.55, -3.88 49.55" stroke="#1e1e1e" stroke-width="2.5" fill="none"/></g></g><mask/><g stroke-linecap="round"><g transform="translate(877.3578282503618 437.32861745459365) rotate(0 10.902312563711916 -25.476190476190595)"><path d="M0.66 0.57 C4.24 -3.94, 21.69 -18.5, 22.28 -27.05 C22.87 -35.61, 7.15 -46.68, 4.2 -50.76" stroke="#1e1e1e" stroke-width="2.5" fill="none" stroke-dasharray="8 10"/></g><g transform="translate(877.3578282503618 437.32861745459365) rotate(0 10.902312563711916 -25.476190476190595)"><path d="M4.46 -49.17 L17.95 -46.71 L8.02 -36.18 L5.93 -50.19" stroke="none" stroke-width="0" fill="#1e1e1e" fill-rule="evenodd"/><path d="M4.2 -50.76 C9.99 -48.4, 13.51 -48.11, 18.21 -45.68 M18.21 -45.68 C15.58 -44.04, 13.06 -41.15, 9.32 -36.76 M9.32 -36.76 C6.83 -41.23, 4.58 -46.12, 4.2 -50.76 M4.2 -50.76 C4.2 -50.76, 4.2 -50.76, 4.2 -50.76" stroke="#1e1e1e" stroke-width="2.5" fill="none"/></g></g><mask/><g stroke-linecap="round"><g transform="translate(1071.1701842067077 386.325152451304) rotate(0 -10.062174479166629 25.09602864583337)"><path d="M0.48 -0.68 C-3.11 3.3, -20.11 16.09, -20.89 24.48 C-21.67 32.87, -7.08 45.54, -4.21 49.64" stroke="#1e1e1e" stroke-width="2.5" fill="none" stroke-dasharray="8 10"/></g><g transform="translate(1071.1701842067077 386.325152451304) rotate(0 -10.062174479166629 25.09602864583337)"><path d="M-4.47 48.61 L-19.27 44.26 L-6.76 35.83 L-3.29 50.49" stroke="none" stroke-width="0" fill="#1e1e1e" fill-rule="evenodd"/><path d="M-4.21 49.64 C-9.97 46.62, -13.75 45.01, -17.97 43.67 M-17.97 43.67 C-15.07 40.54, -12.71 39.34, -8.49 35.26 M-8.49 35.26 C-8.31 40.55, -6.63 45.08, -4.21 49.64 M-4.21 49.64 C-4.21 49.64, -4.21 49.64, -4.21 49.64" stroke="#1e1e1e" stroke-width="2.5" fill="none"/></g></g><mask/><g stroke-linecap="round"><g transform="translate(1126.6981789983745 439.0699441179705) rotate(0 10.916666666666629 -25.63802083333337)"><path d="M-0.77 0.2 C2.73 -4.23, 20.48 -18.48, 21.47 -27.25 C22.47 -36.01, 7.86 -48.19, 5.2 -52.36" stroke="#1e1e1e" stroke-width="2.5" fill="none" stroke-dasharray="8 10"/></g><g transform="translate(1126.6981789983745 439.0699441179705) rotate(0 10.916666666666629 -25.63802083333337)"><path d="M3.9 -51.78 L20.53 -45.74 L10.22 -37.19 L3.93 -50.98" stroke="none" stroke-width="0" fill="#1e1e1e" fill-rule="evenodd"/><path d="M5.2 -52.36 C10.03 -50.67, 13.72 -47.91, 18.81 -46.31 M18.81 -46.31 C17.3 -44.8, 15.72 -43.59, 9.3 -38.04 M9.3 -38.04 C6.94 -43.3, 7.32 -46.83, 5.2 -52.36 M5.2 -52.36 C5.2 -52.36, 5.2 -52.36, 5.2 -52.36" stroke="#1e1e1e" stroke-width="2.5" fill="none"/></g></g><mask/><g stroke-linecap="round"><g transform="translate(1319.601173790041 385.524371201304) rotate(0 -10.062174479166629 25.09602864583337)"><path d="M-0.36 -0.55 C-3.55 3.28, -19.43 14.91, -19.93 23.19 C-20.43 31.48, -6.12 44.69, -3.36 49.17" stroke="#1e1e1e" stroke-width="2.5" fill="none" stroke-dasharray="8 10"/></g><g transform="translate(1319.601173790041 385.524371201304) rotate(0 -10.062174479166629 25.09602864583337)"><path d="M-1.64 49.73 L-15.94 43.46 L-8.28 36 L-2.56 49.44" stroke="none" stroke-width="0" fill="#1e1e1e" fill-rule="evenodd"/><path d="M-3.36 49.17 C-7.25 47.82, -11.1 46.63, -16.85 42.61 M-16.85 42.61 C-13.91 40.23, -12.49 38.07, -7.01 34.62 M-7.01 34.62 C-5.56 39.2, -5.78 42.18, -3.36 49.17 M-3.36 49.17 C-3.36 49.17, -3.36 49.17, -3.36 49.17" stroke="#1e1e1e" stroke-width="2.5" fill="none"/></g></g><mask/><g stroke-linecap="round"><g transform="translate(1375.129168581708 438.2691628679705) rotate(0 10.916666666666629 -25.63802083333337)"><path d="M0.2 -1.09 C3.98 -5.62, 21.45 -19.33, 22.32 -27.72 C23.19 -36.11, 8.18 -47.38, 5.43 -51.41" stroke="#1e1e1e" stroke-width="2.5" fill="none" stroke-dasharray="8 10"/></g><g transform="translate(1375.129168581708 438.2691628679705) rotate(0 10.916666666666629 -25.63802083333337)"><path d="M6.35 -50.56 L18.02 -44.55 L10.94 -37.01 L4.15 -51.41" stroke="none" stroke-width="0" fill="#1e1e1e" fill-rule="evenodd"/><path d="M5.43 -51.41 C7.79 -49.36, 11.61 -47.94, 19.28 -45.93 M19.28 -45.93 C16.87 -44.6, 14.07 -42.01, 10.14 -37.28 M10.14 -37.28 C8.08 -41.98, 9.18 -44.12, 5.43 -51.41 M5.43 -51.41 C5.43 -51.41, 5.43 -51.41, 5.43 -51.41" stroke="#1e1e1e" stroke-width="2.5" fill="none"/></g></g><mask/><g stroke-linecap="round"><g transform="translate(196.5947372939562 342.6703833276098) rotate(0 29.25 0)"><path d="M0 0 C17.64 0, 35.28 0, 58.5 0 M0 0 C22.59 0, 45.19 0, 58.5 0" stroke="#495057" stroke-width="2" fill="none"/></g><g transform="translate(196.5947372939562 342.6703833276098) rotate(0 29.25 0)"><path d="M58.5 0 L44.91 6.34 L44.91 -6.34 L58.5 0" stroke="none" stroke-width="0" fill="#495057" fill-rule="evenodd"/><path d="M58.5 0 C54.4 1.91, 50.3 3.82, 44.91 6.34 M58.5 0 C53.25 2.45, 48 4.9, 44.91 6.34 M44.91 6.34 C44.91 3.68, 44.91 1.02, 44.91 -6.34 M44.91 6.34 C44.91 3.14, 44.91 -0.06, 44.91 -6.34 M44.91 -6.34 C50.13 -3.9, 55.36 -1.46, 58.5 0 M44.91 -6.34 C48.63 -4.6, 52.35 -2.87, 58.5 0 M58.5 0 C58.5 0, 58.5 0, 58.5 0 M58.5 0 C58.5 0, 58.5 0, 58.5 0" stroke="#495057" stroke-width="2" fill="none"/></g></g><mask/><g stroke-linecap="round" transform="translate(262.20034555288464 438.98351854308146) rotate(0 85 40)"><path d="M0 0 L170 0 L170 80 L0 80" stroke="none" stroke-width="0" fill="#f8f0fc"/><path d="M0 0 C59.58 0, 119.15 0, 170 0 M0 0 C43.28 0, 86.56 0, 170 0 M170 0 C170 18.75, 170 37.49, 170 80 M170 0 C170 23.47, 170 46.94, 170 80 M170 80 C128.04 80, 86.08 80, 0 80 M170 80 C130.51 80, 91.03 80, 0 80 M0 80 C0 52.15, 0 24.3, 0 0 M0 80 C0 60.03, 0 40.05, 0 0" stroke="#9c36b5" stroke-width="2" fill="none"/></g><g transform="translate(314.06037668081433 465.48351854308146) rotate(0 33.13996887207031 13.5)"><text x="33.13996887207031" y="20.08" font-family="Nunito, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Review</text></g><g stroke-linecap="round"><g transform="translate(320.49605797848005 384.8563329032007) rotate(0 -10.312174479166742 24.68419828869048)"><path d="M-0.5 -0.25 C-3.98 3.6, -20.17 15.03, -20.76 23.26 C-21.36 31.49, -6.8 44.77, -4.07 49.1" stroke="#1e1e1e" stroke-width="2.5" fill="none" stroke-dasharray="8 10"/></g><g transform="translate(320.49605797848005 384.8563329032007) rotate(0 -10.312174479166742 24.68419828869048)"><path d="M-3.48 49.66 L-18.55 42 L-7.62 34.94 L-4.87 49.56" stroke="none" stroke-width="0" fill="#1e1e1e" fill-rule="evenodd"/><path d="M-4.07 49.1 C-8.81 46.77, -13.57 45.6, -17.63 42.68 M-17.63 42.68 C-15.61 40.77, -12.14 38.35, -7.87 34.59 M-7.87 34.59 C-6.45 40.69, -5.69 45, -4.07 49.1 M-4.07 49.1 C-4.07 49.1, -4.07 49.1, -4.07 49.1" stroke="#1e1e1e" stroke-width="2.5" fill="none"/></g></g><mask/><g stroke-linecap="round"><g transform="translate(375.0527609760561 436.27746385558146) rotate(0 11.152312563711916 -25.226190476190595)"><path d="M-0.31 -1.14 C3.78 -5.46, 22.42 -18.18, 23.45 -26.45 C24.49 -34.72, 9.03 -46.8, 5.9 -50.77" stroke="#1e1e1e" stroke-width="2.5" fill="none" stroke-dasharray="8 10"/></g><g transform="translate(375.0527609760561 436.27746385558146) rotate(0 11.152312563711916 -25.226190476190595)"><path d="M4.07 -52.12 L20.37 -44.87 L9.32 -35.83 L5.08 -51.14" stroke="none" stroke-width="0" fill="#1e1e1e" fill-rule="evenodd"/><path d="M5.9 -50.77 C7.39 -48.22, 11.02 -48.02, 19.87 -45.58 M19.87 -45.58 C18.55 -43.7, 15.89 -40.14, 10.9 -36.74 M10.9 -36.74 C7.51 -43.3, 6.21 -49.02, 5.9 -50.77 M5.9 -50.77 C5.9 -50.77, 5.9 -50.77, 5.9 -50.77" stroke="#1e1e1e" stroke-width="2.5" fill="none"/></g></g><mask/><g stroke-linecap="round" transform="translate(60.0 279.7176124656595) rotate(0 57.3193359375 77.412109375)"><path d="M0 0 L114.64 0 L114.64 154.82 L0 154.82" stroke="none" stroke-width="0" fill="#ffffff"/><path d="M0 0 C44.32 0, 88.63 0, 114.64 0 M0 0 C42.97 0, 85.94 0, 114.64 0 M114.64 0 C114.64 37.65, 114.64 75.3, 114.64 154.82 M114.64 0 C114.64 35.17, 114.64 70.35, 114.64 154.82 M114.64 154.82 C78.03 154.82, 41.43 154.82, 0 154.82 M114.64 154.82 C91.16 154.82, 67.68 154.82, 0 154.82 M0 154.82 C0 104.58, 0 54.34, 0 0 M0 154.82 C0 114.99, 0 75.15, 0 0" stroke="#1e1e1e" stroke-width="2" fill="none"/></g><g stroke-linecap="round" transform="translate(65.69945484203299 272.8620149381867) rotate(0 57.3193359375 77.412109375)"><path d="M0 0 L114.64 0 L114.64 154.82 L0 154.82" stroke="none" stroke-width="0" fill="#ffffff"/><path d="M0 0 C42.04 0, 84.08 0, 114.64 0 M0 0 C26.56 0, 53.13 0, 114.64 0 M114.64 0 C114.64 45.34, 114.64 90.67, 114.64 154.82 M114.64 0 C114.64 61.43, 114.64 122.86, 114.64 154.82 M114.64 154.82 C76.05 154.82, 37.45 154.82, 0 154.82 M114.64 154.82 C74.88 154.82, 35.12 154.82, 0 154.82 M0 154.82 C0 102.3, 0 49.77, 0 0 M0 154.82 C0 114.72, 0 74.61, 0 0" stroke="#1e1e1e" stroke-width="2" fill="none"/></g><g stroke-linecap="round" transform="translate(72.9987980769231 266.25772664835165) rotate(0 57.3193359375 77.412109375)"><path d="M0 0 L114.64 0 L114.64 154.82 L0 154.82" stroke="none" stroke-width="0" fill="#ffffff"/><path d="M0 0 C45.21 0, 90.42 0, 114.64 0 M0 0 C43.7 0, 87.4 0, 114.64 0 M114.64 0 C114.64 50.88, 114.64 101.75, 114.64 154.82 M114.64 0 C114.64 36.13, 114.64 72.26, 114.64 154.82 M114.64 154.82 C86 154.82, 57.37 154.82, 0 154.82 M114.64 154.82 C70.06 154.82, 25.47 154.82, 0 154.82 M0 154.82 C0 108.8, 0 62.78, 0 0 M0 154.82 C0 123.11, 0 91.4, 0 0" stroke="#1e1e1e" stroke-width="2" fill="none"/></g><g transform="translate(84.64819688063403 330.16983602335165) rotate(0 45.66993713378906 13.5)"><text x="45.66993713378906" y="20.08" font-family="Nunito, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Draft plan</text></g><g stroke-linecap="round" transform="translate(865.0207224416213 60.0) rotate(0 21.26395089285711 21.26395089285711)"><path d="M10.63 0 C18.12 0.24, 25.5 -3.17, 31.9 0 C35.43 1.36, 44.97 6.75, 42.53 10.63 C44.08 15.5, 40.58 25.74, 42.53 31.9 C42.67 42.04, 38.4 44.12, 31.9 42.53 C28.32 44.33, 19.69 42.34, 10.63 42.53 C0.32 41.86, -0.24 37.54, 0 31.9 C3.09 25.1, -0.23 21.45, 0 10.63 C1.16 0.09, 5.48 -2.49, 10.63 0" stroke="none" stroke-width="0" fill="#ebfbee"/><path d="M10.63 0 C20.62 -0.43, 26.56 1.5, 31.9 0 M10.63 0 C18.93 -0.52, 28.03 -0.51, 31.9 0 M31.9 0 C39.09 1.11, 42.62 3.37, 42.53 10.63 M31.9 0 C37.01 -0.77, 44.77 2.55, 42.53 10.63 M42.53 10.63 C42.25 18.45, 43.09 22.01, 42.53 31.9 M42.53 10.63 C42.79 16.74, 41.85 23.3, 42.53 31.9 M42.53 31.9 C42.94 37.17, 40.81 42.73, 31.9 42.53 M42.53 31.9 C44.62 39.47, 37.92 41.6, 31.9 42.53 M31.9 42.53 C23.88 40.86, 17.47 44.21, 10.63 42.53 M31.9 42.53 C24.7 41.99, 19.54 42.68, 10.63 42.53 M10.63 42.53 C4.9 42.47, 0.86 40.46, 0 31.9 M10.63 42.53 C2.64 42.72, -2.11 39.55, 0 31.9 M0 31.9 C-0.97 25.66, 0.76 18.75, 0 10.63 M0 31.9 C0.49 25.45, 0.33 17.65, 0 10.63 M0 10.63 C0.35 2.69, 1.7 1.35, 10.63 0 M0 10.63 C1.74 3.11, 4.65 -0.13, 10.63 0" stroke="#2f9e44" stroke-width="2" fill="none"/></g><g transform="translate(927.0519724416213 63.66249999999991) rotate(0 49.19597625732422 18.899999999999977)"><text x="0" y="28.112000000000002" font-family="Nunito, Segoe UI Emoji" font-size="28px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Planner</text></g><g stroke-linecap="round" transform="translate(865.4586747557255 117.35435267857133) rotate(0 21.26395089285711 21.26395089285711)"><path d="M10.63 0 C15.06 1.38, 25.47 -1.68, 31.9 0 C35.8 -1.09, 45.94 1.77, 42.53 10.63 C40.92 19.78, 39.62 26.29, 42.53 31.9 C42.97 38.85, 35.86 45.03, 31.9 42.53 C23.98 42.85, 21.98 44.26, 10.63 42.53 C1.05 41.97, -1.55 37.37, 0 31.9 C1.06 22.3, 0.33 16.22, 0 10.63 C2.04 5.91, 3.73 0.05, 10.63 0" stroke="none" stroke-width="0" fill="#e7f5ff"/><path d="M10.63 0 C15.74 1.42, 23.95 0.46, 31.9 0 M10.63 0 C15.66 -0.4, 20.45 0.5, 31.9 0 M31.9 0 C38.15 -0.81, 43.25 3.88, 42.53 10.63 M31.9 0 C39.57 -0.57, 42.57 4.98, 42.53 10.63 M42.53 10.63 C41.79 16.74, 41.58 25.26, 42.53 31.9 M42.53 10.63 C42.55 17.6, 41.94 25, 42.53 31.9 M42.53 31.9 C40.66 39.96, 37.08 42.38, 31.9 42.53 M42.53 31.9 C43.63 41.16, 40.55 41.14, 31.9 42.53 M31.9 42.53 C21.44 42.28, 16.31 43.54, 10.63 42.53 M31.9 42.53 C27.39 42.67, 22.41 42.28, 10.63 42.53 M10.63 42.53 C5.35 41.71, -0.78 38.03, 0 31.9 M10.63 42.53 C2.61 42.91, -1.44 40.81, 0 31.9 M0 31.9 C-0.27 25.06, 0.45 15.49, 0 10.63 M0 31.9 C-0.12 25.02, -0.49 15.28, 0 10.63 M0 10.63 C-0.86 3.94, 3.36 1.79, 10.63 0 M0 10.63 C-2.23 1.91, 4.33 2.09, 10.63 0" stroke="#1971c2" stroke-width="2" fill="none"/></g><g transform="translate(927.2018388182255 121.01685267857124) rotate(0 37.603981018066406 18.899999999999977)"><text x="0" y="28.112000000000002" font-family="Nunito, Segoe UI Emoji" font-size="28px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Coder</text></g><g stroke-linecap="round" transform="translate(865.3347908271539 175.30412946428555) rotate(0 21.26395089285711 23.900000000000034)"><path d="M10.63 0 C13.98 2.61, 22.61 -2.06, 31.9 0 C38.23 0.74, 43.59 3.62, 42.53 10.63 C45.57 14.92, 45.08 24.25, 42.53 37.17 C40.43 45.27, 42.34 47.56, 31.9 47.8 C25.29 47.75, 18.47 46.41, 10.63 47.8 C5.31 49.31, 2.31 45.9, 0 37.17 C-1.23 31.33, -1.61 25.12, 0 10.63 C1.19 3.63, 6.63 -1.01, 10.63 0" stroke="none" stroke-width="0" fill="#f8f0fc"/><path d="M10.63 0 C19.85 -1.32, 28.15 1.1, 31.9 0 M10.63 0 C15.6 0.51, 21.71 0, 31.9 0 M31.9 0 C39.36 1.65, 40.78 4.59, 42.53 10.63 M31.9 0 C37.9 1.81, 44.53 2.01, 42.53 10.63 M42.53 10.63 C44.27 20.29, 43.57 28.64, 42.53 37.17 M42.53 10.63 C42.61 19.92, 43.2 29.54, 42.53 37.17 M42.53 37.17 C41.81 42.68, 37.38 47.58, 31.9 47.8 M42.53 37.17 C40.75 44.93, 40.43 48.56, 31.9 47.8 M31.9 47.8 C24.76 49.47, 14.86 47.7, 10.63 47.8 M31.9 47.8 C23.36 48.21, 15.34 47.63, 10.63 47.8 M10.63 47.8 C1.83 49.75, 0.43 45.46, 0 37.17 M10.63 47.8 C4.98 48.88, -1.1 42.72, 0 37.17 M0 37.17 C0.72 30.31, 0.04 21.04, 0 10.63 M0 37.17 C0.79 28.14, 0.23 17.65, 0 10.63 M0 10.63 C-1.09 4.68, 4.92 -1.77, 10.63 0 M0 10.63 C0.55 3.52, 2.11 1.02, 10.63 0" stroke="#6741d9" stroke-width="2" fill="none"/></g><g transform="translate(927.3660408271539 178.96662946428592) rotate(0 58.869972229003906 18.899999999999977)"><text x="0" y="28.112000000000002" font-family="Nunito, Segoe UI Emoji" font-size="28px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Reviewer</text></g><g transform="translate(610.2606563358518 115.59231627747204) rotate(0 116.1359634399414 24.30000000000001)"><text x="0" y="36.144000000000005" font-family="Nunito, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Three models:</text></g></svg>
@@ -1,7 +1,9 @@
1
1
  # Automation contract
2
2
 
3
3
  The machine-facing contract for driving neal from scripts, CI, and benchmark
4
- harnesses.
4
+ harnesses. [neal-swebench](https://github.com/navels/neal-swebench) is a working
5
+ example: a harness that drives neal headless through this contract to benchmark
6
+ role pairings on SWE-bench Pro.
5
7
 
6
8
  Noninteractive harnesses should run `neal execute <plan.md>` for an already
7
9
  accepted executable plan, or `neal run <plan.md>` when neal should refine and
package/docs/compat.md CHANGED
@@ -3,7 +3,7 @@
3
3
  `neal compat` answers one question per model: **can this OpenAI-compatible model
4
4
  drive neal's loop at all**, as a coder, a reviewer, or a planner? It is a
5
5
  **compatibility smoke test, not a performance benchmark**. There is no
6
- resolve-rate, no score, no ranking, and no real SWE-bench repo involved. The
6
+ resolve-rate, no score, and no ranking. The
7
7
  fixtures are deliberately trivial. Any working agent should pass them. A failure
8
8
  therefore means something is **fundamentally wrong** with the model's ability to
9
9
  operate neal's contract. It does not mean a task was hard.
@@ -17,8 +17,8 @@ external benchmark assets, no dataset download, no remote runner.
17
17
  - **Measured:** whether the model can follow neal's contract end to end (valid
18
18
  tool calls + structured output, no max-step loops, no unresolved operator
19
19
  blocks, a clean finalization) **and** solve a trivial bundled fixture.
20
- - **Not measured:** skill. No resolve-rate, no scores, no rankings, no real
21
- SWE-bench repos, trivial fixtures only.
20
+ - **Not measured:** skill. No resolve-rate, no scores, no rankings, trivial
21
+ fixtures only.
22
22
  - **Outcome:** a binary **PASS / FAIL per (model, role)**, with a structural
23
23
  failure mode recorded for every FAIL.
24
24
 
@@ -10,8 +10,8 @@
10
10
 
11
11
  ## How to read this
12
12
 
13
- - Scored under the **discrimination criterion** ([#49](https://github.com/navels/neal/issues/49),
14
- `schemaVersion: 2`): a reviewer PASSes a fixture iff it raises at least one blocking
13
+ - Scored under the **discrimination criterion** (`schemaVersion: 2`): a reviewer
14
+ PASSes a fixture iff it raises at least one blocking
15
15
  finding on the broken diff **and** strictly fewer on the good diff. Severity
16
16
  calibration is not graded. Earlier sweeps (2026-06-18) required zero blocking
17
17
  findings on the good diff and are not comparable.
@@ -163,8 +163,7 @@ neal compat --model <slug> --role all --reference openai-codex --json
163
163
  ```
164
164
 
165
165
  `openai-codex` (gpt-5.5) is the authoritative reference. No OpenRouter model has
166
- validated as a drop-in reference (two tried 2026-06-18, both failed. See the
167
- 2026-06-18 revision of this file). Throttle to about three concurrent invocations
166
+ validated as a drop-in reference. Throttle to about three concurrent invocations
168
167
  for codex capacity.
169
168
 
170
169
  Paid slugs only, never `:free`. Re-run when a slug's backing model version changes.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@navels/neal",
3
- "version": "0.3.1",
3
+ "version": "0.3.3",
4
4
  "description": "A source-first multi-agent CLI for planning, executing, reviewing, and resuming scoped code changes.",
5
5
  "license": "MIT",
6
6
  "publishConfig": {
@@ -8,7 +8,7 @@
8
8
  },
9
9
  "author": "Lee Nave",
10
10
  "type": "module",
11
- "packageManager": "pnpm@11.13.1",
11
+ "packageManager": "pnpm@11.20.0",
12
12
  "homepage": "https://github.com/navels/neal#readme",
13
13
  "repository": {
14
14
  "type": "git",
@@ -40,8 +40,8 @@
40
40
  "examples"
41
41
  ],
42
42
  "engines": {
43
- "node": ">=24.18.0",
44
- "pnpm": ">=11.13.1"
43
+ "node": ">=24.19.0",
44
+ "pnpm": ">=11.20.0"
45
45
  },
46
46
  "scripts": {
47
47
  "build": "rm -rf dist && node node_modules/typescript-7/bin/tsc -p tsconfig.json && chmod +x dist/neal/index.js",
@@ -55,10 +55,10 @@
55
55
  "typecheck": "node node_modules/typescript-7/bin/tsc --noEmit -p tsconfig.json && node node_modules/typescript-7/bin/tsc -p tsconfig.test.json"
56
56
  },
57
57
  "dependencies": {
58
- "@ai-sdk/openai-compatible": "3.0.12",
59
- "@anthropic-ai/claude-agent-sdk": "0.3.218",
60
- "@openai/codex-sdk": "0.145.0",
61
- "ai": "7.0.31",
58
+ "@ai-sdk/openai-compatible": "3.0.27",
59
+ "@anthropic-ai/claude-agent-sdk": "0.3.227",
60
+ "@openai/codex-sdk": "0.147.0",
61
+ "ai": "7.0.58",
62
62
  "dotenv": "^17.4.2",
63
63
  "yaml": "^2.9.0",
64
64
  "zod": "4.4.3"
@@ -66,10 +66,10 @@
66
66
  "devDependencies": {
67
67
  "@eslint/js": "^10.0.1",
68
68
  "@types/node": "^24.13.3",
69
- "eslint": "^10.7.0",
70
- "tsx": "^4.23.1",
69
+ "eslint": "^10.8.1",
70
+ "tsx": "^4.23.11",
71
71
  "typescript": "^6.0.3",
72
72
  "typescript-7": "npm:typescript@^7.0.2",
73
- "typescript-eslint": "^8.64.0"
73
+ "typescript-eslint": "^8.66.0"
74
74
  }
75
75
  }
Binary file