Map: the issue queue as a first-class surface in T3 Code #108

Description

@radroid

Destination

Decide what the fork builds, defers, or upstreams in order to make the GitHub issue queue a
first-class working surface inside T3 Code — a visible wayfinder map, skill invocation that actually
fires, a skill picker that routes by situation rather than alphabet, and an agent that works the
queue. Done when every piece has a verdict, an order, and the evidence behind it.

Notes

Domain. The fork, radroid/t3code. Fork-owned namespaces are apps/server/src/coil/,
apps/web/src/coil/, packages/contracts/src/coil/nott3x/; the rename moved them and
some docs are still stale. Every edit to an upstream-owned file takes a row in
docs/t3x/SEAMS.md, updated in the same commit. Tracker conventions, including the frontier query
and the sub-issue/dependency commands, live in docs/t3x/agents/issue-tracker.md.

Skills each session should consult./grilling and /domain-modeling by default. /research
for AFK research tickets. /prototype where the question is "how should it look or behave".

Standing preferences.

  • Plan, don't build. Experiments are in scope as task/research tickets because they unblock
    decisions. Feature implementation is not — the map hands off to /to-spec/to-tickets.
  • HITL by design. This effort spends a human's time and an agent's together. Its product is
    tickets a looping agent can then take unattended.
  • Nothing goes upstream. Upstream is not accepting contributions at present, so every fix lands
    fork-local and pays a seam row. This is a change from the usual "prefer upstreaming" posture and
    it is load-bearing for ticket ordering.
  • Web and desktop only.
  • Order: panel → invocation → routing → maintainer agent.

Ordering rationale. The panel is the highest-value piece (it removes the constant bounce between
the Issues list and the chat). The maintainer agent is last because an agent autonomously running
skills you cannot yet reliably invoke, against a queue you cannot yet see, is the riskiest possible
first move — and its verdict may legitimately come out "defer".

Decisions so far

None yet.

Not yet specified

Out of scope

Metadata

Metadata

Assignees

