jackherd 1.6.1 → 1.7.0
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/CHANGELOG.md +26 -0
- package/INSTALL.md +176 -0
- package/README.md +226 -310
- package/assets/branding/README.md +7 -3
- package/assets/branding/jackherd-logo-dark-1024.png +0 -0
- package/assets/branding/jackherd-logo-dark-512.png +0 -0
- package/assets/branding/jackherd-logo-dark.svg +1 -1
- package/assets/icons/bark-dark.svg +1 -0
- package/assets/icons/bark.svg +1 -0
- package/assets/icons/bowl-dark.svg +1 -0
- package/assets/icons/bowl.svg +1 -0
- package/assets/icons/decide-dark.svg +1 -0
- package/assets/icons/decide.svg +1 -0
- package/assets/icons/ear-dark.svg +1 -0
- package/assets/icons/ear.svg +1 -0
- package/assets/icons/lanes-dark.svg +1 -0
- package/assets/icons/lanes.svg +1 -0
- package/assets/icons/plan-dark.svg +1 -0
- package/assets/icons/plan.svg +1 -0
- package/assets/icons/space.svg +1 -0
- package/dist/{chunk-QJSXHHQ3.js → chunk-OBUWTQ6Z.js} +25 -0
- package/dist/config.d.ts +14 -3
- package/dist/config.js +111 -10
- package/dist/plan-format.d.ts +180 -77
- package/dist/plan-format.js +292 -93
- package/docs/lanes-dark.svg +50 -0
- package/docs/lanes.svg +50 -1
- package/docs/skills-dark.svg +65 -0
- package/docs/skills.svg +65 -1
- package/docs/workflow-dark.svg +138 -0
- package/docs/workflow.svg +135 -169
- package/herdr-plugin/herdr-plugin.toml +6 -6
- package/herdr-plugin/open-plans.ts +1 -1
- package/herdr-plugin/restore-plans.ts +7 -7
- package/install.sh +1 -1
- package/kit/hooks/hooks/approval-gate/decision.ts +61 -0
- package/kit/hooks/hooks/approval-gate/herdr-panes.ts +24 -0
- package/kit/hooks/hooks/approval-gate/index.ts +69 -0
- package/kit/hooks/hooks/approval-gate/lane.ts +14 -0
- package/kit/hooks/hooks/approval-gate/request.ts +111 -0
- package/kit/hooks/hooks/approval-gate/run.ts +94 -0
- package/kit/hooks/hooks/approval-gate/settings.ts +26 -0
- package/kit/hooks/hooks/approval-gate/store.ts +70 -0
- package/kit/hooks/hooks/approval-gate/transcripts.ts +40 -0
- package/kit/hooks/hooks/merge-guard/approval.ts +11 -74
- package/kit/hooks/hooks/merge-guard/run.ts +2 -1
- package/kit/hooks/hooks/model-gate/agent-definition.ts +13 -0
- package/kit/hooks/hooks/model-gate/index.ts +58 -0
- package/kit/hooks/hooks/model-gate/run.ts +63 -0
- package/kit/hooks/hooks/model-log/index.ts +60 -0
- package/kit/hooks/hooks/model-log/run.ts +57 -0
- package/kit/hooks/hooks/model-log/store.ts +40 -0
- package/kit/hooks/hooks/model-log/transcript.ts +37 -0
- package/kit/hooks/hooks/shared/checkout.ts +22 -0
- package/kit/hooks/hooks/shared/command.ts +6 -0
- package/kit/hooks/hooks/shared/config.ts +21 -0
- package/kit/hooks/hooks/shared/dialog-answer.ts +5 -0
- package/kit/hooks/hooks/shared/dialog-answers.ts +74 -0
- package/kit/hooks/hooks/shared/files.ts +19 -0
- package/kit/hooks/hooks/shared/fresh.ts +4 -0
- package/kit/hooks/hooks/shared/json.ts +4 -0
- package/kit/hooks/hooks/shared/model-family.ts +48 -0
- package/kit/hooks/hooks/shared/plan-model-table.ts +41 -0
- package/kit/hooks/hooks/shared/private-directory.ts +29 -0
- package/kit/hooks/hooks/shared/repository-directory.ts +14 -0
- package/kit/hooks/hooks/shared/subagent-phase.ts +99 -0
- package/kit/hooks/hooks.json +25 -0
- package/kit/workflow/skills/follow/SKILL.md +4 -3
- package/kit/workflow/skills/implement/SKILL.md +6 -6
- package/kit/workflow/skills/orchestrate/SKILL.md +109 -27
- package/kit/workflow/skills/plan/SKILL.md +5 -5
- package/kit/workflow/skills/start/SKILL.md +2 -2
- package/package.json +4 -1
- package/schemas/jackherd.schema.json +43 -5
- package/src/check/command.ts +31 -4
- package/src/check/deferral-arrows.ts +1 -1
- package/src/check/parallel-report.ts +23 -0
- package/src/check/plan-structure-check.ts +120 -53
- package/src/cli.ts +8 -2
- package/src/config/nested-quantifier.ts +73 -0
- package/src/config/repository-directory.ts +11 -0
- package/src/config/schema.ts +63 -8
- package/src/plan-format/board-prose.ts +36 -0
- package/src/plan-format/dependencies.ts +227 -0
- package/src/plan-format/documentation-gate.ts +16 -0
- package/src/plan-format/index.ts +23 -1
- package/src/plan-format/lanes.ts +35 -1
- package/src/plan-format/model-column.ts +52 -0
- package/src/plan-format/phases.ts +16 -1
- package/src/plan-format/plan-structure.ts +10 -28
- package/src/plan-format/progress.ts +7 -29
- package/src/plans/command.ts +3 -3
- package/src/plans/current-phase.ts +71 -0
- package/src/plans/ensure-panes.ts +2 -2
- package/src/plans/herd-command.ts +4 -0
- package/src/plans/lane-discovery.ts +14 -2
- package/src/plans/lane-tickets.ts +69 -0
- package/src/plans/layout.ts +182 -88
- package/src/plans/live.ts +5 -1
- package/src/plans/phase-models-read.ts +37 -0
- package/src/plans/phase-models.ts +70 -0
- package/src/plans/plan-panes.ts +8 -7
- package/src/plans/pull-requests.ts +78 -4
- package/src/plans/selection.ts +1 -40
- package/src/plans/settings.ts +9 -3
- package/src/plans/shown-with-more.ts +5 -0
- package/src/plans/snapshot.ts +82 -8
- package/src/plans/sprint-html.ts +2 -2
- package/src/plans/supervisor.ts +5 -4
- package/src/plans/symbols.ts +9 -6
- package/src/plans/texts.ts +30 -13
- package/src/plans/view.ts +1 -0
- package/src/sync/herdr-plugin.ts +1 -1
- package/src/sync/next-steps.ts +1 -1
- package/src/sync/render.ts +2 -1
- package/src/sync/setup-questions.ts +2 -2
- package/src/terminal/text.ts +4 -0
- package/src/terminal/types.ts +1 -1
- package/src/vocabulary/index.ts +39 -0
- package/src/watch/approvals.ts +96 -0
- package/src/watch/command.ts +154 -50
- package/src/watch/failed-tests.ts +52 -0
- package/src/watch/failure-read.ts +56 -0
- package/src/watch/failures.ts +107 -0
- package/src/watch/feedback-item.ts +21 -0
- package/src/watch/feedback-read.ts +2 -1
- package/src/watch/feedback.ts +37 -28
- package/src/watch/gh-process.ts +53 -0
- package/src/watch/gh.ts +10 -20
- package/src/watch/heartbeat-progress.ts +1 -1
- package/src/watch/lane-model.ts +54 -0
- package/src/watch/lane-parallel.ts +46 -0
- package/src/watch/lane-progress.ts +28 -4
- package/src/watch/lane-report.ts +62 -9
- package/src/watch/lane-sources.ts +1 -1
- package/src/watch/no-finding.ts +47 -0
- package/src/watch/plan-badges-read.ts +19 -7
- package/src/watch/plan-badges.ts +59 -7
- package/src/watch/plan-views.ts +5 -5
- package/src/watch/previews.ts +3 -9
- package/src/watch/pull-requests.ts +12 -2
- package/src/watch/recorded-reads.ts +25 -0
- package/src/watch/source-fields.ts +4 -0
- package/src/watch/source-tickets.ts +99 -0
- package/src/watch/sources.ts +62 -15
- package/src/watch/texts.ts +21 -1
- package/src/watch/watch-defaults.ts +8 -0
- package/src/watch/watch-events.ts +64 -4
- package/src/watch/watcher-lock.ts +1 -1
- package/src/watch/workflow-runs.ts +5 -7
- package/docs/lanes.mmd +0 -9
- package/docs/skills.mmd +0 -10
package/docs/lanes.svg
CHANGED
|
@@ -1 +1,50 @@
|
|
|
1
|
-
<svg aria-roledescription="flowchart-v2" role="graphics-document document" viewBox="0 0 843.4375 333.20001220703125" style="max-width: 843.4375px;" class="flowchart" xmlns="http://www.w3.org/2000/svg" width="100%" id="diagram"><style>#diagram{font-family:Helvetica,Arial,sans-serif;font-size:16px;fill:#000000;}#diagram .error-icon{fill:#552222;}#diagram .error-text{fill:#552222;stroke:#552222;}#diagram .edge-thickness-normal{stroke-width:1px;}#diagram .edge-thickness-thick{stroke-width:3.5px;}#diagram .edge-pattern-solid{stroke-dasharray:0;}#diagram .edge-thickness-invisible{stroke-width:0;fill:none;}#diagram .edge-pattern-dashed{stroke-dasharray:3;}#diagram .edge-pattern-dotted{stroke-dasharray:2;}#diagram .marker{fill:#666;stroke:#666;}#diagram .marker.cross{stroke:#666;}#diagram svg{font-family:Helvetica,Arial,sans-serif;font-size:16px;}#diagram p{margin:0;}#diagram .label{font-family:Helvetica,Arial,sans-serif;color:#000000;}#diagram .cluster-label text{fill:#333;}#diagram .cluster-label span{color:#333;}#diagram .cluster-label span p{background-color:transparent;}#diagram .label text,#diagram span{fill:#000000;color:#000000;}#diagram .node rect,#diagram .node circle,#diagram .node ellipse,#diagram .node polygon,#diagram .node path{fill:#eee;stroke:#999;stroke-width:1px;}#diagram .rough-node .label text,#diagram .node .label text,#diagram .image-shape .label,#diagram .icon-shape .label{text-anchor:middle;}#diagram .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#diagram .rough-node .label,#diagram .node .label,#diagram .image-shape .label,#diagram .icon-shape .label{text-align:center;}#diagram .node.clickable{cursor:pointer;}#diagram .root .anchor path{fill:#666!important;stroke-width:0;stroke:#666;}#diagram .arrowheadPath{fill:#333333;}#diagram .edgePath .path{stroke:#666;stroke-width:2.0px;}#diagram .flowchart-link{stroke:#666;fill:none;}#diagram .edgeLabel{background-color:white;text-align:center;}#diagram .edgeLabel p{background-color:white;}#diagram .edgeLabel rect{opacity:0.5;background-color:white;fill:white;}#diagram .labelBkg{background-color:rgba(255, 255, 255, 0.5);}#diagram .cluster rect{fill:hsl(0, 0%, 98.9215686275%);stroke:#707070;stroke-width:1px;}#diagram .cluster text{fill:#333;}#diagram .cluster span{color:#333;}#diagram div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:Helvetica,Arial,sans-serif;font-size:12px;background:hsl(-160, 0%, 93.3333333333%);border:1px solid #707070;border-radius:2px;pointer-events:none;z-index:100;}#diagram .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#000000;}#diagram rect.text{fill:none;stroke-width:0;}#diagram .icon-shape,#diagram .image-shape{background-color:white;text-align:center;}#diagram .icon-shape p,#diagram .image-shape p{background-color:white;padding:2px;}#diagram .icon-shape rect,#diagram .image-shape rect{opacity:0.5;background-color:white;fill:white;}#diagram :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}</style><g><marker orient="auto" markerHeight="8" markerWidth="8" markerUnits="userSpaceOnUse" refY="5" refX="5" viewBox="0 0 10 10" class="marker flowchart-v2" id="diagram_flowchart-v2-pointEnd"><path style="stroke-width: 1; stroke-dasharray: 1, 0;" class="arrowMarkerPath" d="M 0 0 L 10 5 L 0 10 z"></path></marker><marker orient="auto" markerHeight="8" markerWidth="8" markerUnits="userSpaceOnUse" refY="5" refX="4.5" viewBox="0 0 10 10" class="marker flowchart-v2" id="diagram_flowchart-v2-pointStart"><path style="stroke-width: 1; stroke-dasharray: 1, 0;" class="arrowMarkerPath" d="M 0 5 L 10 10 L 10 0 z"></path></marker><marker orient="auto" markerHeight="11" markerWidth="11" markerUnits="userSpaceOnUse" refY="5" refX="11" viewBox="0 0 10 10" class="marker flowchart-v2" id="diagram_flowchart-v2-circleEnd"><circle style="stroke-width: 1; stroke-dasharray: 1, 0;" class="arrowMarkerPath" r="5" cy="5" cx="5"></circle></marker><marker orient="auto" markerHeight="11" markerWidth="11" markerUnits="userSpaceOnUse" refY="5" refX="-1" viewBox="0 0 10 10" class="marker flowchart-v2" id="diagram_flowchart-v2-circleStart"><circle style="stroke-width: 1; stroke-dasharray: 1, 0;" class="arrowMarkerPath" r="5" cy="5" cx="5"></circle></marker><marker orient="auto" markerHeight="11" markerWidth="11" markerUnits="userSpaceOnUse" refY="5.2" refX="12" viewBox="0 0 11 11" class="marker cross flowchart-v2" id="diagram_flowchart-v2-crossEnd"><path style="stroke-width: 2; stroke-dasharray: 1, 0;" class="arrowMarkerPath" d="M 1,1 l 9,9 M 10,1 l -9,9"></path></marker><marker orient="auto" markerHeight="11" markerWidth="11" markerUnits="userSpaceOnUse" refY="5.2" refX="-1" viewBox="0 0 11 11" class="marker cross flowchart-v2" id="diagram_flowchart-v2-crossStart"><path style="stroke-width: 2; stroke-dasharray: 1, 0;" class="arrowMarkerPath" d="M 1,1 l 9,9 M 10,1 l -9,9"></path></marker><g class="root"><g class="clusters"></g><g class="edgePaths"><path marker-end="url(#diagram_flowchart-v2-pointEnd)" style="" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" id="L_coordinator_laneA_0" d="M119.184,131.2L141.504,112.633C163.823,94.067,208.462,56.933,246.852,40.324C285.242,23.715,317.382,27.63,333.452,29.588L349.522,31.545"></path><path marker-end="url(#diagram_flowchart-v2-pointEnd)" style="" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" id="L_coordinator_user_1" d="M152.711,153.071L169.443,150.659C186.174,148.247,219.638,143.424,259.585,141.012C299.533,138.6,345.964,138.6,369.179,138.6L392.395,138.6"></path><path marker-end="url(#diagram_flowchart-v2-pointEnd)" style="" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" id="L_coordinator_laneB_2" d="M152.711,184.087L169.443,188.847C186.174,193.608,219.638,203.129,252.442,210.205C285.245,217.282,317.389,221.913,333.461,224.229L349.533,226.545"></path><path marker-end="url(#diagram_flowchart-v2-pointEnd)" style="" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" id="L_laneA_coordinator_3" d="M353.492,50.084L336.76,52.495C320.029,54.906,286.565,59.728,251.019,72.916C215.473,86.104,177.844,107.658,159.03,118.435L140.215,129.212"></path><path marker-end="url(#diagram_flowchart-v2-pointEnd)" style="" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" id="L_laneB_coordinator_4" d="M353.492,246.442L336.76,248.794C320.029,251.145,286.565,255.847,251.206,247.734C215.846,239.62,178.591,218.689,159.963,208.224L141.336,197.759"></path><path marker-end="url(#diagram_flowchart-v2-pointEnd)" style="" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" id="L_watcher_coordinator_5" d="M699.348,260.4L679.216,269.45C659.084,278.5,618.819,296.6,572.494,305.65C526.168,314.7,473.781,314.7,419.539,314.7C365.297,314.7,309.199,314.7,259.011,295.322C208.824,275.945,164.546,237.19,142.407,217.812L120.268,198.434"></path><path marker-end="url(#diagram_flowchart-v2-pointEnd)" style="" class="edge-thickness-normal edge-pattern-dotted edge-thickness-normal edge-pattern-solid flowchart-link" id="L_laneA_watcher_6" d="M489.297,40.3L504.173,40.3C519.049,40.3,548.802,40.3,588.635,68.65C628.468,96.999,678.381,153.698,703.338,182.048L728.295,210.398"></path><path marker-end="url(#diagram_flowchart-v2-pointEnd)" style="" class="edge-thickness-normal edge-pattern-dotted edge-thickness-normal edge-pattern-solid flowchart-link" id="L_laneB_watcher_7" d="M489.297,236.9L504.173,236.9C519.049,236.9,548.802,236.9,577.888,236.9C606.974,236.9,635.393,236.9,649.603,236.9L663.813,236.9"></path></g><g class="edgeLabels"><g transform="translate(253.1015625, 19.799999237060547)" class="edgeLabel"><g transform="translate(-30.8984375, -10.5)" class="label"><g><rect height="21" width="61.796875" y="0" x="-2" style="" class="background"></rect><text style="" y="-10.1"><tspan dy="1.1em" y="-0.1em" x="0" class="text-outer-tspan"><tspan font-weight="normal" class="text-inner-tspan" font-style="normal">prompts</tspan></tspan></text></g></g></g><g transform="translate(253.1015625, 138.5999984741211)" class="edgeLabel"><g transform="translate(-75.390625, -19.299999237060547)" class="label"><g><rect height="38.599998474121094" width="150.78125" y="0" x="-2" style="" class="background"></rect><text style="" y="-10.1"><tspan dy="1.1em" y="-0.1em" x="0" class="text-outer-tspan"><tspan font-weight="normal" class="text-inner-tspan" font-style="normal">open</tspan><tspan font-weight="normal" class="text-inner-tspan" font-style="normal"> decisions,</tspan></tspan><tspan dy="1.1em" y="1em" x="0" class="text-outer-tspan"><tspan font-weight="normal" class="text-inner-tspan" font-style="normal">one</tspan><tspan font-weight="normal" class="text-inner-tspan" font-style="normal"> approval</tspan><tspan font-weight="normal" class="text-inner-tspan" font-style="normal"> per</tspan><tspan font-weight="normal" class="text-inner-tspan" font-style="normal"> PR</tspan></tspan></text></g></g></g><g transform="translate(253.1015625, 212.64999771118164)" class="edgeLabel"><g transform="translate(-30.8984375, -10.5)" class="label"><g><rect height="21" width="61.796875" y="0" x="-2" style="" class="background"></rect><text style="" y="-10.1"><tspan dy="1.1em" y="-0.1em" x="0" class="text-outer-tspan"><tspan font-weight="normal" class="text-inner-tspan" font-style="normal">prompts</tspan></tspan></text></g></g></g><g transform="translate(253.1015625, 64.54999923706055)" class="edgeLabel"><g transform="translate(-62.31640625, -10.5)" class="label"><g><rect height="21" width="124.6328125" y="0" x="-2" style="" class="background"></rect><text style="" y="-10.1"><tspan dy="1.1em" y="-0.1em" x="0" class="text-outer-tspan"><tspan font-weight="normal" class="text-inner-tspan" font-style="normal">questions</tspan><tspan font-weight="normal" class="text-inner-tspan" font-style="normal"> as</tspan><tspan font-weight="normal" class="text-inner-tspan" font-style="normal"> text</tspan></tspan></text></g></g></g><g transform="translate(253.1015625, 260.5499973297119)" class="edgeLabel"><g transform="translate(-62.31640625, -10.5)" class="label"><g><rect height="21" width="124.6328125" y="0" x="-2" style="" class="background"></rect><text style="" y="-10.1"><tspan dy="1.1em" y="-0.1em" x="0" class="text-outer-tspan"><tspan font-weight="normal" class="text-inner-tspan" font-style="normal">questions</tspan><tspan font-weight="normal" class="text-inner-tspan" font-style="normal"> as</tspan><tspan font-weight="normal" class="text-inner-tspan" font-style="normal"> text</tspan></tspan></text></g></g></g><g transform="translate(421.39453125, 314.6999969482422)" class="edgeLabel"><g transform="translate(-25.1796875, -10.5)" class="label"><g><rect height="21" width="50.359375" y="0" x="-3" style="" class="background"></rect><text style="" y="-10.1"><tspan dy="1.1em" y="-0.1em" x="0" class="text-outer-tspan"><tspan font-weight="normal" class="text-inner-tspan" font-style="normal">wakes</tspan></tspan></text></g></g></g><g transform="translate(578.5546875, 40.29999923706055)" class="edgeLabel"><g transform="translate(-64.2578125, -10.5)" class="label"><g><rect height="21" width="128.515625" y="0" x="-2" style="" class="background"></rect><text style="" y="-10.1"><tspan dy="1.1em" y="-0.1em" x="0" class="text-outer-tspan"><tspan font-weight="normal" class="text-inner-tspan" font-style="normal">state,</tspan><tspan font-weight="normal" class="text-inner-tspan" font-style="normal"> PR,</tspan><tspan font-weight="normal" class="text-inner-tspan" font-style="normal"> checks</tspan></tspan></text></g></g></g><g transform="translate(578.5546875, 236.89999771118164)" class="edgeLabel"><g transform="translate(-64.2578125, -10.5)" class="label"><g><rect height="21" width="128.515625" y="0" x="-2" style="" class="background"></rect><text style="" y="-10.1"><tspan dy="1.1em" y="-0.1em" x="0" class="text-outer-tspan"><tspan font-weight="normal" class="text-inner-tspan" font-style="normal">state,</tspan><tspan font-weight="normal" class="text-inner-tspan" font-style="normal"> PR,</tspan><tspan font-weight="normal" class="text-inner-tspan" font-style="normal"> checks</tspan></tspan></text></g></g></g></g><g class="nodes"><g transform="translate(80.35546875, 163.49999809265137)" id="flowchart-coordinator-0" class="node default"><rect height="64.5999984741211" width="144.7109375" y="-32.29999923706055" x="-72.35546875" style="" class="basic label-container"></rect><g transform="translate(0, -17.299999237060547)" style="" class="label"><rect></rect><g><rect style="stroke: none" class="background"></rect><text style="" y="-10.1"><tspan dy="1.1em" y="-0.1em" x="0" class="text-outer-tspan"><tspan font-weight="normal" class="text-inner-tspan" font-style="normal">Coordinator</tspan></tspan><tspan dy="1.1em" y="1em" x="0" class="text-outer-tspan"><tspan font-weight="normal" class="text-inner-tspan" font-style="normal">/orchestrate</tspan></tspan></text></g></g></g><g transform="translate(421.39453125, 40.29999923706055)" id="flowchart-laneA-1" class="node default"><rect height="64.5999984741211" width="135.8046875" y="-32.29999923706055" x="-67.90234375" style="" class="basic label-container"></rect><g transform="translate(0, -17.299999237060547)" style="" class="label"><rect></rect><g><rect style="stroke: none" class="background"></rect><text style="" y="-10.1"><tspan dy="1.1em" y="-0.1em" x="0" class="text-outer-tspan"><tspan font-weight="normal" class="text-inner-tspan" font-style="normal">Lane</tspan><tspan font-weight="normal" class="text-inner-tspan" font-style="normal"> a</tspan></tspan><tspan dy="1.1em" y="1em" x="0" class="text-outer-tspan"><tspan font-weight="normal" class="text-inner-tspan" font-style="normal">worktree</tspan><tspan font-weight="normal" class="text-inner-tspan" font-style="normal"> a</tspan></tspan></text></g></g></g><g transform="translate(421.39453125, 138.5999984741211)" id="flowchart-user-3" class="node default"><rect height="32" width="50" y="-16" x="-25" ry="16" rx="16" style="" class="basic label-container"></rect><g transform="translate(0, -8.5)" style="" class="label"><rect></rect><g><rect style="stroke: none" class="background"></rect><text style="" y="-10.1"><tspan dy="1.1em" y="-0.1em" x="0" class="text-outer-tspan"><tspan font-weight="normal" class="text-inner-tspan" font-style="normal">You</tspan></tspan></text></g></g></g><g transform="translate(421.39453125, 236.89999771118164)" id="flowchart-laneB-5" class="node default"><rect height="64.5999984741211" width="135.8046875" y="-32.29999923706055" x="-67.90234375" style="" class="basic label-container"></rect><g transform="translate(0, -17.299999237060547)" style="" class="label"><rect></rect><g><rect style="stroke: none" class="background"></rect><text style="" y="-10.1"><tspan dy="1.1em" y="-0.1em" x="0" class="text-outer-tspan"><tspan font-weight="normal" class="text-inner-tspan" font-style="normal">Lane</tspan><tspan font-weight="normal" class="text-inner-tspan" font-style="normal"> b</tspan></tspan><tspan dy="1.1em" y="1em" x="0" class="text-outer-tspan"><tspan font-weight="normal" class="text-inner-tspan" font-style="normal">worktree</tspan><tspan font-weight="normal" class="text-inner-tspan" font-style="normal"> b</tspan></tspan></text></g></g></g><g transform="translate(751.625, 236.89999771118164)" id="flowchart-watcher-10" class="node default"><rect height="47" width="167.625" y="-23.5" x="-83.8125" style="" class="basic label-container"></rect><g transform="translate(0, -8.5)" style="" class="label"><rect></rect><g><rect style="stroke: none" class="background"></rect><text style="" y="-10.1"><tspan dy="1.1em" y="-0.1em" x="0" class="text-outer-tspan"><tspan font-weight="normal" class="text-inner-tspan" font-style="normal">jh</tspan><tspan font-weight="normal" class="text-inner-tspan" font-style="normal"> watch</tspan></tspan></text></g></g></g></g></g></g></svg>
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="960" height="440" viewBox="0 0 960 440" role="img" aria-labelledby="t d"><title id="t">What runs where</title><desc id="d">The coordinator, running /jh-orchestrate in the main checkout, prompts two lanes, each in its own git worktree, and asks you the open decisions as a choice, with one approval per pull request. The lanes send their questions back as text. jh watch reads each lane's state, pull request and checks and wakes the coordinator. Small dots travel along the lines to show the messages.</desc><defs><style>.s{font-family:ui-sans-serif, system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif}.m{font-family:ui-monospace, SFMono-Regular, Menlo, Consolas, 'Liberation Mono', monospace}@keyframes k1{0%{opacity:0;transform:translate(388px,182px)}2.22%{opacity:0;transform:translate(388px,182px)}2.56%{opacity:1;transform:translate(388px,182px)}3.89%{opacity:1;transform:translate(420.4px,173px)}5.56%{opacity:1;transform:translate(451.7px,162.1px)}7.22%{opacity:1;transform:translate(482.1px,150.1px)}8.89%{opacity:1;transform:translate(512px,137.2px)}10.56%{opacity:1;transform:translate(541.5px,124px)}12.22%{opacity:1;transform:translate(571px,111px)}13.89%{opacity:1;transform:translate(600.6px,98.7px)}15.56%{opacity:1;transform:translate(630.7px,87.5px)}17.22%{opacity:1;transform:translate(661.4px,77.9px)}18.89%{opacity:1;transform:translate(693px,70.5px)}20.56%{opacity:1;transform:translate(725.8px,65.7px)}22.22%{opacity:0;transform:translate(760px,64px)}100%{opacity:0;transform:translate(760px,64px)}}.k1{animation:k1 9s linear infinite both}@keyframes k2{0%{opacity:0;transform:translate(388px,226px)}8.89%{opacity:0;transform:translate(388px,226px)}9.22%{opacity:1;transform:translate(388px,226px)}10.56%{opacity:1;transform:translate(420.4px,235.1px)}12.22%{opacity:1;transform:translate(451.7px,246px)}13.89%{opacity:1;transform:translate(482.1px,258.2px)}15.56%{opacity:1;transform:translate(512px,271.3px)}17.22%{opacity:1;transform:translate(541.5px,284.8px)}18.89%{opacity:1;transform:translate(571px,298px)}20.56%{opacity:1;transform:translate(600.6px,310.6px)}22.22%{opacity:1;transform:translate(630.7px,322px)}23.89%{opacity:1;transform:translate(661.4px,331.8px)}25.56%{opacity:1;transform:translate(693px,339.3px)}27.22%{opacity:1;transform:translate(725.8px,344.3px)}28.89%{opacity:0;transform:translate(760px,346px)}100%{opacity:0;transform:translate(760px,346px)}}.k2{animation:k2 9s linear infinite both}@keyframes k3{0%{opacity:0;transform:translate(770px,94px)}24.44%{opacity:0;transform:translate(770px,94px)}24.78%{opacity:1;transform:translate(770px,94px)}25.56%{opacity:1;transform:translate(762.1px,107.5px)}26.67%{opacity:1;transform:translate(753.5px,119.9px)}27.78%{opacity:1;transform:translate(744.3px,131.3px)}28.89%{opacity:1;transform:translate(734.7px,141.7px)}30%{opacity:1;transform:translate(724.7px,151.1px)}31.11%{opacity:1;transform:translate(714.5px,159.6px)}32.22%{opacity:1;transform:translate(704.2px,167.2px)}33.33%{opacity:1;transform:translate(694px,174px)}34.44%{opacity:1;transform:translate(683.9px,179.9px)}35.56%{opacity:1;transform:translate(674.2px,185px)}36.67%{opacity:1;transform:translate(664.8px,189.4px)}37.78%{opacity:0;transform:translate(656px,193px)}100%{opacity:0;transform:translate(656px,193px)}}.k3{animation:k3 9s linear infinite both}@keyframes k4{0%{opacity:0;transform:translate(770px,316px)}28.89%{opacity:0;transform:translate(770px,316px)}29.22%{opacity:1;transform:translate(770px,316px)}30%{opacity:1;transform:translate(762.1px,302.6px)}31.11%{opacity:1;transform:translate(753.5px,290.3px)}32.22%{opacity:1;transform:translate(744.3px,279.1px)}33.33%{opacity:1;transform:translate(734.7px,268.9px)}34.44%{opacity:1;transform:translate(724.7px,259.7px)}35.56%{opacity:1;transform:translate(714.5px,251.5px)}36.67%{opacity:1;transform:translate(704.2px,244.2px)}37.78%{opacity:1;transform:translate(694px,237.8px)}38.89%{opacity:1;transform:translate(683.9px,232.2px)}40%{opacity:1;transform:translate(674.2px,227.4px)}41.11%{opacity:1;transform:translate(664.8px,223.3px)}42.22%{opacity:0;transform:translate(656px,220px)}100%{opacity:0;transform:translate(656px,220px)}}.k4{animation:k4 9s linear infinite both}@keyframes k5{0%{opacity:0;transform:translate(600px,205px)}42.22%{opacity:0;transform:translate(600px,205px)}42.56%{opacity:1;transform:translate(600px,205px)}43.24%{opacity:1;transform:translate(584.4px,205px)}44.26%{opacity:1;transform:translate(567.8px,205px)}45.28%{opacity:1;transform:translate(550.3px,205px)}46.3%{opacity:1;transform:translate(532.1px,205px)}47.31%{opacity:1;transform:translate(513.6px,205px)}48.33%{opacity:1;transform:translate(494.8px,205px)}49.35%{opacity:1;transform:translate(475.9px,205px)}50.37%{opacity:1;transform:translate(457.2px,205px)}51.39%{opacity:1;transform:translate(438.8px,205px)}52.41%{opacity:1;transform:translate(421.1px,205px)}53.43%{opacity:1;transform:translate(404px,205px)}54.44%{opacity:0;transform:translate(388px,205px)}100%{opacity:0;transform:translate(388px,205px)}}.k5{animation:k5 9s linear infinite both}@keyframes k6{0%{opacity:0;transform:translate(760px,346px)}48.89%{opacity:0;transform:translate(760px,346px)}49.22%{opacity:1;transform:translate(760px,346px)}50.37%{opacity:1;transform:translate(725.8px,344.2px)}51.85%{opacity:1;transform:translate(693px,339.3px)}53.33%{opacity:1;transform:translate(661.4px,331.8px)}54.81%{opacity:1;transform:translate(630.7px,322px)}56.3%{opacity:1;transform:translate(600.6px,310.6px)}57.78%{opacity:1;transform:translate(571px,298px)}59.26%{opacity:1;transform:translate(541.5px,284.8px)}60.74%{opacity:1;transform:translate(512px,271.3px)}62.22%{opacity:1;transform:translate(482.1px,258.2px)}63.7%{opacity:1;transform:translate(451.7px,246px)}65.19%{opacity:1;transform:translate(420.4px,235.1px)}66.67%{opacity:0;transform:translate(388px,226px)}100%{opacity:0;transform:translate(388px,226px)}}.k6{animation:k6 9s linear infinite both}@keyframes k7{0%{opacity:0;transform:translate(300px,204px)}67.78%{opacity:0;transform:translate(300px,204px)}68.11%{opacity:1;transform:translate(300px,204px)}68.7%{opacity:1;transform:translate(287.1px,202.6px)}69.63%{opacity:1;transform:translate(273.5px,201.5px)}70.56%{opacity:1;transform:translate(259.3px,200.6px)}71.48%{opacity:1;transform:translate(244.6px,200px)}72.41%{opacity:1;transform:translate(229.5px,199.6px)}73.33%{opacity:1;transform:translate(214.2px,199.5px)}74.26%{opacity:1;transform:translate(198.8px,199.6px)}75.19%{opacity:1;transform:translate(183.4px,200px)}76.11%{opacity:1;transform:translate(168.1px,200.6px)}77.04%{opacity:1;transform:translate(153px,201.5px)}77.96%{opacity:1;transform:translate(138.3px,202.6px)}78.89%{opacity:0;transform:translate(124px,204px)}100%{opacity:0;transform:translate(124px,204px)}}.k7{animation:k7 9s linear infinite both}@keyframes k8{0%{opacity:0;transform:translate(124px,204px)}83.33%{opacity:0;transform:translate(124px,204px)}83.67%{opacity:1;transform:translate(124px,204px)}84.26%{opacity:1;transform:translate(138.3px,202.6px)}85.19%{opacity:1;transform:translate(153px,201.5px)}86.11%{opacity:1;transform:translate(168.1px,200.6px)}87.04%{opacity:1;transform:translate(183.4px,200px)}87.96%{opacity:1;transform:translate(198.8px,199.6px)}88.89%{opacity:1;transform:translate(214.2px,199.5px)}89.81%{opacity:1;transform:translate(229.5px,199.6px)}90.74%{opacity:1;transform:translate(244.6px,200px)}91.67%{opacity:1;transform:translate(259.3px,200.6px)}92.59%{opacity:1;transform:translate(273.5px,201.5px)}93.52%{opacity:1;transform:translate(287.1px,202.6px)}94.44%{opacity:0;transform:translate(300px,204px)}100%{opacity:0;transform:translate(300px,204px)}}.k8{animation:k8 9s linear infinite both}@media (prefers-reduced-motion:reduce){*{animation:none!important}}</style><clipPath id="jack-clip"><rect width="240" height="240" rx="50"/></clipPath><symbol id="jack" viewBox="0 0 240 240"><rect width="240" height="240" rx="50" fill="#212E34"/><g clip-path="url(#jack-clip)"><g transform="translate(34 8)"><path fill="#4A4E51" d="M80 50.5c.2 .1 .2 .1 1 1c-.2 .6-.3 1.3-.5 2c-.7 .4-.7 .4-4 2c-6 3.3-6 3.3-7 6.5c1.2-.4 2.3-.6 3.5-1c.8 0 1.7 0 2.5 0c.2 .1 .2 .1 1 1c-.5 2-.5 2-5.5 6.5c-3 5-3 5-5.5 11c.2 .3 .2 .3 1 2c.2 .3 .3 .7 .5 1c-.7 .7-1.3 1.3-2 2c-1.3-.2-2.6-.3-4-.5c0-1.2 0-2.3 0-3.5c-.2 .1-.2 .1-1.5 .5c-1.2 2.7-2.4 5.3-3.5 8c-1 2.1-2 4.2-3 6.3c-2.5 5.7-2.5 5.7-3 8.2c.5 0 1 0 1.5 0c.1-.8 .4-1.7 .5-2.5c.6 0 1.3 0 2 0c.5 2 1 3.9 1.6 6c1 4 2.2 8 3.4 11.9c2.1 8.4 1.1 15.5-3 23.1c-.6-.2-1.3-.3-2-.5c-.1-1.5-.3-3-.5-4.6c-.3-2.6-.5-5.2-1-7.9c-.5 0-1 0-1.5 0c-.1 1.7-.4 3.3-.5 5c-2.7 10.2-2.7 10.2-6 13.5c-6.1-3.1-9-14.9-11-21c-1.1-8.2 .9-14.7 3.5-22.5c-8.4 8.3-8.3 20.5-9 31.5c-.6-.2-1.3-.3-2-.5c-5.4-8.9-5.1-15-3-25c.5-1 1-2 1.5-3c-3 1.5-3 1.5-6.5 5c-.4 0-.6 0-1 0c.8-6.5 3.2-10.2 7.5-15c.6-.8 .6-.8 3.5-5c2.6-2.6 5.2-5.1 8-7.5c.6-.6 .6-.6 3.5-3.5c-.5-2-.5-2-1-3.5c3.6-6 6.5-9.2 12.5-13c.4-.6 .6-1.3 1-2c-.5-.6-1-1.3-1.5-2c2-3 2-3 4.5-4.5c.5 1 .5 1 1 3.5c2.5-1 2.5-1 8.5-5.5c.3 0 .7 0 1 0c-.1-.4-.1-.4-.5-2.5c4.3-3.3 10-2.5 15-1zM153 69.5c1.2 .2 2.3 .3 3.5 .5c.3 .7 .7 1.3 1 2c.3 0 .7 0 1 0c.5 1.2 1 2.3 1.5 3.5c3.4 7.6 6.2 13.7 12.2 19.6c3.3 3.4 3.3 3.4 3.8 5.9c-.2 .2-.3 .3-.5 .5c.1 .7 .1 .7 .5 4.5c-.5 .3-1 .7-1.5 1c-.8-.3-1.7-.7-2.5-1c.3 .7 .7 1.3 1 2c1.2 5.8 1.4 10 1 16c-.7 0-1.3 0-2 0c-.4-1.3-.8-2.7-1.3-4.1c-2.1-6.1-5.2-11.4-8.7-16.9c-.2-.8-.2-.8-1.5-5c-.3-.6-.3-.6-2.1-3.5c-1.9-3.5-1.9-3.5-2.9-8.5c.7 0 1.3 0 2 0c.5 .5 1 1 1.5 1.5c-.8-2.3-1.7-4.6-2.5-7c-.7-2-1.3-4-2-6c-.7-1-1.3-2-2-3c.2-.7 .3-1.3 .5-2zM86.5 100.5c1 0 2 0 3 0c1.3 .8 2.7 1.7 4 2.5c-2.5 2.5-2.5 2.5-8 5.5c-5.5 4.3-8.6 7-10 14c-.8 2.2-1.7 4.3-2.5 6.5c-1.2 4.6-.5 9.3 0 14c-.5 0-1 0-1.5 0c-.2 2-.3 3.9-.5 6c-.7 0-1.3 0-2 0c-.3-.6-.3-.6-2-3.5c-1-.8-2-1.7-3-2.5c-.5-1.5-.5-1.5 1.5-8.5c.3-10.3-1-18.2-4-28c0-4 0-4 1-6c2 2 2 2 3 6.5c2.5-.5 2.5-.5 8-4c9.8-3.5 9.8-3.5 13-2.5zM43 161.5c2.5 2.5 2.5 2.5 3 5c-1.5 2.5-1.5 2.5-4 5c.5 3.5 .5 3.5 4 6.5c-.1 1.2-.4 2.3-.5 3.5c-5.3 3.5-5.3 3.5-8.5 3.5c-6-2.5-6-2.5-11.5-7c0-3 0-3 4-8c9.5-8.5 9.5-8.5 13.5-8.5z"/><path fill="#9B9D9E" d="M142.5 60.5c.5 1 .5 1-.5 4.5c1.2 1.5 2.3 3 3.5 4.5c2 4.5 2 4.5 2.5 9.5c-.5 .2-1 .3-1.5 .5c-.1 .2-.1 .2-.5 1c-2-1-3.9-2-6-3c-.8-.3-1.7-.7-2.5-1c-.3-.7-.7-1.3-1-2c.3-.5 .7-1 1-1.5c-.2-.7-.3-1.3-.5-2c-3.5 .5-3.5 .5-7.5 4c-.5 3-.5 3 0 5.5c-2 4-2 4-3.5 5.5c-.3 0-.7 0-1 0c0 .7 0 1.3 0 2c-2-1-2-1-2.5-2.5c.3-13.7 .3-13.7 4.8-18.5c4.1-3.9 6.3-4.8 11.7-6c1-.5 1-.5 3.5-.5zM98 70.5c.5 .3 1 .7 1.5 1c1.3 .3 2.7 .7 4 1c4.4 5.8 6.5 10.3 6.5 17.5c-2 2-2 2-5 2.5c-.3 .2-.3 .2-2 1c-.2-.2-.2-.2-1.5-1c.5-3 .5-3 1-5c-.7-.8-1.3-1.7-2-2.5c-.2-1.7-.3-3.3-.5-5c-4.5-2.7-8.5-3-13.5-2.5c-.1 .3-.1 .3-.5 1.5c1.3 .8 2.7 1.7 4 2.5c-.1 .4-.1 .4-.5 2.5c-2.3 1.2-4.6 2.3-7 3.5c-5.5 5.5-5.5 5.5-6.5 7c0 .5 0 1 0 1.5c.9-.1 .9-.1 5.5-.5c1 1.3 2 2.7 3 4c-.2 .5-.3 1-.5 1.5c-1.7 .5-3.2 1-5 1.6c-5.5 1.9-5.5 1.9-11 5.4c-.4 .1-.4 .1-2.5 .5c-1.5-1.5-1.5-1.5-2.5-6c-.4-.3-.6-.7-1-1c0-6.7 .9-11.7 3-18c.2-.6 .2-.6 1-3.5c7.8-9.7 20.5-14.1 32-9.5z"/><path fill="#FAF9F8" d="M103.5 40c0 .4 0 .6 0 1c2.2-.1 4.3-.4 6.5-.5c7 0 7 0 9.5 1c-.2 .6-.3 1.3-.5 2c-1.8 .6-3.7 1.3-5.5 2c-.2 .5-.3 1-.5 1.5c.7-.1 1.3-.4 2-.5c13.4-.3 13.4-.3 19.5 3.5c-.3 .6-.7 1.3-1 2c-1 0-2 0-3 0c0 .5 0 1 0 1.5c1.2 .1 1.2 .1 7 .5c3.5 2 3.5 2 5.5 4.5c0 1 0 2 0 3c-3.3 .9-6.7 1.6-10 2.5c-7.5 5-7.5 5-8.5 9c-.3 4.5-.4 9-.5 13.5c1.5 1 1.5 1 7.5 2.5c.9 .6 .9 .6 5.5 3.5c2 1 2 1 9 2.5c7.9 4 11.3 8.3 15 16.5c0 .5 0 1 0 1.5c-1 .2-2 .3-3 .5c.5 1.8 1 3.7 1.5 5.5c.3 8.5-.8 13.6-6 20.5c-.7-.2-1.3-.3-2-.5c0-1.7 0-3.3 0-5c-.7 .2-1.3 .3-2 .5c-1.3 2.7-2.7 5.3-4 8c-3.2 3.7-6.4 6.2-11 8c-1-1-1-1-1.5-3c-2.5 1.3-4.8 2.9-7 4.5c-6.3 2.8-10.8 3.2-17.6 1c-1.3-.5-2.6-1-3.9-1.5c.2 1.2 .3 2.3 .5 3.5c-.2 .3-.3 .7-.5 1c-5.9 0-9-1.8-14-5c-3-3.5-3-3.5-3-4.5c-.7 0-1.3 0-2 0c.5 2.2 1 4.3 1.5 6.5c-.3 .3-.7 .7-1 1c-4.5-.9-7.6-3.6-11-6.5c-4-6-4-9.3-4-16.5c2.5-7.5 2.5-7.5 3.5-9.5c.3-1.7 .7-3.3 1-5c6.4-8 14.7-13 24.5-16c6.4-6.3 6.4-6.3 8.5-10.5c0-6-1.6-9.8-4.5-15c-.2-.5-.3-1-.5-1.5c-1.7-.3-3.3-.7-5-1c-1.3-.7-2.7-1.3-4-2c-5.7-1.9-10.2-.3-15.5 1.5c-10 5.5-10 5.5-13 10c-.3-.2-.3-.2-2-1c1.3-6.8 4.6-11.7 9.5-16.5c.5-.3 1-.6 1.5-1c.2-.5 .3-1 .5-1.5c-1 .1-1 .1-6 1c-.3-.4-.7-.6-1-1c.5-2 .5-2 4-6c5-2.5 5-2.5 7.5-3c0-.5 0-1 0-1.5c-10.5-1.5-18.5 1-27 7c-.5 .9-1 1.6-1.5 2.5c-.9 .6-.9 .6-5.5 4c-4 3.5-7.6 7-11 11c-4.6 3.8-8.7 6.8-14 9.5c-.7-.3-1.3-.7-2-1c.2-.7 .3-1.3 .5-2c1.8-1 3.7-2 5.5-3c5.2-4.2 9.7-8.5 14-13.5c3.1-2.8 6.2-5.5 9.5-8c1.3-1.3 2.6-2.6 4-4c5.6-3.6 10.4-6.1 17-7c.5-1 1-2 1.5-3c7.2-2.4 12.5-2.2 20-.5c.2 .1 .2 .1 1 .5c3.5 0 3.5 0 8.5-3.5c1-.5 1-.5 3-.5zM118 92.5c-1 1.2-2 2.3-3 3.5c.5 2.5 .5 2.5 3 5c1.8 .8 3.7 1.7 5.5 2.5c.5 1 .5 1 .5 4.5c-4 4.8-6.1 5-12.5 6c0 .7 0 1.3 0 2c4.7 1.5 7.7 .2 12-1.5c1.2-.7 2.3-1.3 3.5-2c1.3 .3 2.7 .7 4 1c3.5 0 3.5 0 5.5-1.5c-.2-.5-.3-1-.5-1.5c-1.7-.3-3.3-.7-5-1c-2.5-2-2.5-2-3-5.5c2-3 2-3 4-5.5c.5-3.5 .5-3.5-1.5-6.5c-4.3-2.2-8.2-1-12.5 .5zM146 58.5c5.8 1.1 8.3 3.9 12.5 8c3.7 5.9 4.4 7.3 5 14c2.8 6.2 5.4 10 10.5 14.5c5.2 5.2 7.2 10.3 9 17.5c0 3.5 0 3.5-2 11c-.2 1.3-.2 1.3-1 7.5c-3.8 10.7-3.8 10.7-8.5 13.5c-.5 .2-.5 .2-3 1c-1 1.3-2 2.7-3 4c-4.5 3-4.5 3-10.5 5c-2.7-.6-5.3-1.3-8-2c-1.7 1.2-3.3 2.3-5 3.5c-2 1-2 1-4 .5c.5-1.5 .5-1.5 6-5c.3-.3 .3-.3 2-2c2.4 0 4.9 0 7.5 0c.5 .5 1 1 1.5 1.5c4.3-.6 7.1-2.3 10.5-5c3.5-5.5 3.5-5.5 4-7c1.5 0 2.9 0 4.5 0c4.3-8.7 4.6-14 2.5-23.5c-.3-1-.7-2-1-3c.3 .1 .3 .1 2 .5c1.5 2.5 1.5 2.5 1.5 4c.5-.2 1-.3 1.5-.5c-.8-10-4.3-16-11.4-22.8c-3.7-3.8-5.5-6.9-7.6-11.7c-.7-1.5-1.5-2.9-2.3-4.4c-1.7-3.6-1.7-3.6-1.7-5.6c.3-.2 .7-.3 1-.5c-.5-3-.5-3-4.5-7c-2-1-3.9-2-6-3c-.7-.4-1.3-.6-2-1c0-.6 0-1.3 0-2zM33.5 83.5c-1 4-5.1 6.4-8 9c-8.6 8.1-14.6 17.2-15.2 29.2c.3 8.1 .3 8.1 2.2 11.8c.5 0 1 0 1.5 0c.4-2.9 .6-6 1-9c.6 0 1.3 0 2 0c.2 1.3 .4 2.7 .6 4.1c1.8 9.3 5.3 14.8 12.9 20.4c2.3 1.2 4.6 2.3 7 3.5c.7 .6 .7 .6 4.5 3.5c3.5 0 3.5 0 8.5-1.5c1 0 2 0 3 0c-1 2-1 2-2.5 3.5c-6.5 1.7-9.6 .9-16-1.5c-1.1-1-2.3-2-3.5-3c-1.5-.7-2.9-1.3-4.5-2c-3.9-3.4-6.9-6.5-9.5-11c-1.1-.5-2.3-1-3.5-1.5c-5.9-6.7-8-12.7-8-21.5c2.4-12.2 7.2-19.8 16.5-28c4.5-4 4.5-4 6-5.5c3.5-1 3.5-1 5-.5zM50.5 172c2.5 1 2.5 1 7 6.5c6 6.2 12 11.8 18.8 17.1c5.7 4.5 11.3 9.1 16.7 13.9c1.3 1.2 2.7 2.3 4 3.5c.7 .7 1.3 1.3 2 2c-.2 .8-.3 1.7-.5 2.5c-6 2.9-11.7 4-18.5 4c-2.6-2.6-4.3-5.5-5.5-9c-.3 .1-.3 .1-1.5 .5c0 2.3 0 4.6 0 7c-.3 .5-.7 1-1 1.5c-13.3 0-24.6-4.6-34.5-13.5c-4.5-4.5-4.5-4.5-8.5-11c.5-2.5 .5-2.5 4.5-7c5-3 5-3 8-3.5c.5 .3 1 .7 1.5 1c2-.5 2-.5 4-2c.9-4.2 1.7-8.3 2.5-12.5c.4-.3 .6-.7 1-1z"/><path fill="#03B5BD" d="M58.5 149.5c2.5 .5 2.5 .5 7 3.5c9.8 5.2 18.9 7.9 30 8.5c2.2 .5 4.3 1 6.5 1.5c7 0 7 0 9-.5c2.3-.2 4.6-.3 7-.5c3.2-.9 6.3-1.9 9.5-3c1.3-.2 2.7-.3 4-.5c.2 .2 .3 .3 .5 .5c-.8 6.3-4.1 10.2-8 15c-.2 .5-.3 1-.5 1.5c1.7-1 3.3-2 5-3c.7 .2 1.3 .3 2 .5c-3 12.2-9.3 20.3-17.5 29.5c-.7 .7-.7 .7-4 4.5c-1 .8-2 1.7-3 2.5c-3.5-.5-3.5-.5-8-5c-2.3-1.8-4.7-3.7-7-5.5c-2.7-2.2-5.3-4.3-8-6.5c-.8-.6-.8-.6-4.5-3.5c-11-9.3-20.7-18.8-28.5-31c3-4 3-4 8.5-8.5z"/><ellipse cx="94" cy="94" rx="6.5" ry="6.5" fill="#212E34"/><ellipse cx="135" cy="85.6" rx="6.2" ry="5.8" fill="#212E34"/><g fill="#FAF9F8"><circle cx="91.5" cy="91.5" r="2.1"/><circle cx="134.6" cy="84.3" r="2"/></g><ellipse cx="124" cy="93.8" rx="3.4" ry="1.1" fill="#9B9D9E" transform="rotate(-6 124 93.8)"/></g></g><rect x="5" y="5" width="230" height="230" rx="45" fill="none"/></symbol></defs>
|
|
2
|
+
<rect x="1" y="1" width="958" height="438" rx="18" fill="#FAF9F8" stroke="#C4CBCE" stroke-width="1.5"/>
|
|
3
|
+
<path d="M389.1 186.4 403.2 182.6 417.1 178.5 430.8 174 444.2 169.3 457.5 164.3 470.6 159 483.6 153.6 496.5 148.1 509.2 142.4 521.9 136.7 534.6 131 547.1 125.3 559.7 119.6 572.3 114 584.9 108.5 597.5 103.2 610.2 98.1 623 93.3 635.9 88.7 648.9 84.4 662.1 80.5 675.4 76.9 688.9 73.8 702.6 71.2 716.6 69 730.8 67.4 745.2 66.4 760 66 A2 2 0 0 1 760 62 L760 62 745.1 62.2 730.4 63.1 716 64.5 701.9 66.5 687.9 69 674.2 72 660.7 75.4 647.3 79.2 634.1 83.3 621 87.8 608.1 92.5 595.2 97.5 582.4 102.7 569.7 108 557 113.5 544.4 119 531.7 124.6 519 130.1 506.3 135.7 493.5 141.1 480.6 146.5 467.7 151.7 454.6 156.7 441.4 161.5 428.1 166 414.6 170.2 400.9 174.1 386.9 177.6 A4.5 4.5 0 0 1 389.1 186.4Z" fill="#03B5BD"/>
|
|
4
|
+
<path d="M386.9 230.4 400.9 233.9 414.6 237.8 428.1 242 441.4 246.6 454.6 251.5 467.7 256.5 480.6 261.8 493.5 267.3 506.3 272.8 519 278.4 531.7 284.1 544.3 289.8 557 295.4 569.7 301 582.4 306.4 595.2 311.7 608.1 316.8 621 321.6 634.1 326.2 647.3 330.4 660.7 334.3 674.2 337.8 687.9 340.8 701.8 343.4 716 345.4 730.4 346.9 745.1 347.8 760 348 A2 2 0 0 1 760 344 L760 344 745.2 343.6 730.8 342.5 716.6 340.9 702.6 338.7 688.9 336 675.4 332.8 662.1 329.2 648.9 325.2 635.9 320.9 623 316.2 610.2 311.2 597.5 306 584.9 300.6 572.3 295 559.7 289.3 547.2 283.5 534.6 277.7 522 271.9 509.3 266.1 496.5 260.3 483.6 254.7 470.6 249.2 457.5 243.9 444.2 238.8 430.8 234 417.1 229.5 403.2 225.4 389.1 221.6 A4.5 4.5 0 0 1 386.9 230.4Z" fill="#03B5BD"/>
|
|
5
|
+
<path d="M300.4 200.5 294.9 200 289.3 199.4 283.6 199 277.7 198.6 271.7 198.2 265.6 197.9 259.4 197.6 253.2 197.3 246.8 197.1 240.4 197 233.9 196.9 227.4 196.8 220.8 196.8 214.2 196.9 207.6 197 201 197.1 194.4 197.3 187.7 197.5 181.1 197.8 174.5 198.1 168 198.4 161.5 198.8 155 199.3 148.6 199.8 142.3 200.3 136 200.9 129.9 201.6 123.8 202.3 A1.8 1.8 0 0 1 124.2 205.7 L124.2 205.7 130.2 205.2 136.4 204.7 142.6 204.2 148.9 203.8 155.3 203.4 161.7 203.1 168.2 202.8 174.7 202.6 181.3 202.4 187.9 202.2 194.5 202.1 201.1 202.1 207.7 202.1 214.2 202.1 220.8 202.2 227.3 202.3 233.8 202.5 240.2 202.7 246.6 203 252.9 203.3 259.1 203.7 265.2 204.1 271.3 204.5 277.2 205 283 205.6 288.7 206.2 294.2 206.8 299.6 207.5 A3.5 3.5 0 0 1 300.4 200.5Z" fill="#03B5BD"/>
|
|
6
|
+
<path d="M770 94C740 150 690 180 656 193" fill="none" stroke="#7E8487" stroke-width="2.4" stroke-linecap="round" stroke-dasharray="0.1 7"/>
|
|
7
|
+
<path d="M770 316C740 260 690 232 656 220" fill="none" stroke="#7E8487" stroke-width="2.4" stroke-linecap="round" stroke-dasharray="0.1 7"/>
|
|
8
|
+
<path d="M600 205C540 205 450 205 388 205" fill="none" stroke="#03B5BD" stroke-width="2.4" stroke-linecap="round"/>
|
|
9
|
+
<path d="M398 199l-8 6 8 6" fill="none" stroke="#03B5BD" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"/>
|
|
10
|
+
<circle class="k1" opacity="0" r="4.6" fill="#03B5BD" stroke="#FAF9F8" stroke-width="2"/>
|
|
11
|
+
<circle class="k2" opacity="0" r="4.6" fill="#03B5BD" stroke="#FAF9F8" stroke-width="2"/>
|
|
12
|
+
<circle class="k3" opacity="0" r="3.6" fill="#7E8487" stroke="#FAF9F8" stroke-width="2"/>
|
|
13
|
+
<circle class="k4" opacity="0" r="3.6" fill="#7E8487" stroke="#FAF9F8" stroke-width="2"/>
|
|
14
|
+
<circle class="k5" opacity="0" r="3.8" fill="#03B5BD" stroke="#FAF9F8" stroke-width="2"/>
|
|
15
|
+
<circle class="k6" opacity="0" r="4.6" fill="#E8A33D" stroke="#FAF9F8" stroke-width="2"/>
|
|
16
|
+
<circle class="k7" opacity="0" r="4.6" fill="#E8A33D" stroke="#FAF9F8" stroke-width="2"/>
|
|
17
|
+
<circle class="k8" opacity="0" r="4.6" fill="#03B5BD" stroke="#FAF9F8" stroke-width="2"/>
|
|
18
|
+
<ellipse cx="344" cy="255" rx="46" ry="5" fill="#BCC5CA" opacity="0.55"/>
|
|
19
|
+
<use href="#jack" x="300" y="160" width="88" height="88"/>
|
|
20
|
+
<ellipse cx="790.0" cy="100" rx="34" ry="4" fill="#BCC5CA" opacity="0.55"/>
|
|
21
|
+
<rect x="760" y="34" width="60" height="60" rx="12" fill="#212E34"/><circle cx="790" cy="64" r="11.4" fill="#03B5BD"/>
|
|
22
|
+
<g fill="none" stroke="#03B5BD" stroke-width="3" stroke-linecap="round"><path d="M824 30l7-9"/><path d="M830 38l9-3.4"/></g>
|
|
23
|
+
<ellipse cx="790.0" cy="382" rx="34" ry="4" fill="#BCC5CA" opacity="0.55"/>
|
|
24
|
+
<rect x="760" y="316" width="60" height="60" rx="12" fill="#212E34"/><circle cx="790" cy="346" r="11.4" fill="#03B5BD"/>
|
|
25
|
+
<g fill="none" stroke="#03B5BD" stroke-width="3" stroke-linecap="round"><path d="M824 312l7-9"/><path d="M830 320l9-3.4"/></g>
|
|
26
|
+
<rect x="600" y="177" width="56" height="56" rx="11.2" fill="#212E34"/>
|
|
27
|
+
<circle cx="622" cy="205" r="5.5" fill="#03B5BD"/>
|
|
28
|
+
<g fill="none" stroke="#03B5BD" stroke-width="3" stroke-linecap="round"><path d="M630 196a12 12 0 0 1 0 18"/><path d="M637 190a20 20 0 0 1 0 30"/></g>
|
|
29
|
+
<rect x="64" y="174" width="60" height="60" rx="12" fill="#212E34"/>
|
|
30
|
+
<circle cx="94" cy="197" r="7.5" fill="#FAF9F8"/><path d="M81 220a13 12 0 0 1 26 0z" fill="#FAF9F8"/>
|
|
31
|
+
<text x="344" y="276" class="s" font-size="15" fill="#212E34" font-weight="700" text-anchor="middle">Coordinator</text>
|
|
32
|
+
<text x="344" y="296" class="m" font-size="13" fill="#4A4E51" text-anchor="middle">/jh-orchestrate</text>
|
|
33
|
+
<text x="344" y="314" class="s" font-size="12" fill="#4A4E51" text-anchor="middle">main checkout</text>
|
|
34
|
+
<text x="790" y="124" class="s" font-size="15" fill="#212E34" font-weight="700" text-anchor="middle">Lane a</text>
|
|
35
|
+
<text x="790" y="143" class="m" font-size="13" fill="#4A4E51" text-anchor="middle">worktree a</text>
|
|
36
|
+
<text x="790" y="406" class="s" font-size="15" fill="#212E34" font-weight="700" text-anchor="middle">Lane b</text>
|
|
37
|
+
<text x="790" y="425" class="m" font-size="13" fill="#4A4E51" text-anchor="middle">worktree b</text>
|
|
38
|
+
<text x="628" y="259" class="m" font-size="14" fill="#212E34" font-weight="700" text-anchor="middle">jh watch</text>
|
|
39
|
+
<text x="94" y="262" class="s" font-size="15" fill="#212E34" font-weight="700" text-anchor="middle">You</text>
|
|
40
|
+
<text x="212" y="172" class="s" font-size="12.5" fill="#4A4E51" text-anchor="middle">open decisions,</text>
|
|
41
|
+
<text x="212" y="189" class="s" font-size="12.5" fill="#4A4E51" text-anchor="middle">one approval per PR</text>
|
|
42
|
+
<text x="212" y="232" class="s" font-size="12.5" fill="#4A4E51" text-anchor="middle">asked as a choice</text>
|
|
43
|
+
<text x="520" y="104" class="s" font-size="12.5" fill="#4A4E51" text-anchor="end">prompts →</text>
|
|
44
|
+
<text x="520" y="121" class="s" font-size="12.5" fill="#4A4E51" text-anchor="end">← questions as text</text>
|
|
45
|
+
<text x="520" y="310" class="s" font-size="12.5" fill="#4A4E51" text-anchor="end">prompts →</text>
|
|
46
|
+
<text x="520" y="327" class="s" font-size="12.5" fill="#4A4E51" text-anchor="end">← questions as text</text>
|
|
47
|
+
<text x="494" y="196" class="s" font-size="12.5" fill="#4A4E51" text-anchor="middle">wakes</text>
|
|
48
|
+
<text x="682" y="210" class="s" font-size="12.5" fill="#4A4E51" text-anchor="start">state, PR,</text>
|
|
49
|
+
<text x="682" y="226" class="s" font-size="12.5" fill="#4A4E51" text-anchor="start">checks</text>
|
|
50
|
+
</svg>
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="960" height="530" viewBox="0 0 960 530" role="img" aria-labelledby="t d"><title id="t">The skills and what they hand on</title><desc id="d">/jh-grill hands decision rows to /jh-plan. /jh-plan feeds /jh-orchestrate with phases, Writes sets and a model per phase, or a single phase to /jh-implement; under /jh-orchestrate each lane runs /jh-implement. /jh-implement ends in /jh-pre-commit, which runs jh check, /jh-review, the jh-spec-review agent against the plan, and the reviewers routed by path: /jh-uncle-bob, /jh-security-audit, /jh-devops. /jh-diagnose hands a red command to /jh-implement.</desc><defs><style>.s{font-family:ui-sans-serif, system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif}.m{font-family:ui-monospace, SFMono-Regular, Menlo, Consolas, 'Liberation Mono', monospace}</style></defs>
|
|
2
|
+
<rect x="1" y="1" width="958" height="528" rx="18" fill="#151D22" stroke="#34434B" stroke-width="1.5"/>
|
|
3
|
+
<path d="M120 103.5 125.3 103.4 130.4 103.3 135.4 103.3 140.3 103.2 145.1 103.1 149.8 103 154.5 103 159 102.9 163.5 102.8 168 102.7 172.5 102.6 176.9 102.6 181.3 102.5 185.8 102.4 190.2 102.3 194.7 102.2 199.2 102.2 203.9 102.1 208.5 102 213.3 101.9 218.2 101.8 223.1 101.8 228.2 101.7 233.5 101.6 238.8 101.5 244.4 101.5 250.1 101.4 256 101.3 A1.3 1.3 0 0 1 256 98.7 L256 98.7 250.1 98.6 244.4 98.5 238.8 98.5 233.5 98.4 228.2 98.3 223.1 98.2 218.2 98.2 213.3 98.1 208.5 98 203.9 97.9 199.2 97.8 194.7 97.8 190.2 97.7 185.8 97.6 181.3 97.5 176.9 97.4 172.5 97.4 168 97.3 163.5 97.2 159 97.1 154.5 97 149.8 97 145.1 96.9 140.3 96.8 135.4 96.7 130.4 96.7 125.3 96.6 120 96.5 A3.5 3.5 0 0 1 120 103.5Z" fill="#21BEC5"/>
|
|
4
|
+
<path d="M249.2 106L257.2 100L249.2 94" fill="none" stroke="#21BEC5" stroke-width="2.6" stroke-linecap="round" stroke-linejoin="round"/>
|
|
5
|
+
<path d="M320 103.5 325.3 103.4 330.6 103.3 335.8 103.3 340.9 103.2 346 103.1 351 103 356 103 361 102.9 366 102.8 370.9 102.7 375.9 102.6 380.8 102.6 385.8 102.5 390.8 102.4 395.7 102.3 400.8 102.2 405.8 102.2 410.9 102.1 416.1 102 421.3 101.9 426.6 101.8 431.9 101.8 437.4 101.7 442.9 101.6 448.5 101.5 454.2 101.5 460.1 101.4 466 101.3 A1.3 1.3 0 0 1 466 98.7 L466 98.7 460.1 98.6 454.2 98.5 448.5 98.5 442.9 98.4 437.4 98.3 431.9 98.2 426.6 98.2 421.3 98.1 416.1 98 410.9 97.9 405.8 97.8 400.8 97.8 395.7 97.7 390.8 97.6 385.8 97.5 380.8 97.4 375.9 97.4 370.9 97.3 366 97.2 361 97.1 356 97 351 97 346 96.9 340.9 96.8 335.8 96.7 330.6 96.7 325.3 96.6 320 96.5 A3.5 3.5 0 0 1 320 103.5Z" fill="#21BEC5"/>
|
|
6
|
+
<path d="M459.2 106L467.2 100L459.2 94" fill="none" stroke="#21BEC5" stroke-width="2.6" stroke-linecap="round" stroke-linejoin="round"/>
|
|
7
|
+
<path d="M317.5 113.5 326.9 114.6 335.4 116.9 343.4 120.2 351 124.5 358.1 129.7 364.9 135.8 371.2 142.6 377.2 150 382.9 158 388.2 166.5 393.3 175.4 398.1 184.5 402.7 193.8 407.1 203.2 411.3 212.6 415.3 221.9 419.3 231 423.2 239.8 427.1 248.3 430.9 256.2 434.8 263.6 438.7 270.3 442.8 276.3 446.9 281.4 451.3 285.6 455.9 288.7 460.8 290.7 465.8 291.3 A1.3 1.3 0 0 1 466.2 288.7 L466.2 288.7 461.6 288 457.4 286.2 453.3 283.3 449.3 279.3 445.5 274.3 441.7 268.5 438 261.8 434.4 254.5 430.7 246.6 427 238.2 423.3 229.3 419.5 220.2 415.5 210.8 411.4 201.3 407.2 191.7 402.7 182.2 397.9 172.9 392.9 163.8 387.6 155 381.8 146.6 375.7 138.7 369.1 131.5 362.1 124.9 354.5 119.2 346.4 114.4 337.6 110.6 328.2 107.9 318.5 106.5 A3.5 3.5 0 0 1 317.5 113.5Z" fill="#21BEC5"/>
|
|
8
|
+
<path d="M459.2 296L467.2 290L459.2 284" fill="none" stroke="#21BEC5" stroke-width="2.6" stroke-linecap="round" stroke-linejoin="round"/>
|
|
9
|
+
<path d="M496.5 130 496.6 134.3 496.7 138.7 496.7 143.2 496.8 147.7 496.9 152.2 497 156.9 497.1 161.5 497.1 166.2 497.2 170.9 497.3 175.6 497.4 180.3 497.4 185 497.5 189.8 497.6 194.5 497.7 199.2 497.8 203.9 497.8 208.5 497.9 213.2 498 217.7 498.1 222.3 498.1 226.8 498.2 231.2 498.3 235.5 498.4 239.8 498.5 244 498.5 248.1 498.6 252.1 498.7 256 A1.3 1.3 0 0 1 501.3 256 L501.3 256 501.4 252.1 501.5 248.1 501.5 244 501.6 239.8 501.7 235.5 501.8 231.2 501.9 226.8 501.9 222.3 502 217.7 502.1 213.2 502.2 208.5 502.2 203.9 502.3 199.2 502.4 194.5 502.5 189.8 502.6 185 502.6 180.3 502.7 175.6 502.8 170.9 502.9 166.2 502.9 161.5 503 156.9 503.1 152.2 503.2 147.7 503.3 143.2 503.3 138.7 503.4 134.3 503.5 130 A3.5 3.5 0 0 1 496.5 130Z" fill="#21BEC5"/>
|
|
10
|
+
<path d="M494 249.2L500 257.2L506 249.2" fill="none" stroke="#21BEC5" stroke-width="2.6" stroke-linecap="round" stroke-linejoin="round"/>
|
|
11
|
+
<path d="M530 293.5 537.3 293.4 544.4 293.3 551.2 293.3 557.7 293.2 563.9 293.1 569.9 293 575.7 292.9 581.3 292.9 586.6 292.8 591.8 292.7 596.8 292.6 601.6 292.6 606.2 292.5 610.8 292.4 615.1 292.3 619.4 292.2 623.6 292.2 627.6 292.1 631.6 292 635.5 291.9 639.4 291.9 643.2 291.8 647 291.7 650.8 291.6 654.6 291.5 658.4 291.5 662.2 291.4 666 291.3 A1.3 1.3 0 0 1 666 288.7 L666 288.7 662.2 288.6 658.4 288.5 654.6 288.5 650.8 288.4 647 288.3 643.2 288.2 639.4 288.1 635.5 288.1 631.6 288 627.6 287.9 623.6 287.8 619.4 287.8 615.1 287.7 610.8 287.6 606.2 287.5 601.6 287.4 596.8 287.4 591.8 287.3 586.6 287.2 581.3 287.1 575.7 287.1 569.9 287 563.9 286.9 557.7 286.8 551.2 286.7 544.4 286.7 537.3 286.6 530 286.5 A3.5 3.5 0 0 1 530 293.5Z" fill="#21BEC5"/>
|
|
12
|
+
<path d="M659.2 296L667.2 290L659.2 284" fill="none" stroke="#21BEC5" stroke-width="2.6" stroke-linecap="round" stroke-linejoin="round"/>
|
|
13
|
+
<path d="M729.3 283.3 735.8 280.6 742.2 277.3 748.1 273.4 753.7 268.9 758.9 264 763.8 258.7 768.4 253.1 772.8 247.2 776.9 241 780.9 234.7 784.6 228.2 788.2 221.7 791.7 215.1 795.1 208.6 798.4 202.2 801.7 195.9 805 189.9 808.3 184 811.6 178.5 814.9 173.4 818.3 168.6 821.8 164.4 825.4 160.6 829.2 157.5 833.1 154.9 837.1 153 841.4 151.8 846.1 151.3 A1.3 1.3 0 0 1 845.9 148.7 L845.9 148.7 841 149.1 836.2 150.2 831.6 152.2 827.3 154.8 823.2 158.1 819.2 162 815.4 166.4 811.8 171.2 808.2 176.4 804.7 181.9 801.2 187.7 797.8 193.8 794.4 200 790.9 206.4 787.4 212.8 783.8 219.2 780.1 225.6 776.2 231.8 772.3 237.9 768.1 243.8 763.8 249.4 759.3 254.7 754.6 259.6 749.6 264.1 744.4 268.1 738.9 271.5 733.1 274.4 726.7 276.7 A3.5 3.5 0 0 1 729.3 283.3Z" fill="#21BEC5"/>
|
|
14
|
+
<path d="M839.2 156L847.2 150L839.2 144" fill="none" stroke="#21BEC5" stroke-width="2.6" stroke-linecap="round" stroke-linejoin="round"/>
|
|
15
|
+
<path d="M730 293.5 735.3 293.4 740.6 293.3 745.7 293.3 750.8 293.2 755.8 293.1 760.7 293 765.6 292.9 770.3 292.9 775 292.8 779.6 292.7 784.1 292.6 788.5 292.6 792.8 292.5 797 292.4 801.1 292.3 805.2 292.2 809.1 292.2 813 292.1 816.7 292 820.4 291.9 823.9 291.9 827.4 291.8 830.8 291.7 834 291.6 837.2 291.5 840.2 291.5 843.2 291.4 846 291.3 A1.3 1.3 0 0 1 846 288.7 L846 288.7 843.2 288.6 840.2 288.5 837.2 288.5 834 288.4 830.8 288.3 827.4 288.2 823.9 288.1 820.4 288.1 816.7 288 813 287.9 809.1 287.8 805.2 287.8 801.1 287.7 797 287.6 792.8 287.5 788.5 287.4 784.1 287.4 779.6 287.3 775 287.2 770.3 287.1 765.6 287.1 760.7 287 755.8 286.9 750.8 286.8 745.7 286.7 740.6 286.7 735.3 286.6 730 286.5 A3.5 3.5 0 0 1 730 293.5Z" fill="#21BEC5"/>
|
|
16
|
+
<path d="M839.2 296L847.2 290L839.2 284" fill="none" stroke="#21BEC5" stroke-width="2.6" stroke-linecap="round" stroke-linejoin="round"/>
|
|
17
|
+
<path d="M728 300C790 320 800 430 846 430" fill="none" stroke="#7E8A90" stroke-width="2.6" stroke-linecap="round" stroke-dasharray="0.1 7"/>
|
|
18
|
+
<path d="M839.2 436L847.2 430L839.2 424" fill="none" stroke="#7E8A90" stroke-width="2.6" stroke-linecap="round" stroke-linejoin="round"/>
|
|
19
|
+
<path d="M320.2 433.5 328.8 432.9 337.1 431.4 345.1 429.1 352.7 425.9 359.9 422 366.8 417.6 373.4 412.5 379.6 407 385.5 401.1 391.2 394.9 396.6 388.4 401.7 381.6 406.7 374.8 411.5 367.9 416.1 360.9 420.5 354.1 424.8 347.3 428.9 340.8 433 334.6 436.9 328.6 440.7 323.1 444.5 318 448.2 313.5 451.9 309.6 455.5 306.4 459.1 303.9 462.6 302.2 466.3 301.3 A1.3 1.3 0 0 1 465.7 298.7 L465.7 298.7 461.7 299.6 457.6 301.4 453.6 304 449.7 307.3 445.7 311.3 441.8 315.8 437.8 320.9 433.7 326.4 429.6 332.3 425.4 338.5 421.1 345 416.7 351.6 412.2 358.4 407.5 365.1 402.7 371.9 397.7 378.5 392.5 385 387.1 391.3 381.5 397.2 375.7 402.8 369.6 408 363.4 412.6 356.8 416.7 350.1 420.1 343 422.9 335.7 424.9 328 426.1 319.8 426.5 A3.5 3.5 0 0 1 320.2 433.5Z" fill="#21BEC5"/>
|
|
20
|
+
<path d="M459.9 306.7L467.2 299.9L458.6 294.8" fill="none" stroke="#21BEC5" stroke-width="2.6" stroke-linecap="round" stroke-linejoin="round"/>
|
|
21
|
+
<ellipse cx="90" cy="130.0" rx="28.0" ry="3.5" fill="#BCC5CA" opacity="0.12"/>
|
|
22
|
+
<rect x="66" y="76" width="48" height="48" rx="9.6" fill="#212E34" stroke="#5B6B73" stroke-width="1.9"/><circle cx="90" cy="100" r="9.1" fill="#21BEC5"/>
|
|
23
|
+
<ellipse cx="290" cy="130.0" rx="28.0" ry="3.5" fill="#BCC5CA" opacity="0.12"/>
|
|
24
|
+
<rect x="266" y="76" width="48" height="48" rx="9.6" fill="#212E34" stroke="#5B6B73" stroke-width="1.9"/><circle cx="290" cy="100" r="9.1" fill="#21BEC5"/>
|
|
25
|
+
<ellipse cx="500" cy="130.0" rx="28.0" ry="3.5" fill="#BCC5CA" opacity="0.12"/>
|
|
26
|
+
<rect x="476" y="76" width="48" height="48" rx="9.6" fill="#212E34" stroke="#5B6B73" stroke-width="1.9"/><circle cx="500" cy="100" r="9.1" fill="#21BEC5"/>
|
|
27
|
+
<ellipse cx="500" cy="320.0" rx="28.0" ry="3.5" fill="#BCC5CA" opacity="0.12"/>
|
|
28
|
+
<rect x="476" y="266" width="48" height="48" rx="9.6" fill="#212E34" stroke="#5B6B73" stroke-width="1.9"/><circle cx="500" cy="290" r="9.1" fill="#21BEC5"/>
|
|
29
|
+
<ellipse cx="700" cy="320.0" rx="28.0" ry="3.5" fill="#BCC5CA" opacity="0.12"/>
|
|
30
|
+
<rect x="676" y="266" width="48" height="48" rx="9.6" fill="#212E34" stroke="#5B6B73" stroke-width="1.9"/><circle cx="700" cy="290" r="9.1" fill="#21BEC5"/>
|
|
31
|
+
<ellipse cx="880" cy="180.0" rx="28.0" ry="3.5" fill="#BCC5CA" opacity="0.12"/>
|
|
32
|
+
<rect x="856" y="126" width="48" height="48" rx="9.6" fill="#212E34" stroke="#5B6B73" stroke-width="1.9"/><circle cx="880" cy="150" r="9.1" fill="#21BEC5"/>
|
|
33
|
+
<ellipse cx="880" cy="320.0" rx="28.0" ry="3.5" fill="#BCC5CA" opacity="0.12"/>
|
|
34
|
+
<rect x="856" y="266" width="48" height="48" rx="9.6" fill="#212E34" stroke="#5B6B73" stroke-width="1.9"/><circle cx="880" cy="290" r="9.1" fill="#21BEC5"/>
|
|
35
|
+
<ellipse cx="880" cy="460.0" rx="28.0" ry="3.5" fill="#BCC5CA" opacity="0.12"/>
|
|
36
|
+
<rect x="856" y="406" width="48" height="48" rx="9.6" fill="#212E34" stroke="#5B6B73" stroke-width="1.9"/><circle cx="880" cy="430" r="9.1" fill="#21BEC5"/>
|
|
37
|
+
<ellipse cx="290" cy="460.0" rx="28.0" ry="3.5" fill="#BCC5CA" opacity="0.12"/>
|
|
38
|
+
<rect x="266" y="406" width="48" height="48" rx="9.6" fill="#212E34" stroke="#5B6B73" stroke-width="1.9"/><circle cx="290" cy="430" r="9.1" fill="#21BEC5"/>
|
|
39
|
+
<text x="90" y="150" class="m" font-size="14" fill="#E6EDF3" font-weight="700" text-anchor="middle">/jh-grill</text>
|
|
40
|
+
<text x="90" y="168" class="s" font-size="12.5" fill="#9B9D9E" text-anchor="middle">settles decisions</text>
|
|
41
|
+
<text x="290" y="150" class="m" font-size="14" fill="#E6EDF3" font-weight="700" text-anchor="middle">/jh-plan</text>
|
|
42
|
+
<text x="290" y="168" class="s" font-size="12.5" fill="#9B9D9E" text-anchor="middle">writes the plan</text>
|
|
43
|
+
<text x="532" y="96" class="m" font-size="14" fill="#E6EDF3" font-weight="700" text-anchor="start">/jh-orchestrate</text>
|
|
44
|
+
<text x="532" y="114" class="s" font-size="12.5" fill="#9B9D9E" text-anchor="start">lanes in herdr</text>
|
|
45
|
+
<text x="500" y="340" class="m" font-size="14" fill="#E6EDF3" font-weight="700" text-anchor="middle">/jh-implement</text>
|
|
46
|
+
<text x="500" y="358" class="s" font-size="12.5" fill="#9B9D9E" text-anchor="middle">builds, ticks</text>
|
|
47
|
+
<text x="700" y="340" class="m" font-size="14" fill="#E6EDF3" font-weight="700" text-anchor="middle">/jh-pre-commit</text>
|
|
48
|
+
<text x="700" y="358" class="s" font-size="12.5" fill="#9B9D9E" text-anchor="middle">jh check</text>
|
|
49
|
+
<text x="880" y="200" class="m" font-size="14" fill="#E6EDF3" font-weight="700" text-anchor="middle">/jh-review</text>
|
|
50
|
+
<text x="880" y="340" class="m" font-size="14" fill="#E6EDF3" font-weight="700" text-anchor="middle">jh-spec-review</text>
|
|
51
|
+
<text x="880" y="358" class="s" font-size="12.5" fill="#9B9D9E" text-anchor="middle">agent, against the plan</text>
|
|
52
|
+
<text x="880" y="478" class="m" font-size="13" fill="#E6EDF3" font-weight="600" text-anchor="middle">/jh-uncle-bob</text>
|
|
53
|
+
<text x="880" y="495" class="m" font-size="13" fill="#E6EDF3" font-weight="600" text-anchor="middle">/jh-security-audit</text>
|
|
54
|
+
<text x="880" y="512" class="m" font-size="13" fill="#E6EDF3" font-weight="600" text-anchor="middle">/jh-devops</text>
|
|
55
|
+
<text x="290" y="480" class="m" font-size="14" fill="#E6EDF3" font-weight="700" text-anchor="middle">/jh-diagnose</text>
|
|
56
|
+
<text x="290" y="498" class="s" font-size="12.5" fill="#9B9D9E" text-anchor="middle">bug, flaky failure</text>
|
|
57
|
+
<text x="190" y="88" class="s" font-size="12.5" fill="#9B9D9E" text-anchor="middle" font-style="italic">decision rows</text>
|
|
58
|
+
<text x="395" y="70" class="s" font-size="12.5" fill="#9B9D9E" text-anchor="middle" font-style="italic">phases, Writes,</text>
|
|
59
|
+
<text x="395" y="86" class="s" font-size="12.5" fill="#9B9D9E" text-anchor="middle" font-style="italic">model per phase</text>
|
|
60
|
+
<text x="400" y="206" class="s" font-size="12.5" fill="#9B9D9E" text-anchor="end" font-style="italic">one phase</text>
|
|
61
|
+
<text x="512" y="200" class="s" font-size="12.5" fill="#9B9D9E" text-anchor="start" font-style="italic">each lane runs</text>
|
|
62
|
+
<text x="788" y="392" class="s" font-size="12.5" fill="#9B9D9E" text-anchor="end" font-style="italic">routed</text>
|
|
63
|
+
<text x="788" y="408" class="s" font-size="12.5" fill="#9B9D9E" text-anchor="end" font-style="italic">by path</text>
|
|
64
|
+
<text x="420" y="420" class="s" font-size="12.5" fill="#9B9D9E" text-anchor="start" font-style="italic">red command</text>
|
|
65
|
+
</svg>
|
package/docs/skills.svg
CHANGED
|
@@ -1 +1,65 @@
|
|
|
1
|
-
<svg aria-roledescription="flowchart-v2" role="graphics-document document" viewBox="0 0 1784.4765625 274.6000061035156" style="max-width: 1784.4765625px;" class="flowchart" xmlns="http://www.w3.org/2000/svg" width="100%" id="diagram"><style>#diagram{font-family:Helvetica,Arial,sans-serif;font-size:16px;fill:#000000;}#diagram .error-icon{fill:#552222;}#diagram .error-text{fill:#552222;stroke:#552222;}#diagram .edge-thickness-normal{stroke-width:1px;}#diagram .edge-thickness-thick{stroke-width:3.5px;}#diagram .edge-pattern-solid{stroke-dasharray:0;}#diagram .edge-thickness-invisible{stroke-width:0;fill:none;}#diagram .edge-pattern-dashed{stroke-dasharray:3;}#diagram .edge-pattern-dotted{stroke-dasharray:2;}#diagram .marker{fill:#666;stroke:#666;}#diagram .marker.cross{stroke:#666;}#diagram svg{font-family:Helvetica,Arial,sans-serif;font-size:16px;}#diagram p{margin:0;}#diagram .label{font-family:Helvetica,Arial,sans-serif;color:#000000;}#diagram .cluster-label text{fill:#333;}#diagram .cluster-label span{color:#333;}#diagram .cluster-label span p{background-color:transparent;}#diagram .label text,#diagram span{fill:#000000;color:#000000;}#diagram .node rect,#diagram .node circle,#diagram .node ellipse,#diagram .node polygon,#diagram .node path{fill:#eee;stroke:#999;stroke-width:1px;}#diagram .rough-node .label text,#diagram .node .label text,#diagram .image-shape .label,#diagram .icon-shape .label{text-anchor:middle;}#diagram .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#diagram .rough-node .label,#diagram .node .label,#diagram .image-shape .label,#diagram .icon-shape .label{text-align:center;}#diagram .node.clickable{cursor:pointer;}#diagram .root .anchor path{fill:#666!important;stroke-width:0;stroke:#666;}#diagram .arrowheadPath{fill:#333333;}#diagram .edgePath .path{stroke:#666;stroke-width:2.0px;}#diagram .flowchart-link{stroke:#666;fill:none;}#diagram .edgeLabel{background-color:white;text-align:center;}#diagram .edgeLabel p{background-color:white;}#diagram .edgeLabel rect{opacity:0.5;background-color:white;fill:white;}#diagram .labelBkg{background-color:rgba(255, 255, 255, 0.5);}#diagram .cluster rect{fill:hsl(0, 0%, 98.9215686275%);stroke:#707070;stroke-width:1px;}#diagram .cluster text{fill:#333;}#diagram .cluster span{color:#333;}#diagram div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:Helvetica,Arial,sans-serif;font-size:12px;background:hsl(-160, 0%, 93.3333333333%);border:1px solid #707070;border-radius:2px;pointer-events:none;z-index:100;}#diagram .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#000000;}#diagram rect.text{fill:none;stroke-width:0;}#diagram .icon-shape,#diagram .image-shape{background-color:white;text-align:center;}#diagram .icon-shape p,#diagram .image-shape p{background-color:white;padding:2px;}#diagram .icon-shape rect,#diagram .image-shape rect{opacity:0.5;background-color:white;fill:white;}#diagram :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}</style><g><marker orient="auto" markerHeight="8" markerWidth="8" markerUnits="userSpaceOnUse" refY="5" refX="5" viewBox="0 0 10 10" class="marker flowchart-v2" id="diagram_flowchart-v2-pointEnd"><path style="stroke-width: 1; stroke-dasharray: 1, 0;" class="arrowMarkerPath" d="M 0 0 L 10 5 L 0 10 z"></path></marker><marker orient="auto" markerHeight="8" markerWidth="8" markerUnits="userSpaceOnUse" refY="5" refX="4.5" viewBox="0 0 10 10" class="marker flowchart-v2" id="diagram_flowchart-v2-pointStart"><path style="stroke-width: 1; stroke-dasharray: 1, 0;" class="arrowMarkerPath" d="M 0 5 L 10 10 L 10 0 z"></path></marker><marker orient="auto" markerHeight="11" markerWidth="11" markerUnits="userSpaceOnUse" refY="5" refX="11" viewBox="0 0 10 10" class="marker flowchart-v2" id="diagram_flowchart-v2-circleEnd"><circle style="stroke-width: 1; stroke-dasharray: 1, 0;" class="arrowMarkerPath" r="5" cy="5" cx="5"></circle></marker><marker orient="auto" markerHeight="11" markerWidth="11" markerUnits="userSpaceOnUse" refY="5" refX="-1" viewBox="0 0 10 10" class="marker flowchart-v2" id="diagram_flowchart-v2-circleStart"><circle style="stroke-width: 1; stroke-dasharray: 1, 0;" class="arrowMarkerPath" r="5" cy="5" cx="5"></circle></marker><marker orient="auto" markerHeight="11" markerWidth="11" markerUnits="userSpaceOnUse" refY="5.2" refX="12" viewBox="0 0 11 11" class="marker cross flowchart-v2" id="diagram_flowchart-v2-crossEnd"><path style="stroke-width: 2; stroke-dasharray: 1, 0;" class="arrowMarkerPath" d="M 1,1 l 9,9 M 10,1 l -9,9"></path></marker><marker orient="auto" markerHeight="11" markerWidth="11" markerUnits="userSpaceOnUse" refY="5.2" refX="-1" viewBox="0 0 11 11" class="marker cross flowchart-v2" id="diagram_flowchart-v2-crossStart"><path style="stroke-width: 2; stroke-dasharray: 1, 0;" class="arrowMarkerPath" d="M 1,1 l 9,9 M 10,1 l -9,9"></path></marker><g class="root"><g class="clusters"></g><g class="edgePaths"><path marker-end="url(#diagram_flowchart-v2-pointEnd)" style="" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" id="L_grill_plan_0" d="M185.406,80L197.984,80C210.563,80,235.719,80,260.208,80C284.698,80,308.521,80,320.432,80L332.344,80"></path><path marker-end="url(#diagram_flowchart-v2-pointEnd)" style="" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" id="L_plan_orchestrate_1" d="M500.516,98.924L514.957,102.253C529.398,105.583,558.281,112.241,588.079,115.571C617.878,118.9,648.591,118.9,663.948,118.9L679.305,118.9"></path><path marker-end="url(#diagram_flowchart-v2-pointEnd)" style="" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" id="L_plan_implement_2" d="M500.516,61.076L514.957,57.747C529.398,54.417,558.281,47.759,601.882,44.429C645.482,41.1,703.799,41.1,760.924,41.1C818.049,41.1,873.982,41.1,917.673,50.67C961.365,60.24,992.815,79.38,1008.541,88.95L1024.266,98.521"></path><path marker-end="url(#diagram_flowchart-v2-pointEnd)" style="" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" id="L_orchestrate_implement_3" d="M840.93,118.9L855.76,118.9C870.591,118.9,900.253,118.9,927.668,120.068C955.084,121.236,980.254,123.572,992.838,124.74L1005.423,125.908"></path><path marker-end="url(#diagram_flowchart-v2-pointEnd)" style="" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" id="L_implement_precommit_4" d="M1152.109,132.9L1156.276,132.9C1160.443,132.9,1168.776,132.9,1176.443,132.9C1184.109,132.9,1191.109,132.9,1194.609,132.9L1198.109,132.9"></path><path marker-end="url(#diagram_flowchart-v2-pointEnd)" style="" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" id="L_precommit_review_5" d="M1338.17,100.6L1356.622,89.083C1375.074,77.567,1411.978,54.533,1454.316,43.017C1496.654,31.5,1544.424,31.5,1568.31,31.5L1592.195,31.5"></path><path marker-end="url(#diagram_flowchart-v2-pointEnd)" style="" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" id="L_precommit_spec_6" d="M1370.727,130.617L1383.753,130.264C1396.779,129.911,1422.831,129.206,1456.852,128.853C1490.874,128.5,1532.865,128.5,1553.86,128.5L1574.855,128.5"></path><path marker-end="url(#diagram_flowchart-v2-pointEnd)" style="" class="edge-thickness-normal edge-pattern-dotted edge-thickness-normal edge-pattern-solid flowchart-link" id="L_precommit_routed_7" d="M1338.17,165.2L1356.622,176.717C1375.074,188.233,1411.978,211.267,1442.79,222.783C1473.602,234.3,1498.32,234.3,1510.68,234.3L1523.039,234.3"></path><path marker-end="url(#diagram_flowchart-v2-pointEnd)" style="" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" id="L_diagnose_implement_8" d="M850.422,233.5L863.671,233.5C876.919,233.5,903.417,233.5,933.179,222.487C962.942,211.473,995.97,189.446,1012.484,178.433L1028.998,167.419"></path></g><g class="edgeLabels"><g><rect style="stroke: none" class="background"></rect></g><g><rect style="stroke: none" class="background"></rect></g><g><rect style="stroke: none" class="background"></rect></g><g transform="translate(260.875, 80)" class="edgeLabel"><g transform="translate(-50.46875, -10.5)" class="label"><g><rect height="21" width="100.9375" y="0" x="-2" style="" class="background"></rect><text style="" y="-10.1"><tspan dy="1.1em" y="-0.1em" x="0" class="text-outer-tspan"><tspan font-weight="normal" class="text-inner-tspan" font-style="normal">decision</tspan><tspan font-weight="normal" class="text-inner-tspan" font-style="normal"> rows</tspan></tspan></text></g></g></g><g transform="translate(587.1640625, 118.89999961853027)" class="edgeLabel"><g transform="translate(-61.6484375, -19.299999237060547)" class="label"><g><rect height="38.599998474121094" width="123.296875" y="0" x="-2" style="" class="background"></rect><text style="" y="-10.1"><tspan dy="1.1em" y="-0.1em" x="0" class="text-outer-tspan"><tspan font-weight="normal" class="text-inner-tspan" font-style="normal">phases,</tspan><tspan font-weight="normal" class="text-inner-tspan" font-style="normal"> Writes,</tspan></tspan><tspan dy="1.1em" y="1em" x="0" class="text-outer-tspan"><tspan font-weight="normal" class="text-inner-tspan" font-style="normal">model</tspan><tspan font-weight="normal" class="text-inner-tspan" font-style="normal"> per</tspan><tspan font-weight="normal" class="text-inner-tspan" font-style="normal"> phase</tspan></tspan></text></g></g></g><g transform="translate(762.1171875, 41.10000038146973)" class="edgeLabel"><g transform="translate(-39.421875, -10.5)" class="label"><g><rect height="21" width="78.84375" y="0" x="-2" style="" class="background"></rect><text style="" y="-10.1"><tspan dy="1.1em" y="-0.1em" x="0" class="text-outer-tspan"><tspan font-weight="normal" class="text-inner-tspan" font-style="normal">one</tspan><tspan font-weight="normal" class="text-inner-tspan" font-style="normal"> phase</tspan></tspan></text></g></g></g><g transform="translate(929.9140625, 118.89999961853027)" class="edgeLabel"><g transform="translate(-54.4921875, -10.5)" class="label"><g><rect height="21" width="108.984375" y="0" x="-2" style="" class="background"></rect><text style="" y="-10.1"><tspan dy="1.1em" y="-0.1em" x="0" class="text-outer-tspan"><tspan font-weight="normal" class="text-inner-tspan" font-style="normal">each</tspan><tspan font-weight="normal" class="text-inner-tspan" font-style="normal"> lane</tspan><tspan font-weight="normal" class="text-inner-tspan" font-style="normal"> runs</tspan></tspan></text></g></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><text y="-10.1"><tspan dy="1.1em" y="-0.1em" x="0" class="text-outer-tspan"></tspan></text></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><text y="-10.1"><tspan dy="1.1em" y="-0.1em" x="0" class="text-outer-tspan"></tspan></text></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><text y="-10.1"><tspan dy="1.1em" y="-0.1em" x="0" class="text-outer-tspan"></tspan></text></g></g><g transform="translate(1448.8828125, 234.29999923706055)" class="edgeLabel"><g transform="translate(-53.15625, -10.5)" class="label"><g><rect height="21" width="106.3125" y="0" x="-2" style="" class="background"></rect><text style="" y="-10.1"><tspan dy="1.1em" y="-0.1em" x="0" class="text-outer-tspan"><tspan font-weight="normal" class="text-inner-tspan" font-style="normal">routed</tspan><tspan font-weight="normal" class="text-inner-tspan" font-style="normal"> by</tspan><tspan font-weight="normal" class="text-inner-tspan" font-style="normal"> path</tspan></tspan></text></g></g></g><g transform="translate(929.9140625, 233.49999809265137)" class="edgeLabel"><g transform="translate(-50.9140625, -10.5)" class="label"><g><rect height="21" width="101.828125" y="0" x="-2" style="" class="background"></rect><text style="" y="-10.1"><tspan dy="1.1em" y="-0.1em" x="0" class="text-outer-tspan"><tspan font-weight="normal" class="text-inner-tspan" font-style="normal">red</tspan><tspan font-weight="normal" class="text-inner-tspan" font-style="normal"> command</tspan></tspan></text></g></g></g></g><g class="nodes"><g transform="translate(96.703125, 80)" id="flowchart-grill-0" class="node default"><rect height="64.5999984741211" width="177.40625" y="-32.29999923706055" x="-88.703125" style="" class="basic label-container"></rect><g transform="translate(0, -17.299999237060547)" style="" class="label"><rect></rect><g><rect style="stroke: none" class="background"></rect><text style="" y="-10.1"><tspan dy="1.1em" y="-0.1em" x="0" class="text-outer-tspan"><tspan font-weight="normal" class="text-inner-tspan" font-style="normal">/grill</tspan></tspan><tspan dy="1.1em" y="1em" x="0" class="text-outer-tspan"><tspan font-weight="normal" class="text-inner-tspan" font-style="normal">settles</tspan><tspan font-weight="normal" class="text-inner-tspan" font-style="normal"> decisions</tspan></tspan></text></g></g></g><g transform="translate(418.4296875, 80)" id="flowchart-plan-1" class="node default"><rect height="64.5999984741211" width="164.171875" y="-32.29999923706055" x="-82.0859375" style="" class="basic label-container"></rect><g transform="translate(0, -17.299999237060547)" style="" class="label"><rect></rect><g><rect style="stroke: none" class="background"></rect><text style="" y="-10.1"><tspan dy="1.1em" y="-0.1em" x="0" class="text-outer-tspan"><tspan font-weight="normal" class="text-inner-tspan" font-style="normal">/plan</tspan></tspan><tspan dy="1.1em" y="1em" x="0" class="text-outer-tspan"><tspan font-weight="normal" class="text-inner-tspan" font-style="normal">writes</tspan><tspan font-weight="normal" class="text-inner-tspan" font-style="normal"> the</tspan><tspan font-weight="normal" class="text-inner-tspan" font-style="normal"> plan</tspan></tspan></text></g></g></g><g transform="translate(762.1171875, 118.89999961853027)" id="flowchart-orchestrate-3" class="node default"><rect height="64.5999984741211" width="157.625" y="-32.29999923706055" x="-78.8125" style="" class="basic label-container"></rect><g transform="translate(0, -17.299999237060547)" style="" class="label"><rect></rect><g><rect style="stroke: none" class="background"></rect><text style="" y="-10.1"><tspan dy="1.1em" y="-0.1em" x="0" class="text-outer-tspan"><tspan font-weight="normal" class="text-inner-tspan" font-style="normal">/orchestrate</tspan></tspan><tspan dy="1.1em" y="1em" x="0" class="text-outer-tspan"><tspan font-weight="normal" class="text-inner-tspan" font-style="normal">lanes</tspan><tspan font-weight="normal" class="text-inner-tspan" font-style="normal"> in</tspan><tspan font-weight="normal" class="text-inner-tspan" font-style="normal"> herdr</tspan></tspan></text></g></g></g><g transform="translate(1080.7578125, 132.89999961853027)" id="flowchart-implement-5" class="node default"><rect height="64.5999984741211" width="142.703125" y="-32.29999923706055" x="-71.3515625" style="" class="basic label-container"></rect><g transform="translate(0, -17.299999237060547)" style="" class="label"><rect></rect><g><rect style="stroke: none" class="background"></rect><text style="" y="-10.1"><tspan dy="1.1em" y="-0.1em" x="0" class="text-outer-tspan"><tspan font-weight="normal" class="text-inner-tspan" font-style="normal">/implement</tspan></tspan><tspan dy="1.1em" y="1em" x="0" class="text-outer-tspan"><tspan font-weight="normal" class="text-inner-tspan" font-style="normal">builds,</tspan><tspan font-weight="normal" class="text-inner-tspan" font-style="normal"> ticks</tspan></tspan></text></g></g></g><g transform="translate(1286.41796875, 132.89999961853027)" id="flowchart-precommit-9" class="node default"><rect height="64.5999984741211" width="168.6171875" y="-32.29999923706055" x="-84.30859375" style="" class="basic label-container"></rect><g transform="translate(0, -17.299999237060547)" style="" class="label"><rect></rect><g><rect style="stroke: none" class="background"></rect><text style="" y="-10.1"><tspan dy="1.1em" y="-0.1em" x="0" class="text-outer-tspan"><tspan font-weight="normal" class="text-inner-tspan" font-style="normal">/pre-commit</tspan></tspan><tspan dy="1.1em" y="1em" x="0" class="text-outer-tspan"><tspan font-weight="normal" class="text-inner-tspan" font-style="normal">jh</tspan><tspan font-weight="normal" class="text-inner-tspan" font-style="normal"> check</tspan></tspan></text></g></g></g><g transform="translate(1651.7578125, 31.5)" id="flowchart-review-11" class="node default"><rect height="47" width="111.125" y="-23.5" x="-55.5625" style="" class="basic label-container"></rect><g transform="translate(0, -8.5)" style="" class="label"><rect></rect><g><rect style="stroke: none" class="background"></rect><text style="" y="-10.1"><tspan dy="1.1em" y="-0.1em" x="0" class="text-outer-tspan"><tspan font-weight="normal" class="text-inner-tspan" font-style="normal">/review</tspan></tspan></text></g></g></g><g transform="translate(1651.7578125, 128.5)" id="flowchart-spec-13" class="node default"><rect height="47" width="145.8046875" y="-23.5" x="-72.90234375" style="" class="basic label-container"></rect><g transform="translate(0, -8.5)" style="" class="label"><rect></rect><g><rect style="stroke: none" class="background"></rect><text style="" y="-10.1"><tspan dy="1.1em" y="-0.1em" x="0" class="text-outer-tspan"><tspan font-weight="normal" class="text-inner-tspan" font-style="normal">spec-review</tspan></tspan></text></g></g></g><g transform="translate(1651.7578125, 234.29999923706055)" id="flowchart-routed-15" class="node default"><rect height="64.5999984741211" width="249.4375" y="-32.29999923706055" x="-124.71875" style="" class="basic label-container"></rect><g transform="translate(0, -17.299999237060547)" style="" class="label"><rect></rect><g><rect style="stroke: none" class="background"></rect><text style="" y="-10.1"><tspan dy="1.1em" y="-0.1em" x="0" class="text-outer-tspan"><tspan font-weight="normal" class="text-inner-tspan" font-style="normal">uncle-bob</tspan><tspan font-weight="normal" class="text-inner-tspan" font-style="normal"> ·</tspan><tspan font-weight="normal" class="text-inner-tspan" font-style="normal"> security-audit</tspan><tspan font-weight="normal" class="text-inner-tspan" font-style="normal"> ·</tspan></tspan><tspan dy="1.1em" y="1em" x="0" class="text-outer-tspan"><tspan font-weight="normal" class="text-inner-tspan" font-style="normal">devops</tspan></tspan></text></g></g></g><g transform="translate(762.1171875, 233.49999809265137)" id="flowchart-diagnose-16" class="node default"><rect height="64.5999984741211" width="176.609375" y="-32.29999923706055" x="-88.3046875" style="" class="basic label-container"></rect><g transform="translate(0, -17.299999237060547)" style="" class="label"><rect></rect><g><rect style="stroke: none" class="background"></rect><text style="" y="-10.1"><tspan dy="1.1em" y="-0.1em" x="0" class="text-outer-tspan"><tspan font-weight="normal" class="text-inner-tspan" font-style="normal">/diagnose</tspan></tspan><tspan dy="1.1em" y="1em" x="0" class="text-outer-tspan"><tspan font-weight="normal" class="text-inner-tspan" font-style="normal">bug,</tspan><tspan font-weight="normal" class="text-inner-tspan" font-style="normal"> flaky</tspan><tspan font-weight="normal" class="text-inner-tspan" font-style="normal"> failure</tspan></tspan></text></g></g></g></g></g></g></svg>
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="960" height="530" viewBox="0 0 960 530" role="img" aria-labelledby="t d"><title id="t">The skills and what they hand on</title><desc id="d">/jh-grill hands decision rows to /jh-plan. /jh-plan feeds /jh-orchestrate with phases, Writes sets and a model per phase, or a single phase to /jh-implement; under /jh-orchestrate each lane runs /jh-implement. /jh-implement ends in /jh-pre-commit, which runs jh check, /jh-review, the jh-spec-review agent against the plan, and the reviewers routed by path: /jh-uncle-bob, /jh-security-audit, /jh-devops. /jh-diagnose hands a red command to /jh-implement.</desc><defs><style>.s{font-family:ui-sans-serif, system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif}.m{font-family:ui-monospace, SFMono-Regular, Menlo, Consolas, 'Liberation Mono', monospace}</style></defs>
|
|
2
|
+
<rect x="1" y="1" width="958" height="528" rx="18" fill="#FAF9F8" stroke="#C4CBCE" stroke-width="1.5"/>
|
|
3
|
+
<path d="M120 103.5 125.3 103.4 130.4 103.3 135.4 103.3 140.3 103.2 145.1 103.1 149.8 103 154.5 103 159 102.9 163.5 102.8 168 102.7 172.5 102.6 176.9 102.6 181.3 102.5 185.8 102.4 190.2 102.3 194.7 102.2 199.2 102.2 203.9 102.1 208.5 102 213.3 101.9 218.2 101.8 223.1 101.8 228.2 101.7 233.5 101.6 238.8 101.5 244.4 101.5 250.1 101.4 256 101.3 A1.3 1.3 0 0 1 256 98.7 L256 98.7 250.1 98.6 244.4 98.5 238.8 98.5 233.5 98.4 228.2 98.3 223.1 98.2 218.2 98.2 213.3 98.1 208.5 98 203.9 97.9 199.2 97.8 194.7 97.8 190.2 97.7 185.8 97.6 181.3 97.5 176.9 97.4 172.5 97.4 168 97.3 163.5 97.2 159 97.1 154.5 97 149.8 97 145.1 96.9 140.3 96.8 135.4 96.7 130.4 96.7 125.3 96.6 120 96.5 A3.5 3.5 0 0 1 120 103.5Z" fill="#03B5BD"/>
|
|
4
|
+
<path d="M249.2 106L257.2 100L249.2 94" fill="none" stroke="#03B5BD" stroke-width="2.6" stroke-linecap="round" stroke-linejoin="round"/>
|
|
5
|
+
<path d="M320 103.5 325.3 103.4 330.6 103.3 335.8 103.3 340.9 103.2 346 103.1 351 103 356 103 361 102.9 366 102.8 370.9 102.7 375.9 102.6 380.8 102.6 385.8 102.5 390.8 102.4 395.7 102.3 400.8 102.2 405.8 102.2 410.9 102.1 416.1 102 421.3 101.9 426.6 101.8 431.9 101.8 437.4 101.7 442.9 101.6 448.5 101.5 454.2 101.5 460.1 101.4 466 101.3 A1.3 1.3 0 0 1 466 98.7 L466 98.7 460.1 98.6 454.2 98.5 448.5 98.5 442.9 98.4 437.4 98.3 431.9 98.2 426.6 98.2 421.3 98.1 416.1 98 410.9 97.9 405.8 97.8 400.8 97.8 395.7 97.7 390.8 97.6 385.8 97.5 380.8 97.4 375.9 97.4 370.9 97.3 366 97.2 361 97.1 356 97 351 97 346 96.9 340.9 96.8 335.8 96.7 330.6 96.7 325.3 96.6 320 96.5 A3.5 3.5 0 0 1 320 103.5Z" fill="#03B5BD"/>
|
|
6
|
+
<path d="M459.2 106L467.2 100L459.2 94" fill="none" stroke="#03B5BD" stroke-width="2.6" stroke-linecap="round" stroke-linejoin="round"/>
|
|
7
|
+
<path d="M317.5 113.5 326.9 114.6 335.4 116.9 343.4 120.2 351 124.5 358.1 129.7 364.9 135.8 371.2 142.6 377.2 150 382.9 158 388.2 166.5 393.3 175.4 398.1 184.5 402.7 193.8 407.1 203.2 411.3 212.6 415.3 221.9 419.3 231 423.2 239.8 427.1 248.3 430.9 256.2 434.8 263.6 438.7 270.3 442.8 276.3 446.9 281.4 451.3 285.6 455.9 288.7 460.8 290.7 465.8 291.3 A1.3 1.3 0 0 1 466.2 288.7 L466.2 288.7 461.6 288 457.4 286.2 453.3 283.3 449.3 279.3 445.5 274.3 441.7 268.5 438 261.8 434.4 254.5 430.7 246.6 427 238.2 423.3 229.3 419.5 220.2 415.5 210.8 411.4 201.3 407.2 191.7 402.7 182.2 397.9 172.9 392.9 163.8 387.6 155 381.8 146.6 375.7 138.7 369.1 131.5 362.1 124.9 354.5 119.2 346.4 114.4 337.6 110.6 328.2 107.9 318.5 106.5 A3.5 3.5 0 0 1 317.5 113.5Z" fill="#03B5BD"/>
|
|
8
|
+
<path d="M459.2 296L467.2 290L459.2 284" fill="none" stroke="#03B5BD" stroke-width="2.6" stroke-linecap="round" stroke-linejoin="round"/>
|
|
9
|
+
<path d="M496.5 130 496.6 134.3 496.7 138.7 496.7 143.2 496.8 147.7 496.9 152.2 497 156.9 497.1 161.5 497.1 166.2 497.2 170.9 497.3 175.6 497.4 180.3 497.4 185 497.5 189.8 497.6 194.5 497.7 199.2 497.8 203.9 497.8 208.5 497.9 213.2 498 217.7 498.1 222.3 498.1 226.8 498.2 231.2 498.3 235.5 498.4 239.8 498.5 244 498.5 248.1 498.6 252.1 498.7 256 A1.3 1.3 0 0 1 501.3 256 L501.3 256 501.4 252.1 501.5 248.1 501.5 244 501.6 239.8 501.7 235.5 501.8 231.2 501.9 226.8 501.9 222.3 502 217.7 502.1 213.2 502.2 208.5 502.2 203.9 502.3 199.2 502.4 194.5 502.5 189.8 502.6 185 502.6 180.3 502.7 175.6 502.8 170.9 502.9 166.2 502.9 161.5 503 156.9 503.1 152.2 503.2 147.7 503.3 143.2 503.3 138.7 503.4 134.3 503.5 130 A3.5 3.5 0 0 1 496.5 130Z" fill="#03B5BD"/>
|
|
10
|
+
<path d="M494 249.2L500 257.2L506 249.2" fill="none" stroke="#03B5BD" stroke-width="2.6" stroke-linecap="round" stroke-linejoin="round"/>
|
|
11
|
+
<path d="M530 293.5 537.3 293.4 544.4 293.3 551.2 293.3 557.7 293.2 563.9 293.1 569.9 293 575.7 292.9 581.3 292.9 586.6 292.8 591.8 292.7 596.8 292.6 601.6 292.6 606.2 292.5 610.8 292.4 615.1 292.3 619.4 292.2 623.6 292.2 627.6 292.1 631.6 292 635.5 291.9 639.4 291.9 643.2 291.8 647 291.7 650.8 291.6 654.6 291.5 658.4 291.5 662.2 291.4 666 291.3 A1.3 1.3 0 0 1 666 288.7 L666 288.7 662.2 288.6 658.4 288.5 654.6 288.5 650.8 288.4 647 288.3 643.2 288.2 639.4 288.1 635.5 288.1 631.6 288 627.6 287.9 623.6 287.8 619.4 287.8 615.1 287.7 610.8 287.6 606.2 287.5 601.6 287.4 596.8 287.4 591.8 287.3 586.6 287.2 581.3 287.1 575.7 287.1 569.9 287 563.9 286.9 557.7 286.8 551.2 286.7 544.4 286.7 537.3 286.6 530 286.5 A3.5 3.5 0 0 1 530 293.5Z" fill="#03B5BD"/>
|
|
12
|
+
<path d="M659.2 296L667.2 290L659.2 284" fill="none" stroke="#03B5BD" stroke-width="2.6" stroke-linecap="round" stroke-linejoin="round"/>
|
|
13
|
+
<path d="M729.3 283.3 735.8 280.6 742.2 277.3 748.1 273.4 753.7 268.9 758.9 264 763.8 258.7 768.4 253.1 772.8 247.2 776.9 241 780.9 234.7 784.6 228.2 788.2 221.7 791.7 215.1 795.1 208.6 798.4 202.2 801.7 195.9 805 189.9 808.3 184 811.6 178.5 814.9 173.4 818.3 168.6 821.8 164.4 825.4 160.6 829.2 157.5 833.1 154.9 837.1 153 841.4 151.8 846.1 151.3 A1.3 1.3 0 0 1 845.9 148.7 L845.9 148.7 841 149.1 836.2 150.2 831.6 152.2 827.3 154.8 823.2 158.1 819.2 162 815.4 166.4 811.8 171.2 808.2 176.4 804.7 181.9 801.2 187.7 797.8 193.8 794.4 200 790.9 206.4 787.4 212.8 783.8 219.2 780.1 225.6 776.2 231.8 772.3 237.9 768.1 243.8 763.8 249.4 759.3 254.7 754.6 259.6 749.6 264.1 744.4 268.1 738.9 271.5 733.1 274.4 726.7 276.7 A3.5 3.5 0 0 1 729.3 283.3Z" fill="#03B5BD"/>
|
|
14
|
+
<path d="M839.2 156L847.2 150L839.2 144" fill="none" stroke="#03B5BD" stroke-width="2.6" stroke-linecap="round" stroke-linejoin="round"/>
|
|
15
|
+
<path d="M730 293.5 735.3 293.4 740.6 293.3 745.7 293.3 750.8 293.2 755.8 293.1 760.7 293 765.6 292.9 770.3 292.9 775 292.8 779.6 292.7 784.1 292.6 788.5 292.6 792.8 292.5 797 292.4 801.1 292.3 805.2 292.2 809.1 292.2 813 292.1 816.7 292 820.4 291.9 823.9 291.9 827.4 291.8 830.8 291.7 834 291.6 837.2 291.5 840.2 291.5 843.2 291.4 846 291.3 A1.3 1.3 0 0 1 846 288.7 L846 288.7 843.2 288.6 840.2 288.5 837.2 288.5 834 288.4 830.8 288.3 827.4 288.2 823.9 288.1 820.4 288.1 816.7 288 813 287.9 809.1 287.8 805.2 287.8 801.1 287.7 797 287.6 792.8 287.5 788.5 287.4 784.1 287.4 779.6 287.3 775 287.2 770.3 287.1 765.6 287.1 760.7 287 755.8 286.9 750.8 286.8 745.7 286.7 740.6 286.7 735.3 286.6 730 286.5 A3.5 3.5 0 0 1 730 293.5Z" fill="#03B5BD"/>
|
|
16
|
+
<path d="M839.2 296L847.2 290L839.2 284" fill="none" stroke="#03B5BD" stroke-width="2.6" stroke-linecap="round" stroke-linejoin="round"/>
|
|
17
|
+
<path d="M728 300C790 320 800 430 846 430" fill="none" stroke="#7E8487" stroke-width="2.6" stroke-linecap="round" stroke-dasharray="0.1 7"/>
|
|
18
|
+
<path d="M839.2 436L847.2 430L839.2 424" fill="none" stroke="#7E8487" stroke-width="2.6" stroke-linecap="round" stroke-linejoin="round"/>
|
|
19
|
+
<path d="M320.2 433.5 328.8 432.9 337.1 431.4 345.1 429.1 352.7 425.9 359.9 422 366.8 417.6 373.4 412.5 379.6 407 385.5 401.1 391.2 394.9 396.6 388.4 401.7 381.6 406.7 374.8 411.5 367.9 416.1 360.9 420.5 354.1 424.8 347.3 428.9 340.8 433 334.6 436.9 328.6 440.7 323.1 444.5 318 448.2 313.5 451.9 309.6 455.5 306.4 459.1 303.9 462.6 302.2 466.3 301.3 A1.3 1.3 0 0 1 465.7 298.7 L465.7 298.7 461.7 299.6 457.6 301.4 453.6 304 449.7 307.3 445.7 311.3 441.8 315.8 437.8 320.9 433.7 326.4 429.6 332.3 425.4 338.5 421.1 345 416.7 351.6 412.2 358.4 407.5 365.1 402.7 371.9 397.7 378.5 392.5 385 387.1 391.3 381.5 397.2 375.7 402.8 369.6 408 363.4 412.6 356.8 416.7 350.1 420.1 343 422.9 335.7 424.9 328 426.1 319.8 426.5 A3.5 3.5 0 0 1 320.2 433.5Z" fill="#03B5BD"/>
|
|
20
|
+
<path d="M459.9 306.7L467.2 299.9L458.6 294.8" fill="none" stroke="#03B5BD" stroke-width="2.6" stroke-linecap="round" stroke-linejoin="round"/>
|
|
21
|
+
<ellipse cx="90" cy="130.0" rx="28.0" ry="3.5" fill="#BCC5CA" opacity="0.55"/>
|
|
22
|
+
<rect x="66" y="76" width="48" height="48" rx="9.6" fill="#212E34"/><circle cx="90" cy="100" r="9.1" fill="#03B5BD"/>
|
|
23
|
+
<ellipse cx="290" cy="130.0" rx="28.0" ry="3.5" fill="#BCC5CA" opacity="0.55"/>
|
|
24
|
+
<rect x="266" y="76" width="48" height="48" rx="9.6" fill="#212E34"/><circle cx="290" cy="100" r="9.1" fill="#03B5BD"/>
|
|
25
|
+
<ellipse cx="500" cy="130.0" rx="28.0" ry="3.5" fill="#BCC5CA" opacity="0.55"/>
|
|
26
|
+
<rect x="476" y="76" width="48" height="48" rx="9.6" fill="#212E34"/><circle cx="500" cy="100" r="9.1" fill="#03B5BD"/>
|
|
27
|
+
<ellipse cx="500" cy="320.0" rx="28.0" ry="3.5" fill="#BCC5CA" opacity="0.55"/>
|
|
28
|
+
<rect x="476" y="266" width="48" height="48" rx="9.6" fill="#212E34"/><circle cx="500" cy="290" r="9.1" fill="#03B5BD"/>
|
|
29
|
+
<ellipse cx="700" cy="320.0" rx="28.0" ry="3.5" fill="#BCC5CA" opacity="0.55"/>
|
|
30
|
+
<rect x="676" y="266" width="48" height="48" rx="9.6" fill="#212E34"/><circle cx="700" cy="290" r="9.1" fill="#03B5BD"/>
|
|
31
|
+
<ellipse cx="880" cy="180.0" rx="28.0" ry="3.5" fill="#BCC5CA" opacity="0.55"/>
|
|
32
|
+
<rect x="856" y="126" width="48" height="48" rx="9.6" fill="#212E34"/><circle cx="880" cy="150" r="9.1" fill="#03B5BD"/>
|
|
33
|
+
<ellipse cx="880" cy="320.0" rx="28.0" ry="3.5" fill="#BCC5CA" opacity="0.55"/>
|
|
34
|
+
<rect x="856" y="266" width="48" height="48" rx="9.6" fill="#212E34"/><circle cx="880" cy="290" r="9.1" fill="#03B5BD"/>
|
|
35
|
+
<ellipse cx="880" cy="460.0" rx="28.0" ry="3.5" fill="#BCC5CA" opacity="0.55"/>
|
|
36
|
+
<rect x="856" y="406" width="48" height="48" rx="9.6" fill="#212E34"/><circle cx="880" cy="430" r="9.1" fill="#03B5BD"/>
|
|
37
|
+
<ellipse cx="290" cy="460.0" rx="28.0" ry="3.5" fill="#BCC5CA" opacity="0.55"/>
|
|
38
|
+
<rect x="266" y="406" width="48" height="48" rx="9.6" fill="#212E34"/><circle cx="290" cy="430" r="9.1" fill="#03B5BD"/>
|
|
39
|
+
<text x="90" y="150" class="m" font-size="14" fill="#212E34" font-weight="700" text-anchor="middle">/jh-grill</text>
|
|
40
|
+
<text x="90" y="168" class="s" font-size="12.5" fill="#4A4E51" text-anchor="middle">settles decisions</text>
|
|
41
|
+
<text x="290" y="150" class="m" font-size="14" fill="#212E34" font-weight="700" text-anchor="middle">/jh-plan</text>
|
|
42
|
+
<text x="290" y="168" class="s" font-size="12.5" fill="#4A4E51" text-anchor="middle">writes the plan</text>
|
|
43
|
+
<text x="532" y="96" class="m" font-size="14" fill="#212E34" font-weight="700" text-anchor="start">/jh-orchestrate</text>
|
|
44
|
+
<text x="532" y="114" class="s" font-size="12.5" fill="#4A4E51" text-anchor="start">lanes in herdr</text>
|
|
45
|
+
<text x="500" y="340" class="m" font-size="14" fill="#212E34" font-weight="700" text-anchor="middle">/jh-implement</text>
|
|
46
|
+
<text x="500" y="358" class="s" font-size="12.5" fill="#4A4E51" text-anchor="middle">builds, ticks</text>
|
|
47
|
+
<text x="700" y="340" class="m" font-size="14" fill="#212E34" font-weight="700" text-anchor="middle">/jh-pre-commit</text>
|
|
48
|
+
<text x="700" y="358" class="s" font-size="12.5" fill="#4A4E51" text-anchor="middle">jh check</text>
|
|
49
|
+
<text x="880" y="200" class="m" font-size="14" fill="#212E34" font-weight="700" text-anchor="middle">/jh-review</text>
|
|
50
|
+
<text x="880" y="340" class="m" font-size="14" fill="#212E34" font-weight="700" text-anchor="middle">jh-spec-review</text>
|
|
51
|
+
<text x="880" y="358" class="s" font-size="12.5" fill="#4A4E51" text-anchor="middle">agent, against the plan</text>
|
|
52
|
+
<text x="880" y="478" class="m" font-size="13" fill="#212E34" font-weight="600" text-anchor="middle">/jh-uncle-bob</text>
|
|
53
|
+
<text x="880" y="495" class="m" font-size="13" fill="#212E34" font-weight="600" text-anchor="middle">/jh-security-audit</text>
|
|
54
|
+
<text x="880" y="512" class="m" font-size="13" fill="#212E34" font-weight="600" text-anchor="middle">/jh-devops</text>
|
|
55
|
+
<text x="290" y="480" class="m" font-size="14" fill="#212E34" font-weight="700" text-anchor="middle">/jh-diagnose</text>
|
|
56
|
+
<text x="290" y="498" class="s" font-size="12.5" fill="#4A4E51" text-anchor="middle">bug, flaky failure</text>
|
|
57
|
+
<text x="190" y="88" class="s" font-size="12.5" fill="#4A4E51" text-anchor="middle" font-style="italic">decision rows</text>
|
|
58
|
+
<text x="395" y="70" class="s" font-size="12.5" fill="#4A4E51" text-anchor="middle" font-style="italic">phases, Writes,</text>
|
|
59
|
+
<text x="395" y="86" class="s" font-size="12.5" fill="#4A4E51" text-anchor="middle" font-style="italic">model per phase</text>
|
|
60
|
+
<text x="400" y="206" class="s" font-size="12.5" fill="#4A4E51" text-anchor="end" font-style="italic">one phase</text>
|
|
61
|
+
<text x="512" y="200" class="s" font-size="12.5" fill="#4A4E51" text-anchor="start" font-style="italic">each lane runs</text>
|
|
62
|
+
<text x="788" y="392" class="s" font-size="12.5" fill="#4A4E51" text-anchor="end" font-style="italic">routed</text>
|
|
63
|
+
<text x="788" y="408" class="s" font-size="12.5" fill="#4A4E51" text-anchor="end" font-style="italic">by path</text>
|
|
64
|
+
<text x="420" y="420" class="s" font-size="12.5" fill="#4A4E51" text-anchor="start" font-style="italic">red command</text>
|
|
65
|
+
</svg>
|