{
  "$about": "Behaviour, copy and retrieval tuning for /map/. The data is the site's knowledge layer (/knowledge/*.json, scripts/knowledge/SCHEMA.md); nothing here is content. billboard: the owner's example questions (ids in scripts/knowledge/eval/core-questions.json); the build grades each on the words-only path and the map types only the SOLID ones (/knowledge/billboard.json).",
  "source": {
    "base": "/knowledge/",
    "id": "agenticthinking",
    "title": "Agentic Thinking",
    "owner": {
      "id": "steven-poitras",
      "name": "Steven Poitras",
      "url": "/blog/about-steven-poitras/"
    },
    "nodeKind": "learning",
    "machine": [
      {
        "label": "llms.txt",
        "href": "/llms.txt"
      },
      {
        "label": "the knowledge layer",
        "href": "/knowledge/manifest.json"
      }
    ],
    "passageWeights": {
      "thesis": 1.12,
      "lead": 1,
      "section": 1
    },
    "lensName": "Series"
  },
  "flags": {
    "primer": "first-visit",
    "ambient": "on",
    "hybrid": "on",
    "suggestions": 3,
    "viewBy": "on",
    "freeTextViewBy": "off",
    "maxClusters": 12,
    "clusterResolution": 1.6,
    "contextTray": "on",
    "contextBudgets": [
      8000,
      32000,
      200000
    ],
    "answerSources": 4,
    "shortcuts": "on",
    "labelsAtZoom": 1.9,
    "regionFields": "on",
    "breathing": "on",
    "introMaxNodes": 2500,
    "knnExactBelow": 1500,
    "minThinkMs": 700,
    "slowHintMs": 3000,
    "emergentClusters": "on"
  },
  "billboard": [
    {
      "q": "What is agent self identity?",
      "id": "bb-identity"
    },
    {
      "q": "Why give an agent a purpose, not just goals?",
      "id": "bb-purpose"
    },
    {
      "q": "Why did you rejoin Nutanix?",
      "id": "bb-nutanix"
    },
    {
      "q": "What are common issues with context?",
      "id": "bb-context-issues"
    },
    {
      "q": "What is living context?",
      "id": "bb-living-context"
    },
    {
      "q": "Why shouldn't an agent grade its own work?",
      "id": "bb-grader"
    },
    {
      "q": "Why does my agent say it's done when it isn't?",
      "id": "bb-done"
    },
    {
      "q": "Why is an agent's context window not memory?",
      "id": "bb-window"
    },
    {
      "q": "Why do my evals pass when the agent is wrong?",
      "id": "bb-evals"
    },
    {
      "q": "Should I use MCP or a CLI?",
      "id": "bb-mcp-cli"
    },
    {
      "q": "Is a confidence score a permission slip?",
      "id": "bb-confidence"
    },
    {
      "q": "When should a loop terminate?",
      "id": "bb-loop-stop"
    },
    {
      "q": "What is an anti-identity?",
      "id": "bb-anti-identity"
    }
  ],
  "display": {
    "$about": "Which optional node attributes appear in a learning's meta line, and which kinds go unnamed. Source-specific words live here, not in code.",
    "metaAttrs": [
      "series"
    ],
    "hideKinds": [
      "learning"
    ],
    "summaryMaxChars": 420
  },
  "copy": {
    "brand": "Agentic Thinking",
    "brandSub": "Living context",
    "kicker": "Ask what I’ve learned building with AI, or plug it into your own agent.",
    "headline": "{owner}’s living context",
    "headlineNoOwner": "Living context",
    "placeholder": "Ask about anything I’ve learned…",
    "askLabel": "Ask a question of the learnings",
    "suggestLead": "Or try",
    "exampleHint": "Example: {q}. Press Enter to ask it, or the right arrow to edit it.",
    "youAsked": "You asked",
    "intentLine": "You’re asking: {objective}",
    "comprehension": {
      "$about": "K12: how the question was read, shown above every answer (shell.js comprehensionBlock). readAs fills {type} and {subject}; types and facets name the core's intent types and facets; the tier line says which tier read it (rules: words only; exemplars: meaning).",
      "title": "How I read your question",
      "gistReal": "The real question: {q}",
      "narrowPx": 480,
      "asked": "What you asked",
      "read": "How I read it",
      "why": "Why you probably ask",
      "real": "The real question",
      "readAs": "{type}, about {subject}",
      "readAsNoSubject": "{type}",
      "subjectJoin": ", ",
      "subjectJoinComparison": " and ",
      "constraints": "narrowed by {list}",
      "tierRules": "(read by its words)",
      "tierExemplars": "(read by meaning)",
      "clarify": "Or did you mean:",
      "chipTitle": "Ask this reading instead",
      "types": { "identity": "A question about me", "definition": "A definition", "how": "A how-to", "why": "A why", "decision": "A decision", "comparison": "A comparison", "diagnosis": "Something failing", "opinion": "My view", "examples": "Examples", "meta": "A question about this site", "other": "A topic" },
      "facets": { "problems": "what goes wrong", "superlative": "the ones that matter most", "overview": "the main points", "relationship": "how they relate, not which wins" }
    },
    "personal": "That’s personal — not something I share here.",
    "answerLead": "Where I speak to this",
    "composed": {
      "$about": "A composed answer (K8): an identity, role or timeline ask about me, answered from my record field by field. The prose is the engine's (retrieve.mjs composeIdentity); each [n] opens the record's section it came from, quoted whole.",
      "lead": "From my record, each part cited",
      "refs": "Where each part comes from",
      "refAria": "Reference {n}: {heading}"
    },
    "overviewLead": "What I’ve said on {theme}, across {n} learnings",
    "answerLexical": "Matched by words",
    "answerHybrid": "Matched by words and meaning",
    "answerLexicalFinal": "Matched by words only — meaning wasn’t used this time",
    "noMatch": "I haven’t written about that closely yet.",
    "noMatchBody": "My learnings don’t cover it yet; this context is still growing. The nearest thoughts are below, in case one helps.",
    "nearest": "Nearest thoughts",
    "sources": "Where I wrote it",
    "keepAll": "Keep this context",
    "kept": "Kept",
    "keep": "Keep",
    "read": "Read",
    "askAbout": "Ask about this",
    "connections": "How it connects",
    "showAllConnections": "Show all connections",
    "profileNow": "Now",
    "profileTimeline": "Timeline",
    "profileSince": "since {date}",
    "profileAsOf": "As of {date}",
    "from": "From",
    "newQuestion": "New question",
    "back": "Back",
    "close": "Close",
    "trayTitle": "Your context",
    "trayLead": "What you keep travels with you — paste it into an agent, or share it.",
    "trayEmpty": "Nothing kept yet. Keep a learning, or keep an answer's sources.",
    "trayTrail": "In your trail",
    "trayBudget": "Budget",
    "trayCopy": "Copy",
    "trayDownload": "Download",
    "trayShare": "Copy link",
    "trayClear": "Clear",
    "trayOpen": "Your context",
    "formats": {
      "llms": "llms.txt",
      "md": "Markdown",
      "json": "JSON"
    },
    "viewBy": "View",
    "lensStory": "By story",
    "lensGoal": "By goal",
    "lensLabel": "Group the map",
    "lensListStory": "Series and topics",
    "lensListGoal": "What you want to do",
    "goals": {
      "$about": "By goal: the labels for the engine's themes (index.json themes, src/context/themes.json), keyed by theme id. A theme with no label here shows its own name.",
      "context": "Keep the context clean",
      "memory": "Make it remember",
      "mcp": "Connect it to tools",
      "evals": "Know it really works",
      "loops": "Make it finish",
      "identity": "Give it a self",
      "rules": "Steer it with rules and skills"
    },
    "goalAnnounce": "{goal}: {n} learnings",
    "lensClosedCard": "Closed “{title}” to regroup the map",
    "lensClosedCardAnswer": "Closed “{title}” and the answer to regroup the map",
    "lensClosedAnswer": "Closed the answer to regroup the map",
    "askNext": {
      "$about": "The row under an answer: follow-up questions the engine already supports, never invented. In order: the reading's other interpretation (comprehension readings), the SOLID billboard questions whose graded answer cites a learning cited here (billboard.json answeredBy), then those whose answer cites a learning in a theme a cited learning shares, and the overview ask of a theme two or more cited learnings share (kept only when the core answers it as that theme's overview).",
      "title": "Ask next",
      "theme": "What are common issues with {theme}?",
      "chipTitle": "Ask this"
    },
    "viewByEmergent": "By story",
    "viewByFree": "View by… (separate with commas)",
    "viewByHint": "Each phrase gathers the learnings that fit it; one that fits two sits between them.",
    "elsewhere": "fits none of these",
    "fit": "Fit the map",
    "zoomIn": "Zoom in",
    "zoomOut": "Zoom out",
    "theme": "Switch theme",
    "about": "About",
    "aboutTitle": "A map of connected learnings",
    "aboutBody": [
      "Every point is something I learned building with AI, most of them a post. Every line is a relationship: one is the next part of a series, I link one from the other, or the two mean nearly the same thing. They gather by the series and topics they belong to.",
      "Ask it something and it answers in my own words, quoted where I state a position: the post’s thesis, or the passage that opens the point. Words find candidates at once; meaning, read in your browser, confirms which ones answer. No model writes the answer.",
      "Today these are my learnings, {owner}’s, one voice. What you open and keep becomes your working memory: take it with you as context for yourself or an agent."
    ],
    "aboutAgents": "Agents don't need this page: they read",
    "keysTitle": "Keys",
    "keys": [
      [
        "/  or  ⌘K",
        "Ask a question"
      ],
      [
        "↑",
        "Edit your last question"
      ],
      [
        "Enter",
        "Ask"
      ],
      [
        "Esc",
        "Peel back one layer"
      ],
      [
        "[  ]",
        "Previous / next source"
      ],
      [
        "Tab to the map, then arrows",
        "Move between learnings"
      ],
      [
        "Enter",
        "Open a learning"
      ],
      [
        "k",
        "Keep the open learning"
      ],
      [
        "+  −  0",
        "Zoom in, out, fit"
      ],
      [
        "?",
        "This list"
      ]
    ],
    "mapLabel": "Map of the living context. Arrow keys move between nearby learnings; Enter opens one; R opens its region.",
    "introSkip": "Skip",
    "intro": [
      "I’m {owner}. These are my learnings from building with AI.",
      "Each one began as an experience.",
      "Connections form between them.",
      "They gather into series and topics.",
      "Ask it anything."
    ],
    "edgeKinds": {
      "sequence": "Next in the series",
      "link": "I link one from the other",
      "similar": "Close in meaning",
      "cites": "Cites it",
      "extends": "Extends it",
      "contradicts": "Pushes against it",
      "default": "Related",
      "listed": "I list it under related reading",
      "evidence": "The idea, and a post where I show it",
      "sequencePart": "Part {from} → {to} of {series}"
    },
    "loading": "Gathering the learnings…",
    "modelLoading": "loading meaning",
    "modelReady": "words + meaning",
    "modelOff": "words",
    "copied": "Copied",
    "keptToast": "Kept in your context",
    "nearThis": "near",
    "grows": "Built to grow into a shared context, where each learning carries who learned it.",
    "since": "",
    "pageTitle": "Context · agentic thinking",
    "pageDescription": "Steven's living context: learnings, ideas and thoughts from building with AI, connected, and answering in their own words.",
    "thinking": "Following the connections…",
    "thinkingSlow": "Still thinking — reading for meaning…",
    "alsoFrom": "Where I wrote it",
    "nearMiss": "I haven’t answered that directly. The closest I’ve come:",
    "nearMissBody": "These come near it, but don't answer it head-on.",
    "offTopic": "I write about building with AI, so nothing here on that.",
    "offTopicBody": "Try asking about agents, context, memory, tools or delegation.",
    "closeAnswer": "Back to the map",
    "empty": "No learnings yet. This context is waiting for its first one.",
    "bootFail": "The map could not load",
    "retry": "Try again",
    "sourceN": "Source {n}: {title}",
    "removeItem": "Remove {title}",
    "tokensOf": "~{tokens} of {budget} tokens",
    "tokensAria": "About {tokens} of {budget} tokens",
    "formatLabel": "Format",
    "budgetLabel": "Token budget",
    "openedCard": "Opened {title}. Tab for its connections.",
    "mirrorLinks": {
      "0": "no links yet",
      "1": "one link",
      "few": "a few links",
      "many": "many links"
    },
    "export": {
      "contextKept": "Context kept from {site}",
      "learningsBy": "learnings by {owner}",
      "questionsAsked": "Questions asked",
      "questions": "Questions",
      "learnings": "Learnings",
      "howTheyConnect": "How they connect",
      "contextTitle": "Context: {title}",
      "composedFrom": "composed from the record of",
      "references": "References"
    },
    "loadingSlow": "Still gathering the learnings — a slow connection or device; hold on…",
    "whose": "{owner}’s learnings · since {since}",
    "askButton": "Ask",
    "skipLink": "Skip to the question",
    "copyFailed": "Could not copy — select and copy by hand",
    "askAboutQuestion": "What did I learn from “{title}”?",
    "askRegionQuestion": "What have I learned about {region}?",
    "inRegion": "In “{region}”",
    "thinkingAnnounce": "Thinking — following the connections.",
    "announceUpdated": "Updated with meaning",
    "announceConfirmed": "Confirmed with meaning.",
    "announceWordsOnly": "Matched by words only",
    "edgeShared": "{kind} — both about {words}",
    "kickerNoOwner": "Learnings, ideas and thoughts from building with AI.",
    "whoseNoOwner": "Learnings · since {since}",
    "regionEyebrow": "Series or topic",
    "regionLead": "Learnings here, most connected first.",
    "askRegion": "Ask about this",
    "shortcutsToggle": "Single-key shortcuts",
    "shortcutsToggleHint": "Turn off if you use speech input or a screen reader’s quick keys.",
    "partLabel": "Part {n}",
    "why": {
      "heading": "Answers under “{heading}”",
      "headingTerms": "On {terms}, under “{heading}”",
      "terms": "Mentions {terms}",
      "meaning": "Close in meaning",
      "pinned": "The learning you asked about",
      "words": "Matches words in your question"
    },
    "copiedContext": "Context copied",
    "copiedLink": "Link copied",
    "viewByNothing": "{label}: nothing here yet",
    "askError": "Something went wrong answering that.",
    "askErrorBody": "The map is still here. Try asking again, or open a learning directly.",
    "degradedStructure": "Regions are unavailable right now — showing the starting map.",
    "degradedWorker": "Working out regions on the main thread — the map may be slower for a moment.",
    "removedAnnounce": "Removed {title} from your context.",
    "clearedAnnounce": "Your context is empty.",
    "regionsList": "Open one",
    "dockCard": "Learning",
    "dockRegion": "Series or topic",
    "dockAnswer": "Answer",
    "finding": "Finding where the learnings speak to this",
    "findingBody": "Reading where each learning states its position…",
    "thesisMark": "its thesis",
    "supersededMark": "an earlier view, since revised",
    "revisesWhy": "Revises an earlier view",
    "revision": {
      "title": "Thinking changed · {date}",
      "pair": "“{newer}” ({date}) revises “{older}”:",
      "then": "Then: {title} →",
      "thenTitle": "Ask this again from the earlier post",
      "thenScope": "Then: “{title}” ({date})",
      "now": "Now: {title} →",
      "nowTitle": "Ask this again from the newer post",
      "nowScope": "Now: “{title}” ({date})"
    },
    "regionShared": "Most learnings here mention {terms}.",
    "howItWorks": "How it works",
    "regionEyebrowSeries": "Series",
    "regionEyebrowTopic": "Topic",
    "waitReady": "Will ask once the map is ready",
    "answerFallback": "The closest I state it",
    "answerFallbackBody": "I don’t answer this head-on. One learning leads clearly, so this is where I state its position.",
    "answerProvisional": "Matched by words — checking meaning…",
    "announceWordsFirst": "Matched by words, checking meaning",
    "pinnedLead": "What I argue here",
    "pinnedNoPosition": "It opens by setting up a claim it goes on to question, so it isn’t quoted here.",
    "nearLead": "What I say near it",
    "listedCue": "Related, but I don’t speak to this directly there",
    "viewByWords": "{label} · by words",
    "viewByNothingYet": "{label}: no words match — still reading for meaning",
    "themeTo": "Mode: switch to {mode} theme",
    "pinnedOpens": "How it opens",
    "pinnedRead": "Read the post for its argument",
    "pinnedNotUpFront": "It doesn’t state its position up front — read the post for its argument.",
    "viewByMeaning": "Regrouped by meaning",
    "wordsLead": "Where I state it",
    "moreQuotes": "{n} more where I say it",
    "moreQuotesOne": "1 more where I say it",
    "moreQuotesAria": "Show {n} more quotes",
    "fewerQuotes": "Show one",
    "take": {
      "$about": "The pinned bar under a cited answer. The meter counts the exact text Copy puts on the clipboard (memory.js estimateTokens over the same string); it shows only on a quoted, cited answer.",
      "title": "Take this answer",
      "copy": "Copy for your AI",
      "share": "Share this answer",
      "meter": "~{tokens} tokens · {n} passages",
      "meterOne": "~{tokens} tokens · 1 passage",
      "meterTitle": "About {tokens} tokens: exactly what Copy puts on your clipboard ({n} quoted passages, with links)",
      "meterTitleOne": "About {tokens} tokens: exactly what Copy puts on your clipboard (1 quoted passage, with links)",
      "copied": "Copied: paste it into your AI",
      "linkCopied": "Link to this answer copied"
    },
    "agent": {
      "$about": "The always-visible “Use in your agent” control and its sheet. Links are the site's machine files (generated at build); none of this is engine text.",
      "button": "Use in your agent",
      "title": "Use this in your own agent",
      "lead": "Everything I’ve learned here is also plain files your agent can read. Paste a link into your assistant, or copy an answer.",
      "items": [
        { "label": "llms.txt", "href": "/llms.txt", "hint": "The index: every learning in a line, with links. Paste it into any AI." },
        { "label": "llms-full.txt", "href": "/llms-full.txt", "hint": "Every learning in full, for a long context window." },
        { "label": "agents.md", "href": "/agents.md", "hint": "For an agent: the files, the context packs, and how to cite them." }
      ],
      "copyLink": "Copy link",
      "linkCopied": "Link copied",
      "answerHead": "This answer",
      "noAnswer": "Ask a question first, and you can copy the answer from here."
    },
    "menu": "Menu",
    "menuClose": "Close menu"
  },
  "models": {
    "$about": "Embedding loaders the app may run (allowlist). A source only names a model id; it never supplies code.",
    "Xenova/all-MiniLM-L6-v2": {
      "package": "@xenova/transformers",
      "version": "2.17.0",
      "cdn": "https://cdn.jsdelivr.net/npm/@xenova/transformers@2.17.0",
      "quantized": true,
      "pooling": "mean",
      "normalize": true,
      "dim": 384
    }
  },
  "retrieval": {
    "$about": "Ranking, passages and answers come from the site's retrieval core (/knowledge/retrieve.mjs, scripts/knowledge/retrieve.mjs). Only the map's own timing and view-by projection live here.",
    "waitForMeaningMs": 9000,
    "waitAgainMs": 1500,
    "projection": {
      "floor": 0.34,
      "between": 0.82,
      "absolute": 0.03
    }
  }
}