@troylar/sightline 0.0.0-stage → 1.120.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +1890 -0
- package/CONTRIBUTING.md +67 -0
- package/LICENSE +21 -0
- package/README.md +153 -2
- package/THIRD-PARTY-NOTICES.md +121 -0
- package/bin/sightline.js +78 -0
- package/dist/sightline-app.py +406 -0
- package/dist/sightline-assistant.py +551 -0
- package/dist/sightline-jira-sync.py +2513 -0
- package/dist/sightline.html +14141 -0
- package/docs/assistant-workflow.md +472 -0
- package/docs/availability.md +54 -0
- package/docs/bundled-skills.md +46 -0
- package/docs/getting-started.md +99 -0
- package/docs/images/assistant-dark.png +0 -0
- package/docs/images/assistant-light.png +0 -0
- package/docs/images/bundled-skills-dark.png +0 -0
- package/docs/images/bundled-skills-light.png +0 -0
- package/docs/images/planning-decisions-dark.svg +46 -0
- package/docs/images/planning-decisions-light.svg +46 -0
- package/docs/images/planning-decisions-mobile-dark.svg +40 -0
- package/docs/images/planning-decisions-mobile-light.svg +40 -0
- package/docs/images/planning-story-dark.svg +32 -0
- package/docs/images/planning-story-light.svg +32 -0
- package/docs/images/planning-story-mobile-dark.svg +33 -0
- package/docs/images/planning-story-mobile-light.svg +33 -0
- package/docs/images/review-dark.png +0 -0
- package/docs/images/review-light.png +0 -0
- package/docs/images/roadmap-dark.png +0 -0
- package/docs/images/roadmap-light.png +0 -0
- package/docs/images/roadmap-map-dark.svg +53 -0
- package/docs/images/roadmap-map-light.svg +53 -0
- package/docs/images/roadmap-map-mobile-dark.svg +37 -0
- package/docs/images/roadmap-map-mobile-light.svg +37 -0
- package/docs/images/timeline-dark.png +0 -0
- package/docs/images/timeline-light.png +0 -0
- package/docs/images/today-dark.png +0 -0
- package/docs/images/today-light.png +0 -0
- package/docs/jira.md +66 -0
- package/docs/large-roadmaps.md +93 -0
- package/docs/onedrive.md +62 -0
- package/docs/performance-workspaces.md +39 -0
- package/docs/roadmap-planning-example.md +92 -0
- package/docs/roadmap.md +232 -0
- package/docs/screenshots.md +57 -0
- package/docs/skill-evaluation.md +71 -0
- package/docs/skills.md +85 -0
- package/docs/team-planning.md +66 -0
- package/docs/usability-test.md +215 -0
- package/docs/workspace-validation.md +152 -0
- package/docs/workspaces.md +106 -0
- package/examples/northstar/blank-plan.json +21 -0
- package/examples/northstar/brain-dump.txt +1 -0
- package/examples/northstar/jira/issues.json +1256 -0
- package/examples/northstar/jira/status.json +1542 -0
- package/examples/northstar/plan.json +341 -0
- package/examples/northstar/roadmap-session-amendments.json +42 -0
- package/examples/northstar/sightline-amendments.json +41 -0
- package/package.json +53 -4
- package/skills/sightline-edit-plan/SKILL.md +35 -0
- package/skills/sightline-meeting-to-plan/SKILL.md +34 -0
- package/skills/sightline-plan-roadmap/SKILL.md +34 -0
- package/skills/sightline-planning-guide/SKILL.md +29 -0
- package/skills/sightline-review-plan/SKILL.md +28 -0
- package/skills/sightline-sort-jira/SKILL.md +56 -0
- package/skills/sightline-status/SKILL.md +26 -0
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1280 640" role="img" aria-labelledby="title desc"><title id="title">Sightline: get your arms around a big roadmap</title><desc id="desc">Illustrative planning map: rough requests connect to Integrations, Search and Platform workstreams. Dependencies and a shared specialist lead to scope, sequencing and capacity decisions. This is a conceptual diagram, not an app screenshot.</desc>
|
|
2
|
+
<style>text{font-family:"Avenir Next","Trebuchet MS",Arial,sans-serif}</style>
|
|
3
|
+
<rect x="0" y="0" width="1280" height="640" rx="24" fill="#f5f8fc"/>
|
|
4
|
+
<text x="44" y="86" fill="#172b4d" font-size="58" font-weight="650" text-anchor="start">A big roadmap.</text>
|
|
5
|
+
<text x="44" y="156" fill="#172b4d" font-size="58" font-weight="650" text-anchor="start">A clearer way through.</text>
|
|
6
|
+
<text x="790" y="80" fill="#536783" font-size="23" font-weight="500" text-anchor="start">Many teams. Competing requests.</text>
|
|
7
|
+
<text x="790" y="114" fill="#536783" font-size="23" font-weight="500" text-anchor="start">Dependencies. Limited capacity.</text>
|
|
8
|
+
<text x="46" y="218" fill="#536783" font-size="24" font-weight="500" text-anchor="start">Plan together. Think with AI. Review the changes.</text>
|
|
9
|
+
<path d="M44 252 H1236" fill="none" stroke="#d6e1f0" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
|
10
|
+
<text x="46" y="306" fill="#536783" font-size="21" font-weight="600" text-anchor="start">The rough input</text>
|
|
11
|
+
<rect x="46" y="344" width="214" height="44" rx="6" fill="#ffffff" stroke="#d6e1f0"/>
|
|
12
|
+
<text x="63" y="373" fill="#172b4d" font-size="20" font-weight="500" text-anchor="start">Meeting notes</text>
|
|
13
|
+
<path d="M260 366 H288 Q308 366 308 426" fill="none" stroke="#d6e1f0" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
|
|
14
|
+
<rect x="46" y="404" width="214" height="44" rx="6" fill="#ffffff" stroke="#d6e1f0"/>
|
|
15
|
+
<text x="63" y="433" fill="#172b4d" font-size="20" font-weight="500" text-anchor="start">Jira work</text>
|
|
16
|
+
<path d="M260 426 H288 Q308 426 308 426" fill="none" stroke="#d6e1f0" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
|
|
17
|
+
<rect x="46" y="464" width="214" height="44" rx="6" fill="#ffffff" stroke="#d6e1f0"/>
|
|
18
|
+
<text x="63" y="493" fill="#172b4d" font-size="20" font-weight="500" text-anchor="start">New requests</text>
|
|
19
|
+
<path d="M260 486 H288 Q308 486 308 426" fill="none" stroke="#d6e1f0" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
|
|
20
|
+
<circle cx="308" cy="426" r="6" fill="#2563eb"/>
|
|
21
|
+
<path d="M308 426 H338" fill="none" stroke="#2563eb" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
|
|
22
|
+
<text x="350" y="306" fill="#172b4d" font-size="24" font-weight="650" text-anchor="start">One shared plan</text>
|
|
23
|
+
<path d="M350 374 H885" fill="none" stroke="#2563eb" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
|
|
24
|
+
<text x="350" y="340" fill="#2563eb" font-size="18" font-weight="650" text-anchor="start">Integrations</text>
|
|
25
|
+
<rect x="374" y="360" width="205" height="36" rx="7" fill="#edf3ff"/>
|
|
26
|
+
<text x="388" y="385" fill="#2563eb" font-size="18" font-weight="600" text-anchor="start">Customer context</text>
|
|
27
|
+
<circle cx="878" cy="374" r="7" fill="#f5f8fc" stroke="#2563eb" stroke-width="3"/>
|
|
28
|
+
<path d="M350 446 H885" fill="none" stroke="#08736c" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
|
|
29
|
+
<text x="350" y="412" fill="#08736c" font-size="18" font-weight="650" text-anchor="start">Search</text>
|
|
30
|
+
<rect x="563" y="432" width="177" height="36" rx="7" fill="#e2f4f0"/>
|
|
31
|
+
<text x="577" y="457" fill="#08736c" font-size="18" font-weight="600" text-anchor="start">Search quality</text>
|
|
32
|
+
<circle cx="878" cy="446" r="7" fill="#f5f8fc" stroke="#08736c" stroke-width="3"/>
|
|
33
|
+
<path d="M350 518 H885" fill="none" stroke="#7447ba" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
|
|
34
|
+
<text x="350" y="484" fill="#7447ba" font-size="18" font-weight="650" text-anchor="start">Platform</text>
|
|
35
|
+
<rect x="407" y="504" width="184" height="36" rx="7" fill="#eee8f8"/>
|
|
36
|
+
<text x="421" y="529" fill="#7447ba" font-size="18" font-weight="600" text-anchor="start">Index migration</text>
|
|
37
|
+
<circle cx="878" cy="518" r="7" fill="#f5f8fc" stroke="#7447ba" stroke-width="3"/>
|
|
38
|
+
<path d="M592 522 H620 Q643 522 643 500 V484 Q643 466 663 466 H696 V448" fill="none" stroke="#7447ba" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" stroke-dasharray="6 8"/>
|
|
39
|
+
<circle cx="643" cy="487" r="13" fill="#f5f8fc" stroke="#91600a" stroke-width="3"/>
|
|
40
|
+
<text x="666" y="491" fill="#91600a" font-size="17" font-weight="600" text-anchor="start">shared specialist</text>
|
|
41
|
+
<path d="M891 374 H922 Q942 374 942 402 V462 Q942 482 962 482" fill="none" stroke="#d6e1f0" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
|
|
42
|
+
<path d="M891 446 H942" fill="none" stroke="#d6e1f0" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
|
|
43
|
+
<path d="M891 518 H923 Q942 518 942 498 V482" fill="none" stroke="#d6e1f0" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
|
|
44
|
+
<text x="980" y="351" fill="#172b4d" font-size="25" font-weight="650" text-anchor="start">What needs</text>
|
|
45
|
+
<text x="980" y="384" fill="#172b4d" font-size="25" font-weight="650" text-anchor="start">a decision?</text>
|
|
46
|
+
<circle cx="990" cy="422" r="5" fill="#2563eb"/>
|
|
47
|
+
<text x="1008" y="428" fill="#172b4d" font-size="19" font-weight="500" text-anchor="start">Scope overlap</text>
|
|
48
|
+
<circle cx="990" cy="466" r="5" fill="#7447ba"/>
|
|
49
|
+
<text x="1008" y="472" fill="#172b4d" font-size="19" font-weight="500" text-anchor="start">Shared capacity</text>
|
|
50
|
+
<circle cx="990" cy="510" r="5" fill="#08736c"/>
|
|
51
|
+
<text x="1008" y="516" fill="#172b4d" font-size="19" font-weight="500" text-anchor="start">What fits next</text>
|
|
52
|
+
<text x="46" y="605" fill="#536783" font-size="18" font-weight="500" text-anchor="start">Illustrative planning map. Your plan and your assistant supply the real context.</text>
|
|
53
|
+
</svg>
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 520 760" role="img" aria-labelledby="title desc"><title id="title">Sightline: a clearer way through a big roadmap</title><desc id="desc">Illustrative planning map: notes, Jira work and requests connect to three workstreams. See their dependencies and find the next decision. Not an app screenshot.</desc>
|
|
2
|
+
<style>text{font-family:"Avenir Next","Trebuchet MS",Arial,sans-serif}</style>
|
|
3
|
+
<rect x="0" y="0" width="520" height="760" rx="24" fill="#101b30"/>
|
|
4
|
+
<text x="28" y="68" fill="#eef4ff" font-size="45" font-weight="650" text-anchor="start">A big roadmap.</text>
|
|
5
|
+
<text x="28" y="123" fill="#eef4ff" font-size="45" font-weight="650" text-anchor="start">A clearer way</text>
|
|
6
|
+
<text x="28" y="178" fill="#eef4ff" font-size="45" font-weight="650" text-anchor="start">through.</text>
|
|
7
|
+
<text x="30" y="242" fill="#b0c1dd" font-size="22" font-weight="500" text-anchor="start">Plan together. Think with AI.</text>
|
|
8
|
+
<text x="30" y="272" fill="#b0c1dd" font-size="22" font-weight="500" text-anchor="start">Review the changes.</text>
|
|
9
|
+
<path d="M28 302 H492" fill="none" stroke="#314767" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
|
10
|
+
<rect x="28" y="330" width="134" height="44" rx="6" fill="#192943" stroke="#314767"/>
|
|
11
|
+
<text x="95" y="359" fill="#eef4ff" font-size="19" font-weight="500" text-anchor="middle">Notes</text>
|
|
12
|
+
<path d="M95 374 V394 Q95 414 260 414" fill="none" stroke="#314767" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
|
|
13
|
+
<rect x="193" y="330" width="134" height="44" rx="6" fill="#192943" stroke="#314767"/>
|
|
14
|
+
<text x="260" y="359" fill="#eef4ff" font-size="19" font-weight="500" text-anchor="middle">Jira work</text>
|
|
15
|
+
<path d="M260 374 V394 Q260 414 260 414" fill="none" stroke="#314767" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
|
|
16
|
+
<rect x="358" y="330" width="134" height="44" rx="6" fill="#192943" stroke="#314767"/>
|
|
17
|
+
<text x="425" y="359" fill="#eef4ff" font-size="19" font-weight="500" text-anchor="middle">Requests</text>
|
|
18
|
+
<path d="M425 374 V394 Q425 414 260 414" fill="none" stroke="#314767" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
|
|
19
|
+
<circle cx="260" cy="414" r="6" fill="#80adff"/>
|
|
20
|
+
<path d="M260 414 V458 H470" fill="none" stroke="#80adff" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
|
|
21
|
+
<path d="M260 414 V526 H470" fill="none" stroke="#62d5c7" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
|
|
22
|
+
<path d="M260 414 V594 H470" fill="none" stroke="#c1a2ff" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
|
|
23
|
+
<rect x="28" y="435" width="464" height="48" rx="7" fill="#203c68"/>
|
|
24
|
+
<text x="44" y="465" fill="#80adff" font-size="20" font-weight="650" text-anchor="start">Integrations</text>
|
|
25
|
+
<text x="234" y="465" fill="#eef4ff" font-size="19" font-weight="500" text-anchor="start">Customer context</text>
|
|
26
|
+
<rect x="28" y="503" width="464" height="48" rx="7" fill="#183f42"/>
|
|
27
|
+
<text x="44" y="533" fill="#62d5c7" font-size="20" font-weight="650" text-anchor="start">Search</text>
|
|
28
|
+
<text x="234" y="533" fill="#eef4ff" font-size="19" font-weight="500" text-anchor="start">Search quality</text>
|
|
29
|
+
<rect x="28" y="571" width="464" height="48" rx="7" fill="#362e53"/>
|
|
30
|
+
<text x="44" y="601" fill="#c1a2ff" font-size="20" font-weight="650" text-anchor="start">Platform</text>
|
|
31
|
+
<text x="234" y="601" fill="#eef4ff" font-size="19" font-weight="500" text-anchor="start">Index migration</text>
|
|
32
|
+
<path d="M218 594 H205 V526 H218" fill="none" stroke="#c1a2ff" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" stroke-dasharray="6 8"/>
|
|
33
|
+
<circle cx="205" cy="560" r="9" fill="#101b30" stroke="#f6c36a" stroke-width="3"/>
|
|
34
|
+
<text x="30" y="678" fill="#eef4ff" font-size="27" font-weight="650" text-anchor="start">See the dependencies.</text>
|
|
35
|
+
<text x="30" y="712" fill="#eef4ff" font-size="27" font-weight="650" text-anchor="start">Find the next decision.</text>
|
|
36
|
+
<text x="30" y="741" fill="#b0c1dd" font-size="17" font-weight="500" text-anchor="start">Illustrative planning map</text>
|
|
37
|
+
</svg>
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 520 760" role="img" aria-labelledby="title desc"><title id="title">Sightline: a clearer way through a big roadmap</title><desc id="desc">Illustrative planning map: notes, Jira work and requests connect to three workstreams. See their dependencies and find the next decision. Not an app screenshot.</desc>
|
|
2
|
+
<style>text{font-family:"Avenir Next","Trebuchet MS",Arial,sans-serif}</style>
|
|
3
|
+
<rect x="0" y="0" width="520" height="760" rx="24" fill="#f5f8fc"/>
|
|
4
|
+
<text x="28" y="68" fill="#172b4d" font-size="45" font-weight="650" text-anchor="start">A big roadmap.</text>
|
|
5
|
+
<text x="28" y="123" fill="#172b4d" font-size="45" font-weight="650" text-anchor="start">A clearer way</text>
|
|
6
|
+
<text x="28" y="178" fill="#172b4d" font-size="45" font-weight="650" text-anchor="start">through.</text>
|
|
7
|
+
<text x="30" y="242" fill="#536783" font-size="22" font-weight="500" text-anchor="start">Plan together. Think with AI.</text>
|
|
8
|
+
<text x="30" y="272" fill="#536783" font-size="22" font-weight="500" text-anchor="start">Review the changes.</text>
|
|
9
|
+
<path d="M28 302 H492" fill="none" stroke="#d6e1f0" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
|
10
|
+
<rect x="28" y="330" width="134" height="44" rx="6" fill="#ffffff" stroke="#d6e1f0"/>
|
|
11
|
+
<text x="95" y="359" fill="#172b4d" font-size="19" font-weight="500" text-anchor="middle">Notes</text>
|
|
12
|
+
<path d="M95 374 V394 Q95 414 260 414" fill="none" stroke="#d6e1f0" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
|
|
13
|
+
<rect x="193" y="330" width="134" height="44" rx="6" fill="#ffffff" stroke="#d6e1f0"/>
|
|
14
|
+
<text x="260" y="359" fill="#172b4d" font-size="19" font-weight="500" text-anchor="middle">Jira work</text>
|
|
15
|
+
<path d="M260 374 V394 Q260 414 260 414" fill="none" stroke="#d6e1f0" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
|
|
16
|
+
<rect x="358" y="330" width="134" height="44" rx="6" fill="#ffffff" stroke="#d6e1f0"/>
|
|
17
|
+
<text x="425" y="359" fill="#172b4d" font-size="19" font-weight="500" text-anchor="middle">Requests</text>
|
|
18
|
+
<path d="M425 374 V394 Q425 414 260 414" fill="none" stroke="#d6e1f0" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
|
|
19
|
+
<circle cx="260" cy="414" r="6" fill="#2563eb"/>
|
|
20
|
+
<path d="M260 414 V458 H470" fill="none" stroke="#2563eb" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
|
|
21
|
+
<path d="M260 414 V526 H470" fill="none" stroke="#08736c" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
|
|
22
|
+
<path d="M260 414 V594 H470" fill="none" stroke="#7447ba" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
|
|
23
|
+
<rect x="28" y="435" width="464" height="48" rx="7" fill="#edf3ff"/>
|
|
24
|
+
<text x="44" y="465" fill="#2563eb" font-size="20" font-weight="650" text-anchor="start">Integrations</text>
|
|
25
|
+
<text x="234" y="465" fill="#172b4d" font-size="19" font-weight="500" text-anchor="start">Customer context</text>
|
|
26
|
+
<rect x="28" y="503" width="464" height="48" rx="7" fill="#e2f4f0"/>
|
|
27
|
+
<text x="44" y="533" fill="#08736c" font-size="20" font-weight="650" text-anchor="start">Search</text>
|
|
28
|
+
<text x="234" y="533" fill="#172b4d" font-size="19" font-weight="500" text-anchor="start">Search quality</text>
|
|
29
|
+
<rect x="28" y="571" width="464" height="48" rx="7" fill="#eee8f8"/>
|
|
30
|
+
<text x="44" y="601" fill="#7447ba" font-size="20" font-weight="650" text-anchor="start">Platform</text>
|
|
31
|
+
<text x="234" y="601" fill="#172b4d" font-size="19" font-weight="500" text-anchor="start">Index migration</text>
|
|
32
|
+
<path d="M218 594 H205 V526 H218" fill="none" stroke="#7447ba" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" stroke-dasharray="6 8"/>
|
|
33
|
+
<circle cx="205" cy="560" r="9" fill="#f5f8fc" stroke="#91600a" stroke-width="3"/>
|
|
34
|
+
<text x="30" y="678" fill="#172b4d" font-size="27" font-weight="650" text-anchor="start">See the dependencies.</text>
|
|
35
|
+
<text x="30" y="712" fill="#172b4d" font-size="27" font-weight="650" text-anchor="start">Find the next decision.</text>
|
|
36
|
+
<text x="30" y="741" fill="#536783" font-size="17" font-weight="500" text-anchor="start">Illustrative planning map</text>
|
|
37
|
+
</svg>
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/docs/jira.md
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# Bring Jira into the plan
|
|
2
|
+
|
|
3
|
+
Use Jira for the official issue facts and Sightline for the planning conversation around them. The optional
|
|
4
|
+
helper supports **Jira Data Center**, uses Python's standard library and makes read-only HTTPS requests.
|
|
5
|
+
The HTML never contacts Jira. [Back to the tour](../README.md#how-it-works).
|
|
6
|
+
|
|
7
|
+
## Try the example before connecting a server
|
|
8
|
+
|
|
9
|
+
Open [the Northstar plan](../examples/northstar/plan.json), then connect its sibling **jira** folder in
|
|
10
|
+
**Settings → Jira connection**. It contains synthetic files and needs no token. Choose **Work → Sort Jira work**
|
|
11
|
+
to see how incoming issues can be placed without editing Jira facts.
|
|
12
|
+
|
|
13
|
+
## Configure your own trusted helper
|
|
14
|
+
|
|
15
|
+
`npx @troylar/sightline helpers` prints the folder that holds the helpers, stamped with the app's version. Use
|
|
16
|
+
that absolute path in place of `/trusted/helpers` below. From a source checkout, run `./build.sh` and use **dist/**
|
|
17
|
+
(`node bin/sightline.js helpers` prints it). Python 3.10+ is required for the helpers; the HTML app itself does not
|
|
18
|
+
require Python. The helper only reads from Jira: it never creates, edits or deletes anything there.
|
|
19
|
+
|
|
20
|
+
```sh
|
|
21
|
+
python3 /trusted/helpers/sightline-jira-sync.py setup
|
|
22
|
+
python3 /trusted/helpers/sightline-jira-sync.py fields
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
`setup` asks for your Jira HTTPS address and personal access token and stores the token in your OS credential
|
|
26
|
+
store. Do not put tokens in a shared folder, plan, command argument or screenshot. `fields` helps identify your
|
|
27
|
+
server's Epic Link, Sprint, Story Points and Parent Link fields. Use each command's `--help` for local field overrides.
|
|
28
|
+
If your Jira puts a feature (or another level) between epics and stories through Parent Link, the sync needs that
|
|
29
|
+
field to trace each story to its epic. Without it, the sync says so after each run, and **Sort Jira work** explains
|
|
30
|
+
why such stories show with **No epic**. Sort Jira work groups a story under the first epic above it, through any
|
|
31
|
+
feature in between, even when that epic isn't on the plan.
|
|
32
|
+
|
|
33
|
+
Save a JSON plan first. Then, with an explicit Jira board ID and JQL that you choose locally:
|
|
34
|
+
|
|
35
|
+
```sh
|
|
36
|
+
python3 /trusted/helpers/sightline-jira-sync.py sync /path/to/plan.json --board 42 --jql 'project = DEMO' --save
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
`42` and `DEMO` are invented examples. Replace them deliberately with your own board and search. The helper reads
|
|
40
|
+
more than search results, including relevant issue, board and sprint endpoints. Server/search configuration stays
|
|
41
|
+
local to the token holder and is never taken from the shared plan. `--save` remembers this plan's sync settings on
|
|
42
|
+
that computer. The default output is a **jira** folder beside the plan.
|
|
43
|
+
|
|
44
|
+
## Connect the output in Sightline
|
|
45
|
+
|
|
46
|
+
1. Open the matching plan in Sightline.
|
|
47
|
+
2. Choose **Settings → Jira connection**, then connect the local **jira** output folder.
|
|
48
|
+
3. Check the sync timestamp, coverage and any setup warnings. If the plan's sprints differ, inspect **See the change
|
|
49
|
+
first** before choosing to follow Jira's sprints.
|
|
50
|
+
4. Use **Work → Sort Jira work** to arrange returned issues. Open an item: **From Jira** stays read-only;
|
|
51
|
+
**Added here** is your planning context.
|
|
52
|
+
Your assistant can propose where each issue goes (the **Sort Jira work** skill); you review every placement in
|
|
53
|
+
**Changes** before anything joins the plan, and nothing is written to Jira. See
|
|
54
|
+
[Sorting Jira work](assistant-workflow.md#sorting-jira-work).
|
|
55
|
+
5. An initiative or task linked to an issue shows the issue's description as its story, marked **From Jira**
|
|
56
|
+
(Sightline 1.109.0 or later, with the matching sync). The sync reads descriptions only for issues the plan links.
|
|
57
|
+
|
|
58
|
+
For repeated syncs, run `python3 /trusted/helpers/sightline-jira-sync.py watch`. Read `install --help` before
|
|
59
|
+
configuring startup behavior. Run trusted helper code from your own computer, never a mutable shared folder.
|
|
60
|
+
|
|
61
|
+
## Read freshness literally
|
|
62
|
+
|
|
63
|
+
A local timestamp describes the most recent successful sync in the files Sightline read. It doesn't prove Jira
|
|
64
|
+
is current now, that your search covers everything, or that a cloud provider delivered the latest files. Missing
|
|
65
|
+
issues are “not in the last sync”; their surrounding plan work is retained. Jira status and sprint dates remain
|
|
66
|
+
Jira-owned. Sightline proposals do not write changes back to Jira.
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
# Get your arms around a large roadmap
|
|
2
|
+
|
|
3
|
+
If you are new to Sightline, read the [worked planning session](roadmap-planning-example.md) first. It shows how
|
|
4
|
+
a set of overlapping requests becomes a source reconciliation, a capacity question, and three decisions.
|
|
5
|
+
|
|
6
|
+
Start with the mess you actually have: goals, commitments, meeting notes, questions, Jira work, and more ideas
|
|
7
|
+
than the team can tackle at once. Use your external AI tool to turn that into a sequence of decisions, with
|
|
8
|
+
reviewable changes attached. [Connect your assistant first](assistant-workflow.md).
|
|
9
|
+
|
|
10
|
+
You do not need a perfect backlog before starting. You do need to know which evidence the assistant can see.
|
|
11
|
+
|
|
12
|
+
## Check the planning evidence first
|
|
13
|
+
|
|
14
|
+
Ask:
|
|
15
|
+
|
|
16
|
+
> Read the current context. Tell me which plan and snapshot it represents, what it includes, what is omitted,
|
|
17
|
+
> and which parts of this planning question the evidence cannot answer.
|
|
18
|
+
|
|
19
|
+
Public-source 1.94.0 supports roadmap editing context. **Richer automatic capacity, dependency, risk and decision
|
|
20
|
+
exports require 1.96.0 or later**. Check for `planning.version: 1` and read `coverage`; do not assume a newer
|
|
21
|
+
export because the guide describes one. [Build availability](availability.md).
|
|
22
|
+
|
|
23
|
+
On an older build, provide any additional evidence deliberately, as separate read-only input to your tool.
|
|
24
|
+
Do not tell it to search personal folders or overwrite your shared plan. Without the relevant evidence,
|
|
25
|
+
organization is possible but a capacity-backed delivery forecast is not established.
|
|
26
|
+
|
|
27
|
+
## 1. Empty your head without committing the team
|
|
28
|
+
|
|
29
|
+
Give the tool a notes file or paste a substantial section into its conversation. Keep a copy of the source.
|
|
30
|
+
|
|
31
|
+
> Separate these notes into agreed changes, ideas, constraints, and open questions. Match them to existing
|
|
32
|
+
> work by stable ID where possible. Flag possible duplicates; do not merge them just because their names are
|
|
33
|
+
> similar. Keep every source item accounted for. Ask only the questions needed to avoid a consequential guess.
|
|
34
|
+
|
|
35
|
+
For a long source, work in sections. At the end ask for a reconciliation: incorporated, matched to existing work,
|
|
36
|
+
left as an idea, or awaiting a decision. A summary alone does not establish that nothing was dropped.
|
|
37
|
+
|
|
38
|
+
## 2. Reorganize around outcomes
|
|
39
|
+
|
|
40
|
+
> Suggest a clearer arrangement of this work. Explain the user or business result for each outcome, what
|
|
41
|
+
> belongs together, and what should stay separate. Reuse existing IDs. Show the proposed moves before writing them.
|
|
42
|
+
|
|
43
|
+
Workstream membership is context, not evidence that everyone in a group has interchangeable skills. Keep work
|
|
44
|
+
outside the selected quarters visible in the discussion. A move is not a reason to recreate the item and lose its links.
|
|
45
|
+
|
|
46
|
+
Start with one representative area, review it, then continue. Changes that depend on one another belong in one
|
|
47
|
+
atomic proposal; unrelated changes should be independently reviewable. The current protocol limits a change to
|
|
48
|
+
25 operations, a batch to 100 changes, and one Apply action to 25 changes. Do not hide a partial reorganization
|
|
49
|
+
behind a claim that the whole roadmap was updated.
|
|
50
|
+
|
|
51
|
+
## 3. Ask what actually constrains delivery
|
|
52
|
+
|
|
53
|
+
For a 1.96.0+ planning export, ask:
|
|
54
|
+
|
|
55
|
+
> Use the supplied capacity calculations and issue facts. Show which people or periods are constrained,
|
|
56
|
+
> where load or capacity is unknown, and which dependencies or decisions could stop the work. Separate
|
|
57
|
+
> calculated facts from assumptions. Give me the next three decisions, with the evidence behind them.
|
|
58
|
+
|
|
59
|
+
The export's capacity rows compare known scheduled Jira points with configured availability. They do not
|
|
60
|
+
include all remaining effort, plan-only work, support reserves, meetings, or unestimated demand. Do not convert
|
|
61
|
+
initiative weeks or task duration into per-person effort without an explicit assumption. Unknown is not zero.
|
|
62
|
+
Do not add overlapping sprint capacities as if they were separate time, or compare different teams' points
|
|
63
|
+
without a shared estimation basis.
|
|
64
|
+
|
|
65
|
+
A useful answer might say:
|
|
66
|
+
|
|
67
|
+
> This person has work scheduled against zero configured allocation. These issues are unestimated. The
|
|
68
|
+
> available sprints do not cover the roadmap's target year. We need those gaps resolved before calling the plan feasible.
|
|
69
|
+
|
|
70
|
+
That is an illustrative answer, not a customer result or a measured promise about your team. The
|
|
71
|
+
[context reference](assistant-workflow.md#planning-data-for-your-external-assistant) explains the calculations.
|
|
72
|
+
|
|
73
|
+
## 4. Compare choices before changing the plan
|
|
74
|
+
|
|
75
|
+
> Compare protecting the launch date, protecting the team's workload, and reducing scope. For each choice,
|
|
76
|
+
> list what would move or be deferred, the assumptions, and the evidence still missing. Do not apply anything.
|
|
77
|
+
|
|
78
|
+
Keep hypothetical scenarios in the conversation or a separate working document. Sightline does not currently
|
|
79
|
+
provide an automatic scenario simulator or a saved scenario workspace. Recalculate when inputs change; a
|
|
80
|
+
persuasive explanation is not validation of the numbers.
|
|
81
|
+
|
|
82
|
+
Choose one option, then ask for the supported changes as a proposal batch. Starts-after links, people, workstreams,
|
|
83
|
+
milestones, gates, risks and decisions are actions the batch can carry; capacity rates and sprint settings still need
|
|
84
|
+
manual UI updates.
|
|
85
|
+
|
|
86
|
+
## 5. Close the loop
|
|
87
|
+
|
|
88
|
+
Review the before/after values, apply the selected changes, follow the visible save state, and let the assistant
|
|
89
|
+
read fresh context and matching results. Ask what remains unresolved. Receipts describe this browser's review;
|
|
90
|
+
they are not a shared audit log or proof of cloud delivery.
|
|
91
|
+
|
|
92
|
+
For a recurring meeting rhythm, use [team planning](team-planning.md). For a quick first win, use the
|
|
93
|
+
[prepared Northstar session](getting-started.md).
|
package/docs/onedrive.md
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# Using OneDrive
|
|
2
|
+
|
|
3
|
+
Sightline opens the plan file on your computer. OneDrive carries that file between computers. A successful Sightline save confirms a local save; it does not confirm that teammates have received it.
|
|
4
|
+
|
|
5
|
+
## Set up the shared plan
|
|
6
|
+
|
|
7
|
+
1. Put the shared JSON or YAML plan in a team folder that everyone using it is allowed to read and edit.
|
|
8
|
+
2. On each computer, make the plan and any connected Jira files available offline. In File Explorer or Finder, choose **Always keep on this device**. Microsoft documents this option for offline availability in [Sync SharePoint files and folders](https://support.microsoft.com/en-us/onedrive/sync/sharepoint-training/sync-sharepoint-files-and-folders).
|
|
9
|
+
3. Wait for OneDrive to finish downloading the folder, then open Sightline in Edge or Chrome. Choose **File → Open shared plan** and select the local file. Connect the local Jira folder if your team uses it.
|
|
10
|
+
4. Leave **File → Check for teammates' saves every 15 s** on to pick up local changes; this is enabled by default unless you previously turned it off. Use **Refresh** before starting work. Check OneDrive's own status before handing the plan to a teammate.
|
|
11
|
+
5. Edit one at a time: **Start editing**, **Save**, then **Done editing**. Agree who is editing when a computer is offline or sync is paused.
|
|
12
|
+
|
|
13
|
+
OneDrive and your organization control folder access. Sightline's views, author stamps and edit lock are not access controls.
|
|
14
|
+
|
|
15
|
+
## Know which version you are seeing
|
|
16
|
+
|
|
17
|
+
The page shows its last confirmed local read or save. Automatic checks can notice a teammate's save only after OneDrive delivers it to your computer. Refreshing Sightline does not force a cloud download. Use OneDrive's status to check upload/download progress.
|
|
18
|
+
|
|
19
|
+
The edit lock is stored in the same shared file, so it also travels through OneDrive. Two offline computers can each believe editing is available. Sightline checks local content before saving, keeps backups for detected clashes, and preserves unsaved drafts, but it cannot guarantee that an unseen cloud update will never cross a save. Keep both versions if OneDrive produces a conflict copy.
|
|
20
|
+
|
|
21
|
+
If another person starts editing while you have unsaved changes, Sightline keeps your browser copy, undo history and recovery draft. Review the conflict choices before replacing either version. After a file-read failure, **Try again** reconnects from your current browser contents, including edits made since the failure. An unchanged file preserves your edits; a changed file is merged or presented for conflict review. A newer unsupported file format keeps your edits available for download and requires updating Sightline before saving.
|
|
22
|
+
|
|
23
|
+
## Keep assistant folders personal
|
|
24
|
+
|
|
25
|
+
Keep the shared plan where the team can access it. Connect each person's assistant to a separate private folder for each device and plan, with one active Sightline tab writing to that folder. A local folder is simplest. If you sync the assistant folder, use distinct device folders rather than having two devices write the same outputs.
|
|
26
|
+
|
|
27
|
+
Sightline writes context and results; your assistant writes proposed changes. Names, people and work descriptions in these files are team information. Give the folder only the access it needs. Browser permission to open a folder does not make it private.
|
|
28
|
+
|
|
29
|
+
Context and results are separate files. Before combining them, compare the plan revision and Jira sync timestamp. Results reflect the reviewing browser's Apply, Skip and edited operations, not a shared audit log. Unchanged navigation and polls do not repeatedly rewrite outputs. See [Work with your assistant](assistant-workflow.md) for the connection steps.
|
|
30
|
+
|
|
31
|
+
## Review a conflict copy
|
|
32
|
+
|
|
33
|
+
Keep the live plan and conflict copy under their existing names. Choose **File → Review another copy…** and select the copy. The **Review another plan copy** dialog compares it with the current shared file without changing either file. Read the warning about work found in the current plan but missing from the copy. A later timestamp does not establish that the copy is the right version.
|
|
34
|
+
|
|
35
|
+
Choose **Download both copies** to keep separate backups, or **Decide later** to leave the live plan alone. If you deliberately want the entire copy as your starting point, choose **Use this copy to edit**. Confirm the warning: a later Save can replace current contents and remove newer work. Sightline downloads both originals, marks the shared plan as being edited, and prepares the copy as unsaved edits. It does not automatically save the copy's contents or select individual fields to recover.
|
|
36
|
+
|
|
37
|
+
Inspect the draft, restore any newer work you intend to keep, then use normal **Save** and **Done editing**. Previewing never deletes work. Copy contents reach the shared plan only after your explicit choice and Save. Finish or put aside existing unsaved edits before starting a review; a different plan, a newer unsupported format, different plan dates or sprint settings, another person's active edit lock, or a shared file that changed during review must be addressed first. Keep those copies for a separate comparison.
|
|
38
|
+
|
|
39
|
+
## When an update doesn't stay saved
|
|
40
|
+
|
|
41
|
+
After a quick update, Sightline reads the file again. If a save at the same moment overwrote the update, it is put back, once. If the file changes back again, something keeps restoring an older version: another open copy of the plan (another tab, browser or computer) or a sync tool such as OneDrive. Sightline stops, downloads your version as a backup and says so in a red notice, naming whoever saved the file last when the file says. Close the other copies, let OneDrive finish syncing, open the plan in one tab and make the change again.
|
|
42
|
+
|
|
43
|
+
## Two-device check before a team rollout
|
|
44
|
+
|
|
45
|
+
**Not executed:** no real OneDrive two-device environment was available for this change. The matrix below is a manual check to perform on your organization's actual computers and sync configuration. Browser file-operation tests use simulated file handles; they do not prove cloud synchronization or conflict-copy behavior.
|
|
46
|
+
|
|
47
|
+
Create an isolated test folder on OneDrive. Copy `test/fixtures/sample-plan.json` into it as `sync-check.json`; it contains invented people and work. Use the same Sightline build on both computers. Download and pin the test file on both, confirm OneDrive is up to date, and preserve an initial backup outside the shared folder. Use private, distinct assistant folders. Do not connect real Jira or use a real team plan for this check.
|
|
48
|
+
|
|
49
|
+
Record the operating systems, browser and OneDrive versions, Sightline version, device labels A/B, and each computer's local plan revision. For each case, note what OneDrive reports, what Sightline reports, the file values on both devices, and whether a backup or conflict copy exists. A changed timestamp alone is not proof that both edits survived.
|
|
50
|
+
|
|
51
|
+
| Case | Try | Check and expected limitation | Result |
|
|
52
|
+
|---|---|---|---|
|
|
53
|
+
| Normal handoff | A changes an invented task, saves and finishes editing. After OneDrive finishes, B refreshes. | B sees A's value and revision. Record sync delay; Sightline cannot make the cloud delivery immediate. | Not run |
|
|
54
|
+
| Offline then reconnect | Take A offline. Edit and save an invented field. Confirm B still sees its earlier local copy. Reconnect A, wait for OneDrive, then refresh B. | A can save locally. B must not be assumed current while A is offline. Both eventually show the intended value, or a clash/copy remains available for review. | Not run |
|
|
55
|
+
| Simultaneous different fields | With both devices at the same initial revision, pause sync or take both offline. A and B change different fields, save, then reconnect both. | Inspect the actual resulting files. Local checks cannot serialize unseen remote writes. Do not count this as passing if one edit disappears without a recoverable version. | Not run |
|
|
56
|
+
| Simultaneous same field | Repeat with different values for the same invented field. Preserve both values before reconnecting. | A disagreement must remain reviewable through the final file, backups or a conflict copy. Do not expect Sightline to infer which value is correct. | Not run |
|
|
57
|
+
| File replacement | With B displaying a clean test plan, replace A's local test file with a valid copy under the same filename; let it sync. Refresh B. | B must show the replacement or a clear read/reconnect problem. Replacing a file may affect remembered browser handles; reconnect if needed. Never repeat this on a real plan. | Not run |
|
|
58
|
+
| Browser reconnect | Close and reopen Sightline on B, then reconnect the plan and private assistant folder if prompted. | Permission prompts are browser-local. Confirm the correct plan/device folder and that another device's outputs are not overwritten. | Not run |
|
|
59
|
+
| Unsaved work during interruption | On a synthetic plan, keep an unsaved field edit on B. Have A acquire the lock, then let B try Start editing. Separately interrupt B's file access, type another edit, and use Try again after restoring access. | B's latest contents and undo history remain available. A changed file is merged or requires conflict review; refusing a lock never discards B's draft. Confirm actual browser/file-provider behavior. | Not run |
|
|
60
|
+
| Conflict-copy review | If a conflict copy is produced, preserve it and the live file. Compare their invented changes without replacing either. If none is produced, create an explicitly labeled synthetic divergent copy for the review exercise. | A synthetic copy tests review, not OneDrive's conflict handling. Preview changes neither file, missing current-only work is reported, and both originals can be downloaded. Replacing contents requires explicit copy choice and normal Save. | Not run |
|
|
61
|
+
|
|
62
|
+
After each case, restore the synthetic baseline only when all test copies and outcomes have been recorded. Pause test editing until both devices are at the same baseline. Keep results separate from real team work.
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# Workspace performance checks
|
|
2
|
+
|
|
3
|
+
The standalone benchmark compares an archived build with the current build using jsdom and synthetic data derived
|
|
4
|
+
from `test/fixtures/sample-plan.json`. It installs no additional dependencies and is informational, outside `test/run.sh`.
|
|
5
|
+
|
|
6
|
+
Build the current page, then run:
|
|
7
|
+
|
|
8
|
+
```bash
|
|
9
|
+
./build.sh
|
|
10
|
+
node test/performance-workspaces.js /path/to/original/sightline.html dist/sightline.html 5 > /tmp/workspace-performance.json
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
The final argument is the number of samples per workspace (default 5, minimum 3). The script warms each workspace
|
|
14
|
+
twice, measures synchronous navigation/render work, and reports median/minimum/maximum milliseconds, DOM node counts,
|
|
15
|
+
and mean time in selected rendering functions. Function timings include nested work; do not add them together.
|
|
16
|
+
|
|
17
|
+
The scenario has 120 epic initiatives, 600 Jira stories, 120 plan tasks and 60 deliverables, using the fixture's people
|
|
18
|
+
and workstreams. Dates are fixed around September 30, 2026. It visits Timeline, Today, Sprint, People, Roadmap and
|
|
19
|
+
Status update in order, retaining hidden workspace DOM as normal navigation does. The assistant is disconnected.
|
|
20
|
+
|
|
21
|
+
During the workspace navigation change, profiling identified document-wide navigation selectors as unnecessary work.
|
|
22
|
+
Caching the fixed navigation buttons and elements reduced `renderMainNav` from roughly 25–95 ms to about 0.1 ms
|
|
23
|
+
per render across this scenario. Navigation regression checks cover the cached elements' behavior.
|
|
24
|
+
|
|
25
|
+
These are jsdom JavaScript/DOM measurements, not browser layout, paint or interaction latency. The recorded comparison
|
|
26
|
+
ran alongside other checks, so whole-page timings are noisy and are not release thresholds or a promised speedup.
|
|
27
|
+
For repeatable comparisons, stop other heavy work and repeat with build order reversed. Use real-browser profiling
|
|
28
|
+
before making claims about perceived responsiveness.
|
|
29
|
+
|
|
30
|
+
Hidden Timeline and setup-table rendering is deferred until the relevant workspace is visible. Timeline visibility
|
|
31
|
+
is restored before measuring its geometry; returning to it draws current data. Shared model refresh, Jira facts,
|
|
32
|
+
freshness and assistant context remain independent of chart visibility. `harness106` checks hidden-render call counts,
|
|
33
|
+
return-to-Timeline behavior, filters, selection/deep links, Days/Weeks and live Jira facts.
|
|
34
|
+
|
|
35
|
+
Text inputs update the model, history and dirty state synchronously, then combine derived rendering while typing.
|
|
36
|
+
The deferred update is cancelled when a full render supersedes it. Regression checks cover immediate model changes,
|
|
37
|
+
undo, cursor retention and the deferred screen update without depending on a machine-specific time threshold.
|
|
38
|
+
|
|
39
|
+
The connected-assistant regression harness (`harness100`) counts payload builds and file writes. View changes and unchanged foreground checks must add neither; real saved-source, Jira, proposal and receipt changes must still refresh outputs. A Chrome Incognito smoke test also verified that ordinary navigation left context/results modification times unchanged after a proposal was reviewed and applied.
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
# A planning session when everything seems to be a priority
|
|
2
|
+
|
|
3
|
+
Imagine you coordinate Integrations, Search, and Platform. A launch is approaching, new requests keep arriving,
|
|
4
|
+
and the same specialist is needed in several places. The Jira backlog tells you about individual issues. Your
|
|
5
|
+
planning problem also includes commitments, rough ideas, dependencies, and decisions spread across conversations.
|
|
6
|
+
|
|
7
|
+
This is an **illustrative planning exercise**, not a captured model response, customer result, or the plan shown
|
|
8
|
+
in the Northstar screenshots. Its sample numbers and names are invented. Use it to understand the workflow;
|
|
9
|
+
[open the smaller prepared example](getting-started.md) to try the actual review controls.
|
|
10
|
+
|
|
11
|
+
## Start with what people actually said
|
|
12
|
+
|
|
13
|
+
Keep the original notes and give each source a reference. They do not need to be a clean backlog.
|
|
14
|
+
|
|
15
|
+
| Source | Rough input |
|
|
16
|
+
| --- | --- |
|
|
17
|
+
| N01 | We agreed that customer-context lookup belongs in the launch. |
|
|
18
|
+
| N02 | Sales also wants a customer history panel. Is that the same thing? |
|
|
19
|
+
| N03 | Search relevance has to improve, but nobody agreed what “better” means. |
|
|
20
|
+
| N04 | Search needs Platform's index migration before its new retrieval work can finish. |
|
|
21
|
+
| N05 | The migration has no confirmed completion date. |
|
|
22
|
+
| N06 | Offline search came up as an idea. Nobody committed to building it. |
|
|
23
|
+
| N07 | Search and Integrations both asked for the same Platform specialist in the launch period. |
|
|
24
|
+
| N08 | Platform's next sprint has 6 points of configured capacity and 8 points already scheduled, on its own estimation scale. |
|
|
25
|
+
| N09 | Five requested Platform issues have no estimates. Support demand is not represented in those capacity numbers. |
|
|
26
|
+
| N10 | Leadership wants a launch update explaining what is committed, what is uncertain, and what needs a decision. |
|
|
27
|
+
|
|
28
|
+
Connect your plan's [private assistant folder](assistant-workflow.md), then give your external tool these notes
|
|
29
|
+
and the relevant planning evidence. Ask it to read the current context before interpreting them. On public
|
|
30
|
+
1.94.0, the automatic context is narrower than the 1.96.0 planning export; additional evidence must be supplied
|
|
31
|
+
deliberately. [Check availability](availability.md).
|
|
32
|
+
|
|
33
|
+
> Reconcile every source against the current plan. Reuse existing IDs where there is a match. Separate agreed
|
|
34
|
+
> scope, possible duplicates, ideas, constraints, and decisions. Do not invent owners, estimates, or dates.
|
|
35
|
+
> First give me a decision brief, not a rewritten plan.
|
|
36
|
+
|
|
37
|
+
## Turn the input into a few decisions without losing the details
|
|
38
|
+
|
|
39
|
+
A useful reconciliation could look like this. These are suggested interpretations of the invented notes,
|
|
40
|
+
not automatic actions:
|
|
41
|
+
|
|
42
|
+
| Source | Interpretation | What happens next |
|
|
43
|
+
| --- | --- | --- |
|
|
44
|
+
| N01 | Agreed launch scope | Match the customer-context outcome in the plan; retain its ID. |
|
|
45
|
+
| N02 | Possible overlap with N01 | Ask whether the history panel is part of lookup or additional scope; keep both sources until resolved. |
|
|
46
|
+
| N03 | Outcome needs definition | Decide what improvement will count before treating it as a clear commitment. |
|
|
47
|
+
| N04 | Dependency | Verify the migration link in the plan and which work it blocks. |
|
|
48
|
+
| N05 | Missing delivery input | Ask for the migration forecast and its assumptions; do not make up a date. |
|
|
49
|
+
| N06 | Uncommitted idea | Retain offline search without assigning an owner or target. |
|
|
50
|
+
| N07 | Shared resource constraint | Ask the team to resolve the competing demand and confirm actual allocation. |
|
|
51
|
+
| N08 | Known scheduled load exceeds configured capacity | Review the 8 scheduled points against 6 configured points for that sprint. |
|
|
52
|
+
| N09 | Additional demand is unknown | Obtain estimates and account for support before calling the load complete. |
|
|
53
|
+
| N10 | Communication request | Draft an update after separating confirmed scope, uncertainty, and decisions. |
|
|
54
|
+
|
|
55
|
+
Every source remains accounted for. Matching a request to an outcome does not mean its scope was accepted;
|
|
56
|
+
a similar title does not prove a duplicate.
|
|
57
|
+
|
|
58
|
+
## Make the capacity discussion specific
|
|
59
|
+
|
|
60
|
+
Within Platform's one sprint and estimation scale, the supplied numbers show **2 more scheduled points than
|
|
61
|
+
configured capacity**. They do not tell you the full shortfall: five issues are unestimated and support is absent.
|
|
62
|
+
They also do not establish that the launch is feasible or predict a finish date.
|
|
63
|
+
|
|
64
|
+
Before relying on that comparison, confirm that the input is current, the sprint periods match, the specialist's
|
|
65
|
+
allocation is correct, and the scheduled issues are in scope. Do not combine overlapping sprint capacities or
|
|
66
|
+
add points from different teams as if they were interchangeable.
|
|
67
|
+
|
|
68
|
+
The next decisions are concrete:
|
|
69
|
+
|
|
70
|
+
1. **Resolve launch scope.** Is N02 part of N01? What would count as success for N03? Until answered, the launch demand is unclear.
|
|
71
|
+
2. **Resolve the shared bottleneck.** Which work gets the specialist's time, and what does that mean for N04's migration dependency?
|
|
72
|
+
3. **Choose a tradeoff using complete enough evidence.** Clarify N09, then discuss reducing scope, sequencing work later, or changing the target. Record what remains uncertain.
|
|
73
|
+
|
|
74
|
+
Ask the assistant to explain alternatives in the conversation. Sightline does not provide an automatic scenario
|
|
75
|
+
simulator. A confident answer without the missing inputs is still an assumption.
|
|
76
|
+
|
|
77
|
+
## Turn the chosen direction into reviewed changes
|
|
78
|
+
|
|
79
|
+
Once the team decides, ask for the supported edits as proposals. For example, retain N06 as an unscheduled idea
|
|
80
|
+
and refine an existing outcome's wording after its scope is agreed. Review the actual before/after values in
|
|
81
|
+
Sightline. Edit, skip, or apply each proposal, then follow the visible save state.
|
|
82
|
+
|
|
83
|
+
Dependency, allocation, risk, or decision changes may need normal UI edits. The assistant's operation guide defines
|
|
84
|
+
what it can propose; a read-only export does not grant it additional editing powers. Writing proposals never
|
|
85
|
+
authorizes it to overwrite the shared plan or Jira files.
|
|
86
|
+
|
|
87
|
+
Finally, have the assistant reread fresh context and matching results and draft the update requested in N10:
|
|
88
|
+
confirmed scope, changes actually applied, unresolved questions, and the next decision. Check it before sharing.
|
|
89
|
+
The next meeting starts from that record rather than rebuilding the conversation.
|
|
90
|
+
|
|
91
|
+
[Work through your own large roadmap](large-roadmaps.md) · [Connect your assistant](assistant-workflow.md) ·
|
|
92
|
+
[Try proposal review with Northstar](getting-started.md#review-two-changes) · [Back to Sightline](../README.md)
|