Adopt architecture guidelines: error model, terminology registry, state ownership #314

Description

@taras

architecture.md settles the design space for the engine's core mechanics and
becomes the vocabulary registry for the repository.

What it settles

  • Error propagation — middleware applied by the lexical structure wraps the
    work and may retry, suspend, bind, or decline; an error no middleware
    converted is raised and decided exactly once by the region's error mode
    (print, output, throw); a decision is final in both directions.
  • Error modes — which construct installs which mode, and that projections
    carry the caller's mode rather than setting their own.
  • Attempts and partial output — what the journal records, what rendered
    output shows, and what a failing region keeps.
  • Outcomes — a failed run is still a complete record; object identity never
    crosses the journal; the journal is parsed, never trusted.
  • State ownership — all state is scoped to the operation that owns it and
    provided via context; no module-scoped registries.

Terminology registry

The Terminology section is the vocabulary registry. Only concepts and words
described there, or already defined in the spec and code, may be used. A
missing term requires permission and an entry here first. Existing documents
and code get aligned to it retroactively.

Status baseline

Status is measured against main. The construct inventory marks what is built
versus defined-unbuilt, so the guidelines can state invariants without claiming
they are all implemented.

Follow-ups

  • A terminology PR — the lexical renames on main.
  • A semantics PR.

