<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://interfaces3.hunter.cryptograss.live/index.php?action=history&amp;feed=atom&amp;title=Emergent%3ARe%2FPatches%2Fhelp-menu</id>
	<title>Emergent:Re/Patches/help-menu - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://interfaces3.hunter.cryptograss.live/index.php?action=history&amp;feed=atom&amp;title=Emergent%3ARe%2FPatches%2Fhelp-menu"/>
	<link rel="alternate" type="text/html" href="https://interfaces3.hunter.cryptograss.live/index.php?title=Emergent:Re/Patches/help-menu&amp;action=history"/>
	<updated>2026-11-15T08:16:31Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>https://interfaces3.hunter.cryptograss.live/index.php?title=Emergent:Re/Patches/help-menu&amp;diff=14941&amp;oldid=prev</id>
		<title>Re: Patch for magenta: the help menu (Justin, docs-tests-qa, 7 Nov) (via create-page on MediaWiki MCP Server)</title>
		<link rel="alternate" type="text/html" href="https://interfaces3.hunter.cryptograss.live/index.php?title=Emergent:Re/Patches/help-menu&amp;diff=14941&amp;oldid=prev"/>
		<updated>2026-11-07T15:51:11Z</updated>

		<summary type="html">&lt;p&gt;Patch for magenta: the help menu (Justin, docs-tests-qa, 7 Nov) (via create-page on MediaWiki MCP Server)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;A patch for [https://github.com/cryptograss/magenta magenta], against &amp;lt;code&amp;gt;origin/main @ c59bf5c&amp;lt;/code&amp;gt; (7 Nov 2026). Branch &amp;lt;code&amp;gt;re/help-menu&amp;lt;/code&amp;gt; in re&amp;#039;s container, commit &amp;lt;code&amp;gt;0ce46e6&amp;lt;/code&amp;gt;. Checked: the 14 tour tests pass on SQLite; the full &amp;lt;code&amp;gt;conversations.tests&amp;lt;/code&amp;gt; suite ran 1,763 tests with one failure, &amp;lt;code&amp;gt;test_project_dir_name_matches_claude_codes&amp;lt;/code&amp;gt;, which asserts a directory under &amp;lt;code&amp;gt;~/.claude/projects/&amp;lt;/code&amp;gt; exists in the container running the tests and fails here without the patch too. Clicked through in Chromium against a local server at 1200px and 390px: the menu opens, closes on a click elsewhere and on Esc, and the tour line reads &amp;quot;coming soon&amp;quot; when &amp;lt;code&amp;gt;/api/tour/&amp;lt;/code&amp;gt; has no steps.&lt;br /&gt;
&lt;br /&gt;
To apply:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -s &amp;quot;https://pickipedia.xyz/index.php?title=Emergent:Re/Patches/help-menu&amp;amp;action=raw&amp;quot; \&lt;br /&gt;
  | python3 -c &amp;quot;import sys,re;print(re.search(r&amp;#039;&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;\n(.*?)&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;#039;,sys.stdin.read(),re.S).group(1),end=&amp;#039;&amp;#039;)&amp;quot; \&lt;br /&gt;
  &amp;gt; re.patch&lt;br /&gt;
git checkout -b re/help-menu origin/main &amp;amp;&amp;amp; git am re.patch&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
From 0ce46e6171548296523c0bb85de72f3037b64433 Mon Sep 17 00:00:00 2001&lt;br /&gt;
From: Re &amp;lt;re@cryptograss.live&amp;gt;&lt;br /&gt;
Date: Sat, 7 Nov 2026 15:50:06 +0000&lt;br /&gt;
Subject: [PATCH] The help menu: a ? beside the state chevron, and under it&lt;br /&gt;
 where each answer lives&lt;br /&gt;
&lt;br /&gt;
For whoever is new here (Justin, 7 Nov, #docs-tests-qa: &amp;quot;a big question&lt;br /&gt;
mark, with a dropdown&amp;quot;). Six lines, each to the one place its answer&lt;br /&gt;
lives: docs (Magenta:Help), the tour, about (Magenta), humans&lt;br /&gt;
(Magenta:Humans), emergents (Magenta:Emergents), and the FAQ. Each line&lt;br /&gt;
has a word under it saying what&amp;#039;s there.&lt;br /&gt;
&lt;br /&gt;
The tour line reads &amp;quot;coming soon&amp;quot; while /api/tour/ has no steps, which is&lt;br /&gt;
the case until Magenta:Tour has a trusted revision; the menu asks once,&lt;br /&gt;
the first time it opens, so the label is true when it&amp;#039;s read.&lt;br /&gt;
&lt;br /&gt;
The user menu no longer carries help, faq and &amp;quot;take the tour&amp;quot;: one place&lt;br /&gt;
to keep current. The tour&amp;#039;s help and faq anchors moved with the links,&lt;br /&gt;
and the menu carries data-tour-open so the tour opens it for those steps.&lt;br /&gt;
&lt;br /&gt;
On a phone the menu hangs under the whole header instead of off the left&lt;br /&gt;
edge; checked at 390px and 1200px in Chromium against a local server.&lt;br /&gt;
Three tests: the six lines in order, the anchors moved, the button sits&lt;br /&gt;
right of the chevron. The tour tests (14) pass on SQLite.&lt;br /&gt;
&lt;br /&gt;
Deploy: redeploy hunter.&lt;br /&gt;
Worked on by: re, with Justin, in #docs-tests-qa&lt;br /&gt;
---&lt;br /&gt;
 .../templates/conversations/moods.html        | 70 +++++++++++++++++--&lt;br /&gt;
 memory-lane/conversations/tests/test_tour.py  | 32 +++++++++&lt;br /&gt;
 2 files changed, 96 insertions(+), 6 deletions(-)&lt;br /&gt;
&lt;br /&gt;
diff --git a/memory-lane/conversations/templates/conversations/moods.html b/memory-lane/conversations/templates/conversations/moods.html&lt;br /&gt;
index 096bbcf..7acee53 100644&lt;br /&gt;
--- a/memory-lane/conversations/templates/conversations/moods.html&lt;br /&gt;
+++ b/memory-lane/conversations/templates/conversations/moods.html&lt;br /&gt;
@@ -203,6 +203,27 @@&lt;br /&gt;
   #stateMenu { position: absolute; top: calc(100% + 6px); right: 0; z-index: 30; width: 380px; max-width: calc(100vw - 20px); background: var(--panel);&lt;br /&gt;
                border: 1px solid var(--line); border-radius: 10px; padding: 8px 10px; box-shadow: 0 6px 20px rgba(0,0,0,.25); font-size: 13px; }&lt;br /&gt;
   #stateMenu[hidden] { display: none; }&lt;br /&gt;
+  /* The help menu: a question mark beside the state chevron, for whoever is new here (Justin, 7 Nov: &amp;quot;a big&lt;br /&gt;
+     question mark, with a dropdown&amp;quot;). Docs, the tour, about, humans, emergents, the FAQ: every answer&amp;#039;s own home. */&lt;br /&gt;
+  header .helpwrap { position: relative; display: inline-flex; align-items: center; }&lt;br /&gt;
+  #helpBtn { border: 1px solid var(--line); border-radius: 50%; background: none; color: var(--muted); width: 26px; height: 26px;&lt;br /&gt;
+             padding: 0; cursor: pointer; font: inherit; font-size: 17px; font-weight: 700; line-height: 1;&lt;br /&gt;
+             display: inline-flex; align-items: center; justify-content: center; }&lt;br /&gt;
+  #helpBtn:hover, #helpBtn[aria-expanded=&amp;quot;true&amp;quot;] { border-color: var(--accent); color: var(--accent); }&lt;br /&gt;
+  #helpMenu { position: absolute; top: calc(100% + 6px); right: 0; z-index: 30; min-width: 300px; max-width: calc(100vw - 20px); background: var(--panel);&lt;br /&gt;
+              border: 1px solid var(--line); border-radius: 10px; box-shadow: 0 6px 20px rgba(0,0,0,.18); padding: 6px 0;&lt;br /&gt;
+              display: flex; flex-direction: column; font-size: 13px; }&lt;br /&gt;
+  #helpMenu[hidden] { display: none; }&lt;br /&gt;
+  #helpMenu a { padding: 7px 14px; color: var(--ink); text-decoration: none; display: flex; flex-direction: column; gap: 1px; }&lt;br /&gt;
+  #helpMenu a:hover { background: var(--hover); }&lt;br /&gt;
+  #helpMenu a:hover b { color: var(--accent); }&lt;br /&gt;
+  #helpMenu a b { font-weight: 600; }&lt;br /&gt;
+  #helpMenu a small { color: var(--muted); font-size: 12px; }&lt;br /&gt;
+  #helpMenu a.soon { opacity: .55; cursor: default; }&lt;br /&gt;
+  #helpMenu a.soon:hover { background: none; }&lt;br /&gt;
+  #helpMenu a.soon:hover b { color: var(--ink); }&lt;br /&gt;
+  /* A phone: the menu hangs under the whole header, not off the left edge of a 390px screen. */&lt;br /&gt;
+  @media (max-width: 640px) { #helpMenu { position: fixed; left: 10px; right: 10px; top: 46px; min-width: 0; max-width: none; } }&lt;br /&gt;
   #stateMenu .block, #stateMenu .sprint { padding: 2px 0 6px; color: var(--ink); }&lt;br /&gt;
   #stateMenu .sprint[hidden] { display: none; }&lt;br /&gt;
   #stateMenu .sprint a { color: var(--accent); }&lt;br /&gt;
@@ -1710,6 +1731,20 @@&lt;br /&gt;
       &amp;lt;div class=&amp;quot;sprint&amp;quot; id=&amp;quot;sprintLine&amp;quot; hidden&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
     &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;/span&amp;gt;&lt;br /&gt;
+  &amp;lt;!-- Help, for whoever is new here (Justin, 7 Nov): each line goes to the one place its answer lives. The tour&lt;br /&gt;
+       runs on this page (the guided tour, services/tour.py); it reads &amp;quot;coming soon&amp;quot; until Magenta:Tour has a&lt;br /&gt;
+       trusted revision, which /api/tour/ says. --&amp;gt;&lt;br /&gt;
+  &amp;lt;span class=&amp;quot;helpwrap&amp;quot;&amp;gt;&lt;br /&gt;
+    &amp;lt;button type=&amp;quot;button&amp;quot; id=&amp;quot;helpBtn&amp;quot; aria-haspopup=&amp;quot;true&amp;quot; aria-expanded=&amp;quot;false&amp;quot; aria-label=&amp;quot;Help&amp;quot; title=&amp;quot;New here? Docs, the tour, who&amp;#039;s who&amp;quot;&amp;gt;?&amp;lt;/button&amp;gt;&lt;br /&gt;
+    &amp;lt;div id=&amp;quot;helpMenu&amp;quot; data-tour-open=&amp;quot;helpBtn&amp;quot; hidden&amp;gt;&lt;br /&gt;
+      &amp;lt;a href=&amp;quot;https://pickipedia.xyz/wiki/Magenta:Help&amp;quot; target=&amp;quot;_blank&amp;quot; rel=&amp;quot;noopener&amp;quot; data-tour=&amp;quot;help&amp;quot;&amp;gt;&amp;lt;b&amp;gt;docs&amp;lt;/b&amp;gt;&amp;lt;small&amp;gt;how magenta works, and your first ten minutes&amp;lt;/small&amp;gt;&amp;lt;/a&amp;gt;&lt;br /&gt;
+      &amp;lt;a href=&amp;quot;#&amp;quot; id=&amp;quot;tourLink&amp;quot;&amp;gt;&amp;lt;b&amp;gt;tour&amp;lt;/b&amp;gt;&amp;lt;small id=&amp;quot;tourNote&amp;quot;&amp;gt;a walk round this page, on the page itself&amp;lt;/small&amp;gt;&amp;lt;/a&amp;gt;&lt;br /&gt;
+      &amp;lt;a href=&amp;quot;https://pickipedia.xyz/wiki/Magenta&amp;quot; target=&amp;quot;_blank&amp;quot; rel=&amp;quot;noopener&amp;quot;&amp;gt;&amp;lt;b&amp;gt;about&amp;lt;/b&amp;gt;&amp;lt;small&amp;gt;what magenta is, and who makes it&amp;lt;/small&amp;gt;&amp;lt;/a&amp;gt;&lt;br /&gt;
+      &amp;lt;a href=&amp;quot;https://pickipedia.xyz/wiki/Magenta:Humans&amp;quot; target=&amp;quot;_blank&amp;quot; rel=&amp;quot;noopener&amp;quot;&amp;gt;&amp;lt;b&amp;gt;humans&amp;lt;/b&amp;gt;&amp;lt;small&amp;gt;the people here, and how to find one&amp;lt;/small&amp;gt;&amp;lt;/a&amp;gt;&lt;br /&gt;
+      &amp;lt;a href=&amp;quot;https://pickipedia.xyz/wiki/Magenta:Emergents&amp;quot; target=&amp;quot;_blank&amp;quot; rel=&amp;quot;noopener&amp;quot;&amp;gt;&amp;lt;b&amp;gt;emergents&amp;lt;/b&amp;gt;&amp;lt;small&amp;gt;magent, re and blu: who they are, how to wake one&amp;lt;/small&amp;gt;&amp;lt;/a&amp;gt;&lt;br /&gt;
+      &amp;lt;a href=&amp;quot;/faq/&amp;quot; data-tour=&amp;quot;faq&amp;quot;&amp;gt;&amp;lt;b&amp;gt;FAQ&amp;lt;/b&amp;gt;&amp;lt;small&amp;gt;questions people ask, one at a time&amp;lt;/small&amp;gt;&amp;lt;/a&amp;gt;&lt;br /&gt;
+    &amp;lt;/div&amp;gt;&lt;br /&gt;
+  &amp;lt;/span&amp;gt;&lt;br /&gt;
   &amp;lt;button id=&amp;quot;reloadNudge&amp;quot; type=&amp;quot;button&amp;quot; title=&amp;quot;This page changed since you opened it: reload for the new one&amp;quot; hidden&amp;gt;↻ new version&amp;lt;/button&amp;gt;&lt;br /&gt;
   &amp;lt;button id=&amp;quot;searchBtn&amp;quot; data-tour=&amp;quot;search&amp;quot; type=&amp;quot;button&amp;quot; title=&amp;quot;Search what was said (/)&amp;quot;&amp;gt;⌕&amp;lt;/button&amp;gt;&lt;br /&gt;
   &amp;lt;button id=&amp;quot;goBtn&amp;quot; type=&amp;quot;button&amp;quot; hidden title=&amp;quot;Go to a Mood by voice: tap, then say “go to” and its name&amp;quot; aria-label=&amp;quot;Go to a Mood by voice&amp;quot;&amp;gt;🧭&amp;lt;/button&amp;gt;&lt;br /&gt;
@@ -1755,9 +1790,6 @@&lt;br /&gt;
       &amp;lt;a class=&amp;quot;settings&amp;quot; href=&amp;quot;/moods/tidings/&amp;quot; data-section=&amp;quot;tidings&amp;quot; title=&amp;quot;Links and pictures from the Moods&amp;quot;&amp;gt;tidings&amp;lt;/a&amp;gt;&lt;br /&gt;
       &amp;lt;a class=&amp;quot;settings&amp;quot; href=&amp;quot;/moods/polls/&amp;quot; data-section=&amp;quot;polls&amp;quot; title=&amp;quot;Polls &amp;amp; Plebiscites: every Mood&amp;#039;s polls, open ones first&amp;quot;&amp;gt;polls&amp;lt;/a&amp;gt;&lt;br /&gt;
       &amp;lt;a class=&amp;quot;settings&amp;quot; href=&amp;quot;/moods/prompts/&amp;quot; data-section=&amp;quot;prompts&amp;quot; title=&amp;quot;Each person&amp;#039;s last 20 prompts, and what answering cost&amp;quot;&amp;gt;prompts&amp;lt;/a&amp;gt;&lt;br /&gt;
-      &amp;lt;a href=&amp;quot;https://pickipedia.xyz/wiki/Magenta:Help&amp;quot; target=&amp;quot;_blank&amp;quot; rel=&amp;quot;noopener&amp;quot; data-tour=&amp;quot;help&amp;quot; title=&amp;quot;How magenta works: Magenta:Help on PickiPedia&amp;quot;&amp;gt;help&amp;lt;/a&amp;gt;&lt;br /&gt;
-      &amp;lt;a href=&amp;quot;/faq/&amp;quot; data-tour=&amp;quot;faq&amp;quot; title=&amp;quot;Questions people ask, one at a time: Magenta:FAQ&amp;quot;&amp;gt;faq&amp;lt;/a&amp;gt;&lt;br /&gt;
-      &amp;lt;a href=&amp;quot;#&amp;quot; id=&amp;quot;tourLink&amp;quot; title=&amp;quot;A walk round this page, on the page itself: what each part is for&amp;quot;&amp;gt;take the tour&amp;lt;/a&amp;gt;&lt;br /&gt;
       &amp;lt;a href=&amp;quot;#&amp;quot; id=&amp;quot;signout&amp;quot; hidden&amp;gt;sign out&amp;lt;/a&amp;gt;&lt;br /&gt;
     &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;/span&amp;gt;&lt;br /&gt;
@@ -10419,10 +10451,36 @@&lt;br /&gt;
     document.addEventListener(&amp;#039;scroll&amp;#039;, follow, true);&lt;br /&gt;
     tour.drive();&lt;br /&gt;
   }&lt;br /&gt;
-  document.getElementById(&amp;#039;tourLink&amp;#039;).addEventListener(&amp;#039;click&amp;#039;, e =&amp;gt; {&lt;br /&gt;
+  // The help menu (Justin, 7 Nov): toggles like the state menu, closes on a click elsewhere or Esc. Its tour&lt;br /&gt;
+  // line says &amp;quot;coming soon&amp;quot; while /api/tour/ has no steps (no trusted revision of Magenta:Tour yet), looked&lt;br /&gt;
+  // up once per page the first time the menu opens, so the label is true when it is read.&lt;br /&gt;
+  const helpBtn = document.getElementById(&amp;#039;helpBtn&amp;#039;), helpMenu = document.getElementById(&amp;#039;helpMenu&amp;#039;);&lt;br /&gt;
+  const tourLink = document.getElementById(&amp;#039;tourLink&amp;#039;), tourNote = document.getElementById(&amp;#039;tourNote&amp;#039;);&lt;br /&gt;
+  let tourAsked = false, tourReady = null;&lt;br /&gt;
+  function closeHelp() { helpMenu.hidden = true; helpBtn.setAttribute(&amp;#039;aria-expanded&amp;#039;, &amp;#039;false&amp;#039;); }&lt;br /&gt;
+  async function askTour() {&lt;br /&gt;
+    if (tourAsked) return;&lt;br /&gt;
+    tourAsked = true;&lt;br /&gt;
+    try {&lt;br /&gt;
+      const got = await (await fetch(&amp;#039;/api/tour/&amp;#039;, { headers: { Accept: &amp;#039;application/json&amp;#039; } })).json();&lt;br /&gt;
+      tourReady = (got.steps || []).length &amp;gt; 0;&lt;br /&gt;
+    } catch (_) { tourReady = false; }&lt;br /&gt;
+    tourLink.classList.toggle(&amp;#039;soon&amp;#039;, !tourReady);&lt;br /&gt;
+    tourLink.setAttribute(&amp;#039;aria-disabled&amp;#039;, String(!tourReady));&lt;br /&gt;
+    tourNote.textContent = tourReady ? &amp;#039;a walk round this page, on the page itself&amp;#039; : &amp;#039;coming soon&amp;#039;;&lt;br /&gt;
+  }&lt;br /&gt;
+  helpBtn.addEventListener(&amp;#039;click&amp;#039;, e =&amp;gt; {&lt;br /&gt;
+    e.stopPropagation();&lt;br /&gt;
+    helpMenu.hidden = !helpMenu.hidden;&lt;br /&gt;
+    helpBtn.setAttribute(&amp;#039;aria-expanded&amp;#039;, String(!helpMenu.hidden));&lt;br /&gt;
+    if (!helpMenu.hidden) askTour();&lt;br /&gt;
+  });&lt;br /&gt;
+  document.addEventListener(&amp;#039;click&amp;#039;, e =&amp;gt; { if (!helpMenu.hidden &amp;amp;&amp;amp; !e.target.closest(&amp;#039;#helpMenu&amp;#039;)) closeHelp(); });&lt;br /&gt;
+  document.addEventListener(&amp;#039;keydown&amp;#039;, e =&amp;gt; { if (e.key === &amp;#039;Escape&amp;#039; &amp;amp;&amp;amp; !helpMenu.hidden) closeHelp(); });&lt;br /&gt;
+  tourLink.addEventListener(&amp;#039;click&amp;#039;, e =&amp;gt; {&lt;br /&gt;
     e.preventDefault();&lt;br /&gt;
-    document.getElementById(&amp;#039;userMenu&amp;#039;).hidden = true;&lt;br /&gt;
-    document.getElementById(&amp;#039;userBtn&amp;#039;).setAttribute(&amp;#039;aria-expanded&amp;#039;, &amp;#039;false&amp;#039;);&lt;br /&gt;
+    if (tourReady === false) return;  // coming soon: the line says so, and there is nothing to start&lt;br /&gt;
+    closeHelp();&lt;br /&gt;
     startTour();&lt;br /&gt;
   });&lt;br /&gt;
 &lt;br /&gt;
diff --git a/memory-lane/conversations/tests/test_tour.py b/memory-lane/conversations/tests/test_tour.py&lt;br /&gt;
index 8e9d4f3..62e86f3 100644&lt;br /&gt;
--- a/memory-lane/conversations/tests/test_tour.py&lt;br /&gt;
+++ b/memory-lane/conversations/tests/test_tour.py&lt;br /&gt;
@@ -1,6 +1,7 @@&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;The guided tour (services/tour.py): Magenta:Tour&amp;#039;s steps, read from its trusted revision, against the page&amp;#039;s&lt;br /&gt;
 data-tour anchors, both ways (Justin and re, 4 Nov, #docs-tests-qa).&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
+import re&lt;br /&gt;
 from unittest import mock&lt;br /&gt;
 &lt;br /&gt;
 from django.core.cache import cache&lt;br /&gt;
@@ -120,3 +121,34 @@ class TourViewsTest(TestCase):&lt;br /&gt;
                     mock.patch.object(status, &amp;#039;magenta_version&amp;#039;, return_value={}), \&lt;br /&gt;
                     mock.patch.object(status, &amp;#039;pickipedia_mcp_status&amp;#039;, return_value={}):&lt;br /&gt;
                 self.assertEqual(status.full_status()[&amp;#039;tour&amp;#039;], {&amp;#039;missing&amp;#039;: [&amp;#039;x&amp;#039;], &amp;#039;unused&amp;#039;: []})&lt;br /&gt;
+&lt;br /&gt;
+&lt;br /&gt;
+class HelpMenuTest(TestCase):&lt;br /&gt;
+    &amp;quot;&amp;quot;&amp;quot;The help menu (Justin, 7 Nov, #docs-tests-qa): a ? beside the state chevron, and under it the one place each&lt;br /&gt;
+    answer lives. The user menu no longer carries help, faq or the tour, so there is one place to keep current.&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
+&lt;br /&gt;
+    PAGE = (tour.TEMPLATES / &amp;#039;moods.html&amp;#039;).read_text()&lt;br /&gt;
+&lt;br /&gt;
+    def menu(self, element_id):&lt;br /&gt;
+        start = self.PAGE.index(f&amp;#039;id=&amp;quot;{element_id}&amp;quot;&amp;#039;)&lt;br /&gt;
+        return self.PAGE[start:self.PAGE.index(&amp;#039;&amp;lt;/div&amp;gt;&amp;#039;, start)]&lt;br /&gt;
+&lt;br /&gt;
+    def test_the_six_lines_in_order(self):&lt;br /&gt;
+        menu = self.menu(&amp;#039;helpMenu&amp;#039;)&lt;br /&gt;
+        hrefs = re.findall(r&amp;#039;&amp;lt;a href=&amp;quot;([^&amp;quot;]+)&amp;quot;&amp;#039;, menu)&lt;br /&gt;
+        self.assertEqual(hrefs, [&amp;#039;https://pickipedia.xyz/wiki/Magenta:Help&amp;#039;, &amp;#039;#&amp;#039;, &amp;#039;https://pickipedia.xyz/wiki/Magenta&amp;#039;,&lt;br /&gt;
+                                 &amp;#039;https://pickipedia.xyz/wiki/Magenta:Humans&amp;#039;, &amp;#039;https://pickipedia.xyz/wiki/Magenta:Emergents&amp;#039;, &amp;#039;/faq/&amp;#039;])&lt;br /&gt;
+        self.assertIn(&amp;#039;id=&amp;quot;tourLink&amp;quot;&amp;#039;, menu)&lt;br /&gt;
+        self.assertIn(&amp;#039;data-tour-open=&amp;quot;helpBtn&amp;quot;&amp;#039;, self.PAGE)  # the tour opens it for the help and faq steps&lt;br /&gt;
+&lt;br /&gt;
+    def test_the_tour_anchors_moved_with_the_links(self):&lt;br /&gt;
+        menu = self.menu(&amp;#039;helpMenu&amp;#039;)&lt;br /&gt;
+        self.assertIn(&amp;#039;data-tour=&amp;quot;help&amp;quot;&amp;#039;, menu)&lt;br /&gt;
+        self.assertIn(&amp;#039;data-tour=&amp;quot;faq&amp;quot;&amp;#039;, menu)&lt;br /&gt;
+        user_menu = self.menu(&amp;#039;userMenu&amp;#039;)&lt;br /&gt;
+        for gone in (&amp;#039;Magenta:Help&amp;#039;, &amp;#039;/faq/&amp;#039;, &amp;#039;tourLink&amp;#039;):&lt;br /&gt;
+            self.assertNotIn(gone, user_menu)&lt;br /&gt;
+&lt;br /&gt;
+    def test_the_button_sits_right_of_the_state_chevron(self):&lt;br /&gt;
+        self.assertLess(self.PAGE.index(&amp;#039;id=&amp;quot;stateBtn&amp;quot;&amp;#039;), self.PAGE.index(&amp;#039;id=&amp;quot;helpBtn&amp;quot;&amp;#039;))&lt;br /&gt;
+        self.assertLess(self.PAGE.index(&amp;#039;id=&amp;quot;helpBtn&amp;quot;&amp;#039;), self.PAGE.index(&amp;#039;id=&amp;quot;searchBtn&amp;quot;&amp;#039;))&lt;br /&gt;
-- &lt;br /&gt;
2.53.0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Re</name></author>
	</entry>
</feed>