REGULATED EXECUTION · ONE SPRINT AT A TIME
Record focused time, review the evidence, and protect the Through Line.
Rolling output from the same local tracker and task archive.
MODULE IN FABRICATION — prompting guide record not loaded.
+4 vs your daily average — on pace for 42 this week
3 scored calls this period — trend needs 4+.
| Account | Revenue | Growth | Trend |
|---|---|---|---|
| TechCorp Solutions | $8.7M | ▲ 24.3% | |
| Global Enterprises | $6.2M | ▲ 18.7% | |
| InnovateX Inc. | $5.4M | ▲ 15.2% |
"I'll send that over — but so I send the right thing, what number would make a 10-minute call worth it?"
| Task | When | Prospect | Status |
|---|---|---|---|
Review bill details | Thu 10:00 | Northfield Plastics | Ready |
Send pre-read | Fri 14:30 | Clearway Logistics | Needs prep |
Each pin is { src, x, y, rot, w } stored on the record. Drop a file (or click the empty board) to pin it at that point; drag the photo to re-tack it; drag the small square handle at its bottom-right corner — the same nwse-resize handle used on Maps whiteboard nodes — to resize it. The board itself is a flexible aside (flex:1 1 280px, not a fixed width) so it fills every pixel next to the text instead of leaving unusable space on wide windows.
.eo-as-media{ position:relative; flex:1 1 280px; min-width:220px; min-height:260px; overflow:hidden; }
.eo-as-pin{ position:absolute; width:var(--pw, 172px); cursor:grab;
transform:rotate(var(--rot)); transform-origin:50% 8px; touch-action:none; user-select:none; }
.eo-as-pin img{ display:block; width:100%; pointer-events:none; border:6px solid #f3efe6; border-bottom-width:14px; }
.eo-as-pin-resize{ position:absolute; right:-5px; bottom:8px; width:12px; height:12px; border-radius:3px;
background:var(--accent); border:2px solid var(--bg); cursor:nwse-resize; opacity:0; }
.eo-as-pin:hover .eo-as-pin-resize{ opacity:1; }
// pin shape: { src, x, y, rot, w } (w defaults to 172)
function startPinDrag(fig, pins, idx, media){
const start = { x: 0, y: 0, left: fig.offsetLeft, top: fig.offsetTop };
const onMove = e => {
const maxX = Math.max(0, media.clientWidth - fig.offsetWidth);
const maxY = Math.max(0, media.clientHeight - 40);
fig.style.left = Math.min(maxX, Math.max(0, start.left + e.dx)) + 'px';
fig.style.top = Math.min(maxY, Math.max(0, start.top + e.dy)) + 'px';
};
const onUp = () => {
pins[idx] = Object.assign({}, pins[idx], { x: fig.offsetLeft, y: fig.offsetTop });
save(pins); // persist the updated record
};
return { onMove, onUp };
}
function startPinResize(fig, pins, idx){
const startW = fig.offsetWidth;
const onMove = e => {
const w = Math.max(70, Math.min(560, startW + e.dx));
fig.style.setProperty('--pw', w + 'px');
};
const onUp = () => {
pins[idx] = Object.assign({}, pins[idx], { w: fig.offsetWidth });
save(pins);
};
return { onMove, onUp };
}
// Wire both with pointerdown/pointermove/pointerup (pointer capture) —
// the resize handle must stopPropagation() so it doesn't also start a drag.
| Plant | Output | Units |
|---|---|---|
| Aachen | 4,820 | |
| Bilbao | 3,910 | |
| Cortez | 2,540 | |
| Dalby | 1,370 |
MODULE IN FABRICATION — a place to collect, organise, and revisit your best ideas.
Ask the app to change its own source. Replies come from the agent on your VPS.
Stored on this device only. It is the AGENT_TOKEN your VPS agent was started with.