No one assigned

    Labels

    wayfinder:mapWayfinder: the map issue itself

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

      , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
       blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
      }
      } catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
      })();
      (function(){
      try {
      var __m = "github.com";
      var __re = new RegExp('^' + "github\\.com" + '
      
      Skip to content

      Map: the issue queue as a first-class surface in T3 Code #108

      Description

      @radroid

      Destination

      Decide what the fork builds, defers, or upstreams in order to make the GitHub issue queue a
      first-class working surface inside T3 Code — a visible wayfinder map, skill invocation that actually
      fires, a skill picker that routes by situation rather than alphabet, and an agent that works the
      queue. Done when every piece has a verdict, an order, and the evidence behind it.

      Notes

      Domain. The fork, radroid/t3code. Fork-owned namespaces are apps/server/src/coil/,
      apps/web/src/coil/, packages/contracts/src/coil/nott3x/; the rename moved them and
      some docs are still stale. Every edit to an upstream-owned file takes a row in
      docs/t3x/SEAMS.md, updated in the same commit. Tracker conventions, including the frontier query
      and the sub-issue/dependency commands, live in docs/t3x/agents/issue-tracker.md.

      Skills each session should consult./grilling and /domain-modeling by default. /research
      for AFK research tickets. /prototype where the question is "how should it look or behave".

      Standing preferences.

      • Plan, don't build. Experiments are in scope as task/research tickets because they unblock
        decisions. Feature implementation is not — the map hands off to /to-spec/to-tickets.
      • HITL by design. This effort spends a human's time and an agent's together. Its product is
        tickets a looping agent can then take unattended.
      • Nothing goes upstream. Upstream is not accepting contributions at present, so every fix lands
        fork-local and pays a seam row. This is a change from the usual "prefer upstreaming" posture and
        it is load-bearing for ticket ordering.
      • Web and desktop only.
      • Order: panel → invocation → routing → maintainer agent.

      Ordering rationale. The panel is the highest-value piece (it removes the constant bounce between
      the Issues list and the chat). The maintainer agent is last because an agent autonomously running
      skills you cannot yet reliably invoke, against a queue you cannot yet see, is the riskiest possible
      first move — and its verdict may legitimately come out "defer".

      Decisions so far

      None yet.

      Not yet specified

      Out of scope

      Metadata

      Metadata

      Assignees

      No one assigned

        Labels

        wayfinder:mapWayfinder: the map issue itself

        Projects

        No projects

          Milestone

          No milestone

          Relationships

          None yet

          Development

          No branches or pull requests

          Issue actions

          , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
          Skip to content

          Map: the issue queue as a first-class surface in T3 Code #108

          Description

          @radroid

          Destination

          Decide what the fork builds, defers, or upstreams in order to make the GitHub issue queue a
          first-class working surface inside T3 Code — a visible wayfinder map, skill invocation that actually
          fires, a skill picker that routes by situation rather than alphabet, and an agent that works the
          queue. Done when every piece has a verdict, an order, and the evidence behind it.

          Notes

          Domain. The fork, radroid/t3code. Fork-owned namespaces are apps/server/src/coil/,
          apps/web/src/coil/, packages/contracts/src/coil/nott3x/; the rename moved them and
          some docs are still stale. Every edit to an upstream-owned file takes a row in
          docs/t3x/SEAMS.md, updated in the same commit. Tracker conventions, including the frontier query
          and the sub-issue/dependency commands, live in docs/t3x/agents/issue-tracker.md.

          Skills each session should consult./grilling and /domain-modeling by default. /research
          for AFK research tickets. /prototype where the question is "how should it look or behave".

          Standing preferences.

          • Plan, don't build. Experiments are in scope as task/research tickets because they unblock
            decisions. Feature implementation is not — the map hands off to /to-spec/to-tickets.
          • HITL by design. This effort spends a human's time and an agent's together. Its product is
            tickets a looping agent can then take unattended.
          • Nothing goes upstream. Upstream is not accepting contributions at present, so every fix lands
            fork-local and pays a seam row. This is a change from the usual "prefer upstreaming" posture and
            it is load-bearing for ticket ordering.
          • Web and desktop only.
          • Order: panel → invocation → routing → maintainer agent.

          Ordering rationale. The panel is the highest-value piece (it removes the constant bounce between
          the Issues list and the chat). The maintainer agent is last because an agent autonomously running
          skills you cannot yet reliably invoke, against a queue you cannot yet see, is the riskiest possible
          first move — and its verdict may legitimately come out "defer".

          Decisions so far

          None yet.

          Not yet specified

          Out of scope

          Metadata

          Metadata

          Assignees

          No one assigned

            Labels

            wayfinder:mapWayfinder: the map issue itself

            Projects

            No projects

              Milestone

              No milestone

              Relationships

              None yet

              Development

              No branches or pull requests

              Issue actions

              , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
              Skip to content

              Map: the issue queue as a first-class surface in T3 Code #108

              Description

              @radroid

              Destination

              Decide what the fork builds, defers, or upstreams in order to make the GitHub issue queue a
              first-class working surface inside T3 Code — a visible wayfinder map, skill invocation that actually
              fires, a skill picker that routes by situation rather than alphabet, and an agent that works the
              queue. Done when every piece has a verdict, an order, and the evidence behind it.

              Notes

              Domain. The fork, radroid/t3code. Fork-owned namespaces are apps/server/src/coil/,
              apps/web/src/coil/, packages/contracts/src/coil/nott3x/; the rename moved them and
              some docs are still stale. Every edit to an upstream-owned file takes a row in
              docs/t3x/SEAMS.md, updated in the same commit. Tracker conventions, including the frontier query
              and the sub-issue/dependency commands, live in docs/t3x/agents/issue-tracker.md.

              Skills each session should consult./grilling and /domain-modeling by default. /research
              for AFK research tickets. /prototype where the question is "how should it look or behave".

              Standing preferences.

              • Plan, don't build. Experiments are in scope as task/research tickets because they unblock
                decisions. Feature implementation is not — the map hands off to /to-spec/to-tickets.
              • HITL by design. This effort spends a human's time and an agent's together. Its product is
                tickets a looping agent can then take unattended.
              • Nothing goes upstream. Upstream is not accepting contributions at present, so every fix lands
                fork-local and pays a seam row. This is a change from the usual "prefer upstreaming" posture and
                it is load-bearing for ticket ordering.
              • Web and desktop only.
              • Order: panel → invocation → routing → maintainer agent.

              Ordering rationale. The panel is the highest-value piece (it removes the constant bounce between
              the Issues list and the chat). The maintainer agent is last because an agent autonomously running
              skills you cannot yet reliably invoke, against a queue you cannot yet see, is the riskiest possible
              first move — and its verdict may legitimately come out "defer".

              Decisions so far

              None yet.

              Not yet specified

              Out of scope

              Metadata

              Metadata

              Assignees

              No one assigned

                Labels

                wayfinder:mapWayfinder: the map issue itself

                Projects

                No projects

                  Milestone

                  No milestone

                  Relationships

                  None yet

                  Development

                  No branches or pull requests

                  Issue actions

                  , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
                  Skip to content

                  Map: the issue queue as a first-class surface in T3 Code #108

                  Description

                  @radroid

                  Destination

                  Decide what the fork builds, defers, or upstreams in order to make the GitHub issue queue a
                  first-class working surface inside T3 Code — a visible wayfinder map, skill invocation that actually
                  fires, a skill picker that routes by situation rather than alphabet, and an agent that works the
                  queue. Done when every piece has a verdict, an order, and the evidence behind it.

                  Notes

                  Domain. The fork, radroid/t3code. Fork-owned namespaces are apps/server/src/coil/,
                  apps/web/src/coil/, packages/contracts/src/coil/nott3x/; the rename moved them and
                  some docs are still stale. Every edit to an upstream-owned file takes a row in
                  docs/t3x/SEAMS.md, updated in the same commit. Tracker conventions, including the frontier query
                  and the sub-issue/dependency commands, live in docs/t3x/agents/issue-tracker.md.

                  Skills each session should consult./grilling and /domain-modeling by default. /research
                  for AFK research tickets. /prototype where the question is "how should it look or behave".

                  Standing preferences.

                  • Plan, don't build. Experiments are in scope as task/research tickets because they unblock
                    decisions. Feature implementation is not — the map hands off to /to-spec/to-tickets.
                  • HITL by design. This effort spends a human's time and an agent's together. Its product is
                    tickets a looping agent can then take unattended.
                  • Nothing goes upstream. Upstream is not accepting contributions at present, so every fix lands
                    fork-local and pays a seam row. This is a change from the usual "prefer upstreaming" posture and
                    it is load-bearing for ticket ordering.
                  • Web and desktop only.
                  • Order: panel → invocation → routing → maintainer agent.

                  Ordering rationale. The panel is the highest-value piece (it removes the constant bounce between
                  the Issues list and the chat). The maintainer agent is last because an agent autonomously running
                  skills you cannot yet reliably invoke, against a queue you cannot yet see, is the riskiest possible
                  first move — and its verdict may legitimately come out "defer".

                  Decisions so far

                  None yet.

                  Not yet specified

                  Out of scope

                  Metadata

                  Metadata

                  Assignees

                  No one assigned

                    Labels

                    wayfinder:mapWayfinder: the map issue itself

                    Projects

                    No projects

                      Milestone

                      No milestone

                      Relationships

                      None yet

                      Development

                      No branches or pull requests

                      Issue actions

                      , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
                      Skip to content

                      Map: the issue queue as a first-class surface in T3 Code #108

                      Description

                      @radroid

                      Destination

                      Decide what the fork builds, defers, or upstreams in order to make the GitHub issue queue a
                      first-class working surface inside T3 Code — a visible wayfinder map, skill invocation that actually
                      fires, a skill picker that routes by situation rather than alphabet, and an agent that works the
                      queue. Done when every piece has a verdict, an order, and the evidence behind it.

                      Notes

                      Domain. The fork, radroid/t3code. Fork-owned namespaces are apps/server/src/coil/,
                      apps/web/src/coil/, packages/contracts/src/coil/nott3x/; the rename moved them and
                      some docs are still stale. Every edit to an upstream-owned file takes a row in
                      docs/t3x/SEAMS.md, updated in the same commit. Tracker conventions, including the frontier query
                      and the sub-issue/dependency commands, live in docs/t3x/agents/issue-tracker.md.

                      Skills each session should consult./grilling and /domain-modeling by default. /research
                      for AFK research tickets. /prototype where the question is "how should it look or behave".

                      Standing preferences.

                      • Plan, don't build. Experiments are in scope as task/research tickets because they unblock
                        decisions. Feature implementation is not — the map hands off to /to-spec/to-tickets.
                      • HITL by design. This effort spends a human's time and an agent's together. Its product is
                        tickets a looping agent can then take unattended.
                      • Nothing goes upstream. Upstream is not accepting contributions at present, so every fix lands
                        fork-local and pays a seam row. This is a change from the usual "prefer upstreaming" posture and
                        it is load-bearing for ticket ordering.
                      • Web and desktop only.
                      • Order: panel → invocation → routing → maintainer agent.

                      Ordering rationale. The panel is the highest-value piece (it removes the constant bounce between
                      the Issues list and the chat). The maintainer agent is last because an agent autonomously running
                      skills you cannot yet reliably invoke, against a queue you cannot yet see, is the riskiest possible
                      first move — and its verdict may legitimately come out "defer".

                      Decisions so far

                      None yet.

                      Not yet specified

                      Out of scope

                      Metadata

                      Metadata

                      Assignees

                      No one assigned

                        Labels

                        wayfinder:mapWayfinder: the map issue itself

                        Projects

                        No projects

                          Milestone

                          No milestone

                          Relationships

                          None yet

                          Development

                          No branches or pull requests

                          Issue actions

                          , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
                          Skip to content

                          Map: the issue queue as a first-class surface in T3 Code #108

                          Description

                          @radroid

                          Destination

                          Decide what the fork builds, defers, or upstreams in order to make the GitHub issue queue a
                          first-class working surface inside T3 Code — a visible wayfinder map, skill invocation that actually
                          fires, a skill picker that routes by situation rather than alphabet, and an agent that works the
                          queue. Done when every piece has a verdict, an order, and the evidence behind it.

                          Notes

                          Domain. The fork, radroid/t3code. Fork-owned namespaces are apps/server/src/coil/,
                          apps/web/src/coil/, packages/contracts/src/coil/nott3x/; the rename moved them and
                          some docs are still stale. Every edit to an upstream-owned file takes a row in
                          docs/t3x/SEAMS.md, updated in the same commit. Tracker conventions, including the frontier query
                          and the sub-issue/dependency commands, live in docs/t3x/agents/issue-tracker.md.

                          Skills each session should consult./grilling and /domain-modeling by default. /research
                          for AFK research tickets. /prototype where the question is "how should it look or behave".

                          Standing preferences.

                          • Plan, don't build. Experiments are in scope as task/research tickets because they unblock
                            decisions. Feature implementation is not — the map hands off to /to-spec/to-tickets.
                          • HITL by design. This effort spends a human's time and an agent's together. Its product is
                            tickets a looping agent can then take unattended.
                          • Nothing goes upstream. Upstream is not accepting contributions at present, so every fix lands
                            fork-local and pays a seam row. This is a change from the usual "prefer upstreaming" posture and
                            it is load-bearing for ticket ordering.
                          • Web and desktop only.
                          • Order: panel → invocation → routing → maintainer agent.

                          Ordering rationale. The panel is the highest-value piece (it removes the constant bounce between
                          the Issues list and the chat). The maintainer agent is last because an agent autonomously running
                          skills you cannot yet reliably invoke, against a queue you cannot yet see, is the riskiest possible
                          first move — and its verdict may legitimately come out "defer".

                          Decisions so far

                          None yet.

                          Not yet specified

                          Out of scope

                          Metadata

                          Metadata

                          Assignees

                          No one assigned

                            Labels

                            wayfinder:mapWayfinder: the map issue itself

                            Projects

                            No projects

                              Milestone

                              No milestone

                              Relationships

                              None yet

                              Development

                              No branches or pull requests

                              Issue actions

                              , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
                              Skip to content

                              Map: the issue queue as a first-class surface in T3 Code #108

                              Description

                              @radroid

                              Destination

                              Decide what the fork builds, defers, or upstreams in order to make the GitHub issue queue a
                              first-class working surface inside T3 Code — a visible wayfinder map, skill invocation that actually
                              fires, a skill picker that routes by situation rather than alphabet, and an agent that works the
                              queue. Done when every piece has a verdict, an order, and the evidence behind it.

                              Notes

                              Domain. The fork, radroid/t3code. Fork-owned namespaces are apps/server/src/coil/,
                              apps/web/src/coil/, packages/contracts/src/coil/nott3x/; the rename moved them and
                              some docs are still stale. Every edit to an upstream-owned file takes a row in
                              docs/t3x/SEAMS.md, updated in the same commit. Tracker conventions, including the frontier query
                              and the sub-issue/dependency commands, live in docs/t3x/agents/issue-tracker.md.

                              Skills each session should consult./grilling and /domain-modeling by default. /research
                              for AFK research tickets. /prototype where the question is "how should it look or behave".

                              Standing preferences.

                              • Plan, don't build. Experiments are in scope as task/research tickets because they unblock
                                decisions. Feature implementation is not — the map hands off to /to-spec/to-tickets.
                              • HITL by design. This effort spends a human's time and an agent's together. Its product is
                                tickets a looping agent can then take unattended.
                              • Nothing goes upstream. Upstream is not accepting contributions at present, so every fix lands
                                fork-local and pays a seam row. This is a change from the usual "prefer upstreaming" posture and
                                it is load-bearing for ticket ordering.
                              • Web and desktop only.
                              • Order: panel → invocation → routing → maintainer agent.

                              Ordering rationale. The panel is the highest-value piece (it removes the constant bounce between
                              the Issues list and the chat). The maintainer agent is last because an agent autonomously running
                              skills you cannot yet reliably invoke, against a queue you cannot yet see, is the riskiest possible
                              first move — and its verdict may legitimately come out "defer".

                              Decisions so far

                              None yet.

                              Not yet specified

                              Out of scope

                              Metadata

                              Metadata

                              Assignees

                              No one assigned

                                Labels

                                wayfinder:mapWayfinder: the map issue itself

                                Projects

                                No projects

                                  Milestone

                                  No milestone

                                  Relationships

                                  None yet

                                  Development

                                  No branches or pull requests

                                  Issue actions