|
| 1 | +# Demo |
| 2 | + |
| 3 | +This is the fastest way to demo `paperclip-aperture` live inside Paperclip. |
| 4 | + |
| 5 | +## Demo Thesis |
| 6 | + |
| 7 | +Paperclip already knows about approvals, issues, and operator actions. |
| 8 | + |
| 9 | +Aperture adds judgment: |
| 10 | + |
| 11 | +- what deserves attention now |
| 12 | +- what should wait next |
| 13 | +- what should stay ambient |
| 14 | + |
| 15 | +The demo should prove that `Focus` is not just another inbox. It is a judgment surface. |
| 16 | + |
| 17 | +## What To Show |
| 18 | + |
| 19 | +In 3-5 minutes, show: |
| 20 | + |
| 21 | +1. `Focus` exists as a first-class destination inside Paperclip. |
| 22 | +2. Pending approvals rise to the top as `now` and `next`. |
| 23 | +3. Lower-salience issue activity stays `ambient`. |
| 24 | +4. The operator can act from the Focus surface without leaving the plugin. |
| 25 | +5. The plugin is powered by Aperture, but still behaves like a native Paperclip plugin. |
| 26 | + |
| 27 | +## Demo Environment |
| 28 | + |
| 29 | +Use the local sandboxed Paperclip instance: |
| 30 | + |
| 31 | +- App: `http://127.0.0.1:3100` |
| 32 | +- Focus page: `http://127.0.0.1:3100/CAM/aperture` |
| 33 | + |
| 34 | +Recommended demo company: |
| 35 | + |
| 36 | +- `Camera Paper Corp` |
| 37 | +- prefix: `CAM` |
| 38 | + |
| 39 | +## Pre-Demo Checklist |
| 40 | + |
| 41 | +Before demoing, confirm: |
| 42 | + |
| 43 | +- Paperclip is running |
| 44 | +- the plugin is installed and `ready` |
| 45 | +- the left sidebar shows `Focus` |
| 46 | +- the Focus page loads without errors |
| 47 | +- there is at least: |
| 48 | + - one pending approval |
| 49 | + - one additional queued approval |
| 50 | + - one low-salience issue visible as ambient |
| 51 | + |
| 52 | +If you do not already have live data in the sandbox: |
| 53 | + |
| 54 | +- create a new agent while board approval is enabled |
| 55 | +- create a second approval-generating action |
| 56 | +- create or update one normal issue that should remain ambient |
| 57 | + |
| 58 | +## Suggested Live Flow |
| 59 | + |
| 60 | +### 1. Start At The Sidebar |
| 61 | + |
| 62 | +Open Paperclip and point out: |
| 63 | + |
| 64 | +- `Focus` appears in the main navigation |
| 65 | +- it sits naturally beside Inbox |
| 66 | +- it is not a separate app or sidecar |
| 67 | + |
| 68 | +Suggested line: |
| 69 | + |
| 70 | +> This is Aperture embedded inside Paperclip as a normal plugin. The operator opens `Focus`, not a separate runtime. |
| 71 | +
|
| 72 | +### 2. Open Focus |
| 73 | + |
| 74 | +Navigate to `http://127.0.0.1:3100/CAM/aperture`. |
| 75 | + |
| 76 | +Point out: |
| 77 | + |
| 78 | +- `Focus` is the user-facing destination label |
| 79 | +- `Powered by Aperture` is secondary |
| 80 | +- the surface is organized into: |
| 81 | + - `now` |
| 82 | + - `next` |
| 83 | + - `ambient` |
| 84 | + |
| 85 | +Suggested line: |
| 86 | + |
| 87 | +> Paperclip is the host shell and workflow system. Aperture is the judgment engine deciding what belongs in now, next, and ambient. |
| 88 | +
|
| 89 | +### 3. Explain The Top Item |
| 90 | + |
| 91 | +Use the active frame. |
| 92 | + |
| 93 | +Point out: |
| 94 | + |
| 95 | +- title |
| 96 | +- urgency / risk badges |
| 97 | +- operator actions |
| 98 | +- details disclosure |
| 99 | + |
| 100 | +Suggested line: |
| 101 | + |
| 102 | +> The top slot is reserved for the one thing the system thinks should own the operator right now. |
| 103 | +
|
| 104 | +### 4. Show The Queue |
| 105 | + |
| 106 | +Move to `Next`. |
| 107 | + |
| 108 | +Point out: |
| 109 | + |
| 110 | +- ranked rows |
| 111 | +- compact treatment |
| 112 | +- lower visual weight than `Now` |
| 113 | + |
| 114 | +Suggested line: |
| 115 | + |
| 116 | +> This is not just a list of raw events. It is a ranked staging area behind the current focus. |
| 117 | +
|
| 118 | +### 5. Show Ambient |
| 119 | + |
| 120 | +Move to `Ambient`. |
| 121 | + |
| 122 | +Point out: |
| 123 | + |
| 124 | +- low visual weight |
| 125 | +- quieter presentation |
| 126 | +- still visible for awareness |
| 127 | + |
| 128 | +Suggested line: |
| 129 | + |
| 130 | +> Ambient items are still visible, but they do not interrupt the operator. |
| 131 | +
|
| 132 | +### 6. Take An Action |
| 133 | + |
| 134 | +Approve, reject, or request revision on one approval. |
| 135 | + |
| 136 | +Point out: |
| 137 | + |
| 138 | +- the action happens from inside Focus |
| 139 | +- the surface updates live |
| 140 | +- the operator does not need to go hunt in Inbox first |
| 141 | + |
| 142 | +Suggested line: |
| 143 | + |
| 144 | +> The goal is not to replace Paperclip. It is to add a judgment layer on top of Paperclip's existing control-plane primitives. |
| 145 | +
|
| 146 | +## Backup Narrative |
| 147 | + |
| 148 | +If the live data is quiet, explain the architecture with this one-liner: |
| 149 | + |
| 150 | +> Paperclip emits host facts, the plugin normalizes them, Aperture judges them, and Focus renders the result back inside Paperclip. |
| 151 | +
|
| 152 | +## Architecture Napkin |
| 153 | + |
| 154 | +```text |
| 155 | +Paperclip host facts |
| 156 | +approvals / issues / failures |
| 157 | + | |
| 158 | + v |
| 159 | +paperclip-aperture plugin |
| 160 | +translate host facts into Aperture events |
| 161 | + | |
| 162 | + v |
| 163 | +@tomismeta/aperture-core |
| 164 | +judge now / next / ambient |
| 165 | + | |
| 166 | + v |
| 167 | +Focus inside Paperclip |
| 168 | +operator reviews and responds |
| 169 | + | |
| 170 | + v |
| 171 | +Paperclip host actions |
| 172 | +approve / reject / request revision / acknowledge |
| 173 | +``` |
| 174 | + |
| 175 | +## What To Say If Asked |
| 176 | + |
| 177 | +### "Did this require changing Aperture core?" |
| 178 | + |
| 179 | +No. Aperture core was embedded as-is. The integration work lives in the plugin layer. |
| 180 | + |
| 181 | +### "Did this require changing Paperclip core?" |
| 182 | + |
| 183 | +No for the current working path. The plugin uses Paperclip's normal plugin model and trusted same-origin UI. |
| 184 | + |
| 185 | +### "What is the product boundary?" |
| 186 | + |
| 187 | +- Paperclip = runtime, event source, host UI, host actions |
| 188 | +- Aperture = deterministic attention and judgment engine |
| 189 | +- `paperclip-aperture` = adapter + persistence + UI |
| 190 | + |
| 191 | +## After The Demo |
| 192 | + |
| 193 | +Good follow-up prompts: |
| 194 | + |
| 195 | +- Should `Focus` become the default operator surface for certain roles? |
| 196 | +- Which Paperclip events deserve first-class treatment next? |
| 197 | +- How much of Aperture's `Why this?` reasoning should be exposed in the UI? |
0 commit comments