#309 and #312 are context for the constructs the inventory describes; this
issue does not change them.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    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 \u003cpre\u003e\u003ccode\u003e 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

      Adopt architecture guidelines: error model, terminology registry, state ownership #314

      Description

      @taras

      architecture.md settles the design space for the engine's core mechanics and
      becomes the vocabulary registry for the repository.

      What it settles

      • Error propagation — middleware applied by the lexical structure wraps the
        work and may retry, suspend, bind, or decline; an error no middleware
        converted is raised and decided exactly once by the region's error mode
        (print, output, throw); a decision is final in both directions.
      • Error modes — which construct installs which mode, and that projections
        carry the caller's mode rather than setting their own.
      • Attempts and partial output — what the journal records, what rendered
        output shows, and what a failing region keeps.
      • Outcomes — a failed run is still a complete record; object identity never
        crosses the journal; the journal is parsed, never trusted.
      • State ownership — all state is scoped to the operation that owns it and
        provided via context; no module-scoped registries.

      Terminology registry

      The Terminology section is the vocabulary registry. Only concepts and words
      described there, or already defined in the spec and code, may be used. A
      missing term requires permission and an entry here first. Existing documents
      and code get aligned to it retroactively.

      Status baseline

      Status is measured against main. The construct inventory marks what is built
      versus defined-unbuilt, so the guidelines can state invariants without claiming
      they are all implemented.

      Follow-ups

      • A terminology PR — the lexical renames on main.
      • A semantics PR.

      #309 and #312 are context for the constructs the inventory describes; this
      issue does not change them.

      Activity

      Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

      Metadata

      Metadata

      Assignees

      No one assigned

        Labels

        No labels
        No labels

        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

          Adopt architecture guidelines: error model, terminology registry, state ownership #314

          Description

          @taras

          architecture.md settles the design space for the engine's core mechanics and
          becomes the vocabulary registry for the repository.

          What it settles

          • Error propagation — middleware applied by the lexical structure wraps the
            work and may retry, suspend, bind, or decline; an error no middleware
            converted is raised and decided exactly once by the region's error mode
            (print, output, throw); a decision is final in both directions.
          • Error modes — which construct installs which mode, and that projections
            carry the caller's mode rather than setting their own.
          • Attempts and partial output — what the journal records, what rendered
            output shows, and what a failing region keeps.
          • Outcomes — a failed run is still a complete record; object identity never
            crosses the journal; the journal is parsed, never trusted.
          • State ownership — all state is scoped to the operation that owns it and
            provided via context; no module-scoped registries.

          Terminology registry

          The Terminology section is the vocabulary registry. Only concepts and words
          described there, or already defined in the spec and code, may be used. A
          missing term requires permission and an entry here first. Existing documents
          and code get aligned to it retroactively.

          Status baseline

          Status is measured against main. The construct inventory marks what is built
          versus defined-unbuilt, so the guidelines can state invariants without claiming
          they are all implemented.

          Follow-ups

          • A terminology PR — the lexical renames on main.
          • A semantics PR.

          #309 and #312 are context for the constructs the inventory describes; this
          issue does not change them.

          Activity

          Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

          Metadata

          Metadata

          Assignees

          No one assigned

            Labels

            No labels
            No labels

            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 \u003e 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

              Adopt architecture guidelines: error model, terminology registry, state ownership #314

              Description

              @taras

              architecture.md settles the design space for the engine's core mechanics and
              becomes the vocabulary registry for the repository.

              What it settles

              • Error propagation — middleware applied by the lexical structure wraps the
                work and may retry, suspend, bind, or decline; an error no middleware
                converted is raised and decided exactly once by the region's error mode
                (print, output, throw); a decision is final in both directions.
              • Error modes — which construct installs which mode, and that projections
                carry the caller's mode rather than setting their own.
              • Attempts and partial output — what the journal records, what rendered
                output shows, and what a failing region keeps.
              • Outcomes — a failed run is still a complete record; object identity never
                crosses the journal; the journal is parsed, never trusted.
              • State ownership — all state is scoped to the operation that owns it and
                provided via context; no module-scoped registries.

              Terminology registry

              The Terminology section is the vocabulary registry. Only concepts and words
              described there, or already defined in the spec and code, may be used. A
              missing term requires permission and an entry here first. Existing documents
              and code get aligned to it retroactively.

              Status baseline

              Status is measured against main. The construct inventory marks what is built
              versus defined-unbuilt, so the guidelines can state invariants without claiming
              they are all implemented.

              Follow-ups

              • A terminology PR — the lexical renames on main.
              • A semantics PR.

              #309 and #312 are context for the constructs the inventory describes; this
              issue does not change them.

              Activity

              Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

              Metadata

              Metadata

              Assignees

              No one assigned

                Labels

                No labels
                No labels

                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

                  Adopt architecture guidelines: error model, terminology registry, state ownership #314

                  Description

                  @taras

                  architecture.md settles the design space for the engine's core mechanics and
                  becomes the vocabulary registry for the repository.

                  What it settles

                  • Error propagation — middleware applied by the lexical structure wraps the
                    work and may retry, suspend, bind, or decline; an error no middleware
                    converted is raised and decided exactly once by the region's error mode
                    (print, output, throw); a decision is final in both directions.
                  • Error modes — which construct installs which mode, and that projections
                    carry the caller's mode rather than setting their own.
                  • Attempts and partial output — what the journal records, what rendered
                    output shows, and what a failing region keeps.
                  • Outcomes — a failed run is still a complete record; object identity never
                    crosses the journal; the journal is parsed, never trusted.
                  • State ownership — all state is scoped to the operation that owns it and
                    provided via context; no module-scoped registries.

                  Terminology registry

                  The Terminology section is the vocabulary registry. Only concepts and words
                  described there, or already defined in the spec and code, may be used. A
                  missing term requires permission and an entry here first. Existing documents
                  and code get aligned to it retroactively.

                  Status baseline

                  Status is measured against main. The construct inventory marks what is built
                  versus defined-unbuilt, so the guidelines can state invariants without claiming
                  they are all implemented.

                  Follow-ups

                  • A terminology PR — the lexical renames on main.
                  • A semantics PR.

                  #309 and #312 are context for the constructs the inventory describes; this
                  issue does not change them.

                  Activity

                  Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

                  Metadata

                  Metadata

                  Assignees

                  No one assigned

                    Labels

                    No labels
                    No labels

                    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

                      Adopt architecture guidelines: error model, terminology registry, state ownership #314

                      Description

                      @taras

                      architecture.md settles the design space for the engine's core mechanics and
                      becomes the vocabulary registry for the repository.

                      What it settles

                      • Error propagation — middleware applied by the lexical structure wraps the
                        work and may retry, suspend, bind, or decline; an error no middleware
                        converted is raised and decided exactly once by the region's error mode
                        (print, output, throw); a decision is final in both directions.
                      • Error modes — which construct installs which mode, and that projections
                        carry the caller's mode rather than setting their own.
                      • Attempts and partial output — what the journal records, what rendered
                        output shows, and what a failing region keeps.
                      • Outcomes — a failed run is still a complete record; object identity never
                        crosses the journal; the journal is parsed, never trusted.
                      • State ownership — all state is scoped to the operation that owns it and
                        provided via context; no module-scoped registries.

                      Terminology registry

                      The Terminology section is the vocabulary registry. Only concepts and words
                      described there, or already defined in the spec and code, may be used. A
                      missing term requires permission and an entry here first. Existing documents
                      and code get aligned to it retroactively.

                      Status baseline

                      Status is measured against main. The construct inventory marks what is built
                      versus defined-unbuilt, so the guidelines can state invariants without claiming
                      they are all implemented.

                      Follow-ups

                      • A terminology PR — the lexical renames on main.
                      • A semantics PR.

                      #309 and #312 are context for the constructs the inventory describes; this
                      issue does not change them.

                      Activity

                      Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

                      Metadata

                      Metadata

                      Assignees

                      No one assigned

                        Labels

                        No labels
                        No labels

                        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

                          Adopt architecture guidelines: error model, terminology registry, state ownership #314

                          Description

                          @taras

                          architecture.md settles the design space for the engine's core mechanics and
                          becomes the vocabulary registry for the repository.

                          What it settles

                          • Error propagation — middleware applied by the lexical structure wraps the
                            work and may retry, suspend, bind, or decline; an error no middleware
                            converted is raised and decided exactly once by the region's error mode
                            (print, output, throw); a decision is final in both directions.
                          • Error modes — which construct installs which mode, and that projections
                            carry the caller's mode rather than setting their own.
                          • Attempts and partial output — what the journal records, what rendered
                            output shows, and what a failing region keeps.
                          • Outcomes — a failed run is still a complete record; object identity never
                            crosses the journal; the journal is parsed, never trusted.
                          • State ownership — all state is scoped to the operation that owns it and
                            provided via context; no module-scoped registries.

                          Terminology registry

                          The Terminology section is the vocabulary registry. Only concepts and words
                          described there, or already defined in the spec and code, may be used. A
                          missing term requires permission and an entry here first. Existing documents
                          and code get aligned to it retroactively.

                          Status baseline

                          Status is measured against main. The construct inventory marks what is built
                          versus defined-unbuilt, so the guidelines can state invariants without claiming
                          they are all implemented.

                          Follow-ups

                          • A terminology PR — the lexical renames on main.
                          • A semantics PR.

                          #309 and #312 are context for the constructs the inventory describes; this
                          issue does not change them.

                          Activity

                          Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

                          Metadata

                          Metadata

                          Assignees

                          No one assigned

                            Labels

                            No labels
                            No labels

                            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

                              Adopt architecture guidelines: error model, terminology registry, state ownership #314

                              Description

                              @taras

                              architecture.md settles the design space for the engine's core mechanics and
                              becomes the vocabulary registry for the repository.

                              What it settles

                              • Error propagation — middleware applied by the lexical structure wraps the
                                work and may retry, suspend, bind, or decline; an error no middleware
                                converted is raised and decided exactly once by the region's error mode
                                (print, output, throw); a decision is final in both directions.
                              • Error modes — which construct installs which mode, and that projections
                                carry the caller's mode rather than setting their own.
                              • Attempts and partial output — what the journal records, what rendered
                                output shows, and what a failing region keeps.
                              • Outcomes — a failed run is still a complete record; object identity never
                                crosses the journal; the journal is parsed, never trusted.
                              • State ownership — all state is scoped to the operation that owns it and
                                provided via context; no module-scoped registries.

                              Terminology registry

                              The Terminology section is the vocabulary registry. Only concepts and words
                              described there, or already defined in the spec and code, may be used. A
                              missing term requires permission and an entry here first. Existing documents
                              and code get aligned to it retroactively.

                              Status baseline

                              Status is measured against main. The construct inventory marks what is built
                              versus defined-unbuilt, so the guidelines can state invariants without claiming
                              they are all implemented.

                              Follow-ups

                              • A terminology PR — the lexical renames on main.
                              • A semantics PR.

                              #309 and #312 are context for the constructs the inventory describes; this
                              issue does not change them.

                              Activity

                              Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

                              Metadata

                              Metadata

                              Assignees

                              No one assigned

                                Labels

                                No labels
                                No labels

                                Projects

                                No projects

                                  Milestone

                                  No milestone

                                  Relationships

                                  None yet

                                  Development

                                  No branches or pull requests

                                  Issue actions